为什么在AES可用时Android / IE使用3DES?

我有一个Zimbra安装,想要encryption密码套件。 我禁用了一些,对剩下的东西还是很满意的。

现在的问题是, Qualys SSL tes t显示了很多客户将使用3DES,这只剩下我最后一次备用。

如果我查看受支持的Android 5密码和我的服务器(例如),则会有更多的重叠,并且在两个密码套件中都有相同的AES密码套件。

为什么AES密码不被使用?

这是整个testing结果: ssl测试输出

通常,每个客户都有自己的偏好,他们支持的密码。

坚持你的例子: Android 5.0.0支持一个合理的数字,但有一些奇怪的偏好,一些客观上较弱的密码,而不是一些较强的密码。

根据SSL实验室扫描( “密码套件(按强度sorting;服务器没有优先权)”部分),您的服务器将只支持有限数量的密码,并且不会显示偏好,而主要将密码协商留给客户端,这导致TLS_RSA_WITH_3DES_EDE_CBC_SHA (0xa)

此行为由从客户端传递到服务器的密码列表确定,客户端在其中告知服务器它支持哪些密码以及每个密码具有哪个优先级。 尤其是Android,对于它的密码套件的偏好顺序做了一些不安全的select ,宁愿select非常不安全的密码而不支持它所支持的安全密码,而没有给出任何解释。

我的怀疑是这是一个deviseselect。 通过select计算密度较小的密码,您可以使用更less的电量,从而获得更多的电池续航时间,这是消费者在智能手机中注意和关心的问题;相反,只要最终用户看到该锁,图标,“它是安全的”,这就是他们所关心的(如果他们甚至关心的话)。

所以他们使用的是3DES,因为他们对较弱的密码有更高的偏好,并且允许使用它。 阻止客户select可疑的唯一方法是将其删除。

为了解决@HBrujin和@ HopelessN00b已经解释的问题,你可以为web服务器设置一个首选列表密码,他们也可以有首选项,而不仅仅是客户端。 我build议使用由Bettercrypto.org项目Applied Crypto Hardening详述的设置。

例如对于Apache,你可以使用

 SSLCipherSuite 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA' 

在您的SSL / TLS设置。 要支持3DES,请从string中删除3DES ,但只有在真正有必要时才需要支持上个世纪的软件。 这个密码string可以在商业环境中使用旧的软件(这是不推荐,但业务,你知道…)。