在HTTPS出現以前,全部請求都是以明文方式送出的,那麼若是有人在傳輸途中偷聽或者抓包的話,你的全部通訊內容都會泄漏。
比較安全的方法是將通訊內容加密在發送給對方。加密方法有兩種,對稱加密和非對稱加密。web
對稱加密指的是加密和解密用同一個密鑰。
可是在通訊以前,客戶端和服務端是不會有這樣同一把密鑰的。須要其中一方將密鑰發送給對方。
在整個傳輸過程沒有任何驗證操做,因此黑客也能夠截取到這把密鑰從而破譯出加密的內容。
因此純對稱加密是不安全的。瀏覽器
非對稱加密指的是加密和解密用不一樣的密鑰。能夠是用私鑰加密,公鑰解密,也能夠是用公鑰加密,私鑰解密。
可是會有這種狀況。 服務端擁有私鑰和公鑰,將公鑰發給客戶端。
既然客戶端能夠得到公鑰,黑客也能夠得到公鑰。那麼服務端發送給客戶端的全部內容黑客也是能夠解讀的。
客戶端用公鑰加密發送給服務端不受影響,由於黑客手上沒有服務器的私鑰。
因此純非對稱加密也是不安全的。安全
HTTPS採用對稱加密來加密通訊內容,所用的密鑰稱爲A。用非對稱加密來加密密鑰A再發送給對方(有點繞)。只要密鑰A不落入他人手中,那傳輸的數據就不會被別人破譯。服務器
那麼問題來了,要如何安全的將這把密鑰送到對方手上呢?ide
咱們來看密鑰的傳輸過程 web安全
HTTPS是可靠的,由於它解決了三個問題。網站
最後讓咱們再來回顧一下每一把密鑰的做用 加密
參考資料
【web安全3】【硬核】HTTPS原理全解析操作系統