Skip to content
EN
← Все статьи

DNSSEC: как работает, как включить, проверить и правильно отключить подпись домена

Коротко. DNSSEC — это криптографические подписи для DNS-записей. Он не шифрует запросы, а доказывает, что ответ пришёл от владельца зоны и не был подменён по дороге. Включается в два шага: зона подписывается на DNS-хостинге, а хеш ключа (DS-запись) публикуется у регистратора домена. Ошибка в любом из шагов роняет домен целиком: невалидный ответ резолвер не «пропускает с предупреждением», а отбрасывает.

Проблема: DNS без защиты

Стандартный DNS работает по UDP без шифрования и без аутентификации. Резолвер верит любому ответу, который выглядит как ответ на его запрос и приходит с нужного адреса и порта. Отсюда несколько классов атак.

Отравление кэша (DNS Cache Poisoning)

Злоумышленник шлёт рекурсивному резолверу поддельные ответы, угадывая идентификатор транзакции и порт. Если подделка успевает раньше настоящего ответа, резолвер кэширует чужой IP — и все его пользователи идут на подставной сервер до истечения TTL. Рандомизация порта усложнила атаку, но не сделала её невозможной.

Man-in-the-Middle

Атакующий в том же сегменте сети или на промежуточном узле перехватывает запрос и отвечает первым. Классический сценарий — публичный Wi-Fi и подмена ответа для домена банка или почты.

Перехват маршрута (BGP Hijacking)

На уровне маршрутизации трафик к авторитативным серверам зоны уводится через инфраструктуру атакующего. Формально «настоящий» сервер отвечает — но отвечает не тот. DNSSEC ловит и этот случай: подписи не сойдутся.

DNSSEC — это про подлинность, а не про приватность. Он не скрывает, какие домены вы запрашиваете: содержимое запроса видно провайдеру и всем на пути. Конфиденциальность даёт шифрование канала — DNS over HTTPS и DNS over TLS. Эти механизмы решают разные задачи и нормально работают вместе.

Что такое DNSSEC

DNSSEC (DNS Security Extensions) — набор расширений протокола, описанный в RFC 4033, 4034 и 4035. К обычным записям добавляются подписи, а к зоне — открытые ключи. Резолвер, умеющий проверять подписи, отвечает клиенту только тогда, когда цепочка проверок сошлась до корня.

Важное следствие для владельца домена: DNSSEC не имеет промежуточного состояния «подпись неверна, но покажем». Если валидация не прошла, валидирующий резолвер возвращает SERVFAIL, и для пользователя это выглядит как «сайта не существует». Поэтому неаккуратное включение или отключение опаснее, чем его отсутствие.

Как работает: цепочка доверия

DNSSEC строит непрерывную цепочку от корневой зоны до вашего домена. Каждый уровень ручается за ключ следующего:

  1. Корневая зона (.) — её открытый ключ (trust anchor) зашит в резолвере и обновляется вместе с ПО.
  2. Зона верхнего уровня (.ru, .com, .рф) — подписана корнем; хранит DS-записи делегированных доменов.
  3. Ваш домен — подписывает собственные записи: A, AAAA, MX, TXT и остальные.

Связующее звено между уровнями — DS-запись: хеш открытого ключа дочерней зоны, лежащий в родительской. Именно её вы добавляете у регистратора, и именно её рассинхронизация с реальным ключом — причина большинства аварий.

Схема цепочки доверия DNSSEC: корневая зона подписывает зону верхнего уровня, та хранит хеш ключа домена, домен подписывает свои записи
Цепочка доверия: каждый уровень ручается за ключ следующего, а связкой между уровнями служит DS-запись в родительской зоне.

Записи DNSSEC

ЗаписьГде лежитНазначение
DNSKEYВ вашей зонеОткрытые ключи зоны, которыми проверяются подписи
RRSIGВ вашей зонеПодпись набора записей: свои RRSIG есть у A-записей, у MX, у TXT — у каждого набора отдельно
DSВ родительской зонеХеш вашего ключа подписи ключей; публикуется через регистратора
NSEC / NSEC3В вашей зонеДоказательство отсутствия записи, чтобы нельзя было подделать ответ «такого имени нет»
CDS / CDNSKEYВ вашей зонеСигнал родительской зоне об обновлении DS без ручных действий; поддерживается не всеми реестрами и регистраторами

Два ключа: KSK и ZSK

  • KSK (Key Signing Key) — подписывает набор DNSKEY. Его хеш уходит в родительскую зону как DS. Меняется редко, потому что каждая смена требует обновления DS у регистратора.
  • ZSK (Zone Signing Key) — подписывает обычные записи зоны. Меняется часто и полностью внутри зоны: родительскую зону трогать не нужно.

Такое разделение существует именно ради этого: частая ротация не требует походов к регистратору, а редкая смена «главного» ключа делается по отдельной процедуре.

Алгоритмы подписи

Практически весь современный рунет живёт на двух алгоритмах: RSA с SHA-256 и ECDSA на кривой P-256. Второй даёт заметно более короткие подписи при сопоставимой стойкости, а короткие подписи — это меньший размер ответа и меньше проблем с фрагментацией UDP. Если DNS-хостинг даёт выбор и вы не привязаны к унаследованной конфигурации, разумно выбирать ECDSA. Для DS-записи используйте дайджест SHA-256: SHA-1 считается устаревшим.

Как проходит валидация

Когда валидирующий резолвер получает ответ, он делает следующее:

  1. Запрашивает запись и сопутствующую ей RRSIG.
  2. Берёт DNSKEY зоны и проверяет, что подпись сделана этим ключом и не истекла.
  3. Сверяет хеш ключа с DS-записью из родительской зоны.
  4. Повторяет шаги для родителя, поднимаясь до корневого ключа.
  5. Если всё сошлось — отдаёт ответ клиенту и выставляет флаг AD (Authenticated Data).
  6. Если не сошлось — отдаёт SERVFAIL. Не «ответ без флага», а именно отказ.

Флаг AD — самый быстрый способ понять, что валидация реально произошла, а не была пропущена. Он появляется в заголовке ответа резолвера, а не в самой зоне.

Схема валидации: резолвер проверяет подпись, поднимается по цепочке к корню и либо отдаёт ответ с флагом подтверждения, либо возвращает отказ
Развилка валидации: подписи сошлись — ответ с флагом AD; не сошлись — SERVFAIL, который пользователь видит как «сайт недоступен».

Как включить DNSSEC

Сценария три, и они различаются тем, кто хранит ключи.

Сценарий 1: DNS-хостинг подписывает, регистратор публикует DS

Самый частый вариант. Порядок действий принципиален:

  1. Включите подпись зоны в панели DNS-хостинга. Зона получит DNSKEY и RRSIG, но снаружи ничего не изменится — валидаторы пока не знают о ключах.
  2. Скопируйте DS-запись (или параметры для её сборки: keytag, алгоритм, тип дайджеста, сам дайджест).
  3. Добавьте DS у регистратора домена — обычно это отдельный раздел «DNSSEC» в карточке домена.
  4. Дождитесь появления DS в родительской зоне и проверьте цепочку.
Обратный порядок — сначала DS, потом подпись — гарантированно кладёт домен. Валидаторы уже требуют подпись, а зона её ещё не отдаёт. То же правило зеркально работает при отключении: там DS удаляется первым. Общее правило простое — DS появляется последним и исчезает первым.

Сценарий 2: панель управления хостингом «в один клик»

Если DNS обслуживает та же компания, что и хостинг, кнопка включения часто делает оба шага сама, потому что и зона, и домен под её управлением. Проверять результат всё равно нужно: автоматизация делает шаг «опубликовать DS», но не гарантирует, что реестр его принял.

Сценарий 3: собственный авторитативный сервер

На своём сервере зона подписывается локально. В современных версиях BIND проще всего отдать это встроенной автоматике подписи и ротации, а не собирать ключи руками:

# named.conf: включить автоматическое сопровождение подписей
zone "example.com" {
    type master;
    file "/var/lib/bind/db.example.com";
    dnssec-policy default;
    inline-signing yes;
};

# проверить, что зона подписалась и подписи актуальны
rndc dnssec -status example.com

# получить DS для передачи регистратору
dnssec-dsfromkey -a SHA-256 /var/lib/bind/Kexample.com.+013+12345.key

Ключевое требование к своему подписанту — надёжное расписание. Подписи имеют срок действия, и если процесс переподписи остановится, домен «протухнет» без единого изменения в зоне.

Как проверить DNSSEC

Проверять нужно три разные вещи, и путать их не стоит: есть ли подписи в зоне, есть ли DS у родителя, и сходится ли цепочка целиком.

# 1) Есть ли ключи и подписи в самой зоне
dig example.com DNSKEY +dnssec +multiline
dig example.com A +dnssec | grep -i rrsig

# 2) Опубликован ли DS в родительской зоне
dig example.com DS +short

# 3) Сходится ли цепочка целиком (флаг ad в заголовке ответа)
dig @1.1.1.1 example.com A +dnssec | grep -E 'flags:|status:'

# 4) Проверка «это точно DNSSEC?»: с отключённой валидацией
dig @1.1.1.1 example.com A +cd +short

Четвёртая команда — главный диагностический приём. Флаг +cd (checking disabled) велит резолверу не проверять подписи. Если обычный запрос даёт SERVFAIL, а с +cd ответ приходит нормально — проблема именно в DNSSEC, а не в доступности серверов зоны. Это отделяет «сломанная подпись» от «сервер не отвечает» за одну команду; общий алгоритм разбора недоступности разобран в материале про DNS, который не резолвится.

Если в системе есть delv из состава BIND, он показывает результат валидации человеческим языком:

delv @1.1.1.1 example.com A +rtrace
# в выводе: "fully validated" — цепочка сошлась

Без командной строки состав записей зоны, включая DNSKEY и DS, показывает проверка DNS-записей, а разницу в ответах разных резолверов после изменений — проверка распространения DNS. Что означают отдельные типы записей, разобрано в справочнике типов DNS-записей, а как с ними работать на практике — в руководстве по работе с записями.

Как правильно отключить DNSSEC

Отключение ломает домены чаще, чем включение, потому что интуитивный порядок действий — неправильный. Убрать подписи первыми нельзя: пока DS лежит в родительской зоне, каждый валидирующий резолвер обязан требовать подпись, а её уже нет. Домен пропадает для существенной доли пользователей мгновенно.

  1. Удалите DS-запись у регистратора. С этого момента новые запросы перестают требовать подписи.
  2. Дождитесь истечения TTL DS-записи в родительской зоне. Это часы, а не минуты: пока запись живёт в кэшах резолверов, требование подписи сохраняется. Ориентируйтесь на сутки — заведомо с запасом.
  3. Только теперь снимайте подпись зоны на DNS-хостинге.

Тот же порядок действует при переезде на другой DNS-хостинг: сначала снять DS, дождаться TTL, сменить NS, включить подпись заново и опубликовать новый DS. Ошибка «сменили NS, забыли про DS» — самая массовая авария DNSSEC; подробности процесса смены серверов имён — в материале про смену DNS-сервера, а сколько ждать распространения — в разборе распространения DNS.

Схема безопасного порядка отключения: сначала удаление связующей записи у регистратора, затем ожидание истечения времени жизни, только потом снятие подписи зоны
Безопасный порядок отключения: сначала DS, потом ожидание TTL, и только в конце снятие подписи. Обратный порядок роняет домен сразу.

Типичные поломки и как их читать

СимптомПричинаЧто делать
Домен открывается у одних, не открывается у другихПровайдеры с валидирующими резолверами отбрасывают ответ, остальные — нетПроверить запрос с +cd: если так работает, дело в подписи
SERVFAIL сразу после смены DNS-хостингаСтарая DS-запись указывает на ключ, которого больше нетУдалить DS у регистратора; вернуть его после подписи новой зоной
Домен «упал» без единого измененияИстёк срок действия RRSIG: подписант остановился или сломалсяПроверить состояние подписи на DNS-хостинге, перезапустить переподпись
DS добавлен, но цепочка не сходитсяНе тот keytag, алгоритм или тип дайджеста при ручном вводеСверить параметры DS с DNSKEY зоны и пересоздать запись
Ответы обрезаются или запросы уходят в TCPПодписи увеличили размер ответа; посредник режет большие UDP-пакетыПроверить прохождение больших ответов и EDNS; при выборе алгоритма предпочесть ECDSA
Всё работает, но флага AD нетРезолвер не валидирует — это не поломка вашего доменаПроверить у публичного валидирующего резолвера

Отдельно стоит запомнить неприятное свойство таких аварий: они не видны с рабочего места, если ваш резолвер не валидирует. Домен для вас открывается, а часть аудитории его не видит. Поэтому проверять DNSSEC нужно с валидирующего резолвера и снаружи своей сети — и лучше не вручную, а мониторингом, который поймает истечение подписей раньше пользователей; подходы описаны в материале про мониторинг DNS.

Схема аварии: связующая запись в родительской зоне указывает на старый ключ, новая зона подписана другим, валидатор возвращает отказ
Самая частая авария: сервера имён сменили, а связующая запись у регистратора осталась от старого ключа — валидатор отвергает ответ.

Ротация ключей

Ключи меняют по расписанию, и обе процедуры устроены так, чтобы в любой момент времени существовал ключ, которому резолвер уже доверяет.

  • Смена ZSK — новый ключ сначала публикуется в зоне рядом со старым, затем начинает подписывать, и только потом старый удаляется. Родительскую зону это не затрагивает.
  • Смена KSK — сложнее: пока в родительской зоне не появится новый DS и не истечёт TTL старого, удалять прежний ключ нельзя. Практически всегда какое-то время в родительской зоне живут обе DS-записи.

Если DNS-хостинг умеет автоматическую ротацию и поддерживает публикацию CDS, лучше положиться на неё: ручная смена KSK — самая частая причина «домен внезапно исчез» из всех операций с DNSSEC.

Зоны .ru и .рф, регистраторы и хостинги

Российские зоны верхнего уровня подписаны, а регистраторы принимают DS-записи через личный кабинет домена. Практические нюансы, которые стоит проверить до включения:

  • Поддерживает ли ваш DNS-хостинг подпись зоны вообще — это отдельная функция, а не часть любого DNS-хостинга.
  • Есть ли в интерфейсе регистратора раздел DNSSEC и какой формат он просит: готовую DS-запись целиком или отдельные поля.
  • Автоматизирует ли связка «хостинг + регистратор» обновление DS. Если нет, ротацию KSK придётся сопровождать вручную.
  • Что произойдёт при переносе домена к другому регистратору: DS-запись должна переехать вместе с ним, иначе цепочка порвётся.

Выбор DNS-хостинга и его влияние на устойчивость разобраны в материалах про типы DNS-серверов и anycast-DNS.

Ограничения DNSSEC

  • Не шифрует запросы. Кто и какие домены спрашивал, видно на пути. Это задача DoH и DoT.
  • Увеличивает размер ответов. Подписи и ключи занимают место, из-за чего чаще происходит переход на TCP и возможны проблемы с оборудованием, которое режет большие UDP-пакеты.
  • NSEC позволяет перечислить зону. Полный список имён зоны — не секрет по замыслу протокола, но раскрывать его редко хочется; для этого существует NSEC3 с хешированием имён.
  • Повышает цену ошибки. До DNSSEC ошибка в записи ломала одну запись; с DNSSEC ошибка в ключе ломает домен целиком.
  • Не защищает от подмены содержимого сайта. DNSSEC гарантирует, что вы получили правильный IP-адрес, а не то, что на этом адресе законный сервер с валидным сертификатом — это зона ответственности TLS, проверить которую можно на странице проверки SSL.

DNSSEC вместе с DoH и DoT

Эти механизмы не заменяют друг друга и закрывают разные участки пути:

  • DNSSEC — подлинность данных от авторитативного сервера до резолвера, независимо от канала.
  • DoH и DoT — шифрование участка «клиент — резолвер», то есть приватность от провайдера и от соседа по Wi-Fi.

Полная картина выглядит так: зона подписана DNSSEC, клиент ходит к валидирующему резолверу по зашифрованному каналу. Тогда ответ и подлинный, и не виден посторонним. Подробности транспорта — в материале про DNS over HTTPS.

Частые вопросы

Нужен ли DNSSEC обычному сайту?

Он полезен любому домену, но критичен там, где подмена адреса даёт немедленную выгоду атакующему: почта, платежи, личные кабинеты, административные панели. Для витрины-визитки это разумная гигиена, а не обязательное требование. Взвешивайте не только выгоду, но и цену ошибки: домен без сопровождения, где никто не заметит истёкшие подписи, безопаснее оставить неподписанным.

Замедляет ли DNSSEC работу сайта?

Дополнительные проверки стоят резолверу времени, но результат кэшируется, и на фоне остальных этапов загрузки страницы вклад мал. Заметный эффект возможен в другом месте: ответы становятся больше, и если сеть плохо пропускает крупные UDP-пакеты, появляются повторные запросы по TCP. Это лечится выбором алгоритма с короткими подписями и корректным EDNS.

Как отключить DNSSEC, если домен уже недоступен?

Удалите DS-запись у регистратора — это снимает требование подписи. Восстановление не мгновенное: пока старая DS-запись живёт в кэшах резолверов, часть пользователей продолжит получать отказ. Никакими действиями на своей стороне этот кэш не сбросить, поэтому ждать придётся до истечения TTL.

Что делать при переезде на другой DNS-хостинг?

Снять DS, дождаться истечения его TTL, перевести NS-записи, включить подпись на новом хостинге и опубликовать новый DS. Совмещать смену NS с активной DS-записью нельзя, если новый хостинг не импортировал те же ключи.

Почему домен открывается у меня, но не у клиента?

Почти всегда потому, что резолвер клиента валидирует подписи, а ваш — нет. Проверьте домен через публичный валидирующий резолвер и сравните ответы с флагом +cd и без него: разница означает проблему именно с DNSSEC.

Защищает ли DNSSEC от фишинговых доменов-двойников?

Нет. Он подтверждает, что ответ для запрошенного имени подлинный, но ничего не говорит о том, что имя принадлежит той организации, о которой думает пользователь. Домен-двойник может быть подписан не хуже вашего.

Чеклист внедрения DNSSEC

  • DNS-хостинг поддерживает подпись зоны, а регистратор — публикацию DS.
  • Порядок включения соблюдён: сначала подпись зоны, потом DS у регистратора.
  • Алгоритм выбран современный, дайджест DS — SHA-256.
  • Цепочка проверена снаружи: DNSKEY и RRSIG в зоне, DS у родителя, флаг AD в ответе валидирующего резолвера.
  • Проверка с +cd внесена в план диагностики — она отделяет проблемы подписи от недоступности.
  • Известно, кто и по какому расписанию переподписывает зону, и что произойдёт при остановке этого процесса.
  • Ротация KSK описана заранее: кто обновляет DS у регистратора и в каком порядке.
  • Мониторинг ловит истечение подписей и отказ резолвера до того, как это заметят пользователи.
  • Порядок отключения зафиксирован: DS, ожидание TTL, снятие подписи — и никак иначе.

Проверьте ваш сайт прямо сейчас

Проверить DNS своего сайта →
Другие статьи: DNS
DNS
Лучшие публичные DNS-серверы 2026: скорость, приватность и фильтрация
21.07.2026 · 7 594 просм.
DNS
Сайт не открывается из-за DNS: 8 причин и решения
15.04.2026 · 636 просм.
DNS
DNS leak: что это, как проверить и устранить
15.04.2026 · 532 просм.
DNS
TTL в DNS: оптимальные значения для каждого типа записи
16.03.2026 · 513 просм.