做者:站在書脊之上
連接:https://juejin.im/post/5ebe68...
爲何要有HTTPS面試
在HTTPS出現以前,全部請求都是以明文方式送出的,那麼若是有人在傳輸途中偷聽或者抓包的話,你的全部通訊內容都會泄漏。比較安全的方法是將通訊內容加密在發送給對方。加密方法有兩種,對稱加密和非對稱加密。redis
對稱加密數據庫
對稱加密指的是加密和解密用同一個密鑰。可是在通訊以前,客戶端和服務端是不會有這樣同一把密鑰的。須要其中一方將密鑰發送給對方。在整個傳輸過程沒有任何驗證操做,因此黑客也能夠截取到這把密鑰從而破譯出加密的內容。因此純對稱加密是不安全的。瀏覽器
非對稱加密安全
非對稱加密指的是加密和解密用不一樣的密鑰。能夠是用私鑰加密,公鑰解密,也能夠是用公鑰加密,私鑰解密。可是會有這種狀況。服務端擁有私鑰和公鑰,將公鑰發給客戶端。既然客戶端能夠得到公鑰,黑客也能夠得到公鑰。那麼服務端發送給客戶端的全部內容黑客也是能夠解讀的。客戶端用公鑰加密發送給服務端不受影響,由於黑客手上沒有服務器的私鑰。因此純非對稱加密也是不安全的。服務器
傳輸密鑰的過程微信
登場人物介紹架構
圖解傳輸密鑰的過程app
HTTPS採用對稱加密來加密通訊內容,所用的密鑰稱爲A。用非對稱加密來加密密鑰A再發送給對方(有點繞)。只要密鑰A不落入他人手中,那傳輸的數據就不會被別人破譯。運維
那麼問題來了,要如何安全的將這把密鑰送到對方手上呢?
咱們來看密鑰的傳輸過程
爲何HTTPS是可靠的?
HTTPS是可靠的,由於它解決了三個問題。
加密通訊,即便別人獲取到了信息也無法復原成原來的信息。
防止中間人攻擊。黑客無法冒充服務端。由於在第2步,服務端給了客戶端一個CA證書。
CA證書的公信力。CA證書須要由公司或者我的發出申請,再經過郵箱驗證等方法驗證域名存在。避免了黑客冒充網站獲取證書的可能。
在技術層面上,CA機構的公鑰是寫在操做系統或者瀏覽器裏的。只有用CA機構的私鑰加密的內容才能完成解密。確保了證書的確是CA機構發行的。
密鑰的做用
最後讓咱們再來回顧一下每一把密鑰的做用
最新整理的 2TB 技術乾貨:包括架構師實戰教程、大數據、Docker容器、系統運維、數據庫、redis、MongoDB、電子書、Java基礎課程、Java實戰項目、ELK Stack、機器學習、BAT面試精講視頻等。只需在「 民工哥技術之路」微信公衆號對話框回覆關鍵字:1024 便可獲取所有資料。