Цензуроустойчивая система доменных имён GNS получила статус предложенного стандарта

Комитет IETF (Internet Engineering Task Force), занимающийся развитием протоколов и архитектуры интернета, завершил формирование RFC для системы доменных имён GNS (GNU Name System), развиваемой проектом GNUnet в качестве полностью децентрализованной и недоступной для цензуры замены DNS. Спецификация, опубликованная как RFC-9498, получила статус “Предложенного стандарта”. Полностью соответствующая опубликованному RFC реализация GNS входит в состав платформы GNUnet 0.20.0 и дополнительно доступна в кодовой базе проекта GNUnet-Go.

GNS может применяться бок о бок с DNS и использоваться в традиционных приложениях, таких как web-браузеры. Целостность и неизменность записей обеспечивается за счёт использования криптографических механизмов. В отличие от DNS в GNS вместо древовидной иерархии серверов применяется направленный граф. Преобразование имён сходно с DNS, но запросы и ответы выполняются с сохранением конфиденциальности – обрабатывающий запрос узел не знает кому отдаётся ответ, а транзитные узлы и сторонние наблюдатели не могут расшифровать запросы и ответы.

DNS-зона в GNS определяется при помощи связки из открытого и закрытого ключей ECDSA на основе эллиптических кривых Curve25519. Использование Curve25519 воспринимается некоторыми как весьма странный шаг, так как для ECDSA применяют другие типы эллиптических кривых, а в паре с Curve25519 обычно используют алгоритм цифровых подписей Ed25519, более современный, более безопасный и более быстрый, чем ECDSA. С точки зрения криптостойкости также вызывает сомнение выбор размера ключа – 32 байта вместо 64 байт, обычно используемых для Ed25519, а также применение каскадного симметричного шифрования, используя алгоритмы AES и TwoFish в режиме CFB.

Подобный подход объясняется необходимостью реализации иерархических ключей, дающих возможность использовать корневой открытый ключ для извлечения дочернего открытого ключа, пользуясь свойством линейности кривой Curve25519. Данная особенность позволяет получать дочерние открытые ключи без знания закрытых корневых ключей. Указанная техника также применяется в Bitcoin. 32-байтовый размер ключа выбран для того чтобы ключ вмещался в одну запись DNS.

Release. Ссылка here.