DNSCurve - DNSCurve
DNSCurve это предлагаемый безопасный протокол для система доменных имен (DNS), разработанный Дэниел Дж. Бернштейн.
Описание
DNSCurve использует Подкрутка25519[1] криптография на основе эллиптических кривых установить ключи, используемые Сальса20, в паре с код аутентификации сообщения (MAC) функция Поли1305, для шифрования и аутентификации DNS пакеты между резолверы и авторитетные серверы. Открытые ключи для удаленных полномочных серверов помещаются в записи NS, поэтому рекурсивные распознаватели знают, поддерживает ли сервер DNSCurve. Ключи начинаются с волшебной строки uz5
и сопровождаются 51-байтовым Base32 шифрование 255-битного открытого ключа сервера. Например, в СВЯЗЫВАТЬ формат:
example.com. В NS uz5bcx1nh80x1r17q653jf3guywz7cmyh5jv0qjz0unm56lq7rpj8l.example.com.
Затем преобразователь отправляет на сервер пакет, содержащий его открытый ключ DNSCurve, 96-битный nonce, и криптографический блок, содержащий запрос. Криптографический блок создается с использованием закрытого ключа преобразователя, открытого ключа сервера и одноразового номера. Ответ сервера содержит другой 96-битный одноразовый номер и собственное криптографическое поле, содержащее ответ на запрос.
Криптографические инструменты, используемые в DNSCurve, такие же, как и в CurveCP, а UDP на основе протокола, который похож на TCP но использует криптографию с эллиптической кривой для шифрования и аутентификации данных. Аналогия заключается в том, что пока DNSSEC похоже на подписание веб-страницы с помощью Довольно хорошая конфиденциальность (PGP), CurveCP и DNSCurve похожи на шифрование и аутентификацию канала с использованием Безопасность транспортного уровня (TLS). Подобно тому, как подписанные PGP веб-страницы могут быть отправлены по зашифрованному каналу с использованием SSL, данные DNSSEC могут быть защищены с помощью DNSCurve.
DNSCurve заявляет о преимуществах по сравнению с предыдущими службами DNS:[2]
- Конфиденциальность - обычные запросы и ответы DNS не шифруются и передаются любому злоумышленнику.
- Целостность - обычный DNS имеет некоторую защиту, но с терпением и сниффингом злоумышленники могут подделать записи DNS; это предотвращается криптографической аутентификацией DNSCurve.
- Доступность - обычный DNS не имеет защиты от отказ в обслуживании (DoS) злоумышленником, отправляющим несколько поддельных пакетов в секунду. DNSCurve распознает и отбрасывает поддельные пакеты DNS, обеспечивая некоторую защиту, хотя SMTP, HTTP, HTTPS также уязвимы для DoS.
Безопасность
DNSCurve использует 256-битную криптографию с эллиптической кривой, которая NIST оценивается примерно как 3072-битный RSA.[3] ECRYPT сообщает о подобной эквивалентности.[4] Он использует шифрование с открытым ключом для каждого запроса (например, SSH и SSL) и 96-битные одноразовые номера для защиты от атак повторного воспроизведения. Адам Лэнгли, сотрудник службы безопасности Google, говорит: «С очень высокой вероятностью никто никогда не сможет решить ни одного экземпляра Curve25519 без большого квантового компьютера».[5]
Скорость
Адам Лэнгли разместил тесты скорости на своем личном веб-сайте, показывающие, что Curve25519, используемый DNSCurve, является самым быстрым среди протестированных эллиптических кривых.[6] По данным США Национальное Агенство Безопасности (NSA), криптография на основе эллиптических кривых обеспечивает значительно более высокую производительность по сравнению с RSA и алгоритмом Диффи-Хеллмана при геометрической скорости при увеличении размера ключа.[7]
Реализации
DNSCurve впервые получил рекурсивную поддержку в dnscache с помощью патча[8] Мэтью Демпски. Демпски также имеет GitHub репозиторий, который включает инструменты поиска Python DNS и перенаправитель на C.[9] У Адама Лэнгли также есть репозиторий на GitHub.[10] Есть авторитетный сервер пересылки CurveDNS.[11] что позволяет администраторам DNS защищать существующие установки без исправлений. OpenDNS выпустил DNSCrypt[12] для защиты канала между пользователями OpenDNS и его рекурсивными преобразователями. Ян Мойжиш выпустил curveprotect,[13] программный пакет, который реализует защиту DNSCurve и CurveCP для общих служб, таких как DNS, SSH, HTTP и SMTP.
Развертывание
OpenDNS, у которой 50 миллионов пользователей, объявила о поддержке DNSCurve на своих рекурсивных преобразователях 23 февраля 2010 года.[14]Затем 6 декабря 2011 года OpenDNS анонсировал новый инструмент под названием DNSCrypt.[15] DNSCrypt защищает канал между OpenDNS и его пользователями.[16] Ни один такой же крупный авторитетный поставщик DNS еще не развернул DNSCurve.
Смотрите также
DNSCurve предназначен для защиты связи между резолвером и авторитетным сервером. Для защиты связи между DNS-клиентами и резолверами существует несколько вариантов:
- DNS через TLS, определенный двумя стандартными RFC, RFC 7858 и RFC 8310
- DNS через HTTPS, стандартизированный в RFC 8484
- DNSCrypt
Примечания
- ^ Д. Дж. Бернштейн. "Curve25519: высокоскоростная криптография на основе эллиптических кривых". Получено 30 января 2013.
- ^ «Введение в DNSCurve». DNSCurve. 22 июня 2009 г.. Получено 16 марта 2016.
- ^ «Рекомендации NIST (2011 г.)».
- ^ «Годовой отчет ECRYPT II по алгоритмам и размерам ключей (2010-2011)» (PDF). Архивировано из оригинал (PDF) на 2012-06-02.
- ^ "Адам Лэнгли о безопасности curve25519".
- ^ «Адам Лэнгли: Какая разница, что делает прайм».
- ^ "Аргументы в пользу криптографии с эллиптическими кривыми". АНБ. Архивировано из оригинал 17 января 2009 г.. Получено 17 января, 2009.
- ^ «Патч DNSCurve для dnscache». Архивировано из оригинал на 2012-12-28.
- ^ "Репозиторий Мэтью Демпски DNSCurve на GitHub".
- ^ "Репо Адама Лэнгли по DNSCurve".
- ^ "CurveDNS: сервер имен пересылки DNSCurve".
- ^ «DNSCrypt: защита критически важной части инфраструктуры Интернета». Архивировано из оригинал на 2012-05-10. Получено 2012-05-09.
- ^ «curveprotect, комплексный набор инструментов для защиты широкого спектра интернет-услуг».
- ^ «OpenDNS принимает DNSCurve».
- ^ «OpenDNS представляет DNSCrypt». Архивировано из оригинал на 2013-02-03.
- ^ "net / dnscrypt-proxy: dnscrypt-proxy-1.4.3 - безопасная связь между DNS-клиентом и преобразователем". Порты OpenBSD. 2015-01-06. Получено 2015-02-09.
внешняя ссылка
- Официальный веб-сайт
- DNSCurve.io: сообщество пользователей DNSCurve
- Высокоскоростная криптография и DNSCurve, июнь 2009 г. презентация автора
- DNSCurve: полезная безопасность для DNS, презентация автора в августе 2008 г.
- draft-dempsky-dnscurve-01 Предлагаемый стандарт «DNSCurve: безопасность на уровне канала для системы доменных имен», присланный М. Демпски (из OpenDNS ) к IETF (обновлено в феврале 2010 г.)
- OpenDNS использует DNSCurve, официальная запись в блоге OpenDNS
- CurveDNS, DNS-сервер пересылки DNSCurve
- NaCl, Библиотека сетей и криптографии