4. DS 资源记录
DS(Delegation Signer,授权签名者)资源记录(RR)引用一张用于 DNSSEC 的 DNSKEY RR。DS RR 用于安全地将子区域(child zone)的信任锚传递给父区域(parent zone)。DS RR 驻留在父区域的节点处,该节点的名称与子区域的名称相同。
DS RR 的 RDATA 格式如下:
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 (取决于摘要类型,长度可变) /
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
DS RR 的 RDATA 按如下方式表示和编码:
- 密钥标记(KEY TAG)是一个无符号的 16 位整数,按网络字节序排列,标识被引用的 DNSKEY RR。
- 算法(ALGORITHM)是一个无符号的 8 位整数,标识被引用的 DNSKEY RR 的算法。
- 摘要类型(DIGEST TYPE)是一个无符号的 8 位整数,标识用于计算摘要的加密哈希算法。
- 摘要(DIGEST)是一个长度可变的字节串,包含对被引用 DNSKEY RR 的哈希值,如第 4.1 节所述。
4.1. DS RDATA 中的摘要字段
Digest 字段的内容是对子区域中相应 DNSKEY RR 的 RDATA 使用 DIGEST TYPE 字段指定的哈希算法计算出的哈希值。
计算 DS 记录摘要所使用的 DNSKEY RDATA 是 DNSKEY RR 的 RDATA,采用资源记录的规范形式(见第 6 节),包括标志、协议、算法和公钥字段,但不包含 DNSKEY RR 的 TTL、类(class)或所有者名称。
如果 DIGEST TYPE 为 1(SHA-1),则对 DNSKEY RDATA 的规范形式使用 SHA-1 哈希算法 [FIPS180-1] 计算摘要。Sha-1 是撰写本文档时定义的唯一摘要类型。
4.2. DS RDATA 中的密钥标记字段
KEY TAG 字段是一个无符号的 16 位整数,按网络字节序排列,标识子区域中相应的 DNSKEY RR。它 MUST 等于被引用 DNSKEY RR 的密钥标记(使用附录 B 中的算法计算)。
4.3. DS RDATA 中的算法字段
ALGORITHM 字段是一个无符号的 8 位整数,标识被引用 DNSKEY RR 的算法。它 MUST 等于相应的 DNSKEY RR 中的 ALGORITHM 字段。
4.4. DS RDATA 中的摘要类型字段
DIGEST TYPE 字段是一个无符号的 8 位整数,标识用于计算 DIGEST 字段的哈希算法。当前定义的唯一值是 1(SHA-1)。
4.5. DS 表示格式
DS RR 的表示格式(presentation format)如下:
- 密钥标记以十进制整数表示。
- 算法以十进制整数表示。
- 摘要类型以十进制整数表示。
- 摘要以十六进制表示的字节串表示,不含空格(与 Base64 相对)。
例如:
example.com. 3600 IN DS 60485 5 1 (
2BB183AF5F22588179A53B0A98631FAD1A292118 )
4.6. 对于 DS RR 的特殊注意事项
DS 记录建立从父区域到子区域的信任链(chain of trust)。验证器 MUST 在父区域中找到一条与子区域 DNSKEY 匹配(通过密钥标记、算法和摘要)的 DS 记录,才能将该子区域视为已认证(authenticated)。
如果子区域已签名但父区域中不存在相应的 DS 记录,则该子区域 MUST NOT 被视为已验证。
相关章节导航:
- 上一节:3. RRSIG 资源记录
- 下一节:5. NSEC 资源记录