Izdanje ZeroNet 0.7, platforme za izradu decentraliziranih web stranica
Nakon godinu dana razvoja, objavljeno je izdanje decentralizirane web platforme ZeroNet 0.7, koji predlaže korištenje Bitcoin-ovih mehanizama za adresiranje i provjeru u kombinaciji s BitTorrentovim distribuiranim tehnologijama isporuke za stvaranje stranica koje se ne mogu cenzurirati, krivotvoriti ili blokirati. Sadržaj web stranica pohranjuje se u P2P mreži na strojevima posjetitelja i provjerava se digitalnim potpisom vlasnika. Za adresiranje se koristi sustav alternativnih korijenskih DNS poslužitelja Namecoin. Projekt je napisan u Pythonu i distribuira licenciran pod GPLv2.
Podaci objavljeni na stranici provjeravaju se i povezuju s računom vlasnika stranice, slično povezivanju Bitcoin novčanika, što također omogućuje kontrolu relevantnosti informacija i ažuriranje sadržaja u stvarnom vremenu. Za skrivanje IP adresa može se koristiti anonimna mreža Tor čija je podrška ugrađena u ZeroNet. Korisnik sudjeluje u distribuciji svih stranica kojima je pristupio. Nakon preuzimanja na lokalni sustav, datoteke se pohranjuju u predmemoriju i stavljaju na raspolaganje za distribuciju s trenutnog stroja koristeći metode koje podsjećaju na BitTorrent.
Za pregled ZeroNet stranica samo pokrenite skriptu zeronet.py, nakon čega možete otvoriti stranice u pregledniku preko URL-a “http://127.0.0.1:43110/zeronet_address” (na primjer, “http://127.0.0.1 :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D”) . Prilikom otvaranja web stranice, program pronalazi obližnje peere i preuzima datoteke povezane sa traženom stranicom (html, css, slike, itd.).
Da biste kreirali svoju stranicu, samo pokrenite naredbu “zeronet.py siteCreate”, nakon čega će se generirati identifikator stranice i privatni ključ za potvrdu autorstva pomoću digitalnog potpisa.
Za kreiranu stranicu, kreirat će se prazan imenik u obliku “data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D”. Nakon promjene sadržaja ovog direktorija, nova verzija mora biti certificirana pomoću naredbe “zeronet.py siteSign site_identifier” i unosom privatnog ključa. Nakon što je novi sadržaj verificiran, potrebno ga je najaviti naredbom “zeronet.py sitePublish site_id” tako da promijenjena verzija postane dostupna peerovima (WebSocket API koristi se za objavu promjena). U lancu će ravnopravni korisnici provjeravati integritet nove verzije pomoću digitalnog potpisa, preuzimati novi sadržaj i prenositi ga drugim ravnopravnim korisnicima.
Ne postoji jedinstvena točka neuspjeha - stranica ostaje dostupna ako postoji barem jedan peer u distribuciji;
Nedostatak referentne pohrane za web mjesto - web mjesto se ne može zatvoriti isključivanjem hostinga, jer se podaci nalaze na svim računalima posjetitelja;
Sve prethodno pregledane informacije nalaze se u predmemoriji i dostupne su s trenutnog stroja u izvanmrežnom načinu rada, bez pristupa globalnoj mreži.
Podržava ažuriranje sadržaja u stvarnom vremenu;
Mogućnost adresiranja putem registracije domene u “.bit” zoni;
Radite bez preliminarnog podešavanja - samo raspakirajte arhivu sa softverom i pokrenite jednu skriptu;
Mogućnost kloniranja web stranica jednim klikom;
Provjera autentičnosti bez lozinke temeljena na formatu BIP32: račun je zaštićen istom kriptografskom metodom kao i kriptovaluta Bitcoin;
Ugrađeni SQL poslužitelj s P2P funkcijama sinkronizacije podataka;
Mogućnost korištenja Tor-a za anonimnost i punu podršku za korištenje Tor skrivenih usluga (.onion) umjesto IPv4 adresa;
podrška za TLS enkripciju;
Automatska dostupnost putem uPnP;
Mogućnost dodavanja više autora s različitim digitalnim potpisima na stranicu;
Dostupnost dodatka za stvaranje višekorisničkih konfiguracija (openproxy);
Podrška za emitiranje feedova vijesti;
Radi u svim preglednicima i operativnim sustavima.
Glavne promjene u ZeroNet 0.7
Kod je prerađen za podršku Python3, osiguravajući kompatibilnost s Python 3.4-3.8;
Implementiran je zaštićeni način sinkronizacije baze podataka;
Gdje je to bilo moguće, glavna distribucija biblioteka trećih strana prekinuta je u korist vanjskih ovisnosti;
Kod za provjeru digitalnog potpisa ubrzan je 5-10 puta (koristi se biblioteka libsecp256k1;
Dodana randomizacija već generiranih certifikata za zaobilaženje filtara;
P2P kod je ažuriran za korištenje ZeroNet protokola;
Dodan izvanmrežni način rada;
Dodan dodatak UiPluginManager za instaliranje i upravljanje dodacima trećih strana;
Osigurana je puna podrška za OpenSSL 1.1;
Pri povezivanju s peerovima, lažni SNI i ALPN zapisi koriste se kako bi veze bile sličnije pozivima na redovita mjesta preko HTTPS-a;
Isti dan kao i izdanje ZeroNet 0.7.0 formirana ažuriranje 0.7.1, koje uklanja opasnu ranjivost koja potencijalno dopušta izvršavanje koda na strani klijenta. Zbog greške u kodu za renderiranje varijabli predloška, otvoreno vanjsko mjesto može uspostaviti vezu s klijentskim sustavom putem WebSocket-a s neograničenim ADMIN/NOSANDBOX pravima, što omogućuje promjenu konfiguracijskih parametara i postizanje izvršenja svog koda na korisničkom računalo kroz manipulacije parametrom open_browser.
Ranjivost se pojavljuje u grani 0.7, kao iu eksperimentalnim verzijama počevši od revizije 4188 (promjena prije 20 dana).