Release av ZeroNet 0.7, en plattform för att skapa decentraliserade webbplatser

Efter ett års utveckling släpptes lanseringen av en decentraliserad webbplattform ZeroNet 0.7, som föreslår att man använder Bitcoins adresserings- och verifieringsmekanismer i kombination med BitTorrents distribuerade leveranstekniker för att skapa sajter som inte kan censureras, förfalskas eller blockeras. Innehållet på webbplatser lagras i ett P2P-nätverk på besökarnas maskiner och verifieras med ägarens digitala signatur. Ett system med alternativa rot-DNS-servrar används för adressering Namecoin. Projektet är skrivet i Python och levererad av licensierad under GPLv2.

Uppgifterna som läggs upp på webbplatsen är verifierade och länkade till webbplatsägarens konto, liknande länkningen av Bitcoin-plånböcker, vilket också gör det möjligt att kontrollera relevansen av information och uppdatera innehåll i realtid. För att dölja IP-adresser kan det anonyma Tor-nätverket användas, vilket stöd är inbyggt i ZeroNet. Användaren deltar i distributionen av alla sajter han besökt. När de har laddats ner till det lokala systemet cachelagras filerna och görs tillgängliga för delning från den aktuella maskinen med metoder som påminner om BitTorrent.

För att se ZeroNet-webbplatser, kör bara zeronet.py-skriptet, varefter du kan öppna webbplatser i webbläsaren via URL:en "http://127.0.0.1:43110/zeronet_address" (till exempel "http://127.0.0.1) :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D”) . När du öppnar en webbplats hittar programmet närliggande kamrater och laddar ner filer associerade med den begärda sidan (html, css, bilder, etc.).
För att skapa din webbplats, kör bara kommandot "zeronet.py siteCreate", varefter en webbplatsidentifierare och en privat nyckel kommer att genereras för att bekräfta författarskapet med hjälp av en digital signatur.

För den skapade webbplatsen kommer en tom katalog i formen "data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D" att skapas. Efter att ha ändrat innehållet i den här katalogen måste den nya versionen certifieras med kommandot "zeronet.py siteSign site_identifier" och ange den privata nyckeln. När det nya innehållet har verifierats måste det meddelas med kommandot "zeronet.py sitePublish site_id" så att den ändrade versionen blir tillgänglig för peers (WebSocket API används för att meddela ändringar). Längs kedjan kommer kamrater att kontrollera integriteten hos den nya versionen med hjälp av en digital signatur, ladda ner det nya innehållet och överföra det till andra kamrater.

Den huvudsakliga möjligheter:

  • Det finns ingen enskild punkt för fel - webbplatsen förblir tillgänglig om det finns minst en peer i distributionen;
  • Brist på referenslagring för webbplatsen - webbplatsen kan inte stängas genom att koppla bort hosting, eftersom data finns på alla besökares maskiner;
  • All tidigare visad information finns i cachen och är tillgänglig från den aktuella maskinen i offlineläge, utan tillgång till det globala nätverket.
  • Stöd för uppdatering av innehåll i realtid;
  • Möjlighet att adressera genom domänregistrering i ".bit"-zonen;
  • Arbeta utan preliminär installation - packa bara upp arkivet med programvaran och kör ett skript;
  • Möjlighet att klona webbplatser med ett klick;
  • Formatbaserad autentisering utan lösenord BIP32: kontot skyddas med samma kryptografiska metod som Bitcoin kryptovaluta;
  • Inbyggd SQL-server med P2P-datasynkroniseringsfunktioner;
  • Möjligheten att använda Tor för anonymitet och fullt stöd för att använda Tor dolda tjänster (.onion) istället för IPv4-adresser;
  • Stöd för TLS-kryptering;
  • Automatisk tillgänglighet via uPnP;
  • Möjlighet att koppla flera författare med olika digitala signaturer till sajten;
  • Tillgänglighet av ett plugin för att skapa fleranvändarkonfigurationer (openproxy);
  • Stöd för att sända nyhetsflöden;
  • Fungerar i alla webbläsare och operativsystem.

Stora förändringar i ZeroNet 0.7

  • Koden har omarbetats för att stödja Python3, vilket säkerställer kompatibilitet med Python 3.4-3.8;
  • Ett skyddat databassynkroniseringsläge har implementerats;
  • Där det är möjligt har huvuddistributionen av tredjepartsbibliotek upphört till förmån för externa beroenden;
  • Koden för att verifiera digitala signaturer har accelererats 5-10 gånger (libsecp256k1-biblioteket används;
  • Lade till randomisering av redan genererade certifikat för att kringgå filter;
  • Uppdaterad P2P-kod för att använda ZeroNet-protokollet;
  • Lade till offlineläge;
  • Tillagd UiPluginManager plugin för att installera och hantera tredjeparts plugins;
  • Fullständigt stöd för OpenSSL 1.1 tillhandahålls;
  • När du ansluter till peers används dummy SNI- och ALPN-poster för att göra anslutningar mer lik anrop till vanliga webbplatser över HTTPS;

Samma dag som ZeroNet 0.7.0 släpptes bildas uppdatering 0.7.1, som eliminerar en farlig sårbarhet som potentiellt tillåter kodexekvering på klientsidan. På grund av ett fel i koden för rendering av mallvariabler kan en öppen extern webbplats upprätta en anslutning till klientsystemet via WebSocket med obegränsade ADMIN/NOSANDBOX-rättigheter, vilket gör det möjligt att ändra konfigurationsparametrar och exekvera dess kod på användarens dator genom att manipulationer med parametern open_browser.
Sårbarheten förekommer i gren 0.7, såväl som i experimentella byggnader med början från revisionen 4188 (ändring gjord för 20 dagar sedan).

Källa: opennet.ru

Lägg en kommentar