主题
- #TLS
撰写: 2024-10-27
撰写: 2024-10-27 21:31
大約從2020年開始,TLS1.1停止支援,
因此需要檢查舊的伺服器。
如果繼續使用TLS1.1,在AWS、Azure等雲端服務之間的通訊時可能會發生錯誤,
或者在支付等外部API通訊時發生錯誤,或者根據瀏覽器版本可能會出現問題。
- 似乎6.x版本以下不支持TLS1.2。需要透過Java 7以上的JRE將其更改為TLS1.2。
- 似乎1.1.13版本支持TLS1.2。
Client Hello:客戶端向伺服器發送連接請求。(包含支援的TLS版本和密碼套件)
Server Hello:伺服器發送將使用的TLS版本、密碼套件和SSL證書,以證明其可靠性。
金鑰交換和會話金鑰生成:客戶端和伺服器透過金鑰交換演算法生成共用的會話金鑰。
完成訊息:客戶端和伺服器分別發送使用各自金鑰加密的完成訊息。
數據傳輸:使用會話金鑰加密和交換數據。
結束:數據傳輸結束後,交換會話結束訊息,並刪除會話金鑰資訊。
TLS是傳輸層的安全協定,是HTTPS的基礎。提供身份驗證、完整性和加密。
據說1.2比1.1在安全性、效能方面更出色。
- 1.1使用md5和sha-1雜湊演算法。
- 1.1可能容易受到BEAST、中間人攻擊和密碼套件攻擊。
* BEAST:攻擊者攔截HTTPS連接並注入惡意內容。
* 中間人攻擊:攻擊者攔截通訊並竊取數據。
- 1.2使用sha-256演算法。(更強大的安全演算法)
- 1.2支援GCM(Galois/Counter Mode)密碼套件,同時執行加密和驗證,因此速度更快。
客戶端和伺服器能夠交換數據所需的所有加密機制,由四個部分組成。
1. 金鑰交換演算法
- 安全交換共用秘密金鑰的方法,例如RSA、Diffie-Hellman。
2. 身份驗證演算法
- 透過證書驗證伺服器是否可信,例如RSA等公開金鑰。
3. 對稱加密演算法
- 會話期間加密數據,客戶端和伺服器使用相同的會話金鑰解密的方法,例如AES。
4. 訊息驗證碼
- 數據完整性驗證,例如HMAC-SHA256。
密碼套件將上述四個要素組合起來表示。
评论0