Vrystelling van ZeroNet 0.7, 'n platform vir die skep van gedesentraliseerde webwerwe

Na 'n jaar van ontwikkeling is die vrystelling van 'n gedesentraliseerde webplatform vrygestel ZeroNet 0.7, wat voorstel om Bitcoin se aanspreek- en verifikasiemeganismes in kombinasie met BitTorrent se verspreide afleweringstegnologie te gebruik om webwerwe te skep wat nie gesensor, vervals of geblokkeer kan word nie. Die inhoud van werwe word in 'n P2P-netwerk op besoekers se masjiene gestoor en word geverifieer met behulp van die eienaar se digitale handtekening. 'n Stelsel van alternatiewe wortel-DNS-bedieners word vir adressering gebruik Namecoin. Die projek is geskryf in Python en versprei deur gelisensieer onder GPLv2.

Die data wat op die webwerf geplaas word, word geverifieer en gekoppel aan die rekening van die webwerf-eienaar, soortgelyk aan die koppeling van Bitcoin-beursies, wat dit ook moontlik maak om die relevansie van inligting te beheer en inhoud intyds op te dateer. Om IP-adresse te versteek, kan die anonieme Tor-netwerk gebruik word, waarvoor ondersteuning in ZeroNet ingebou is. Die gebruiker neem deel aan die verspreiding van alle webwerwe wat hy besoek het. Sodra dit na die plaaslike stelsel afgelaai is, word die lêers gekas en beskikbaar gestel vir verspreiding vanaf die huidige masjien met behulp van metodes wat aan BitTorrent herinner.

Om ZeroNet-webwerwe te sien, hardloop net die zeronet.py-skrip, waarna jy werwe in die blaaier kan oopmaak via die URL “http://127.0.0.1:43110/zeronet_address” (byvoorbeeld, “http://127.0.0.1) :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D") . Wanneer 'n webwerf oopgemaak word, vind die program nabygeleë eweknieë en laai lêers af wat verband hou met die versoekte bladsy (html, css, beelde, ens.).
Om jou webwerf te skep, voer net die opdrag "zeronet.py siteCreate" uit, waarna 'n webwerf-identifiseerder en 'n private sleutel gegenereer sal word om outeurskap te bevestig met behulp van 'n digitale handtekening.

Vir die geskepde webwerf sal 'n leë gids van die vorm "data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D" geskep word. Nadat die inhoud van hierdie gids verander is, moet die nuwe weergawe gesertifiseer word deur die opdrag "zeronet.py siteSign site_identifier" te gebruik en die private sleutel in te voer. Sodra die nuwe inhoud geverifieer is, moet dit aangekondig word met die opdrag "zeronet.py sitePublish site_id" sodat die veranderde weergawe beskikbaar word vir eweknieë (die WebSocket API word gebruik om veranderinge aan te kondig). Langs die ketting sal eweknieë die integriteit van die nuwe weergawe nagaan met behulp van 'n digitale handtekening, die nuwe inhoud aflaai en dit na ander eweknieë oordra.

Die belangrikste geleenthede:

  • Daar is geen enkele punt van mislukking nie - die webwerf bly toeganklik as daar ten minste een eweknie in die verspreiding is;
  • Gebrek aan verwysingsberging vir die webwerf - die webwerf kan nie gesluit word deur hosting te ontkoppel nie, aangesien die data op alle masjiene van besoekers geleë is;
  • Alle voorheen bekykte inligting is in die kas en is toeganklik vanaf die huidige masjien in vanlyn af, sonder toegang tot die globale netwerk.
  • Ondersteun intydse inhoudopdatering;
  • Moontlikheid van adressering deur domeinregistrasie in die “.bit”-sone;
  • Werk sonder voorlopige opstelling - pak net die argief met die sagteware uit en voer een skrip uit;
  • Vermoë om webwerwe met een klik te kloon;
  • Formaat-gebaseerde wagwoordlose verifikasie BIP32: die rekening word deur dieselfde kriptografiese metode as die Bitcoin-kripto-geldeenheid beskerm;
  • Ingeboude SQL bediener met P2P data sinchronisasie funksies;
  • Die vermoë om Tor te gebruik vir anonimiteit en volle ondersteuning vir die gebruik van Tor-verborge dienste (.onion) in plaas van IPv4-adresse;
  • TLS enkripsie ondersteuning;
  • Outomatiese toeganklikheid via uPnP;
  • Moontlikheid om verskeie skrywers met verskillende digitale handtekeninge aan die webwerf te heg;
  • Beskikbaarheid van 'n inprop vir die skep van multi-gebruiker konfigurasies (openproxy);
  • Ondersteuning vir die uitsaai van nuusstrome;
  • Werk in enige blaaiers en bedryfstelsels.

Groot veranderinge in ZeroNet 0.7

  • Die kode is herwerk om Python3 te ondersteun, wat versoenbaarheid met Python 3.4-3.8 verseker;
  • 'n Beskermde databasissinchronisasiemodus is geïmplementeer;
  • Waar moontlik, is die hoofverspreiding van derdeparty-biblioteke gestaak ten gunste van eksterne afhanklikhede;
  • Die kode vir die verifikasie van digitale handtekeninge is 5-10 keer versnel (die libsecp256k1-biblioteek word gebruik;
  • Bygevoeg randomisering van reeds gegenereerde sertifikate om filters te omseil;
  • Die P2P-kode is opgedateer om die ZeroNet-protokol te gebruik;
  • Bygevoeg vanlyn modus;
  • Bygevoeg UiPluginManager-inprop vir die installering en bestuur van derdeparty-inproppe;
  • Volledige ondersteuning vir OpenSSL 1.1 word verskaf;
  • Wanneer u aan eweknieë koppel, word dummy SNI- en ALPN-rekords gebruik om verbindings meer soortgelyk aan oproepe na gewone werwe oor HTTPS te maak;

Dieselfde dag as ZeroNet 0.7.0 vrystelling gevorm update 0.7.1, wat 'n gevaarlike kwesbaarheid uitskakel wat moontlik kode-uitvoering aan die kliëntkant moontlik maak. As gevolg van 'n fout in die kode vir die lewering van sjabloonveranderlikes, kan 'n oop eksterne webwerf 'n verbinding met die kliëntstelsel tot stand bring via WebSocket met onbeperkte ADMIN/NOSANDBOX regte, wat dit moontlik maak om konfigurasieparameters te verander en sy kode op die gebruiker se rekenaar uit te voer d.m.v. manipulasies met die open_browser parameter.
Die kwesbaarheid verskyn in tak 0.7, sowel as in eksperimentele bouwerk vanaf die hersiening 4188 (verandering gemaak 20 dae gelede).

Bron: opennet.ru

Voeg 'n opmerking