HTTPS 协议
原創轉載請注明出處:https://www.cnblogs.com/agilestyle/p/11488454.html
?
HTTPS
HTTPS —— Hypertext Transfer Protocol over Secure Socket Layer,即基于SSL的HTTP協議,簡單地說就是HTTP的安全版
?
依托SSL協議,HTTPS協議能夠確保整個通信過程都是經過加密的,密鑰隨機產生,并且能夠通過數字證書驗證通信雙方的身份,以此來保障信息安全。其中證書中包含了證書所代表一端的公鑰,以及一些其所具有基本信息,如機構名稱、證書所作用域名、證書的數字簽名等,通過數字簽名能校驗證書的真實性。通信的內容使用對稱加密方式進行加密,通信兩端約定好通信密碼后,通過公鑰對密碼進行加密傳輸,只有該公鑰對應的私鑰,也就是通信的另一端能夠解密獲得通信密碼,這樣既保證了通信的安全,也使加密性能和時間成本可控。
?
HTTPS協議在HTTP協議與TCP協議增加了一層安全層,所有請求和相應數據在經過網絡傳輸之前,都會先進行加密,然后再進行傳輸。SSL及其繼任者TLS是為網絡通信提供安全與數據完整性保障的一種安全協議,利用加密技術,以維護互聯網數據傳輸的安全,驗證通信雙方的身份,防止數據在網絡傳輸的過程中被攔截和利用
HTTPS既支持單向認證,也支持雙向認證,所謂的單向認證即只校驗服務端證書的有效性,而雙向認證則表示既校驗服務端證書的有效性,同時也需要校驗客戶端證書的有效性。大部分情況下我們并不需要用到客戶端證書,很多用戶甚至沒有客戶端證書,但是在某些特定的環境下,如企業內部網絡和涉及大額交易支付的場景下,也需要對用戶的客戶端進行校驗,以保證通信的安全。
?
TLS
傳輸層安全協議(英語:Transport Layer Security,縮寫:TLS),及其前身安全套接層(Secure Sockets Layer,縮寫:SSL)是一種安全協議,目的是為互聯網通信,提供安全及數據完整性保障。
SSL/TLS 協議均可以分為兩層:
- 一層為 Record Protocol,即記錄協議;記錄協議建立在可靠的傳輸協議(如TCP)之上,提供數據封裝、加密解密、數據壓縮、數據校驗等基本功能。
- 另一層為 Handshake Protocol,即握手協議。握手協議建立在記錄協議之上,在實際的數據傳輸開始前,進行加密算法的協商,通信密鑰的交換,通信雙方身份的認證等工作。
?
SSL 握手協議大致工作流程:
?
完成握手后,客戶端和服務端加密通信的流程:
?
Reference
https://zh.wikipedia.org/zh-cn/SSL
大型分布式網站架構設計與實踐 陳康賢 著
?
轉載于:https://www.cnblogs.com/agilestyle/p/11488454.html
總結
- 上一篇: jenkins 使用过程问题解决方法
- 下一篇: pytorch3d学习之pytorch3