我们都知道HTTPS加密了电脑和服务器之间的连接,第三方无法查看。但是,ISP或第三方能看到用户访问的页面的具体链接吗?
例如,我访问
https://www.website.com/data/abc.html
ISP 会知道我访问了 */data/abc.html 还是只知道我访问了 www.website.com 的 IP?
如果他们知道,那么为什么维基百科和谷歌要使用 HTTPS,而有人只需阅读互联网日志就能找出用户查看的确切内容?
答案1
从左到右:
这架构 https:
显然是由浏览器解释的。
这域名 www.website.com
使用 DNS 解析为 IP 地址。您的 ISP等着瞧该域的 DNS 请求和响应。
这小路 /data/abc.html
在 HTTP 请求中发送。如果您使用 HTTPS,则将被加密以及其余的 HTTP 请求和响应。
这请求参数 ?this=that
如果 URL 中存在 ,则会在 HTTP 请求中与路径一起发送。因此它也经过加密。
这分段 #there
如果存在,则不会发送到任何地方——它由浏览器解释(有时由返回页面上的 JavaScript 解释)。
答案2
ISP 只会知道您访问了与之关联的 IP 地址www.website.com
(如果您使用他们的 DNS,也许知道 URL,并且他们正在专门寻找流量 - 如果 DNS 查询没有通过,他们就不会看到)。
(请稍等片刻——我会找到答案的。)
HTTP 协议的工作方式是连接到一个端口(通常是端口 80),然后 Web 浏览器将它想要的页面传达给服务器——一个简单的查找请求http://www.sitename.com/url/of/site.html
将包含以下几行:
获取 /url/of/site.html HTTP/1.1 主机:www.sitename.com
HTTPS 的功能完全相同,只是端口号为 443 –和它将整个 TCP 会话(即,您在上面引用的位中看到的所有内容以及响应)包装到 SSL 加密会话中 - 因此 ISP 看不到任何流量(但他们可能能够根据网站的大小推断出一些东西,并且 DNS 查找www.sitename.com
首先解析为 IP 地址)。
当然,如果页面中嵌入了“网络臭虫”,这可以给信息分发者的“合作伙伴”提供线索,让他们知道你正在查看什么以及你是谁——同样,如果你的信任链被破坏,ISP 可以进行中间人攻击。理论上,你可以拥有私人端到端加密,是因为浏览器附带了 CA 证书。如果 ISP 或政府可以添加 CA 证书或破坏 CA——这两种情况都发生过——你就会失去安全性。我相信中国防火墙可以有效地进行中间人攻击来读取 HTTPS 数据,但我已经有一段时间没去过那里了。
你可以自己轻松地测试一下,只需获取一个可以嗅探进出你计算机的流量的软件即可。我相信一款名为 Wireshark 的免费软件可以帮你做到这一点。