Wydanie ZeroNet 0.7, platformy do tworzenia zdecentralizowanych stron internetowych

Po roku rozwoju ukazała się wersja zdecentralizowanej platformy webowej ZeroNet 0.7, która oferuje wykorzystanie mechanizmów adresowania i weryfikacji Bitcoin w połączeniu z technologiami dostarczania danych BitTorrent do tworzenia stron, których nie można cenzurować, fałszować ani blokować. Zawartość stron jest przechowywana w sieci P2P na komputerach odwiedzających i weryfikowana za pomocą podpisu cyfrowego właściciela. Do adresowania używana jest system alternatywnych serwerów DNS Namecoin. Projekt napisany jest w języku Python i rozpowszechniany na licencji GPLv2.

Dane umieszczane na stronie są weryfikowane i powiązane z kontem właściciela strony w analogiczny sposób jak powiązania portfeli Bitcoin, co również umożliwia kontrolowanie aktualności informacji i aktualizowanie treści w czasie rzeczywistym. Do ukrywania adresów IP można używać anonimowej sieci Tor, której wsparcie jest wbudowane w ZeroNet. Użytkownik uczestniczy w udostępnianiu wszystkich stron, do których się odwoływał. Po pobraniu pliki na lokalnym systemie są przechowywane w pamięci podręcznej i stają się dostępne do udostępniania z bieżącej maszyny, stosując metody przypominające BitTorrent.

Aby przeglądać strony ZeroNet, wystarczy uruchomić skrypt zeronet.py, a następnie w przeglądarce otworzyć strony przez URL „http://127.0.0.1:43110/adres_zeronet” (na przykład „http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D”). Po otwarciu strony program znajduje najbliższych peerów i ładuje powiązane z żądaną stroną pliki (html, css, obrazy itd.).
Aby stworzyć swoją stronę, wystarczy uruchomić polecenie „zeronet.py siteCreate”, w wyniku czego zostanie wygenerowany identyfikator strony oraz klucz prywatny do potwierdzenia autorstwa za pomocą podpisu cyfrowego.

Dla utworzonej strony zostanie utworzony pusty katalog w postaci „data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D”. Po zmianie zawartości tego katalogu, konieczne jest potwierdzenie nowej wersji za pomocą polecenia „zeronet.py siteSign identyfikator_strony” i wprowadzenia klucza prywatnego. Gdy nowa zawartość zostanie potwierdzona, należy ją ogłosić poleceniem „zeronet.py sitePublish identyfikator_strony”, aby zmieniona wersja stała się dostępna dla peerów (do ogłoszenia zmian używane jest API WebSocket). Peery zweryfikują integralność nowej wersji na podstawie podpisu cyfrowego, ładując nową zawartość i przekazując ją innym peerom.

Podstawowe możliwości:

  • Brak jednolitego punktu awarii — strona pozostaje dostępna, jeśli w sieci jest chociaż jeden peer;
  • Brak wzorcowego magazynu strony — nie można zamknąć strony, wyłączając hosting, ponieważ dane są przechowywane na wszystkich maszynach odwiedzających;
  • Wszystkie wcześniej przeglądane informacje są dostępne w pamięci podręcznej i dostępne z bieżącego komputera w trybie offline, bez łączenia się z globalną siecią.
  • Wsparcie dla aktualizacji zawartości w czasie rzeczywistym;
  • Możliwość adresacji poprzez rejestrację domeny w strefie „.bit”;
  • Działa bez wstępnego ustawienia — wystarczy rozpakować archiwum z oprogramowaniem i uruchomić jeden skrypt;
  • Możliwość klonowania stron jednym kliknięciem;
  • Bezhasłowa autoryzacja na podstawie formatu BIP32: konto jest chronione tym samym metodą kryptograficzną, co kryptowaluta Bitcoin;
  • Wbudowany serwer SQL z funkcjami P2P synchronizacji danych;
  • Możliwość korzystania z Tor dla anonimowości oraz pełne wsparcie dla ukrytych usług Tor (.onion) zamiast adresów IPv4;
  • Wsparcie dla szyfrowania TLS;
  • Automatyczna dostępność przez uPnP;
  • Możliwość przypisywania do strony kilku autorów, posiadających różne podpisy cyfrowe;
  • Dostępność wtyczki do tworzenia konfiguracji wieloosobowych (openproxy);
  • Wsparcie dla transmisji strumieni newsowych;
  • Działa we wszystkich przeglądarkach i systemach operacyjnych.

Główne zmiany w ZeroNet 0.7

  • Kod został przekształcony w celu wsparcia Python3, zapewniając zgodność z Python 3.4-3.8;
  • Wdrożono zabezpieczony tryb synchronizacji bazy danych;
  • O ile to możliwe, zredukowano dostarczanie w głównym składzie zewnętrznych bibliotek na rzecz zależności zewnętrznych;
  • Kod do weryfikacji podpisów cyfrowych jest przyspieszony od 5 do 10 razy (włączono bibliotekę libsecp256k1;
  • Dodano losowość dla już wygenerowanych certyfikatów w celu obejścia filtrów;
  • Zaktualizowano kod P2P, który został przetworzony na użycie protokołu ZeroNet;
  • Dodano tryb pracy offline;
  • Dodano wtyczkę UiPluginManager do instalacji i zarządzania zewnętrznymi wtyczkami;
  • Zapewniono pełne wsparcie dla OpenSSL 1.1;
  • Podczas łączenia z peerami wykorzystano fikcyjne wpisy SNI i ALPN, aby połączenia bardziej przypominały zapytania do zwykłych stron internetowych przez HTTPS;

W tym samym dniu, co wydanie ZeroNet 0.7.0 zostało utworzone aktualizacja 0.7.1, w której usunięto niebezpieczną lukę, która potencjalnie umożliwia wykonanie kodu po stronie klienta. Z powodu błędu w kodzie renderowania zmiennych szablonów, otwarta strona zewnętrzna może nawiązać połączenie z systemem klienta przez WebSocket z nieograniczonymi uprawnieniami ADMIN/NOSANDBOX, co pozwala na zmianę parametrów konfiguracyjnych i osiągnięcie wykonania własnego kodu na komputerze użytkownika poprzez manipulację parametrem open_browser.
Luka występuje w gałęzi 0.7, a także w eksperymentalnych wersjach począwszy od rewizji 4188 (zmiana wprowadzona 20 dni temu).

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster