原文閱讀:https://www.infinisign.com/fa...html
迄今爲止,SSL/TLS已經阻止了基於SSL的無數次的網絡攻擊,本文介紹了SSL/TLS常見的幾種漏洞以及過往的攻擊方式,針對這些漏洞及攻擊摒棄了老舊的加密算法,詳細以下:
Export是一種老舊的弱加密算法,是被美國法律標示爲可出口的加密算法,其限制對稱加密最大強度位數爲40位,限制密鑰交換強度爲最大512位。這是一個現今被強制丟棄的算法。nginx
降級攻擊是一種對計算機系統或者通訊協議的攻擊,在降級攻擊中,攻擊者故意使系統放棄新式、安全性高的工做方式,反而使用爲向下兼容而準備的老式、安全性差的工做方式,降級攻擊常被用於中間人攻擊,講加密的通訊協議安全性大幅削弱,得以進行本來不可能作到的攻擊。 在現代的回退防護中,使用單獨的信號套件來指示自願降級行爲,須要理解該信號並支持更高協議版本的服務器來終止協商,該套件是TLS_FALLBACK_SCSV(0x5600)web
MITM(Man-in-the-MiddleAttack) ,是指攻擊者與通信的兩端分別建立獨立的聯繫,並交換其全部收到的數據,使通信的兩端認爲他們正在經過一個私密的鏈接與對方直接對話,但事實上整個對話都被攻擊者徹底控制,在中間人攻擊中,攻擊者能夠攔截通信雙方的通話並插入新的內容。一箇中間人攻擊能成功的前提條件是攻擊者可以將本身假裝成每一個參與會話的終端,而且不被其餘終端識破。算法
BEAST(CVE-2011-3389) BEAST是一種明文攻擊,經過從SSL/TLS加密的會話中獲取受害者的COOKIE值(經過進行一次會話劫持攻擊),進而篡改一個加密算法的 CBC(密碼塊鏈)的模式以實現攻擊目錄,其主要針對TLS1.0和更早版本的協議中的對稱加密算法CBC模式。緩存
因爲早期的BEAST野獸攻擊而採用的加密算法,RC4算法能減輕野獸攻擊的危害,後來隨着客戶端版本升級,有了客戶端緩解方案(Chrome 和 Firefox 提供了緩解方案),野獸攻擊就不是什麼大問題了。一樣這是一個現今被強制丟棄的算法。安全
CRIME(CVE-2012-4929),全稱Compression Ratio Info-leak Made Easy,這是一種因SSL壓縮形成的安全隱患,經過它可竊取啓用數據壓縮特性的HTTPS或SPDY協議傳輸的私密Web Cookie。在成功讀取身份驗證Cookie後,攻擊者能夠實行會話劫持和發動進一步攻擊。服務器
SSL 壓縮在下述版本是默認關閉的: nginx 1.1.6及更高/1.0.9及更高(若是使用了 OpenSSL 1.0.0及更高), nginx 1.3.2及更高/1.2.2及更高(若是使用較舊版本的 OpenSSL)。網絡
若是你使用一個早期版本的 nginx 或 OpenSSL,並且你的發行版沒有向後移植該選項,那麼你須要從新編譯沒有一個 ZLIB 支持的 OpenSSL。這會禁止 OpenSSL 使用 DEFLATE 壓縮方式。若是你禁用了這個,你仍然可使用常規的 HTML DEFLATE 壓縮。oracle
Heartbleed(CVE-2014-0160) 是一個於2014年4月公佈的 OpenSSL 加密庫的漏洞,它是一個被普遍使用的傳輸層安全(TLS)協議的實現。不管是服務器端仍是客戶端在 TLS 中使用了有缺陷的 OpenSSL,均可以被利用該缺陷。因爲它是因 DTLS 心跳擴展(RFC 6520)中的輸入驗證不正確(缺乏了邊界檢查)而致使的,因此該漏洞根據「心跳」而命名。這個漏洞是一種緩存區超讀漏洞,它能夠讀取到本不該該讀取的數據。若是使用帶缺陷的Openssl版本,不管是服務器仍是客戶端,均可能所以受到攻擊。加密
2014年10月14號由Google發現的POODLE漏洞,全稱是Padding Oracle On Downloaded Legacy Encryption vulnerability,又被稱爲「貴賓犬攻擊」(CVE-2014-3566),POODLE漏洞只對CBC模式的明文進行了身份驗證,可是沒有對填充字節進行完整性驗證,攻擊者竊取採用SSL3.0版加密通訊過程當中的內容,對填充字節修改而且利用預置填充來恢復加密內容,以達到攻擊目的。
TLS POODLE(CVE-2014-8730) 該漏洞的原理和POODLE漏洞的原理一致,但不是SSL3協議。因爲TLS填充是SSLv3的一個子集,所以能夠從新使用針對TLS的POODLE攻擊。TLS對於它的填充格式是很是嚴格的,可是一些TLS實如今解密以後不執行填充結構的檢查。即便使用TLS也不會容易受到POODLE攻擊的影響。
CCS(CVE-2014-0224) 全稱openssl MITM CCS injection attack,Openssl 0.9.8za以前的版本、1.0.0m以前的以及1.0.1h以前的openssl沒有適當的限制ChangeCipherSpec信息的處理,這容許中間人攻擊者在通訊之間使用0長度的主密鑰。
FREAK(CVE-2015-0204) 客戶端會在一個全安全強度的RSA握手過程當中接受使用弱安全強度的出口RSA密鑰,其中關鍵在於客戶端並無容許協商任何出口級別的RSA密碼套件。
Logjam(CVE-2015-4000) 使用 Diffie-Hellman 密鑰交換協議的 TLS 鏈接很容易受到攻擊,尤爲是DH密鑰中的公鑰強度小於1024bits。中間人攻擊者可將有漏洞的 TLS 鏈接降級至使用 512 字節導出級加密。這種攻擊會影響支持 DHE_EXPORT 密碼的全部服務器。這個攻擊可經過爲兩組弱 Diffie-Hellman 參數預先計算 512 字節質數完成,特別是 Apache 的 httpd 版本 2.1.5 到 2.4.7,以及 OpenSSL 的全部版本。
2016年3月發現的針對TLS的新漏洞攻擊——DROWN(Decrypting RSA with Obsolete and Weakened eNcryption,CVE-2016-0800),也即利用過期的、弱化的一種RSA加密算法來解密破解TLS協議中被該算法加密的會話密鑰。 具體說來,DROWN漏洞能夠利用過期的SSLv2協議來解密與之共享相同RSA私鑰的TLS協議所保護的流量。 DROWN攻擊依賴於SSLv2協議的設計缺陷以及知名的Bleichenbacher攻擊。
一般檢查如下兩點服務器的配置
Openssl Padding Oracle(CVE-2016-2107) openssl 1.0.1t到openssl 1.0.2h以前沒有考慮某些填充檢查期間的內存分配,這容許遠程攻擊者經過針對AES CBC會話的padding-oracle攻擊來獲取敏感的明文信息。
參考資料: