跳到主要内容

4.4 Modular Exponential vs. Elliptic Curve DH Cipher Suites (模指数 vs. 椭圆曲线 DH 密码套件)

并非所有 TLS 实现都支持模指数 (MODP) 和椭圆曲线 (EC) Diffie-Hellman 组, 如第 4.2 节所要求的那样.一些实现在 DH 值的长度方面受到严重限制.当需要适应此类实现时, 建议按以下优先顺序进行:

  1. 椭圆曲线 DHE, 具有适当协商的参数 (例如, 要使用的曲线) 和比 HMAC-SHA1 更强的消息认证码 (Message Authentication Code, MAC) 算法 [RFC5289]

  2. TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 [RFC5288], 使用 2048 位 Diffie-Hellman 参数

  3. TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, 使用 1024 位参数

理由: 尽管椭圆曲线密码学被广泛部署, 但在某些社区中, 由于几个原因, 其采用受到了限制, 包括与模运算相比的复杂性以及对知识产权 (IPR) 问题的长期看法 (大部分现在已经得到解决 [RFC6090]).请注意, ECDHE 密码套件同时适用于 RSA 和 ECDSA 证书, 因此迁移到 ECDHE 密码套件不需要远离基于 RSA 的证书.另一方面, 有两个相关问题阻碍了在 TLS 中有效使用 MODP Diffie-Hellman 密码套件:

  • 没有标准化的, 广泛实现的协议机制来协商客户端和服务器支持的 DH 组或参数长度.

  • 许多服务器选择 1024 位或更短的 DH 参数.

  • 存在广泛部署的客户端实现, 如果接收到的 DH 参数长度超过 1024 位, 则会拒绝这些参数.此外, 几个实现不对组参数执行适当的验证, 并且容易受到 [RFC7457] 第 2.9 节中引用的攻击.

请注意, 对于 DHE 和 ECDHE 密码套件, TLS 主密钥仅取决于 Diffie-Hellman 参数, 而不取决于 RSA 证书的强度; 此外, 1024 位 MODP DH 参数在此时通常被认为是不足的.

对于 MODP 临时 DH, 部署者在配置其 TLS 端点时应该仔细评估互操作性与安全性考虑.