在windwos server 2008及2012上总有狗皮膏药一般的四个SSL中危漏洞,一般同时出现。
SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808)【原理扫描】,SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)【原理扫描】,SSL 3.0 POODLE攻击信息泄露漏洞(CVE-2014-3566)【原理扫描】,SSL/TLS 服务器瞬时 Diffie-Hellman 公共密钥过弱【原理扫描】
绿盟扫描器提供的针对单独漏洞的修复方法在实际环境中可能有不适用的情况。
经过多次修复测试,发现以下修复方法可用:
一.使用此方法上述4个漏洞可全部修复
1、按下' Win + R',进入"运行",键入" gpedit.msc",打开"本地组策略编辑器"
2、计算机配置>管理模板>网络>ssl配置设置。
3、在SSL配置设置,打开SSL密码套件顺序设置,点击已启用。
4、更换SSL密码套件。
原SSL密码套件:
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_RC4_128_MD5,TLS_RSA_WITH_NULL_SHA256,TLS_RSA_WITH_NULL_SHA,SSL_CK_RC4_128_WITH_MD5,SSL_CK_DES_192_EDE3_CBC_WITH_MD5
替换为:
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_NULL_SHA256
重启系统再扫。
二、使用以下方法可同时修复SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808)【原理扫描】,SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)【原理扫描】:
这两个漏洞都是RC4算法的漏洞问题,方法就是禁用RC4改用别的算法。
1.方法一:
控制面板--->系统和安全--->管理工具--->本地安全策略--->本地策略--->安全选项--->系统加密:将FIPS兼容算法用于加密、哈希和签名; 右键--->属性--->点击“已启用”--->“确定”
使用此方法之后可能会导致某些只支持RC4算法的服务无法正常启用。
2.方法二:
注册表中启用TLS1.2:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault "=dword:00000000
"Enabled"=dword:00000001
注册表中禁用SSL2.0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]
"DisabledByDefault"=dword:00000000
禁用RC4
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]
"Enabled"=dword:00000000
三、对于SSL 3.0 POODLE攻击信息泄露漏洞(CVE-2014-3566)【原理扫描】,目前已经调整为低危级别,不修复其实也可以。
1.点击“开始”—“运行”,输入 “Regedit”,点击OK.
2.在注册表中寻找:
“HKey_Local_Machine\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server”
3.如果在Protocols下没有“SSL 3.0”选项,请依次新建“SSL 3.0”和“Server”项。在Protocols文件夹,右键单击项(K),然后重命名文件夹为SSL 3.0;在SSL 3.0文件夹,右键单击项(K),然后重命名文件夹为Server;
4.右键单击server的文件夹,选择新建,新建一个DWORD值。
5.在名称中,输入“Enabled”,回车。
6.请确保它显示00000000(0)的数据列下。如果没有,请右键单击并选择修改,输入0作为数值数据。
7.点击OK,退出注册表编辑器,然后重启电脑。
四、对于SSL/TLS 服务器瞬时 Diffie-Hellman 公共密钥过弱【原理扫描】,目前除了生成大于1024位的算法长度或更换SSL密码套件以为暂未发现其他修复方法可以成功修复。
1. http服务器相关配置
1)首先生成大于1024bit(例如2048bit)的dhkey
openssl dhparam -out dhparams.pem 2048
2)然后在对应服务器中配置
Apache2.4.8及以后版本
使用如下配置命令配置(http.conf中或者对应的虚拟主机配置文件中添加)
SSLOpenSSLConfCmd DHParameters "{path to dhparams.pem}"
Apache2.4.7版本
Apache2.2.31版本及以后版本
redhat debian等大多发行版中最新Apache2.2.x
通过把dhparams.pem的内容直接附加到证书文件后
Apache2.4.7之前2.4.x版本
Apache2.2.31之前版本
dhparam默认为1024bit 无法修改
nginx使用如下命令配置(在对应的虚拟主机配置文件nginx.conf中server字段内添加)
ssl_dhparam {path to dhparams.pem}
2.如果服务器配置无法修改,例如Apache2.2.31之前版本,可以禁用DHE系列算法,采用保密性更好的ECDHE系列算法,如果ECDHE不可用可以采用普通的 RSA。
更多解决方案请参考:
https://weakdh.org/sysadmin.html
注:windows上关于SSL/TSL及密码套件的更改,在注册表中手动敲比较繁琐,可以使用IIS Crypto来管理,比较方便。