Skip to main content

5. DS资源记录 (The DS Resource Record)

DS资源记录引用DNSKEY RR,并在DNS DNSKEY认证过程中使用。DS RR通过存储key tag、算法编号和DNSKEY RR的摘要来引用DNSKEY RR。请注意,虽然摘要应足以标识公钥,但存储key tag和密钥算法有助于提高标识过程的效率。通过认证DS记录,解析器可以认证DS记录指向的DNSKEY RR。密钥认证过程在[RFC4035]中描述。

DS RR及其相应的DNSKEY RR具有相同的所有者名称,但它们存储在不同的位置。DS RR仅出现在委托的上方 (父方),并且是父区域中的权威数据。例如,"example.com"的DS RR存储在"com"区域 (父区域) 中,而不是存储在"example.com"区域 (子区域) 中。相应的DNSKEY RR存储在"example.com"区域 (子区域) 中。这简化了DNS区域管理和区域签名,但为DS RR引入了特殊的响应处理要求; 这些在[RFC4035]中描述。

DS记录的type编号为 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的完全限定所有者名称的规范形式与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跨区域边界链接认证链,因此DS RR在处理时需要额外注意。DS RR中引用的DNSKEY RR 必须 (MUST) 是DNSSEC区域密钥。DNSKEY RR Flags 必须 (MUST) 设置了Flags位7。如果DNSKEY标志未指示DNSSEC区域密钥,则DS RR (及其引用的DNSKEY RR) 禁止 (MUST NOT) 在验证过程中使用。

5.3. DS RR展示格式 (The DS RR Presentation Format)

RDATA部分的展示格式如下:

Key Tag字段必须 (MUST) 表示为无符号十进制整数。

Algorithm字段必须 (MUST) 表示为无符号十进制整数或附录A.1中指定的算法助记符。

Digest Type字段必须 (MUST) 表示为无符号十进制整数。

Digest 必须 (MUST) 表示为不区分大小写的十六进制数字序列。十六进制文本中允许空白。

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 )

前四个文本字段指定名称、TTL、类和RR类型 (DS)。值60485是相应的"dskey.example.com."DNSKEY RR的key tag,值5表示此"dskey.example.com."DNSKEY RR使用的算法。值1是用于构造摘要的算法,其余的RDATA文本是十六进制的摘要。


相关章节导航: