# https

《大前端进阶 安全》系列 HTTPS详解(通俗易懂) (opens new window)

# Why HTTPS

http 明文传输 不安全 所有经过的地方都可能发生劫持

# HTTPS实现原理

SSL 安全套接层

TLS 传输层安全协议

# HTTPS加解密流程

  1. 发起请求 端口443
  2. 服务端收到请求,返回配置好的包含公钥Pub的证书给客户端
  3. 客户端收到证书,校验合法性
  4. 客户端生成一个用于对称加密的随机Key,并用证书内的公钥Pub进行加密,发送给服务端
    • key 加密
  5. 服务端收到随机Key的密文,使用与公钥Pub配对的私钥Private进行解密,得到客户端真正想发送的随机Key
    • 解密 得到 key
  6. 服务端用key进行加密内容 将密文返回客户端
  7. 客户端使用随机Key对称解密密文,得到HTTP数据明文
  8. 后续HTTPS请求使用之前交换好的随机Key进行对称加解密

# 对称加密与非对称加密

非对称加解密耗时要远大于对称加解密

非对称加密 加密解密 一个 对称加密的 key

# CA颁发机构

客户端无法确认收到的公钥是不是真的是服务端发来的

# 私钥数字签名

防止公钥被篡改

  • CA机构拥有自己的一对公钥和私钥
  • CA机构在颁发证书时对证书明文信息进行哈希
  • 将哈希值用私钥进行加签,得到数字签名

验证

  • 客户端得到证书,分解成明文部分Text和数字签名Sig1
  • 用CA机构的公钥进行解签,得到Sig2(由于CA机构是一种公信身份,因此在系统或浏览器中会内置CA机构的证书和公钥信息)
  • 用证书里声明的哈希算法对明文Text部分进行哈希得到T
  • 当自己计算得到的哈希值H与解签后的Sig2相等,表示证书可信,没有被篡改
上次更新: 4/18/2022, 9:39:52 AM