# TLS 1.1（传输层安全协议 1.1）是什么？

> TLS 1.1 是 2006 年以 RFC 4346 发布的 TLS 第二个版本，主要为 CBC 加入显式 IV，2021 年与 TLS 1.0 一起被 RFC 8996 废弃。

Source: https://ssl.sh/zh/glossary/tls-1-1/
Last updated: 2026-11-10

TLS 1.1 是 TLS 的第二个版本，2006 年 4 月以 RFC 4346 发布。它的改动集中在 CBC 加密的安全修补上：每条记录携带显式的初始向量，不再沿用上一条记录最后一个密文块；填充错误改为和 MAC 校验失败返回同一种告警，以增加填充预言攻击的难度。

## 为什么重要
TLS 1.1 几乎没有独立流行过，因为两年后发布的 [TLS 1.2](https://ssl.sh/zh/glossary/tls-1-2/) 带来了基于 SHA-256 的密钥派生和 [AEAD](https://ssl.sh/zh/glossary/aead/) 密码套件。TLS 1.1 仍沿用 TLS 1.0 那套基于 MD5/SHA-1 的伪随机函数，只支持 CBC 和流密码。浏览器在 2020 年中把它和 [TLS 1.0](https://ssl.sh/zh/glossary/tls-1-0/) 一起移除（Chrome 84、Edge 84、Firefox 78），RFC 8996 在 2021 年 3 月正式废弃了这两个版本。对公网 HTTPS 站点来说，现在的最低版本实际上就是 TLS 1.2。等保测评或第三方扫描报告里出现"支持 TLS 1.1"时，处理方式和 TLS 1.0 完全相同。

## 例子
用 nmap 自带脚本列出服务器接受的协议版本和密码套件：

```bash
nmap --script ssl-enum-ciphers -p 443 example.com
```

配置合理的服务器只会出现 TLSv1.2 和 TLSv1.3 两段。在 Nginx 中关闭 TLS 1.1：

```nginx
ssl_protocols TLSv1.2 TLSv1.3;
```

## 常见误区
- **TLS 1.1 是个折中选择。** 它和 TLS 1.0 同时被废弃、同时被浏览器移除，不存在"只能用 1.1、不能用 1.2"且值得为之降低安全性的客户端群体。
- **有了显式 IV，CBC 就安全了。** 显式 IV 解决了后来被 BEAST 演示的可预测 IV 问题，但先 MAC 后加密的 CBC 结构仍会受到 Lucky Thirteen 这类时序攻击。
- **关闭 TLS 1.1 需要换证书。** 协议版本是服务器配置，现有证书无需任何改动。

## 相关术语

- [TLS 1.0](https://ssl.sh/zh/glossary/tls-1-0/): TLS 1.0 是传输层安全协议的第一个版本，1999 年以 RFC 2246 发布，2021 年被 RFC 8996 正式废弃，主流浏览器已不再支持。
- [TLS 1.2](https://ssl.sh/zh/glossary/tls-1-2/): TLS 1.2 是 2008 年由 RFC 5246 定义的 TLS 版本，引入了基于 SHA-256 的密钥派生和 AES-GCM 等 AEAD 加密算法，至今仍被广泛使用。
- [TLS 1.3](https://ssl.sh/zh/glossary/tls-1-3/): TLS 1.3 是当前最新的传输层安全协议版本（2018 年的 RFC 8446，现行规范为 RFC 9846），完整握手只需一个往返，且只保留 AEAD 加密算法。
- [BEAST](https://ssl.sh/zh/glossary/beast/): BEAST 是 2011 年公布的攻击（CVE-2011-3389），利用 SSL 3.0 和 TLS 1.0 中 CBC 模式可预测的 IV，逐字节解密 Cookie 等秘密。
- [降级攻击](https://ssl.sh/zh/glossary/downgrade-attack/): 降级攻击是指攻击者迫使客户端和服务器协商出比双方实际支持的更旧的协议版本或更弱的算法，从而利用其中的弱点。
- [密码套件](https://ssl.sh/zh/glossary/cipher-suite/): 密码套件是 TLS 客户端和服务器协商使用的一组命名的加密算法组合，例如 TLS_AES_128_GCM_SHA256，决定连接用什么算法保护数据。
