API getdns: как узнать, безопасен ли ответ RESPSTATUS_NO_NAME?
Я использую Python getdns API.
Я использую расширения:
extensions = {"dnssec_return_validation_chain" : getdns.EXTENSION_TRUE}
Это означает, что мне сообщают, защищены ли ответы DNSSEC с помощью dnssec_status
вариант в словаре ответов. (The results.replies_tree
это массив словарей ответов.)
На запрос не может быть ответов, если нет имени (например, results.status==getdns.RESPSTATUS_NO_NAME
).
В этом случае, как я узнаю, что RESPSTATUS_NO_NAME
ответ аутентифицирован с DNSSEC?
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
будет содержать доказательство отсутствия защищенного делегирования у одного из предков запрашиваемого домена.