返回论坛

扭曲攻击漏洞深度剖析:Ronin黑客的“计中计”与ECDH协议安全风险

查找币 漏洞披露 安全研究 Web3安全 区块链安全

查找币安全研究院

钱包恢复评估 | 链上取证分析 | Web3 事件响应
以合法授权、证据保全、隐私保护和可复核流程为前提,不要求用户在线提交完整私钥或助记词。

查看研究院 研究报告中心
## 事件背景:链上加密消息背后的疑云 2023年3月13日,Ethereum链上的借贷协议Euler Finance遭遇攻击,攻击者获利约2亿美元。令人玩味的是,黑客在得手后,向此前盗取Ronin跨链桥6.25亿美元的Lazarus Group(拉撒路)转账了100 ETH。作为回应,Lazarus Group回赠了2 ETH,并附带了一条链上加密消息,提示Euler黑客使用`eth-ecies`库解密。 这一看似寻常的“加密通讯”行为,迅速引发了安全社区的质疑。为何在公开链上环境下,攻击者不直接使用标准的公钥加密方案,而要选择存在争议的`eth-ecies`?很快,有研究者指出该库存在“扭曲攻击漏洞”(Twist Attack),Ronin黑客的真正意图可能是窃取Euler黑客的私钥。 ## 技术分析:扭曲攻击漏洞的原理与成因 ### 1. 标准公钥加密 vs. eth-ecies 标准的椭圆曲线公钥加密方案(如ECIES)流程如下: - **加密**:`C = {rG, M + rQ}`,其中`C`为密文,`r`为随机数,`G`为基点,`Q`为接收方公钥,`M`为消息。 - **解密**:`M = C2 - d(C1)`,其中`d`为接收方私钥。 该协议的核心优势在于:加密过程无需使用私钥,因此不存在私钥泄露路径。而`eth-ecies`库的实现却引入了额外风险。 ### 2. 漏洞根源:elliptic库的扭曲曲线攻击 经过代码审计,我们发现`eth-ecies`依赖了`elliptic`库的`^6.4.0`版本。该版本存在多个安全漏洞,其中最关键的便是**扭曲曲线攻击**。漏洞成因在于:计算ECDH共享密钥时,未验证对方公钥是否在目标椭圆曲线上。 攻击者可以构造一个位于“扭曲曲线”(Twist Curve)上的恶意公钥点`H`,诱导受害者使用该点计算共享密钥。由于扭曲曲线的阶(点的数量)通常远小于原曲线,攻击者可通过穷举法,在有限计算量内恢复出受害者的私钥模数。 ### 3. ECDH算法风险详解 ECDH(Elliptic Curve Diffie-Hellman)是密钥交换的经典算法,其安全性依赖于椭圆曲线离散对数问题的难解性。标准流程如下: 1. 双方协商椭圆曲线和基点`G`。 2. 各自生成私钥`a`、`b`,并计算公钥`A = aG`、`B = bG`。 3. 交换公钥后,计算共享密钥`S = aB = bA`。 **攻击场景**:假设Alice(攻击者)想窃取Bob的私钥`b`。 - Alice构造一个阶`q`很小的扭曲曲线点`H`(非有效公钥,但Bob无法区分)。 - Bob使用私钥`b`计算`S' = bH`。由于`H`的阶很小,`S'`只落在少量点构成的循环子群中。 - Alice通过穷举找到`x`,使得`S' = xH`,从而得到`b ≡ x mod q`。 仅一次交互只能获得一个模余,而私钥本身是一个大数(如256位),需要多次交互才能唯一确定。攻击者需构造多个不同阶的扭曲点`H`,使得各阶的乘积大于私钥的最大值。阶越大,穷举难度越高;交互次数越多,攻击效率越低。攻击者需在两者间权衡。 ## 事件结论:攻击可行性评估 回到`eth-ecies`库本身,其实现的是**类似ECDH的算法**,但使用临时密钥(Ephemeral Key)计算共享密钥。这意味着**加密方不需要提供自己的私钥**,因此攻击者无法通过构造恶意公钥来直接窃取加密方的私钥。 然而,Ronin黑客的意图可能并非直接窃取Euler黑客的私钥,而是利用该漏洞**诱导对方解密消息,从而暴露其私钥**。具体而言: - Ronin黑客可能构造了一个包含恶意公钥的加密消息,该公钥位于扭曲曲线上。 - 当Euler黑客使用`eth-ecies`解密时,其私钥会参与共享密钥的计算,从而被部分泄露。 - 通过多次交互(如发送多条加密消息),Ronin黑客可逐步恢复出完整的私钥。 ## 防护建议:如何抵御扭曲攻击 1. **验证公钥合法性**:在计算ECDH共享密钥前,必须验证对方公钥是否在目标椭圆曲线上。可使用`curve.validate(point)`或`point.isOnCurve()`等函数。 2. **升级依赖库**:将`elliptic`库升级至`^6.5.4`及以上版本,该版本已修复扭曲攻击漏洞。 3. **使用标准加密方案**:优先采用经过安全审计的加密库(如`openpgpjs`、`libsodium`),避免自行实现或使用小众库。 4. **实施密钥隔离**:对高频交互的私钥,建议采用分层确定性(HD)钱包机制,确保单次泄露不影响整体资产安全。 ## 总结 本文从Ronin黑客与Euler黑客的链上“加密对话”切入,深入剖析了扭曲攻击漏洞的原理与ECDH算法的风险。尽管该漏洞利用场景有限(需攻击者诱导受害者多次解密),但在Web3安全领域仍具有重要警示意义——任何未经验证的输入都可能成为攻击入口。 查找币安全团队提醒所有开发者与协议方:在实现或集成加密协议时,务必遵循“零信任”原则,对公钥、签名等关键数据进行严格校验,避免因实现细节疏忽导致灾难性后果。 --- **本文由查找币安全团队整理发布**
在论坛中查看和回复