在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來管理,比較方便。