爲何https要使用證書

最近看了一本關於網絡的書,叫作《圖解http》,以爲這本書寫的很好,看完以後印象比較深的是這本書的https的解釋,爲此在此總結一下本身的理解。文中的不少截圖出自http圖解,在此表示感謝。算法

什麼是https

https不是一種新的協議,只是http的通訊接口部分使用了ssl和tsl協議替代,加入了加密、證書、完整性保護的功能,下面解釋一下加密和證書,以下圖所示瀏覽器

clipboard.png

加密:

共享密鑰加密

加密和解密公用一套祕鑰,這樣就會產生問題,已共享祕鑰加密方式必須將祕鑰傳送給對方,但若是通訊被監聽,那麼祕鑰可能會被泄漏產生危險。安全

公開祕鑰加密

公開祕鑰加密使用一種非對稱加密的算法,使用一對非對稱的祕鑰,一把叫作共有祕鑰,一把叫作私有祕鑰,在加密的時候,通訊的一方使用共有祕鑰進行加密,通訊的另外一方使用私有祕鑰進行解密,利用這種方式不須要發送私有祕鑰,也就不存在泄漏的風險了。服務器

https加密方式

由於公開祕鑰加密的方式比共享祕鑰加密的方式鑰消耗cpu資源,https採起了混合加密的方式,來結合二者的優勢。網絡

在祕鑰交換階段使用公開加密的方式,以後創建鏈接後使用共享祕鑰加密方式進行加密,以下圖。加密

clipboard.png

爲何要使用證書:

由於公開加密還存在一些問題就是沒法證實公開祕鑰的正確性,爲了解決這個問題,https採起了有數字證明認證機構和其相關機構頒發的公開祕鑰證書,通訊過程以下圖所示。spa

clipboard.png

解釋一下上圖的步驟:
1.服務器將本身的公開祕鑰傳到數字證書認證機構
2.數字證書認證機構使用本身的祕鑰來對傳來的服務器公鑰進行加密,,並頒發數字證書
3.服務器將傳回的公鑰證書發送給客戶端,客戶端使用數字機構頒發的公開祕鑰來驗證證書的有效性,以及公開祕鑰的真實性
4.客戶端使用服務器的公開祕鑰進行消息加密,後發送給服務器。
5.服務器使用私有祕鑰進行解密。接口

瀏覽器在安裝的時候會內置可信的數字證書機構的共有祕鑰,以下圖所示。ip

clipboard.png

這就是爲何咱們使用本身生成的證書的時候會產生安全警告的緣由。ssl

clipboard.png

再附一張https的具體通訊步驟和圖解。

clipboard.png

clipboard.png

最後用了人家這麼多圖給個購買連接吧圖解http

相關文章
相關標籤/搜索