Комитет IETF (Internet Engineering Task Force), който се занимава с развитието на протоколите и архитектурата на интернет, завърши формулирането на RFC за системата за домейни GNS (GNU Name System), развивана от проекта GNUnet като напълно децентрализирана и недостъпна за цензура заместител на DNS. Спецификацията, публикувана като RFC-9498, получи статут на "Предложен стандарт". Напълно съвместимата с публикувания RFC реализация на GNS е част от платформата GNUnet 0.20.0 и допълнително е налична в кодовата база на проекта GNUnet-Go.
GNS може да се прилага заедно с DNS и да се използва в традиционни приложения, като уеб браузъри. Интегритетът и неизменността на записите се осигурява чрез използването на криптографски механизми. В отличие от DNS, в GNS вместо дървовидна йерархия сървъри се използва насочен граф. Преобразуването на имена е подобно на DNS, но запитванията и отговорите се извършват с запазване на конфиденциалността — обработващият запитването възел не знае на кого се дава отговор, а транзитните възли и трети наблюдатели не могат да дешифрират запитванията и отговорите.
DNS-зоната в GNS се определя чрез комбинация от публичен и частен ключ ECDSA на базата на елиптични криви Curve25519. Използването на Curve25519 се възприема от някои като доста странен ход, тъй като за ECDSA обикновено се използват други типове елиптични криви, а в двойка с Curve25519 обикновено се прилага алгоритъма за цифрови подписи Ed25519, който е по-съвременен, по-сигурен и по-бърз от ECDSA. От гледна точка на криптостабилността също буди съмненият изборът на размера на ключа — 32 байта вместо 64 байта, обикновено използвани за Ed25519, а също така и приложението на каскадно симетрично криптиране, използващо алгоритмите AES и TwoFish в режим CFB.
Такъв подход се обяснява с необходимостта от внедряване на йерархични ключове, които дават възможност за използване на коренов публичен ключ за извличане на дъщерен публичен ключ, възползвайки се от свойството на линейността на кривата Curve25519. Тази особеност позволява получаването на дъщерни публични ключове без знание за частните коренови ключове. Указаната техника се прилага също и в Bitcoin. 32-байтовият размер на ключа е избран, за да може ключът да се побере в един запис DNS.
Източник: opennet.ru
