Wydano framework GNUnet 0.20, przeznaczony do budowy zabezpieczonych, zdecentralizowanych sieci P2P. Sieci tworzone za pomocą GNUnet nie mają jednego punktu awarii i potrafią zapewnić poufność informacji użytkowników, w tym wykluczyć potencjalne nadużycia ze strony służb specjalnych i administratorów mających dostęp do węzłów sieci.
GNUnet wspiera tworzenie sieci P2P na bazie TCP, UDP, HTTP/HTTPS, Bluetooth i WLAN, może działać w trybie F2F (Friend-to-friend). Obsługuje omijanie NAT, w tym za pomocą UPnP i ICMP. Do adresowania przechowywania danych można używać rozproszonej tabeli haszowej (DHT). Oferowane są narzędzia do wdrażania sieci mesh. W celu selektywnego udostępniania i cofania praw dostępu stosowany jest serwis zdecentralizowanej wymiany atrybutami tożsamości reclaimID, wykorzystujący GNS (GNU Name System) oraz szyfrowanie oparte 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.
Na bazie technologii GNUnet rozwija się kilka gotowych aplikacji:
- System nazw domen GNS (GNU Name System), działający jako całkowicie zdecentralizowana i niewrażliwa na cenzurę alternatywa dla DNS. GNS może współdziałać z DNS i być używany w tradycyjnych aplikacjach, takich jak przeglądarki internetowe. W przeciwieństwie do DNS, w GNS zamiast hierarchii serwerów stosuje się skierowany graf. Transformacja nazw przypomina DNS, ale zapytania i odpowiedzi są realizowane z zachowaniem poufności — węzeł obsługujący zapytanie nie wie, komu jest udzielana odpowiedź, a węzły tranzytowe i osoby trzecie nie mogą odszyfrować zapytań i odpowiedzi. Integralność i niezmienność rekordów zapewnia się za pomocą mechanizmów kryptograficznych. Strefa DNS w GNS jest definiowana za pomocą pary kluczy publicznego i prywatnego ECDSA opartych na krzywych eliptycznych Curve25519.
- Usługa do anonimowej wymiany plików, która uniemożliwia analizę informacji przez przesyłanie danych tylko w postaci zaszyfrowanej i która nie pozwala śledzić, kto umieszczał, poszukiwał i pobierał pliki, dzięki zastosowaniu protokołu GAP.
- System VPN do tworzenia ukrytych usług w domenie „.gnu” oraz tunelowania IPv4 i IPv6 przez sieć P2P. Dodatkowo wspierane są schematy translacji IPv4-do-IPv6 i IPv6-do-IPv4, a także tworzenie tuneli IPv4-przez-IPv6 i IPv6-przez-IPv4.
- Usługa GNUnet Conversation do realizacji połączeń głosowych przez GNUnet. Do identyfikacji użytkowników stosuje się GNS, a zawartość ruchu głosowego jest przesyłana w postaci zaszyfrowanej. Na razie anonimowość nie jest zapewniana — inne węzły mogą śledzić połączenie między dwoma użytkownikami i zidentyfikować ich. adresy IP.
- Platforma do budowy zdecentralizowanych sieci społecznościowych Secushare, wykorzystująca protokół PSYC i wspierająca rozsyłanie powiadomień w trybie multicast z zastosowaniem szyfrowania end-to-end, dzięki czemu dostęp do wiadomości, plików, czatów i dyskusji mogą uzyskać tylko autoryzowani użytkownicy (osoby, do których wiadomości nie są adresowane, w tym administratorzy węzłów, nie będą mogły ich przeczytać).
- System do organizacji szyfrowanej poczty elektronicznej pretty Easy privacy, stosujący GNUnet do ochrony metadanych i wspierający różne protokoły kryptograficzne do weryfikacji kluczy.
- System płatności GNU Taler, zapewniający anonimowość dla nabywców, ale monitorujący transakcje sprzedawców w celu zapewnienia przejrzystości i stworzenia sprawozdania podatkowego. Obsługuje różne istniejące waluty i pieniądze elektroniczne, w tym dolary, euro i bitcoiny.
- Usługa GNUnet Messenger do tworzenia zabezpieczonych aplikacji czatowych. W celu zapewnienia poufności i ochrony przed przechwytywaniem wiadomości stosowany jest protokół CADET (Confidential Ad-hoc Decentralized End-to-End Transport), który umożliwia całkowicie zdecentralizowaną komunikację w grupie użytkowników, wykorzystując szyfrowanie end-to-end przesyłanych danych.
W nowej wersji GNUnet wprowadzono zmiany, które naruszają kompatybilność protokołu i mogą prowadzić do problemów przy interakcji węzłów na bazie GNUnet 0.20 oraz starszych wydań. Funkcje GNUNET_STRINGS_get_suffix_from_binary_name i GNUNET_s przeniesiono do biblioteki libgnuneutil. Dodano funkcje GNUNET_JSON_spec_object_const, GNUNET_JSON_spec_array_const, GNUNET_PQ_get_oid_by_name i GNUNET_PQ_get_oid. Dodano API KEM (Key Encapsulation Mechanism).
Źródło: opennet.ru
