美文网首页
https链接过程

https链接过程

作者: 我看Android | 来源:发表于2020-10-27 21:56 被阅读0次

    废话不说直接上图

    https.png

    A端、B端可为客户端与服务端 服务端与服务端此处以Android开发为例将AB视为客户端与服务端

    步骤说明

    1. client hello 为单字节数据 附加信息中包含
      可选的TLS版本
      可选的加密套件:对称加密算法 非对称加密算法 hash算法
      A端生成的一个随机数
    2. server hello 为单字节数据 将服务端选中的各种配置项及服务端生成的一个随机数发送给客户端
    3. 服务端证书发给客户端 证书中包含服务端主机名、服务端的公钥c(一条数据)、公钥c的签名(用证书签发机构的私钥对公钥c的hash值进行非对称加密后得到 数据)、证书签发机构的公钥d等
      A端收到证书后会对证书的合法性进行校验
    4. 使用服务端的公钥c将一个生成的随机数进行加密发给服务端 加密后数据被称为Pre-master secret, 客户端发送后与服务端接收后都会使用双方交互的两个随机数及Pre-master secret 在两端都生成:
      客户端 master secret:
      服务端 master secret:
      客户端加密秘钥:
      客户端向服务端发送消息时使用 服务端收到消息后用该秘钥解密
      服务端加密秘钥:
      服务端想客户端发送消息时使用 客户端收到消息后用该秘钥解密
    5. 客户端告诉服务端我要使用加密通信了
    6. finished 将前几步数据综合加密进行HAMC计算后发给服务端(秘钥除外)
    7. 服务端告诉客户端我要使用加密通信了
    8. finished 将前几步数据综合加密进行HAMC(hash-based message authenticate code)计算后发给客户端(秘钥除外)

    问题

    1. 为什么加密方式使用对称加密?
      非对称加密计算量大,加密效率不如对称加密
    2. 对称加密秘钥为什么分为客户端秘钥与服务端秘钥
      防止消息被人拦截后原样发送给消息发送者
    3. 为什么要使用随机数生成Pre-master secret而不是固定数字
      防止重放攻击 消息被人劫持后 当客户端与服务端断开连接后 劫持者再次将该消息发往服务端 每次连接的建立都会生成新的随机数会使之前的验证失效

    相关文章

      网友评论

          本文标题:https链接过程

          本文链接:https://www.haomeiwen.com/subject/jqvxvktx.html