您好,登錄后才能下訂單哦!
一、漏洞分析
事件起因
2015年3月26日,國(guó)外數(shù)據(jù)安全公司Imperva的研究員Itsik Mantin在BLACK HAT ASIA 2015發(fā)表論文《Attacking SSL when using RC4》闡述了利用存在了13年之久的RC4漏洞——不變性弱密鑰(《Weakness in the Key Scheduling Algorithm of RC4》,FMS 發(fā)表于2001年)進(jìn)行的***,并命名為“受戒禮”***(Bar Mitzvah Attack)。
直到2015年3月,還有約30%的網(wǎng)絡(luò)通信是由RC4進(jìn)行保護(hù)的。通過(guò)“受戒禮”***,***者可以在特定環(huán)境下只通過(guò)嗅探監(jiān)聽(tīng)就可以還原采用RC4保護(hù)的加密信息中的純文本,導(dǎo)致賬戶、密碼、信用卡信息等重要敏感信息暴露,并且可以通過(guò)中間人(Man-in-the-middle)進(jìn)行會(huì)話劫持。
***方法和模式
***者嗅探監(jiān)聽(tīng)大量的SSL鏈接,可以判斷第一個(gè)加密消息包含SSL的完成消息和HTTP請(qǐng)求,都是具有可預(yù)測(cè)的信息的。然后等待一個(gè)不變性弱密鑰的鏈接到來(lái),當(dāng)獲取到一個(gè)弱密鑰鏈接時(shí)候就可以提取出LBS。當(dāng)弱密鑰使用的時(shí)候,明文和密鑰會(huì)進(jìn)行異或,***者可以看到生成的密文模式。
***者同樣也進(jìn)行DNS投毒,將所有的鏈接鏈接到一個(gè)惡意的主機(jī),主機(jī)進(jìn)行中間人***,能夠有效地進(jìn)行大量用戶的嗅探監(jiān)聽(tīng)和會(huì)話劫持。
漏洞原理和細(xì)節(jié)
根據(jù)《Attacking SSL when using RC4》中的闡述,漏洞的成因主要在于不變性弱密鑰是RC4密鑰中的一個(gè)L型的圖形,它一旦存在于RC4的密鑰中,在整個(gè)初始化的過(guò)程之中保持狀態(tài)轉(zhuǎn)換的完整性。這個(gè)完整的部分包括置換過(guò)程中的最低有效位,在由RPGA算法處理的時(shí)候,決定偽隨機(jī)輸出流的最低有效位。這些偏差的流字節(jié)和明文進(jìn)行過(guò)異或,導(dǎo)致密文中會(huì)泄露重要明文信息。
主機(jī)漏洞-SSL/TLS 受誡禮(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理掃描】-RC4密碼套件
狀態(tài)轉(zhuǎn)換(來(lái)自《Attacking SSL when using RC4》)
這種模式發(fā)生在LSBs,a single LSB, 2 LSBs 等的不同數(shù)字時(shí)候,導(dǎo)致不同種類(lèi)的RC4弱密鑰。
主機(jī)漏洞-SSL/TLS 受誡禮(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理掃描】-RC4密碼套件
如果一個(gè)q-class(q 指代LSB的數(shù)字)的密鑰被使用,那么會(huì)發(fā)生以下的問(wèn)題:
RC4的初始化語(yǔ)句不能正確地配合狀態(tài)和關(guān)鍵信息,并且保存K個(gè)最低有效位存儲(chǔ)內(nèi)部狀態(tài);
RC4初始狀態(tài)具有固定的非混合q LSB;
第一個(gè)明文字節(jié)流的30-50字節(jié)的q個(gè)最低有效位遵守顯著概率確定模式;
第一個(gè)明文字節(jié)流的30-50字節(jié)的q個(gè)最低有效位有顯著概率暴露。
SSL在很多加密套件中使用RC4進(jìn)行加密。在握手環(huán)節(jié)產(chǎn)生RC4密鑰用來(lái)加密上行數(shù)據(jù)流和下行數(shù)據(jù)流。上行數(shù)據(jù)流中用來(lái)加密客戶端– 服務(wù)器的數(shù)據(jù)流,下行數(shù)據(jù)流中用來(lái)加密服務(wù)器 – 客戶端的數(shù)據(jù)流。加密是有狀態(tài)的,使用第一個(gè)密鑰流加密第一個(gè)字節(jié)的信息,之后的密鑰流加密下一條消息(想CBC模式一樣)。由于串加密毀滅了最低有效位的確定性,所以不變性弱密鑰只能利用于被保護(hù)的第一個(gè)100字節(jié)。
SSL的握手結(jié)束消息是每個(gè)方向(上行和下行)的第一條加密消息,且結(jié)束消息固定使用了36個(gè)字節(jié),所以還有64個(gè)字節(jié)留給***者使用。
主機(jī)漏洞-SSL/TLS 受誡禮(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理掃描】-RC4密碼套件
二、安全檢測(cè)
在線檢測(cè):服務(wù)器測(cè)試:https://www.ssllabs.com/ssltest/index.html
主機(jī)漏洞-SSL/TLS 受誡禮(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理掃描】-RC4密碼套件
瀏覽器測(cè)試:https://www.ssllabs.com/ssltest/viewMyClient.html
主機(jī)漏洞-SSL/TLS 受誡禮(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理掃描】-RC4密碼套件
本地檢測(cè):(針對(duì)服務(wù)器,需要在linux服務(wù)器下安裝openssl)
主機(jī)漏洞-SSL/TLS 受誡禮(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理掃描】-RC4密碼套件
$ openssl s_client -connectyinxiang.com:443 -cipher RC4
主機(jī)漏洞-SSL/TLS 受誡禮(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理掃描】-RC4密碼套件
如果能夠查看到證書(shū)信息,那么就是存在風(fēng)險(xiǎn)漏洞
如果顯示sslv3 alerthandshake failure,表示改服務(wù)器沒(méi)有這個(gè)漏洞。
三、修補(bǔ)方式
服務(wù)器
對(duì)于NGINX的修補(bǔ)
修改nginx配置文件中的 ssl_ciphers項(xiàng)
ssl_ciphers"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
重新加載:
$sudo /etc/init.d/nginx reload
對(duì)于apache的修復(fù)
打開(kāi)配置文件
$ sudo vi /etc/httpd/conf.d/ssl.conf
修改配置
SSLCipherSuite
HIGH:MEDIUM:!aNULL:!MD5;!RC4
$ sudo /etc/init.d/httpd restart
對(duì)于TOMCAT的修復(fù)
server.xml 中SSL connector加入以下內(nèi)容:
SSLEnabled="true"sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"
tomcat例子:
<connector port="443"maxhttpheadersize="8192" address="127.0.0.1"enablelookups="false" disableuploadtimeout="true"acceptCount="100" scheme="https" secure="true"clientAuth="false" SSLEnabled="true"sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"keystoreFile="mydomain.key"keystorePass="password"truststoreFile="mytruststore.truststore"truststorePass="password"/>;
對(duì)于IIS修補(bǔ)
將下面的內(nèi)容保存為fix.reg,并雙擊運(yùn)行來(lái)修改注冊(cè)表:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES56/56]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC240/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC256/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC440/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC456/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC464/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT1.0\Server]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL2.0\Server]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL3.0\Server]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL3.0\Client]"DisabledByDefault"=dword:00000001
客戶端瀏覽器
對(duì)于chrome瀏覽器的修補(bǔ)
@linux
關(guān)閉瀏覽器,在terminal中直接輸入命令運(yùn)行
$ google-chrome–cipher-suite-blacklist=0x0004,0x0005,0xc011,0xc007
@windows
快捷圖標(biāo)->右鍵->在目標(biāo)后面加入引號(hào)內(nèi)的內(nèi)容 “–cipher-suite-blacklist=0×0004,0×0005,0xc011,0xc007”
重啟瀏覽器生效
@macos
在terminal種輸入:
/Applications/GoogleChrome.app/Contents/MacOS/GoogleChrome--cipher-suite-blacklist=0x0004,0x0005,0xc011,0xc007
對(duì)于firefox(全平臺(tái))
在地址欄輸入 about:config 回車(chē),搜索框輸入rc4,雙擊 value 的值就可以改成 false并且禁止rc4相關(guān)的ssl傳輸,如下圖:
主機(jī)漏洞-SSL/TLS 受誡禮(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原理掃描】-RC4密碼套件
對(duì)于IE(只在windows平臺(tái))
參考解決辦法:https://www.sslshopper.com/article-how-to-disable-ssl-2.0-in-iis-7.html
運(yùn)行->regedit->對(duì)下面鍵值進(jìn)行設(shè)置:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4128/128]
"Enabled"=dword:00000000
·[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC440/128]
·"Enabled"=dword:00000000
·[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC456/128]
·"Enabled"=dword:00000000
或者將將下面內(nèi)容保存為fix.reg,然后雙擊運(yùn)行fix.reg進(jìn)行注冊(cè)表修改:
WindowsRegistry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4128/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC440/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC456/128]"Enabled"=dword:00000000
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。