SSL 是否也加密 DNS 地址?

SSL 是否也加密 DNS 地址?

如果我发出一个 HTTP 请求:

https://hello.domain.com

连接是否还会加密域地址(hello.domain.com)?这样嗅探流量仍然无法猜测所请求的 DNS 地址是什么。

注意:我说的是DNS地址,而不是解析的IP地址。

答案1

不。

为了让网络浏览器确定某个主机的 IP 地址,example.com它必须在 DNS 中查找,并且该单独的连接未加密。

因此,SSL/TLS 并不能完全防范恶意 ISP。即使攻击者无法读取实际数据,他们仍然可以确定 Web 浏览器想要访问哪个站点。

此外,当前的 TLS 实现将始终以明文形式发送服务器的完全限定域名,以支持服务器名称指示。因此恶意 ISP 甚至不需要查看您的 DNS 查询。

答案2

不,IP 地址不会被加密。

我本来打算使用邮局/信封版本编写一个简单的示例,但意识到仅对于 DNS/HTTPS 来说这变得更加令人困惑。

您可以看到http://www.tcpipguide.com/free/t_IPDatagramEncapsulation.htm了解封装。

在下面的图片中,使用您的示例,只有上层消息会被加密。所有其他层均未加密。

数据报图像

答案3

SSL/TLS 在握手过程中以未加密的方式传输主机名(而非 URL)。URL(https://域名.com/blabla bla ...)已加密。

但是嗅探器总是能够获取 IP 和端口信息。因为没有这些信息,你的数据包就无法传送。

如果您想要完全加密,您应该考虑使用具有适当 DNS 设置的 VPN 隧道。这至少可以保护您免受本地网络中嗅探器的攻击。

答案4

http 请求如下所示:

GET /index.html HTTP/1.1
Host: www.domain.com

为了发送请求,浏览器必须先解析域名(在这种情况下,它必须获取 www.domain.com 的 IP 地址),连接到该 IP 地址并发送请求。如果您使用的是 https,则请求的内容将被加密,无法嗅探。但是,对 DNS 服务器的查询不会被加密,因此可以检测到您正在浏览的网站。如果您使用 HTTP 代理或 VPN 浏览 http 网站,您的浏览器将不会发送任何 DNS 查询,因此无法知道您正在浏览的网站或嗅探您的流量。

相关内容