前言
本文写https相关内容,持续补充
基础概念理解
-
对称加密
-
非对称加密
- 公钥, 私钥
- sa -> 公钥私钥都是两个数字
- ecc -> 椭圆曲线, 两个点
- 公钥加密, 私钥解密
- 私钥加密, 公钥解密
-
哈希函数
- md5/ sha1/sha2
- 得到散列值, 散列值是定长的
-
消息认证码
-
数字签名(openssl库) -> 目的告诉所有人这个数据的所有者是xxx, xxx就是拿私钥的人
- 生成一个非对称加密的密钥对
- 生成签名:
- 对原始数据进行哈希运算 -> 散列值
- 使用非对称加密的私钥, 对散列值进行签名(私钥加密) -> 密文
- 得到的密文就是数字签名
- 签名的校验:
-
证书
- 由一个受信赖的机构 (CA) 对某人的公钥进行数字签名
- CA有一个密钥对
https传输过程
- 在百度服务器端首先生成一个秘钥对 -> 对公钥分发
- 百度将公钥给到了CA认证机构, ca对私钥进行签名 -> 生成了证书.
- 第一步第二部只做一次
- 客户端访问百度, 百度将ca生成的证书发送给客户端
- 浏览器对收到的证书进行认证
- 如果证书没有问题 -> 使用ca的公钥将服务器的公钥从证书中取出
- 我们得到了百度的公钥
- 在浏览器端生成一个随机数, 使用得到的公钥进行加密, 发送给服务器
- 服务器端使用私钥解密, 得到了随机数, 这个随机数就是对称加密的秘钥
- 现在秘钥分发已经完成, 后边的通信使用的的对称加密的方式
|