DNS 名称数据库是如何构建的?

DNS 名称数据库是如何构建的?

一些在线安全检查工具具有与 IP 相关联的 DNS 名称数据库。

例如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

这没有使用 DNS,而是显示备用名称(主题备用名称 [存储区域网络]),这些都是该证书有效的名称。

大量名称的用途之一是支持不支持服务器名称指示的客户端[信噪比],因为必须在发送标头之前提供证书,所以服务器将发送包含所有名称的证书,因此无论请求哪个域,证书都是有效的。

有了 SNI 就不再需要这样做了,因为客户端在发送证书之前以纯文本形式发送主机名,因此服务器知道要发送哪个证书,但有些客户端尚不支持 SNI,因此大量备用名称很常见。

您不需要保留数据库,您只需连接、获取证书并查看证书上的 SAN 列表,尽管缓存这些信息可能是明智的,因为某些网站可能会被大量查询,例如 Google。

更多信息

相关内容