zoukankan      html  css  js  c++  java
  • HTTPS数据传输过程简介

    HTTPS数据传输过程

    1、客户端发起HTTPS连接握手

    2、服务端收到HTTPS握手连接请求,与客户建立握手过程,和TCP的三次握手类似,并发送一系列的加密算法组合给客户端,与客户端协商加密算法组合

    3、客户端收到这一系列的组合,从中选择一个自己能够支持的并且加密级别最高的加密算法组合,通告给服务端

    4、服务端收到并确认客户端选择的加密组合,并将公钥证书发送给客户端,(这个公钥证书使用了非对称加密算法,使用这个公钥加密的信息只能由私钥解开,而这个私钥只有公钥的颁布者也就是服务端拥有,也就是说客户端用公钥加密的信息,只能有拥有私钥的服务端解开)

    5、客户端收到公钥证书之后,临时随机生成一个对称密钥用来对数据加密,用公钥对生成的对称密钥进行加密得到对称密钥加密密文,这个对称密钥加密密文只能通过服务端的私钥解开

    6、服务端收到对称密钥加密密文,用私钥解开得到对称密钥

    7、客户端开始对数据加密,先用对称密钥加密数据得到数据密文,再对数据密文进行hash计算得到一个hash值,再将这个hash值用公钥加密得到hash值密文,然后将数据密文、hash值、hash值密文这三个部分一起发送给服务端

    8、服务端收到数据密文、hash值、hash值密文,首先用私钥解开hash值密文,结果和收到的hash值对比验证hash值是否在传输的过程中被篡改,然后对数据密文进行hash计算,结果和收到的hash值对比验证数据密文在传输过程中被篡改。通过这两步验证传输数据没有被改变,再用对称加密密钥对数据密文加密得到原数据内容

  • 相关阅读:
    kvm克隆虚拟机
    vSAN添加license
    KVM虚拟机快照
    第二次作业及总结——数据类型和运算符
    第二次作业心得
    做完c语言作业的心得
    介绍自己
    awk数组 Jazz
    Java入门第一阶段总结
    区间dp入门+例题
  • 原文地址:https://www.cnblogs.com/zylq-blog/p/7565287.html
Copyright © 2011-2022 走看看