由于CRIME,据我所知,必须closuresSSL连接上的压缩。 在较新版本的Apache中,这可以通过新引入的SSLCompression off来完成,在旧版本中这是不可能的(在版本2.2.16-6 + squeeze10之前的Debian中)。
我想我已经find了一个在老版本中实现这一点的方法,但是我不确定为什么在一些在线testing中,像Qualsys SSLtesting那样表示压缩依然存在。 我的testing显示了不同的东西。 任何人都可以请查看configuration代码,并告诉我,我不明白的权利?
在SSL虚拟主机模块中使用mod_headers中的以下指令来closures压缩:
RequestHeader unset Accept-Encoding Header unset Vary
这将从客户端请求中删除标题行,指示响应可能会被压缩发送到客户端。
用curl和–raw开关testing这个,我发现非ssl连接是压缩的,ssl连接是明文的。 使用…
curl --raw -k -H 'Accept-Encoding: gzip,deflate' http://host.example.tld
…去检查。
一些在线testing工具仍然告诉我,我的解决scheme不起作用,而其他人则说相反。 现在我想知道我的解决schemeclosures压缩SSL连接工作与否?
首先, CRIME只适用于你的网站使用所有这三个:
它仅用于劫持活动会话,并且在您的服务器不需要会话IP匹配时最为有用。 虽然许多网站都使用这种组合,但并不像许多人想象的那么普遍。 此外,一些统计数据表明,互联网上<7%的浏览器实际上支持使CRIME成为可能的压缩。
什么不起作用:
Vary字段只是告诉上游代理是否允许cachingdynamic页面。 虽然考虑caching策略是很重要的,但并不是针对这个特定的漏洞。
取消Accept-Encoding字段只会影响mod_deflate或mod_gzip; 它不会影响SSL / TLS的压缩。 所以你的方法是行不通的。
什么工作:
有两个选项可以保护你的服务器。 您可以在SSL / TLS库中禁用压缩支持,方法是在不压缩的情况下对其进行重新编译; 或者您可以修补您的服务器以支持SSLCompression指令。 Apache 2.4.x本地支持这个指令。 Apache 2.2.22可以相对容易地打补丁 。
现在各种操作系统发行版本都是反向移植补丁,请向您的发行版提供商了解详细信息(大多数Linux发行版使用古老版本的Apache,他们已经编写了安全补丁的自定义后端)。如果你使用他们认可的软件包,你的Distro的怜悯)。
你有多肯定 :
SSL Labs提供了一个非常容易使用的SSL“问题”扫描器 。 它会检测你的服务器是否存在犯罪行为。 您可以半忽略BEAST警告,因为所有现代浏览器已经解决了客户端问题。 这取决于你的具体情况。