Uitgave van ZeroNet 0.7, een platform voor het maken van gedecentraliseerde websites

Na een jaar van ontwikkeling werd de release van een gedecentraliseerd webplatform uitgebracht ZeroNet 0.7, dat voorstelt om de adresserings- en verificatiemechanismen van Bitcoin te gebruiken in combinatie met de gedistribueerde leveringstechnologieën van BitTorrent om sites te creëren die niet kunnen worden gecensureerd, nagemaakt of geblokkeerd. De inhoud van sites wordt opgeslagen in een P2P-netwerk op de machines van bezoekers en wordt geverifieerd met behulp van de digitale handtekening van de eigenaar. Voor de adressering wordt een systeem van alternatieve root-DNS-servers gebruikt Namecoin. Het project is geschreven in Python en gedistribueerd door gelicentieerd onder GPLv2.

De gegevens die op de site worden geplaatst, worden geverifieerd en gekoppeld aan het account van de site-eigenaar, vergelijkbaar met het koppelen van Bitcoin-wallets, wat het ook mogelijk maakt om de relevantie van informatie te controleren en de inhoud in realtime bij te werken. Om IP-adressen te verbergen kan gebruik worden gemaakt van het anonieme Tor-netwerk, waarvoor ondersteuning is ingebouwd in ZeroNet. De gebruiker neemt deel aan de distributie van alle sites die hij heeft bezocht. Eenmaal gedownload naar het lokale systeem, worden de bestanden in de cache opgeslagen en beschikbaar gemaakt voor distributie vanaf de huidige machine met behulp van methoden die doen denken aan BitTorrent.

Om ZeroNet-sites te bekijken, voert u gewoon het zeronet.py-script uit, waarna u sites in de browser kunt openen via de URL “http://127.0.0.1:43110/zeronet_address” (bijvoorbeeld “http://127.0.0.1 :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D”). Bij het openen van een website vindt het programma peers in de buurt en downloadt het bestanden die bij de opgevraagde pagina horen (html, css, afbeeldingen, enz.).
Om uw site te maken, voert u gewoon de opdracht “zeronet.py siteCreate” uit, waarna een site-ID en een privésleutel worden gegenereerd om het auteurschap te bevestigen met behulp van een digitale handtekening.

Voor de aangemaakte site wordt een lege map met de vorm “data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D” aangemaakt. Nadat de inhoud van deze map is gewijzigd, moet de nieuwe versie worden gecertificeerd met behulp van het commando “zeronet.py siteSign site_identifier” en het invoeren van de privésleutel. Zodra de nieuwe inhoud is geverifieerd, moet deze worden aangekondigd met het commando “zeronet.py sitePublish site_id” zodat de gewijzigde versie beschikbaar wordt voor peers (de WebSocket API wordt gebruikt om wijzigingen aan te kondigen). Langs de keten zullen peers de integriteit van de nieuwe versie controleren met behulp van een digitale handtekening, de nieuwe inhoud downloaden en overdragen aan andere peers.

De belangrijkste mogelijkheden:

  • Er is geen enkel storingspunt: de site blijft toegankelijk als er minstens één peer in de distributie aanwezig is;
  • Gebrek aan referentieopslag voor de site - de site kan niet worden gesloten door de hosting los te koppelen, aangezien de gegevens zich op alle machines van bezoekers bevinden;
  • Alle eerder bekeken informatie bevindt zich in de cache en is toegankelijk vanaf de huidige machine in de offlinemodus, zonder toegang tot het wereldwijde netwerk.
  • Ondersteuning van realtime inhoudsupdate;
  • Mogelijkheid tot adressering via domeinregistratie in de “.bit”-zone;
  • Werk zonder voorafgaande configuratie - pak gewoon het archief uit met de software en voer één script uit;
  • Mogelijkheid om websites met één klik te klonen;
  • Op formaat gebaseerde wachtwoordloze authenticatie BIP32: het account wordt beschermd door dezelfde cryptografische methode als de Bitcoin-cryptocurrency;
  • Ingebouwde SQL-server met P2P-gegevenssynchronisatiefuncties;
  • De mogelijkheid om Tor te gebruiken voor anonimiteit en volledige ondersteuning voor het gebruik van verborgen Tor-services (.onion) in plaats van IPv4-adressen;
  • Ondersteuning voor TLS-codering;
  • Automatische bereikbaarheid via uPnP;
  • Mogelijkheid om meerdere auteurs met verschillende digitale handtekeningen aan de site te koppelen;
  • Beschikbaarheid van een plug-in voor het maken van configuraties voor meerdere gebruikers (openproxy);
  • Ondersteuning voor het uitzenden van nieuwsfeeds;
  • Werkt in alle browsers en besturingssystemen.

Grote veranderingen in ZeroNet 0.7

  • De code is herwerkt om Python3 te ondersteunen, waardoor compatibiliteit met Python 3.4-3.8 wordt gegarandeerd;
  • Er is een beveiligde databasesynchronisatiemodus geïmplementeerd;
  • Waar mogelijk is de hoofddistributie van bibliotheken van derden stopgezet ten gunste van externe afhankelijkheden;
  • De code voor het verifiëren van digitale handtekeningen is 5-10 keer versneld (de bibliotheek libsecp256k1 wordt gebruikt;
  • Randomisatie toegevoegd van reeds gegenereerde certificaten om filters te omzeilen;
  • De P2P-code is bijgewerkt om het ZeroNet-protocol te gebruiken;
  • Offlinemodus toegevoegd;
  • UiPluginManager-plug-in toegevoegd voor het installeren en beheren van plug-ins van derden;
  • Er wordt volledige ondersteuning voor OpenSSL 1.1 geboden;
  • Bij het verbinden met peers worden dummy SNI- en ALPN-records gebruikt om verbindingen meer vergelijkbaar te maken met oproepen naar reguliere sites via HTTPS;

Dezelfde dag als de release van ZeroNet 0.7.0 gevormd update 0.7.1, die een gevaarlijke kwetsbaarheid elimineert die mogelijk code-uitvoering aan de clientzijde mogelijk maakt. Vanwege een fout in de code voor het weergeven van sjabloonvariabelen kan een open externe site via WebSocket een verbinding tot stand brengen met het clientsysteem met onbeperkte ADMIN/NOSANDBOX-rechten, waardoor het mogelijk is om configuratieparameters te wijzigen en de code op de computer van de gebruiker uit te voeren via manipulaties met de parameter open_browser.
De kwetsbaarheid komt voor in tak 0.7, maar ook in experimentele builds vanaf de revisie 4188 (wijziging 20 dagen geleden aangebracht).

Bron: opennet.ru

Voeg een reactie