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.

Il principale capacità:

  • 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).

Fonte: opennet.ru

Aggiungi un commento