SSL/TLS 協定
SSL 是為 http 開發的原始安全通訊協定。現已被 TLS 取代,但現今統稱為 SSL/TLS
下圖為 TLS 握手示意圖:

TLS 握手主要發生於 TCP 三向交握後。
- 第一步是用戶端向伺服器端發送「問候」消息 (client hello),這則消息中包含了用戶端支援的 TLS 版本密碼套件以及「用戶端亂數(client random)(==aka 第一隨機數==)」的隨機位元組。
- 第二步是伺服器端收到用戶端的問候後(==還有第一隨機數==),回覆客戶端的訊息 (server hello),內含伺服器的 ==SSL 憑證==、==伺服器公鑰==、伺服器選擇的==密碼套件==以及「==伺服器亂數(server random) aka 第二隨機數==」(該數由伺服器隨機生成)
- 用戶端接收到伺服器端的問候消息以及第二隨機數等內容後,用戶端會對伺服器端送來的憑證進行身分驗證,確認伺服器的合法性。
- 確認完後,若身分屬實,用戶端會發送一串隨機位元組,AKA ==預主密鑰==(premaster secret)」。此密鑰是通過伺服器公鑰加密,只能用伺服器的私鑰解開。
- 伺服器端收到訊息後,用自己的私鑰對預主秘鑰進行解密。
- 用戶與伺服器端均使用用戶端亂數 (第一隨機數)‘伺服器亂數 (第二隨機數) 與預主秘鑰生成工作階段密鑰,因此雙方能獲得相同結果。
——————————————–以下階段為 ==對稱加密== ——————————————–
- 用戶端發送一條「已完成」消息,該消息用工作階段金鑰加密。
- 伺服器發送一條「已完成」消息,該消息用工作階段金鑰加密。
- 對稱加密完成,線下兩端透過工作金鑰解密,繼續通信。