前端理解 HTTPS

HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的 HTTP 通道,簡單講是 HTTP 的安全版。即 HTTP 下加入 SSL (Secure socket layer) 層,HTTPS 的安全基礎(chǔ)是 SSL,因此加密的詳細內(nèi)容就需要 SSL

  • 建立一個信息安全通道,來保證數(shù)據(jù)傳輸?shù)陌踩?/li>
  • 確認網(wǎng)站的真實性,防止釣魚網(wǎng)站

場景模擬

張三在中國,Tom 在美國,兩人在網(wǎng)上聊的很投緣,聊了很多敏感話題

對稱加密

加解密用同一個密鑰,加解密算法是公開的,密鑰是保密的

有一天,Tom 意識到:壞了,我們的通信是明文的,簡直就是在網(wǎng)上裸奔。
張三:我們進行個數(shù)據(jù)加密,我把消息加密給你,你拿到后再解密。
Tom:好,你生成一個密鑰發(fā)給我
張三:但如果真有人盯著我們,發(fā)密鑰給你,密鑰也被截取,豈不白費功夫

非對稱加密

RSA 非對稱加密,兩把鑰匙,公鑰和私鑰,用私鑰加密的數(shù)據(jù),只有對應的公鑰才能解密,用公鑰加密的數(shù)據(jù), 只有對應的私鑰才能解密

張三和 Tom 開始查找更合適的方案,終于找到了 RSA 非對稱加密。
張三和 Tom 知道該特性后,分別生成自己的公鑰私鑰,私鑰保留,公鑰全世界都可以知道。
張三給 Tom 發(fā)消息,先用 Tom 的公鑰加密,Tom 接收后,用自己的私鑰解密
反之亦然

非對稱加密 + 對稱加密

實驗了幾次后,兩人發(fā)現(xiàn) RSA 加解密太慢了,比對稱加密慢百倍,兩人決定結(jié)合對稱與非對稱的優(yōu)點。
張三:第一步,我生成一個對稱加密的密鑰,通過 RSA 發(fā)給你,第二步,我們隨后不用 RSA,只用這個密鑰通信
Tom:同意,既解決了密鑰的傳遞問題,又解決了 RSA 速度慢的問題

中間人攻擊

通信多次后,張三想到,如果有個中間人在我給 Tom 發(fā)公鑰時截取了我的公鑰,然后把自己的公鑰發(fā)給了 Tom,這樣 Tom 發(fā)的消息就用了中間人的公鑰加了密,那中間人就可以看到消息了。反之亦然。

詳細步驟:

  1. 中間人截取張三和 Tom 的公鑰
  2. 將自己的公鑰發(fā)給雙方
  3. 張三用中間人的公鑰發(fā)消息給 Tom
  4. 中間人截取后用自己的私鑰解密讀取消息內(nèi)容
  5. 中間人用 Tom 的公鑰加密,再發(fā)送給 Tom
  6. Tom 用自己的私鑰解密
  7. Tom 和張三都沒有意識到自己的內(nèi)容已經(jīng)被偷窺

所以問題還是出在公鑰上,雖然這個東西是公開的, 但是在別有用心的人看來,截取以后還可以干壞事

如何確認公鑰屬于目標對象

張三想到現(xiàn)實中有公證處,網(wǎng)絡(luò)世界也可以建立一個具備公信力的認證中心(CA),可以將個人信息與公鑰放到公證中心,認證中心辦法一個證書,用于證明一個人的身份,這個證書還包含最關(guān)鍵的公鑰。但是證書怎么安全傳輸,證書傳遞過程中被篡改了怎么辦,好像進入了套娃。
轉(zhuǎn)機就在于數(shù)字簽名,張三可以把原始信息(包含張三的個人信息和張三的公鑰)通過 Hash 算法生成一個消息摘要,認證中心用自己的私鑰(CA 的私鑰)對消息摘要加密,形成數(shù)字簽名。
將原始信息和數(shù)字簽名合并,形成一個全新的東西,叫數(shù)字證書
張三將自己的數(shù)字證書發(fā)給 Tom,Tom 用同樣的 Hash 算法再次生成消息摘要,然后用 CA 的公鑰對數(shù)字簽名解密得到 CA 創(chuàng)建的消息摘要,兩者一對比,就知道有沒有被篡改了。如果沒有被篡改,Tom 拿到張三的公鑰,即可進行后續(xù)的加密工作。
那么中間人有沒有可能偽裝為 CA?CA 本身有證書證明自己的身份,CA 的信用是像樹一樣,高層的 CA 給底層的 CA 做信用背書,操作系統(tǒng)/瀏覽器會內(nèi)置一些頂層的 CA 證書,相當于自動信任了他們。

現(xiàn)實場景

前面介紹了 https 的原理,將張三當成服務(wù)器,Tom 當成瀏覽器即可


640.jpeg

參考鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容