HTTPS 之共享祕鑰 公鑰 及 私鑰

HTTPS 之共享祕鑰 公鑰 及 私鑰

一 共享祕鑰

1.1 概念

共享祕鑰和我們生活中同一把鎖的鑰匙概念類似,對同一把鎖來說,加鎖時使用什麼鑰匙,解鎖也必須使用同樣的鑰匙。
這裏寫圖片描述

1.2 共享祕鑰在HTTP傳輸中的缺點

以共享密鑰方式加密時必須將密鑰也發給對方。在互聯網上轉發密鑰時,如果通信被監聽,那麼密鑰就可會落入攻擊者之手,同時也就失去了加密的意義。另外還得設法安全地保管接收到的密鑰。


二 SSL(Secure Socket Layer)公開祕鑰加密

2.1 概念

公開密鑰加密使用一對非對稱的密鑰。一把叫做私有密鑰(private key),另一把叫做公開密鑰(public key)。顧名思義,私有密鑰不能讓其他任何人知道,而公開密鑰則可以隨意發佈,任何人都可以獲得。

發送密文的一方使用對方的公開密鑰進行加密處理,對方收到被加密的信息後,再使用自己的私有密鑰進行解密。利用這種方式,不需要發送用來解密的私有密鑰,也不必擔心密鑰被攻擊者竊聽而盜走。

另外,要想根據密文和公開密鑰,恢復到信息原文是異常困難。
這裏寫圖片描述

三 HTTPS的加密機制—混合祕鑰(公開祕鑰加密技術和共享祕鑰加密技術結合)

3.1 原因

HTTPS 採用共享密鑰加密公開密鑰加密兩者並用的混合加密機制。公開密鑰加密很安全。但是公開密鑰加密與共享密鑰加密相比,其處理速度要慢。

所以應充分利用共享密鑰加密公開密鑰加密各自的優勢,將共享密鑰加密公開密鑰加密組合起來用於通信。在交換密鑰環節使用公開密鑰加密方式,之後的建立通信交換報文階段則使用共享密鑰加密方式。
這裏寫圖片描述

四 公鑰加密的問題

無法證明公開密鑰本身就是貨真價實的公開密鑰。比如,正準備和某臺服務器建立公開密鑰加密方式下的通信時,無法證明收到的公開密鑰就是原本服務器發行的公開密鑰。或許在公開密鑰傳輸途中,真正的公開密鑰已經被攻擊者替換掉了。
解決辦法:第三方可信機構認證,參考:傳送門

五 證書的基本原理

1 首先,客戶端向服務器發出加密請求

2 服務器將自己的證書發送給請求的客戶端,這個證書中包含服務器的公鑰,而這個證書本身被頒發證書的可信機構的私鑰加密。並且可信機構的公鑰一般會存儲於請求的客戶端電腦上。

3 請求的客戶端利用存儲於本電腦上的可信機構的公鑰,來驗證該證書是否正確,這樣就驗證了服務器身份,同時得到了服務器的公鑰

4 客戶端利用服務器的公鑰加密共享祕鑰,服務器收到客戶端的共享祕鑰後,二者就可以通過共享祕鑰完成接下來的加密通信

這裏寫圖片描述

參考:傳送門

關聯知識:HTTP一次請求的完整過程

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