Il comitato IETF (Internet Engineering Task Force), responsabile dello sviluppo dei protocolli e dell'architettura di Internet, ha avviato il processo di standardizzazione del sistema di nomi di dominio GNS (GNU Name System), sviluppato dal progetto come sostituto completamente decentralizzato e immune alla censura del DNS. Attualmente è disponibile una prima bozza del standard, dopo la stabilizzazione della quale sarà formulato un RFC, avente lo status di "Standard Proposto".
può essere utilizzato insieme a DNS e integrato in applicazioni tradizionali, come i browser web. L'integrità e l'immutabilità delle registrazioni sono garantite dall'uso di meccanismi crittografici. A differenza del DNS, GNS utilizza un grafo diretto anziché una gerarchia ad albero di server. La conversione dei nomi è simile a quella del DNS, ma le richieste e le risposte vengono eseguite in modo da mantenere la riservatezza: il nodo che elabora la richiesta non sa a chi viene fornita la risposta, e i nodi di transito e gli osservatori esterni non possono decifrare le richieste e le risposte.
La zona DNS in GNS è definita tramite una coppia di chiavi pubbliche e private basato su curve ellittiche . L'uso di Curve25519 da alcuni come un passo piuttosto strano, poiché per ECDSA vengono utilizzati altri tipi di curve ellittiche, e insieme a Curve25519 di solito si utilizza l'algoritmo di firma digitale , , più sicuro e più veloce di ECDSA. Dal punto di vista della resistenza crittografica, suscita anche dubbi la scelta della dimensione della chiave — 32 byte invece di 64 byte, solitamente utilizzati per Ed25519, e anche l'applicazione simmetrica, utilizzando gli algoritmi AES e TwoFish in modalità CFB.
Questo approccio è giustificato dalla necessità di implementare chiavi gerarchiche, che consentono di utilizzare la chiave pubblica radice per estrarre la chiave pubblica secondaria, sfruttando la proprietà di linearità della curva Curve25519. Questa caratteristica consente di ottenere chiavi pubbliche secondarie senza la conoscenza delle chiavi private radice. La tecnica menzionata è utilizzata in Bitcoin. La dimensione della chiave di 32 byte è stata scelta affinché la chiave potesse essere contenuta in un singolo record DNS.
Inoltre, si può notare framework , destinato alla costruzione di reti P2P decentralizzate protette. Le reti create tramite GNUnet non hanno un unico punto di guasto e possono garantire l'integrità delle informazioni private degli utenti, compreso l'esclusione di possibili abusi da parte di servizi segreti e amministratori che hanno accesso ai nodi della rete. L'uscita è contrassegnata da significative modifiche al protocollo, che compromettono la retrocompatibilità con le versioni 0.12.x.
GNUnet supporta la creazione di reti P2P sopra TCP, UDP, HTTP/HTTPS, Bluetooth e WLAN, può operare in modalità F2F (Friend-to-friend). Supporta l'attraversamento NAT, incluso l'uso di UPnP e ICMP. Per l'indirizzamento della memorizzazione dei dati è possibile utilizzare una tabella hash distribuita (DHT). Sono forniti strumenti per il dispiegamento di reti mesh. Per la concessione e il ritiro selettivo dei diritti di accesso viene utilizzato un servizio di scambio decentralizzato di attributi di identificazione. , GNS (GNU Name System) e crittografia basata su attributi ().
Il sistema è caratterizzato da un basso consumo di risorse e dall'uso di un'architettura multi-processo per garantire l'isolamento tra i componenti. Sono forniti strumenti flessibili per la registrazione e la raccolta di statistiche. Per lo sviluppo di applicazioni finali, GNUnet offre un'API per il linguaggio C e binding per altri linguaggi di programmazione. Per semplificare lo sviluppo, si consiglia di utilizzare cicli di eventi e processi anziché thread. Include una libreria di test per il dispiegamento automatico di reti sperimentali che coprono decine di migliaia di peer.
Oltre a GNS, basato sulle tecnologie GNUnet si stanno sviluppando anche diverse applicazioni pronte all'uso:
- Servizio per lo scambio anonimo di file, che non consente l'analisi delle informazioni grazie alla trasmissione dei dati esclusivamente in forma crittografata e che non permette di rintracciare chi ha caricato, cercato e scaricato i file grazie all'uso del protocollo GAP.
- Sistema VPN per la creazione di servizi nascosti nel dominio «.gnu» e per il tunneling IPv4 e IPv6 sopra una rete P2P. Supporta anche schemi di traduzione da IPv4 a IPv6 e viceversa, nonché la creazione di tunnel IPv4 sopra IPv6 e IPv6 sopra IPv4.
- Servizio GNUnet Conversation per effettuare chiamate vocali sopra GNUnet. Per l'identificazione degli utenti viene utilizzato GNS, il contenuto del traffico vocale viene trasmesso in forma crittografata. Attualmente non è garantita l'anonimità: altri peer possono tracciare la connessione tra due utenti e determinare i loro indirizzi IP.
- Piattaforma per la creazione di reti sociali decentralizzate , che utilizza il protocollo e supporta la distribuzione di notifiche in modalità multicast con l'uso della crittografia end-to-end, affinché solo gli utenti autorizzati (quelli a cui i messaggi non sono destinati, inclusi gli amministratori dei nodi, non potranno leggerli) abbiano accesso a messaggi, file, chat e discussioni;
- Sistema per l'organizzazione di email crittografate , che utilizza GNUnet per proteggere i metadata e supporta vari per la verifica delle chiavi;
- Sistema di pagamento , che fornisce anonimato per gli acquirenti, ma monitora le transazioni dei venditori per garantire trasparenza e fornire report fiscali. Supporta l'uso di diverse valute e monete elettroniche, inclusi dollari, euro e bitcoin.
Novità principali di GNUnet 0.13:
- Attivato il registro (Autorità di Assegnazione dei Numeri GNUnet), responsabile dell'assegnazione di nomi e indirizzi per GNUnet.
- L'implementazione del sistema decentralizzato di nomi di dominio GNS è stata allineata con , proposto nell'IETF. È stata stabilita la funzionalità del plugin NSS 'block'. Sono stati aggiunti nuovi flag SUPPLEMENTAL per le registrazioni che non sono esplicitamente pubblicate sotto l'etichetta specificata, ma vengono restituite dal resolver. Nello strumento gnunet-namestore è stato aggiunto un output di avviso durante l'aggiunta di registrazioni TLSA o SRV al di fuori della registrazione .
- Nell'ambito del meccanismo di revoca delle chiavi (GNS/REVOCATION), la funzione è stata convertita per utilizzare l'algoritmo di hashing Argon2.
- Nel servizio di scambio decentralizzato degli attributi di identificazione (RECLAIM), la dimensione del ticket è stata aumentata a 256 bit.
- Il plugin di trasporto, che utilizza il protocollo UDP per la trasmissione dei dati, è stato spostato nella categoria dei progetti sperimentali a causa di problemi di stabilità;
- Il formato del file delle chiavi e il metodo di serializzazione delle chiavi private ECDSA sono stati unificati con altre librerie (le chiavi precedenti smetteranno di funzionare).
- Per l'implementazione degli algoritmi di crittografia basati su curve ellittiche è stata utilizzata la libreria .
- È stata aggiunta la possibilità di compilare strumenti con la libreria cURL, non associata a gnutls.
- Ripristinato il server di integrazione continua .
- Sono state incluse come dipendenze di compilazione le librerie libmicrohttpd, libjansson e libsodium.
Fonte: opennet.ru
