hi,大家好,好久不見,今天為大家?guī)鞨TTPS協(xié)議的工作流程
認(rèn)識(shí)HTTPS
加密是什么
HTTPS的工作流程
1.認(rèn)識(shí)HTTPS
HTTPS也是應(yīng)用層協(xié)議,讓我們?cè)賮砘貞浺幌耇CP/IP五層協(xié)議模型
HTTPS 也是一個(gè)應(yīng)用層協(xié)議. 是在 HTTP 協(xié)議的基礎(chǔ)上引入了一個(gè)加密層.
HTTP協(xié)議在傳輸?shù)臅r(shí)候是以文本的形式傳輸?shù)?就可能會(huì)導(dǎo)致被劫持,這里的劫持包括但不限于運(yùn)營商劫持,黑客劫持,那么我們咋辦捏
采用加密的方法,也就是HTTP+SSL=HTTPS
這個(gè)加密的方式也比較復(fù)雜,我們來具體講解
2.加密是什么
加密,涉及密碼學(xué),加密就是給明文加一個(gè)密鑰,變成密文,而解密就是給密文加一個(gè)密鑰,變成明文
加密的方式主要分為兩類:
1.對(duì)稱加密
2.非對(duì)稱加密
??對(duì)稱加密
對(duì)稱加密就是加密和解密都用同一個(gè)密鑰.
舉個(gè)例子
李明和韓美美是一對(duì)夫妻,這對(duì)夫妻擁有一套房子,李明和韓美美都擁有房子的鑰匙,可以對(duì)房子的進(jìn)行加鎖和解鎖,那么這個(gè)過程就是對(duì)稱加密,因?yàn)榧用芎徒饷芏际沁@個(gè)鑰匙
優(yōu)點(diǎn):算法公開、計(jì)算量小、加密速度快、加密效率高;但是它也存在強(qiáng)大的缺點(diǎn)
缺點(diǎn):密鑰協(xié)商過程中,一旦密鑰泄露,別人可以獲取到密鑰,這樣也能對(duì)密文進(jìn)行解密。另外,每對(duì)用戶每次使用對(duì)稱加密算法時(shí),都需要使用其他人不知道的獨(dú)一密鑰,這會(huì)使得收、發(fā)雙方所擁有的鑰匙數(shù)量巨大,密鑰管理成為雙方的負(fù)擔(dān)。
這個(gè)時(shí)候就引入非對(duì)稱加密
??非對(duì)稱加密
有兩個(gè)密鑰
pub是公鑰,用來加密
pri是密鑰,用來解密
也可以是pub來加密,pri來解密
優(yōu)點(diǎn):安全性更高,公鑰是公開的,秘鑰是自己保存的,不需要將私鑰給別人。 缺點(diǎn):加密和解密花費(fèi)時(shí)間長(zhǎng)、速度慢,只適合對(duì)少量數(shù)據(jù)進(jìn)行加密
比如加密我用A鎖,解密我用B鎖,這就是一個(gè)非對(duì)稱加密
HTTPS工作流程
HTTPS工作流程分為以下四個(gè)步驟
1.對(duì)稱加密
2.非對(duì)稱加密
3.中間人攻擊
4.引入證書
??1.對(duì)稱加密
對(duì)稱加密就是使用對(duì)稱密鑰加密
注意注意:加密針對(duì)的是HTTP各種的header和body!!!
如果此時(shí)發(fā)生劫持呢?
這里有兩種情況
1.黑客沒有密鑰key,就算拿到密文也沒用
2.不同的客戶端的密鑰都是不同的,那么我在向服務(wù)器傳輸數(shù)據(jù)之前我要先將自己的密鑰告訴服務(wù)器,那么要通過網(wǎng)絡(luò)傳輸?shù)姆绞?br> 但是當(dāng)客戶端將帶有key的數(shù)據(jù)傳輸給服務(wù)器的時(shí)候就有可能被黑客截獲,該怎么辦呢
??2.引入非對(duì)稱加密
客戶端要把自己的key安全的傳輸給服務(wù)器保證不被劫持,引入非對(duì)稱加密
服務(wù)器要生成一對(duì)非對(duì)稱密鑰
客戶端要生成一個(gè)對(duì)稱密鑰key
畫圖講解
**
文字講解:
1.客戶端生成一個(gè)key,服務(wù)器生成一對(duì)非對(duì)稱密鑰,pub(公鑰)和pri(私鑰)
2.客戶端向服務(wù)器索要pub
3.服務(wù)器返回pub給客戶端
4.客戶端用pub給key加密,傳輸給服務(wù)器
5.服務(wù)器使用pri解開對(duì)key加密的pub,拿到key
6.服務(wù)器告訴客戶端拿到了key
7.后續(xù)不再使用非對(duì)稱加密的方式,采用對(duì)稱加密的方式進(jìn)行數(shù)據(jù)的傳輸
**
注意:
為什么使用一次非對(duì)稱加密呢?
http傳輸數(shù)據(jù)一般都采用對(duì)稱加密,因?yàn)樗俣瓤?耗費(fèi)資源少,采用非對(duì)稱加密只是為了傳輸key給服務(wù)器,key只傳輸一次,對(duì)稱密鑰是被加密傳送給服務(wù)器的,黑客不知道的
黑客知道pub(公鑰),但是沒有pri(私鑰),所以拿不到key的
總結(jié):
非對(duì)稱加密就用了一次,作用就是為了保護(hù)key不被黑客拿到,順利傳輸給服務(wù)器,后續(xù)的傳輸就是采用對(duì)稱密鑰傳送的,因?yàn)楹诳蜎]有對(duì)稱密鑰key,所以拿不到傳輸?shù)臄?shù)據(jù),只有服務(wù)器才能拿到
??3.中間人攻擊
采用上述的非對(duì)稱加密就一定能保證key能安全的到達(dá)服務(wù)器嗎?
不能,所謂一山更比一山高,那么黑客也有辦法騙過客戶端和服務(wù)器
采用偷梁換柱的辦法,具體咋辦到的呢?
還是畫個(gè)圖來看
文字講解:
1.客戶端生成一個(gè)對(duì)稱密鑰key,服務(wù)器生成一對(duì)非對(duì)稱密鑰(pub ,pri),與此同時(shí),黑客也生成一對(duì)非對(duì)稱密鑰(pub 2, pri2)
2.客戶端向服務(wù)器索要公鑰,服務(wù)器將公鑰返回給客戶端,但是這時(shí)黑客用自己的pub2發(fā)給了客戶端.攔截并記錄了pub
3.客戶端認(rèn)為服務(wù)器發(fā)回來的就是pub2就是公鑰
4.客戶端將自己的key用pub2加密,然后發(fā)送給服務(wù)器
5.黑客又截獲了用pub2加密的key,并且用pri2進(jìn)行解密,拿到key,然后再用pub對(duì)key再次加密,發(fā)送給服務(wù)器
6.服務(wù)器就收到了pub加密的key,并且對(duì)客戶端說ok
7.客戶端和服務(wù)器開始進(jìn)行后續(xù)的數(shù)據(jù)傳輸 那么黑客已經(jīng)拿到了key,后續(xù)的數(shù)據(jù)傳輸黑客全部都能看到
出現(xiàn)這樣的問題,應(yīng)該怎么辦呢?
??4.引入證書
服務(wù)器的生成要向權(quán)威機(jī)構(gòu)申請(qǐng)證書,證書就是一個(gè)類似對(duì)象的東西,里面有服務(wù)器的URL,證書的過期時(shí)間,頒布證書的機(jī)構(gòu),服務(wù)器的公鑰(pub),加密后的簽名,這個(gè)簽名是權(quán)威機(jī)構(gòu)針對(duì)證書的屬性用算法選出一個(gè)校驗(yàn)和,然后用證書自己的私鑰(pri2)進(jìn)行加密
客戶端拿到證書以后,首先要對(duì)證書進(jìn)行校驗(yàn)
1.得到初始簽名:客戶端采用系統(tǒng)內(nèi)置的權(quán)威機(jī)構(gòu)的公鑰pub2對(duì)pri2加密的簽名進(jìn)行解密,拿到初始簽名,這個(gè)簽名的校驗(yàn)和是權(quán)威機(jī)構(gòu)算的
2.計(jì)算現(xiàn)在的簽名:客戶端用相同的算法對(duì)證書的屬性重新計(jì)算,得到新的校驗(yàn)和.
3.比較;兩個(gè)簽名是否相同.如果相同,那么說明數(shù)據(jù)安全,沒有被篡改,可進(jìn)行后續(xù)的數(shù)據(jù)傳輸 如果不相同,說明證書被篡改了,客戶端劉瀏覽器彈窗報(bào)錯(cuò)
這個(gè)時(shí)候我們可以相對(duì)的說,現(xiàn)在數(shù)據(jù)傳輸?shù)陌踩?br> 有人一定會(huì)有疑問,那么黑客不能修改證書的數(shù)據(jù)嗎?
首先我們知道黑客也可以拿到服務(wù)器的證書,也能用pub2解密,這個(gè)pub2是操作系統(tǒng)內(nèi)置的,大家都有
1.黑客可以把服務(wù)器的公鑰替換為自己的公鑰
2.可以對(duì)證書的屬性重新計(jì)算簽名
但是算完以后要重新加密啊,但是加密要用到權(quán)威機(jī)構(gòu)的私鑰pri2,但是黑客沒有!!!
所以黑客不能篡改數(shù)據(jù),傳輸安全!
當(dāng)然,沒有絕對(duì)的安全,這里也只是相對(duì)的
最后
整個(gè)HTTPS的工作過程涉及到五個(gè)密鑰
1.進(jìn)行數(shù)據(jù)傳輸?shù)膶?duì)稱加密key
2.對(duì)key進(jìn)行保護(hù)的非對(duì)稱密鑰pub,pri
3.權(quán)威機(jī)構(gòu)的私鑰pri2,權(quán)威機(jī)構(gòu)的公鑰pub2,這個(gè)pub2是系統(tǒng)內(nèi)置的,都有文章來源:http://www.zghlxwxcb.cn/news/detail-461259.html
今天的講解就到這,我們下期再見,886!文章來源地址http://www.zghlxwxcb.cn/news/detail-461259.html
到了這里,關(guān)于HTTPS的工作流程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!