Обзор DNSSEC (предварительная версия)
В этой статье представлен обзор расширений безопасности системы доменных имен (DNSSEC) и содержится введение в терминологию DNSSEC. Преимущества подписывания зоны DNSSEC описаны и приведены примеры для просмотра записей связанных ресурсов DNSSEC. Когда вы готовы подписать общедоступную зону DNS Azure, ознакомьтесь со следующими руководствами.
- Как подписать общедоступную зону DNS Azure с помощью DNSSEC (предварительная версия).
- Как отменить подпись общедоступной зоны DNS Azure (предварительная версия)
Примечание.
Подписывание зоны DNSSEC в настоящее время находится в предварительной версии.
Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.
Что такое DNSSEC?
DNSSEC — это набор расширений, которые добавляют безопасность к протоколу dns-системы доменных имен, позволяя проверять ответы DNS как подлинные. DNSSEC предоставляет центр происхождения, целостность данных и проверку подлинности в отказе в существовании. DNSSEC делает протокол DNS менее уязвимым для атак определенного типа, в частности для спуфинга DNS.
Основные расширения DNSSEC указываются в следующем запросе комментариев (RFCs):
- RFC 4033. Введение в безопасность DNS и требования безопасности.
- RFC 4034. Записи ресурсов для расширений безопасности DNS.
- RFC 4035. Изменения протокола для расширений безопасности DNS.
Сводка по DNSSEC RFCs см. в разделе RFC9364: расширения безопасности DNS (DNSSEC).
Принцип работы DNSSEC
Зоны DNS защищены с помощью DNSSEC с помощью процесса, называемого подписью зоны. Подписывание зоны с помощью DNSSEC добавляет поддержку проверки, не изменяя базовый механизм dns-запроса и ответа. Чтобы подписать зону с помощью DNSSEC, основной доверенный DNS-сервер зоны должен поддерживать DNSSEC.
Подписи записей ресурсов (RRSIG) и другие криптографические записи добавляются в зону при подписании. На следующем рисунке показаны записи ресурсов DNS в зоне contoso.com до и после подписывания зоны.
Проверка DNSSEC ответов DNS выполняется с помощью этих цифровых подписей с непрерывной цепочкой доверия.
Примечание.
Записи ресурсов, связанные с DNSSEC, не отображаются в портал Azure. Дополнительные сведения см. в разделе "Просмотр записей ресурсов, связанных с DNSSEC".
Зачем подписывать зону с помощью DNSSEC?
Подписывание зоны с помощью DNSSEC требуется для соблюдения некоторых рекомендаций по безопасности, таких как SC-20: secure Name/Address Resolution Service.
Проверка DNSSEC ответов DNS может предотвратить распространенные типы атак перехвата DNS, также известные как перенаправление DNS. Перехват DNS происходит, когда клиентское устройство перенаправляется на вредоносный сервер с помощью неправильных (спуфиндных) ответов DNS. Отравление кэша DNS — это распространенный метод, используемый для подпугости ответов DNS.
Пример работы перехвата DNS показан на следующем рисунке.
Обычное разрешение DNS:
- Клиентское устройство отправляет DNS-запрос для contoso.com на DNS-сервер.
- DNS-сервер отвечает записью ресурсов DNS для contoso.com.
- Клиентское устройство запрашивает ответ от contoso.com.
- Приложение contoso.com или веб-сервер возвращает ответ клиенту.
Перехват DNS
- Клиентское устройство отправляет DNS-запрос contoso.com на ухитованный DNS-сервер.
- DNS-сервер реагирует на недопустимую (спуфингированную) запись ресурса DNS для contoso.com.
- Клиентское устройство запрашивает ответ на contoso.com с вредоносного сервера.
- Вредоносный сервер возвращает спуфиндный ответ клиенту.
Тип записи ресурсов DNS, которая является подпуфинной, зависит от типа атаки на перехват DNS. Запись MX может быть спуфинирована для перенаправления клиентских сообщений электронной почты или подпуфиненной записи A может отправлять клиенты на вредоносный веб-сервер.
DNSSEC работает для предотвращения перехвата DNS путем выполнения проверки ответов DNS. В сценарии перехвата DNS, показанном здесь, клиентское устройство может отклонить не проверенные ответы DNS, если домен contoso.com подписан с помощью DNSSEC. Чтобы отклонить не проверенные ответы DNS, клиентское устройство должно применить проверку DNSSEC для contoso.com.
DNSSEC также включает next Secure 3 (NSEC3) для предотвращения перечисления зон. Перечисление зон, также известное как ходьба по зонам, — это атака, при которой злоумышленник устанавливает список всех имен в зоне, включая дочерние зоны.
Прежде чем подписывать зону с помощью DNSSEC, обязательно понять , как работает DNSSEC. Когда вы будете готовы подписать зону, см. статью "Как подписать общедоступную зону DNS Azure" с помощью DNSSEC.
Проверка DNSSEC
Если DNS-сервер поддерживает DNSSEC, он может задать флаг DNSSEC OK (DO) в DNS-запросе значение 1
. Это значение сообщает DNS-серверу, что он включает записи ресурсов, связанные с DNSSEC, с ответом. Эти записи DNSSEC — это записи записи записей ресурсов (RRSIG), используемые для проверки подлинности ответа DNS.
Рекурсивный (ненадежный) DNS-сервер выполняет проверку DNSSEC на записях RRSIG с помощью привязки доверия (DNSKEY). Сервер использует DNSKEY для расшифровки цифровых подписей в записях RRSIG (и других записях, связанных с DNSSEC), а затем вычисляет и сравнивает хэш-значения. Если хэш-значения совпадают, он предоставляет ответ DNS-клиенту с запрошенными данными DNS, например записью адреса узла (A). Рассмотрим схему ниже.
Если хэш-значения не совпадают, рекурсивный DNS-сервер отвечает с сообщением SERVFAIL. Таким образом, DNSSEC-серверы с поддержкой разрешения (или пересылки) DNS-серверов с допустимой привязкой доверия, установленной, могут защитить от перехвата DNS в пути между рекурсивным сервером и доверенным сервером. Эта защита не требует, чтобы клиентские устройства DNS были в курсе DNSSEC или применяли проверку ответа DNS, если локальный (последний прыжок) рекурсивный DNS-сервер сам является безопасным от перехвата.
Клиентские устройства Под управлением Windows 10 и Windows 11 не являются неоценительными средствами разрешения заглушки с поддержкой безопасности. Эти клиентские устройства не выполняют проверку, но могут применять проверку DNSSEC с помощью групповой политики. NRPT можно использовать для создания и принудительного применения политики проверки DNSSEC на основе пространства имен.
Привязки доверия и проверка DNSSEC
Примечание.
Проверка ответа DNSSEC не выполняется предоставленным по умолчанию сопоставительом Azure. Сведения в этом разделе полезны, если вы настраиваете собственные рекурсивные DNS-серверы для проверки DNSSEC или устранения неполадок с проверкой.
Привязки доверия работают на основе иерархии пространства имен DNS. Рекурсивный DNS-сервер может иметь любое количество привязок доверия или нет якорей доверия. Привязки доверия можно добавить для одной дочерней зоны DNS или любой родительской зоны. Если рекурсивный DNS-сервер имеет корневую привязку доверия (.), она может выполнять проверку DNSSEC в любой зоне DNS. Дополнительные сведения см. в разделе "Сведения о операторе корневой зоны".
Процесс проверки DNSSEC работает с привязками доверия следующим образом:
- Если рекурсивный DNS-сервер не имеет привязки доверия DNSSEC для зоны или родительского иерархического пространства имен зоны, он не будет выполнять проверку DNSSEC в этой зоне.
- Если рекурсивный DNS-сервер имеет привязку доверия DNSSEC для родительского пространства имен зоны и получает запрос к дочерней зоне, он проверяет, присутствует ли запись DS для дочерних зон в родительской зоне.
- Если обнаружена запись DS, рекурсивный DNS-сервер выполняет проверку DNSSEC.
- Если рекурсивный DNS-сервер определяет, что родительская зона не имеет записи DS для дочерней зоны, предполагается, что дочерняя зона незащищена и не выполняет проверку DNSSEC.
- Если несколько рекурсивных DNS-серверов участвуют в ответе DNS (включая серверы пересылки), каждый сервер должен иметь возможность выполнять проверку DNSSEC в ответе, чтобы обеспечить неисключаемую цепочку доверия.
- Рекурсивные серверы с отключенной проверкой DNSSEC или не поддерживающие DNSSEC, не выполняют проверку.
Цепочка доверия
Цепочка доверия возникает, когда все DNS-серверы, участвующие в отправке ответа для DNS-запроса, могут проверить, что ответ не был изменен во время передачи. Чтобы проверка DNSSEC работала сквозной, цепочка доверия должна быть снята. Эта цепочка доверия применяется как к авторитетным, так и к неавторитетным (рекурсивным) серверам.
Доверенные серверы
Доверенные DNS-серверы поддерживают цепочку доверия с помощью записей подписи делегирования (DS). Записи DS используются для проверки подлинности дочерних зон в иерархии DNS.
- Чтобы проверка DNSSEC выполнялось в подписанной зоне, родитель подписанной зоны также должен быть подписан. Родительская зона также должна иметь запись DS для дочерней зоны.
- Во время проверки родитель зоны запрашивается для записи DS. Если запись DS отсутствует или данные записи DS в родительском элементе не соответствуют данным DNSKEY в дочерней зоне, цепочка доверия завершается сбоем, а проверка завершается ошибкой.
Рекурсивные серверы
Рекурсивные DNS-серверы (также называемые разрешением или кэшированием DNS-серверов) поддерживают цепочку доверия с помощью привязок доверия DNSSEC.
- Привязка доверия — это запись DNSKEY или запись DS, содержащая хэш записи DNSKEY. Запись DNSKEY создается на доверенном сервере при подписании зоны и удаляется из зоны, если зона не назначена.
- Привязки доверия должны быть установлены вручную на рекурсивных DNS-серверах.
- Если присутствует привязка доверия для родительской зоны, рекурсивный сервер может проверить все дочерние зоны в иерархическом пространстве имен. Это включает пересылаемые запросы. Для поддержки проверки DNSSEC всех зон DNSSEC, подписанных DNS, можно установить привязку доверия для корневой зоны (.).
Смена ключей
Ключ подписывания зоны (ZSK) в зоне, подписанной DNSSEC, периодически переключается (заменяется) azure автоматически. Не обязательно заменить ключ подписывания ключей (KSK), но этот параметр доступен, обратившись в службу поддержки Майкрософт. Для замены KSK требуется также обновить запись DS в родительской зоне.
Алгоритм подписывания зоны
Зоны подписываются с помощью алгоритма цифровой подписи эллиптических кривых (ECDSAP256SHA256).
Записи ресурсов, связанные с DNSSEC
В следующей таблице представлено краткое описание записей, связанных с DNSSEC. Дополнительные сведения см. в статье RFC 4034: записи ресурсов для расширений безопасности DNS и RFC 7344: автоматизация обслуживания доверия делегирования DNSSEC.
Запись | Description |
---|---|
Подпись записи ресурса (RRSIG) | Тип записи ресурсов DNSSEC, используемый для хранения подписи, которая охватывает набор записей DNS для определенного имени и типа. |
DNSKEY | Тип записи ресурсов DNSSEC, используемый для хранения открытого ключа. |
Подписыватель делегирования (DS) | Тип записи ресурсов DNSSEC, используемый для защиты делегирования. |
Следующий безопасный (NSEC) | Тип записи ресурсов DNSSEC, используемый для подтверждения отсутствия dns-имени. |
Следующий безопасный 3 (NSEC3) | Запись ресурсов NSEC3, которая предоставляет хэшированные и прошедшие проверку подлинности отказ в существовании для наборов записей ресурсов DNS. |
Следующие безопасные 3 параметра (NSEC3PARAM) | Задает параметры для записей NSEC3. |
Подписыватель дочернего делегирования (CDS) | Эта запись является необязательной. При наличии запись CDS может использоваться дочерней зоной для указания требуемого содержимого записи DS в родительской зоне. |
Дочерний DNSKEY (CDNSKEY) | Эта запись является необязательной. Если запись CDNSKEY присутствует в дочерней зоне, ее можно использовать для создания записи DS из записи DNSKEY. |
Просмотр записей ресурсов, связанных с DNSSEC
Записи, связанные с DNSSEC, не отображаются в портал Azure. Чтобы просмотреть записи, связанные с DNSSEC, используйте такие средства командной строки, как Resolve-DnsName или dig.exe. Эти средства доступны с помощью Cloud Shell или локально, если они установлены на устройстве. Не забудьте задать флаг DO в запросе с помощью -dnssecok
параметра Resolve-DnsName или +dnssec
параметра в dig.exe.
Внимание
Не используйте средство командной строки nslookup.exe для запроса записей, связанных с DNSSEC. Средство nslookup.exe использует внутренний DNS-клиент, который не поддерживает DNSSEC.
См. следующие примеры.
PS C:\> resolve-dnsname server1.contoso.com -dnssecok
Name Type TTL Section IPAddress
---- ---- --- ------- ---------
server1.contoso.com A 3600 Answer 203.0.113.1
Name : server1.contoso.com
QueryType : RRSIG
TTL : 3600
Section : Answer
TypeCovered : A
Algorithm : 13
LabelCount : 3
OriginalTtl : 3600
Expiration : 9/20/2024 11:25:54 PM
Signed : 9/18/2024 9:25:54 PM
Signer : contoso.com
Signature : {193, 20, 122, 196…}
C:\>dig server1.contoso.com +dnssec
; <<>> DiG 9.9.2-P1 <<>> server1.contoso.com +dnssec
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61065
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 512
;; QUESTION SECTION:
;server1.contoso.com. IN A
;; ANSWER SECTION:
server1.contoso.com. 3600 IN A 203.0.113.1
server1.contoso.com. 3600 IN RRSIG A 13 3 3600 20240920232359 20240918212359 11530 contoso.com. GmxeQhNk1nJZiep7nuCS2qmOQ+Ffs78Z2eoOgIYP3j417yqwS1DasfA5 e1UZ4HuujDk2G6GIbs0ji3RiM9ZpGQ==
;; Query time: 153 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Thu Sep 19 15:23:45 2024
;; MSG SIZE rcvd: 179
PS C:\> resolve-dnsname contoso.com -Type dnskey -dnssecok
Name Type TTL Section Flags Protocol Algorithm Key
---- ---- --- ------- ----- -------- --------- ---
contoso.com DNSKEY 3600 Answer 256 DNSSEC 13 {115, 117, 214,
165…}
contoso.com DNSKEY 3600 Answer 256 DNSSEC 13 {149, 166, 55, 78…}
contoso.com DNSKEY 3600 Answer 257 DNSSEC 13 {45, 176, 217, 2…}
Name : contoso.com
QueryType : RRSIG
TTL : 3600
Section : Answer
TypeCovered : DNSKEY
Algorithm : 13
LabelCount : 2
OriginalTtl : 3600
Expiration : 11/17/2024 9:00:15 PM
Signed : 9/18/2024 9:00:15 PM
Signer : contoso.com
Signature : {241, 147, 134, 121…}
C:\>dig contoso.com dnskey
; <<>> DiG 9.9.2-P1 <<>> contoso.com dnskey
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46254
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;contoso.com. IN DNSKEY
;; ANSWER SECTION:
contoso.com. 3600 IN DNSKEY 256 3 13 laY3Toc/VTyjupgp/+WgD05N+euB6Qe1iaM/253k7bkaA0Dx+gSDhbH2 5wXTt+uLQgPljL9OusKTneLdhU+1iA==
contoso.com. 3600 IN DNSKEY 257 3 13 LbDZAtjG8E9Ftih+LC8CqQrSZIJFFJMtP6hmN3qBRqLbtAj4JWtr2cVE ufXM5Pd/yW+Ca36augQDucd5n4SgTg==
contoso.com. 3600 IN DNSKEY 256 3 13 c3XWpTqZ0q9IO+YqMEtOBHZSzGGeyFKq0+3xzs6tifvD1rey1Obhrkz4 DJlEIxy2m84VsG1Ij9VYdtGxxeVHIQ==
;; Query time: 182 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Thu Sep 19 16:35:10 2024
;; MSG SIZE rcvd: 284
Терминология DNSSEC
Этот список предоставляется для понимания некоторых распространенных терминов, используемых при обсуждении DNSSEC. См. также: записи ресурсов, связанных с DNSSEC
Срок | Description |
---|---|
Бит данных, прошедших проверку подлинности (AD) | Бит данных, указывающий в ответе, что все данные, включенные в разделы ответа и центра ответа, прошли проверку подлинности DNS-сервера в соответствии с политиками этого сервера. |
Цепочка проверки подлинности | Цепочка подписанных и проверенных записей DNS, которая расширяется от предварительно настроенной привязки доверия к некоторой дочерней зоне в дереве DNS. |
Расширение DNS (EDNS0) | Запись DNS, которая содержит расширенные сведения о заголовке DNS, например бит DO и максимальный размер пакета UDP. |
Расширения безопасности DNS (DNSSEC) | Расширения службы DNS, предоставляющие механизмы подписывания и безопасного разрешения данных DNS. |
Бит DNSSEC OK (DO) | Немного в части DNS-запроса EDNS0, который сигнализирует о том, что клиент учитывает DNSSEC. |
Проверка DNSSEC | Проверка DNSSEC — это процесс проверки происхождения и целостности данных DNS с помощью открытых криптографических ключей. |
Остров безопасности | Подписанная зона, которая не имеет цепочки проверки подлинности из его делегированной родительской зоны. |
Ключ подписывания ключей (KSK) | Ключ проверки подлинности, соответствующий закрытому ключу, который используется для подписывания одного или нескольких других ключей подписывания для данной зоны. Как правило, закрытый ключ, соответствующий KSK, подписывает ключ подписывания зоны (ZSK), который, в свою очередь, имеет соответствующий закрытый ключ, который подписывает другие данные зоны. Локальная политика может требовать частого изменения ZSK, в то время как KSK может иметь более длительный срок действия, чтобы обеспечить более стабильную, безопасную точку входа в зону. Назначение ключа проверки подлинности в качестве KSK является исключительно операционной проблемой: проверка DNSSEC не отличается от ключевых ключей проверки подлинности DNSSEC и других ключей проверки подлинности DNSSEC. Можно использовать один ключ как KSK, так и ZSK. |
Неоценивающий заглушки с поддержкой безопасности | Распознаватель заглушки с поддержкой безопасности, который доверяет одному или нескольким DNS-серверам, поддерживающим безопасность, для выполнения проверки DNSSEC от его имени. |
ключ безопасной точки входа (SEP) | Подмножество открытых ключей в DNSKEY RRSet. Ключ SEP используется либо для создания ds RR, либо распространяется для сопоставителей, использующих ключ в качестве привязки доверия. |
DNS-сервер с поддержкой безопасности | DNS-сервер, реализующий расширения безопасности DNS, как определено в RFCs 4033 [5], 4034 [6], и 4035 [7]. В частности, DNS-сервер с поддержкой безопасности — это сущность, которая получает DNS-запросы, отправляет ответы DNS, поддерживает расширение размера сообщения EDNS0 [3] и бит DO, а также поддерживает типы записей DNSSEC и биты заголовков сообщений. |
Подписанная зона | Зона, записи которой подписаны в соответствии с разделом 2 RFC 4035 [7]. Подписанная зона может содержать записи ресурсов DNSKEY, NSEC, NSEC3, NSEC3PARAM, RRSIG и DS. Эти записи ресурсов позволяют проверять данные DNS с помощью сопоставителей. |
Привязка доверия | Предварительно настроенный открытый ключ, связанный с определенной зоной. Привязка доверия позволяет сопоставителям DNS проверять подписанные записи ресурсов DNSSEC для этой зоны и создавать цепочки проверки подлинности в дочерних зонах. |
Незначаемая зона | Любая зона DNS, не подписанная в соответствии с разделом 2 RFC 4035 [7]. |
Подписывание зоны | Подписывание зоны — это процесс создания и добавления записей ресурсов, связанных с DNSSEC, в зону, что делает его совместимым с проверкой DNSSEC. |
Отмена знака зоны | Отмена знака зоны — это процесс удаления записей ресурсов, связанных с DNSSSEC, из зоны, восстановление его до состояния без знака. |
Ключ подписывания зоны (ZSK) | Ключ проверки подлинности, соответствующий закрытому ключу, который используется для подписи зоны. Как правило, ключ подписывания зоны является частью того же набора RRKEY DNSKEY, что и ключ подписывания ключа, соответствующий закрытый ключ которого подписывает этот DNSKEY RRSet, но ключ подписывания зоны используется для немного другой цели и может отличаться от ключа подписывания ключей другими способами, например в течение срока действия. Назначение ключа проверки подлинности в качестве ключа подписи зоны является исключительно операционной проблемой; Проверка DNSSEC не отличается от ключей подписывания зоны и других ключей проверки подлинности DNSSEC. Один ключ можно использовать как ключ подписывания ключей, так и ключ подписывания зоны. |
Следующие шаги
- Узнайте, как подписать зону DNS с помощью DNSSEC.
- Узнайте, как отменить подпись зоны DNS.
- Узнайте, как разместить зону обратного просмотра для диапазона IP-адресов, присвоенного поставщиком услуг Интернета, в службе Azure DNS.
- Узнайте, как управлять записями обратной зоны DNS для служб Azure.