HTTPS (全名為:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全為目標的 HTTP 通道,在HTTP的基礎上透過傳輸加密和身份認證保證了傳輸過程的安全性 。
HTTPS 在HTTP 的基礎下加入SSL 層,HTTPS 的安全基礎是 SSL,因此加密的詳細內容就需要 SSL。 HTTPS 存在不同於 HTTP 的預設連接埠及一個加密/驗證層(在 HTTP與 TCP 之間)。 (推薦學習:web前端視訊教學)
這個系統提供了身分驗證與加密通訊方法。現在它被廣泛用於萬維網上安全敏感的通訊,例如交易支付等方面。
HTTPS 原理
① 用戶端將它所支援的演算法清單和一個用作產生金鑰的隨機數傳送給伺服器;
② 伺服器從演算法清單中選擇一種加密演算法,並將它和一份包含伺服器公用金鑰的憑證傳送給客戶端;該憑證也包含了用於認證目的的伺服器標識,伺服器同時也提供了一個用作產生金鑰的隨機數;
③ 用戶端對伺服器的憑證進行驗證(有關驗證證書,可以參考數位簽章),並抽取伺服器的公用金鑰;然後,再產生一個稱為pre_master_secret 的隨機密碼串,並使用伺服器的公用金鑰對其進行加密(參考非對稱加法/ 解密),並將加密後的資訊傳送給伺服器;
④ 客戶端與伺服器端根據pre_master_secret 以及客戶端與伺服器的隨機數值獨立計算出加密和MAC金鑰(參考DH金鑰交換演算法);
⑤ 客戶端將所有握手訊息的MAC 值傳送給伺服器;
⑥ 伺服器將所有握手訊息的MAC 值傳送給客戶端。
以上是https原理的詳細內容。更多資訊請關注PHP中文網其他相關文章!