1. 程式人生 > >SSL相關漏洞解決方法

SSL相關漏洞解決方法

最近用綠盟掃描系統進行內網網系統掃描,有幾臺裝置被掃出了SSL相關漏洞,在此做一個簡短的加固方法。

本次涉及漏洞

1.漏洞名稱:SSL 3.0 POODLE攻擊資訊洩露漏洞(CVE-2014-3566)【原理掃描】

2.SSL/TLS 受誡禮(BAR-MITZVAH)攻擊漏洞(CVE-2015-2808)【原理掃描】

 

知識普及1:SSL協議要點

SSL(Secure Sockets Layer 安全套接層)是一種基於Web應用的安全通訊協議,最早由Netscape(網景)公司提出。SSL介於TCP協議和應用層協議之間,主要作用就是將HTTP、FTP等應用層的資料進行加密然後依託可靠的TCP協議在網際網路上傳輸到目的地,其中最典型的應用就是https。

SSL提供3個基本的安全服務:

1)身份合法性:資料傳送方和接收方要確認彼此身份,要確保各自的身份不會被冒充。

2)資料機密性:所有傳輸的資料都進行加密,並且要確保即使資料被截獲也無法破解。

3)資料完整性:確保收到的資料與傳送方發出的資料一致,沒有被篡改。

SSL協議主要採用的資料加密演算法:

1)非對稱加密演算法:資料加密和解密使用不同的金鑰,如RSA公鑰加密演算法。優點是安全級別高,很難被破解;缺點是加密解密的速度慢,因此只適用於小量資料的加密。SSL協議採用非對稱加密演算法實現數字簽名,驗證資料傳送方(或接收方)的身份,同時也用非對稱加密演算法交換金鑰(用於資料加密的對稱加密演算法的金鑰,以及用於資料完整性驗證的MAC演算法)。

2)對稱加密演算法:資料加密和解密使用同一個金鑰,如DES、3DES、RC4等都是對稱加密演算法。優點是加解密速度快,適用於大資料量的加密,但安全性較差。SSL協議採用對稱加密演算法對傳輸的資料進行加密。

3)MAC演算法:Message Authentication Codes,即訊息認證碼演算法,MAC含有金鑰雜湊函式演算法,相容了MD和SHA演算法的特性,並在此基礎上加入了金鑰。SSL協議採用MAC演算法來檢驗訊息的完整性。

 

知識普及2:SSL協議的版本

目前在用的SSL協議主要有5個版本,分別是SSL2.0、SSL3.0、TLS1.0、TLS1.1和TLS1.2,這裡的TLS(Transport Layer Security,傳輸層安全)協議是SSL協議的升級版。

在SSL協議曝出Poodle漏洞後,微信公眾平臺將取消對SSLv2、SSLv3兩個版本的支援,瀏覽器及其他採用SSL協議的平臺也會逐漸取消對SSLv2、SSLv3的支援,目前只建議使用TLSv1.0、TLSv1.1和TLSv1.2三個版本。



1.漏洞名稱:SSL 3.0 POODLE攻擊資訊洩露漏洞(CVE-2014-3566)【原理掃描】

涉及裝置漏洞服務

 此次裝置受此漏洞波及影響主要是因為上述系統部署了Tomcat 的https服務,而Tomcat https服務預設情況下支援SSL 3.0協議(目前在用的SSL協議主要有5個版本,分別是SSL2.0、SSL3.0、TLS1.0、TLS1.1和TLS1.2.SSL3.0是已過時且不安全的協議,目前已被TLS 1.0,TLS 1.1,TLS 1.2替代)

漏洞描述和利用

SSL3.0是已過時且不安全的協議,目前已被TLS 1.0,TLS 1.1,TLS 1.2替代,因為相容性原因,大多數的TLS實現依然相容SSL3.0。

為了通用性的考慮,目前多數瀏覽器版本都支援SSL3.0,TLS協議的握手階段包含了版本協商步驟,一般來說,客戶端和伺服器端的最新的協議版本將會被使用。其在與伺服器端的握手階段進行版本協商的時候,首先提供其所支援協議的最新版本,若該握手失敗,則嘗試以較舊的協議版本協商。能夠實施中間人攻擊的攻擊者通過使受影響版本瀏覽器與伺服器端使用較新協議的協商的連線失敗,可以成功實現降級攻擊,從而使得客戶端與伺服器端使用不安全的SSL3.0進行通訊,此時,由於SSL 3.0使用的CBC塊加密的實現存在漏洞,攻擊者可以成功破解SSL連線的加密資訊,比如獲取使用者cookie資料。這種攻擊被稱為POODLE攻擊(Padding Oracle On Downgraded Legacy Encryption)。此漏洞影響絕大多數SSL伺服器和客戶端,影響範圍廣泛。但攻擊者如要利用成功,需要能夠控制客戶端和伺服器之間的資料(執行中間人攻擊)。

漏洞處理方法

 修改tomcat server.xml 在下面加入 sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" 來關閉SSL V3

 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"

               maxThreads="150" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" 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="/home/kl/.keystore" keystorePass="eastcom"/>

2.SSL/TLS 受誡禮(BAR-MITZVAH)攻擊漏洞(CVE-2015-2808)【原理掃描】

涉及裝置漏洞服務

此次裝置受此漏洞波及影響主要是因為上述系統部署了Tomcat 的https服務,Web容器開啟了SSL/TLS訪問方式,並未遮蔽RC4這種存在已被有效破解的加密演算法導致。

漏洞描述和利用

SSL/TLS協議是一個被廣泛使用的加密協議,Bar Mitzvah攻擊實際上是利用了"不變性漏洞",這是RC4演算法中的一個缺陷,它能夠在某些情況下洩露SSL/TLS加密流量中的密文,從而將賬戶使用者名稱密碼,信用卡資料和其他敏感資訊洩露給黑客。

漏洞處理方法

修改tomcat server.xml 在下面加入標紅的串值

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"

               maxThreads="150" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" 

        ciphers="TLS_ECDHE_RSA_WITAES_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="/home/kl/.keystore" keystorePass="new1234"/>

 本地檢測此漏洞是否處理方法

如果能夠檢視到證書資訊,那麼就是存在風險漏洞

如果顯示sslv3 alerthandshake failure,表示該伺服器沒有這個漏洞

技術分享

 

存在漏洞的情況截圖

技術分享

引用部分文章連結:

http://www.secpulse.com/archives/5682.html

http://www.freebuf.com/articles/network/62442.html

http://blog.csdn.net/lyq8479/article/details/40709175

http://kk876435928.blog.51cto.com/3530246/1773114