2

我正在构建一些网络分析工具,但在检查 NodeJS 应用程序中的 DNSSEC 合规性时遇到了一些困难。dns标准库中的模块似乎不接受任何 DNSSEC 记录类型。我正在尝试查找rrsig, ds, nsecnsec3文档并未将它们列为要解析的有效 rrtypes。用NodeJS可以做到这一点吗?

4

1 回答 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 回答