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

2. Zone Signing (ゾーン署名)

DNSSECは、署名済みゾーン (Signed Zones) の概念を導入します。署名済みゾーンには、それぞれセクション2.1、2.2、2.3、2.4で指定された規則に従って、DNS公開鍵 (DNSKEY)、リソースレコード署名 (RRSIG)、次のセキュア (NSEC)、および(オプションで)委任署名者 (DS) レコードが含まれます。本セクションの規則に従ってこれらのレコードを含まないゾーンは、未署名ゾーン (Unsigned Zone) です。

DNSSECは、CNAMEリソースレコード ([RFC1035]) の定義への変更を必要とします。セクション2.5では、CNAMEと同じ所有者名にRRSIGおよびNSEC RRが現れることを許可するようにCNAME RRを変更します。

DNSSECは、ゾーンカット (Zone Cut) の親側(つまり、委任ポイント)に配置できる2つの新しいRRタイプ、NSECとDSの配置を指定します。これは、ゾーンカットで親ゾーンにデータを配置することに対する一般的な禁止事項の例外です。セクション2.6でこの変更について説明します。

2.1. Including DNSKEY RRs in a Zone (ゾーンへのDNSKEY RRの追加)

ゾーンに署名するために、ゾーンの管理者は1つ以上の公開鍵/秘密鍵ペアを生成し、秘密鍵を使用してゾーン内の権威RRsetに署名します。ゾーン内でRRSIG RRを作成するために使用される各秘密鍵について、ゾーンは対応する公開鍵を含むゾーンDNSKEY RRを含むべきです (SHOULD)。ゾーン鍵DNSKEY RRは、フラグRDATAフィールドのゾーン鍵ビットを設定しなければなりません (MUST)([RFC4034]のセクション2.1.1を参照)。他のDNS操作に関連付けられた公開鍵は、ゾーン鍵としてマークされていないDNSKEY RRに格納してもかまいません (MAY) が、RRSIGの検証に使用してはなりません (MUST NOT)。

ゾーン管理者が署名済みゾーンをセキュリティアイランド (Island of Security) 以外として使用可能にすることを意図している場合、ゾーンの頂点 (Zone Apex) には、ゾーンへのセキュアなエントリポイントとして機能する少なくとも1つのDNSKEY RRが含まれていなければなりません (MUST)。このセキュアなエントリポイントは、親ゾーン内の対応するDS RRを介したセキュアな委任のターゲットとして使用できます([RFC4034]を参照)。

2.2. Including RRSIG RRs in a Zone (ゾーンへのRRSIG RRの追加)

署名済みゾーン内の各権威RRsetについて、次の要件を満たす少なくとも1つのRRSIGレコードが存在しなければなりません (MUST):

  • RRSIG所有者名がRRset所有者名と等しい
  • RRSIGクラスがRRsetクラスと等しい
  • RRSIGタイプカバードフィールドがRRsetタイプと等しい
  • RRSIGオリジナルTTLフィールドがRRsetのTTLと等しい
  • RRSIG RRのTTLがRRsetのTTLと等しい
  • RRSIGラベルフィールドが、RRset所有者名のラベル数と等しい(ヌルルートラベルを数えず、ワイルドカードの場合は最左ラベルを数えない)
  • RRSIG署名者名フィールドが、RRsetを含むゾーンの名前と等しい
  • RRSIGアルゴリズム、署名者名、およびキータグフィールドが、ゾーン頂点のゾーン鍵DNSKEYレコードを識別する

特定のRRsetに対するRRSIG RRを構築するプロセスは、[RFC4034]で説明されています。RRsetには複数のRRSIG RRが関連付けられてもかまいません (MAY)。RRSIG RRは、それらが含む署名のRRsetと密接に関連しているため、他のすべてのDNS RRタイプとは異なり、RRsetを形成しないことに注意してください。

RRSIG RR自体に署名してはなりません (MUST NOT)。RRSIG RRへの署名は価値を追加せず、署名プロセスで無限ループを作成します。

ゾーン頂点名に現れるNS RRsetは署名されなければなりません (MUST) が、委任ポイントに現れるNS RRset(つまり、名前を子ゾーンのネームサーバーに委任する親ゾーン内のNS RRset)は署名してはなりません (MUST NOT)。委任に関連付けられたグルーアドレスRRsetは署名してはなりません (MUST NOT)。

ゾーン頂点DNSKEY RRset内の各アルゴリズムの少なくとも1つのDNSKEYを使用して、各RRsetにRRSIGが存在しなければなりません (MUST)。

2.3. Including NSEC RRs in a Zone (ゾーンへのNSEC RRの追加)

権威データまたは委任ポイントNS RRsetを持つゾーン内の各所有者名には、NSECリソースレコードが存在しなければなりません (MUST)。NSEC RRの形式および特定の名前に対するNSEC RRを構築するプロセスは、[RFC4034]で説明されています。

任意のNSEC RRのTTL値は、ゾーンSOA RRの最小TTL値フィールドと同じであるべきです (SHOULD)。

NSECレコード(およびそれに関連付けられたRRSIG RRset)は、特定の所有者名で唯一のRRsetであってはなりません (MUST NOT)。つまり、署名プロセスは、ゾーンが署名される前に任意のRRsetの所有者名でなかった所有者名ノードに対してNSECまたはRRSIG RRを作成してはなりません (MUST NOT)。

署名済みゾーン内のすべてのNSECリソースレコードのタイプビットマップは、NSECレコード自体とそれに対応するRRSIGレコードの両方の存在を示さなければなりません (MUST)。

2.4. Including DS RRs in a Zone (ゾーンへのDS RRの追加)

DSリソースレコードは、DNSゾーン間の認証チェーンを確立します。子ゾーンが署名されている場合、委任ポイントにDS RRsetが存在すべきです (SHOULD)。DS RRsetには、そのゾーン内のRRSIGを検証するために使用される子ゾーン内の公開鍵を参照する複数のレコードが含まれてもかまいません (MAY)。ゾーン内のすべてのDS RRsetは署名されなければならず (MUST)、DS RRsetはゾーンの頂点に現れてはなりません (MUST NOT)。

DS RRは、子の頂点DNSKEY RRsetに存在するDNSKEY RRを指すべきであり (SHOULD)、子の頂点DNSKEY RRsetは対応する秘密鍵によって署名されるべきです (SHOULD)。

DS RRsetのTTLは、委任NS RRsetのTTLと一致すべきです (SHOULD)。

2.5. Changes to the CNAME Resource Record (CNAMEリソースレコードへの変更)

署名済みゾーン内の名前にCNAME RRsetが存在する場合、その名前には適切なRRSIGおよびNSEC RRsetが必要です (REQUIRED)。セキュアな動的更新目的のその名前でのKEY RRsetも許可されます([RFC3007])。他のタイプはその名前に存在してはなりません (MUST NOT)。

これは、[RFC1034]で与えられた元のCNAME定義への変更です。CNAMEレコードの元の定義では、他のタイプがCNAMEレコードと共存することを許可していませんでしたが、署名済みゾーンではすべての権威名に対してNSECおよびRRSIG RRが必要です。

2.6. DNSSEC RR Types Appearing at Zone Cuts (ゾーンカットに現れるDNSSEC RRタイプ)

DNSSECは、ゾーンカットの親側に現れることができるという点で異例な2つの新しいRRタイプを導入しました。ゾーンカットの親側(つまり、委任ポイント)では、所有者名でNSEC RRが必要です (REQUIRED)。委任されるゾーンが署名されており、親ゾーンへの認証チェーンを持つことを求める場合、DS RRも存在する可能性があります。

この仕様は、ゾーンカットの親側でNSECおよびDS RRタイプを許可するように元のDNS仕様を更新します。これらのRRsetは、ゾーンカットの親側に現れる場合、親に対して権威があります。

2.7. Example of a Secure Zone (セキュアゾーンの例)

付録Aは、小さな署名済みゾーンの完全な例を示しています。