1. 知识储备: 对称加密和非对称加密
1.1 http 存在三个弊端:
- 无法保证消息的保密性
- 无法保证消息的完整性和准确性
- 无法保证消息来源的可靠性
1.2 https 的三种加密方式
对称加密:
- 是最快速、最简单的一种加密方式,加密
(encryption) 与解密(decryption) 用的是同样的密钥(secret key) 。 对称加密解决了http中消息保密性的问题 。但是因为客户端和服务器共享一个密匙,这样就使得密匙特别容易泄露。很难保证消息来源的可靠性、消息的完整性和准确性。 非对称加密:
- 为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。
- 私钥只能由一方安全保管。而公钥则可以发给任何请求它的人。
- 如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;
- 如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
非对称加密虽然较大程度上保证了消息的来源性以及消息的准确性和完整性。 但是,非对称加密速度慢、效率低,并且不保证中间人截获和篡改消息。因为公钥谁都可以获得。 数字证书与数字签名
- 为了解决
非对称加密中公匙来源的不安全性 。我们可以使用数字证书和数字签名来解决。
2. https 通信流程
2.1 非对称加密方式

2.2 如何提升加密效率?采用混合加密方式

2.3 公钥/私钥由CA机构颁发
CA证书:
- 签名:xxxxxx
- 发布机构:xxxxxx
- 有效期:2023.10.10
- 签名算法:Sha-256+RSA
问题解决
- 解决了中间人
私发公钥 的问题 - 解决了中间人
伪装身份 的问题
- 伪装成服务器,向客户端发送自己的公钥,对浏览器信息进行读写和修改
- 伪装成客户端,将修改后的信息发送给服务器。
3. 小结


|