跳转到内容
搜索文档

NSEC3 支持

最后更新 查看 MarkdownAgent 设置

如我们的博客 ↗所述,Cloudflare 使用 NSEC 的否定应答实现可防护 zone walking1。此实现也称为 Compact Denial of Existence(RFC 9824 ↗),消除了 NSEC3 的需求且效率显著更高。

但是,若因合规原因必须使用 NSEC3,可按以下说明启用。

启用 NSEC3

使用 Edit DNSSEC Status 端点,将 status 设为 active,dnssec_use_nsec3 设为 true。你应将 $ 开头的值替换为 zone ID 和认证凭据。有关使用 Cloudflare API 的更多信息,请参阅 Fundamentals。

Required API token permissions

At least one of the following token permissions is required:
  • DNS Write
Edit DNSSEC Statusbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dnssec" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"dnssec_use_nsec3": true,
		"status": "active"
	}'

预签名 DNSSEC

若你使用 Cloudflare 作为 Secondary DNS 提供商并配合预签名 DNSSEC,将 dnssec_use_nsec3 设为 true 意味着 Cloudflare 将使用从主 DNS 提供商传输的 NSEC3 记录。

否则,NSEC3 记录将在请求时生成并签名。

验证 NSEC3 正在使用

要验证 NSEC3 正在使用,请考虑以下场景:

不存在的 zone 名称

如下命令将触发使用 NSEC3 进行不存在证明的签名否定响应。在响应的 Authority Section 下查找 NSEC3 记录。

dig +dnssec doesnotexist.example.com

现有名称上不存在的记录类型

若名称 www 存在但 TXT 类型不存在,以下示例将触发使用 NSEC3 的签名 NODATA 响应。在响应的 Authority Section 下查找 NSEC3 记录。

dig +dnssec www.example.com TXT

可用性

NSEC3 仅适用于 Enterprise 计划上的 zone。

Footnotes

  1. 攻击者利用 NSEC 否定应答获取给定 zone 中所有名称的方法。当此类否定应答提供链中上一个和下一个名称的信息时,这是可能的。 ↩

这篇文档对您有帮助吗?