如何使用DNSKEY对应的DS验证DNSKEY

如何使用DNSKEY对应的DS验证DNSKEY,dns,Dns,名称服务器上的DNSKEY可以通过使用存储在其父名称服务器上的DNSKEY DS进行验证。根据RFC4034: DS记录通过包含该记录的摘要来引用DNSKEY RR 德内斯基 摘要是通过连接 具有DNSKEY RDATA的DNSKEY RR的完全限定所有者名称, 然后应用摘要算法 digest = digest_algorithm( DNSKEY owner name | DNSKEY RDATA); "|" denotes concatenation DNSKEY RDATA =

名称服务器上的DNSKEY可以通过使用存储在其父名称服务器上的DNSKEY DS进行验证。根据RFC4034: DS记录通过包含该记录的摘要来引用DNSKEY RR 德内斯基

摘要是通过连接 具有DNSKEY RDATA的DNSKEY RR的完全限定所有者名称, 然后应用摘要算法

 digest = digest_algorithm( DNSKEY owner name | DNSKEY RDATA);

  "|" denotes concatenation

 DNSKEY RDATA = Flags | Protocol | Algorithm | Public Key.
以下示例显示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 )
有人能告诉我如何基于DNSKEY生成DS吗?我的具体问题是如何连接和生成“DNSKEY RDATA”?
提前感谢。

根据此信息:

实际上,摘要是通过以下字段计算的:, 连接:

DNSKEY所有者名称:se。(0x 02736500) 标志:257(0x0101) 议定书:3 (0x03)算法:5(0x05)公钥:Aw

以十六进制表示的前四个字段如下:02736500 0101 03 05

我的问题是如何计算DNSKEY域名的值(在本例中为se.)。我不知道的概念是“有线格式”。幸运的是,英国Nominet的罗伊·阿伦兹(Roy Arends)向我清楚地解释了这是什么:

“wireformat”中的域名是一组标签,其中每个标签前面都有一个长度值,并以空标签(值0x00)结尾

对于“se”,导线格式为:02(长度为“se”),然后是73 65(ascii值的十六进制表示形式为“s”和“e”),然后是空标签(值00):0x 02 73 65 00

对于root(“.”)而言,该值仅为00,因此为0x00

“dnssec工具”的长度为12个字符,因此长度值为:0c dnssec工具的十六进制ascii表示法:64 6e 73 65 63 2d 74 6f 6f 6c 73“组织”的长度为3个字符,因此长度值为:03 然后用十六进制表示org:6f 72 67,后跟 空标签:00

总而言之:“dnssec tools.org.”是 0x0c646e737365632d746f6f6c73036f726700

谢谢阿吉安·罗伊