È stata pubblicata la versione di riferimento del protocollo Yggdrasil 0.4, che consente di implementare una rete IPv6 decentralizzata e privata sopra la normale rete globale, usando la crittografia end-to-end per proteggere la privacy. A partire dalla rete Yggdrasil possono essere utilizzate tutte le applicazioni esistenti che supportano IPv6. L'implementazione è scritta in linguaggio Go e distribuita sotto licenza LGPLv3. Sono supportate le piattaforme Linux, Windows, macOS, FreeBSD, OpenBSD e Ubiquiti EdgeRouter.
Yggdrasil sviluppa un nuovo concetto di routing per creare una rete decentralizzata globale, i cui nodi possono collegarsi direttamente tra loro in modalità mesh (ad esempio, tramite Wi-Fi o Bluetooth) oppure interagire sopra le reti IPv6 o IPv4 esistenti (una rete sopra l'altra). Una delle caratteristiche distintive di Yggdrasil è l'auto-organizzazione del funzionamento, senza necessità di una configurazione esplicita del routing: le informazioni sui percorsi vengono calcolate in base alla posizione del nodo nella rete rispetto ad altri nodi. I dispositivi vengono indirizzati attraverso un normale indirizzo IPv6, che non cambia in caso di spostamento del nodo (in Yggdrasil viene utilizzato un intervallo di indirizzi inutilizzati 0200::/7).
L'intera rete Yggdrasil è vista non come una raccolta di sottoreti disaggregate, ma come un unico albero di spanning strutturato, con un unico "radice" e ogni nodo ha un genitore e uno o più discendenti. Questa struttura ad albero consente di costruire un percorso verso il nodo di destinazione, rispetto al nodo sorgente, utilizzando un meccanismo "locator" che determina il percorso ottimale verso il nodo dalla radice.
Le informazioni sull'albero sono distribuite tra i nodi e non sono memorizzate in modo centralizzato. Per lo scambio di dati di routing viene utilizzata una tabella hash distribuita (DHT), tramite la quale un nodo può estrarre tutte le informazioni sul percorso verso un altro nodo. La rete di per sé garantisce solo la crittografia end-to-end (i nodi di transito non possono determinare il contenuto), ma non offre anonimato (quando ci si connette tramite Internet, i nodi peer-to-peer con cui si interagisce direttamente possono identificare l'indirizzo IP reale; pertanto, per l'anonimato è consigliato connettere i nodi tramite Tor o I2P).
Si segnala che, nonostante il progetto sia in fase di alpha testing, è già abbastanza stabile per un utilizzo quotidiano, ma non garantisce compatibilità all'indietro tra le versioni. Per Yggdrasil 0.4, la comunità supporta un insieme di servizi, inclusa una piattaforma per il hosting di container Linux per ospitare i propri siti, un motore di ricerca YaCy, un server di comunicazione Matrix, un server IRC, un sistema VoIP, un tracker BitTorrent, una mappa dei punti di connessione, un gateway verso IPFS e un proxy per accedere alle reti Tor, I2P e clearnet. server I nodi utilizzano una nuova topologia di routing non compatibile con le versioni precedenti di Yggdrasil.
Nella nuova versione:
- È stata implementata una nuova schema di routing, non compatibile con le versioni precedenti di Yggdrasil.
- Nell'installazione di connessioni TLS con i nodi è stata implementata la pinning delle chiavi pubbliche. Se non era presente la pinning durante la connessione, la chiave ottenuta sarà associata alla connessione. Se era impostata la pinning, ma la chiave non corrisponde, la connessione verrà rifiutata. TLS con pinning delle chiavi è definito come metodo raccomandato per connettersi a Yggdrasil.
- Il codice per il routing e la gestione delle sessioni è stato completamente riscritto, aumentando la capacità e l'affidabilità, soprattutto per i nodi che cambiano frequentemente peer. Nei sessioni crittografiche è stata implementata la rotazione periodica delle chiavi. È stata aggiunta la supporto per il routing basato sull'origine, che può essere utilizzato per reindirizzare il traffico IPv6 degli utenti. La struttura della tabella di hash distribuita (DHT) è stata riprogettata e il supporto per il routing basato su DHT è stato aggiunto. L'implementazione degli algoritmi di routing è stata separata in una libreria distinta.
- Indirizzi IP Ora gli indirizzi IPv6 vengono generati a partire dalle chiavi pubbliche ed25519, e non dal loro hash X25519, il che porterà alla modifica di tutti gli IP interni dopo il passaggio alla versione Yggdrasil 0.4.
- Sono state forniti ulteriori parametri per la ricerca di peer Multicast.
Fonte: opennet.ru
