区域文件是否应仅包含 KSK 的 DNSKEY 记录,还是也应包含 ZSK 的 DNSKEY 记录?
答案1
全部。
因为父节点有一个DS
记录,概括而言,就是 KSK 的哈希值。因此,在遵循信任链时,递归解析将从DS
父节点获取该记录,并从子节点获取该DNSKEY
记录,并检查记录中至少有一个密钥与记录DNSKEY
匹配DS
,然后继续验证(否则立即失败)。
根据 RFC4034 的 §2.1.1.,每条DNSKEY
记录都有一个标志属性,可以让解析器知道给定的加密材料是用于区域密钥还是密钥签名密钥。
请注意,KSK/ZSK 拆分很常见,但并非唯一情况。您还遇到 CSK 情况,即 C=Common,即您拥有单个密钥,该密钥既可直接签署所有其他记录,又可DS
在父级处拥有匹配的记录。
两者都是有效的设置,各有优缺点。
还要注意,DNSKEY
记录集甚至可以包含尚未用于签名的密钥,也不位于DS
记录的父级,例如在轮换期间会发生这种情况(您首先需要在区域中引入密钥并让解析器缓存它,然后过一段时间您就可以开始使用它进行签名,然后过一段时间,DS
如果需要,您可以启用相关记录)。