Udgivelse af ZeroNet 0.7, en platform til at skabe decentraliserede websteder

Efter et års udvikling blev frigivelsen af ​​en decentraliseret webplatform frigivet ZeroNet 0.7, som foreslår at bruge Bitcoins adresserings- og verifikationsmekanismer i kombination med BitTorrents distribuerede leveringsteknologier til at skabe websteder, der ikke kan censureres, forfalskes eller blokeres. Indholdet af websteder gemmes i et P2P-netværk på besøgendes maskiner og verificeres ved hjælp af ejerens digitale signatur. Et system med alternative rod-DNS-servere bruges til adressering Namecoin. Projektet er skrevet i Python og distribueret af licenseret under GPLv2.

De data, der er postet på webstedet, er verificeret og knyttet til webstedsejerens konto, i lighed med linkningen af ​​Bitcoin-punge, hvilket også gør det muligt at kontrollere relevansen af ​​information og opdatere indhold i realtid. For at skjule IP-adresser kan det anonyme Tor-netværk bruges, som understøttes indbygget i ZeroNet. Brugeren deltager i distributionen af ​​alle websteder, han besøgte. Når filerne er downloadet til det lokale system, cachelagres de og gøres tilgængelige for distribution fra den aktuelle maskine ved hjælp af metoder, der minder om BitTorrent.

For at se ZeroNet-websteder skal du bare køre zeronet.py-scriptet, hvorefter du kan åbne websteder i browseren via URL'en "http://127.0.0.1:43110/zeronet_address" (f.eks. "http://127.0.0.1 :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D") . Når du åbner et websted, finder programmet nærliggende peers og downloader filer, der er knyttet til den anmodede side (html, css, billeder osv.).
For at oprette dit websted skal du bare køre kommandoen "zeronet.py siteCreate", hvorefter en websteds-id og en privat nøgle vil blive genereret for at bekræfte forfatterskabet ved hjælp af en digital signatur.

For det oprettede websted vil en tom mappe med formen "data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D" blive oprettet. Efter at have ændret indholdet af denne mappe, skal den nye version certificeres ved at bruge kommandoen "zeronet.py siteSign site_identifier" og indtaste den private nøgle. Når det nye indhold er blevet bekræftet, skal det annonceres med kommandoen "zeronet.py sitePublish site_id", så den ændrede version bliver tilgængelig for peers (WebSocket API bruges til at annoncere ændringer). Langs kæden vil peers kontrollere integriteten af ​​den nye version ved hjælp af en digital signatur, downloade det nye indhold og overføre det til andre peers.

The main muligheder:

  • Der er ikke noget enkelt point of failure - webstedet forbliver tilgængeligt, hvis der er mindst én peer i distributionen;
  • Manglende referencelagring for webstedet - webstedet kan ikke lukkes ved at afbryde hosting, da dataene er placeret på alle besøgendes maskiner;
  • Al tidligere set information er i cachen og er tilgængelig fra den aktuelle maskine i offlinetilstand uden adgang til det globale netværk.
  • Understøtter indholdsopdatering i realtid;
  • Mulighed for adressering gennem domæneregistrering i ".bit"-zonen;
  • Arbejd uden foreløbig opsætning - bare udpak arkivet med softwaren og kør ét script;
  • Evne til at klone websteder med et enkelt klik;
  • Formatbaseret autentificering uden adgangskode BIP32: kontoen er beskyttet af den samme kryptografiske metode som Bitcoin kryptovaluta;
  • Indbygget SQL-server med P2P-datasynkroniseringsfunktioner;
  • Muligheden for at bruge Tor til anonymitet og fuld support til at bruge Tor skjulte tjenester (.onion) i stedet for IPv4-adresser;
  • TLS kryptering understøttelse;
  • Automatisk tilgængelighed via uPnP;
  • Mulighed for at knytte flere forfattere med forskellige digitale signaturer til siden;
  • Tilgængelighed af et plugin til oprettelse af flerbrugerkonfigurationer (openproxy);
  • Support til udsendelse af nyhedsfeeds;
  • Virker i alle browsere og operativsystemer.

Større ændringer i ZeroNet 0.7

  • Koden er blevet omarbejdet til at understøtte Python3, hvilket sikrer kompatibilitet med Python 3.4-3.8;
  • En beskyttet databasesynkroniseringstilstand er blevet implementeret;
  • Hvor det er muligt, er hoveddistributionen af ​​tredjepartsbiblioteker blevet afbrudt til fordel for eksterne afhængigheder;
  • Koden til verificering af digitale signaturer er blevet accelereret 5-10 gange (libsecp256k1-biblioteket bruges;
  • Tilføjet randomisering af allerede genererede certifikater til at omgå filtre;
  • P2P-koden er blevet opdateret til at bruge ZeroNet-protokollen;
  • Tilføjet offline-tilstand;
  • Tilføjet UiPluginManager plugin til installation og administration af tredjeparts plugins;
  • Fuld understøttelse af OpenSSL 1.1 leveres;
  • Når du forbinder til peers, bruges dummy SNI- og ALPN-poster til at gøre forbindelser mere lig opkald til almindelige websteder over HTTPS;

Samme dag som ZeroNet 0.7.0-udgivelsen dannet opdatering 0.7.1, som eliminerer en farlig sårbarhed, der potentielt tillader kodekørsel på klientsiden. På grund af en fejl i koden til gengivelse af skabelonvariabler kan et åbent eksternt site etablere forbindelse til klientsystemet via WebSocket med ubegrænsede ADMIN/NOSANDBOX-rettigheder, hvilket gør det muligt at ændre konfigurationsparametre og eksekvere sin kode på brugerens computer vha. manipulationer med parameteren open_browser.
Sårbarheden vises i gren 0.7, såvel som i eksperimentelle builds, der starter fra revisionen 4188 (ændring foretaget for 20 dage siden).

Kilde: opennet.ru

Tilføj en kommentar