getdns API:我如何知道RESPSTATUS_NO_NAME响应是否安全?

时间:2015-10-26 22:24:45

标签: dnssec getdnsapi

我正在使用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验证?

1 个答案:

答案 0 :(得分:1)

当状态为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将包含在查询域的祖先之一中不存在安全委派的证据。