HTTPS 通信流程時序圖:
客戶端 SSL管理器 證書驗證器 證書鏈構建器 信任存儲 吊銷檢查器 服務器 TLS 1.3 握手開始 ClientHello 支持的TLS版本: 1.0-1.3 加密套件(如 TLS_AES_256_GCM_SHA384) 客戶端隨機數(32字節) 支持的橢圓曲線(如 X25519, P-256) ServerHello 選擇TLS版本: 1.3 選擇加密套件 服務器隨機數(32字節) 選擇橢圓曲線 發送服務器證書(X.509 v3) ServerKeyExchange (ECDHE參數) ServerHelloDone 請求驗證證書 解析X.509證書 驗證簽名算法(RSA-2048/ECDSA) 構建證書鏈 查詢根證書 返回信任錨 驗證證書鏈完整性 驗證簽名(SHA-256 with RSA) 返回證書鏈驗證結果 驗證證書有效期 驗證域名(CN/SAN) 驗證密鑰用途和擴展 檢查證書吊銷狀態 OCSP檢查(HTTP) CRL檢查 返回吊銷狀態 返回驗證失敗 顯示證書錯誤 終止連接 返回驗證成功 證書驗證通過 ECDHE密鑰交換 生成ECDHE私鑰 ClientKeyExchange ECDHE公鑰 使用HKDF-SHA256密鑰導出 計算共享密鑰(ECDHE) 導出會話密鑰 計算共享密鑰(ECDHE) 導出會話密鑰 ChangeCipherSpec Finished(AEAD加密) ChangeCipherSpec Finished(AEAD加密) 對稱加密通信(AES-256-GCM) 應用數據(AEAD加密) 應用數據(AEAD加密) alt [驗證失敗] [驗證成功] 客戶端 SSL管理器 證書驗證器 證書鏈構建器 信任存儲 吊銷檢查器 服務器
這個詳細的時序圖展示了 HTTPS 通信的完整流程,重點包含以下幾個方面:
客戶端發起請求 :
客戶端向服務器發送HTTPS請求,連接到服務器的443端口。 服務器發送證書 :
服務器將其數字證書發送給客戶端。該證書包含服務器的公鑰、證書頒發機構(CA)的簽名等信息。 客戶端驗證證書 :
客戶端驗證證書的有效性,包括證書鏈驗證、有效期檢查和域名匹配等。 密鑰交換 :
客戶端生成一個預主密鑰(Pre-Master Secret),使用服務器的公鑰加密后發送給服務器。 服務器使用其私鑰解密,得到預主密鑰。 生成會話密鑰 :
客戶端和服務器使用預主密鑰、客戶端隨機數和服務器隨機數,通過偽隨機函數(PRF)計算得到主密鑰(Master Secret)。 主密鑰用于生成對稱加密的會話密鑰。 加密通信 :
客戶端和服務器使用協商的對稱加密算法和會話密鑰進行加密通信。
在上述過程中,常用的加密算法包括: