Dnssec

DNSSEC NSEC3 退出

  • May 11, 2012

有人可以用簡單的語言解釋 NSEC3 RR 中選擇退出標誌的含義。我確實閱讀了RFC 5155,但什麼也不懂。

NSEC3 記錄可以通過以下兩種不同方式之一創建:用於所有委託,或僅用於安全委託。選擇退出標誌告訴您正在使用哪種方法。使用該標誌的原因是允許主要由授權(即 TLD)組成的非常大的區域不必為每個單獨的授權生成 NSEC3 記錄及其相應的 RRSIG 記錄。這對於像 .com 這樣擁有約 100,000,000 個授權的頂級域名很重要;簽署每一個代表團都會產生極其龐大的區域文件!

當選擇退出位設置與否時,安全委託之間沒有區別。

對於未設置選擇退出位的不安全委派,您將獲得委派 NS 記錄以及該委派的 NSEC3 和 RRSIG。這是 house.gov 的範例,它是 .gov 區域中的不安全委託(未提供 DS 記錄),它不使用選擇退出位:

;; ->>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 區域內的不安全委託,它使用了 opt-out 標誌:

;; ->>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 區域或其他區域,否則沒有必要使用 opt-out 標誌。

引用自:https://serverfault.com/questions/388028