HTTPS 的 Brotli 压缩

信息安全 tls http 压缩
2021-08-29 17:26:01

Chrome、Firefox 和即将推出的 Edge 似乎仅通过 HTTPS 支持新的 Brotli 压缩算法。

我找不到任何关于这种新的压缩算法是否容易受到 BREACH 攻击的信息。我发现的唯一相关的事情是在RFC 7932 第 12 节的末尾:

以下是对通过加密通道发送压缩数据的系统的可能攻击。可以反复混合任意(攻击者提供的)数据与秘密数据(密码、cookie)并观察密文长度的攻击者可能会重建秘密数据。为了防止这种攻击,应用程序不应将敏感数据与非敏感的、可能由攻击者提供的数据混合在同一个压缩流中。

从那段来看,Brotli 似乎仍然容易受到 BREACH 的影响。如果我对 BREACH(以及相关的 CRIME 攻击)的理解是正确的,那么压缩在 HTTPS 上是不安全的。

在这种情况下,将 Brotli 用于 HTTPS 内容是否安全?如果不是,那么为什么浏览器供应商支持它?

1个回答

仅通过 HTTPS 支持新的 Brotli 压缩算法。

理论上是的。实际上,Chrome 目前也将接受使用纯 HTTP 的 brotli 压缩答案,即使它没有宣布支持纯 HTTP 中的 brotli。Firefox 仅支持 HTTPS 中的答案。

如果我对 BREACH(以及相关的 CRIME 攻击)的理解是正确的,那么压缩在 HTTPS 上是不安全的。

这是一个错误的概括。BREACH 攻击仅影响包含秘密信息的动态内容,例如攻击者喜欢猜测的 CSRF 令牌。只有当攻击者能够将自己的数据反映到原始内容中时,它才有效,就像从填写的表格中反映的数据一样。攻击者还必须能够检测到压缩内容大小的变化,即使用被动嗅探连接(经典 BREACH 攻击)或通过定时(HEIST 攻击)。压缩无法反射的内容仍然是安全的,当然还有不包含攻击者喜欢猜测的秘密的内容。这尤其意味着压缩静态内容是安全的。
至于 CRIME 攻击,禁用当前浏览器已经完成的 TLS 级别压缩就足够了。CRIME 与 HTTPS 中的内容压缩无关。
另请参阅是否允许通过 TLS 压缩内容