ProHoster > blog > notizie internet > Rilascio di ZeroNet 0.7, una piattaforma per la creazione di siti web decentralizzati
Rilascio di ZeroNet 0.7, una piattaforma per la creazione di siti web decentralizzati
Dopo un anno di sviluppo è stata rilasciata una piattaforma web decentralizzata ZeroNet 0.7, 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 Namecoin. Il progetto è scritto in Python e distribuito da 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.
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 BIP32: 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 formato 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 4188 (modifica apportata 20 giorni fa).