瀏覽器回報HTTPS使用過舊的加密套件進行加密
某天發現網站中的Https SSL的詳細資訊中,出現了下列令人不安心的文字:
您的OOO網站連線使用過舊的加密套件進行加密。
這個連線使用TLS 1.2。
連線採用AES_256_GCM加密,並設有RSA金鑰交換機制。
接下來是知識補充時間了:
SSL與TLS的關係
簡單的說,HTTPS加密連線由SSL(Secure Sockets Layer)及TLS(Transport Layer Security)兩個層級組成,但基於時代的演化SSL已經漸漸地力不從心(SSL 3.0也已經被發現漏洞而廢棄了),因此此刻的主流是TLS 1.2。以下是HTTPS連線時期,內容封包(ssl.record.version)的代表版本號:
- 0x0300(SSL 3.0 有漏洞,請勿再採用)
- 0x0301(TLS 1.0 有漏洞,請勿再採用)
- 0x0302(TLS 1.1)
- 0x0303(TLS 1.2)
RSA密鑰交換演算法
就是公鑰與私鑰在不安全的通道中交換的過程,詳細過程可以參考我的這一篇文章。RSA公鑰與私鑰運算之演算過程。
RSA演算的交換過程中基本上沒有太大的問題,現代的電腦很難破解,他最大的問題在兩端交談過程中,雙方持續使用自己同一把的私鑰在運作,這形成了一個很嚴重的問題,也就是前向安全性。
前向安全性Forward Secrecy
前向安全性也被稱為完美前向安全(Perfect Forward Secrecy,PFS),最主要是在談論對話過程中被監聽(Eve),此刻當然是無法破獲AB雙端的秘文,但我經過了一些手法(駭客)或是基於科技的演進(量子電腦),當你的私鑰被拿到、算出來時,你的歷史祕文也隨之付諸一炬。
本文瀏覽器所謂的「使用過舊的加密套件進行加密」就是在指這一件事情,那要怎麼辦呢?
DH密鑰交換協議演算法
DH是Diffie–Hellman key exchange的字母縮寫,是Whitfield Diffie與Martin Edward Hellman在1976年提出的一個密鑰交換協議演算法。詳細原理可以觀看這一篇文章:DH算法原理,在TLS協定的領域,DH演算法被酌加修正,稱為DHE(Diffie–Hellman Ephemeral)。
另外一個理論基礎簡稱為EC(Elliptic Curve),這個技術最主要是用橢圓曲線加密產生公鑰與私鑰配對。DHE基於EC基礎上,就稱為ECDHE。
橢圓曲線動態演繹影片(A Look Into Elliptic Curve Cryptography):
由於ECDHE在計算的過程中,採用公用的ECC證書(Elliptic Curve Cryptography),且DHE的交換過程也沒有把私鑰混入計算,因此解決了前向安全性 Forward Secrecy的問題。
上面這張圖片,紅線處即顯示出GOOGLE交換憑證的機制是採用ECDHE。所以,請把你伺服器的憑證SSL-Profile改一下吧。
其他延伸閱讀: