5. DS リソースレコード (The DS Resource Record)
DS リソースレコードは DNSKEY RR を参照し、DNS DNSKEY 認証プロセスで使用されます。DS RR は、Key Tag、アルゴリズム番号、および DNSKEY RR のダイジェスト (digest) を格納することで DNSKEY RR を参照します。ダイジェストは公開鍵を識別するのに十分であるべきですが、Key Tag と鍵アルゴリズムを格納することで、識別プロセスをより効率的にすることができます。DS レコードを認証することで、リゾルバは DS レコードが指す DNSKEY RR を認証できます。鍵認証プロセスは [RFC4035] に記述されています。
DS RR とそれに対応する DNSKEY RR は同じ所有者名を持ちますが、異なる場所に格納されます。DS RR は委任の上側 (親側) にのみ現れ、親ゾーンの権威データです。例えば、"example.com" の DS RR は、"example.com" ゾーン (子ゾーン) ではなく、"com" ゾーン (親ゾーン) に格納されます。対応する DNSKEY RR は "example.com" ゾーン (子ゾーン) に格納されます。これにより DNS ゾーン管理とゾーン署名が簡素化されますが、DS RR の特別な応答処理要件が導入されます。これらは [RFC4035] に記述されています。
DS レコードのタイプ番号は 43 です。
DS リソースレコードはクラス独立です。
DS RR には特別な TTL 要件はありません。
5.1. DS RDATA ワイヤ形式 (DS RDATA Wire Format)
DS RR の RDATA は、2オクテットの Key Tag フィールド、1オクテットの Algorithm フィールド、1オクテットの Digest Type フィールド、および Digest フィールドで構成されます。
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Key Tag | Algorithm | Digest Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
/ Digest /
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5.1.1. Key Tag フィールド (The Key Tag Field)
Key Tag フィールドは、DS レコードが参照する DNSKEY RR の Key Tag を、ネットワークバイト順序でリストします。
DS RR が使用する Key Tag は、RRSIG RR が使用する Key Tag と同一です。付録 B は Key Tag の計算方法を説明しています。
5.1.2. Algorithm フィールド (The Algorithm Field)
Algorithm フィールドは、DS レコードが参照する DNSKEY RR のアルゴリズム番号をリストします。
DS RR が使用するアルゴリズム番号は、RRSIG と DNSKEY RR が使用するアルゴリズム番号と同一です。付録 A.1 はアルゴリズム番号タイプをリストしています。
5.1.3. Digest Type フィールド (The Digest Type Field)
DS RR は、その DNSKEY RR のダイジェストを含めることで DNSKEY RR を参照します。Digest Type フィールドは、ダイジェストを構築するために使用されるアルゴリズムを識別します。付録 A.2 は可能なダイジェストアルゴリズムタイプをリストしています。
5.1.4. Digest フィールド (The Digest Field)
DS レコードは、その DNSKEY RR のダイジェストを含めることで DNSKEY RR を参照します。
ダイジェストは、DNSKEY RR の完全修飾所有者名 (fully qualified owner name) の正規形式 (canonical form) と DNSKEY RDATA を連結し、次にダイジェストアルゴリズムを適用することで計算されます。
digest = digest_algorithm( DNSKEY owner name | DNSKEY RDATA);
"|" は連結を示します
DNSKEY RDATA = Flags | Protocol | Algorithm | Public Key.
ダイジェストのサイズは、ダイジェストアルゴリズムと DNSKEY RR のサイズによって異なる場合があります。この文書の執筆時点では、定義されている唯一のダイジェストアルゴリズムは SHA-1 であり、20オクテットのダイジェストを生成します。
5.2. 応答を検証する際の DS RR の処理 (Processing of DS RRs When Validating Responses)
DS RR は、ゾーン境界を越えて認証チェーン (authentication chain) をリンクするため、DS RR の処理には特別な注意が必要です。DS RR で参照される DNSKEY RR は、DNSSEC ゾーン鍵でなければなりません (MUST)。DNSKEY RR の Flags は、Flags ビット7を設定しなければなりません (MUST)。DNSKEY フラグが DNSSEC ゾーン鍵を示していない場合、DS RR (およびそれが参照する DNSKEY RR) は検証プロセスで使用してはなりません (MUST NOT)。
5.3. DS RR 表示形式 (The DS RR Presentation Format)
RDATA 部分の表示形式は以下の通りです。
Key Tag フィールドは符号なし10進整数として表現されなければなりません (MUST)。
Algorithm フィールドは、符号なし10進整数として、または付録 A.1 で指定されているアルゴリズムニーモニックとして表現されなければなりません (MUST)。
Digest Type フィールドは符号なし10進整数として表現されなければなりません (MUST)。
Digest は、大文字小文字を区別しない16進数のシーケンスとして表現されなければなりません (MUST)。16進テキスト内に空白を含めることができます。
5.4. DS RR の例 (DS RR Example)
以下の例は、DNSKEY RR とそれに対応する DS RR を示しています。
dskey.example.com. 86400 IN DNSKEY 256 3 5 ( AQOeiiR0GOMYkDshWoSKz9Xz
fwJr1AYtsmx3TGkJaNXVbfi/
2pHm822aJ5iI9BMzNXxeYCmZ
DRD99WYwYqUSdjMmmAphXdvx
egXd/M5+X7OrzKBaMbCVdFLU
Uh6DhweJBjEVv5f2wwjM9Xzc
nOf+EPbtG9DMBmADjFDc2w/r
ljwvFw==
) ; key id = 60485
dskey.example.com. 86400 IN DS 60485 5 1 ( 2BB183AF5F22588179A53B0A
98631FAD1A292118 )
最初の4つのテキストフィールドは、名前、TTL、クラス、および RR タイプ (DS) を指定します。値 60485 は対応する "dskey.example.com." DNSKEY RR の Key Tag であり、値 5 はこの "dskey.example.com." DNSKEY RR が使用するアルゴリズムを示します。値 1 はダイジェストを構築するために使用されるアルゴリズムであり、RDATA テキストの残りは16進数のダイジェストです。
関連章へのナビゲーション: