Diffie Hellman 组匹配到 IPSec 加密算法

信息安全 diffie-hellman ipsec
2021-08-29 21:11:10

我正在寻求帮助确定特定 IPSec IKE 和 ESP 加密算法可接受的 Diffie Hellman (DH) 组。目标是选择 DH 组,为所选加密算法使用的密钥提供足够的保护,同时避免匹配不佳的 DH 组的不必要开销(较慢的 DH 组没有额外的安全优势?)。

我可以选择的特定加密算法包括具有各种密钥长度(128、256 等)的AES-CBCAES-GCM 。

我可以选择的Diffie Hellman Groups包括

  • 14 = 2048 位 MODP 组
  • 19 = 256 位随机 ECP 组
  • 20 = 384 位随机 ECP 组
  • 21 = 521 位随机 ECP 组
  • 24 = 2048 位 MODP 组和 256 位素阶子组

我从网络安全供应商文档中读到的一些信息建议使用 DH 椭圆曲线 (EC) 组,例如 19、20 和 21,而不是其他组

  • 思科 “如果可能,使用 ... ... ECDH 组”
  • 检查点
    • “椭圆曲线 Diffie-Hellman 群...提供更好的性能”
    • “不推荐使用 RFC 5114 (Group 24 ...) 中描述的组”
  • IBM “指南:如果您使用 128 位密钥的加密或认证算法,请使用 Diffie-Hellman 组 5、14、19、20 或 24。如果您使用密钥长度为 256 位的加密或认证算法或更大,请使用 Diffie-Hellman 组 21。”

对何时使用 Groups 14 和 24 感到特别困惑24比21强吗?我认为 21 更强,即使 DH 组号 24 更高(只是组标识符号)。我还认为第 19 组比第 14 组强 - 不是因为数字更高,而是因为 EC 算法更强?根据我的一些阅读,似乎按强度从低到高排序的组将类似于 14、24、19、20、21 - 这意味着如果可用,ECP 组 19、20、21 应该优先于14 和 24 都有吗?

这些加密讨论很容易导致高级数学,我希望尽可能避免这种情况——请尽可能使用最基本的解释或最简单的数学。

3个回答

2017 年 10 月 21 日更新。我在RFC 5114的第 4 节“安全注意事项”下找到了一些有用的信息。基于此建议,我们可以认为 DH 组 14 和 24 太弱而无法保护 AES 128 对称密钥 - 这使得DH 组 19 到 21 ECP 作为生成 AES 对称密钥(128 位和更高位)的最低可接受的 Diffie Hellman 组。

当使用适当大小的密钥时,下表提供了每个 Diffie-Hellman 组的强度近似值对于每个组,该表包含提供大致等效安全级别的 RSA 密钥大小和对称密钥大小。该数据基于 [NIST80057] 中的建议。

GROUP                                      |  SYMMETRIC |   RSA
-------------------------------------------+------------+-------
1024-bit MODP with 160-bit Prime Subgroup  |        80  |   1024
2048-bit MODP with 224-bit Prime Subgroup  |       112  |   2048
2048-bit MODP with 256-bit Prime Subgroup  |       112  |   2048
192-bit Random ECP Group                   |        80  |   1024
224-bit Random ECP Group                   |       112  |   2048
256-bit Random ECP Group                   |       128  |   3072
384-bit Random ECP Group                   |       192  |   7680
521-bit Random ECP Group                   |       256  |  15360

组号映射到RFC 5114 "IKE" Section中的 DH 算法名称。

NAME                                                    | NUMBER
--------------------------------------------------------+---------
1024-bit MODP Group with 160-bit Prime Order Subgroup   |   22
2048-bit MODP Group with 224-bit Prime Order Subgroup   |   23
2048-bit MODP Group with 256-bit Prime Order Subgroup   |   24
192-bit Random ECP Group                                |   25
224-bit Random ECP Group                                |   26
256-bit Random ECP Group                                |   19
384-bit Random ECP Group                                |   20
521-bit Random ECP Group                                |   21

我能够在“密码选择”标题下的strongSwan 安全建议文档中找到一些配对建议。

  • “aes128-sha256-modp3072(AES-CBC-128SHA-256 作为 HMAC和 DH 密钥交换,密钥长度为 3072 位)” DH-Group-15(在我的设备上不可用)
  • “aes128gcm16-prfsha256-ecp256(AES-GCM-128 AEAD、SHA-256 作为 PRF和 ECDH 密钥交换,密钥长度为 256 位)” DH-Group-19
  • “aes256gcm16-prfsha384-ecp384(AES-GCM-256 AEAD、SHA-384 作为 PRF和 ECDH 密钥交换,密钥长度为 384 位)” DH-Group-20

似乎配对建议可能松散地基于比利时 BlueKrypt keylength.com网站上列出的算法强度分析。

这是我能得到的最接近 diffie-hellman 算法配对推荐的方法。如果您找到其他有信誉的来源来选择匹配良好的 diffie-hellman 组以用于 IPSec 加密,请发布。

不要使用 DH 22,23 和 24。请参阅https://www.rfc-editor.org/rfc/rfc8247#section-2.4

组 22、23 和 24 是具有非安全素数的素数子组的 MODP 组。这些团体的种子尚未公开发布,导致对这些团体的信任度降低。这些组被提议作为第 2 组和第 14 组的替代方案,但从未得到广泛部署。已经表明,具有 1024 位 MODP 的第 22 组太弱了,学术界有资源来生成这种大小的恶意值。这导致第 22 组被降级为 MUST NOT。第 23 组和第 24 组已降级为 SHOULD NOT,预计在不久的将来会进一步降级为 MUST NOT。由于组 23 和 24 具有较小的子组,因此“Internet 密钥交换协议版本 2 (IKEv2) 的附加 Diffie-Hellman 测试”第 2.2 节的第一个项目符号中指定的检查

对此发表评论有点晚,但您所说的并不完全正确。

RFC 5114 第 4 节“安全注意事项”下的有用信息

这些注意事项适用于 RFC5114 中明确定义的转换。以第 3.2 节为例:

然而,在 ECP Diffie-Hellman 组的情况下,迄今为止,密钥交换有效负载的格式和共享秘密的派生是在逐个组的基础上指定的。对于本文档中定义的 ECP Diffie-Hellman 组,必须使用 [RFC4753] 中指定的密钥交换有效负载格式和共享密钥派生过程(IKEv2 和 IKEv1)。

由于在 RFC5114 中定义的三个变换使用带有 ECP 素数子组的 MODP,因此关于 MODP 的评论在逻辑上应该被理解为仅表示这三个变换,因为第 3.2 节清楚地说明了 MODP,即单独的 MODP,在其他地方定义并且可以说包括他们自己的相关安全考虑部分。

在 [RFC4306] 中定义了带有 IKEv2 的 MODP Diffie-Hellman 组的使用,而带有 IKEv1 的 MODP 组的使用在 [RFC2409] 中定义。

RFC5114 不会取代 RFC4306 或 RFC2409,因此不应将其安全考虑部分解释为完全使 MODP 的使用完全无效,正如前面的评论和表格所暗示的那样。这并不是说 ECP 在某些情况下并不比 MODP 好,但 MODP (DH15+) 仍然可以说与 ECP 一样有效,至少目前如此,而且取决于您的设备,实际上可能提供更高的性能优于 ECP。除了 DH21,DH15-18 (MODP) 可以提供与 DH(19-20) 相当相似的安全性。有关 MODP 转换的估计位强度,请参阅 RFC3526 的安全注意事项部分。

   +--------+----------+---------------------+---------------------+
   | Group  | Modulus  | Strength Estimate 1 | Strength Estimate 2 |
   |        |          +----------+----------+----------+----------+
   |        |          |          | exponent |          | exponent |
   |        |          | in bits  | size     | in bits  | size     |
   +--------+----------+----------+----------+----------+----------+
   |   5    | 1536-bit |       90 |     180- |      120 |     240- |
   |  14    | 2048-bit |      110 |     220- |      160 |     320- |
   |  15    | 3072-bit |      130 |     260- |      210 |     420- |
   |  16    | 4096-bit |      150 |     300- |      240 |     480- |
   |  17    | 6144-bit |      170 |     340- |      270 |     540- |
   |  18    | 8192-bit |      190 |     380- |      310 |     620- |
   +--------+----------+---------------------+---------------------+

其他需要考虑的来源是:

后者是 RFC 5114 最初提到的 NIST 文档的最新版本。下表来自第 55 页,其中 FFC 等于 MODP DH 组,ECC 等于 ECP DH 组,与 RFC5114 和 RFC3526 进行比较时应该很有用。

NIST SP800-57pt1r5 加密比较强度表