HTTPS

前置知識(shí)

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

數(shù)字簽名原理

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

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

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

HTTP的不安全性

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

HTTPS概念

HTTP over SSL/TLS

HTTPS請(qǐng)求過(guò)程

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

參考鏈接

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

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

友情鏈接更多精彩內(nèi)容