SSL也encryptionDNS地址吗?

如果我发出HTTP请求:

https://hello.domain.com

连接还会encryption名地址( hello.domain.com )? 因此,嗅探stream量仍然无法猜测所请求的DNS地址是什么。

注意:我正在谈论DNS地址,而不是parsing的IP地址。

没有。

为了使浏览器确定某个主机的IP地址,例如example.com ,它必须在DNS中查看,并且单独的连接没有被encryption。

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

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

不,IP地址不会被encryption。

我打算写一个使用邮局/信封版本的简单示例,但只是为DNS / HTTPS实现,这变得更加混乱。

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

在下面的图片中,使用你的例子,只有上层消息将被encryption。 所有其他层都是未encryption的。

数据报图像

SSL / TLS在握手期间传输未encryption的主机名(不是URL)。 URL( https://domainname.com/bla bla bla …)被encryption。

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

如果你想完全encryption,你应该考虑使用适当的DNS设置的VPN隧道。 这至less可以保护你免受本地networking中的嗅探器的攻击。

一个http请求看起来像这样:

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

为了发送请求,浏览器必须首先parsing一个域名(在这种情况下,它必须得到www.domain.com的IP地址),连接到IP地址并发送请求。 如果您使用的是https,那么请求的内容将被encryption,并且无法被嗅探。 查询DNS服务器不会被encryption,因此可以检测到您正在浏览的网站。 如果您使用HTTP代理或VPN浏览http网站,您的浏览器将不会发送任何dns查询,因此无法说出正在浏览什么网站或嗅探您的stream量。