密码套件
密码套件 是什么?
密码套件由密钥交换、身份认证、数据加密和完整性算法组合而成的命名集合,由 TLS 等协议在每次会话中协商使用。
密码套件定义了安全协议保护一个会话时所采用的算法组合。在 TLS 1.2(RFC 5246)中,如 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 这样的套件,选择 ECDHE 进行密钥交换、RSA 用于认证、AES-128-GCM 进行加密、SHA-256 作为 PRF。TLS 1.3(RFC 8446)简化了这一模型,将密钥交换与签名同 AEAD 分开协商:仅保留五个套件(例如 TLS_AES_128_GCM_SHA256、TLS_CHACHA20_POLY1305_SHA256),且每一个都提供前向保密性。
为何传统套件危险。 脆弱的套件催生了长达十年的实际攻击。在其密钥流的偏差被利用以恢复明文后,RC4 被 RFC 7465 正式禁止用于 TLS。3DES 及其他 64 位分组密码易受 Sweet32 生日攻击(CVE-2016-2183)影响,该攻击在同一密钥下约 32 GB 流量后即可恢复明文。出口级密码学导致了 FREAK(CVE-2015-0204)与 Logjam,它们将连接降级为可被破解的 512 位 RSA 和 Diffie-Hellman。匿名(aDH/aECDH)套件完全省略了身份认证,为主动拦截打开了大门。
加固措施。 禁用 RC4、3DES、出口级和匿名套件以及静态 RSA 密钥交换;优先采用搭配 ECDHE 的 AEAD 套件(或 TLS 1.3 的默认设置)。Qualys SSL Labs、testssl.sh 等工具,以及来自 Mozilla、NIST SP 800-52r2 和德国 BSI 的配置规范,都将安全的默认值加以固化。
flowchart TD A[Client Hello:<br/>提供的密码套件] --> B[服务器选定一个套件] B --> C[密钥交换<br/>ECDHE / RSA] C --> D[身份认证<br/>证书签名] D --> E[数据加密<br/>AES-GCM / ChaCha20] E --> F[完整性<br/>AEAD 标签 / HMAC] F --> G[安全会话]
● 示例
- 01
TLS_AES_256_GCM_SHA384 是 TLS 1.3 推荐的密码套件。
- 02
仍提供 TLS_RSA_WITH_3DES_EDE_CBC_SHA 的传统系统应当淘汰。
● 常见问题
密码套件 是什么?
由密钥交换、身份认证、数据加密和完整性算法组合而成的命名集合,由 TLS 等协议在每次会话中协商使用。 它属于网络安全的 密码学 分类。
密码套件 是什么意思?
由密钥交换、身份认证、数据加密和完整性算法组合而成的命名集合,由 TLS 等协议在每次会话中协商使用。
如何防御 密码套件?
针对 密码套件 的防御通常结合技术控制与运营实践,详见上方完整定义。