Výbor IETF (Internet Engineering Task Force), který se zabývá rozvojem protokolů a architektury Internetu, zahájil proces standardizace systému doménových jmen GNS (GNU Name System), vyvíjeného projektem jako plně decentralizované a cenzuře odolné alternativy k DNS. V současné době existuje první návrh standardu, po jehož stabilizaci bude vytvořen RFC s označením „Navrhovaný standard“.
může být použit vedle DNS a aplikován na tradiční aplikace, jako jsou webové prohlížeče. Integrita a neměnnost záznamů jsou zajištěny pomocí kryptografických mechanismů. Na rozdíl od DNS v GNS místo stromové hierarchie serverů používané graf. Převod názvů je podobný jako u DNS, ale dotazy a odpovědi se provádějí s ohledem na soukromí — uzel zpracovávající dotaz neví, komu je odpověď poskytnuta, a přechodné uzly a třetí strany nemohou dešifrovat dotazy a odpovědi.
DNS zóna v GNS je určena pomocí páru veřejného a soukromého klíče na základě eliptických křivek . Použití Curve25519 některými jako velmi zvláštní krok, protože pro ECDSA se obvykle používají jiné typy eliptických křivek, a spolu s Curve25519 se obvykle aplikují algoritmy digitálního podepisování , , bezpečnější a rychlejší než ECDSA. Z hlediska kryptografické odolnosti také vyvolává pochybnosti volba velikosti klíče — 32 bajtů místo 64 bajtů, které se obvykle používají pro Ed25519, a také použití symetrického šifrování, s využitím algoritmů AES a TwoFish v režimu CFB.
Takový přístup je odůvodněn nutností implementace hierarchických klíčů, které umožňují použít kořenový veřejný klíč k získání podřízeného veřejného klíče, využívajíc vlastnost linearity křivky Curve25519. Tato vlastnost umožňuje vygenerovat podřízené veřejné klíče bez znalosti uzavřených kořenových klíčů. Uvedená technika je také v Bitcoin. Velikost klíče 32 bajty byla zvolena tak, aby klíč byl umístěn do jednoho záznamu DNS.
Dále lze poznamenat frameworku , určený pro vytváření zabezpečených decentralizovaných P2P sítí. Sítě vytvořené pomocí GNUnet nemají jednotné místo selhání a dokážou zaručit ochranu soukromí uživatelů, včetně vyloučení možného zneužití ze strany tajných služeb a správců, kteří mají přístup k uzlům sítě. Vydání je označeno jako obsahující významné změny protokolu, které narušují zpětnou kompatibilitu s verzemi 0.12.x.
GNUnet podporuje vytváření P2P sítí na základě TCP, UDP, HTTP/HTTPS, Bluetooth a WLAN, může fungovat v režimu F2F (přítel k příteli). Podporuje obcházení NAT, včetně použití UPnP a ICMP. Pro adresaci ukládání dat je možné využít distribuovanou hash tabulku (DHT). Poskytuje prostředky pro nasazení mesh sítí. Pro selektivní poskytování a odvolání přístupových práv se používá služba decentralizované výměny atributů identity. , GNS (GNU Name System) a šifrování na základě atributů ().
Systém se vyznačuje nízkou spotřebou zdrojů a použitím vícerozměrné architektury pro zajištění izolace mezi komponenty. Poskytuje flexibilní prostředky pro vedení logů a shromažďování statistik. Pro vývoj koncových aplikací GNUnet poskytuje API pro jazyk C a vazby pro další programovací jazyky. Pro zjednodušení vývoje se místo vláken doporučuje používat smyčky zpracování událostí (event loop) a procesy. Součástí je testovací knihovna pro automatické nasazení experimentálních sítí, které pokrývají desítky tisíc peerů.
Kromě GNS na bázi technologií GNUnet se také vyvíjí několik hotových aplikací:
- Služba pro anonymní výměnu souborů, která neumožňuje analyzovat informace prostřednictvím přenosu dat pouze v zašifrované podobě a neumožňuje sledovat, kdo soubory umístil, hledal a stahoval, díky použití protokolu GAP.
- Systém VPN pro vytváření skrytých služeb v doméně „.gnu“ a tunelování IPv4 a IPv6 přes P2P síť. Dále podporuje schémata překladů IPv4-na-IPv6 a IPv6-na-IPv4, stejně jako vytváření tunelů IPv4-přes-IPv6 a IPv6-přes-IPv4.
- Služba GNUnet Conversation pro realizaci hlasových hovorů přes GNUnet. Pro identifikaci uživatelů se používá GNS, obsah hlasového provozu se přenáší v zašifrované podobě. Anonymita zatím není zajištěna — ostatní peerové mohou sledovat spojení mezi dvěma uživateli a určit jejich IP adresy.
- Platforma pro vytváření decentralizovaných sociálních sítí , využívající protokol a podporující šíření oznámení v režimu multicast s použitím end-to-end šifrování, aby měly přístup k zprávám, souborům, chatům a diskuzím pouze autorizované osoby (ti, kterým zprávy nejsou adresovány, včetně administrátorů uzlů, je nebudou moci přečíst);
- Systém pro organizaci šifrované elektronické pošty , který používá GNUnet pro ochranu metadat a podporuje různé pro verifikaci klíčů;
- Platební systém , který zajišťuje anonymitu pro kupující, ale sleduje transakce prodávajících pro zajištění transparentnosti a poskytnutí daňového vykazování. Podporuje práci s různými existujícími měnami a elektronickými penězi, včetně dolarů, eur a bitcoinů.
Hlavní novinky GNUnet 0.13:
- Byl uveden do provozu registr (GNUnet Assigned Numbers Authority), zodpovědný za přidělování jmen a adres pro GNUnet.
- Realizace decentralizovaného systému doménových jmen GNS byla uvedena do souladu se , navrženou v IETF. Byla zavedena práce NSS pluginu "block". Přidány nové vlajky SUPPLEMENTAL pro záznamy, které nejsou výslovně publikovány pod danou značkou, ale jsou vraceny resolverem. Do nástroje gnunet-namestore byla přidána výstraha při přidávání záznamů TLSA nebo SRV mimo záznam .
- V mechanismu odvolání klíčů (GNS/REVOCATION) byla funkce převedena na použití hashovacího algoritmu Argon2.
- Ve službě decentralizované výměny atributů identifikace (RECLAIM) byl zvýšen velikost tiketů na 256 bitů.
- Transportní plugin, využívající pro přenos dat protokol UDP, byl přesunut do kategorie experimentálních z důvodu problémů se stabilitou;
- Formát souboru klíčů a metoda serializace privátních klíčů ECDSA jsou sjednoceny s ostatními knihovnami (staré klíče přestanou fungovat).
- Jako implementace algoritmů šifrování založených na eliptických křivkách je využita knihovna .
- Byla přidána možnost kompilace utilit s knihovnou cURL, která není spojena s gnutls.
- Vrácen server pro kontinuální integraci .
- Do závislostí na sestavení byly zahrnuty knihovny libmicrohttpd, libjansson a libsodium.
Zdroj: opennet.ru
