zoukankan      html  css  js  c++  java
  • 对称加密->非对称加密->非对称+对称加密->CA证书

    对称加密

    1.客户端与服务端协商加密算法及压缩方法以及ssl/tls最高协议版本号等信息发送给服务器

    2.服务器选定加密方法,压缩方法

    3.客户端把加密套件及生成随机clientrandom数发送给服务器

    4.服务器选好加密套件及发送随机serverrandom数发送给客户端

    5.浏览器确认

    6.服务器确认

    7.clientrandom+serverrandom 生成密钥加密数据发送给服务器 

    8.服务器用clientrandom +serverfandom 生成密钥解析数据

    缺点:黑客拿到随机数可以解密

    非对称加密

    服务器保留私钥,把公钥及选好的加密套件发送给浏览器

    浏览器用公钥加密数据 

    服务器用私钥解析加密数据

    缺点:非对称加密效率低,服务器端用私钥加密传输数据,浏览器端用公钥解密时容易被获得公钥

    非对称加密传输对称加密时的密钥,传输数据其实还是用的对称加密

    1.客户端把加密套件及生成随机clientrandom数发送给服务器

    2.服务器返回加密套件及生成serverrandom数公钥发送给浏览器

    3.浏览器用生成新的随机数newclientrandom,公钥加密newclientrandom +浏览器确认 发送给服务器

    4.服务器用私钥解密newclientrandom

    5.服务器确认发送给浏览器

    6.浏览器用serverrandom + clientrandom + newclientrandom 生成密钥传输数据

    7.服务器用serverrandom + clientrandom + newclientrandom 生成密钥解密数据

    缺点:DNS 劫持将 IP 地址替换成了黑客的 IP 地址,这样我访问的其实是黑客的服务器了,黑客就可以在自己的服务器上实现公钥和私钥

     引入CA证书

    引入CA证书之前有一套公钥和私钥

    把公钥放在CA证书里面

    1.当服务器端返回加密套件 + serverrandom + 数字签名证书

    2.客户端拿到签名证书解析公钥

    3.客户端生成newclientrandom 用共钥匙加密newclientrandom

    4.服务端用私钥解密newclientrandom

    相对上种方式只是引入CA证书,并将公钥放在CA证书里面,私钥用来解密加密后的newclientrandom

    验证CA可靠性,浏览器内置顶级CA

  • 相关阅读:
    【Python 10】汇率兑换3.0(while循环)
    【Teradata SQL】十进制转换成二进制
    【Python 09】汇率兑换2.0-2(分支语句)
    【Python 08】汇率兑换2.0-1(字符串索引)
    【Python 07】汇率兑换1.0-2(基本元素)
    【Python 06】汇率兑换1.0-1(IPO与字符串转数字)
    【Teradata SQL】创建数据库和表
    mybatis源码分析之01环境搭建
    springboot2集成pagehelper
    Redis5离线安装
  • 原文地址:https://www.cnblogs.com/MDGE/p/15268654.html
Copyright © 2011-2022 走看看