2021,2022,2023年1-8月看了很多技術書籍,現在想來忘了很多,用到的也不多,但是因為提前接觸過,所以很多新東西,接受起來,比預想的要容易些。最近突然想要回憶下HTTPS,居然回憶不起來了,哎。在此記錄下。
HTTPS通信過程:
例如:打開https://www.csdn.net/ 的首頁
1. 客戶端發起請求(ClientHello)
在打開一個https網址時先由客戶端發起請求。
內容:客戶端自身支持的SSL/TLS(Secure Sockets Layer安全套接層/Transport Layer Security傳輸層安全)版本,
加密套件列表(如TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)、隨機數(Client Random)。
目的:與服務端協商加密參數,啟動安全連接。
2. 服務器響應(ServerHello + Certificate)
內容:
1:ServerHello:服務端選擇協議版本,加密套件,生成隨機數(Server Random)
2:Certificate:發送數字證書(含公鑰,數字簽名),證明自身身份。可選:可選ServerKeyExchange:若使用ECDHE等算法,發送額外密鑰交換參數。客戶端會使用此證書內的公鑰加密http的內容與服務端通信,而只有作為與公鑰配
對的私鑰才能解密通信內容,所以全世界只有此服務器可以知道你們的通信內容。除
非密鑰泄露,或被破解。
3 客戶端驗證證書
證書鏈校驗:驗證服務器證書是否由可信CA簽發,逐級追溯至根證書。有效期檢查:確保證書未過期。域名匹配:檢查證書中的域名(如SAN字段)與訪問地址一致。吊銷檢查:通過CRL(證書吊銷列表)或OCSP(在線證書狀態協議)確認證書未被吊銷。失敗處理:若驗證失敗(如證書過期、域名不匹配),瀏覽器會警告用戶。
4. 密鑰交換(ClientKeyExchange)
非對稱加密通信階段:客戶端生成預主密鑰(Pre-Master Secret),用服務器公鑰加密后發送。服務器用私鑰解密,獲取預主密鑰。
會話密鑰生成:
雙方基于預主密鑰、Client Random、Server Random,通過為隨機數函數
(PRF)生成對稱加密密鑰(Master Secret)非對稱加密安全性高,但是加密性能差,所以用在協商對稱加密密鑰的階段。
對稱加密密鑰協商完畢后,雙方切換致基于此密鑰的對稱加密算法通信。
5. 加密通信開始
ChangeCipherSpec:雙方通知對方切換至協商好的加密算法。Finished消息:發送加密的握手完成消息,驗證密鑰正確性。數據傳輸:使用會話密鑰進行AES等對稱加密,確保高效安全通信。
PKI(公鑰基礎設施)之余HTTPS的主要作用:
1:數據加密
2:完整性保護:確保數據完整、未被篡改
3:不可抵賴性、不可否認性
4:身份認證
5:數字證書管理:CA/RA負責證書的簽發、更新、吊銷及CRL發布。PKI除了用在HTTPS中,還可以用于:電子郵件、虛擬專用通道、數字文檔簽名蓋章、軟件保護、加密狗等領域