传输层安全协议

本主题适用于 IT 专业人士,介绍传输层安全 (TLS) 协议的工作原理,并提供到 TLS 1.0、TLS 1.1 和 TLS 1.2 的 IETF RFC 的链接。

注意

在 Windows Server 的未来版本中,默认情况下将禁用 TLS 1.0 和 1.1。 有关详细信息,请参阅 TLS 版本 1.0 和 1.1 禁用资源

TLS 和 SSL 协议位于应用程序协议层和 TCP/IP 层之间,它们可在其中保护应用程序数据并将其发送到传输层。 由于协议在应用层和传输层之间工作,因此 TLS 和 SSL 可以支持多个应用层协议。

TLS 和 SSL 假定正在使用面向连接的传输(通常是 TCP)。 这种协议允许客户端和服务器应用程序检测以下安全风险:

  • 消息篡改

  • 消息拦截

  • 消息伪造

TLS 和 SSL 协议可以分为两层。 第一层由应用协议和三个握手协议组成:握手协议、更改密码规范协议和警报协议。 第二层是记录协议。

TLS 和 SSL 协议层

SChannel SSP 无需修改即可实现 TLS 和 SSL 协议。 SSL 协议是专有协议,但 Internet 工程任务组生成公共 TLS 规范。 有关 Windows 版本支持的 TLS 或 SSL 版本的信息,请参阅 TLS/SSL (Schannel SSP) 中的协议。 每个规范都包含以下信息:

  • TLS 记录协议

  • TLS 握手协议:- 更改密码规范协议- 警报协议

  • 密码计算

  • 强制密码套件

  • 应用数据协议

RFC 5246 - 传输层安全性 (TLS) 协议版本 1.2

RFC 4346 - 传输层安全性 (TLS) 协议版本 1.1

RFC 2246 - TLS 协议版本 1.0

TLS 会话恢复

在 Windows Server 2012 R2 中引入的 SChannel SSP 实现了 TLS 会话恢复的服务器端部分。 在 Windows 8 中添加了 RFC 5077 的客户端实现。

将 TLS 连接到服务器的设备经常需要重新连接。 TLS 会话恢复可减少建立 TLS 连接的开销,因为恢复涉及缩写的 TLS 握手。 通过允许一组 TLS 服务器恢复彼此的 TLS 会话,来帮助进行更多恢复尝试。 此修改为支持 RFC 5077 的任何 TLS 客户端(包括 Windows Phone 和 Windows RT 设备)提供了以下节省:

  • 在服务器上减少了资源使用率

  • 减少了带宽,这可提高客户端连接的效率

  • 减少了由于连接恢复而在 TLS 握手方面花费的时间

有关无状态 TLS 会话恢复的信息,请参阅 IETF 文档 RFC 5077

应用程序协议协商

Windows Server 2012 R2 和 Windows 8.1 引入了允许客户端 TLS 应用程序协议协商的支持。 应用程序可以利用协议作为 HTTP 2.0 标准开发的一部分,用户可以通过使用运行 SPDY 协议的应用程序访问在线服务,如 Google 和 Twitter.

有关应用程序协议协商的工作原理的信息,请参阅传输层安全性 (TLS) 应用程序层协议协商扩展

针对服务器名称指示符扩展的 TLS 支持

服务器名称指示符 (SNI) 功能扩展了 SSL 和 TLS 协议,以便在单台服务器上运行大量虚拟映像时正确标识服务器。 在虚拟主机托管方案中,几个域(都具有自己的可能不同证书)将托管在服务器上。 在这种情况下,服务器无法提前了解要发送给客户端的证书。 SNI 让客户端可在协议早期通知目标域,且这让服务器可以正确选择相应证书。

这提供了以下附加功能:

  • 可让你在单个 Internet 协议和端口组合上托管多个 SSL 网站

  • 在单台 Web 服务器上托管多个 SSL 网站时,减少内存使用

  • 让更多用户可同时连接到 SSL 网站