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 будет содержать доказательство отсутствия защищенного делегирования у одного из предков запрашиваемого домена.

Другие вопросы по тегам