这里是Themberfue
✨上节课我们聊到了对称加密和非对称加密,实际上,单纯地非对称加密并不能保证数据不被窃取,我们还需要一个更加重要的东西——证书
中间人攻击
- 通过非对称加密生成私钥priKey和公钥pubKey用来加密对称加密生成的密钥,确实可以有效的对数据的传输进行保护,但其中还存在一个非常严重的漏洞。
- ✨中间人攻击(Man-In-The-Middle Attack,MITM) 是一种网络攻击形式,攻击者通过拦截和篡改两方通信内容,冒充通信的某一方与另一方对话,从而获取敏感信息或进行恶意操作。整个过程通常对通信双方是不可见的,因此具有很大的隐蔽性。
- 中间人攻击通常冒充双方之一:假装是服务器与客户端通信、假装是客户端与服务器通信,攻击者在通信中插入、修改或窃取数据,而通信双方误以为彼此直接对话。
- 中间人攻击的常见手段有很多种,这里我们只讲其中的一种:通过特殊手段拿到加密的密钥。
- ✨客户端服务端通信前,客户端向服务端请求获得 公钥pub1,服务端接受请求返回 公钥pub1,此时黑客拦截到响应,但黑客自己又生成了一对 公钥pub2 和 私钥pri2,黑客伪造响应数据包将 公钥pub2 返回客户端,客户端没有能力辨别该公钥的真假,便直接拿来用了,随后将客户端生成的 密钥key 使用 公钥pub2 进行加密,随后再度发送请求给服务端,此时又被黑客拦截了,黑客将使用 私钥pri2 对通过 公钥pub2 加密的 密钥 key 进行解密,从而得到 密钥key,随后再使用 公钥pub1 再度对该 密钥key 加密并伪造请求数据包发送给服务端,服务端得到之后使用 私钥pri1 进行解密得到密钥key,此时服务端也不会有所怀疑。在整个过程中,服务端和客户端根本不知道它们的通信还有一个中间人黑客进行篡改,密钥key 就这样被拿到了,往后的通信都会被破解。
- 如果依然有点模糊,这边还有一个比喻,希望可以加深理解:❤️假设你在咖啡馆里,想给朋友发一封信。你把信交给服务员,请他送到朋友手中。然而,服务员偷偷打开信,读了内容,还伪造了一份不同的回复信交给你。你以为在和朋友直接通信,但实际上服务员(中间人)在整个过程中窃取并操控了你的信息。
- ✨✨✨防御中间人攻击的关键在于:确保通信双方能够相互验证身份,并通过加密保护通信数据的完整性和机密性。
CA证书
- ✨上述提到的中间人攻击,关键就在于服务端和客户端不知道对方的身份是否正确,所以,引入校验机制以检验对方的身份是否合法,通常校验客户端请求服务器的公钥是否被中间人修改过。
- 如何验证,就是验证 "证书"。CA证书(Certificate Authority Certificate)是由证书颁发机构(CA)签发的电子文件,用于在网络通信中证明服务器或客户端的身份,并帮助建立安全的通信。CA 证书是 HTTPS 和其他加密协议的重要组成部分。
证书的组成