Wydanie platformy GNUnet P2P 0.13. Promowanie GNS jako standardu internetowego

IETF (Internet Engineering Task Force), która opracowuje protokoły i architekturę internetową, rozpoczęła proces standaryzacji systemu nazw domen GNS (GNU Name System) opracowanego w ramach projektu GNUnet jako całkowicie zdecentralizowany i odporny na cenzurę zamiennik DNS. Obecnie opublikowany pierwszy projekt standardu, po ustabilizowaniu się, powstanie RFC, który będzie miał status „Proponowanego Standardu”.

GNS mogą być używane obok DNS i używane w tradycyjnych aplikacjach, takich jak przeglądarki internetowe. Integralność i niezmienność zapisów zapewniona jest poprzez zastosowanie mechanizmów kryptograficznych. W przeciwieństwie do DNS, GNS wykorzystuje ukierunkowany wykres zamiast drzewiastej hierarchii serwerów. Rozpoznawanie nazw jest podobne do DNS, ale żądania i odpowiedzi są dokonywane w sposób poufny — węzeł przetwarzający żądanie nie wie, do kogo odpowiedź jest wysyłana, a węzły tranzytowe i zewnętrzni obserwatorzy nie mogą odszyfrować żądań i odpowiedzi.

Strefa DNS w GNS jest określana przy użyciu zestawu kluczy publicznych i prywatnych ECDSA w oparciu o krzywe eliptyczne Curve25519. Korzystanie z Curve25519 postrzegane niektórzy uważają to za bardzo dziwny krok, ponieważ w przypadku ECDSA używają innych typów krzywych eliptycznych, a w połączeniu z Curve25519 zwykle używają algorytmu podpisu cyfrowego Ed25519, bardziej nowoczesny, bezpieczniejszy i szybszy niż ECDSA. Z punktu widzenia siły kryptograficznej wątpliwy jest także wybór rozmiaru klucza – 32 bajty zamiast 64 bajtów, stosowanych zwykle w Ed25519, a także zastosowanie kaskada szyfrowanie symetryczne z wykorzystaniem algorytmów AES i TwoFish w trybie CFB.

Podejście to tłumaczy się koniecznością implementacji kluczy hierarchicznych, umożliwiających użycie głównego klucza publicznego do wyodrębnienia podrzędnego klucza publicznego, wykorzystując właściwość liniowości Curve25519. Ta funkcja umożliwia uzyskanie podrzędnych kluczy publicznych bez znajomości prywatnych kluczy głównych. Ta technika również jest stosowany w Bitcoinie. Wybrano 32-bajtowy rozmiar klucza, aby umożliwić zmieszczenie klucza w jednym rekordzie DNS.

Dodatkowo można to zauważyć nowe wydanie struktura GNUnet 0.13, przeznaczony do budowy bezpiecznych zdecentralizowanych sieci P2P. Sieci tworzone przy użyciu GNUnetu nie mają ani jednego punktu awarii i są w stanie zagwarantować nienaruszalność prywatnych informacji użytkowników, w tym wyeliminować ewentualne nadużycia ze strony służb wywiadowczych i administratorów mających dostęp do węzłów sieci. Wydanie jest oznaczone jako zawierające znaczące zmiany protokołu, które naruszają wsteczną kompatybilność z wersjami 0.12.x.

GNUnet obsługuje tworzenie sieci P2P poprzez TCP, UDP, HTTP/HTTPS, Bluetooth i WLAN i może działać w trybie F2F (Friend-to-Friend). Obsługiwane jest przechodzenie NAT, w tym przy użyciu UPnP i ICMP. Aby rozwiązać problem rozmieszczenia danych, można zastosować rozproszoną tabelę skrótów (DHT). Dostępne są narzędzia do wdrażania sieci mesh. Do selektywnego nadawania i odbierania praw dostępu wykorzystywana jest zdecentralizowana usługa wymiany atrybutów identyfikacyjnych odzyskać dowód osobisty, za pomocą GNS (system nazw GNU) i szyfrowanie oparte na atrybutach (Szyfrowanie oparte na atrybutach).

System charakteryzuje się niskim zużyciem zasobów i wykorzystuje architekturę wieloprocesową, aby zapewnić izolację pomiędzy komponentami. Dostępne są elastyczne narzędzia do prowadzenia logów i zbierania statystyk. Aby tworzyć aplikacje do użytku końcowego, GNUnet udostępnia API dla języka C i powiązania dla innych języków programowania. Aby uprościć programowanie, zamiast wątków proponuje się użycie pętli zdarzeń i procesów. Zawiera bibliotekę testową do automatycznego wdrażania sieci eksperymentalnych obejmujących dziesiątki tysięcy równorzędnych użytkowników.

Oprócz GNS powstaje także kilka gotowych aplikacji opartych na technologiach GNUnet:

  • Usługa anonimowego udostępniania plików, która nie pozwala na analizę informacji w związku z przesyłaniem danych wyłącznie w postaci zaszyfrowanej oraz nie pozwala na śledzenie, kto zamieszczał, wyszukiwał i pobierał pliki dzięki wykorzystaniu protokołu GAP.
  • System VPN do tworzenia usług ukrytych w domenie „.gnu” i przekazywania tuneli IPv4 i IPv6 przez sieć P2P. Dodatkowo obsługiwane są schematy translacji IPv4 na IPv6 i IPv6 na IPv4, a także tworzenie tuneli IPv4-over-IPv6 i IPv6-over-IPv4.
  • GNUnet Usługa konwersacji umożliwiająca wykonywanie połączeń głosowych poprzez GNUnet. Do identyfikacji użytkowników wykorzystywany jest system GNS, a treść ruchu głosowego przekazywana jest w postaci zaszyfrowanej. Anonimowość nie jest jeszcze zapewniona - inni równorzędni mogą śledzić połączenie między dwoma użytkownikami i ustalać ich adresy IP.
  • Platforma do budowy zdecentralizowanych sieci społecznościowych Secushare, korzystając z protokołu PSYK oraz wspieranie dystrybucji powiadomień w trybie multicast z wykorzystaniem szyfrowania end-to-end, dzięki czemu dostęp do wiadomości, plików, czatów i dyskusji mają tylko autoryzowani użytkownicy (osoby, do których wiadomości nie są adresowane, w tym administratorzy węzłów, nie będą mogli ich przeczytać );
  • System organizowania zaszyfrowanych wiadomości e-mail całkiem łatwa prywatność, który wykorzystuje GNUnet do ochrony metadanych i obsługuje różne protokoły kryptograficzne do weryfikacji klucza;
  • System płatności Taler GNU, która zapewnia anonimowość kupującym, ale śledzi transakcje sprzedającego w celu zapewnienia przejrzystości i sprawozdawczości podatkowej. Obsługuje pracę z różnymi istniejącymi walutami i pieniędzmi elektronicznymi, w tym dolarami, euro i bitcoinami.

Najważniejsze nowe funkcje w GNUnet 0.13:

  • Rejestr został uruchomiony GANA (GNUnet Assigned Numbers Authority), odpowiedzialny za przydzielanie nazw i adresów GNUnet.
  • Dostosowano się do wdrożenia zdecentralizowanego systemu nazw domen GNS specyfikacja, zaproponowany przez IETF. Ulepszono blokowanie wtyczki NSS. Dodano nowe flagi DODATKOWE dla rekordów, które nie są jawnie publikowane pod daną etykietą, ale są zwracane przez funkcję rozpoznawania nazw. Dodano ostrzeżenie do narzędzia gnunet-namestore podczas dodawania wpisów TLSA lub SRV poza wpisem BOX.
  • W mechanizmie unieważnienia klucza (GNS/REVOCATION) funkcja dowód ukończenia pracy przełączono na algorytm mieszający Argon2.
  • W usłudze zdecentralizowanej wymiany atrybutów identyfikacyjnych (RECLAIM) rozmiar biletu zwiększono do 256 bitów.
  • Wtyczka transportowa wykorzystująca do przesyłania danych protokół UDP została przeniesiona do kategorii eksperymentalnej ze względu na problemy ze stabilnością;
  • Format pliku klucza ECDSA i metoda serializacji klucza prywatnego są ujednolicone z innymi bibliotekami (stare klucze nie będą już działać).
  • Biblioteka służy jako implementacja algorytmów szyfrowania opartych na krzywych eliptycznych libsodu.
  • Dodano możliwość tworzenia narzędzi za pomocą biblioteki cURL, niezwiązanych z gnutls.
  • Zwrócono serwer ciągłej integracji Budujbota.
  • Zależności kompilacji obejmują libmicrohttpd, libjansson i libsodium.

Źródło: opennet.ru

Dodaj komentarz