web-dev-qa-db-ja.com

DNSSECNSEC3オプトアウト

NSEC3RRのオプトアウトフラグの意味を簡単な言葉で説明してもらえますか。私は RFC 5155 を読みましたが、何も理解していません。

5
Sandman4

NSEC3レコードは、すべての委任用、または安全な委任用の2つの異なる方法のいずれかで作成できます。オプトアウトフラグは、使用されているメソッドを示します。フラグの理由は、主に委任(つまり、TLD)で構成される非常に大きなゾーンが、すべての委任に対してNSEC3レコードとそれに対応するRRSIGレコードを生成する必要がないようにするためです。これは、最大1億の委任を持つ.comのようなTLDにとって重要です。すべての委任に署名すると、非常に大規模なゾーンファイルが作成されます。

オプトアウトビットが設定されているかどうかにかかわらず、セキュアな委任に違いはありません。

オプトアウトビットが設定されていない安全でない委任の場合、委任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ゾーン内の安全でない委任です。

;; ->>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があることを考えると、非常に簡単に見つけることができます。これは、最も近い証明可能なエンクロージャーです。

2番目のNSEC3レコードは、yahoo.comを「カバー」することです。これは、yahoo.comのNSEC3レコードが安全な委任ではないため、存在しないことを証明するためのものです。

比較のために計算されたハッシュは次のとおりです。

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

TLDゾーンまたは多数の委任がある他のゾーンを実行している場合を除き、オプトアウトフラグを使用する必要はありません。

7
Cakemox