Page 60 - Web性能权威指南
P. 60
IETF 后 来 在 标 准 化 SSL 协 议 时, 将 其 改 名 为 Transport Layer Security
(TLS,传输层安全)。很多人会混用 TLS 和 SSL,但严格来讲它们并不相
同,因为它们指代的协议版本不同。
SSL 2.0 是该协议第一个公开发布的版本,但由于存在很多安全缺陷很快就被 SSL
3.0 取代。鉴于 SSL 协议是网景公司专有的,IETF 成立了一个小组负责标准化该协
议,后来就有了 RFC 2246,即 TLS 1.0,也就是 SSL 3.0 的升级版。
本协议与 SSL 3.0 的区别并不特别明显,但这些区别会严重妨碍 TLS 1.0 与
SSL 3.0 之间的互操作性。
——TLS 协议(RFC 2246)
TLS 1.0 自 1999 年 1 月发布后,为解决发现的安全缺陷同时扩展协议的功能,IETF
工作组先后又发布过两个新版本:2006 年 4 月发布了 TLS 1.1,2008 年 8 月发布了
TLS 1.2。从内部来看,SSL 3.0 实现与后续所有 TLS 版本很相似,很多客户端到今
天还在支持 SSL 3.0 和 TLS 1.0。当然,要保护用户免受攻击,最好还是升级到最新
版本。
TLS 设计的初衷是在可靠的传输协议(如 TCP)之上运行。可是,有实现
把它放到了数据报协议(如 UDP)之上。RFC 6347,即 DTLS(Datagram
Transport Layer Security,数据报传输层安全)就旨在以 TLS 协议为基础,
同时兼顾数据报交付模式并提供类似的安全保障。
4.1 加密、身份验证与完整性
TLS 协议的目标是为在它之上运行的应用提供三个基本服务:加密、身份验证和数
据完整性。从技术角度讲,并不是所有情况下都要同时使用这三个服务。比如,可
以接受证书但不验证其真实性,而前提是你非常清楚这样做有什么安全风险且有防
范措施。实践中,安全的 Web 应用都会利用这三个服务。
• 加密
混淆数据的机制
• 身份验证
验证身份标识有效性的机制
• 完整性
检测消息是否被篡改或伪造的机制
42 | 第 4 章