证明TLS握手的安全性(现状)
在当今的网络通信中,TLS(传输层安全协议)是保障通信安全最广泛使用的协议。然而,经过多年的攻击、补丁和扩展,其实际安全性仍未得到完全解决。本文将深入探讨TLS握手的安全性问题,包括其复杂性、面临的攻击类型以及提出的解决方案。
1. TLS协议的复杂性与问题
TLS协议支持大量的加密算法和构造,客户端和服务器在每次握手时都需要协商最佳的协议版本、密码套件和扩展。这种灵活性与安全性之间的权衡带来了诸多问题:
- 配置依赖 :TLS的安全性依赖于正确的配置,因为某些版本(如SSL2)和算法(如MD5和RC4)比其他版本和算法弱得多,并且可能存在不同的实现缺陷。理论上,只有非常严格的配置才能被证明是安全的,但在实践中,危险的错误配置很常见。
- 协议逻辑复杂 :协商本身的完整性依赖于正在协商的算法,这是攻击的一个持续来源,从SSL2的协议回归到当前浏览器的版本回退攻击。
- 更强的安全假设 :诚实的各方可能会使用相同的密钥材料与不同的算法,这需要更强的安全假设。TLS本身允许一系列选择协议的攻击,其中弱算法(由攻击者选择)可能会危及强算法(由诚实方选择)的安全性。
此外,TLS握手的多次运行之间存在依赖关系。例如,客户端连接可能首先运行基于RSA的会话来建立主密钥和记录层的密钥,然后在同一连接上运行第二个会话,可能使用不同的算法和证书。使用并行连接,客户端可以运行第三次恢复握手,重用先前会话的主密钥来派生新密钥。此时,这些密钥的安全性取决于三次握手运行中使用的算法和构造。
超级会员免费看
订阅专栏 解锁全文
2098

被折叠的 条评论
为什么被折叠?



