HTTPS

前置知识

数字摘要数字摘要算法

数字签名原理

  • 发送端(服务端)
  1. 原始数据经过数字摘要算法生成数字摘要
  2. 私钥数字摘要进行加密生成数字签名
  3. 原始数据数字签名打包发送
  • 接收端(客户端)
  1. 提取原始数据,使用约定的数字摘要算法计算出数字摘要A
  2. 提取出数字签名,使用公钥对其解密得到数字摘要B
  3. 判断数字摘要A是否与数字摘要B一致

接收端如何获取到公钥数字证书可以帮到你

  • 发送端(服务端)
  1. 发送端向CA申请数字证书
  2. 发送端公钥经过数字证书里的摘要算法生成数字摘要
  3. 数字证书私钥数字摘要进行加密生成数字签名
  4. 发送端公钥数字签名数字证书打包发送
  • 接收端(客户端)
  1. 提取发送端公钥
  2. 提取数字证书,校验数字证书是否可信
  3. 如果可信,使用发送端公钥数字证书里的摘要算法计算出数字摘要A
  4. 数字证书中拿到数字证书公钥
  5. 提取出数字签名,使用数字证书公钥对其解密得到数字摘要B
  6. 判断数字摘要A是否与数字摘要B一致
  7. 如果一致,发送与接收双方可以利用非对称加密进行通信

HTTP的不安全性

  1. 被中间人窃听(HTTPS可解决)
  2. 被中间人篡改(HTTPS可解决)
  3. 被中间人伪造(HTTPS可解决)
  4. 被中间人丢弃(HTTPS不可解决)

HTTPS概念

HTTP over SSL/TLS

HTTPS请求过程

  1. C向S发起访问请求
  2. S向C发送数字证书
  3. C校验接收到的数字证书是否可信
  4. 如果不可信,显示警告
  5. 如果可信,提取公钥
  6. C生成对称加密私钥对
  7. C使用证书提取的公钥加密私钥对,发送给S
  8. S使用证书私钥解密接收到的C端私钥对
  9. 后续通信使用C端私钥对进行

参考链接

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

你可能感兴趣的:(HTTPS)