在回答我之前关于 TLS 中的 RC4 漏洞的问题时,Thomas Pornin 给出了一个很好的答案,他说:
“修复” RC4 的一种方法已被多次建议,是删除前 256(或 512 或 1536 或其他)字节的输出,因为这些是其中最有偏见的(幻灯片中的图形显示相当清楚地)。但这与 RC4-as-we-know-it 不兼容
对此感到好奇并且对 HN的评论提出了一个有趣的建议,我想知道浏览器(甚至浏览器插件)是否可以填充 HTTP 请求,以便前 256 个字节(或 512 或其他)只是一些无用的标头。例如
GET / HTTP/1.1
X-Padding-Header: <256 bytes of random text>
Accept: */*
...
据我所知,未知的标头被忽略(?),这将确保请求中的第一个字节既无用(猜测它们没有价值)又是随机的。
这是一个愚蠢的解决方法,可能弊大于利吗?或者如果浏览器要修复它,他们还不如升级到 TLS 1.2?
(当然,如果 URL 本身包含敏感信息并且足够长,它将出现在请求头之前的请求中,因此这种“保护”可能对此无济于事,但可能足以保护 cookie?)