非对称加密:数据的加密和解密使用不同的秘钥
A:public key + private key + data + hash(摘要,dijest)
B:
-
用A 的 private key 加密数据的hash值(也就是数字签名),用 B 的 public key 加密数据 -> 发送给 B
-
B 收到数据之后,用自己的 private key 解密数据,本地运算hash值 1,再用 A 的public key解密接收到的hash值2,对比两个hash值,以校验数据的完整性
- 非对称加密安全隐患
如果中间人C拦截了A、B的public key,又分别用自己的public key 发送给A 和 B,那么一切就崩溃了!
CA(第三方机构)、CA证书、数字证书
目的:保证public key 的真实性
- B向A发送public key时,先把它交给CA,CA用自己的private key加密这些数据,加密完的数据称为B的数字证书。
- A收到CA的数字证书后,用CA颁发的CA证书(包括CA的public key)来解密B的数字证书。
- 这里的关键点是,CA证书集成在浏览器和操作系统里,也就是说A拿到浏览器或者操作系统时,已经有了CA证书,没有必要通过网络获取,就不存在劫持的问题。
总结为一句话:CA没出现之前,A、B互相交换public key;CA诞生之后,A、B互相交换数字证书