Knowledge Base

DNSSEC — криптографическая защита DNS-ответов

DNSSEC — криптографическая защита DNS-ответов

Категория: DNS Security · Риск: medium

DNSSEC — криптографическая защита DNS-ответов

Что такое DNSSEC

DNSSEC (DNS Security Extensions) добавляет цифровые подписи к DNS-записям. Резолвер может проверить, что полученный ответ не был подменён на пути — защита от DNS cache poisoning и BGP hijacking.

Без DNSSEC злоумышленник, который может перехватить DNS-трафик (публичный Wi-Fi, скомпрометированный провайдер, BGP leak), **может перенаправить пользователей на свой сервер** с валидным TLS-сертификатом, выданным через ACME-challenge.

Проверка DNSSEC

# Проверить наличие DNSKEY-записи
dig DNSKEY example.com +short

# Проверить цепочку доверия
dig example.com +dnssec +short

# Ответ без DNSSEC:
# 1.2.3.4

# Ответ с DNSSEC (содержит RRSIG):
# 1.2.3.4
# A 8 2 300 20270101000000 20261201000000 12345 example.com. <base64-signature>

# Полная проверка через Verisign Labs:
curl "https://dnssec-analyzer.verisignlabs.com/example.com"

Настройка DNSSEC

Cloudflare

DNS → DNSSEC → Enable DNSSEC
→ Cloudflare сгенерирует DS-запись
→ Добавьте DS-запись у регистратора домена

Яндекс 360 / РЕГ.РУ

Оба провайдера поддерживают DNSSEC — включается в панели управления DNS. После включения регистратор домена должен получить DS-запись.

BIND 9 (self-hosted)

# Генерация ключей
dnssec-keygen -a ECDSAP256SHA256 -b 256 -n ZONE example.com
dnssec-keygen -a ECDSAP256SHA256 -b 256 -n ZONE -f KSK example.com

# Подпись зоны
dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) \
    -N INCREMENT -o example.com -t db.example.com

# В named.conf:
# dnssec-policy default;  # BIND 9.16+

Ограничения

Когда DNSSEC критичен

Связанные проверки