在定义 IPSec VPN 隧道时,表现选择“更强”的第 1 阶段设置(例如 AES256/SHA1/DH5 优于 DES/MD5/DH1)会产生什么影响?
例如,有人告诉我 AES-256 比 AES-128 慢 40%(我想这是合理的),但我是否可以认为,总体“明显”的隧道吞吐量只有在以下情况下才会真正受到影响:阶段2?
我认为指定/优先考虑更强大的第 1 阶段设置仅意味着端点在启动时(以及在生命周期间隔内)需要更长的时间进行身份验证,而不是降低隧道的吞吐量,因此我应该根据算法强度而不是性能对 IKE 提案进行优先级排序(由 Cisco ASA 设备中的所有隧道共享)。
我走在正确的道路上吗?
(在和一些人讨论过之后安全.SE,我想我有一个偏好基于安全更强大的算法;现在,我更感兴趣的是表现方面)
答案1
正确,第 1 阶段算法仅对连接设置和重新密钥有影响,而不会对 IPsec 隧道吞吐量产生影响,正如您所提到的,IPsec 隧道吞吐量仅受第 2 阶段算法的影响。
但是,第 1 阶段期间的身份验证性能不受这些算法的影响,因为它仅取决于所使用的秘密类型(例如 ECDSA/RSA 密钥及其长度)。
IKE 数据包与……相比,通常很稀有且相当小ESP 数据包用于实际隧道流量(即使使用了死对等检测之类的东西,也会导致常规 IKE 流量)。因此,更强的加密通常可以忽略不计。用于验证每个数据包的完整性算法也是如此。后者算法也用于构建基于 HMAC 的伪随机函数 (PRF) 来派生加密和完整性密钥(也用于第 2 阶段),但这只会发生一次 - 并且每次重新密钥化时都会发生。
影响第 1 阶段性能的主要因素是 Diffie Hellman 交换。由于它也只发生一次(并且对于第 1 阶段和第 2 阶段的每次重新密钥,如果完美前向保密在使用时)可能不是问题,但如果隧道经常建立且由大量用户建立,则可能会出现问题。此处提高性能的选项是根据以下公式减小指数大小:RFC 3526,使用专门的硬件来加速DH,或者切换到体外循环氢可酮代谢,这比更常用的模指数(MODP)DH 群要快得多。
此外,为了避免由于加密/身份验证而产生的开销,特别是如果您的硬件可以加速 AES,例如通过AES-NI指令集, 这加密标准算法是一个很好的选择,因为它可以同时加密和验证数据包(也存在基于 AES 的 PRF,例如加密加密算法或者加密算法)当然,这一方面对于第二阶段来说更为重要。