Files
Knowledge/sunyard/7 信安/SSL VPN/TLS 1.0 与 TLS 1.1 的主要区别.md

28 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
TLS 1.0 与 TLS 1.1 的主要区别在于,TLS 1.1 是对 TLS 1.0 已知安全漏洞的**针对性修补版本**。虽然它们现在都已过时,但了解其区别有助于理解安全协议的演进脉络。
下面的表格清晰地列出了它们的核心差异:
| 特性/方面 | **TLS 1.0** (RFC 2246, 1999年) | **TLS 1.1** (RFC 4346, 2006年) | 区别的意义与影响 |
| :------------- | :------------------------------------------------- | :------------------------------------------------------ | :---------------------------------------- |
| **针对CBC攻击的防护** | **无**。初始化向量(IV)是显式且可预测的,易受**BEAST攻击**。 | **有**。规定必须使用**显式的、不可预测的IV**,并建议在记录中发送IV。 | 这是最重要的安全修补,直接封堵了TLS 1.0最危险的理论攻击路径之一。 |
| **应对填充预言攻击** | **无防护**。对填充错误的处理方式,可能泄露信息,导致**Lucky Thirteen**等攻击。 | **有改进**。规定必须统一所有错误的处理方式(统一返回“bad_record_mac”警报),但未根本解决。 | 提高了攻击难度,但真正的解决是在TLS 1.2中引入了HMAC等更健壮的验证方式。 |
| **IANA注册与扩展** | **未明确定义**。对协议扩展和新算法的支持方式比较模糊。 | **明确定义**。为算法参数等引入了IANA注册机制,为未来协议扩展铺平了道路。 | 提升了协议的灵活性和可维护性,是协议成熟化的标志。 |
| **其他调整** | 依赖**MD5/SHA-1**等较弱的哈希函数。 | 新增对 **AES** 密码套件的正式支持。 | 反映了当时密码学的发展,但未触及核心算法弱点。 |
### 🔍 核心区别详解
**1. 对抗CBC攻击:从“可预测”到“显式IV”**
这是最关键的改进。在TLS 1.0中,每条加密记录的初始向量(IV)是**从前一条记录的密文中推导出来的**,这使得攻击者有可能预测并构造恶意请求(BEAST攻击)。TLS 1.1强制要求每条记录的IV都必须是**独立、显式且不可预测的**,从根本上切断了这种攻击的可能性。
**2. 错误处理:从“信息泄露”到“统一模糊”**
在TLS 1.0中,服务器对接收到的错误数据包(如填充错误、MAC校验错误)可能会返回不同的错误警报。攻击者可以像“询问神谕”一样,通过观察这些细微的差异来逐步破解密文。TLS 1.1规定,对于这类错误必须**统一返回完全相同的通用错误警报**,使攻击者无法从服务器响应中获取有效信息。
### 💎 总结与定位
- **关系**:TLS 1.1本质上是TLS 1.0的**安全补丁版**。它修复了最紧迫的安全问题,但没有进行架构或算法上的重大革新。
- **根本局限**:两者都**深度依赖已不安全的MD5和SHA-1哈希算法**,且TLS 1.1未能完全解决填充预言攻击(直到TLS 1.2才彻底解决)。因此,它们的安全基线在当今看来仍然很低。
- **现状**:**TLS 1.0和1.1均已遭全球淘汰**。所有主流浏览器、操作系统和现代安全标准(如PCI DSS)都已默认禁用它们。目前的标准是**TLS 1.2和1.3**。
因此,虽然TLS 1.1比1.0更安全,但这只是“五十步”与“一百步”的区别。在现代应用中,两者都应被**视为不安全协议而严格禁用**。
如果你是在维护一个必须兼容古董设备的特殊系统,了解这些细节可能有用;但在任何新项目或安全审计中,正确的做法都是直接启用TLS 1.2/1.3,并明确禁用1.0和1.1。