• HTTPS加密过程分析


    HTTPS加密的作目的是解决信息传输过程中数据被篡改,窃取

    HTTPS使用了一系列的加密算法:对称加密算法、非对称加密算法、单向加密算法

    非对称加密算法

    分为公钥部分和私钥部分,用公钥加密的密文只能由私钥解开

    ·diffie-Hellman key exchange

    ·RSA

    ·ECC

    对称加密算法

    用同一个密钥解开

    ·DES、3DES

    ·AES

    ·IDEA

    ·RC4

    单向加密算法

    不可逆的过程加密过后无法返回

    ·MD5   长度128

    ·SHA-1  长度160

    ·SHA-2  长度224、256、384、512

    HTTPS数据传输过程

    ①客户端发起HTTPS连接握手

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

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

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

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

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

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

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

    第三方网站扫描SSL www.ssllabs.com/ssltest

  • 相关阅读:
    springcloud(九):熔断器Hystrix和Feign的应用案例
    springcloud(八):熔断器Hystrix
    springcloud(七): 使用Feign调用Eureka Server客户端服务
    springcloud(六):给Eureka Server服务器端添加用户认证
    springcloud(六):Eureka提供数据的客户端连接Docker的mysql
    Live Reload
    localStorage eval script
    javascript AOP
    如何设置让SFTP的用户限制在某个目录下
    整站下载器
  • 原文地址:https://www.cnblogs.com/zylq-blog/p/6808606.html
Copyright © 2020-2023  润新知