DNSSEC полезен?
На это нельзя ответить (какое бы слово вы ни поставили вместо «DNSSEC» в этом предложении), пока вы не начнете описывать то, что хотите защитить.
Когда у вас есть список рисков/уязвимостей/угроз, от которых вы хотите защититься, вы можете узнать, какие решения существуют, и определить для каждого решения, насколько оно полезно или нет.
DNSSEC
полезен против некоторых проблем с DNS, но не для всех из них. Он представляет собой новые проблемы (постоянное обслуживание подписей и ключей для одного), а также новые функции (агрессивное кэширование всего ниже NXDOMAIN
если они должным образом подтверждены DNSSEC).
Даже если преобразователь DNS подтверждает, что авторитетный сервер имен отправил правильные данные без изменений, как мы можем предотвратить отправку преобразователем DNS поддельного ответа DNS клиенту DNS?
Это ничем не отличается от сегодняшнего дня: если вы используете любой общедоступный преобразователь DNS (8.8.8.8
, 1.1.1.1
, 9.9.9.9
чтобы назвать несколько), вы, конечно, ПОЛНОСТЬЮ рискуете отправить вам мусорные данные. Это компромисс. DoH/DoT здесь ничего не решает, поскольку защищает только передачу контента между вами и этим распознавателем, а не сам контент. Какой контент «защищен» DNSSEC, если доменное имя, для которого вы делаете запросы, защищено DNSSEC (это та часть, которую вы забываете в своих вопросах и которая фактически затрудняет DNSSEC: владелец доменного имени должен включить его И Резолверы DNS должны использовать новые подписи и выполнять проверку; если одна часть этого уравнения с двумя переменными отсутствует, DNSSEC бесполезен, потому что он просто не может работать)
Таким образом, вопрос больше вращается вокруг: какой рекурсивный сервер имен использовать и где он должен работать. Конечно, для максимального контроля вы хотите, чтобы преобразователь работал на ВАШИХ машинах. Он по-прежнему может использовать внешние ресурсы и преобразователи DNS, но окончательная проверка DNSSEC должна выполняться на вашем сервере имен, а не на другом. Конечно, это требует больше работы, чем просто полагаться на любой другой ресурс, который делает все, что связано с DNSSEC, «бесплатно» за вас.
если преобразователь DNS не поддерживает DNSSEC, может ли он по-прежнему отправлять DNS-запросы полномочному серверу имен, у которого есть настройка DNSSEC для своей зоны?
Да.
Резолвер, желающий получить данные DNSSEC, должен переключить флаг «DO» в своем запросе.
От копать землю
документация:
+[нет]dnssec
Этот параметр запрашивает отправку записей DNSSEC путем установки бита DNSSEC OK (DO) в записи OPT в дополнительном разделе запроса.
Что вы можете видеть таким образом:
$ копать +dnssec example.com
; <<>> DiG 9.16.18 <<>> +dnssec example.com
;; глобальные параметры: +cmd
;; Отправка:
;; ->>HEADER<<- код операции: QUERY, статус: NOERROR, id: 40492
;; флаги: объявление rd; ЗАПРОС: 1, ОТВЕТ: 0, АВТОРИЗАЦИЯ: 0, ДОПОЛНИТЕЛЬНО: 1
;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги: делать; UDP: 4096
^^
Или из §3.2.1 RFC 4035:
3.2.1. Бит DO
Сторона резолвера защищенного рекурсивного сервера имен ДОЛЖНА установить
бит DO при отправке запросов вне зависимости от состояния DO
бит в инициирующем запросе, полученном стороной сервера имен. Если
бит DO в инициирующем запросе не установлен, сторона сервера имен
ДОЛЖНЫ удаляться любые аутентифицирующие DNSSEC RR из ответа, но ДОЛЖНЫ
НЕ удаляйте какие-либо типы DNSSEC RR, которые инициирующий запрос явно
просил.
Если DNS-клиент (рекурсивный преобразователь) делает это И если запрашиваемый авторитетный сервер имен имеет включенный DNSSEC (следовательно, RRSIG
/НСЕК
/НСЕК3
типы записей в зонах), то преобразователь получит эти записи и сможет выполнить проверку DNSSEC.
Когда вы (заглушка/клиент DNS, не являющийся распознавателем) запрашиваете рекурсивный распознаватель, у вас есть возможность использовать CD
флаг, определенный как таковой:
+[нет]cdflag
Эта опция устанавливает [или не устанавливает] бит CD (отключение проверки) в запросе. Это запрашивает сервер не выполнять проверку DNSSEC ответов.
(остерегайтесь возможного двойного отрицания).
Если клиент не использует CD
, то проверка DNSSEC НЕ отключена, следовательно, она включена, и сервер удаления либо выдаст окончательный ответ (если для записи включен DNSSEC И проверка прошла успешно), либо ответит сообщением NXDOMAIN
если проверка DNSSEC не удалась.
Флаг ОБЪЯВЛЕНИЕ
будет установлено, чтобы обозначить, что все записи были проверены как безопасные, если это так (если запрос исходит от рекурсивного сервера имен, этот флаг не может существовать от авторитетного сервера, поскольку вам нужна полная цепочка DNSSEC от корня IANA для проверки любая заданная запись)