瀏覽器回報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)的代表版本號:

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改一下吧。

其他延伸閱讀:

Elliptic Curve Cryptography橢圓曲線算法

為何密碼學總愛使用Alice與Bob?

RSA FS PFS PerfectForwardSecrecy DH DHE Diffie–Hellman EC ECC EllipticCurveCryptography