Vydání ZeroNet 0.7, platformy pro vytváření decentralizovaných webových stránek

Po roce vývoje bylo uvolněno vydání decentralizované webové platformy ZeroNet 0.7, která navrhuje používat mechanismy adresování a ověřování Bitcoinu v kombinaci s technologiemi distribuovaného doručování BitTorrentu k vytváření stránek, které nelze cenzurovat, padělat ani blokovat. Obsah stránek je uložen v P2P síti na počítačích návštěvníků a je ověřen pomocí digitálního podpisu majitele. K adresování se používá systém alternativních kořenových DNS serverů Namecoin. Projekt je napsán v Pythonu a distribuovány pod licencí GPLv2.

Údaje zveřejněné na webu jsou ověřeny a propojeny s účtem vlastníka webu, podobně jako u bitcoinových peněženek, což také umožňuje kontrolovat relevanci informací a aktualizovat obsah v reálném čase. Ke skrytí IP adres lze použít anonymní síť Tor, jejíž podpora je integrována do ZeroNet. Uživatel se podílí na distribuci všech stránek, na které přistupoval. Po stažení do místního systému se soubory uloží do mezipaměti a zpřístupní se pro distribuci z aktuálního počítače pomocí metod připomínajících BitTorrent.

Chcete-li zobrazit stránky ZeroNet, stačí spustit skript zeronet.py, po kterém můžete otevřít stránky v prohlížeči prostřednictvím adresy URL „http://127.0.0.1:43110/zeronet_address“ (například „http://127.0.0.1 :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D”). Při otevření webové stránky program vyhledá blízké partnery a stáhne soubory spojené s požadovanou stránkou (html, css, obrázky atd.).
Chcete-li vytvořit svůj web, stačí spustit příkaz „zeronet.py siteCreate“, po kterém bude vygenerován identifikátor webu a soukromý klíč pro potvrzení autorství pomocí digitálního podpisu.

Pro vytvořený web se vytvoří prázdný adresář ve tvaru „data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D“. Po změně obsahu tohoto adresáře musí být nová verze certifikována pomocí příkazu „zeronet.py siteSign site_identifier“ a zadáním soukromého klíče. Jakmile je nový obsah ověřen, je třeba jej oznámit příkazem „zeronet.py sitePublish site_id“, aby byla změněná verze dostupná pro ostatní uživatele (k oznámení změn se používá rozhraní WebSocket API). V rámci řetězce kolegové zkontrolují integritu nové verze pomocí digitálního podpisu, stáhnou nový obsah a přenesou jej dalším kolegům.

hlavní možnosti:

  • Neexistuje jediný bod selhání – web zůstává přístupný, pokud je v distribuci alespoň jeden peer;
  • Nedostatek referenčního úložiště pro web - web nelze uzavřít odpojením hostingu, protože data jsou umístěna na všech strojích návštěvníků;
  • Všechny dříve zobrazené informace jsou v mezipaměti a jsou přístupné z aktuálního počítače v režimu offline, bez přístupu do globální sítě.
  • Podpora aktualizace obsahu v reálném čase;
  • Možnost adresování prostřednictvím registrace domény v zóně „.bit“;
  • Práce bez předběžného nastavení – stačí rozbalit archiv se softwarem a spustit jeden skript;
  • Schopnost klonovat webové stránky jedním kliknutím;
  • Autentizace bez hesla na základě formátu BIP32: účet je chráněn stejnou kryptografickou metodou jako kryptoměna Bitcoin;
  • Vestavěný SQL server s funkcemi P2P synchronizace dat;
  • Možnost používat Tor pro anonymitu a plnou podporu používání Tor skrytých služeb (.onion) místo IPv4 adres;
  • podpora šifrování TLS;
  • Automatická dostupnost přes uPnP;
  • Možnost připojení několika autorů s různými digitálními podpisy na stránku;
  • Dostupnost pluginu pro vytváření konfigurací pro více uživatelů (openproxy);
  • Podpora pro vysílání zpravodajských kanálů;
  • Funguje ve všech prohlížečích a operačních systémech.

Hlavní změny v ZeroNet 0.7

  • Kód byl přepracován tak, aby podporoval Python3 a zajistil kompatibilitu s Pythonem 3.4-3.8;
  • Byl implementován režim synchronizace chráněné databáze;
  • Tam, kde to bylo možné, byla hlavní distribuce knihoven třetích stran ukončena ve prospěch externích závislostí;
  • Kód pro ověřování digitálních podpisů byl zrychlen 5-10krát (používá se knihovna libsecp256k1;
  • Přidána randomizace již vygenerovaných certifikátů pro obcházení filtrů;
  • P2P kód byl aktualizován tak, aby používal protokol ZeroNet;
  • Přidán režim offline;
  • Přidán plugin UiPluginManager pro instalaci a správu pluginů třetích stran;
  • Je poskytována plná podpora pro OpenSSL 1.1;
  • Při připojování k peerům se používají fiktivní záznamy SNI a ALPN, aby se spojení více podobalo voláním na běžné stránky přes HTTPS;

Ve stejný den jako vydání ZeroNet 0.7.0 vytvořený aktualizace 0.7.1, která eliminuje nebezpečnou chybu zabezpečení, která potenciálně umožňuje spuštění kódu na straně klienta. Kvůli chybě v kódu pro vykreslování proměnných šablon může otevřený externí web navázat spojení s klientským systémem přes WebSocket s neomezenými právy ADMIN/NOSANDBOX, což umožňuje měnit konfigurační parametry a spouštět jeho kód na počítači uživatele přes manipulace s parametrem open_browser.
Chyba zabezpečení se objevuje ve větvi 0.7 a také v experimentálních sestaveních počínaje revizí 4188 (změna provedena před 20 dny).

Zdroj: opennet.ru

Přidat komentář