點擊上方 匠心零度 ,選擇“ 設爲星標

做積極的人,而不是積極廢人

作者:站在書脊之上

來源:https://juejin.im/post/5ebe6870f265da7bce2696b9

一、爲什麼要有HTTPS

在HTTPS出現之前,所有請求都是以明文方式送出的,那麼如果有人在傳輸途中偷聽或者抓包的話,你的所有通信內容都會泄漏。比較安全的方法是將通信內容加密在發送給對方。加密方法有兩種,對稱加密和非對稱加密。

二、對稱加密

對稱加密指的是加密和解密用同一個密鑰。但是在通信之前,客戶端和服務端是不會有這樣同一把密鑰的。需要其中一方將密鑰發送給對方。在整個傳輸過程沒有任何驗證操作,所以黑客也可以截取到這把密鑰從而破譯出加密的內容。所以純對稱加密是不安全的。

三、非對稱加密

非對稱加密指的是加密和解密用不同的密鑰。可以是用私鑰加密,公鑰解密,也可以是用公鑰加密,私鑰解密。但是會有這種情況。服務端擁有私鑰和公鑰,將公鑰發給客戶端。既然客戶端可以獲得公鑰,黑客也可以獲得公鑰。那麼服務端發送給客戶端的所有內容黑客也是可以解讀的。客戶端用公鑰加密發送給服務端不受影響,因爲黑客手上沒有服務器的私鑰。所以純非對稱加密也是不安全的。

傳輸密鑰的過程

四、圖解傳輸密鑰的過程

HTTPS採用對稱加密來加密通信內容,所用的密鑰稱爲A。用非對稱加密來加密密鑰A再發送給對方(有點繞)。只要密鑰A不落入他人手中,那傳輸的數據就不會被別人破譯。

那麼問題來了,要如何安全的將這把密鑰送到對方手上呢?

我們來看密鑰的傳輸過程:

五、爲什麼HTTPS是可靠的?

HTTPS是可靠的,因爲它解決了三個問題。

加密通信,即使別人獲取到了信息也沒法復原成原來的信息。

防止中間人攻擊。黑客沒法冒充服務端。因爲在第2步,服務端給了客戶端一個CA證書。

如果客戶端驗證了這個證書,說明這個證書和公鑰是由服務端發來的且真實可靠。

如果客戶端驗證不了這個證書,就說明這個證書不可靠,有可能是假的。

CA證書的公信力。CA證書需要由公司或者個人發出申請,再通過郵箱驗證等方法驗證域名存在。避免了黑客冒充網站獲取證書的可能。

在技術層面上,CA機構的公鑰是寫在操作系統或者瀏覽器裏的。只有用CA機構的私鑰加密的內容才能完成解密。確保了證書的確是CA機構發行的。

六、密鑰的作用

最後讓我們再來回顧一下每一把密鑰的作用:

END

如果讀完覺得有收穫的話,歡迎點【好看】,關注【匠心零度】,查閱更多精彩歷史!!!

讓我“ 好看 ” 

相關文章