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

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は、小さな署名済みゾーンの完全な例を示しています。