技术细节 攻击原理 攻击方式 - 恶意客户端发起加密握手,伪装成只支持临时变体的有限域Diffie-Hellman密钥协议(DHE),触发服务器侧的密钥对生成和共享秘密计算。服务器需进行计算密集型的模幂运算,而恶意客户端无需太多计算资源。 正常流程 - 在常规情况下,双方在Diffie-Hellman密钥协议中进行相同的密钥生成和共享秘密计算,理论上双方的计算成本相同。 - 恶意客户端可强迫服务器执行模幂运算,随后中断连接。如TLS < 1.3,初始加密握手消息无需客户端公钥即可发送。 其它协议 - TLS 1.3、SSH等要求客户端在服务器计算其密钥前发送公钥。此时恶意客户端发送任意数字作为公钥,省略模幂运算。但共享秘密计算导致服务器重复模幂运算,最终密钥交换失败。 发展的危害程度 问题本质 - D(HE)at攻击源于协议缺陷,利用Diffie-Hellman密钥协议的特殊性。恶意客户端迫使服务器执行CPU密集型运算而无需资源耗费,此为程序实现问题而非加密库缺陷。 严重性 - 攻击使服务器无法区分模幂运算结果与随机选自$\mathbb{Z}_p^$的数字($A\equiv g^a\mod p$),造成无工作量证明下的CPU资源浪费。 - 实现缺陷影响攻效力度,如大指数问题(CVE-2022-40735)。 受影响的库 大指数问题(CVE-2022-40735) - 某些加密库使用长指数$(a, b)$,导致公钥$(B\equiv g^b\mod p)$计算过度昂贵。 却必要的验证(CVE-2024-41996) - 为避免小子群限制攻击,需根据NIST SP 800-56A Rev 3验证对等点公钥顺序。部分库忽略此验证,允许攻击者触发资源密集型公钥生成。 默认大密钥大小 - 加密库或应用服务器使用更大参数大小(例如ffdhde6第44次或ffdhde8第92次),默认配置下造成更多的资源要求,如OpenSSL。 受影响的库列表