Vydanie ZeroNet 0.7, platformy na vytváranie decentralizovaných webových stránok

Po roku vývoja bolo uvoľnené vydanie decentralizovanej webovej platformy ZeroNet 0.7, ktorá navrhuje použitie mechanizmov adresovania a overovania Bitcoinu v kombinácii s technológiami distribuovaného doručovania BitTorrentu na vytváranie stránok, ktoré nemožno cenzurovať, falšovať ani blokovať. Obsah stránok je uložený v P2P sieti na počítačoch návštevníkov a je overený pomocou digitálneho podpisu majiteľa. Na adresovanie sa používa systém alternatívnych koreňových DNS serverov Namecoin. Projekt je napísaný v jazyku Python a distribuovaný pod licenciou GPLv2.

Údaje zverejnené na stránke sú overené a prepojené s účtom vlastníka stránky, podobne ako pri prepájaní bitcoinových peňaženiek, čo tiež umožňuje kontrolovať relevantnosť informácií a aktualizovať obsah v reálnom čase. Na skrytie IP adries možno použiť anonymnú sieť Tor, ktorej podpora je zabudovaná do ZeroNet. Používateľ sa podieľa na distribúcii všetkých stránok, na ktoré pristupoval. Po stiahnutí do lokálneho systému sa súbory uložia do vyrovnávacej pamäte a sprístupnia sa na distribúciu z aktuálneho počítača pomocou metód pripomínajúcich BitTorrent.

Ak chcete zobraziť stránky ZeroNet, stačí spustiť skript zeronet.py, po ktorom môžete otvárať stránky v prehliadači prostredníctvom adresy URL „http://127.0.0.1:43110/zeronet_address“ (napríklad „http://127.0.0.1 :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D”). Pri otvorení webovej stránky program nájde blízkych kolegov a stiahne súbory spojené s požadovanou stránkou (html, css, obrázky atď.).
Ak chcete vytvoriť svoju stránku, stačí spustiť príkaz „zeronet.py siteCreate“, po ktorom sa vygeneruje identifikátor stránky a súkromný kľúč na potvrdenie autorstva pomocou digitálneho podpisu.

Pre vytvorenú stránku sa vytvorí prázdny adresár v tvare “data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D”. Po zmene obsahu tohto adresára musí byť nová verzia certifikovaná pomocou príkazu „zeronet.py siteSign site_identifier“ a zadaním súkromného kľúča. Po overení nového obsahu je potrebné ho oznámiť príkazom „zeronet.py sitePublish site_id“, aby bola zmenená verzia dostupná pre ostatných používateľov (na oznamovanie zmien sa používa rozhranie WebSocket API). V rámci reťazca partneri skontrolujú integritu novej verzie pomocou digitálneho podpisu, stiahnu nový obsah a prenesú ho na iných partnerov.

Hlavné príležitosti:

  • Neexistuje jediný bod zlyhania – lokalita zostáva prístupná, ak je v distribúcii aspoň jeden partner;
  • Nedostatok referenčného úložiska pre stránku - stránka nemôže byť uzavretá odpojením hostingu, pretože údaje sú umiestnené na všetkých počítačoch návštevníkov;
  • Všetky predtým zobrazené informácie sú vo vyrovnávacej pamäti a sú prístupné z aktuálneho počítača v režime offline, bez prístupu do globálnej siete.
  • Podpora aktualizácie obsahu v reálnom čase;
  • Možnosť adresovania prostredníctvom registrácie domény v zóne „.bit“;
  • Pracujte bez predbežného nastavenia - stačí rozbaliť archív so softvérom a spustiť jeden skript;
  • Schopnosť klonovať webové stránky jedným kliknutím;
  • Autentifikácia bez hesla na základe formátu BIP32: účet je chránený rovnakou kryptografickou metódou ako kryptomena Bitcoin;
  • Vstavaný SQL server s funkciami P2P synchronizácie dát;
  • Možnosť používať Tor pre anonymitu a plnú podporu používania Tor skrytých služieb (.onion) namiesto IPv4 adries;
  • podpora šifrovania TLS;
  • Automatická dostupnosť cez uPnP;
  • Možnosť pripojenia viacerých autorov s rôznymi digitálnymi podpismi na stránku;
  • Dostupnosť pluginu na vytváranie konfigurácií pre viacerých používateľov (openproxy);
  • Podpora pre vysielanie spravodajských kanálov;
  • Funguje vo všetkých prehliadačoch a operačných systémoch.

Hlavné zmeny v ZeroNet 0.7

  • Kód bol prepracovaný tak, aby podporoval Python3, čím sa zabezpečila kompatibilita s Pythonom 3.4-3.8;
  • Bol implementovaný chránený režim synchronizácie databázy;
  • Kde to bolo možné, hlavná distribúcia knižníc tretích strán bola prerušená v prospech externých závislostí;
  • Kód na overovanie digitálnych podpisov bol zrýchlený 5-10 krát (používa sa knižnica libsecp256k1;
  • Pridaná randomizácia už vygenerovaných certifikátov na obídenie filtrov;
  • P2P kód bol aktualizovaný tak, aby používal protokol ZeroNet;
  • Pridaný režim offline;
  • Pridaný doplnok UiPluginManager na inštaláciu a správu doplnkov tretích strán;
  • Poskytuje sa plná podpora pre OpenSSL 1.1;
  • Pri pripájaní k partnerom sa používajú fiktívne záznamy SNI a ALPN, aby sa pripojenia viac podobali volaniam na bežné stránky cez HTTPS;

V rovnaký deň ako vydanie ZeroNet 0.7.0 tvorené aktualizácia 0.7.1, ktorá eliminuje nebezpečnú zraniteľnosť, ktorá potenciálne umožňuje spustenie kódu na strane klienta. Kvôli chybe v kóde pre vykresľovanie premenných šablón môže otvorená externá lokalita nadviazať spojenie s klientskym systémom cez WebSocket s neobmedzenými právami ADMIN/NOSANDBOX, čo umožňuje meniť konfiguračné parametre a spúšťať jej kód na počítači používateľa cez manipulácie s parametrom open_browser.
Zraniteľnosť sa objavuje vo vetve 0.7, ako aj v experimentálnych zostavách počnúc revíziou 4188 (zmena vykonaná pred 20 dňami).

Zdroj: opennet.ru

Pridať komentár