最开始的加密
浏览器与服务器之间需要防止传输的数据被黑客破解。因此,浏览器在发送数据时会对数据进行加密,并把加密的密钥(或密钥的某些部分)放在数据的某一个区域中。服务器收到数据后,会提取密钥并用它来解密数据。这样的加密方式称为 对称加密。
对称加密的缺点
问题在于,当多个客户端都使用相同的加密算法时,黑客可以通过拦截和分析加密数据,推测出加密密钥的位置。这个过程叫做密钥泄漏,因此,对称加密 在密钥管理上有较大风险,一旦密钥被泄漏,通信的安全性就会受到威胁。因此,传统的对称加密不完全安全。
非对称加密
后来,科学家们发现了 非对称加密 的方法,这种方法解决了对称加密中的密钥管理问题。
非对称加密原理
非对称加密的基本思想是:使用公钥加密,使用私钥解密。其中,公钥可以公开,任何人都可以用它来加密消息,而私钥只有对应的接收方才能拥有,只有拥有私钥的人才能解密消息。
加密过程如下:
通过这种方式,只有服务器能够解密客户端发送的消息,确保了数据的机密性。
非对称加密的缺点
- 这种方法存在一个问题,即 服务器到客户端 的消息并没有加密,黑客依然可以拦截服务器发送的消息,因为它们是明文的。
双向非对称加密
为了更好地保护通信的双方,提出了 双向非对称加密。在这种加密模式中,双方都有公钥和私钥,并通过交换公钥进行加密和解密。
双向非对称加密流程:
双向非对称加密的缺点
- 计算资源消耗大:非对称加密算法(如 RSA)相较于对称加密(如 AES)来说,计算资源消耗较大,可能会导致网页渲染变慢,影响用户体验。
非对称加密 + 对称加密的结合
为了解决双向非对称加密中的性能问题,现代网络通信通常结合了 非对称加密 和 对称加密。
加密流程:
这种方式既保证了通信的安全性,又避免了非对称加密带来的性能问题。
非对称加密 + 对称加密的结合 —— 升级版
在实际应用中,单纯的非对称加密和对称加密结合方式依然存在一些潜在的安全隐患,尤其是客户端生成的私钥较容易被猜测出来。为此,引入了 随机数生成 来进一步提高安全性。
升级版的加密流程:
校验密钥一致性
在密钥生成后,双方需要校验生成的对称密钥是否一致,以确保双方的随机数生成的秘钥都是正确的
非对称加密 + 对称加密的结合的漏洞 —— 中间人攻击
虽然 非对称加密 + 对称加密 的结合在理论上很安全,但仍然存在 中间人攻击 的风险。
中间人攻击示意图:
客户端 <—-> 恶意服务器 <—-> 目标服务器
攻击流程:
CA证书(HTTPS认证)
为了防止中间人攻击,SSL/TLS 引入了 CA(证书颁发机构)认证。CA机构充当了一个“公证人”的角色,帮助验证服务器的身份。
证书签发过程:
证书验证过程:
当客户端与经过 CA 认证的服务器建立连接时:
CA证书服务器的认识
为了避免单个 CA 证书服务器的负担过重,CA 采用了分层认证架构。根级 CA 服务器是最权威的,下面的中级 CA 服务器可以为下级的证书颁发机构提供认证服务。
CA 证书验证过程:
图示:SSL/TLS通信过程
±——————+ ±———————+ | Client | | Server | |——————-| |———————-| | 1. Request data | <———> | 2. Send certificate | | 3. Encrypt with | | 4. Decrypt using | | server’s pub | | private key | | 5. Send encrypted | | 6. Send response | | data to server | | encrypted with | ±——————+ | shared key | ±———————+
通过图示可以更清晰地看到客户端与服务器在 SSL/TLS 握手过程中如何进行加密通信。
评论前必须登录!
注册