Wydanie platformy P2P GNUnet 0.13. Promowanie GNS jako standardu internetowego

Komitet IETF (Internet Engineering Task Force), zajmujący się rozwojem protokołów i architektury Internetu, rozpoczął proces standaryzacji systemu nazw domen GNS (GNU Name System), rozwijanego przez projekt GNUnet jako całkowicie zdecentralizowany i odporny na cenzurę zamiennik DNS. Obecnie opublikowano pierwsza robocza wersja standardu, po ustabilizowaniu której zostanie opracowany RFC z status „Proponowanego standardu”.

GNS może być stosowany obok DNS i wykorzystywany w tradycyjnych aplikacjach, takich jak przeglądarki internetowe. Integralność i niezmienność rekordów zapewniana jest dzięki zastosowaniu mechanizmów kryptograficznych. W przeciwieństwie do DNS, w GNS zamiast hierarchii drzewiastej serwerów stosowany jest skierowany graf. Zamiana nazw jest zbliżona do DNS, ale zapytania i odpowiedzi są realizowane z zachowaniem poufności — węzeł przetwarzający zapytanie nie wie, komu przekazywana jest odpowiedź, a węzły tranzytowe oraz obserwatorzy zewnętrzni nie mogą odszyfrować zapytań i odpowiedzi.

Strefa DNS w GNS jest definiowana za pomocą pary kluczy publicznego i prywatnego ECDSA opartej na krzywych eliptycznych Curve25519. Wykorzystanie Curve25519 jest postrzegane przez niektórych jako dość dziwny krok, ponieważ dla ECDSA stosuje się inne typy krzywych eliptycznych, a w parze z Curve25519 zazwyczaj wykorzystuje się algorytm podpisów cyfrowych Ed25519, bardziej nowoczesny, bezpieczniejszy i szybszy niż ECDSA. Z punktu widzenia odporności na ataki, również budzi wątpliwości wybór rozmiaru klucza — 32 bajty zamiast 64 bajtów, które są zwykle stosowane dla Ed25519, a także zastosowanie kaskadowego szyfrowania symetrycznego, wykorzystując algorytmy AES i TwoFish w trybie CFB.

Takie podejście tłumaczy się koniecznością realizacji hierarchicznych kluczy, co umożliwia wykorzystanie głównego klucza publicznego do uzyskania podrzędnego klucza publicznego, korzystając z właściwości liniowości krzywej Curve25519. Ta cecha pozwala na uzyskiwanie podrzędnych kluczy publicznych bez znajomości zamkniętych kluczy głównych. Wskazana technika jest także jest stosowane w Bitcoinie. Rozmiar klucza wynoszący 32 bajty został wybrany, aby klucz mieścił się w jednym rekordzie DNS.

Dodatkowo można zaznaczyć nowy odcinek frameworku GNUnet 0.13, przeznaczone do budowy zabezpieczonych zdecentralizowanych sieci P2P. Sieci tworzone za pomocą GNUnet nie mają pojedynczego punktu awarii i są w stanie zagwarantować prywatność informacji użytkowników, w tym wyeliminować potencjalne nadużycia ze strony służb specjalnych i administratorów mających dostęp do węzłów sieci. Wydanie to zawiera znaczące zmiany w protokole, które łamią kompatybilność wstecz z wersjami 0.12.x.

GNUnet wspiera budowę sieci P2P na podstawie TCP, UDP, HTTP/HTTPS, Bluetooth i WLAN, może działać w trybie F2F (Friend-to-friend). Wspiera przechodzenie przez NAT, w tym z wykorzystaniem UPnP i ICMP. Do adresowania lokalizacji danych można wykorzystać rozproszoną tablicę haszującą (DHT). Dostarczane są narzędzia do wdrażania sieci mesh. Do selektywnego udostępniania i cofania praw dostępu stosuje się usługę zdecentralizowanej wymiany atrybutami identyfikacji reclaimID, korzystający z GNS (GNU Name System) oraz szyfrowania opartego na atrybutach (Attribute-Based Encryption).

System charakteryzuje się niskim zużyciem zasobów i wykorzystaniem architektury wieloprocesowej w celu zapewnienia izolacji pomiędzy komponentami. Oferowane są elastyczne narzędzia do prowadzenia logów i gromadzenia statystyk. Do rozwoju końcowych aplikacji GNUnet dostarcza API dla języka C oraz wiązania dla innych języków programowania. W celu uproszczenia procesu rozwoju zaleca się użycie pętli zdarzeń (event loop) i procesów zamiast wątków. W skład projektu wchodzi biblioteka testowa do automatycznego wdrażania eksperymentalnych sieci obejmujących dziesiątki tysięcy peerów.

Oprócz GNS na bazie technologii GNUnet rozwijanych jest również kilka gotowych aplikacji:

  • Usługa anonimowego wymieniania plików, która uniemożliwia analizę danych poprzez przesyłanie informacji wyłącznie w zaszyfrowanej formie i nie pozwala na śledzenie, kto umieścił, szukał i pobierał pliki, dzięki zastosowaniu protokołu GAP.
  • System VPN do tworzenia ukrytych usług w domenie „.gnu” oraz przekazywania tuneli IPv4 i IPv6 przez sieć P2P. Dodatkowo wspierane są schematy translacji IPv4 na IPv6 i IPv6 na IPv4, a także tworzenie tuneli IPv4 na IPv6 i IPv6 na IPv4.
  • Usługa GNUnet Conversation do prowadzenia rozmów głosowych przez GNUnet. Do identyfikacji użytkowników wykorzystywane jest GNS, a zawartość ruchu głosowego jest przesyłana w formie zaszyfrowanej. Anonimowość jest na razie nieosiągalna — inni użytkownicy mogą śledzić połączenie między dwoma użytkownikami i określić ich adresy IP.
  • Platforma do budowy zdecentralizowanych sieci społecznościowych Secushare, korzystająca z protokołu PSYC i wspierająca rozpowszechnianie powiadomień w trybie multicast z zastosowaniem szyfrowania end-to-end, aby dostęp do wiadomości, plików, czatów i dyskusji mogli uzyskać tylko autoryzowani użytkownicy (ci, do których wiadomości nie są adresowane, w tym administratorzy węzłów, nie będą mogli ich przeczytać);
  • System do organizacji zaszyfrowanej poczty elektronicznej pretty Easy privacy, stosujący GNUnet do ochrony metadanych i wspierający różne protokoły kryptograficzne do weryfikacji kluczy;
  • System płatniczy GNU Taler, zapewniający anonimowość dla kupujących, ale śledzący transakcje sprzedawców w celu zapewnienia przejrzystości i dostarczenia raportów podatkowych. Obsługiwane są różne istniejące waluty oraz pieniądze elektroniczne, w tym dolary, euro i bitcoiny.

Główne nowości GNUnet 0.13:

  • Uruchomiono rejestr GANA (GNUnet Assigned Numbers Authority), odpowiedzialny za przydzielanie nazw i adresów dla GNUnet.
  • Realizacja zdecentralizowanego systemu nazw domen GNS została dostosowana do specyfikacją, zaproponowanej w IETF. Uruchomiono wtyczkę NSS „block”. Dodano nowe flagi SUPPLEMENTAL dla rekordów, które wyraźnie nie są publikowane pod określoną etykietą, ale są zwracane przez resolver. Do narzędzia gnunet-namestore dodano wyjście ostrzeżenia przy dodawaniu rekordów TLSA lub SRV poza rekordem BOX.
  • W mechanizmie unieważniania kluczy (GNS/REVOCATION) funkcja dowodu wykonanej pracy została przeniesiona na wykorzystanie algorytmu haszującego Argon2.
  • W serwisie zdecentralizowanej wymiany atrybutów identyfikacji (RECLAIM) rozmiar biletu zwiększono do 256 bitów.
  • Wtyczka transportowa wykorzystująca dla transmisji danych protokół UDP została przeniesiona do kategorii eksperymentalnej z powodu problemów ze stabilnością;
  • Format pliku kluczy i metoda serializacji kluczy prywatnych ECDSA zostały zunifikowane z innymi bibliotekami (stare klucze przestaną działać).
  • Jako realizacja algorytmów szyfrowania opartych na krzywych eliptycznych wykorzystano bibliotekę libsodium.
  • Dodano możliwość budowy narzędzi z biblioteką cURL, niezwiązaną z gnutls.
  • Przywrócono serwer ciągłej integracji. Buildbot.
  • Do zależności budowlanych dodano biblioteki libmicrohttpd, libjansson i libsodium.

Ź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