作者:站在書脊之上
來源:juejin.im/post/5ebe6870f265da7bce2696b9
「一、為什么要有HTTPS」
在HTTPS出現之前,所有請求都是以明文方式送出的,那么如果有人在傳輸途中偷聽或者抓包的話,你的所有通信內容都會泄漏,
比較安全的方法是將通信內容加密在發送給對方,加密方法有兩種,對稱加密和非對稱加密,
「二、對稱加密」
對稱加密指的是加密和解密用同一個密鑰,但是在通信之前,客戶端和服務端是不會有這樣同一把密鑰的,需要其中一方將密鑰發送給對方,
在整個傳輸程序沒有任何驗證操作,所以黑客也可以截取到這把密鑰從而破譯出加密的內容,所以純對稱加密是不安全的,
「三、非對稱加密」
非對稱加密指的是加密和解密用不同的密鑰,可以是用私鑰加密,公鑰解密,也可以是用公鑰加密,私鑰解密,但是會有這種情況,服務端擁有私鑰和公鑰,將公鑰發給客戶端,既然客戶端可以獲得公鑰,黑客也可以獲得公鑰,
那么服務端發送給客戶端的所有內容黑客也是可以解讀的,客戶端用公鑰加密發送給服務端不受影響,因為黑客手上沒有服務器的私鑰,所以純非對稱加密也是不安全的,
「傳輸密鑰的程序」

「四、圖解傳輸密鑰的程序」
HTTPS采用對稱加密來加密通信內容,所用的密鑰稱為A,用非對稱加密來加密密鑰A再發送給對方(有點繞),只要密鑰A不落入他人手中,那傳輸的資料就不會被別人破譯,
那么問題來了,要如何安全的將這把密鑰送到對方手上呢?
我們來看密鑰的傳輸程序:

「五、為什么HTTPS是可靠的?」
HTTPS是可靠的,因為它解決了三個問題,Spring Boot 支持 HTTPS,這篇推薦看下,關注公眾號Java技術堆疊回復boot獲取更多教程,
加密通信,即使別人獲取到了資訊也沒法復原成原來的資訊,
防止中間人攻擊,黑客沒法冒充服務端,因為在第2步,服務端給了客戶端一個CA證書,
如果客戶端驗證了這個證書,說明這個證書和公鑰是由服務端發來的且真實可靠,
如果客戶端驗證不了這個證書,就說明這個證書不可靠,有可能是假的,
CA證書的公信力,CA證書需要由公司或者個人發出申請,再通過郵箱驗證等方法驗證域名存在,避免了黑客冒充網站獲取證書的可能,
在技術層面上,CA機構的公鑰是寫在作業系統或者瀏覽器里的,只有用CA機構的私鑰加密的內容才能完成解密,確保了證書的確是CA機構發行的,
「六、密鑰的作用」
最后讓我們再來回顧一下每一把密鑰的作用:

近期熱文推薦:
1.終于靠開源專案弄到 IntelliJ IDEA 激活碼了,真香!
2.我用 Java 8 寫了一段邏輯,同事直呼看不懂,你試試看,,
3.吊打 Tomcat ,Undertow 性能很炸!!
4.國人開源了一款超好用的 Redis 客戶端,真香!!
5.《Java開發手冊(嵩山版)》最新發布,速速下載!
覺得不錯,別忘了隨手點贊+轉發哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/74597.html
標籤:Java
上一篇:求問Java
下一篇:java表單設計
