Efter et års udvikling er den decentraliserede webplatform blevet lanceret , som tilbyder brugen af adresserings- og verificeringsmekanismer fra Bitcoin kombineret med BitTorrents distribuerede leveringsmetoder til at skabe websteder, der ikke kan censureres, forfalskes eller blokeres. Indholdet af webstederne opbevares i et P2P-netværk på besøgendes maskiner og verificeres via ejerens digitale signatur. Der anvendes et system af alternative roddns-servere til adressering . Projektet er skrevet i Python og er under GPLv2-licensen.
Data, der er hostet på webstedet, er verificeret og knyttet til ejerens konto på samme måde som bindningerne til Bitcoin-tegnebøger, hvilket også giver mulighed for at kontrollere informationsnøjagtigheden og opdatere indholdet i realtid. For at skjule IP-adresser kan det anonyme netværk Tor anvendes, hvilket er indbygget i ZeroNet. Brugeren deltager i delingen af alle websteder, de har besøgt. Efter download til det lokale system gemmes filerne i cachen og bliver tilgængelige for deling fra den nuværende maskine ved hjælp af metoder, der minder om BitTorrent.
For at besøge ZeroNet-websteder er det tilstrækkeligt at starte skriptet zeronet.py, hvorefter man kan åbne websteder i browseren via URL "http://127.0.0.1:43110/zeronet_adresse" (f.eks. "http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D"). Når et websted åbnes, finder programmet de nærmeste peers og downloader de filer, der er knyttet til den anmodede side (html, css, billeder osv.).
For at oprette sit eget websted er det tilstrækkeligt at køre kommandoen "zeronet.py siteCreate", hvorefter der genereres en webstedsidentifikator og en privat nøgle til at bekræfte ejerskab gennem digital signatur.
For det oprettede websted vil en tom mappe med navnet "data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D" blive oprettet. Efter at have ændret indholdet af denne mappe, er det nødvendigt at godkende den nye version med kommandoen "zeronet.py siteSign webstedsidentifikator" og indtastning af den private nøgle. Så snart det nye indhold er godkendt, skal det annonceres med kommandoen "zeronet.py sitePublish webstedsidentifikator", så den ændrede version bliver tilgængelig for peers (til annoncering af ændringer bruges WebSocket API). Gennem kæden vil peers kontrollere integriteten af den nye version via digital signatur, downloade det nye indhold og overføre det til andre peers.
Vigtige :
- Fraværet af et enkelt punkt for fejlsikring — hjemmesiden forbliver tilgængelig, så længe der er mindst én peer i distributionen;
- Fraværet af et reference-lager for hjemmesiden — hjemmesiden kan ikke lukkes ved at deaktivere hosting, da data er placeret på alle besøgendes maskiner;
- Al tidligere set information er gemt i cachen og tilgængelig fra den nuværende maskine i offline-tilstand, uden at skulle tilgå internettet.
- Understøttelse af realtids opdatering af indhold;
- Mulighed for adressering via registrering af domæne i zonen '.bit';
- Fungerer uden forudgående opsætning — det er nok at udpakkede softwarepakken og køre ét script;
- Mulighed for kloning af websites med ét klik;
- Password-fri autorisation baseret på formatet : kontoen er beskyttet med den samme kryptografiske metode som kryptovalutaen Bitcoin;
- Indbygget SQL-server med P2P-datasynkroniseringsfunktioner;
- Mulighed for at bruge Tor for anonymitet og fuld støtte til brug af skjulte Tor-tjenester (.onion) i stedet for IPv4-adresser;
- Understøttelse af TLS-kryptering;
- Automatisk tilgængelighed via uPnP;
- Mulighed for at tilknytte flere forfattere til siden, der har forskellige digitale underskrifter;
- Tilstedeværelse af en plugin til oprettelse af multi-bruger konfigurationer (openproxy);
- Understøttelse af transmission af nyhedsstreams;
- Fungerer i alle browsere og operativsystemer.
De vigtigste ændringer i ZeroNet 0.7
- Koden er omarbejdet til at understøtte Python3, hvilket sikrer kompatibilitet med Python 3.4-3.8;
- Implementeret en sikker database-synkroniseringsmode;
- Hvor det er muligt, er levering af eksterne biblioteker blevet indstillet til fordel for eksterne afhængigheder;
- Koden til verifikation af digitale underskrifter er blevet 5-10 gange hurtigere (libsecp256k1 biblioteket anvendt);
- Tilføjet tilfældig generering af allerede genererede certifikater for at omgå filtre;
- Opdateret P2P-kode, der er overgået til brug af ZeroNet-protokollen;
- Tilføjet offline-tilstand;
- Tilføjet plugin UiPluginManager til installation og administration af tredjeparts plugins;
- Fuld støtte til OpenSSL 1.1;
- Ved forbindelse til peers anvendes falske SNI- og ALPN-poster for at gøre forbindelserne mere lig normale anmodninger til almindelige hjemmesider via HTTPS;
På samme dag som udgivelsen af ZeroNet 0.7.0 Opdatering 0.7.1, som fikser en kritisk sårbarhed, der potentielt tillader eksekvering af kode på klientsiden. På grund af en fejl i koden til rendering af skabelonvariabler kan en offentlig webside etablere en forbindelse til klientens system via WebSocket med ubegrænsede ADMIN/NOSANDBOX-rettigheder, hvilket gør det muligt at ændre konfigurationsparametre og få eksekveret sin egen kode på brugerens computer gennem manipulation af parameteren open_browser.
Sårbarheden optræder i version 0.7 samt i eksperimentelle builds fra revision. (ændring foretaget for 20 dage siden).
Kilde: opennet.ru
