Https的全稱是Http over SSL,而SSL是在TCP協(xié)議之上的保密層鸠匀,但是它也是屬于傳輸層的帖烘,如果直接傳輸Http,報(bào)文的信息安全是無法被保障的氛什,因?yàn)樗趹?yīng)用層的信息傳輸是明文傳輸?shù)摹?/p>
Https傳輸建立的過程可以分為兩個(gè)過程,信任建立的過程和連接建立的過程匪凉,如果再細(xì)分可以分為九個(gè)步驟枪眉,分別是:
客戶端首先會(huì)給服務(wù)器發(fā)送Client Hello, Client Hello中主要包含了以下這幾個(gè)消息:
其中Ciper Suites其實(shí)就是Ciper Suite的集合再层,也就是說Ciper Suites包含了一個(gè)或多個(gè)Ciper Suite贸铜,那么Ciper Suite到底是什么呢?其實(shí)就是對稱加密算法聂受,非對稱加密算法和Hash算法的一個(gè)組合蒿秦,下面就是一個(gè)例子
Ciper Suite:AES_RSA_SHA1
Ciper Suites就是幾個(gè)Ciper Suite的集合,像這樣:
AES_RSA_SHA1蛋济、DES_DSA_MD5棍鳖、AES_RSA_MD5
客戶端收到服務(wù)器收到的這一系列消息之后,它會(huì)從客戶端發(fā)送的Ciper Suites中挑選出一個(gè)Ciper Suite和SSL/TLS版本碗旅,然后和自己生成的客戶端隨機(jī)數(shù)一起發(fā)送給客戶端渡处,就是這幾個(gè)部分:
服務(wù)端得向客戶端證明自己就是剛剛客戶端發(fā)送消息的那個(gè)服務(wù)器镜悉,而CA證書里面就包含了這樣的信息,需要注意的是骂蓖,服務(wù)端發(fā)送給客戶端的證書包含的信息并不只是證書本身积瞒,也包含了給它發(fā)證的簽發(fā)機(jī)構(gòu)的信息。證書包含的信息大概如下:
驗(yàn)證證書的過程是這樣的:
有些機(jī)構(gòu)登下,如銀行等茫孔,可能會(huì)對客戶端也做一次驗(yàn)證,大致過程和服務(wù)端驗(yàn)證相似
Pre-master Secret是由客戶端通過自身信息算出來的被芳,客戶端將會(huì)把Pre-master Secret使用剛剛在證書中獲得的證書公鑰加密后發(fā)送給服務(wù)器缰贝,服務(wù)器收到Pre-master后,客戶端和服務(wù)器都將協(xié)商出一個(gè)Master Secret, 因?yàn)榭蛻舳撕头?wù)器都擁有 客戶端隨機(jī)數(shù)畔濒、服務(wù)器隨機(jī)數(shù)剩晴、Pre-Master Secret,如圖所示
得到Master Secret之后客戶端和服務(wù)器將使用 Ciper Suite和Master Secret一起計(jì)算出客戶端密鑰和服務(wù)端密鑰以及客戶端MAC Secret和服務(wù)器MAC Secret,如圖:
做完這步之后客戶端和服務(wù)器會(huì)繼續(xù)建立通信
這里其實(shí)僅僅只是發(fā)送了一個(gè)幾字節(jié)的通知而已侵状,客戶端告訴服務(wù)器將使用加密通信
在這里客戶端將發(fā)送一個(gè)Finished消息赞弥,這個(gè)Finished消息實(shí)際上是對上述客戶端與服務(wù)端發(fā)送的消息的一個(gè)匯總,用來使服務(wù)器來驗(yàn)證客戶端是不是剛剛建立信任的客戶端趣兄,F(xiàn)inished消息結(jié)果了兩步加工:
HMAC是在獲得了客戶端MAC Secret和服務(wù)端MAC Secret后服務(wù)器和客戶端都得到的HASH算法
服務(wù)端在收到客戶端發(fā)送的Finished消息后將對消息進(jìn)行驗(yàn)證绽左,步驟如下: 1. 服務(wù)端對之前所有的消息也做一個(gè)HMAC 2. 服務(wù)端對客戶端發(fā)送過來的Finished消息進(jìn)行解密(因?yàn)榉?wù)端也有客戶端密鑰) 3. 服務(wù)端對1和2得到的消息進(jìn)行比對,如果一樣則說明發(fā)送消息的客戶端是之前建立起信任的客戶端艇潭,將進(jìn)行之后步驟
這兩個(gè)步驟其實(shí)跟前面客戶端發(fā)送加密通信和Finished消息是一樣的拼窥,所有這里就略過了
從這個(gè)步驟開始客戶端和服務(wù)器就開始正式的通信了,從應(yīng)用層看發(fā)送的報(bào)文的話只會(huì)得到這是一個(gè)應(yīng)用層的消息蹋凝,具體的消息只能看到類似與亂碼鲁纠,與Http明文通信對比十分鮮明。
文章轉(zhuǎn)載至:https://www.kingnettech.com/service/zhishiku/109.html