0

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

4

1 回答 1

1

当状态为getdns.RESPSTATUS_NO_NAME时,replies_tree包含带有空"answer"部分的回复并返回代码 NXDOMAIN。IEresult.replies_tree[0]['header']['rcode']==getdns.RCODE_NXDOMAIN

使用 dnssec 扩展时,这些回复将包含该"authority"部分中不存在的证明(当安全时),并且包含一个dnssec_status与包含答案的回复一样。

当状态不安全并且使用了dnssec_return_validation_chain扩展时,result.validation_chain将包含在查询域的祖先之一中不存在安全委托的证明。

于 2016-02-11T10:59:09.243 回答