Po roce vývoje se světlo světa dočkalo vydání decentralizované webové platformy , která nabízí využití mechanismů adresace a verifikace Bitcoin v kombinaci s technologiemi distribuované dodávky BitTorrent k vytvoření webových stránek, které nelze cenzurovat, falšovat nebo blokovat. Obsah webových stránek je uchováván v P2P síti na počítačích návštěvníků a ověřován pomocí digitálního podpisu vlastníka. K adresaci se používá systém alternativních kořenových DNS serverů . Projekt je napsán v Pythonu a pod licencí GPLv2.
Zveřejněná data na webu jsou ověřena a spojena s účtem vlastníka webu podobně jako spojení Bitcoin peněženek, což také umožňuje sledování aktuálnosti informací a aktualizaci obsahu v reálném čase. Pro skrytí IP adres může být použita anonymní síť Tor, jejíž podpora je integrovaná do ZeroNet. Uživatel se účastní sdílení všech stránek, které navštívil. Po stažení na lokální systém se soubory ukládají do cache a stávají se dostupnými pro sdílení z aktuálního zařízení, pomocí metod připomínajících BitTorrent.
Pro prohlížení webových stránek ZeroNet stačí spustit skript zeronet.py, po čemž lze v prohlížeči otevírat stránky prostřednictvím URL „http://127.0.0.1:43110/adresa_zeronet“ (například „http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D“). Při otevření stránky program hledá nejbližší peer a stahuje související soubory s požadovanou stránkou (html, css, obrázky atd.).
Pro vytvoření vlastního webu stačí spustit příkaz „zeronet.py siteCreate“, po čemž bude vygenerováno ID webu a soukromý klíč pro potvrzení autorství pomocí digitálního podpisu.
Pro vytvořený web bude vytvořen prázdný adresář typu „data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D“. Po změně obsahu tohoto adresáře je třeba nové verze ověřit pomocí příkazu „zeronet.py siteSign identifikátor_webu“ a zadáním soukromého klíče. Jakmile bude nový obsah ověřen, je třeba ho oznámit příkazem „zeronet.py sitePublish identifikátor_webu“, aby se změněná verze stala dostupnou peerům (pro ohlášení změn se používá API WebSocket). Po řetězci peerové zkontrolují integritu nové verze pomocí digitálního podpisu, stáhnou nový obsah a předají ho dalším peerům.
Hlavní :
- Absence of a single point of failure — the site remains accessible as long as there is at least one peer in the distribution;
- Absence of a reference storage for the site — the site cannot be shut down by disconnecting hosting, since the data is distributed among all visitor machines;
- All previously viewed information is cached and available from the current machine in offline mode, without accessing the global network.
- Support for real-time content updates;
- Ability to address through domain registration in the '.bit' zone;
- Works without preconfiguration — just unpack the software archive and run a single script;
- Ability to clone sites with one click;
- Passwordless authorization based on the format : the account is protected by the same cryptographic method as Bitcoin cryptocurrency;
- Built-in SQL server with P2P data synchronization features;
- Ability to use Tor for anonymity and full support for using Tor hidden services (.onion) instead of IPv4 addresses;
- Support for TLS encryption;
- Automatic availability via uPnP;
- Ability to attach multiple authors to the site, each with different digital signatures;
- Presence of a plugin for creating multi-user configurations (openproxy);
- Support for streaming news feeds;
- Works in all browsers and operating systems.
Main changes in ZeroNet 0.7
- Code refactored to support Python3, compatibility assured with Python 3.4-3.8;
- A secure database synchronization mode has been implemented;
- As much as possible, the supply of third-party libraries has ceased in favor of external dependencies;
- Code for verifying digital signatures sped up by 5-10 times (using the libsecp256k1 library;
- Randomization of already generated certificates added to bypass filters;
- Aktualizován kód P2P, který byl převeden na použití protokolu ZeroNet;
- Offline mode added;
- UiPluginManager plugin added for installation and management of third-party plugins;
- Full support for OpenSSL 1.1 ensured;
- When connecting with peers, fake SNI and ALPN records are used to make connections appear more like requests to regular sites over HTTPS;
On the same day as the release of ZeroNet 0.7.0 Aktualizace 0.7.1, která odstraňuje nebezpečnou zranitelnost, jež potenciálně umožňuje provést vykonání kódu na straně klienta. V důsledku chyby v kódu vykreslování proměnných šablon může otevřená externí stránka navázat spojení se systémem klienta prostřednictvím WebSocketu s neomezenými právy ADMIN/NOSANDBOX, což umožňuje změnit konfigurační parametry a dosáhnout provedení svého kódu na počítači uživatele manipulací s parametrem open_browser.
Zranitelnost se projevuje ve větvi 0.7, stejně jako v experimentálních verzích od revize. (změna provedena před 20 dny).
Zdroj: opennet.ru
