一、HTTPS的作用
HTTPS(超文本傳輸安全協(xié)議)它是在TCP和HTTP之間加入了SSL/TLS安全協(xié)議,使得報文能夠加密傳輸。在TCP三次握手之后還需要進行SSL/TLS的握手過程,才可進入加密報文傳輸。
HTTPS通過以下三種方式來解決HTTP的安全問題
1.通過信息加密,解決HTTP的竊聽風險(明文傳輸,只要監(jiān)聽通信鏈路即可獲得包內(nèi)的數(shù)據(jù))
2.通過校驗機制,解決HTTP的篡改風險(對服務(wù)器發(fā)來的數(shù)據(jù)沒有校驗,被篡改了也無法驗證)
3.通過身份認證,解決HTTP的冒充風險(可以冒充服務(wù)器發(fā)數(shù)據(jù))
下面展開來說說:
信息加密這塊使用的是混合加密
- 在通信建立前采用非對稱加密的方式交換【會話秘鑰】,后續(xù)就不再使用非對稱加密了。
2.在通信的過程中使用【會話秘鑰】對稱加密,來加密明文數(shù)據(jù)。
這么做的原因有兩個,一個是非對稱加密速度上比對稱加密慢,那么在通信過程適合對稱加密
二是因為對稱加密只有一個秘鑰,無法做到安全的秘鑰交換,所以使用非對稱加密安全的交換秘鑰。
校驗機制:摘要算法+數(shù)字簽名
在發(fā)送內(nèi)容之前對傳輸?shù)膬?nèi)容進行摘要算法,得到一個哈希值,然后私鑰加密哈希值得到數(shù)字簽名,然后將內(nèi)容和數(shù)字簽名都發(fā)過去,服務(wù)器得到后將內(nèi)容進行哈希運算得到的哈希值和用公鑰解密數(shù)字證書得到的哈希值進行對比,看看是否內(nèi)容被篡改過。
但是這里還少了一個身份驗證環(huán)節(jié),如果公私鑰被替換了,校驗也會通過,所以這里要對公私鑰身份進行驗證,那么HTTPS規(guī)定只有權(quán)威機構(gòu)能夠頒布證書,而且拿到證書后也需要進行權(quán)威機構(gòu)認證才行,就是我們所說的CA:
1.服務(wù)器把自己的公鑰注冊到CA
2.CA用自己的私鑰將服務(wù)器的公鑰數(shù)字簽名并頒發(fā)數(shù)字證書
3.客戶端拿到服務(wù)器的數(shù)字證書后,使用CA的公鑰確認服務(wù)器的數(shù)字證書的真實性,其中CA的公鑰已經(jīng)事先就置入到了瀏覽器或者操作系統(tǒng)中,數(shù)字證書包含(服務(wù)器公鑰+CA的數(shù)字簽名)
4.從數(shù)字證書獲取服務(wù)器公鑰后,使用它對報文加密后發(fā)送
5.服務(wù)器使用自己的私鑰進行報文解密。
TLS建立過程如下圖:
