Rilascio della piattaforma GNUnet P2P 0.13. Promozione del GNS come standard Internet

L'IETF (Internet Engineering Task Force), che sviluppa protocolli e architetture Internet, ha avviato il processo di standardizzazione del sistema di nomi di dominio GNS (GNU Name System) sviluppato dal progetto GNUnet come sostituto completamente decentralizzato e a prova di censura del DNS. Attualmente pubblicato la prima bozza dello standard, dopo la stabilizzazione della quale verrà costituita una RFC, che avrà lo status di “Proposed Standard”.

GNS può essere utilizzato insieme al DNS e utilizzato in applicazioni tradizionali come i browser web. L'integrità e l'immutabilità dei record è garantita attraverso l'uso di meccanismi crittografici. A differenza del DNS, il GNS utilizza un grafico diretto anziché una gerarchia di server ad albero. La risoluzione dei nomi è simile al DNS, ma le richieste e le risposte vengono effettuate in modo confidenziale: il nodo che elabora la richiesta non sa a chi viene inviata la risposta e i nodi di transito e gli osservatori di terze parti non possono decrittografare richieste e risposte.

La zona DNS in GNS viene determinata utilizzando una serie di chiavi pubbliche e private ECDSA basato su curve ellittiche Curve25519. Utilizzando Curve25519 percepita alcuni lo considerano un passaggio molto strano, poiché per l'ECDSA utilizzano altri tipi di curve ellittiche e, se abbinati a Curve25519, di solito utilizzano un algoritmo di firma digitale Ed25519, più moderno, più sicuro e veloce dell'ECDSA. Dal punto di vista della forza crittografica, anche la scelta della dimensione della chiave è discutibile: 32 byte invece di 64 byte, solitamente utilizzata per Ed25519, così come l'uso cascata crittografia simmetrica utilizzando algoritmi AES e TwoFish in modalità CFB.

Questo approccio si spiega con la necessità di implementare chiavi gerarchiche, rendendo possibile l'utilizzo della chiave pubblica root per estrarre una chiave pubblica figlio, sfruttando la proprietà di linearità di Curve25519. Questa funzionalità consente di ottenere chiavi pubbliche secondarie senza conoscere le chiavi root private. Anche questa tecnica lo è applicare nelBitcoin. La dimensione della chiave di 32 byte è stata scelta per consentire alla chiave di adattarsi a un record DNS.

Inoltre si può notare nuovo problema struttura GNUnet 0.13, progettato per costruire reti P2P decentralizzate sicure. Le reti create utilizzando GNUnet non hanno un singolo punto di guasto e sono in grado di garantire l'inviolabilità delle informazioni private degli utenti, inclusa l'eliminazione di possibili abusi da parte dei servizi di intelligence e degli amministratori con accesso ai nodi della rete. Il rilascio è contrassegnato come contenente modifiche significative al protocollo che interrompono la compatibilità con le versioni 0.12.x.

GNUnet supporta la creazione di reti P2P su TCP, UDP, HTTP/HTTPS, Bluetooth e WLAN e può operare in modalità F2F (Friend-to-friend). È supportato l'attraversamento NAT, incluso l'utilizzo di UPnP e ICMP. Per indirizzare il posizionamento dei dati, è possibile utilizzare una tabella hash distribuita (DHT). Vengono forniti strumenti per la distribuzione di reti mesh. Per concedere e revocare selettivamente i diritti di accesso viene utilizzato un servizio decentralizzato di scambio di attributi di identificazione recuperare l'identità, utilizzando GNS (GNU Name System) e crittografia basata sugli attributi (Crittografia basata sugli attributi).

Il sistema presenta un basso consumo di risorse e utilizza un'architettura multiprocesso per fornire isolamento tra i componenti. Vengono forniti strumenti flessibili per il mantenimento dei registri e la raccolta delle statistiche. Per sviluppare applicazioni finali, GNUnet fornisce un'API per il linguaggio C e collegamenti per altri linguaggi di programmazione. Per semplificare lo sviluppo, si propone di utilizzare cicli di eventi e processi invece dei thread. Include una libreria di test per l'implementazione automatica di reti sperimentali che coprono decine di migliaia di peer.

Oltre a GNS, vengono sviluppate anche diverse applicazioni già pronte basate sulle tecnologie GNUnet:

  • Un servizio di condivisione file anonima, che non consente di analizzare le informazioni perché i dati vengono trasferiti solo in forma crittografata e non consente di tracciare chi ha pubblicato, cercato e scaricato file grazie all'utilizzo del protocollo GAP.
  • Sistema VPN per la creazione di servizi nascosti nel dominio “.gnu” e l'inoltro di tunnel IPv4 e IPv6 su una rete P2P. Inoltre, sono supportati gli schemi di traduzione da IPv4 a IPv6 e da IPv6 a IPv4, nonché la creazione di tunnel IPv4-over-IPv6 e IPv6-over-IPv4.
  • Servizio di conversazione GNUnet per effettuare chiamate vocali su GNUnet. Il GNS viene utilizzato per identificare gli utenti; i contenuti del traffico vocale vengono trasmessi in forma crittografata. L'anonimato non è ancora fornito: altri peer possono tracciare la connessione tra due utenti e determinare i loro indirizzi IP.
  • Piattaforma per la creazione di social network decentralizzati Secushare, utilizzando il protocollo PSICO e supportare la distribuzione delle notifiche in modalità multicast utilizzando la crittografia end-to-end in modo che solo gli utenti autorizzati possano accedere a messaggi, file, chat e discussioni (coloro ai quali i messaggi non sono indirizzati, compresi gli amministratori dei nodi, non potranno leggerli );
  • Sistema per organizzare la posta elettronica crittografata privacy abbastanza facile, che utilizza GNUnet per la protezione dei metadati e supporta vari protocolli crittografici per la verifica delle chiavi;
  • Sistema di pagamento Officina GNU, che garantisce l'anonimato agli acquirenti ma tiene traccia delle transazioni dei venditori per garantire trasparenza e reporting fiscale. Supporta il funzionamento con varie valute esistenti e moneta elettronica, inclusi dollari, euro e bitcoin.

Principali nuove funzionalità in GNUnet 0.13:

  • Il registro è stato messo in funzione WIN (GNUnet Assigned Numbers Authority), responsabile dell'assegnazione di nomi e indirizzi per GNUnet.
  • L'implementazione del sistema di nomi di dominio decentralizzato GNS è in linea con specifica, proposto dall'IETF. Il “blocco” del plugin NSS è stato migliorato. Aggiunti nuovi flag SUPPLEMENTAL per i record che non sono esplicitamente pubblicati sotto l'etichetta specificata, ma vengono restituiti dal risolutore. Aggiunto un avviso all'utilità gnunet-namestore quando si aggiungono voci TLSA o SRV all'esterno della voce SCATOLE.
  • Nel meccanismo di revoca delle chiavi (GNS/REVOCATION), la funzione prova del lavoro completato passato all'utilizzo dell'algoritmo di hashing Argon2.
  • Nel servizio di scambio decentralizzato di attributi di identificazione (RECLAIM), la dimensione del ticket è stata aumentata a 256 bit.
  • Il plugin di trasporto, che utilizza il protocollo UDP per il trasferimento dei dati, è stato spostato nella categoria sperimentale per problemi di stabilità;
  • Il formato del file di chiave ECDSA e il metodo di serializzazione della chiave privata sono unificati con altre librerie (le vecchie chiavi non funzioneranno più).
  • La libreria viene utilizzata come implementazione di algoritmi di crittografia basati su curve ellittiche libsodico.
  • Aggiunta la possibilità di creare utilità con la libreria cURL, non correlata a gnutls.
  • Server di integrazione continua restituito Costruiscibot.
  • Le dipendenze di compilazione includono libmicrohttpd, libjansson e libsodium.

Fonte: opennet.ru

Aggiungi un commento