我正在构建一些网络分析工具,但在检查 NodeJS 应用程序中的 DNSSEC 合规性时遇到了一些困难。dns
标准库中的模块似乎不接受任何 DNSSEC 记录类型。我正在尝试查找rrsig
, ds
, nsec
,nsec3
但文档并未将它们列为要解析的有效 rrtypes。用NodeJS可以做到这一点吗?
问问题
781 次
1 回答
3
除非您计划在 Javascript 中实施 DNSSEC 验证(祝您好运!),否则您将依赖一些外部验证器来指示有效、无效或不安全(未配置 DNSSEC)。谷歌公共 DNS中世界上最大的 DNSSEC 验证器(更广为人知的是 8.8.8.8),他们方便地添加了一个基于 HTTPS 的 API,应该很容易从您的 Node.js 代码中使用(API 响应是 JSON) .
您可以使用和不使用 &cd=1 参数来检查是否成功解析以禁用 DNSSEC 验证:
- 两个查询的 SERVFAIL ("Status": 2) 是一个错误的委托
- 仅没有 &cd=1 的 SERVFAIL 是无效的 DNSSEC 配置
- SUCCESS ("Status": 0) but no Authenticated Data ("AD": false) 是非 DNSSEC 区域
- SUCCESS with Authenticated Data ("AD": true) 是有效的 DNSSEC 配置
唯一的缺点是这些是远程 Web API 调用,但即使使用本地验证解析器,您也依赖于远程 DNS 查询,因此没有太大区别(缓存除外)。
如果要生成有关无效 DNSSEC 配置的特定问题的诊断,则需要直接查询特定于 DNSSEC 的记录类型(这适用于 DS、DNSKEY、NSEC、NSEC3、NSEC3PARAM 和 RRSIG - 但您必须自己使用 NSEC3PARAM 数据生成 NSEC3 哈希名,会很痛苦)
于 2016-07-12T22:18:03.073 回答