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

Appendix C. Authentication Examples (認証の例)

このセクションの例では、付録Bの応答メッセージがどのように認証されるかを示しています。

C.1. Authenticating an Answer (回答の認証)

付録B.1のクエリは、x.w.example.comのMX RRsetを返しました。対応するRRSIGは、MX RRsetがアルゴリズム5とキータグ38519を持つ"example" DNSKEYによって署名されたことを示しています。リゾルバは、この回答を認証するために対応するDNSKEY RRを必要とします。以下の説明では、リゾルバがこのDNSKEY RRをどのように取得するかを説明します。

RRSIGは、MX RRsetの元のTTLが3600であったことを示しており、認証の目的で、現在のTTLは3600に置き換えられます。RRSIGラベルフィールドの値3は、回答がワイルドカード展開の結果ではなかったことを示しています。x.w.example.com MX RRsetは正規形式に配置され、現在の時刻が署名の開始日と有効期限の間にあると仮定すると、署名が認証されます。

C.1.1. Authenticating the Example DNSKEY RR (Example DNSKEY RRの認証)

この例は、設定されたルートDNSKEY(またはDS RR)から始まり、ツリーを下って目的の"example" DNSKEY RRを認証する論理的な認証プロセスを示しています。論理的な順序は明確さのために提示されていることに注意してください。実装は、参照を受信したときに認証を構築するか、すべてのRRsetが取得された後にのみ認証チェーンを構築するか、またはその他の適切な組み合わせを選択することができます。ここでの例は、論理的なプロセスのみを示しており、実装ルールを規定するものではありません。

リゾルバがルートゾーンの設定されたDNSKEY RR(またはルートゾーンの設定されたDS RR)から開始すると仮定します。リゾルバは、この設定されたDNSKEY RRがルートDNSKEY RRsetに存在するか(またはDS RRがルートDNSKEY RRset内の一部のDNSKEYと一致するか)、このDNSKEY RRがルートDNSKEY RRsetに署名したか、および署名の有効期間が有効かどうかを確認します。これらの条件がすべて満たされている場合、DNSKEY RRset内のすべてのキーは認証されたと見なされます。次に、リゾルバはルートDNSKEY RRの1つ(または複数)を使用して、"example" DS RRsetを認証します。リゾルバは、ルートDNSKEY RRsetまたは"example" DS RRsetを取得するためにルートゾーンにクエリを実行する必要がある場合があることに注意してください。

ルートDNSKEYを使用してDS RRsetが認証されると、リゾルバは認証された"example" DS RRの1つと一致する"example" DNSKEY RRsetの"example" DNSKEY RRを確認します。このような一致する"example" DNSKEYが見つかった場合、リゾルバはこのDNSKEY RRが"example" DNSKEY RRsetに署名し、署名の有効期間が有効かどうかを確認します。これらの条件が満たされている場合、"example" DNSKEY RRset内のすべてのキーは認証されたと見なされます。

最後に、リゾルバは"example" DNSKEY RRset内の一部のDNSKEY RRがアルゴリズム5を使用し、キータグ38519を持っていることを確認します。このDNSKEYは、応答に含まれるRRSIGを認証するために使用されます。このアルゴリズムとキータグに一致する複数の"example" DNSKEY RRがある場合、各DNSKEY RRが試行され、一致するDNSKEY RRのいずれかが上記のように署名を検証すると、回答が認証されます。

C.2. Name Error (名前エラー)

付録B.2のクエリは、要求されたデータが存在せず、ワイルドカードが適用されないことを証明するNSEC RRを返しました。否定的な応答は、両方のNSEC RRを検証することによって認証されます。NSEC RRは、上記で説明したMX RRsetと同じ方法で認証されます。

C.3. No Data Error (データなしエラー)

付録B.3のクエリは、要求された名前が存在するが、要求されたRRタイプが存在しないことを証明するNSEC RRを返しました。否定的な応答は、NSEC RRを検証することによって認証されます。NSEC RRは、上記で説明したMX RRsetと同じ方法で認証されます。

C.4. Referral to Signed Zone (署名済みゾーンへの参照)

付録B.4のクエリは、署名済みの"a.example."ゾーンへの参照を返しました。DS RRは、上記で説明したMX RRsetと同じ方法で認証されます。このDS RRは、"a.example" DNSKEY RRsetを認証するために使用されます。

"example" DNSKEYを使用して"a.example" DS RRsetが認証されると、リゾルバはDS RRと一致する"a.example" DNSKEY RRsetの"a.example" DNSKEY RRを確認します。このような一致する"a.example" DNSKEYが見つかった場合、リゾルバはこのDNSKEY RRが"a.example" DNSKEY RRsetに署名し、署名の有効期間が有効かどうかを確認します。これらの条件が満たされている場合、"a.example" DNSKEY RRset内のすべてのキーは認証されたと見なされます。

C.5. Referral to Unsigned Zone (未署名ゾーンへの参照)

付録B.5のクエリは、未署名の"b.example."ゾーンへの参照を返しました。NSEC RRは、"b.example."委任にDS RRが関連付けられていないことを証明します。NSEC RRは、上記で説明したMX RRsetと同じ方法で認証されます。

リゾルバは、"b.example."が未署名ゾーンであり、"b.example."からの回答が安全でないことを判断します。

C.6. Wildcard Expansion (ワイルドカード展開)

付録B.6のクエリは、ワイルドカード展開をもたらしました。RRSIGラベルフィールドを調べると、回答がワイルドカード展開の結果であったことがわかります。"*.w.example."ワイルドカード名は正規形式に配置され、付録C.1のように認証されます。リゾルバは、ワイルドカード一致の代わりに使用されたであろうゾーン内により近い一致が存在しないことを証明するためにNSEC RRも検証する必要があります。

C.7. Wildcard No Data Error (ワイルドカードデータなしエラー)

付録B.7のクエリは、ワイルドカードを使用して回答されましたが、応答は"データなし"応答です。RRSIG内のRRSIGラベルフィールド値2は、NSEC RRがワイルドカードから派生したことを示し、ワイルドカード名を提供します。"*.w.example."ワイルドカードNSEC RRは、付録C.1のように認証されます。リゾルバは、ワイルドカード一致の代わりに使用されたであろうゾーン内により近い一致が存在しないことを証明するためにNSEC RRも検証する必要があります。

C.8. DS Child Zone No Data Error (DS子ゾーンデータなしエラー)

付録B.8のクエリは、子ゾーンに送信され、子ゾーンにDS RRが存在しないことを示すNSEC RRを返しました。NSEC RRは、子ゾーンの頂点にSOA RRがあることを示しており、リゾルバはこの回答が親ゾーンではなく子ゾーンからのものであることを判断できます。NSEC RRは、上記で説明したMX RRsetと同じ方法で認証されます。