我正在考虑为我管理的网站打开站点范围的 SSL,我想知道 SSL 配置的最佳实践是什么。我不太担心与旧浏览器和更晦涩的移动设备的兼容性,所以我想减少支持的密码套件列表。
我试图避免的主要问题是犯罪和野兽。第一个很容易通过禁用压缩来缓解,但第二个对我来说不是很清楚。我理解它的方式是,BEAST 是针对 CBC 模式的攻击,而不是特定的密码,但它通常是针对 AES 的。因此,AES-GCM 会是用于 SSL 的一个不错的密码选择吗?
我正在考虑为我管理的网站打开站点范围的 SSL,我想知道 SSL 配置的最佳实践是什么。我不太担心与旧浏览器和更晦涩的移动设备的兼容性,所以我想减少支持的密码套件列表。
我试图避免的主要问题是犯罪和野兽。第一个很容易通过禁用压缩来缓解,但第二个对我来说不是很清楚。我理解它的方式是,BEAST 是针对 CBC 模式的攻击,而不是特定的密码,但它通常是针对 AES 的。因此,AES-GCM 会是用于 SSL 的一个不错的密码选择吗?
推荐使用 GCM;它甚至得到了 NIST的批准。但是,仅从TLS 1.2起才在 TLS 中支持AEAD密码;与TLS 1.1相比,请参阅第 6.2.3.3 节,这是新的。实际支持 GCM 的密码套件在RFC 5288中定义。请注意,使用 CBC 时,TLS 1.2(以及就此而言,TLS 1.1 也是)不受 BEAST 类攻击的影响。
因此,您现在很难找到支持 GCM 的 Web 浏览器(我在 2013 年 1 月写了这些行;希望 TLS 1.2+GCM 支持会在某个时间点变得普遍)。启用它仍然可以,如果客户端支持它,那就更好了;GCM 将在最近的带有AES-NI 操作码的 x86 处理器上是最轻量级的(这些操作码是专门为 GCM 设计的,特别是在GF(2)[X]PCLMULQDQ
中实现乘法)。并不是说传统 TLS 密码套件的 CPU 成本有那么高,但知道每个服务器内核都可以支持 5 Gbit/s 带宽,这在智力上是令人愉悦的。
但是,如果您希望现有浏览器实际浏览您的服务器,那么您将需要允许更多“原始”密码套件,如果只是作为后备的话。
我知道这篇文章是 2013 年的,但我在研究 2016 年 5 月 3 日宣布的最新 openSSL 漏洞的补丁时偶然发现了这篇文章(信息 - https://www.openssl.org/news/secadv/20160503.txt)。推荐的补丁是 TLS1.2+AES-GCM 密码套件。
此时,最新操作系统上的最新浏览器应该支持 AES-GCM。如果您仍想确认这一点,此工具 ( https://cc.dcsec.uni-hannover.de/ ) 将提供有关您的浏览器支持的 SSL 密码套件的信息。