DNSкривая
Протокол связи | |
Разработчик(и) | Дэниел Дж. Бернштейн |
---|---|
Введение | 2009 год [1] |
Уровень OSI | Прикладной уровень |
Веб-сайт | dnscurve |
DNSCurve — это предлагаемый безопасный протокол для системы доменных имен (DNS), разработанный Дэниелом Дж. Бернштейном . Он шифрует и аутентифицирует пакеты DNS между преобразователями и авторитетными серверами.
DNSCurve заявляет о преимуществах по сравнению с предыдущими службами DNS: [1]
- Конфиденциальность — обычные DNS-запросы и ответы не шифруются и передаются любому злоумышленнику.
- Целостность — обычный DNS имеет некоторую защиту, но, проявив терпение и анализируя данные, злоумышленники могут подделать записи DNS; это предотвращается криптографической аутентификацией DNSCurve.
- Доступность — обычный DNS не имеет защиты от отказа в обслуживании (DoS) со стороны злоумышленника, отправляющего несколько поддельных пакетов в секунду. DNSCurve распознает и отбрасывает поддельные пакеты DNS, обеспечивая некоторую защиту, хотя SMTP , HTTP , HTTPS также уязвимы для DoS .
Структура
[ редактировать ]DNSCurve использует Curve25519 криптографию эллиптических кривых для установления личности авторитетных серверов. [2] Открытые ключи удаленных авторитетных серверов помещаются в записи NS, поэтому рекурсивные преобразователи знают, поддерживает ли сервер DNSCurve. Ключи начинаются с волшебной строки uz5
за ними следует 51-байтовая кодировка Base32 255-битного открытого ключа сервера. Например, в формате BIND :
example.com. IN NS uz5bcx1nh80x1r17q653jf3guywz7cmyh5jv0qjz0unm56lq7rpj8l.example.com.
Идентификация используется для установления ключей, используемых схемой шифрования с аутентификацией, состоящей из Salsa20 и Poly1305 . Криптографическая установка называется «криптографическим ящиком», в частности crypto_box_curve25519xsalsa20poly1305
. [3]
Инструмент «криптографического ящика», используемый в DNSCurve, аналогичен используемому в CurveCP , протоколе на основе UDP , который похож на TCP , но использует криптографию с эллиптической кривой для шифрования и аутентификации данных. Аналогия заключается в том, что DNSSEC похож на подписание веб-страницы с помощью Pretty Good Privacy (PGP), CurveCP и DNSCurve похожи на шифрование и аутентификацию канала с использованием Transport Layer Security (TLS). Точно так же, как веб-страницы, подписанные PGP, можно отправлять по зашифрованному каналу с использованием SSL, данные DNSSEC можно защитить с помощью DNSCurve. [4]
Операция
[ редактировать ]Резолвер сначала извлекает открытый ключ из записи NS, см. § Структура выше.
Затем преобразователь отправляет на сервер пакет, содержащий открытый ключ DNSCurve, 96-битный nonce и криптографический блок, содержащий запрос. Криптографический ящик создается с использованием закрытого ключа преобразователя, открытого ключа сервера и nonce. Ответ сервера содержит другой 96-битный одноразовый номер и собственный криптографический блок, содержащий ответ на запрос.
Безопасность
[ редактировать ]DNSCurve использует 256-битную криптографию с эллиптической кривой, которая, по оценкам NIST , примерно эквивалентна 3072-битному RSA. [5] ECRYPT сообщает об аналогичной эквивалентности. [6] Он использует шифрование с открытым ключом для каждого запроса (например, SSH и SSL) и 96-битные одноразовые номера для защиты от атак повторного воспроизведения. Адам Лэнгли, сотрудник службы безопасности Google, говорит: «С очень высокой вероятностью никто никогда не решит ни одного экземпляра Curve25519 без большого квантового компьютера». [7]
Скорость
[ редактировать ]Адам Лэнгли разместил на своем личном веб-сайте тесты скорости, показывающие, что Curve25519, используемый DNSCurve, является самой быстрой среди протестированных эллиптических кривых. [8] По данным Агентства национальной безопасности США (АНБ), криптография на основе эллиптических кривых обеспечивает значительно более высокую производительность по сравнению с RSA и Диффи-Хеллмана с геометрической скоростью по мере увеличения размеров ключей. [9]
Реализации
[ редактировать ]DNSCurve впервые получила рекурсивную поддержку в dnscache благодаря патчу. [10] Мэтью Демпски. У Dempsky также есть репозиторий GitHub , который включает инструменты поиска DNS Python и сервер пересылки на C. [11] У Адама Лэнгли также есть репозиторий на GitHub. [12] Существует авторитетный сервер пересылки CurveDNS. [13] что позволяет администраторам DNS защищать существующие установки без внесения исправлений.
Ян Мойжиш выпустил Curveprotect, [14] пакет программного обеспечения, который реализует защиту DNSCurve и CurveCP для таких общих служб, как DNS, SSH, HTTP и SMTP.
DNSCurve.io (2023) рекомендует две реализации: dqcache Яна Мойжиша для рекурсивных преобразователей и CurveDNS для авторитетных серверов. [15]
Развертывание
[ редактировать ]OpenDNS , у которой 50 миллионов пользователей, объявила о поддержке DNSCurve в своих рекурсивных преобразователях 23 февраля 2010 года. Другими словами, ее рекурсивные преобразователи теперь используют DNSCurve для связи с авторитетными серверами, если они доступны. [16] 6 декабря 2011 года OpenDNS анонсировала новый инструмент под названием DNSCrypt . [17] DNSCrypt основан на аналогичных криптографических инструментах, что и DNSCurve, но вместо этого защищает канал между OpenDNS и его пользователями. [18]
Ни один столь же крупный авторитетный провайдер DNS еще не внедрил DNSCurve.
См. также
[ редактировать ]DNSCurve предназначен для защиты связи между преобразователем и авторитетным сервером. Для обеспечения безопасности связи между DNS-клиентами и преобразователями существует несколько вариантов:
- DNS поверх TLS , определенный двумя стандартами RFC: RFC 7858 и RFC 8310.
- DNS через HTTPS , стандартизированный в RFC 8484.
- DNSCrypt
Примечания
[ редактировать ]- ↑ Перейти обратно: Перейти обратно: а б «Введение в DNSCurve» . DNSКрив . 22 июня 2009 года . Проверено 16 марта 2016 г.
- ^ Диджей Бернштейн. «Curve25519: высокоскоростная криптография на основе эллиптических кривых» . Проверено 30 января 2013 г.
- ^ «Шифрование с аутентификацией открытым ключом: crypto_box» . nacl.cr.yp.to .
crypto_box — это кривая25519xsalsa20poly1305, особая комбинация Curve25519, Salsa20 и Poly1305, указанная в разделе «Криптография в NaCl». Предполагается, что эта функция соответствует стандартным понятиям конфиденциальности и невозможности подделки третьими лицами.
- ^ «CurveCP: Полезная безопасность для Интернета» . Проверено 18 января 2024 г.
- ^ «Рекомендации НИСТ (2011 г.)» .
- ^ «Ежегодный отчет ECRYPT II по алгоритмам и размерам ключей (2010–2011 гг.)» (PDF) . Архивировано из оригинала (PDF) 2 июня 2012 г.
- ^ «Адам Лэнгли о безопасности Curve25519» .
- ^ «Адам Лэнгли: какую разницу имеет простое число» .
- ^ «Дело в пользу криптографии с эллиптическими кривыми» . АНБ . Архивировано из оригинала 17 января 2009 года . Проверено 17 января 2009 г.
- ^ «Патч DNSCurve для dnscache» . Архивировано из оригинала 28 декабря 2012 г.
- ^ «Репозиторий DNSCurve Мэтью Демпски на GitHub» . Гитхаб . 13 августа 2019 г.
- ^ «Репозиторий DNSCurve Адама Лэнгли» . Гитхаб . 13 августа 2019 г.
- ^ «CurveDNS: сервер имен пересылки DNSCurve» .
- ^ «curveprotect, комплексный набор инструментов для защиты широкого спектра интернет-сервисов» . Архивировано из оригинала 26 мая 2013 г. Проверено 9 мая 2012 г.
- ^ «DNSCurve.io — сообщество DNSCurve» . dnscurve.io .
- ^ «OpenDNS использует DNSCurve» . Архивировано из оригинала 26 февраля 2010 г. Проверено 13 апреля 2010 г.
- ^ «OpenDNS представляет DNSCrypt» . Архивировано из оригинала 3 февраля 2013 г.
- ^ «net/dnscrypt-proxy: dnscrypt-proxy-1.4.3 – безопасная связь между DNS-клиентом и преобразователем» . Порты OpenBSD . 06.01.2015 . Проверено 9 февраля 2015 г.
Внешние ссылки
[ редактировать ]- Официальный сайт
- DNSCurve.io: сообщество пользователей DNSCurve.
- Высокоскоростная криптография и DNSCurve , презентация автора, июнь 2009 г.
- DNSCurve: Полезная безопасность для DNS , презентация автора, август 2008 г.
- Draft-dempsky-dnscurve-01 Предлагаемый стандарт «DNSCurve: Безопасность на уровне каналов для системы доменных имен», отправленный М. Демпски (из OpenDNS ) в IETF (обновлено в феврале 2010 г.)
- OpenDNS использует DNSCurve. Архивировано 26 февраля 2010 г. на Wayback Machine , официальной записи в блоге OpenDNS.
- CurveDNS , сервер имен пересылки DNSCurve
- NaCl , библиотека сетей и криптографии