HTTPS加密傳輸程序
HTTPS全稱Hyper Text Transfer Protocol over SecureSocket Layer,是以安全為目標的HTTP通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸程序的安全性,HTTPS在HTTP的基礎下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL,
知識儲備
HTTP
HTTP是應用層協議,默認運行在80埠,是一種不安全的傳輸協議,經其傳輸的資料都是未加密的明文資料,可以被中間人攻擊,獲取到你的網路傳輸資料,這也就是盡量不要使用公共場所WIFI的原因,
HTTPS
HTTPS是應用層協議,默認運行在443埠,是一種安全的傳輸協議,通過在HTTP層與運輸層的TCP直接加入一個加密/身份驗證層來保證安全傳輸,
SSL
SSL安全套接層Secure Sockets Layer,位于TCP/IP協議與各種應用層協議之間,為資料通訊提供安全支持,SSL協議可分為兩層:
SSL記錄協議SSL Record Protocol:它建立在可靠的傳輸協議如TCP之上,為高層協議提供資料封裝、壓縮、加密等基本功能的支持,
SSL握手協議SSL Handshake Protocol:它建立在SSL記錄協議之上,用于在實際的資料傳輸開始前,通訊雙方進行身份認證、協商加密演算法、交換加密密鑰等,
TLS
TLS傳輸層安全性協議Transport Layer Security用于在兩個通信應用程式之間提供保密性和資料完整性,其由TLS記錄協議和TLS握手協議組成,TLS1.0即為SSL3.0的標準化版本,SSL最初由網景Netscape提出研發,在SSL3.0時由國際互聯網工程任務組IETF進行了標準化并添加了少量機制,并更名為TLS1.0,
對稱加密
簡單來說對稱加密的加密密鑰和解密密鑰是相同的,對稱加密的效率要比非對稱加密高,
非對稱加密
簡單來說非對稱加密的加密密鑰與解密密鑰是不同的,需要一把公鑰與一把私鑰,私鑰不能被其他任何人知道,公鑰則可以隨意公開,公鑰加密,私鑰解密;私鑰數字簽名,公鑰驗證,
CA
由于公鑰是放在服務器的,在建立連接的程序中將公鑰傳輸到用戶,但是如何避免中間人攻擊,即在傳輸公鑰的程序中避免劫持,于是引入第三方認證權威機構CA,大多數作業系統的CA證書是默認安裝的,CA也擁有一個公鑰和私鑰,任何人都可以得到CA的證書,其包含公鑰,用以驗證它所簽發的證書,CA為服務申請者頒發證書,在CA判明申請者的身份后,便為他分配一個公鑰,并且CA將該公鑰與申請者的身份資訊綁在一起,并為之簽字后,便形成證書發給申請者,如果一個用戶想鑒別一個證書的真偽,他就用CA的公鑰對那個證書上的簽字進行驗證,一旦驗證通過,該證書就被認為是有效的,證書實際是由證書簽證機關CA簽發的對用戶的公鑰的認證,
傳輸程序
- 首先
TCP三次握手建立鏈接,這是資料傳輸基礎,在此之上開始SSL - 客戶端首先發送
Client Hello開始SSL通信,報文中包含客戶端支持的SSL版本、隨機值Random1、加密演算法以及密鑰長度等, - 服務器發送
Server Hello,和客戶端一樣,在報文中包含SSL版本、隨機值Random2以及加密組件,此后服務端將證書也發送到客戶端, - 此時客戶端需要對服務端發送的證書進行驗證,通過作業系統內置的
CA證書,將服務器發送的證書的數字簽名進行解密,并將證書的公鑰進行相同演算法的HASH與解密的數字簽名解密的內容進行對比,驗證證書是否合法有效,是否被劫持更換, - 客戶端驗證證書合法,然后生成一個隨機值
Random3,用公鑰對Random3進行加密,生成Pre-Master Key,客戶端以Client Key Exchange報文將Pre-Master Key發送到服務端,此后發送Change Cipher Spec報文表示此后資料傳輸進行加密傳輸, - 服務端將
Pre-Master Key用自己的私鑰解密為Random3,服務端發送Change Cipher Spec報文表示此后資料傳輸進行加密傳輸, - 此時客戶端與服務端都擁有三個隨機字串,且
Random3是密文傳輸的,是安全狀態的,此時則可以使用這三個字串進行對稱加密傳輸,由于非對稱加密慢,不能每次傳輸資料都進行非對稱加密,所以使用非對稱加密將密鑰協商好然后使用對稱加密進行資料傳輸, - 此時便正常進行
HTTP資料傳輸,但是由于SSL加密的作用,此時的HTTP傳輸便是安全的,此為HTTPS的傳輸程序,其中2、3、5、6也被稱為SSL四次握手,
參考
https://www.cnblogs.com/yangtianle/p/11202574.html
https://www.cnblogs.com/liyulong1982/p/6106132.html
https://blog.csdn.net/lyztyycode/article/details/81259284
https://blog.csdn.net/lihuang319/article/details/79970774
https://blog.csdn.net/qq_32998153/article/details/80022489
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/36429.html
標籤:其他
