2

Некоторые онлайн-инструменты проверки безопасности имеют базу данных имен DNS, связанных с IP.

Например, на https://www.ssllabs.com, когда я запрашиваю stackoverflow.com (151.101.129.69), результат содержит:

Альтернативные имена: *.stackexchange.com stackoverflow.com *.stackoverflow.com stackauth.com sstatic.net *.sstatic.net serverfault.com *.serverfault.com superuser.com *.superuser.com stackapps.com openid.stackauth.com stackexchange.com *.meta.stackexchange.com meta.stackexchange.com mathoverflow.net *.mathoverflow.net askubuntu.com *.askubuntu.com stacksnippets.net *.blogoverflow.com blogoverflow.com *.meta.stackoverflow.com *.stackoverflow.email stackoverflow.email

см .: https://www.ssllabs.com/ssltest/analyze.html?d=stackoverflow.com&s=151.101.129.69&hideResults=on

Насколько я понимаю, как работает DNS, невозможно запросить все имена, связанные с IP-адресом, если домен заблокирован для передачи:

$ dig stackoverflow.com any
[..]
;stackoverflow.com.     IN  ANY

;; ANSWER SECTION:
stackoverflow.com.  1800    IN  A   151.101.193.69
stackoverflow.com.  1800    IN  A   151.101.129.69
stackoverflow.com.  1800    IN  A   151.101.65.69
stackoverflow.com.  1800    IN  A   151.101.1.69
stackoverflow.com.  9900    IN  SOA ns-cloud-e1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300
[..]

И обратный поиск по IP-адресу вернет только одну запись (или ни одной):

$ host 151.101.129.69
Host 69.129.101.151.in-addr.arpa. not found: 3(NXDOMAIN)

Итак, мой вопрос, как можно построить базу данных, которая содержит «альтернативные имена» IP-адреса?

1 ответ1

3

Он не использует DNS, он показывает альтернативные имена (Subject Alternative Name [ SAN ]) в сертификате, это все имена, для которых этот сертификат также действителен.

Одним из способов использования большого количества имен является поддержка клиентов, которые не поддерживают указание имени сервера [ SNI ], поскольку сертификат должен быть выдан до отправки заголовков, чтобы сервер отправил сертификат со всеми именами. это может быть, поэтому сертификат будет действительным независимо от того, какой домен был запрошен.

При использовании SNI это больше не требуется, так как клиент отправляет имя хоста в виде открытого текста перед отправкой сертификата, поэтому сервер знает, какой сертификат отправить, но некоторые клиенты еще не поддерживают SNI, поэтому часто встречается большое количество альтернативных имен.

Вам не нужно хранить базу данных, вы можете просто подключиться, получить сертификат и просмотреть список SAN в сертификате, хотя кэширование этой информации может быть целесообразным, поскольку некоторые сайты могут запрашивать много, например, Google.

Больше информации

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .