我正在使用Python getdns API。
我使用扩展名:
extensions = {"dnssec_return_validation_chain" : getdns.EXTENSION_TRUE}
这意味着我被告知响应是否使用回复字典中的dnssec_status
选项进行DNSSEC保护。(results.replies_tree
是应答字典数组)
如果没有名称(例如results.status==getdns.RESPSTATUS_NO_NAME
),查询可以无应答。
在这种情况下,我如何知道RESPSTATUS_NO_NAME
响应是否使用DNSSEC进行身份验证?
当状态为getdns.RESPSTATUS_NO_NAME
时,replies_tree 将包含一个空"answer"
部分的回复,并返回代码NXDOMAIN。即result.replies_tree[0]['header']['rcode']==getdns.RCODE_NXDOMAIN
当使用dnssec扩展时,这些回复将包含"authority"
部分不存在的证明(当安全时),并且将包含dnssec_status
,就像包含答案的回复一样。
当状态为不安全且使用dnssec_return_validation_chain
扩展名时,result.validation_chain
将包含在查询域的一个祖先中不存在安全委托的证明