❝這篇我會用通俗易懂的圖文並茂來說HTTPS,小白一個可能有些地方有些欠缺請你們理解 >x<web
❞
HTTP報文使用明文(指未通過加密的報文)方式發送瀏覽器
HTTP明文協議的缺陷是致使數據泄露、數據篡改、流量劫持、釣魚攻擊等安全問題的重要緣由安全
具體來講 , 明文傳輸的每個環節,數據都有可能被第三方竊取或者篡改,具體來講,HTTP 數據通過 TCP 層,而後通過WIFI路由器、運營商和目標服務器,這些環節中均可能被中間人拿到數據並進行篡改,也就是咱們常說的中間人攻擊。服務器
❝HTTPS並非一個新的協議, 而是一個增強版的HTTP。其原理是在HTTP和TCP之間創建了一箇中間層,當HTTP和TCP通訊時並非像之前那樣直接通訊,直接通過了一箇中間層進行加密,將加密後的數據包傳給TCP, 響應的,TCP必須將數據包解密,才能傳給上面的HTTP。這個中間層也叫安全層。安全層的核心就是對數據加解密。編輯器
❞
「首先須要理解對稱加密和非對稱加密的概念,後續延伸到整個加密流程時才能更好地理解」flex
「就是加密和解密使用同一個密鑰的加密技術」加密
「非對稱加密也成爲公開密鑰加密技術,就是使用不一樣密鑰進行通訊的加密技術」spa
客戶端請求服務端orm
服務端給key1給客戶端 客戶端使用對稱加密 將key2放在key1裏cdn
key1須要密匙解開 別人沒有打不開 傳到服務端後
服務端使用私鑰解開 得到到key2 key2是對稱加密解密key2
由於第一次key2被key1加密了,是看不到的,密匙雙方都有,別人獲取不到, 後續傳輸直接傳公鑰key2,客戶端和服務端都能用同一個會話祕鑰進行加解密了 從而他們的通訊以及安全都獲得了保障 「黑客:你覺得只有大家在進步?」
❝那麼這時候爲了解決該問題,就出現了一個機構,CA證書頒發機構
❞
「爲了解決 主要問題 客戶端沒法確認收到的公鑰是否是真的是服務端發來的」
由CA(一個權威的認證機構)頒發的一種證書,裏面含有能夠標識你身份的信息,相似於咱們的身份證。
「證書是必須由服務端主動向CA申請的 服務器提供本身的信息和公鑰給CA讓其開數字證書」
「證書主要做用是數據加密和身份認證 , 身份認證就是指web瀏覽器和web服務器」
❝客戶端請求 --> 服務端接收 --> 服務端返回數字證書給客戶端 --> 客戶端驗證證書 --->客戶端生成對稱加密的隨機Key而後用公鑰加密 ---> 給服務端 ---> 服務端用他的私鑰解密獲得隨機Key ---> 後續傳輸用該Key加密傳輸
❞
❝嚶嚶嚶 結束了 但願能幫到你們