Il Comitato IETF (Internet Engineering Task Force), responsabile dello sviluppo dei protocolli e dell'architettura di Internet, ha completato la formulazione della RFC per il sistema di nomi a dominio GNS (GNU Name System), sviluppato dal progetto GNUnet come un'alternativa completamente decentralizzata e resistente alla censura al DNS. La specifica, pubblicata come RFC-9498, ha ottenuto lo status di 'Standard Proposto'. L'implementazione di GNS, conforme alla RFC pubblicata, è inclusa nella piattaforma GNUnet 0.20.0 ed è anche disponibile nel codice sorgente del progetto GNUnet-Go.
GNS può essere utilizzato affianco a DNS e integrato in applicazioni tradizionali, come i browser web. L'integrità e l'immutabilità delle registrazioni sono garantite tramite meccanismi crittografici. A differenza del DNS, in GNS viene utilizzato un grafo diretto al posto di una gerarchia ad albero. server La risoluzione dei nomi è simile al DNS, ma le richieste e le risposte sono gestite mantenendo 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 ECDSA basate sulle curve ellittiche Curve25519. L'uso di Curve25519 è considerato da alcuni un passo piuttosto strano, poiché per ECDSA sono utilizzati altri tipi di curve ellittiche, mentre in combinazione con Curve25519 si utilizza generalmente l'algoritmo di firma digitale Ed25519, più moderno, più sicuro e più veloce rispetto a ECDSA. Dal punto di vista della robustezza crittografica, solleva anche dubbi la scelta delle dimensioni della chiave: 32 byte invece di 64 byte, solitamente usati per Ed25519, oltre all'uso di crittografia simmetrica a cascata, utilizzando algoritmi AES e TwoFish in modalità CFB.
Questo approccio è spiegato 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 generare chiavi pubbliche secondarie senza la necessità di conoscere le chiavi private radice. Questa tecnica è utilizzata anche in Bitcoin. La dimensione della chiave di 32 byte è stata scelta per garantire che la chiave possa essere contenuta in una singola entry DNS.
Fonte: opennet.ru
