诺基亚的 SSL 流量“机构 MITM”是否容易受到 CRIME 攻击?

信息安全 tls 代理人 中间人
2021-08-30 23:47:24

最近有消息称,一些诺基亚手机通过诺基亚代理代理所有流量,包括 SSL 连接这实际上是对那些手机用户的“机构 MITM”攻击。

诺基亚这样做显然是为了节省用户带宽显然,他们的代理压缩数据。这是一个值得称赞的目标。然而,Thomas Pornin 提出了这样的问题,即这是否会使他们容易受到CRIME 攻击这是一个令人不安的可能性。

所以,我的问题是:诺基亚的系统是否容易受到 CRIME 攻击?

(Opera Mobile 和 Kindle Fire 也代理 HTTP 流量,但不代理 SSL 连接。但是,我认为 Opera Mini 甚至代理 SSL 连接,就像诺基亚浏览器一样。)

1个回答

在诺基亚使用的系统中,诺基亚服务器运行中间人攻击(诺基亚否认,因为他们真的不喜欢“攻击”这个词,但从技术上讲,这仍然是中间人攻击)。他们的服务器即使如此简单地也能获得解密的数据。因此,如果诺基亚攻击者,那么诺基亚就赢了,不需要像 CRIME 攻击那样玩复杂的游戏。因此,在这个答案中,我假设诺基亚是一个诚实的玩家,并且他们的服务器没有被黑客入侵。问题是:外来者能否在不劫持诺基亚服务器的情况下对移动浏览器进行类似 CRIME 的攻击?这取决于几件事。

但首先,我们必须注意诺基亚的浏览器已经更新,新版本(截至 1 月 11 日)不再在 HTTPS 连接上运行 MitM。这可能是为了回应有关他们使用 MitM 的新闻,这是“糟糕的公共关系”,因此需要修复。因此,我在下面所说的一切都必须用隐含的过去时来理解:这不再适用。

另外,请注意,我没有诺基亚手机,我在这里根据“网络上”的描述进行推断,特别是 Gaurang K Pandya 的博客。

1. 拦截是如何进行的?

在对 Web 流量进行系统代理时,有几种方法可以做到这一点。一种方法是在浏览器和代理之间定义您自己的协议,这可能与通常的 Web 标准(HTTP 和 HTML)完全不同。这就是Opera Mini所做的:页面渲染在 Opera 服务器上完成,然后将结果发送到浏览器。

显然,诺基亚的浏览器不是这样工作的。相反,使用 Wireshark 获得的网络跟踪表明,浏览器和诺基亚服务器之间的连接是完全正常的SSL/TLS握手。此外,代理会生成由代理控制的特殊 CA 颁发的虚假服务器证书。代理甚至为构建假证书而烦恼,这意味着浏览器将验证该证书,就好像它是一个普通证书一样对 DNS 查询的分析表明,浏览器不会尝试获取目标服务器的 IP 地址,而只是尝试获取诺基亚服务器的 IP 地址,浏览器知道其真实名称。这强烈暗示了以下设置:

  • 该浏览器是“普通浏览器”,并没有实现特殊的专有协议。
  • 浏览器被配置为使用诺基亚的服务器作为通用代理(使用RFC 2817的第 5.2 和 5.3 节CONNECT中描述的方法)。
  • 在浏览器已知的一组“信任锚”中,用来验证服务器证书的,是诺基亚控制的“特殊 CA”。

这种设置从经济上讲是有意义的,因为它允许重用现有的协议和软件;而且,在很大程度上,它允许在服务器上切换回非拦截状态,而无需更改客户端上的任何内容。(诺基亚实际上推动了升级有点奇怪;显然,他们现在使用尚未指定的协议通过 HTTP 隧道传输 SSL;这值得进一步调查。)

2. 什么样的压缩?

假设浏览器是“普通浏览器”,那么压缩的使用遵循标准方案是有意义的。有两种标准方法可以对 HTTPS 流量应用压缩:

  1. HTTP 级别的压缩请求和响应的主体可以使用一些算法进行压缩,通常是“deflate”和“gzip”(后者是前者的一个非常轻量级的包装器,它们提供几乎相同的压缩率——参见RFC 1951RFC 1952)。

  2. SSL 级别的压缩这适用于通过隧道发送的每个应用字节;特别是在 HTTPS 的情况下,它涵盖了请求标头和正文。再次使用“放气”。

SSL 级别的压缩更易于实现(因为您不必为此解析 HTTP 标头,您只需压缩字节 - 并且通常的SSL 已经支持它开箱即用)并且可能会产生一个更好的压缩比(因为,与 HTTP 级压缩相反,它可以利用连续标头和正文之间的重复序列),我认为诺基亚使用 SSL 级压缩是合理的。

任何使用诺基亚手机(即不是我)(而不是最近几天升级过的手机)的人都可以验证它。SSL 级别的压缩在握手的初始步骤中被激活,因此查看来自服务器的消息就足够了ServerHello:此时还没有加密。Wireshark 可以做到这一点。

当然,纯 SSL 级别的压缩正是CRIME 攻击需要的。

因此,我的初步结论是,诺基亚 MitM/压缩系统使浏览器容易受到 CRIME 攻击是合理的(实际上,直到两天前他们改变了系统)

3.攻击真的可以执行吗?

CRIME 攻击依赖于攻击者在客户端加载的页面中插入一些恶意 Javascript观察从受害者浏览器出现并指向目标服务器的数据流的能力。这通常意味着攻击者必须靠近受害者或靠近目标服务器。在我们的例子中,SSL-with-compression 是在手机和诺基亚的服务器之间进行的,我们假设诺基亚的本地网络是诚实和干净的。因此,攻击者必须在受害者附近行动。

Gaurang K Pandya 使用 WiFi:他的手机就像一台基本的笔记本电脑或平板电脑。许多智能手机用户尽可能使用 WiFi,因为它更便宜(WiFi 使用不计入每月 3G 配额)、速度更快,而且手机电池可能更轻。因此,许多智能手机可以配置为寻找开放的 WiFi 网络和/或已知凭证的 WiFi 网络,并仅将 3G 网络用作备用网络。

众所周知,WiFi 容易受到 CRIME 所基于的重定向技巧的影响。这在这里特别容易:攻击者只运行一个开放的 WiFi 热点。附近的手机会将该热点视为具有非常清晰的信号,并将连接到该热点。如果所有数据包都通过攻击者的热点,就很容易拦截 HTTP 页面加载,插入恶意 Javascript 有效负载,然后运行 ​​CRIME。结束游戏。

如果智能手机使用 3G,事情就会变得更加困难。可以使用各种技巧(例如,使用 HTML 电子邮件或类似的东西)来设想 Javascript 有效负载插入。不过,关于观察 SSL 加密流的部分更难。3G 连接是加密的,通常使用KASUMI分组密码。重要的一点是,CRIME 完全与加密数据的长度有关。不一定要查看SSL 记录;攻击者只需要知道这些记录的长度记录将使用 KASUMI 加密的事实并没有隐藏它们的长度(特别是因为在 UMTS 中​​,KASUMI 用于计数器模式这意味着它保留了加密数据的长度,具有位级精度)。更棘手的是帧粒度:无线电网络将数据分成单独的原子帧,这隐藏了攻击者需要的部分长度信息。但是,它可以通过定相修复:攻击者改变他的隐藏请求的长度,以便压缩处于一个阈值(即,压缩成功,意味着猜测多了一个 cookie 字节,意味着 SSL 记录使用了更少的帧)。微调可能是一个微妙的问题。

此外,3G 拦截意味着使用扫描仪并识别噪声中的目标智能手机数据包。电话跳频非常频繁,跟随一部特定的电话需要知道它接下来会跳到哪里,并且该信息是加密的。我对 3G 的了解还不够,不知道在 CRIME 攻击的情况下这是否可以克服。

4。结论

诺基亚的“机构中间人”是否容易受到犯罪的影响?大概

他们最近的升级解决了这个问题吗?大概

Opera Mini 也容易受到攻击吗?可能不是因为它是卸载渲染,这意味着 Javascript 不是在浏览器本身上运行,而是在服务器上运行。但是 CRIME 变体可能仍然适用。