Wydanie ZeroNet 0.7, platformy do tworzenia zdecentralizowanych stron internetowych

Po roku rozwoju wypuszczono zdecentralizowaną platformę internetową ZeroNet 0.7, która proponuje wykorzystanie mechanizmów adresowania i weryfikacji Bitcoin w połączeniu z technologiami rozproszonego dostarczania BitTorrenta w celu tworzenia witryn, których nie można cenzurować, podrabiać ani blokować. Treść stron przechowywana jest w sieci P2P na komputerach odwiedzających i weryfikowana za pomocą cyfrowego podpisu właściciela. Do adresowania wykorzystywany jest system alternatywnych głównych serwerów DNS Namecoin. Projekt napisany jest w Pythonie i dystrybuowane przez licencjonowany na licencji GPLv2.

Dane zamieszczane w serwisie podlegają weryfikacji i powiązaniu z kontem właściciela serwisu, podobnie jak w przypadku linkowania portfeli Bitcoin, co również pozwala na kontrolę aktualności informacji i aktualizację treści w czasie rzeczywistym. Aby ukryć adresy IP, można użyć anonimowej sieci Tor, której obsługa jest wbudowana w ZeroNet. Użytkownik uczestniczy w dystrybucji wszystkich stron, do których uzyskał dostęp. Po pobraniu do systemu lokalnego pliki są buforowane i udostępniane do dystrybucji z bieżącego komputera metodami przypominającymi BitTorrent.

Aby wyświetlić witryny ZeroNet, wystarczy uruchomić skrypt zeronet.py, po czym będziesz mógł otwierać witryny w przeglądarce poprzez adres URL „http://127.0.0.1:43110/zeronet_address” (na przykład „http://127.0.0.1 :43110/1HELLo4uzjaLetFx6NMN3PMwF5qbebTf1D”) . Podczas otwierania strony internetowej program wyszukuje pobliskie urządzenia równorzędne i pobiera pliki powiązane z żądaną stroną (html, css, obrazy itp.).
Aby utworzyć swoją witrynę, wystarczy uruchomić polecenie „zeronet.py siteCreate”, po czym zostanie wygenerowany identyfikator witryny oraz klucz prywatny potwierdzający autorstwo za pomocą podpisu cyfrowego.

Dla utworzonej witryny zostanie utworzony pusty katalog w postaci „data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D”. Po zmianie zawartości tego katalogu, nowa wersja musi zostać potwierdzona komendą „zeronet.py siteSign site_identifier” i podaniem klucza prywatnego. Po zweryfikowaniu nowej treści należy ją ogłosić komendą „zeronet.py sitePublish site_id”, aby zmieniona wersja stała się dostępna dla partnerów (do ogłaszania zmian służy WebSocket API). W całym łańcuchu uczestnicy sprawdzą integralność nowej wersji za pomocą podpisu cyfrowego, pobiorą nową zawartość i przekażą ją innym uczestnikom.

Głównym możliwości:

  • Nie ma pojedynczego punktu awarii – witryna pozostaje dostępna, jeśli w dystrybucji znajduje się co najmniej jeden równorzędny element;
  • Brak pamięci referencyjnej dla witryny - witryny nie można zamknąć poprzez odłączenie hostingu, ponieważ dane znajdują się na wszystkich komputerach odwiedzających;
  • Wszystkie wcześniej przeglądane informacje znajdują się w pamięci podręcznej i są dostępne z bieżącego komputera w trybie offline, bez dostępu do sieci globalnej.
  • Obsługa aktualizacji treści w czasie rzeczywistym;
  • Możliwość adresowania poprzez rejestrację domeny w strefie „.bit”;
  • Pracuj bez wstępnej konfiguracji - wystarczy rozpakować archiwum z oprogramowaniem i uruchomić jeden skrypt;
  • Możliwość klonowania stron internetowych jednym kliknięciem;
  • Uwierzytelnianie bez hasła oparte na formacie BIP32: konto jest chronione tą samą metodą kryptograficzną, co kryptowaluta Bitcoin;
  • Wbudowany serwer SQL z funkcjami synchronizacji danych P2P;
  • Możliwość korzystania z Tora w celu zapewnienia anonimowości i pełna obsługa korzystania z ukrytych usług Tora (.onion) zamiast adresów IPv4;
  • Obsługa szyfrowania TLS;
  • Automatyczna dostępność poprzez uPnP;
  • Możliwość dołączenia do serwisu kilku autorów z różnymi podpisami cyfrowymi;
  • Dostępność wtyczki umożliwiającej tworzenie konfiguracji wielostanowiskowych (openproxy);
  • Wsparcie dla nadawania kanałów informacyjnych;
  • Działa w każdej przeglądarce i systemie operacyjnym.

Główne zmiany w ZeroNet 0.7

  • Kod został przerobiony tak, aby obsługiwał Python3, zapewniając kompatybilność z Pythonem 3.4-3.8;
  • Zaimplementowano tryb synchronizacji chronionej bazy danych;
  • Tam, gdzie było to możliwe, główna dystrybucja bibliotek stron trzecich została przerwana na rzecz zewnętrznych zależności;
  • Kod do weryfikacji podpisów cyfrowych został przyspieszony 5-10 razy (wykorzystano bibliotekę libsecp256k1;
  • Dodano randomizację już wygenerowanych certyfikatów w celu ominięcia filtrów;
  • Kod P2P został zaktualizowany tak, aby korzystał z protokołu ZeroNet;
  • Dodano tryb offline;
  • Dodano wtyczkę UiPluginManager do instalowania i zarządzania wtyczkami innych firm;
  • Zapewniona jest pełna obsługa OpenSSL 1.1;
  • Podczas łączenia się z urządzeniami równorzędnymi używane są fikcyjne rekordy SNI i ALPN, aby połączenia były bardziej podobne do połączeń ze zwykłymi witrynami za pośrednictwem protokołu HTTPS;

Tego samego dnia, co wydanie ZeroNet 0.7.0 uformowany aktualizację 0.7.1, która eliminuje niebezpieczną lukę potencjalnie umożliwiającą wykonanie kodu po stronie klienta. Z uwagi na błąd w kodzie renderującym zmienne szablonu, otwarty serwis zewnętrzny może nawiązać połączenie z systemem klienckim poprzez WebSocket z nieograniczonymi uprawnieniami ADMIN/NOSANDBOX, co umożliwia zmianę parametrów konfiguracyjnych i wykonanie jego kodu na komputerze użytkownika poprzez manipulacje parametrem open_browser.
Luka pojawia się w gałęzi 0.7, a także w wersjach eksperymentalnych, począwszy od rewizji 4188 (zmiana wprowadzona 20 dni temu).

Źródło: opennet.ru

Dodaj komentarz