DNSSEC NSEC3 选择退出

DNSSEC NSEC3 选择退出

有人能用简单的语言解释一下 NSEC3 RR 中 opt-out 标志的含义吗?我确实读过RFC 5155却什么都不懂。

答案1

NSEC3 记录可以通过两种不同的方式创建:针对所有委派,或仅针对安全委派。选择退出标志会告诉您正在使用哪种方法。使用标志的原因是允许主要由委派(即 TLD)组成的非常大的区域不必为每个委派生成 NSEC3 记录及其相应的 RRSIG 记录。这对于像 .com 这样拥有约 100,000,000 个委派的 TLD 来说很重要;签署每个委派都会产生一个非常庞大的区域文件!

无论是否设置了退出位,安全委派之间都没有区别。

对于未设置 opt-out 位的不安全委派,您将获得委派的 NS 记录以及该委派的 NSEC3 和 RRSIG。以下是 house.gov 的示例,它是 .gov 区域中的不安全委派(未提供 DS 记录),不使用 opt-out 位:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9019
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 3
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1472
;; QUESTION SECTION:
;www.house.gov.         IN  A

;; AUTHORITY SECTION:
house.gov.      86400   IN  NS  chyron.house.gov.
house.gov.      86400   IN  NS  mercury.house.gov.
56j5jp60kq681hl5vtv287p7s16spmcp.gov. 86400 IN NSEC3 1 0 8 4C44934802D3 56K48N2V1IV9H7F4HJ05N62QI9C29JV2 NS
56j5jp60kq681hl5vtv287p7s16spmcp.gov. 86400 IN RRSIG NSEC3 7 2 86400 20120516040019 20120511040019 35464 gov. OlOx3rG7ShAptVt1XTqcXLOtInxEqyfg1b6+vBlWiqSBZ8pkfk/IOFOm 49lbKkrjY2ibw98GaMdjUYCUUDKOX+eTe+HTfxginIfJ3FWOxB+TPFn1 /UEu4QAgEkWdgpT6NbCge9vWnhSxTCYNxTolVuhWq+sp59zodbAMERVi rIdFyoNpX1zijU1tjm9j8a+jFeN7tjf2fgzJQPpk/qNMgmgfp2GerPUX 5kVkhjoXPgRkLmy2W5PwbgWP4zOTRFuLxz0PsRfoqLUHYYEXPMQ0jimW ESl1LDRnHjdQDTD1qYPBCiVNxufaewZMGhTwP901CH3FLr6Gku7ptYkD 5ukEFQ==

如果我们根据盐值 4C44934802D3 和 8 次额外迭代来计算 NSEC3 哈希,则由于每个委托都会生成一个 NSEC3 记录,因此它是完全匹配的:

$ nsec3.py -i 8 -s 4C44934802D3 house.gov
56J5JP60KQ681HL5VTV287P7S16SPMCP house.gov

对于设置了选择退出位的不安全委托,您将不会获得提供该域可用资源记录类型列表的 NSEC3 记录。相反,您会获得“最近封闭证明”,如第节所述RFC 5155 的 7.2.1

此示例是 .com 区域内的不安全委派,它使用了退出标志:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48336
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 9, ADDITIONAL: 6
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 512
;; QUESTION SECTION:
;www.yahoo.com.         IN  A

;; AUTHORITY SECTION:
yahoo.com.      172800  IN  NS  ns1.yahoo.com.
yahoo.com.      172800  IN  NS  ns5.yahoo.com.
yahoo.com.      172800  IN  NS  ns2.yahoo.com.
yahoo.com.      172800  IN  NS  ns3.yahoo.com.
yahoo.com.      172800  IN  NS  ns4.yahoo.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0RFQAOES8CTVNVNH4G6Q85NOQAQ8I9 NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20120515041703 20120508030703 23339 com. RiL6MRN/fPVBjpyANDKurwSgdwgkdsRdB4ADWK7YTJeY2KNnBpjOX+FT +2a/XZR2ylP+G47L8k+DrJCHuAkr1wOYcOj7goiqErDwu+Cm5HZosAL2 EyRqNOHHgTDXlG6PGgyEe2DO0jWgmkyYX7+o0jpYP0m6QNDaRuf166np nkA=
GP1945PGQIOH4O61BM3RUL2EVN04SPIA.com. 86400 IN NSEC3 1 1 0 - GPLVOUV0V27L8DPOOBNLQU1VHFRMMPUT NS DS RRSIG
GP1945PGQIOH4O61BM3RUL2EVN04SPIA.com. 86400 IN RRSIG NSEC3 8 2 86400 20120518085726 20120511074726 23339 com. VmtH/BYw8H98FJM7YLxLIG0cfReERp5eNh3+bCu7EfWgSuWXn6OXdd4b rIMloxDXe9v/fdyd7RqwDiNLMPMhp8wRJOhKcqT0MczHFEUzy0SnXM3d SABY5d1AJr8YJNL+ZOgbiT445gn7HBET3OL+G5MfZPti+yhBnUvGlPYx UQ8=

第一个 NSEC3 记录用于 com 域本身(由于它在 RR 类型列表中具有 SOA、DNSKEY 和 NSEC3PARAM,因此很容易发现。它是最接近的可证明封闭器。

第二个 NSEC3 记录用于“覆盖”yahoo.com。这是为了证明 yahoo.com 的 NSEC3 记录不存在,因为它不是安全委派。

以下是用于比较的计算哈希值:

$ nsec3.py com yahoo.com
CK0POJMG874LJREF7EFN8430QVIT8BSM com
GPIOV963K81D6QM6IOTOUFUAPRDA6K3V yahoo.com

除非您正在运行 TLD 区域或其他具有大量委派的区域,否则没有必要使用退出标志。

相关内容