Dopo un anno di sviluppo, è stata lanciata la piattaforma web decentralizzata , che offre meccanismi di indirizzamento e verifica di Bitcoin in combinazione con le tecnologie di distribuzione decentralizzata di BitTorrent per creare siti web che non possono essere censurati, falsificati o bloccati. I contenuti dei siti sono memorizzati in una rete P2P sui computer dei visitatori e verificati tramite la firma digitale del proprietario. Per l'indirizzamento viene utilizzato un sistema di server DNS radice alternativi . Il progetto è scritto in Python e è sotto licenza GPLv2.
I dati caricati sul sito sono verificati e associati all'account del proprietario del sito, analogamente all'associazione dei portafogli Bitcoin, il che consente di controllare l'accuratezza delle informazioni e aggiornare i contenuti in tempo reale. Per nascondere gli indirizzi IP, può essere utilizzata la rete anonima Tor, il cui supporto è integrato in ZeroNet. L'utente partecipa alla distribuzione di tutti i siti a cui ha accesso. Dopo il download nel sistema locale, i file vengono memorizzati nella cache e diventano disponibili per la distribuzione dal computer attuale, utilizzando metodi simili a BitTorrent.
Per visualizzare i siti di ZeroNet è sufficiente avviare lo script zeronet.py, dopodiché è possibile aprire i siti nel browser tramite l'URL «http://127.0.0.1:43110/indirizzo_zeronet» (ad esempio, «http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D»). All'apertura del sito, il programma trova i peer più vicini e scarica i file associati alla pagina richiesta (html, css, immagini, ecc.).
Per creare il proprio sito, è sufficiente eseguire il comando «zeronet.py siteCreate», dopo di che verrà generato un identificatore per il sito e una chiave privata per confermare la proprietà tramite firma digitale.
Per il sito creato verrà formata una directory vuota di tipo «data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D». Dopo aver modificato il contenuto di questa directory, è necessario convalidare la nuova versione con il comando «zeronet.py siteSign identificatore_sito» e inserendo la chiave privata. Una volta che il nuovo contenuto è stato convalidato, è necessario annunciarlo con il comando «zeronet.py sitePublish identificatore_sito», affinché la versione modificata diventi disponibile per i peer (per annunciare le modifiche viene utilizzato l'API WebSocket). I peer verificheranno quindi l'integrità della nuova versione tramite la firma digitale, scaricheranno il nuovo contenuto e lo trasmetteranno ad altri peer.
Principali :
- L'assenza di un unico punto di guasto - il sito rimane accessibile se esiste almeno un peer nella rete;
- Mancanza di uno storage di riferimento per il sito - non è possibile chiudere il sito disattivando l'hosting, poiché i dati sono distribuiti su tutte le macchine dei visitatori;
- Tutte le informazioni precedentemente visualizzate sono memorizzate nella cache e disponibili dalla macchina attuale in modalità offline, senza connettersi a Internet.
- Supporto per l'aggiornamento dei contenuti in tempo reale;
- Possibilità di indirizzamento attraverso la registrazione di un dominio nella zona '.bit';
- Funzionamento senza configurazione preliminare - è sufficiente estrarre l'archivio del software e avviare uno script;
- Possibilità di clonare siti con un clic;
- Autenticazione senza password basata su formato : l'account è protetto dallo stesso metodo crittografico utilizzato per la criptovaluta Bitcoin;
- Server SQL integrato con funzioni di sincronizzazione P2P;
- Possibilità di utilizzare Tor per l'anonimato e supporto completo per l'uso dei servizi hidden di Tor (.onion) invece degli indirizzi IPv4;
- Supporto per la crittografia TLS;
- Disponibilità automatica tramite uPnP;
- Possibilità di aggiungere più autori al sito, ciascuno con firme digitali diverse;
- Presenza di un plugin per creare configurazioni multiplayer (openproxy);
- Supporto per la trasmissione di feed di notizie;
- Funziona con tutti i browser e sistemi operativi.
Principali cambiamenti in ZeroNet 0.7
- Il codice è stato rivisto per supportare Python3, garantendo la compatibilità con Python 3.4-3.8;
- Modalità di sincronizzazione del database implementata in modo sicuro;
- Sospesa l'installazione principale di librerie di terze parti a favore di dipendenze esterne, quando possibile;
- Il codice per la verifica delle firme digitali è stato accelerato da 5 a 10 volte (utilizzando la libreria libsecp256k1);
- Aggiunta la randomizzazione dei certificati già generati per eludere i filtri;
- Aggiornato il codice P2P, ora utilizza il protocollo ZeroNet;
- Aggiunta la modalità offline;
- Aggiunto il plugin UiPluginManager per l'installazione e la gestione di plugin di terze parti;
- Supporto completo per OpenSSL 1.1;
- Nella connessione con i peer, vengono utilizzate registrazioni SNI e ALPN fittizie per rendere le connessioni più simili a quelle dei normali siti in HTTPS;
Lo stesso giorno del rilascio di ZeroNet 0.7.0 Aggiornamento 0.7.1, che risolve una vulnerabilità critica che potrebbe consentire l'esecuzione di codice sul lato client. A causa di un errore nel codice di rendering delle variabili del template, un sito web esterno potrebbe stabilire una connessione con il sistema del cliente tramite WebSocket con permessi illimitati ADMIN/NOSANDBOX, permettendo di modificare i parametri di configurazione e di eseguire il proprio codice sul computer dell'utente manipolando il parametro open_browser.
La vulnerabilità si manifesta nel ramo 0.7, così come nelle versioni sperimentali a partire dalla revisione (modifica effettuata 20 giorni fa).
Fonte: opennet.ru
