Dopo un anno di sviluppo, è stato lanciato ZeroNet, una piattaforma web decentralizzata. , che offre l'uso dei meccanismi di indirizzamento e verifica di Bitcoin in combinazione con le tecnologie di distribuzione decentralizzata di BitTorrent per creare siti che non possono essere censurati, falsificati o bloccati. I contenuti dei siti vengono memorizzati in una rete P2P sui dispositivi dei visitatori e verificati tramite la firma digitale del proprietario. Per l'indirizzamento viene utilizzato un sistema di server DNS alternativi . Il progetto è sviluppato in Python e è sotto licenza GPLv2.
i dati ospitati sul sito sono verificati e collegati all'account del proprietario del sito, analogamente al legame dei portafogli Bitcoin, il che consente anche di controllare la pertinenza 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 si è rivolto. Dopo il caricamento nel sistema locale, i file vengono memorizzati nella cache e diventano disponibili per la distribuzione dalla macchina corrente, utilizzando metodi simili a BitTorrent.
Per visualizzare i siti ZeroNet, è sufficiente avviare lo script zeronet.py, dopodiché i siti possono essere aperti nel browser tramite l'URL «http://127.0.0.1:43110/indirizzo_zeronet» (ad esempio, «http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D»). Quando si apre un sito, il programma trova i peer più vicini e carica 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 la firma digitale.
Per il sito creato verrà formata una directory vuota del tipo «data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D». Dopo aver modificato il contenuto di questa directory, è necessario certificare la nuova versione utilizzando il comando «zeronet.py siteSign identificatore_sito» e inserendo la chiave privata. Una volta che il nuovo contenuto è stato certificato, deve essere annunciato con il comando «zeronet.py sitePublish identificatore_sito», affinché la versione modificata diventi accessibile ai peer (per annunciare le modifiche si utilizza l’API WebSocket). I peer verificheranno l'integrità della nuova versione tramite la firma digitale, caricheranno il nuovo contenuto e lo trasmetteranno ad altri peer.
Principali :
- L'assenza di un punto unico di guasto significa che il sito rimane accessibile se c'è almeno un peer nella rete.
- L'assenza di un archivio di riferimento per il sito rende impossibile 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 sulla macchina attuale in modalità offline, senza connessione a internet.
- Supporto per l'aggiornamento dei contenuti in tempo reale;
- Possibilità di indirizzamento attraverso la registrazione di un dominio nella zona «.bit»;
- Funziona senza configurazione preliminare: basta estrarre l'archivio con il software e avviare uno script.
- Possibilità di clonare siti con un clic;
- Autenticazione senza password basata su format : l'account è protetto dallo stesso metodo crittografico utilizzato dalla criptovaluta Bitcoin;
- Server SQL integrato con funzioni di sincronizzazione dati P2P;
- Possibilità di utilizzare Tor per l'anonimato e pieno supporto per l'uso di servizi nascosti Tor (.onion) invece di indirizzi IPv4;
- Supporto per la crittografia TLS;
- Disponibilità automatica tramite uPnP;
- Possibilità di associare più autori al sito, ognuno con firme digitali diverse;
- Disponibilità di un plugin per la creazione di configurazioni multiutente (openproxy);
- Supporto per la trasmissione di feed di notizie;
- Funziona su tutti i browser e sistemi operativi.
Principali novità in ZeroNet 0.7
- Codice ristrutturato per il supporto di Python 3, compatibilità garantita con Python 3.4-3.8;
- Implementata la modalità protetta per la sincronizzazione del database;
- Interrotta la fornitura di librerie di terze parti nella maggior parte dei casi, a favore di dipendenze esterne;
- Accelerato il codice per la verifica delle firme digitali da 5 a 10 volte (utilizzando la libreria libsecp256k1);
- Aggiunta la randomizzazione dei certificati già generati per eludere i filtri;
- Il codice P2P è stato aggiornato per utilizzare il protocollo ZeroNet;
- Aggiunta la modalità di funzionamento offline;
- Aggiunto il plugin UiPluginManager per l'installazione e la gestione dei plugin di terze parti;
- Completamente supportato OpenSSL 1.1;
- Durante la connessione con peer, utilizzate registrazioni SNI e ALPN fittizie per rendere le connessioni più simili a quelle a siti web normali via HTTPS;
Nello stesso giorno del rilascio di ZeroNet 0.7.0 Versione 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 di template, un sito esterno aperto può stabilire una connessione al sistema del cliente tramite WebSocket con diritti ADMIN/NOSANDBOX illimitati, consentendo di modificare le impostazioni di configurazione e di eseguire il proprio codice sul computer dell'utente tramite manipolazioni del parametro open_browser.
La vulnerabilità si manifesta nella versione 0.7 e nelle build sperimentali a partire dalla revisione (modifica apportata 20 giorni fa).
Fonte: opennet.ru
