跳转到内容
搜索文档

NSEC3 支持

最后更新 查看 MarkdownAgent 设置

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

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

启用 NSEC3

使用 Edit DNSSEC Status 端点,将 status 设为 activednssec_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 中所有名称的方法。当此类否定应答提供链中上一个和下一个名称的信息时,这是可能的。

这篇文档对您有帮助吗?