HTTPS加密流程解析

這篇我會用通俗易懂的圖文並茂來說HTTPS,小白一個可能有些地方有些欠缺請你們理解 >x<web

爲何須要HTTPS

  • HTTP報文使用明文(指未通過加密的報文)方式發送瀏覽器

  • HTTP明文協議的缺陷是致使數據泄露、數據篡改、流量劫持、釣魚攻擊等安全問題的重要緣由安全

  • 具體來講 , 明文傳輸的每個環節,數據都有可能被第三方竊取或者篡改,具體來講,HTTP 數據通過 TCP 層,而後通過WIFI路由器、運營商和目標服務器,這些環節中均可能被中間人拿到數據並進行篡改,也就是咱們常說的中間人攻擊。服務器

HTTPS並非一個新的協議, 而是一個增強版的HTTP。其原理是在HTTP和TCP之間創建了一箇中間層,當HTTP和TCP通訊時並非像之前那樣直接通訊,直接通過了一箇中間層進行加密,將加密後的數據包傳給TCP, 響應的,TCP必須將數據包解密,才能傳給上面的HTTP。這個中間層也叫安全層。安全層的核心就是對數據加解密。編輯器

  • 這個安全層就是 SSL/TLS

對稱加密和非對稱加密

首先須要理解對稱加密和非對稱加密的概念,後續延伸到整個加密流程時才能更好地理解flex

對稱加密

就是加密和解密使用同一個密鑰的加密技術加密

加密解密的過程

對稱加密問題

  • 黑客攔截,直接本身加密一個返還給你,你是徹底不知道的

非對稱加密

非對稱加密也成爲公開密鑰加密技術,就是使用不一樣密鑰進行通訊的加密技術spa

  • 若是有 A、 B 兩把密鑰,若是用 A 加密過的數據包只能用 B 解密,反之,若是用 B 加密過的數據包只能用 A 解密。

加密解密的過程

  • 安全問題解決了 可視客戶端沒有私鑰沒法解密

對稱+非對稱加密

  • 客戶端請求服務端orm

  • 服務端給key1給客戶端 客戶端使用對稱加密 將key2放在key1裏cdn

  • key1須要密匙解開 別人沒有打不開 傳到服務端後

  • 服務端使用私鑰解開 得到到key2 key2是對稱加密解密key2

  • 由於第一次key2被key1加密了,是看不到的,密匙雙方都有,別人獲取不到, 後續傳輸直接傳公鑰key2,客戶端和服務端都能用同一個會話祕鑰進行加解密了 從而他們的通訊以及安全都獲得了保障 黑客:你覺得只有大家在進步?

混合加密的問題

  • 黑客攔截而且本身生成非對稱加密 以假亂真

那麼這時候爲了解決該問題,就出現了一個機構,CA證書頒發機構

CA證書頒發機構

爲了解決 主要問題 客戶端沒法確認收到的公鑰是否是真的是服務端發來的

  • 由CA(一個權威的認證機構)頒發的一種證書,裏面含有能夠標識你身份的信息,相似於咱們的身份證。

  • 證書是必須由服務端主動向CA申請的 服務器提供本身的信息和公鑰給CA讓其開數字證書

證書主要做用是數據加密和身份認證 , 身份認證就是指web瀏覽器和web服務器

數字證書+混合加密流程

客戶端請求 --> 服務端接收 --> 服務端返回數字證書給客戶端 --> 客戶端驗證證書 --->客戶端生成對稱加密的隨機Key而後用公鑰加密 ---> 給服務端 ---> 服務端用他的私鑰解密獲得隨機Key ---> 後續傳輸用該Key加密傳輸

  • 最後一步對稱加密知不道有沒有理解錯,若是有問題請大神指點

補充 : 如何驗證數字證書?

  • 客戶端對數字證書的明文信息進行hash加密得到摘要
  • 而後用CA公鑰解密數字簽名,獲取裏面hash加密的摘要
    • CA公鑰是公開的 誰都能拿到 對比雙方摘要是否相同,驗證合法性
  • 驗證數字證書的有效期
    • 是否是在CRL(吊銷列表)裏面
    • 它的上一級證書是否有效,這是一個遞歸的過程,直到驗證到根證書

嚶嚶嚶 結束了 但願能幫到你們

相關文章
相關標籤/搜索