可以通过简单地在被压缩的页面中添加一种“盐”来阻止 BREACH 吗?
信息安全
开发
已知漏洞
压缩
2021-09-13 08:44:25
2个回答
如果您始终拥有相同数量的随机数据,则攻击可能仍会以相同的方式进行。如果您改为添加随机数量的随机数据,则原始攻击可能不再起作用,但我认为可以通过简单地一次又一次地尝试来修改它,希望经常添加相同数量的随机数据。这意味着它只会减慢攻击速度,具体速度取决于您添加的随机数据量。例如,如果您在文件顶部添加 1 到 10 个随机字符,它可能只会使攻击减慢 10 倍。如果添加 1..100 个字符,则减慢速度将是 100 倍。
更好的方法是创建一些随机值并修改 CSRF 令牌,以便它将由这个随机值和一个 XOR 或这个值与原始 CSRF 令牌组成。这样,CSRF 令牌将在 HTML 中一直更改,因此 BREACH 将不再起作用。并且应用程序可以轻松取回原始 CSRF 令牌。
在 GZipping 之前将随机数量的随机字符添加到请求正文中
这将减缓攻击,但不能阻止它。
BREACH(以及一般的压缩预言机)背后的想法是,如果攻击者正确猜测秘密令牌的下一个字节,明文(以及密文)将略短。如果明文长度存在一些随机性,攻击者可以多次做出相同的猜测并“平均”结果。平均而言,使用正确猜测提出的请求会稍微短一些。
(真正的攻击者会使用更复杂的统计技术来减少所需的请求数量,但你明白了。)