https相关内容

前言

本文写https相关内容,持续补充

基础概念理解

  1. 对称加密

    • 加解密秘钥是同一个
  2. 非对称加密

    • 公钥, 私钥
      • sa -> 公钥私钥都是两个数字
      • ecc -> 椭圆曲线, 两个点
    • 公钥加密, 私钥解密
      • 数据传输的时候使用
    • 私钥加密, 公钥解密
      • 数字签名的时候使用
  3. 哈希函数

    • md5/ sha1/sha2
    • 得到散列值, 散列值是定长的
  4. 消息认证码

    • 生成消息认证码: (将原始数据+共享秘钥) * 进行哈希运算 = 散列值

    • 验证消息认证码:

      • (接收的原始数据 + 共享秘钥) * 哈希运算 = 新的散列值
      • 新散列值和旧散列值进行比较, 看是不是相同
    • 作用:

      • 验证数据的一致性型
    • 弊端:

      • 两端共享秘钥必须相同, 共享秘钥分发困难
      • 所以后面不再使用消息认证码
  5. 数字签名(openssl库) -> 目的告诉所有人这个数据的所有者是xxx, xxx就是拿私钥的人

    • 生成一个非对称加密的密钥对
      • 公钥
      • 私钥
    • 生成签名:
      • 对原始数据进行哈希运算 -> 散列值
      • 使用非对称加密的私钥, 对散列值进行签名(私钥加密) -> 密文
      • 得到的密文就是数字签名
    • 签名的校验:
      • 校验者会收到签名者发送的数据

        • 原始数据
        • 数字签名
      • 对接收的数据进行哈希运算 -> 散列值

      • 使用非对称加密的公钥, 对数字签名进行解密 -> 明文 == 签名者生成的散列值

      • 校验者的散列值 和 签名者的散列值进行比较

        • 相同 -> 校验成功了, 数据属于签名的人
        • 失败 -> 数据不属于签名的人
      • 弊端:

        • 接收公钥的人没有办法校验公钥的所有者在这里插入图片描述
  6. 证书

    • 由一个受信赖的机构 (CA) 对某人的公钥进行数字签名
    • CA有一个密钥对
      • 使用ca的私钥对某个人的公钥进行加密 -> 证书
        • 证书里有这个人 的公钥
        • 证书里有这个人的个人信息

https传输过程

在这里插入图片描述

  1. 在百度服务器端首先生成一个秘钥对 -> 对公钥分发
  2. 百度将公钥给到了CA认证机构, ca对私钥进行签名 -> 生成了证书.
  3. 第一步第二部只做一次
  4. 客户端访问百度, 百度将ca生成的证书发送给客户端
  5. 浏览器对收到的证书进行认证
  6. 如果证书没有问题 -> 使用ca的公钥将服务器的公钥从证书中取出
  7. 我们得到了百度的公钥
  8. 在浏览器端生成一个随机数, 使用得到的公钥进行加密, 发送给服务器
  9. 服务器端使用私钥解密, 得到了随机数, 这个随机数就是对称加密的秘钥
  10. 现在秘钥分发已经完成, 后边的通信使用的的对称加密的方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cheems~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值