Расширения безопасности системы доменных имен ( DNSSEC ) — это набор спецификаций расширений , разработанный Инженерной группой Интернета (IETF) для защиты данных, которыми обмениваются в системе доменных имен ( DNS ) в сетях Интернет-протокола ( IP ) . Протокол обеспечивает криптографическую аутентификацию данных, аутентифицированное отрицание существования и целостность данных , но не доступность или конфиденциальность .
Первоначальный дизайн системы доменных имен не включал никаких функций безопасности. Она задумывалась только как масштабируемая распределенная система. Расширения безопасности системы доменных имен (DNSSEC) пытаются повысить безопасность, сохраняя при этом обратную совместимость . В RFC 3833 от 2004 г. документированы некоторые известные угрозы DNS и способы их устранения в DNSSEC.
DNSSEC был разработан для защиты приложений, использующих DNS, от приема поддельных или манипулируемых данных DNS, например, созданных в результате отравления кэша DNS . Все ответы из защищенных зон DNSSEC имеют цифровую подпись . [1] Проверяя цифровую подпись, преобразователь DNS может проверить, идентична ли информация (т. е. не изменена и полна) информации, опубликованной владельцем зоны и обслуживаемой авторитетным DNS-сервером. Хотя защита IP-адресов является непосредственной заботой многих пользователей, DNSSEC может защитить любые данные, опубликованные в DNS, включая текстовые записи (TXT) и записи обмена почтой (MX), и может использоваться для загрузки других систем безопасности, которые публикуют ссылки на криптографические сертификаты, хранящиеся в DNS, такие как записи сертификатов ( записи CERT , RFC 4398), отпечатки пальцев SSH ( SSHFP , RFC 4255), открытые ключи IPSec (IPSECKEY, RFC 4025), якоря доверия TLS ( TLSA , RFC 6698) или зашифрованный клиентский привет. (Записи SVCB/HTTPS для ECH [2] [3] ).
DNSSEC не обеспечивает конфиденциальность данных; в частности, все ответы DNSSEC аутентифицируются, но не шифруются. DNSSEC не защищает от DoS- атак напрямую, хотя косвенно дает некоторую выгоду (поскольку проверка подписи позволяет использовать потенциально ненадежные стороны). [ нужна цитата ]
Другие стандарты (не DNSSEC) используются для защиты больших объемов данных (например, передачи зоны DNS ), пересылаемых между DNS-серверами. Как описано в IETF RFC 4367, некоторые пользователи и разработчики делают ложные предположения относительно DNS-имен, например, предполагая, что общее имя компании плюс «.com» всегда является ее доменным именем. DNSSEC не может защитить от ложных предположений; он может только подтвердить, что данные действительно принадлежат владельцу домена или недоступны ему. [ нужна цитата ]
Спецификации DNSSEC (называемые DNSSEC-bis ) очень подробно описывают текущий протокол DNSSEC. См. RFC 4033, RFC 4034 и RFC 4035. С публикацией этих новых RFC (март 2005 г.) более ранний RFC, RFC 2535, стал устаревшим. Полный набор RFC, определяющий DNSSEC, собран в RFC 9364, который также является BCP 237.
Широко распространено мнение [4] , что защита DNS критически важна для безопасности Интернета в целом, но конкретное внедрение DNSSEC затруднено (по состоянию на 22 января 2010 г. [update]) несколькими трудностями:
DNSSEC работает путем цифровой подписи записей для поиска DNS с использованием криптографии с открытым ключом . Правильная запись DNSKEY аутентифицируется через цепочку доверия , начиная с набора проверенных открытых ключей для корневой зоны DNS , которая является доверенной третьей стороной . Владельцы доменов генерируют свои собственные ключи и загружают их с помощью панели управления DNS у своего регистратора доменных имен, который, в свою очередь, передает ключи через secDNS оператору зоны (например, Verisign для .com), который подписывает и публикует их в DNS.
DNS реализуется с использованием нескольких записей ресурсов. Для реализации DNSSEC было создано или адаптировано для использования с DNSSEC несколько новых типов записей DNS :
При использовании DNSSEC каждый ответ на поиск DNS содержит DNS-запись RRSIG в дополнение к запрошенному типу записи. Запись RRSIG — это цифровая подпись набора записей ресурсов DNS ответа. Цифровая подпись проверяется путем обнаружения правильного открытого ключа, найденного в записи DNSKEY. Записи NSEC и NSEC3 используются для предоставления криптографического доказательства отсутствия какой-либо записи ресурса (RR). Запись DS используется при аутентификации DNSKEY в процедуре поиска с использованием цепочки доверия. Записи NSEC и NSEC3 используются для надежной защиты от подделки.
DNSSEC был разработан с возможностью расширения, чтобы при обнаружении атак на существующие алгоритмы можно было вводить новые с обратной совместимостью , как описано в RFC 8624. В следующей таблице по состоянию на июнь 2019 года определены алгоритмы безопасности, которые являются или были наиболее часто используется: [5]
По результатам поиска DNS безопасный преобразователь DNS может определить, поддерживает ли авторитетный сервер имен для запрашиваемого домена DNSSEC, безопасен ли полученный ответ и есть ли какая-либо ошибка. Процедура поиска различна для рекурсивных серверов имен , таких как серверы многих интернет-провайдеров , и для заглушек, таких как те, которые включены по умолчанию в основные операционные системы. Microsoft Windows использует преобразователь заглушек, а Windows Server 2008 R2 и Windows 7, в частности, используют непроверяющий, но поддерживающий DNSSEC преобразователь заглушек. [6] [7]
Используя модель цепочки доверия , запись подписывающего лица (DS) в родительском домене ( зоне DNS ) может использоваться для проверки записи DNSKEY в субдомене , который затем может содержать другие записи DS для проверки дальнейших субдоменов. Предположим, что рекурсивный преобразователь, такой как сервер имен интернет-провайдера, хочет получить IP-адреса ( запись A и/или записи AAAA ) домена «www.example.com » .
Из приведенного выше примера есть несколько исключений.
Во-первых, если «example.com» не поддерживает DNSSEC, в ответе не будет записи RRSIG и не будет записи DS для «example.com» в зоне «com». Если есть запись DS для «example.com», но нет записи RRSIG в ответе, что-то не так, и, возможно, происходит атака «человек посередине» , удаляющая информацию DNSSEC и изменяющая записи A. Или это может быть сломанный сервер имен, не обращающий внимания на безопасность, который удалил бит флага DO из запроса или запись RRSIG из ответа. Или это может быть ошибка конфигурации.
Далее может случиться так, что доменное имя с именем «www.example.com» отсутствует, и в этом случае вместо возврата записи RRSIG в ответе будет либо запись NSEC, либо запись NSEC3. Это записи «следующей безопасности», которые позволяют преобразователю доказать, что доменное имя не существует. Записи NSEC/NSEC3 содержат записи RRSIG, которые можно проверить, как указано выше.
Наконец, может случиться так, что зона «example.com» реализует DNSSEC, а зона «com» или корневая зона — нет, создавая «остров безопасности», который необходимо проверить каким-либо другим способом. По состоянию на 15 июля 2010 г. [update]развертывание DNSSEC для root завершено. [8] Домен .com был подписан действительными ключами безопасности, а безопасное делегирование было добавлено в корневую зону 1 апреля 2011 года. [9]
Преобразователи-заглушки — это «минимальные преобразователи DNS, которые используют режим рекурсивных запросов для переноса большей части работы по разрешению DNS на рекурсивный сервер имен». [10] Резолвер-заглушка просто пересылает запрос на рекурсивный сервер имен и использует бит аутентифицированных данных (AD) в ответе как «подсказку, чтобы выяснить, смог ли рекурсивный сервер имен проверить подписи для всех данные в разделах «Ответ» и «Авторитет» ответа». [11] В Microsoft Windows используется преобразователь-заглушка, а в Windows Server 2008 R2 и Windows 7, в частности, используется непроверяющий преобразователь-заглушка, поддерживающий бит AD. [6] [7]
Проверяющий заглушечный преобразователь также потенциально может выполнять собственную проверку подписи, устанавливая бит «Проверка отключена» (CD) в своих сообщениях запроса. [11] Проверяющий заглушечный преобразователь использует бит CD для выполнения собственной рекурсивной аутентификации. Использование такого проверяющего заглушки обеспечивает клиенту сквозную безопасность DNS для доменов, реализующих DNSSEC, даже если поставщик услуг Интернета или соединение с ним не являются доверенными.
Непроверяющие заглушки-резольверы должны полагаться на внешние службы проверки DNSSEC, например, те, которые контролируются интернет-провайдером пользователя или общедоступным рекурсивным сервером имен , а также каналы связи между собой и этими серверами имен, используя такие методы, как DNS через TLS . [11] [12]
Чтобы доказать правильность ответа DNS, необходимо знать хотя бы один правильный ключ или запись DS из источников, отличных от DNS. Эти отправные точки известны как якоря доверия и обычно получаются вместе с операционной системой или из другого доверенного источника. Когда DNSSEC изначально разрабатывался, считалось, что единственный необходимый якорь доверия — это корень DNS . Корневые якоря были впервые опубликованы 15 июля 2010 года. [13]
Цепочка аутентификации представляет собой серию связанных записей DS и DNSKEY, начиная с привязки доверия к авторитетному серверу имен для рассматриваемого домена. Без полной цепочки аутентификации ответ на поиск DNS не может быть надежно аутентифицирован.
Чтобы ограничить атаки повторного воспроизведения, существуют не только обычные значения DNS TTL для целей кэширования, но и дополнительные временные метки в записях RRSIG для ограничения действительности подписи. В отличие от значений TTL, которые относятся к моменту отправки записей, временные метки являются абсолютными. Это означает, что все DNS-преобразователи, отвечающие за безопасность, должны иметь часы, которые достаточно синхронизированы, скажем, с точностью до нескольких минут.
Эти временные метки означают, что зону необходимо регулярно переподписывать и перераспределять на вторичные серверы, иначе подписи будут отклонены проверяющими преобразователями.
DNSSEC включает в себя множество различных ключей, хранящихся как в записях DNSKEY, так и из других источников для формирования якорей доверия .
Для возможности замены ключей необходима схема смены ключей . Обычно это предполагает сначала развертывание новых ключей в новых записях DNSKEY в дополнение к существующим старым ключам. Затем, когда можно с уверенностью предположить, что значения времени жизни привели к тому, что кэширование старых ключей прошло, можно использовать эти новые ключи. Наконец, когда можно с уверенностью предположить, что срок кэширования записей, использующих старые ключи, истек, старые записи DNSKEY можно удалить. Этот процесс более сложен для таких вещей, как ключи для доверенных привязок, например в корне, что может потребовать обновления операционной системы.
Ключи в записях DNSKEY могут использоваться для двух разных целей, и обычно для каждой из них используются разные записи DNSKEY. Во-первых, существуют ключи подписи ключей (KSK), которые используются для подписи других записей DNSKEY, содержащих ключи подписи зоны (ZSK), которые используются для подписи других записей. Поскольку ZSK находятся под полным контролем и используются одной конкретной зоной DNS , их можно переключать легче и чаще. В результате ZSK могут быть намного короче, чем KSK, и при этом обеспечивать тот же уровень защиты, уменьшая при этом размер записей RRSIG/DNSKEY.
При создании нового KSK запись DS необходимо перенести в родительскую зону и опубликовать там. Записи DS используют дайджест сообщения KSK вместо полного ключа, чтобы сохранить небольшой размер записей. Это полезно для таких зон, как домен .com , которые очень велики. Процедура обновления ключей DS в родительской зоне также проще, чем в более ранних версиях DNSSEC, которые требовали, чтобы записи DNSKEY находились в родительской зоне.
Тесно связанным принципом является смена алгоритма , который предполагает миграцию зоны от одного алгоритма подписи к другому. Хорошим примером этого может быть переход от алгоритма 8 (RSA/SHA-256) к алгоритму 13 (ECDSA/SHA-256). Несколько ccTLD уже перешли, включая .at , .br , .cz , .ch , .fr , .ie , .nl [14] и .ph . Verisign перевела .com, .net и .edu на алгоритм 13 в конце 2023 года. [15] [16] Миграция корневого домена с алгоритма 8 на алгоритм 13 в настоящее время планируется в начале 2024 года. [17]
Аутентификация именованных объектов на основе DNS (DANE) — это рабочая группа IETF [18] с целью разработки протоколов и методов, которые позволяют интернет-приложениям устанавливать криптографически защищенные соединения с TLS , DTLS , SMTP и S/MIME на основе DNSSEC.
Новые протоколы предоставят дополнительные гарантии и ограничения для традиционной модели, основанной на инфраструктуре открытых ключей . Они также позволят владельцам доменов самостоятельно утверждать сертификаты без обращения к сторонним центрам сертификации .
Поддержка вшитых сертификатов DNSSEC была включена в Google Chrome 14, [19] , но позже была удалена. [20] Для Mozilla Firefox поддержка была предоставлена надстройкой [21], тогда как встроенная поддержка в настоящее время ожидает, чтобы кто-нибудь начал над ней работать. [22]
DNS — это важнейшая и фундаментальная служба Интернета, однако в 1990 году Стив Белловин обнаружил в ней серьезные недостатки безопасности. Исследования по обеспечению его безопасности начались и резко продвинулись вперед, когда его статья была обнародована в 1995 году. [23] Первоначальный RFC 2065 был опубликован IETF в 1997 году, и первые попытки реализовать эту спецификацию привели к пересмотру (и признанию полностью работоспособным) спецификация в 1999 году как IETF RFC 2535. Планировалось развернуть DNSSEC на основе RFC 2535.
К сожалению, спецификация IETF RFC 2535 имела очень серьезные проблемы с масштабированием на весь Интернет; к 2001 году стало ясно, что эта спецификация непригодна для больших сетей. При нормальной работе DNS-серверы часто не синхронизируются со своими родительскими серверами. Обычно это не проблема, но когда DNSSEC включен, эти несинхронизированные данные могут привести к серьезному отказу в обслуживании, создаваемому самим пользователем. Первоначальный DNSSEC требовал сложного протокола из шести сообщений и большого количества передач данных для выполнения ключевых изменений для дочернего элемента (дочерние зоны DNS должны были отправлять все свои данные родительскому элементу, заставлять родительский элемент подписывать каждую запись, а затем отправлять эти подписи обратно дочернему элементу для хранения в записи SIG). Кроме того, изменения открытого ключа могут иметь абсурдные последствия; например, если бы зона «.com» изменила свой открытый ключ, ей пришлось бы отправить 22 миллиона записей (поскольку ей нужно было бы обновить все подписи во всех своих дочерних зонах). Таким образом, DNSSEC, определенный в RFC 2535, не может масштабироваться до Интернета.
IETF фундаментально изменил DNSSEC, который при необходимости называется DNSSEC-bis , чтобы отличить его от исходного подхода DNSSEC, описанного в RFC 2535. Эта новая версия использует «записи ресурсов подписывающего лица (DS)», чтобы обеспечить дополнительный уровень косвенности в точках делегирования между родительская и дочерняя зона. В новом подходе, когда изменяется главный открытый ключ дочернего элемента, вместо шести сообщений для каждой записи в дочернем элементе имеется одно простое сообщение: дочерний элемент отправляет новый открытый ключ своему родителю (конечно, с подписью). Родители просто хранят один главный открытый ключ для каждого ребенка; это гораздо практичнее. Это означает, что родителю передается небольшой объем данных вместо обмена огромными объемами данных между родителем и дочерними элементами. Это означает, что клиентам придется проделать немного больше работы при проверке ключей. Более конкретно, проверка набора KEY RRset зоны DNS требует двух операций проверки подписи вместо одной, требуемой RFC 2535 (это не влияет на количество подписей, проверенных для других типов наборов RR). Большинство считают это небольшой ценой, поскольку это делает развертывание DNSSEC более практичным.
Криптографическое доказательство отсутствия домена требует подписи ответа на каждый запрос несуществующего домена. Это не проблема для серверов онлайн-подписи, которые хранят свои ключи доступными в Интернете. Однако DNSSEC был разработан с учетом использования автономных компьютеров для подписания записей, чтобы ключи подписи зон можно было хранить в холодном хранилище. Это представляет собой проблему при попытке аутентификации ответов на запросы для несуществующих доменов, поскольку невозможно заранее сгенерировать ответ на каждый возможный запрос имени хоста.
Первоначальное решение заключалось в создании записей NSEC для каждой пары доменов в зоне. Таким образом, если клиент запросил запись по адресу несуществующий k.example.com
, сервер ответит записью NSEC, в которой будет указано, что между a.example.com
и z.example.com
. Однако при этом теряется больше информации о зоне, чем при традиционных ошибках NXDOMAIN без аутентификации, поскольку раскрывается существование реальных доменов.
Записи NSEC3 (RFC 5155) были созданы в качестве альтернативы, которая хеширует имена вместо их прямого перечисления. Со временем достижения в хешировании с использованием графических процессоров и выделенного оборудования привели к тому, что ответы NSEC3 можно было дешево перебрать с помощью автономных атак по словарю. NSEC5 был предложен, чтобы позволить авторитетным серверам подписывать ответы NSEC без необходимости хранить закрытый ключ, который можно использовать для изменения зоны. Таким образом, кража NSEC5KEY приведет только к возможности более легкого перечисления зон. [24]
Из-за беспорядочной эволюции протокола и желания сохранить обратную совместимость, онлайн-серверы подписи DNSSEC возвращают «ложь во спасение» вместо прямой аутентификации отрицания существования. Метод, описанный в RFC 4470, возвращает запись NSEC, в которой пары доменов лексически окружают запрошенный домен. Например, запрос на k.example.com
приведет к получению записи NSEC, доказывающей, что между (фиктивными) доменами j.example.com
и l.example.com
. Это также возможно с записями NSEC3. [25]
CloudFlare стала пионером пары альтернативных подходов, которым удалось добиться того же результата при одной трети размера ответа. [26] Первый представляет собой вариант подхода «белой лжи», называемый «черной ложью», который использует обычное поведение DNS-клиента для более компактной констатации отсутствия. [27] Вместо этого второй подход выбирает доказательство того, что «запись существует, но запрошенный тип записи отсутствует», что они называют «дробовик DNS». [28] [26]
Интернет является критически важной инфраструктурой, однако его работа зависит от фундаментально небезопасного DNS. Таким образом, существует сильный стимул для защиты DNS, и внедрение DNSSEC обычно считается важной частью этих усилий. Например, Национальная стратегия США по обеспечению безопасности киберпространства конкретно определяет необходимость защиты DNS. [29] Широкомасштабное развертывание DNSSEC могло бы решить и многие другие проблемы безопасности, такие как безопасное распространение ключей для адресов электронной почты.
Развертывание DNSSEC в крупномасштабных сетях также представляет собой сложную задачу. Озмент и Шехтер отмечают, что DNSSEC (и другие технологии) имеют «проблему начальной загрузки»: пользователи обычно развертывают технологию только в том случае, если они получают немедленную выгоду, но если требуется минимальный уровень развертывания, прежде чем какие-либо пользователи получат выгоду, превышающую их затраты. (как и в случае с DNSSEC), его сложно развернуть. DNSSEC можно развернуть на любом уровне иерархии DNS, но он должен быть широко доступен в зоне, прежде чем многие другие захотят его принять. DNS-серверы необходимо обновить с помощью программного обеспечения, поддерживающего DNSSEC, а данные DNSSEC необходимо создать и добавить к данным зоны DNS. Клиент, использующий TCP/IP, должен обновить свой преобразователь DNS (клиент), прежде чем он сможет использовать возможности DNSSEC. Более того, любой преобразователь должен иметь или иметь возможность получить хотя бы один открытый ключ, которому он может доверять, прежде чем он сможет начать использовать DNSSEC.
Реализация DNSSEC может значительно увеличить нагрузку на некоторые DNS-серверы. Общие ответы, подписанные DNSSEC, намного больше, чем размер UDP по умолчанию, составляющий 512 байт. Теоретически это можно сделать с помощью нескольких IP-фрагментов, но многие «промежуточные устройства» на местах не обрабатывают их правильно. Это приводит к использованию вместо этого TCP. Тем не менее, многие текущие реализации TCP хранят большой объем данных для каждого TCP-соединения; сильно загруженные серверы могут исчерпать ресурсы, просто пытаясь ответить на большее количество (возможно, поддельных) запросов DNSSEC. Некоторые расширения протокола, такие как TCP Cookie Transactions , были разработаны для уменьшения этой нагрузки. [30] Для решения этих проблем предпринимаются значительные усилия по развертыванию DNSSEC, поскольку Интернет жизненно важен для многих организаций.
Среди первых пользователей — Бразилия ( .br ), Болгария ( .bg ), Чехия ( .cz ), Намибия ( .na ) [31] Пуэрто-Рико ( .pr ) и Швеция ( .se ), которые используют DNSSEC для кода своей страны. домены верхнего уровня ; [32] RIPE NCC , который подписал все записи обратного поиска (in-addr.arpa), делегированные ему Управлением по присвоению номеров в Интернете (IANA). [33] ARIN также подписывает свои обратные зоны. [34] В феврале 2007 года TDC стала первым шведским интернет-провайдером, который начал предлагать эту функцию своим клиентам. [35]
IANA публично тестировала образец подписанного корня с июня 2007 года. В течение этого периода до производственного подписания корня также существовало несколько альтернативных якорей доверия. IKS Jena представила один 19 января 2006 г., [36] Консорциум Интернет-систем представил еще один 27 марта того же года, [37] , а сама ICANN объявила о третьем 17 февраля 2009 г. [38]
2 июня 2009 года Afilias , поставщик услуг реестра для зоны .org Public Interest Registry, подписала TLD .org. [39] Afilias и PIR также подробно рассказали 26 сентября 2008 г., что на первом этапе с участием крупных регистраторов, с которыми у компании сложились прочные рабочие отношения («друзья и родственники»), будет первая возможность подписывать свои домены, начиная с « начало 2009 года». [40] 23 июня 2010 г. было указано 13 регистраторов, предлагающих записи DNSSEC для доменов .ORG. [41]
VeriSign запустила пилотный проект, позволяющий доменам .com и .net регистрироваться в целях экспериментов NSEC3. 24 февраля 2009 года они объявили, что развернут DNSSEC во всех своих доменах верхнего уровня (.com, .net и т. д.) в течение 24 месяцев [42] , а 16 ноября того же года они заявили, что . Домены com и .net будут подписаны к первому кварталу 2011 года после задержек, вызванных техническими аспектами реализации. [43] Эта цель была достигнута в установленные сроки [44] , а вице-президент Verisign по DNSSEC Мэтт Ларсон получил награду InfoWorld за технологическое лидерство в 2011 году за свою роль в продвижении DNSSEC. [45] [46]
DNSSEC был впервые развернут на корневом уровне 15 июля 2010 года. [47] Ожидается, что это значительно упростит развертывание преобразователей DNSSEC, поскольку корневой якорь доверия можно использовать для проверки любой зоны DNSSEC, которая имеет полную цепочку доверия от корень. Поскольку для проверки цепочка доверия должна быть прослежена до доверенного корня без прерывания, якоря доверия все равно необходимо настроить для безопасных зон, если какая-либо из зон над ними не является безопасной. Например, если зона «signed.example.org» была защищена, а зона «example.org» — нет, то, даже если зона «.org» и корень подписаны, необходимо развернуть якорь доверия в для проверки зоны.
Политические вопросы, связанные с подписанием root, вызывали постоянную озабоченность, в первую очередь в отношении некоторых центральных вопросов:
В сентябре 2008 года ICANN и VeriSign опубликовали предложения по реализации [48], а в октябре Национальное управление по телекоммуникациям и информации (NTIA) обратилось к общественности за комментариями. [49] Неясно, повлияли ли полученные комментарии на разработку окончательного плана развертывания.
3 июня 2009 г. Национальный институт стандартов и технологий (NIST) объявил о планах подписать корневой протокол к концу 2009 г. совместно с ICANN, VeriSign и NTIA. [50]
6 октября 2009 г. на 59-й конференции RIPE ICANN и VeriSign объявили запланированные сроки развертывания DNSSEC в корневой зоне. [51] На встрече было объявлено, что он будет постепенно развертываться на одном корневом сервере имен в месяц, начиная с 1 декабря 2009 г., при этом последний корневой сервер имен будет обслуживать зону, подписанную DNSSEC, 1 июля 2010 г., а корневой сервер имен будет обслуживать зону, подписанную DNSSEC, 1 июля 2010 г. зона будет подписана с помощью DNSKEY RSA/SHA256. [51] В период поэтапного развертывания корневая зона будет обслуживать намеренно непроверяемую корневую зону (DURZ), в которой используются фиктивные ключи, при этом окончательная запись DNSKEY не будет распространяться до 1 июля 2010 года. [52] Это означает, что ключи, использовались для подписи использования зоны, заведомо не поддающиеся проверке; Причиной этого развертывания было отслеживание изменений в структуре трафика, вызванных увеличением количества ответов на запросы, запрашивающие записи ресурсов DNSSEC.
Домен верхнего уровня .org был подписан с DNSSEC в июне 2010 года, а позже, в 2010 и 2011 годах, последовали .com , .net и .edu . [53] [54] Домены верхнего уровня с кодом страны могли депонировать ключи, начиная с в мае 2010 года. [55] По состоянию на ноябрь 2011 года [update]более 25% доменов верхнего уровня подписаны с помощью DNSSEC. [56]
25 января 2010 г. корневой сервер L (ell) начал обслуживать намеренно непроверяемую корневую зону (DURZ). В зоне используются подписи хеша SHA-2 (SHA-256), созданные с использованием алгоритма RSA , как определено в RFC 5702. По состоянию на май 2010 года все тринадцать корневых серверов начали обслуживать DURZ. [52] 15 июля 2010 г. была подписана первая полноценная корневая корневая зона DNSSEC с серийным номером SOA 2010071501. Корневые якоря доверия доступны в IANA. [47]
Под корнем находится большой набор доменов верхнего уровня, которые необходимо подписать, чтобы обеспечить полное развертывание DNSSEC. Список доменов верхнего уровня Интернета содержит подробную информацию о том, какие из существующих доменов верхнего уровня были подписаны и связаны с корнем.
В марте 2006 года Консорциум интернет-систем представил реестр DNSSEC Lookaside Validation. [57] Целью DLV было упрощение развертывания DNSSEC при отсутствии корневого якоря доверия. В то время предполагалось, что валидатору, возможно, придется поддерживать большое количество якорей доверия, соответствующих подписанным поддеревьям DNS. [58] Цель DLV заключалась в том, чтобы позволить валидаторам переложить усилия по управлению хранилищем якорей доверия на доверенную третью сторону. Реестр DLV поддерживает центральный список якорей доверия, вместо того, чтобы каждый валидатор повторял работу по поддержанию своего собственного списка.
Чтобы использовать DLV, требовался поддерживающий его валидатор, например BIND или Unbound , настроенный с привязкой доверия для зоны DLV. Эта зона содержала записи DLV; [59] они имели тот же формат, что и записи DS, но вместо ссылки на делегированную подзону они ссылались на зону в другом месте дерева DNS. Когда валидатору не удавалось найти цепочку доверия от корня до набора RRset, который он пытается проверить, он искал запись DLV, которая могла бы обеспечить альтернативную цепочку доверия. [60]
Пробелы в цепочке доверия, такие как неподписанные домены верхнего уровня или регистраторы, которые не поддерживали делегирование DNSSEC, означали, что администраторы доменов нижнего уровня могли использовать DLV, чтобы разрешить проверку своих данных DNS преобразователями, которые были настроены на использование DLV. . Это могло препятствовать развертыванию DNSSEC, поскольку требовало от регистраторов и реестров TLD надлежащей поддержки DNSSEC. DLV также усложнил задачу, добавив больше субъектов и путей кода для проверки DNSSEC.
ISC вывела из эксплуатации свой реестр DLV в 2017 году. [61] Поддержка DLV устарела в BIND 9.12 и полностью удалена из BIND 9.16. [62] Непривязанная версия 1.5.4 (июль 2015 г.) помечала DLV как выведенную из эксплуатации в примере конфигурации и на странице руководства. [63] Knot Resolver и PowerDNS Recursor никогда не реализовывали DLV.
В марте 2020 года IETF опубликовала RFC 8749, отказавшись от использования DLV в качестве стандарта и переведя RFC 4432 и RFC 5074 в статус «исторических». [64]
Управление науки и технологий Министерства внутренней безопасности США (DHS) спонсирует «Инициативу по развертыванию DNSSEC». Эта инициатива призывает «все сектора добровольно принять меры безопасности, которые улучшат безопасность инфраструктуры именования Интернета, в рамках глобальных совместных усилий, в которых участвуют многие страны и организации в государственном и частном секторах». DHS также финансирует усилия по усовершенствованию DNSSEC и его внедрению в федеральном правительстве США.
Сообщалось [65] , что 30 марта 2007 г. Министерство внутренней безопасности США предложило «надёжно держать ключ для подписи корневой зоны DNS в руках правительства США». Однако в зале заседаний не присутствовало ни одного представителя правительства США, а комментарий, послуживший причиной публикации статьи, был сделан другой стороной. Позже DHS прокомментировало [66] [67] вопрос, почему, по их мнению, другие пришли к ложному выводу о том, что правительство США сделало такое предложение: «Министерство внутренней безопасности США финансирует разработку технического плана по внедрению DNSSec, и, наконец, Октябрь разослал его первоначальный вариант длинному списку международных экспертов для комментариев. «Нигде в документе мы не делаем каких-либо предложений относительно личности корневого ключевого оператора», — сказал Моэн, менеджер по исследованиям и разработкам в области кибербезопасности Министерства национальной безопасности.
Национальный институт стандартов и технологий (NIST) опубликовал 16 мая 2006 г. специальную публикацию NIST 800-81 «Руководство по развертыванию защищенной системы доменных имен (DNS)» с инструкциями по развертыванию DNSSEC. NIST намеревался опубликовать новые требования DNSSEC Федерального закона об управлении информационной безопасностью (FISMA) в NIST SP800-53-R1 со ссылкой на это руководство по развертыванию. У американских агентств тогда был бы один год после окончательной публикации NIST SP800-53-R1 для удовлетворения этих новых требований FISMA. [68] Однако на тот момент NSEC3 еще не был завершен. NIST предложил использовать разделенные домены — метод, который, как известно, возможен, но его сложно правильно развернуть и который имеет отмеченные выше недостатки безопасности.
22 августа 2008 г. Управление управления и бюджета (OMB) опубликовало меморандум, требующий от федеральных агентств США развернуть DNSSEC на сайтах .gov; корень .gov должен быть подписан к январю 2009 года, а все поддомены под .gov должны быть подписаны к декабрю 2009 года. [69] Хотя в меморандуме основное внимание уделяется сайтам .gov, Агентство оборонных информационных систем США заявляет, что намерено соответствовать требованиям OMB DNSSEC. также в домене .mil (военные силы США). Кэролин Даффи Марсан из NetworkWorld заявила, что DNSSEC «не получил широкого распространения, поскольку страдает от классической дилеммы курицы и яйца... с учетом мандата OMB, похоже, яйцо треснет». [70]
Несколько интернет-провайдеров начали развертывать рекурсивные преобразователи DNS с проверкой DNSSEC. Comcast стал первым крупным интернет-провайдером, сделавшим это в Соединенных Штатах, объявив о своих намерениях 18 октября 2010 г. [71] [72] и завершив развертывание 11 января 2012 г. [73]
Согласно исследованию APNIC , доля клиентов, которые используют исключительно DNS-преобразователи, выполняющие проверку DNSSEC, выросла до 8,3% в мае 2013 года. [74] Около половины этих клиентов использовали общедоступный DNS-преобразователь Google .
В сентябре 2015 года компания Verisign анонсировала свою бесплатную общедоступную службу DNS-распознавателя [75] , и хотя она не упоминается в пресс-релизах, она также выполняет проверку DNSSEC.
К началу 2016 года мониторинг APNIC показал, что доля клиентов, использующих исключительно преобразователи DNS, выполняющие проверку DNSSEC, увеличилась примерно до 15%. [76]
Публичный рекурсивный DNS- сервер Google включил проверку DNSSEC 6 мая 2013 г. [77]
BIND , самое популярное программное обеспечение для управления DNS, включает поддержку DNSSEC по умолчанию, начиная с версии 9.5.
Публичный рекурсивный DNS Quad9 выполняет проверку DNSSEC для своего основного адреса 9.9.9.9 с момента его создания 11 мая 2016 года. Quad9 также предоставляет альтернативную службу, которая не выполняет проверку DNSSEC, в основном для отладки. [78]
Для развертывания DNSSEC требуется программное обеспечение на стороне сервера и клиента. Некоторые из инструментов, поддерживающих DNSSEC, включают:
DNS-клиент Windows представляет собой заглушку сопоставителя...
DNS-клиент в Windows Server 2008 R2 и Windows® 7 представляет собой непроверяющий, безопасный преобразователь заглушек.
Заглушки по определению представляют собой минимальные преобразователи DNS, которые используют режим рекурсивных запросов для переноса большей части работы по разрешению DNS на рекурсивный сервер имен.Более раннее определение было дано в более раннем RFC: Роберт Брейден (октябрь 1989 г.). Брейден, Р. (ред.). RFC 1123 — Требования к интернет-хостам — применение и поддержка. IETF ( Инженерная группа по Интернету ). п. 74. дои : 10.17487/RFC1123.
«Заглушка» использует услуги рекурсивного сервера имен [...]