HTTPS 原理 對稱加密 非對稱加密 CA證書

HTTPS 原理 對稱加密 非對稱加密 CA證書

先介紹對稱加密

通信的雙方,使用同一個secretKey,可以對密文進行解密,得到明文。

問題:在開放的internet如何交換secretKey,這本身就是個問題。這個交換的過程也是需要加密的。這就套娃了無解了。

再介紹非對稱加密

通信雙方各自有一個公鑰,還有私鑰;私鑰只有自己知道,公鑰全世界都知道;非對稱加密算法,保證了用公鑰加密的信息,可以用 對應的 私鑰解密。

比如:Curry和Klay 需要進行通信。

Curry有私鑰privateKeyCurry 和公鑰publicKeyCurry
Klay有私鑰privateKeyKlay 和 公鑰publicKeyKlay

只有Curry知道自己的私鑰privateKeyCurry
只有Klay知道自己的私鑰privateKeyKlay

但是全世界都知道他們的公鑰。

這個視頻 打了個比方,就像一個信箱,全世界都可以知道Curry和Klay的信箱地址(公鑰),但是隻有他們自己可以用信箱鑰匙(私鑰)打開信箱獲取信息(解密)

HTTPS就是結合了對稱加密和非對稱加密

Curry 和 Klay 通信

需要先約定一個解密的祕鑰。(之前說只用對稱加密無法解決這個約定問題)

於是我們用非對稱加密來解決這個約定問題。

Curry 對 Klay 說: 讓我們約定對稱加密的祕鑰是 symmetricKey吧。於是Curry 找到Klay的公鑰(全世界都知道),然後用他的公鑰publicKeyKlay對symmetricKey 進行加密,發給Klay;

Klay收到加密的密文,用自己的私鑰privateKeyKlay解密,得到了Curry提供的symmetricKey。

約定好了symmetricKey,從此以後他倆就可以愉快地使用對稱加密,都用symmetricKey加密、解密要傳輸的信息了。

還有啥問題?

  • 通信的中間過程有可能信息被篡改
  • 攻擊者Durant可以僞裝成Klay跟你進行通信

如何解決這些問題?

這時候就需要CA證書了。

CA證書由第三方權威機構頒發,每個公司需要去申請這個證書。

當Klay開了一家叫Klay的公司,他就去花大價錢申請了一個CAKlay證書。CA這個權威機構會對Klay公司的證書明文做一些hash得到摘要,再進行加密(用CA權威機構的私鑰),得到一個簽名。

通信過程中,Curry先找Klay公司要證書,Klay公司返回證書明文以及證書籤名,Curry拿到證書明文,使用相同的hash得到摘要abstractFromKlay;然後Curry客戶端內用CA機構的公鑰對簽名進行解密,得到證書摘要(abstractFromCA),比較abstractFromCA和abstractFromKlay,如果一致則說明證書有效

流程圖

這個流程圖很不錯
在這裏插入圖片描述

參考

相關數學原理:可汗學院
掘金網文章
極客時間文章1
極客時間文章2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章