メインコンテンツまでスキップ

1. Introduction (はじめに)

1. Introduction (はじめに)

1.1 Rationale (根拠)

DNS Security Extensions には, 認証済み否定応答 (authenticated denial of existence) を提供するために NSEC RR が含まれていました。NSEC RR は認証済み否定応答の要件を満たしていますが, ゾーンの内容を列挙できるという副作用をもたらします。この特性は望ましくないポリシーの問題を引き起こします。

列挙は, 署名されたゾーン内に存在する NSEC レコードのセットによって可能になります。NSEC レコードは, 2つの名前の間に何も存在しないことを示すために, 正規順序 (canonically) で並べられた2つの名前をリストします。NSEC レコードの完全なセットは, ゾーン内のすべての名前をリストします。存在しない名前を照会することで, ゾーンの内容を列挙することは簡単です。

列挙されたゾーンは, たとえば, スパムのための可能性のある電子メールアドレスの情報源として使用されたり, 多くのレジストリが保護する法的義務を持つ可能性のある登録者データを明らかにするための複数の WHOIS クエリのキーとして使用されたりする可能性があります。したがって, 多くのレジストリはゾーンデータのコピーを禁止しています。しかし, NSEC RR の使用により, これらのポリシーは実行不可能になります。

2つ目の問題は, 未署名ゾーンへの委任を暗号化的に保護するコストが, 認識されているセキュリティ上の利点に比べて高いことです。これは2つのケースで発生します: 大規模な委任中心のゾーンと, 安全でない委任が急速に更新されるゾーンです。これらのケースでは, NSEC RR チェーンを維持するコストが非常に高くなる可能性があり, "Opt-Out" 規約の使用がより適切である可能性があります (これらの安全でないゾーンの場合)。

この文書は, これらの問題を軽減するために NSEC の代替として使用できる NSEC3 リソースレコードを提示します。

これらの問題に対処するための以前の作業には, [DNSEXT-NO], [RFC4956], および [DNSEXT-NSEC2v2] が含まれます。

1.2 Requirements (要件)

この文書におけるキーワード "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", および "OPTIONAL" は, [RFC2119] に記載されているように解釈されます。

1.3 Terminology (用語)

読者は, [RFC1034], [RFC1035], [RFC4033], [RFC4034], [RFC4035], およびそれらを更新する後続の RFC: [RFC2136], [RFC2181], および [RFC2308] に記載されている基本的な DNS および DNSSEC の概念に精通していることを前提としています。

この文書全体で使用される用語は次のとおりです:

Zone enumeration (ゾーン列挙): 連続したクエリを介してゾーンの完全な内容を発見する行為。ゾーン列挙は, DNSSEC の導入前は簡単ではありませんでした。

Original owner name (元のオーナー名): ハッシュ化されたオーナー名に対応するオーナー名。

Hashed owner name (ハッシュ化されたオーナー名): オーナー名にハッシュ関数を適用した後に作成されたオーナー名。

Hash order (ハッシュ順序): ハッシュ化されたオーナー名が, 最も左側 (最も番号の小さい) のオクテットを最上位オクテットとして扱い, その数値に従って配置される順序。この順序は, ハッシュ化されたオーナー名が Extended Hex Alphabet [RFC4648] でエンコードされた base32 である場合, [RFC4034] で指定されている正規の DNS 名順序と同じであることに注意してください。

Empty non-terminal (空の非終端): リソースレコードを所有していないが, それを所有する1つ以上のサブドメインを持つドメイン名。

Delegation (委任): 現在のゾーン apex とは異なる名前 (非ゾーン apex) を持つ NS RRSet で, 子ゾーンへの委任を示します。

Secure delegation (安全な委任): 委任 (NS RRSet) と署名された DS RRSet を含む名前で, 署名された子ゾーンへの委任を示します。

Insecure delegation (安全でない委任): 委任 (NS RRSet) を含むが DS RRSet を欠いている名前で, 未署名の子ゾーンへの委任を示します。

Opt-Out NSEC3 resource record (Opt-Out NSEC3 リソースレコード): Opt-Out フラグが1に設定されている NSEC3 リソースレコード。

Opt-Out zone (Opt-Out ゾーン): 少なくとも1つの Opt-Out NSEC3 RR を持つゾーン。

Closest encloser (最近接包含者): 名前の最長の既存の祖先。[RFC4592] のセクション 3.3.1 も参照してください。

Closest provable encloser (最近接証明可能包含者): 存在することを証明できる名前の最長の祖先。これは, Opt-Out ゾーンでのみ最近接包含者と異なることに注意してください。

Next closer name (次近接名): 名前の最近接証明可能包含者よりも1つ多いラベルを持つ名前。

Base32: [RFC4648] で指定されている "Base 32 Encoding with Extended Hex Alphabet"。末尾のパディング文字 ("=") は NSEC3 仕様では使用されないことに注意してください。

To cover (カバーする): NSEC3 RR は, 名前または "次近接" 名のハッシュが NSEC3 のオーナー名と次のハッシュ化されたオーナー名の間に該当する場合, その名前を "カバーする" と言います。言い換えれば, 名前の非存在を直接証明するか, 名前の祖先の非存在を証明することで証明する場合です。

To match (マッチする): NSEC3 RR のオーナー名がその名前のハッシュ化されたオーナー名と同じである場合, NSEC3 RR はその名前に "マッチする" と言います。