Dopo un anno di sviluppo è stata rilasciata una piattaforma web decentralizzata , che propone di utilizzare i meccanismi di indirizzamento e verifica di Bitcoin in combinazione con le tecnologie di distribuzione distribuita di BitTorrent per creare siti che non possano essere censurati, contraffatti o bloccati. Il contenuto dei siti è archiviato in una rete P2P sulle macchine dei visitatori e viene verificato utilizzando la firma digitale del proprietario. Per l'indirizzamento viene utilizzato un sistema di server DNS root alternativi . Il progetto è scritto in Python e concesso in licenza con GPLv2.
I dati pubblicati sul sito vengono verificati e collegati all'account del proprietario del sito, in modo simile al collegamento dei portafogli Bitcoin, che consente anche di controllare la pertinenza delle informazioni e aggiornare i contenuti in tempo reale. Per nascondere gli indirizzi IP è possibile utilizzare la rete Tor anonima, il cui supporto è integrato in ZeroNet. L'utente partecipa alla distribuzione di tutti i siti a cui ha avuto accesso. Una volta scaricati sul sistema locale, i file vengono memorizzati nella cache e resi disponibili per la condivisione dal computer corrente utilizzando metodi che ricordano BitTorrent.
Per visualizzare i siti ZeroNet è sufficiente eseguire lo script zeronet.py, dopodiché sarà possibile aprire i siti nel browser tramite l'URL “http://127.0.0.1:43110/zeronet_address” (ad esempio “http://127.0.0.1 :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D”) . Quando si apre un sito Web, il programma trova colleghi nelle vicinanze e scarica i file associati alla pagina richiesta (html, css, immagini, ecc.).
Per creare il tuo sito ti basterà eseguire il comando “zeronet.py siteCreate”, dopodiché verranno generati un identificatore del sito e una chiave privata per confermarne la paternità tramite una firma digitale.
Per il sito creato, verrà creata una directory vuota nel formato “data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D”. Dopo aver modificato il contenuto di questa directory, la nuova versione dovrà essere certificata utilizzando il comando “zeronet.py siteSign site_identifier” e inserendo la chiave privata. Una volta verificato il nuovo contenuto, è necessario annunciarlo con il comando “zeronet.py sitePublish site_id” in modo che la versione modificata diventi disponibile ai peer (l'API WebSocket viene utilizzata per annunciare le modifiche). Lungo la catena, i peer controlleranno l'integrità della nuova versione utilizzando una firma digitale, scaricheranno il nuovo contenuto e lo trasferiranno ad altri peer.
Il principale :
- Non esiste un singolo punto di errore: il sito rimane accessibile se è presente almeno un peer nella distribuzione;
- Mancanza di archiviazione di riferimento per il sito: il sito non può essere chiuso disconnettendo l'hosting, poiché i dati si trovano su tutte le macchine dei visitatori;
- Tutte le informazioni visualizzate in precedenza si trovano nella cache e sono accessibili dalla macchina corrente in modalità offline, senza accesso alla rete globale.
- Supporta l'aggiornamento dei contenuti in tempo reale;
- Possibilità di indirizzamento tramite registrazione di domini in zona “.bit”;
- Lavora senza configurazione preliminare: basta decomprimere l'archivio con il software ed eseguire uno script;
- Possibilità di clonare siti Web in un clic;
- Autenticazione senza password basata sul formato : il conto è protetto con lo stesso metodo crittografico della criptovaluta Bitcoin;
- Server SQL integrato con funzioni di sincronizzazione dei dati P2P;
- La possibilità di utilizzare Tor per l'anonimato e il pieno supporto per l'utilizzo dei servizi nascosti Tor (.onion) invece degli indirizzi IPv4;
- Supporto per la crittografia TLS;
- Accessibilità automatica tramite uPnP;
- Possibilità di allegare al sito più autori con firme digitali diverse;
- Disponibilità di un plugin per la creazione di configurazioni multiutente (openproxy);
- Supporto per la trasmissione di feed di notizie;
- Funziona con qualsiasi browser e sistema operativo.
Principali cambiamenti in ZeroNet 0.7
- Il codice è stato rielaborato per supportare Python3, garantendo la compatibilità con Python 3.4-3.8;
- È stata implementata una modalità di sincronizzazione del database protetta;
- Ove possibile, la distribuzione principale di librerie di terze parti è stata interrotta a favore di dipendenze esterne;
- Il codice per la verifica delle firme digitali è stato accelerato di 5-10 volte (viene utilizzata la libreria libsecp256k1;
- Aggiunta randomizzazione dei certificati già generati per bypassare i filtri;
- Il codice P2P è stato aggiornato per utilizzare il protocollo ZeroNet;
- Aggiunta la modalità offline;
- Aggiunto plugin UiPluginManager per l'installazione e la gestione di plugin di terze parti;
- Viene fornito il supporto completo per OpenSSL 1.1;
- Quando ci si connette ai peer, vengono utilizzati record SNI e ALPN fittizi per rendere le connessioni più simili alle chiamate a siti normali su HTTPS;
Lo stesso giorno del rilascio di ZeroNet 0.7.0 aggiornamento 0.7.1, che elimina una pericolosa vulnerabilità che potenzialmente consente l'esecuzione di codice sul lato client. A causa di un errore nel codice per il rendering delle variabili del modello, un sito esterno aperto può stabilire una connessione al sistema client tramite WebSocket con diritti ADMIN/NOSANDBOX illimitati, che rende possibile modificare i parametri di configurazione ed eseguire il proprio codice sul computer dell'utente tramite manipolazioni con il parametro open_browser.
La vulnerabilità appare nel ramo 0.7, così come nelle build sperimentali a partire dalla revisione (modifica apportata 20 giorni fa).
Fonte: opennet.ru
