Кратко

  • NSEC и NSEC3 подтверждают точные отрицательные утверждения о содержимом подписанной зоны. Доказательство связано с подписантом, границей зоны, запросом, TTL и сроком подписи.
  • Opt-Out позволяет исключать некоторые небезопасные делегации из цепочки NSEC3. Интервал может показать отсутствие DS, не доказывая несуществование каждого пропущенного имени.

Подписанное «нет» не означает «никогда не было»

Резолвер запрашивает отсутствующую адресную запись. Авторитетный сервер отвечает NXDOMAIN либо сообщает, что имя есть, но нужного типа нет. В подписанной зоне резолвер проверяет цепочку доверия, подписи и доказательство NSEC или NSEC3.

Это мешает злоумышленнику заменить положительный ответ ложным отрицательным. Однако RFC 4035 ограничивает вывод: RRset не представлен в подписанной зоне. Доказательство не охватывает всю историю имени и не решает договорное право.

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

NSEC превращает порядок в доказательство

NSEC связывает owner name со следующим именем в каноническом порядке и содержит bitmap типов у первого имени. Подписанный интервал доказывает, что между границами нет другого owner name. Bitmap показывает, что существующее имя не имеет запрошенного типа.

Поэтому NXDOMAIN и NODATA различны. Первое отрицает имя, второе — тип. Empty non-terminal может не иметь собственного RRset и всё же иметь потомков. Wildcard требует дополнительно исключить более близкий источник подстановки.

Валидированное отрицание — это аргумент, а не флаг missing. Валидатор устанавливает нужную зону, покрывающий интервал, bitmap, возможность wildcard, окно подписи и цепочку DS/DNSKEY до локальной точки доверия.

Порядок NSEC одновременно позволяет обход зоны. NSEC3 создавался в том числе для снижения такой прямой видимости. Проверяемость способна раскрывать операционную структуру.

NSEC3 скрывает написание, но не создаёт тайну

NSEC3 хеширует имена по опубликованным параметрам и подписывает интервалы значений. Резолвер повторяет вычисления для closest encloser, запрошенного имени и кандидата wildcard.

Предсказуемые метки можно проверять офлайн. Реестр IANA сейчас назначает для NSEC3 только SHA-1. RFC 9276 объясняет, что дополнительные iterations увеличивают стоимость подписи и проверки, но слабо препятствуют современному перебору. Обычная рекомендация — ноль итераций, пустой salt и NSEC там, где обход зоны не вызывает опасений.

Большее число не равно лучшему управлению безопасностью. Значение имеет реальный эффект работающего кода и распределение общей стоимости.

Opt-Out оставляет область без ответа

Большая зона делегаций резко выросла бы, если бы каждый небезопасный child требовал отдельного NSEC3 и подписи. Opt-Out позволяет пропустить делегации без DS и некоторые производные empty non-terminals.

RFC 7129 проводит ясную границу: NSEC3 Opt-Out не может ни доказать, ни опровергнуть существование имён внутри интервала. Он помогает установить, что аутентифицированный DS не защищает предполагаемую делегацию и путь следует считать insecure. Но он не разрешает записать name_absent=true для каждой пропущенной метки.

Надёжное событие отдельно хранит интервал, Opt-Out, отсутствие DS, возможную небезопасную делегацию и итог валидатора. Зелёная отметка «authenticated» без этих полей уничтожает основное ограничение доказательства.

В споре child без DS может реально быть делегирован внутри Opt-Out. Родительское доказательство не решает намерение registry, согласованность авторитетных экземпляров или правомерность provisioning.

Кэш может ответить без нового запроса

RFC 2308 определяет negative caching. RFC 8020 разрешает NXDOMAIN cut для нижележащих имён. RFC 8198 позволяет валидирующему резолверу синтезировать отрицательные ответы из уже проверенных интервалов NSEC или NSEC3.

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

Для аудита нужны имя, тип, rcode, зона, proof records, closest encloser, wildcard, Opt-Out, время получения, TTL, начало и конец подписи, цепочка доверия и источник — авторитетный либо синтезированный. Снимок NXDOMAIN не фиксирует решение.

Отрицательное доказательство не является приказом об удалении

Registry и registrar управляют разными транзакциями. Авторитетный оператор публикует зону. Registrant может иметь договорные права. Орган пересмотра распоряжается только определёнными средствами защиты. Резолвер управляет кэшем. NSEC не объединяет эти полномочия.

Подпись не показывает уведомление, просрочку оплаты, прекращение права или завершение апелляции. Она не передаёт имя третьему лицу и не делает подписанта владельцем требования.

Цепочка ответственности соединяет, но не смешивает четыре записи: регистрацию или критерий допуска; авторизованное решение provisioning; подписанную версию зоны; проверенные внешние наблюдения. Зона — действующая публичная реальность. Остальные документы объясняют её происхождение и исправление.

Тонкий общий слой

Принцип минимального слоя Heng Lu ставит функцию на место. Общему уровню нужно различать validated data, validated absence, insecure delegation и bogus evidence. Ему не нужно решать всемирное право на имя.

Технический результат задают zone cut, цепочка DS/DNSKEY, параметры, интервалы, Opt-Out, wildcard, TTL, окно подписи и политика валидатора. Политика не исправит плохое доказательство; правильная подпись не превратит частную политику в суверенитет.

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

Источники