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