IETF (Internet Engineering Task Force), der arbejder med udviklingen af protokoller og arkitektur for internettet, er begyndt standardiseringsprocessen af GNS (GNU Name System), som er under udvikling af projektet som en fuldstændig decentraliseret og censurfri erstatning for DNS. I øjeblikket er den første udkast til standarden, hvorefter en stabiliseret version vil danne basis for et RFC med status som «Foreslået standard».
kan anvendes sideløbende med DNS og benyttes i traditionelle applikationer såsom web-browsere. Integriteten og uforanderligheden af poster sikres gennem brugen af kryptografiske mekanismer. I modsætning til DNS anvender GNS en rettet graf i stedet for en træstruktur af servere. Navnetransformationen ligner den fra DNS, men forespørgsler og svar udføres med hensyntagen til fortrolighed — den node, der behandler forespørgslen, ved ikke, hvem svaret gives til, og transitnoderne og tredjepartsobservatører kan ikke dekryptere forespørgslerne og svarene.
DNS-zonen i GNS defineres ved hjælp af et par bestående af en offentlig og en privat nøgle baseret på elliptiske kurver . Anvendelsen af Curve25519 af nogle som et meget mærkeligt skridt, da der for ECDSA anvendes andre typer elliptiske kurver, og Curve25519 anvendes typisk i par med mere moderne , som er mere sikre og hurtigere end ECDSA. Med hensyn til kryptografisk modstandsdygtighed vækker valget af nøglestørrelse også bekymring — 32 byte i stedet for 64 byte, som normalt anvendes for Ed25519, samt anvendelsen af ved brug af AES- og TwoFish-algoritmer i CFB-tilstand.
En sådan tilgang forklares med nødvendigheden af at implementere hierarkiske nøgler, der giver mulighed for at bruge den rodoffentlige nøgle til at udtrække en undernøgle, ved at udnytte lineariteten af Curve25519. Denne egenskab tillader generering af undernøgler uden kendskab til de private rodnøgler. Den nævnte teknik findes også i Bitcoin. 32-byte størrelsen på nøglen er valgt for at sikre, at nøglen kan rumme i en enkelt DNS-post.
Yderligere kan det nævnes af rammeværket , designet til at opbygge sikre decentrale P2P-netværk. De netværk, der skabes ved hjælp af GNUnet, har ikke et enkelt fejlpunkt og kan garantere brugernes private oplysninger, herunder at udelukke mulige misbrug fra myndigheder og administratorer, der har adgang til netværkets noder. Udgivelsen er markeret som indeholdende betydelige ændringer til protokollen, der bryder bagudkompatibiliteten med versioner 0.12.x.
GNUnet understøtter oprettelse af P2P-netværk over TCP, UDP, HTTP/HTTPS, Bluetooth og WLAN, og kan fungere i F2F (Friend-to-friend) tilstand. NAT-omgåelse understøttes, herunder ved brug af UPnP og ICMP. Til adressering af dataplacering kan der bruges en distribueret hashingtabel (DHT). Der gives midler til at implementere mesh-netværk. For selektivt at give og trække adgangsrettigheder anvendes en decentraliseret tjeneste til udveksling af identifikationsattributter. , GNS (GNU Navnesystem) og attributbaseret kryptering ().
Systemet skelner sig ved lavt ressourceforbrug og brugen af en flerprocess-arkitektur for at sikre isolation mellem komponenterne. Der tilbydes fleksible værktøjer til logning og indsamling af statistik. Til udvikling af sluttakappter giver GNUnet API til C og bindings til andre programmeringssprog. For at forenkle udviklingen anbefales brug af begivenhedsløkker (event loop) i stedet for tråde og processer. Inkluderet er et testbibliotek til automatisk udrulning af eksperimentelle netværk, som dækker titusinder af peers.
Ud over GNS er der også flere færdige applikationer, der udvikles på grundlag af GNUnet-teknologier:
- En service til anonym udveksling af filer, der forhindrer analyse af information ved kun at transmittere data i krypteret form og som ikke giver mulighed for at spore, hvem der har uploadet, søgt efter eller downloadet filer, takket være brugen af protokollen GAP.
- Et VPN-system til oprettelse af skjulte tjenester i domænet ".gnu" og tunneling af IPv4 og IPv6 over P2P-netværket. Der understøttes desuden IPv4-til-IPv6 og IPv6-til-IPv4 oversættelsesskemaer samt oprettelse af tunneler IPv4-over-IPv6 og IPv6-over-IPv4.
- GNUnet Conversation-tjenesten til at foretage opkald over GNUnet. GNS bruges til identifikation af brugere, og indholdet af stemmetrafikken overføres i krypteret form. Anonymitet tilbydes endnu ikke — andre peers kan spore forbindelsen mellem to brugere og bestemme deres IP-adresser.
- En platform til opbygning af decentrale sociale netværk , der bruger protokollen og understøtter distribution af meddelelser i multicast-tilstand med end-to-end-kryptering, så kun autoriserede brugere (de, som meddelelserne ikke er adresseret til, herunder administratorer af noder, ikke kan læse dem) kan få adgang til beskeder, filer, chats og diskussioner;
- Et system til organisering af krypteret e-mail , der anvender GNUnet til at beskytte metadata og understøtter forskellige til verifikation af nøgler;
- Betalingssystem , der giver anonymitet til købere, men sporer sælgernes transaktioner for at sikre gennemsigtighed og provide skatterapportering. Understøtter arbejde med forskellige nuværende valutaer og elektroniske penge, herunder dollars, euro og bitcoins.
Hovednyheder i GNUnet 0.13:
- Registreret i drift (GNUnet Assigned Numbers Authority), som er ansvarlig for tildeling af navne og adresser til GNUnet.
- Implementeringen af det decentrale domænenavnesystem GNS er blevet tilpasset til , foreslået i IETF. NSS-pluginet 'block' er blevet implementeret. Nye SUPPLEMENTAL-flag tilføjet for poster, der ikke er offentliggjort under det angivne mærke, men som returneres af resolveren. Varningsudskrift tilføjet i værktøjet gnunet-namestore ved tilføjelse af TLSA eller SRV-poster uden for posten .
- I nøglefortrydelsesmekanismen (GNS/REVOCATION) er funktionen overført til at bruge hashing-algoritmen Argon2.
- I den decentrale udvekslingstjeneste for identifikationsattributter (RECLAIM) er billettens størrelse blevet øget til 256 bit.
- Transportpluginet, der bruger UDP-protokollen til datatransmission, er flyttet til kategorien eksperimentelle på grund af stabilitetsproblemer;
- Filformatet for nøgler og metoden til serialisering af private ECDSA-nøgler er blevet ensrettet med andre biblioteker (gamle nøgler vil holde op med at fungere).
- Som implementering af kryptografiske algoritmer baseret på elliptiske kurver er biblioteket .
- Muligheden for at bygge værktøjer med cURL-biblioteket, der ikke er bundet til gnutls, er blevet tilføjet.
- Serveren til kontinuerlig integration er blevet sendt tilbage .
- Byggeafhængigheder inkluderer bibliotekerne libmicrohttpd, libjansson og libsodium.
Kilde: opennet.ru
