È stato presentato il rilascio dell'OpenZiti 1.0, un toolkit che consente di integrare nei programmi strumenti per l'interazione di rete distribuita e l'accesso ai servizi in un ambiente di rete isolato. OpenZiti offre la possibilità di distribuire una rete overlay specifica per le applicazioni in fase di sviluppo, operante sopra l'ordinario internet e utilizzante il routing mesh, dove ogni punto della rete è collegato attraverso punti vicini. Il codice del progetto è scritto in Go e distribuito con licenza Apache 2.0. Sono forniti wrapper per i linguaggi C, Go, Python, Swift, Java, Node.js e C#, oltre a strumenti per l'integrazione con applicazioni per la piattaforma Android.
Il sistema OpenZiti è originariamente progettato per costruire reti che garantiscono la protezione e l'isolamento del traffico in ambienti non sicuri, dove i nodi possono essere compromessi (architettura Zero Trust). La tecnologia può essere utilizzata per organizzare la comunicazione con le applicazioni anziché VPN. Il funzionamento della rete è assicurato tramite l'uso di un processo di controllo che gestisce la configurazione della rete, l'autenticazione e la configurazione dei servizi, così come dei nodi autorizzati a fungere da router, formando una rete mesh e effettuando il passaggio del traffico di transito. È possibile aggiungere servizi per il bilanciamento del carico e garantire la resilienza.

L'accesso alla rete overlay è realizzato attraverso speciali edge client, che consentono di accedere dalla rete esterna alla rete overlay costruita tramite OpenZiti. È possibile creare tunnel e proxy per instradare il traffico dalla rete ordinaria alla rete overlay e viceversa, permettendo così l'interazione dall'esterno con le applicazioni che funzionano nella rete overlay e l'accesso a servizi esistenti che non integrano il supporto per la rete overlay.
L'accesso alla rete e il recupero dei dati da server Il DNS è possibile solo dopo l'autenticazione e l'autorizzazione obbligatorie: senza diritti, il cliente non può determinare la disponibilità del servizio né connettersi ad esso. Tutto il traffico è protetto utilizzando mTLS (autenticazione reciproca in cui client e server si autenticano a vicenda) e crittografia end-to-end (ChaCha20-Poly1305), il che significa che la compromissione dei nodi di rete non consentirà di visualizzare il traffico delle applicazioni. Per la crittografia vengono utilizzate le funzioni della libreria libsodium.
Tra le applicazioni popolari che utilizzano OpenZiti, si possono citare la piattaforma di condivisione dati Zrok e l'ecosistema browZer per il deploy di siti in una rete overlay. Oltre a creare applicazioni di rete distribuite, OpenZiti è adatto per costruire reti private per accedere a API chiuse, siti web o database, nascondendo nelle overlay network infrastrutture basate su Kubernetes, e per la gestione remota di sistemi e dispositivi esterni senza configurazione dei firewall e senza ricorrere a VPN.
Nella versione 1.0 di OpenZiti è stata assicurata la stabilità dell'API per router e controller (per i client, la stabilità dell'API era già garantita in precedenza). A partire da questa versione, nell'API e nell'interfaccia da linea di comando sarà supportata la retrocompatibilità; in caso di necessità di rimozione di funzionalità, sarà applicato un processo di pre-transizione in cui verranno classificate come obsolete e verranno eliminate realmente solo in caso di cambiamenti significativi del numero di versione. Nella nuova versione è stato inoltre effettuato un ulteriore testing con simulazione di vari guasti dei componenti di rete (chaos testing), consentendo di verificare la stabilità della rete in caso di situazioni anomale e la capacità di tornare al normale funzionamento dopo il ripristino dei componenti guastati.
Fonte: opennet.ru
