Izdanje ZeroNet 0.7, platforme za kreiranje decentralizovanih 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 verifikaciju u kombinaciji sa BitTorrent-ovim tehnologijama distribuirane isporuke za kreiranje stranica koje ne mogu biti cenzurirane, krivotvorene ili blokirane. Sadržaj stranica pohranjuje se u P2P mrežu na strojevima posjetitelja i provjerava se digitalnim potpisom vlasnika. Za adresiranje se koristi sistem alternativnih root DNS servera Namecoin. Projekat je napisan na Python-u i distribuira licenciran pod GPLv2.
Podaci objavljeni na sajtu su verifikovani i povezani sa nalogom vlasnika sajta, slično povezivanju Bitcoin novčanika, što takođe omogućava kontrolu relevantnosti informacija i ažuriranje sadržaja u realnom vremenu. Za skrivanje IP adresa može se koristiti anonimna Tor mreža čija je podrška ugrađena u ZeroNet. Korisnik učestvuje u distribuciji svih stranica kojima je pristupio. Kada se preuzmu na lokalni sistem, fajlovi se keširaju i stavljaju na raspolaganje za distribuciju sa trenutnog računara koristeći metode koje podsećaju na BitTorrent.
Da biste pregledali ZeroNet stranice, samo pokrenite zeronet.py skriptu, nakon čega možete otvoriti web lokacije u pretraživaču putem URL-a “http://127.0.0.1:43110/zeronet_address” (na primjer, “http://127.0.0.1 :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D”) . Kada otvorite web stranicu, program pronalazi obližnje kolege 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 direktorij 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 potvrđen, potrebno ga je najaviti naredbom “zeronet.py sitePublish site_id” kako bi promijenjena verzija postala dostupna kolegama (za najavu promjena koristi se WebSocket API). U lancu, kolege će provjeriti integritet nove verzije pomoću digitalnog potpisa, preuzeti novi sadržaj i prenijeti ga drugim kolegama.
Ne postoji jedinstvena tačka kvara - lokacija ostaje dostupna ako postoji barem jedan peer u distribuciji;
Nedostatak referentne memorije za stranicu - stranica se ne može zatvoriti isključivanjem hostinga, jer se podaci nalaze na svim mašinama posjetitelja;
Sve prethodno pregledane informacije nalaze se u keš memoriji i dostupne su sa trenutnog uređaja u offline modu, bez pristupa globalnoj mreži.
Podrška ažuriranju sadržaja u realnom vremenu;
Mogućnost adresiranja putem registracije domena u “.bit” zoni;
Radite bez preliminarne postavke - samo raspakujte arhivu sa softverom i pokrenite jednu skriptu;
Mogućnost kloniranja web stranica jednim klikom;
Provjera autentičnosti bez lozinke zasnovana na formatu BIP32: račun je zaštićen istom kriptografskom metodom kao i Bitcoin kriptovaluta;
Ugrađeni SQL server sa P2P funkcijama sinhronizacije podataka;
Mogućnost korištenja Tor-a za anonimnost i punu podršku za korištenje Tor skrivenih servisa (.onion) umjesto IPv4 adresa;
podrška za TLS enkripciju;
Automatska dostupnost putem uPnP-a;
Mogućnost dodavanja više autora sa različitim digitalnim potpisima na stranicu;
Dostupnost dodatka za kreiranje višekorisničkih konfiguracija (openproxy);
Podrška za emitiranje vijesti;
Radi u svim pretraživačima i operativnim sistemima.
Velike promjene u ZeroNet 0.7
Kod je prerađen da podržava Python3, osiguravajući kompatibilnost sa Python 3.4-3.8;
Implementiran je način sinkronizacije zaštićene baze podataka;
Gdje je to moguće, glavna distribucija biblioteka trećih strana je prekinuta u korist vanjskih ovisnosti;
Kod za provjeru digitalnih potpisa je ubrzan 5-10 puta (koristi se biblioteka libsecp256k1;
Dodano nasumično odabiranje već generiranih certifikata radi zaobilaženja filtera;
P2P kod je ažuriran da koristi ZeroNet protokol;
Dodan način rada van mreže;
Dodan dodatak UiPluginManager za instaliranje i upravljanje dodacima trećih strana;
Obezbeđena je puna podrška za OpenSSL 1.1;
Prilikom povezivanja s ravnopravnim korisnicima, lažni SNI i ALPN zapisi se koriste da bi veze bile sličnije pozivima na obične stranice preko HTTPS-a;
Isti dan kada i ZeroNet 0.7.0 izdanje formirana ažuriranje 0.7.1, koje eliminiše opasnu ranjivost koja potencijalno dozvoljava izvršavanje koda na strani klijenta. Zbog greške u kodu za iscrtavanje varijabli šablona, otvoreni eksterni sajt može uspostaviti vezu sa klijentskim sistemom preko WebSocket-a sa neograničenim ADMIN/NOSANDBOX pravima, što omogućava promenu konfiguracionih parametara i izvršavanje svog koda na računaru korisnika putem manipulacije sa parametrom open_browser.
Ranjivost se pojavljuje u grani 0.7, kao iu eksperimentalnim verzijama počevši od revizije 4188 (promjena napravljena prije 20 dana).