Я создаю инструменты для веб-аналитики, но мне сложно проверить соответствие DNSSEC в приложении NodeJS. Ни один из типов записей DNSSEC, похоже, не принят модулем dns
в стандартной библиотеке. Я пытаюсь найти rrsig
, ds
, nsec
, nsec3
, но docs не перечислять их как действительные rrtypes для решения. Можно ли это сделать с помощью NodeJS?Как я могу проверить соответствие DNSSEC узлам?
ответ
Если вы планируете внедрять валидацию DNSSEC в Javascript (удачи с этим!), Вы будете зависеть от какого-либо внешнего валидатора, чтобы указать действительный, недействительный или небезопасный (DNSSEC не настроен). Самый большой валидатор DNSSEC в мире в Google Public DNS (более известный как 8.8.8.8), и они удобно добавили HTTPS-based API, который должен быть довольно прост в использовании из вашего кода Node.js (ответы API - JSON).
Вы можете проверить для успешного разрешения с и без & кд = 1 параметр отключить DNSSEC проверки:
- SERVFAIL ("Status": 2) для обоих запросов является плохой делегацию
- SERVFAIL только без & кд = 1 является недопустимой конфигурацией DNSSEC
- УСПЕХА («Статус»: 0), но не идентифицированных данных («AD»: ложный) не DNSSEC зоны
- УСПЕХА аутентичных данных («AD»: правда) является действительным DNSSEC confi gure
Единственный недостаток этого в том, что это вызовы API удаленных веб-сайтов, но даже с локальным проверяющим преобразователем вы зависите от удаленных DNS-запросов, поэтому разница в них не так велика (кроме кеширования).
Если вы хотите сгенерировать диагностику определенных проблем с недопустимыми конфигурациями DNSSEC, вам необходимо напрямую запросить типы записей DNSSEC (это работает для DS, DNSKEY, NSEC, NSEC3, NSEC3PARAM и RRSIG), но вам придется генерировать имя хэш-файла NSEC3, используя сами данные NSEC3PARAM, что будет болезненно)
Большое спасибо за ответ, это прекрасно –