HTTPS/SSL 如何能够隐藏一个正在连接的目标网站?

信息安全 tls http
2021-08-15 19:28:57

我了解它如何能够通过握手创建安全连接,但它如何能够在不首先发送未加密请求的情况下启动安全连接,从而显示目标网站(但不是从/到目标发送或接收的数据...)对潜在的“中间人”攻击者...?还是没有隐藏它?

3个回答

不要将安全与隐私混淆。

SSL/TLS 的任务是安全,而不是隐私。这意味着数据本身是加密的,但元数据,如源和目标 IP、主机名(所有现代浏览器都使用 SNI)、有效负载大小和时间等不是。所有这些都可以用来制作您的浏览配置文件,其中包括您访问的网站,有时甚至包括您在网站上访问的页面(基于时间和有效负载大小)。但 SSL/TLS 确保非公开内容(如 cookie、表单数据等)受到保护,不会被嗅探和操纵。

如果您想要更好的隐私,您需要将 SSL/TLS 与 Tor 之类的东西结合起来,但即使这样也不能保证完全的隐私。

SSL/TLS 不会隐藏源 IP 地址和目标 IP 地址。这是不可能的(至少,对于纯粹的 ssl/tls 解决方案),因为 src/dst 地址必须对有效的 tcp 连接有效。

连接网站名称默认是隐藏的- 或者,至少在过去几年之前是隐藏的。

从那时起,有一个名为“服务器名称指示”的 TLS 扩展,它使连接的站点名称未加密,但处于握手阶段。

中间人站点是另一回事。使用 mitm,攻击者可以为客户端播放目的地,为服务器播放客户端,使用不同的密钥和不同的 ssl/ttls 会话。但这与ssl解密无关。

正如其他人所说,初始连接是不安全的,并且至少包含 IP 地址(尽管由于 SNI,服务器名称也越来越多)。目标服务器使用公钥证书进行响应,并协商 SSL/TLS 会话。

避免中间人攻击的关键是证书以及它已获得浏览器信任的证书颁发机构批准的事实。

假设您有一个黑客拦截了客户端和服务器之间的通信。客户要求与网站https://www.example.com建立安全连接(例如)。黑客可以将请求发送到真实网站并转发回响应。黑客还可以读取从服务器到客户端的第一个响应,因为那是纯文本。然而,它无法读取从客户端到服务器的下一条消息,因为它是用网站的公钥加密的,因此只能用私钥(黑客没有)解密。由于这些后续消息用于协商用于实际 SSL/TLS 连接的密钥,因此黑客在第一条消息之后基本上被锁定。

或者,与直接中继不同,黑客可以为客户端-黑客连接提供一个假证书(它确实知道私钥),然后它可以建立自己的黑客-服务器连接并在客户端之间传递消息。二。但是在这种情况下,除非他们设法破坏客户端浏览器自动接受的主要证书颁发者之一,否则会有一个红色的大挂锁表示黑客发送回客户端的证书是 1) 不是真实的或 2 ) 不适用于本网站。

大多数 MITM 攻击依赖于在标准 http 上保持连接。例如,您访问 www.mybank.com(因此浏览器默认尝试 http://,因为您没有指定协议)。银行通常会将您重定向到https://www.mybank.com,但黑客会拦截该重定向并将您的客户端-黑客连接保持在 http 上,但会设置从黑客到服务器的正确 https 连接。在这种情况下,黑客希望用户不会注意到没有绿色挂锁并且他们没有切换到 https。如果用户直接访问 https,黑客就很不走运了。