Проверка DNSSEC домена

Посмотрите, подписан ли домен: DS-записи в родительской зоне, DNSKEY-записи в самой зоне и то, пометили ли два валидирующих резолвера ответ как аутентифицированный.

Как устроен DNSSEC

DNSSEC добавляет к DNS-ответам подписи, чтобы резолвер мог убедиться, что их не изменили по пути. Зона публикует свои открытые ключи в виде DNSKEY-записей и подписывает ими свои записи. Родительская зона (.com для example.com) публикует DS-запись: дайджест ключа подписания ключей этой зоны. Эта DS-запись — звено цепочки доверия от корня до домена, и задаётся она через регистратора.

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

Что проверяет этот инструмент и откуда берутся данные

OrbitProbe запрашивает у двух публичных валидирующих резолверов, Cloudflare и Google, по DNS-over-HTTPS записи DS и DNSKEY регистрируемого домена с установленным битом DNSSEC OK. Он перечисляет DS-записи с тегом ключа, алгоритмом и типом дайджеста, DNSKEY-записи с их ролью (KSK или ZSK) и алгоритмом, а также показывает, установил ли каждый резолвер флаг AD (Authenticated Data) в своём ответе. Там, где реестр его публикует, флаг RDAP «delegation signed» показан как второй источник.

Вердикт — один из следующих: подписана (есть DS и DNSKEY), не подписана (резолверы ответили, и DS-записи нет), ключи опубликованы без DS-записи, DS есть, но ключи не читаются, или не удалось проверить. Если один резолвер не отвечает, ответ второго всё равно используется, а сбой показывается.

Как честно читать флаг AD

Флаг AD означает: эти валидирующие резолверы в момент проверки пометили ответ как аутентифицированный. Это их утверждение о собственной валидации, а не сертификат для домена и не обещание насчёт других резолверов. Инструмент сам подписи не перепроверяет и не обходит каждую запись зоны, поэтому истёкшая подпись на отдельной записи может остаться здесь незамеченной.

Как пользоваться этим инструментом

  1. Введите домен. Введите или вставьте доменное имя, например example.com. Подойдёт и полный URL: схема, путь и начальное www будут отброшены.
  2. Запросите DS и DNSKEY. Инструмент опрашивает два валидирующих резолвера (Cloudflare и Google) по DNS-over-HTTPS с установленным битом DNSSEC OK.
  3. Прочитайте вердикт. Вы увидите, есть ли записи DS и DNSKEY, какие алгоритмы они используют и установил ли каждый резолвер флаг AD.

То же самое в командной строке

Та же проверка из терминала. В командах используется example.com: замените его своим именем.

  • DS-запись в родительской зонеdig +dnssec DS example.com
  • DNSKEY-записи зоныdig +dnssec DNSKEY example.com +multi
  • Флаг AD от валидирующего резолвераdig @1.1.1.1 example.com A +dnssec | grep flags
  • Тот же запрос по DNS-over-HTTPScurl -s -H "accept: application/dns-json" "https://cloudflare-dns.com/dns-query?name=example.com&type=DS&do=1"
  • Windows (PowerShell)Resolve-DnsName example.com -Type DNSKEY -DnssecOk

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

Как проверить, использует ли домен DNSSEC?

Введите домен выше или выполните dig +dnssec DS example.com и dig +dnssec DNSKEY example.com. У подписанного домена есть DS-запись в родительской зоне и DNSKEY-записи в самой зоне.

В чём разница между DS и DNSKEY?

DNSKEY-записи — это открытые ключи зоны, они находятся в самой зоне. DS-запись — дайджест ключа подписания ключей, она находится в родительской зоне, куда её вносят через регистратора.

Какие алгоритмы сегодня подходят?

Широко используются ECDSAP256SHA256 (13), ED25519 (15) и RSASHA256 (8). Варианты RSASHA1 (5 и 7) и DS-дайджесты SHA-1 (тип 1) устарели, и инструмент их отмечает.

Инструмент пишет «не подписан». Это проблема?

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

Как безопасно отключить DNSSEC?

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