zoukankan      html  css  js  c++  java
  • HTTPS 基本流程3

    前文说到了6 组key material, 12个hash 值,非常迷惑, 今天才搞明白, 原来所有这些内容就是 对称密钥的内容。

    上面的图 虽然不是很清晰,但是, 其实也已经写明白了, 就是 右边的 CBC 模式的部分。对于 CBC模式的DES加密算法, 是需要这些内容的。

    关于 身份认证, 其实不是 防止 篡改, 说的另外的一回事。 一般就是说,防止 middler man, 就是验证 服务端就是 我想要的那个。 通过 证书 验证, 可以完成 身份的认证。

    当然, 其实我们也可以 对客户端 进行认证, 这也是 身份认证的一部分。

    1. 身份认证:第三方无法伪造服务端(客户端)身份

    DH 算法的通信建立过程是这样的:

     总之,如果协商过程使用 RSA 的话, 建立tls / ssl通道(正式传输 tls 上层数据之前)有7个 交互过程:

    1 C->S:Client Hello
    2 S->C:Server Hello
    3 S->C:Certificate, Server Key Exchange, Server Hello Done
    4 C->S:Client Key Change
    5 C->S:Change Cipher Spec
    6 C->S:Encryted Handshake Messagex`
    7 S->C:Change Cipher Spec, Encryted Handshake Message
    8 C->S/S->C:Application Data

    简单的SSL握手连接过程(Server端交换证书给client)

    1.C->S:client发送ClientHello,指定版本,随机数(RN),所有支持的密码套件(CipherSuites)

    2.S->C:server回应ServerHello,指定版本,RN,选择CipherSuites,会话ID(Session ID)

    3.S->C:server发送Certificate

    4.S->C:Server发送ServerHelloDone

    5.C->S:Client发送ClientKeyExchange,用于与server交换session key

    6.C->S:Client发送ChangeCipherSpec,指示Server从现在开始发送的消息都是加密过的

    7.C->S:Client发送Finishd,包含了前面所有握手消息的hash,可以让server验证握手过程是否被第三方篡改

    8.S->C:Server发送ChangeCipherSpec,指示Client从现在开始发送的消息都是加密过的

    9.S->C:Server发送Finishd,包含了前面所有握手消息的hash,可以让client验证握手过程是否被第三方篡改,并且证明自己是Certificate密钥的拥有者,即证明自己的身份

    已经SSL握手完成,已经 建立tls / ssl通道了。

    10 C->S/S->C:Application Data  开始正式数据交互

    实际上呢, 2/3/4 几个步骤是可以合并的, 5/6/7 也是,8/9 也是。 所以抓包的时候可以看到 4次通信。

     参考:

    https://blog.csdn.net/tterminator/article/details/50675540 非常非常详细

    https://blog.csdn.net/phunxm/article/details/72853376 非常非常详细

    https://blog.csdn.net/a_tu_/article/details/77119532

     http://www.cnblogs.com/svan/p/5090201.html

  • 相关阅读:
    表单提交与后台PHP如何接口?
    json数组转普通数组 普通数组转json数组
    使用Memcache缓存mysql数据库操作的原理和缓存过程浅析
    int(3)和int(10)的区别
    CI 3.0.6 控制器打印base_url 地址不为 localhost的解决方法
    CI3.0控制器下面建文件夹 访问一直404 的解决方法
    http响应需要记住的状态码
    laravel 表单验证 正则匹配
    laravel 加中间件的方法 防止直接打开后台
    Laravel 设置时区
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/10193704.html
Copyright © 2011-2022 走看看