HTTPS

前置知識

數(shù)字摘要數(shù)字摘要算法

數(shù)字簽名原理

  • 發(fā)送端(服務端)
  1. 原始數(shù)據(jù)經過數(shù)字摘要算法生成數(shù)字摘要
  2. 私鑰數(shù)字摘要進行加密生成數(shù)字簽名
  3. 原始數(shù)據(jù)、數(shù)字簽名打包發(fā)送
  • 接收端(客戶端)
  1. 提取原始數(shù)據(jù),使用約定的數(shù)字摘要算法計算出數(shù)字摘要A
  2. 提取出數(shù)字簽名,使用公鑰對其解密得到數(shù)字摘要B
  3. 判斷數(shù)字摘要A是否與數(shù)字摘要B一致

接收端如何獲取到公鑰?數(shù)字證書可以幫到你

  • 發(fā)送端(服務端)
  1. 發(fā)送端向CA申請數(shù)字證書
  2. 發(fā)送端公鑰經過數(shù)字證書里的摘要算法生成數(shù)字摘要
  3. 數(shù)字證書私鑰數(shù)字摘要進行加密生成數(shù)字簽名
  4. 發(fā)送端公鑰數(shù)字簽名、數(shù)字證書打包發(fā)送
  • 接收端(客戶端)
  1. 提取發(fā)送端公鑰
  2. 提取數(shù)字證書,校驗數(shù)字證書是否可信
  3. 如果可信,使用發(fā)送端公鑰數(shù)字證書里的摘要算法計算出數(shù)字摘要A
  4. 數(shù)字證書中拿到數(shù)字證書公鑰
  5. 提取出數(shù)字簽名,使用數(shù)字證書公鑰對其解密得到數(shù)字摘要B
  6. 判斷數(shù)字摘要A是否與數(shù)字摘要B一致
  7. 如果一致,發(fā)送與接收雙方可以利用非對稱加密進行通信

HTTP的不安全性

  1. 被中間人竊聽(HTTPS可解決)
  2. 被中間人篡改(HTTPS可解決)
  3. 被中間人偽造(HTTPS可解決)
  4. 被中間人丟棄(HTTPS不可解決)

HTTPS概念

HTTP over SSL/TLS

HTTPS請求過程

  1. C向S發(fā)起訪問請求
  2. S向C發(fā)送數(shù)字證書
  3. C校驗接收到的數(shù)字證書是否可信
  4. 如果不可信,顯示警告
  5. 如果可信,提取公鑰
  6. C生成對稱加密私鑰對
  7. C使用證書提取的公鑰加密私鑰對,發(fā)送給S
  8. S使用證書私鑰解密接收到的C端私鑰對
  9. 后續(xù)通信使用C端私鑰對進行

參考鏈接

Android新一代多渠道打包神器
最深刻最通俗的HTTPS 原理詳解,圖文并茂

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容