宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > 火必APP > 正文

Ronin 黑客计中计 你听说过扭曲攻击漏洞吗

作者:

时间:1900/1/1 0:00:00

据慢雾安全团队情报,2023 年 3 月 13 日,Ethereum 链上的借贷项目 Euler Finance 遭到攻击,攻击者获利约 2 亿美元。

黑客在攻击完 Euler 后,为了混淆视听逃避追查,转了 100 ETH 给盗取了 Ronin 6.25 亿多美金的黑客拉撒路。拉撒路顺水推舟将计就计,随即给 Euler 黑客发了一条链上加密消息,并回礼了 2 枚 ETH:

消息内容是提示 Euler Exploiter 用 eth-ecies 解密这条消息。

按道理说在公开的环境下,如果 Ronin Exploiter 只是想加密通讯,使?公钥加密是最简单的?案。

    公钥加密:

C = {rG, M + rQ} = {C1, C2}

    私钥解密:

M = M + r(dG) ? d(rG) = C2 ? d(C1)

其中密? C,公钥 Q,私钥 d,随机数 r,消息 M。协议很简单,加密过程不需要?到的私钥,不存在私钥泄露的路径。

使? eth-ecies 加密是因为?便还是另有所图?随后很快就有?指出 eth-ecies 存在安全漏洞,Ronin Exploiter 是想窃取 Euler Exploiter 的私钥。

数据:Elrond链上DeFi锁仓量近20亿美元,24h增长约50%:11月23日消息,据DeFi LIama数据显示,Elrond(EGLD)链上DeFi锁仓量达19.9亿美元,创历史新高,24h增长51.33%。公链锁仓量排名位居第十位。目前 Elrond 上锁仓占比最高的协议为 Maiar Exchange(MEX),份额近 100%。[2021/11/23 7:06:44]

是否真的如此?且让我们先分析?下 eth-ecies 存在的是怎么样的?个漏洞。

经过分析,我们发现 eth-ecies 使?了 "elliptic": "^6.4.0",这是个 Javascript 椭圆曲线库,这个版本的库存在多个安全漏洞,其中?个就是扭曲曲线攻击漏洞(twist attacks),这个漏洞的成因是在计算 ECDH 共享密钥时没有验证对?的公钥是否在曲线上,攻击者可通过构造??群曲线上的公钥,诱导受害者计算共享密钥,从?破解出受害者私钥。

但是这个漏洞的利?难度是很?的,需要有?常契合的场景才能发起攻击,Ronin Exploiter 是否有机会发起扭曲攻击呢?

ECDH 算法是基于椭圆曲线加密的密钥交换算法。它与传统的 Diffie-Hellman (DH) 算法类似,但是使?的是椭圆曲线上的数学运算来实现密钥交换,从?提供更?的安全性。

下?是 ECDH 算法的步骤:

1. ?成椭圆曲线:在密钥交换之前,通信双?需要选择?个椭圆曲线,该曲线必须满??些数学特性,例如离散对数问题。

Loot创始人在Fantom部署合成Loot ,或与Andre Cronje的Rarity游戏进行链接:9月15日消息,Loot项目的创始人Dom Hofmann发推表示已在Fantom上部署合成Loot(Synthetic Loot),Yearn Finance创始人Andre Cronje转发该推特称:与Dom讨论了很多想法,有一些是很不错的,很快将进行元宇宙的链接。

此前,Loot 曾对所有以太坊地址推出合成 Loot,根据给定的钱包地址返回合成 Loot 代币的虚拟 NFT,每个钱包只有一个,因为它不是真正的 NFT,所以不可铸造、转让、销售等。此外建立在 Loot 代币之上的创作者可以选择将合成 Loot 代币作为一种允许更广泛的冒险家参与生态系统的方式,同时仍然能够轻松区分原始 Loot 和合成 Loot 代币。[2021/9/15 23:26:06]

2. ?成私钥和公钥:每个通信?都需要?成?对私钥和公钥。私钥是?个随机数,?于计算公钥。公钥是?个点,它在椭圆曲线上,并由私钥计算得出。

3. 交换公钥:通信双?将??的公钥发送给对?。

4. 计算共享密钥:通信双?使?对?发送的公钥和??的私钥计算出?个共享密钥。这个共享密钥可以?于加密通信中的数据,保证通信的机密性。

为了?便描述下? Alice 和 Bob 分别代表上?双?,G 为基点,假设:

Alice 的私钥是 a,则 Alice 公钥是 A = aG;

Bob 的私钥中 b,则 Bob 公钥是 B = bG。

核?知识点在共享密钥计算?法,根据群的乘法交换律,他们只要获取到对?的公钥就可以计算出共享密钥:

动态 | 孙宇晨亲自参与TRONZ团队的隐私协议MPC过程:据官方最新信息,波场TRON创始人孙宇晨亲自参加了TRONZ团队的主网MPC过程,参与结果验证成功。此前,波场社区TRONZ团队完成匿名交易在波场网络上的公测,测试网已经顺利部署,并正式开启了主网MPC流程。TRONZ MPC过程得到了社区的大力支持,众多申请人参与报名。目前已经有多位申请人完成了MPC过程,后续参与人的MPC过程持续进行中。[2020/1/12]

                                               S = aB = a(bG) = b(aG) = bA

如果 Alice 想要刺探 Bob 的私钥,她可以选择?个阶数 q ?常?(点的数量?常少)的曲线点 H(这个点不是对应任何特定私钥的公钥,但是 Bob 并不知道),由于群是循环群,Bob 在计算 S′  = bH 时,他得到的 S′  将在这些少量点群以内。Alice 不知道 Bob 的私钥 b,但可以通过穷举得到满? S′ = xH 的 x,此时 b ≡ x  mod q 。显然 x 很?,最?为 q。

公告 | 波场TRON即将进行匿名交易公测:据波场TRON官方最新消息,波场TRON即将进行匿名交易公测,匿名交易可以隐藏交易发送方和接收方地址,交易金额以及交易输入输出之间的关系。TRON匿名交易通过zk-SNARKs零知识证明来实现,零知识证明依赖于一些公开的参数。通过一个多方计算协议(MPC),来透明和安全地生成这些公开的参数来防止匿名交易恶意攻击,只需要一位参与者是诚实的,就可以保证最终参数是安全的。[2019/12/17]

需要多少个扭曲点呢?这取决于每?次选择的阶数 q,需要阶数相乘能超过私钥的最?值,即满?:

如果我每次选择的 q ??点,那么需要交互的次数 n 就可以少?点,但 q 越?意味着穷举的难度越?,所以这?需要根据 Alice 的运算性能做?个取舍。

上?我们分析了 ECDH 算法的?险和攻击原理,我们再回来看 eth-ecies 这个库,实际上它使?的只是?个类似 ECDH 的算法,它在构造共享私钥时使?的是临时密钥,根本不需要?到加密?的私钥,所以并不会对加密?构成?险。

那么有没有可能 Ronin Exploiter 是想利?社会?程学引导 Euler Exploiter 使?其它有问题的?具呢??如我们熟知的 PGP 加密协议?

动态 | 《赛迪全球公有链技术评估指数》显示:在国产公链的排名中波场TRON暂居第一:据中国电子信息产业发展研究院(赛迪研究院)发布的第15期《赛迪全球公有链技术评估指数》显示,在新一期的赛迪全球公有链技术评估指数中,波场作为全球三大DApp平台之一,分别与EOS、以太坊位列此次榜单的前三名。另外,在国产公链的排名中,波场TRON稳坐国产公链排名第一。赛迪全球公有链技术评估工作自2018年初开始实施,由中国电子信息产业发展研究院下属的赛迪(青岛)区块链研究院组织实施,赛迪智库信息化与软件产业研究所、赛迪智库网络安全研究所、中国软件评测中心、《网络空间安全》杂志等共同参与。[2019/12/9]

巧的很,我们很快就发现被?泛使?的开源库 openpgpjs 最新版本 v5.7.0 还在使?了低版本的 "/img/2023525203653/5.jpg" />

故事结束了,我觉得 Ronin Exploiter 使?低版本 elliptic 存在的漏洞去隐秘的窃取 Euler Exploiter 私钥的可能性不?,?于那条链上消息,可能真的是为了共商?计,更进?步的图谋不轨需要更加?超的社会?程学?段了,但 Euler Exploiter 已经警觉。

上?提到了扭曲攻击的原理,实际?程实现上仍然有?个问题需要解决:

1. 如何构造扭曲的点?

2. 当 Bob ?共享密钥 S' 加密消息时,它并不会把 S' 传输给 Alice,因为根据协议 Bob 认为 Alice 是已经知道这个密钥的,那么 Alice 如何获取 S' 呢?

这?以 Curve25519 曲线为例,它的曲线?程是:

我们随意改变其中的?个参数,得到?条新的曲线,?如:

使? sagemath 数学软件来表示:

p = 2**255-19 E = EllipticCurve(GF(p), [0,48666,0,1,0])然后我们计算它的阶数,并对这个阶数进?因式分解:

Grp = E.abelian_group() G = Grp.gens() Gorder = G.order() print( "{0} = {1}".format(Gorder, factor(Gorder)) )计算结果:

...= 2 * 3049 * 14821 * 19442993 * 32947377140686418620740736789682514948650410565397852612808537选择 19442993 这个??适中的数,?中国剩余定理创建?个含有 19442993 个元素的?群: 

x = crt([1,0], [19442993, Gorder//19442993]) P1 = x * G到这?我们就得到了第?个扭曲的点,把它当作公钥发送给 Bob,Bob 就可以计算第?个共享密钥:

最终得到的结果可表示为:

使?中国剩余定理即可计算出私钥 b:

x = crt([ x1, x2, x3, x4, x5, x6, x7, x8, x9], [ 19442993, 3645143, 184879577, 5110460161, 15272631587, 208137522259, 64927105657, 60824497, 213156431]) print(x == b) print(hex(x))总结本?我们通过?个不同常理的对话开始研究了椭圆曲线加密算法中的扭曲曲线攻击,分析了漏洞的存在的原因,虽然漏洞利?场景有限,但不失为?个很有价值的漏洞,希望能对?家的学习研究有所启发。

最后,感谢领先的?站式数字资产?托管服务商 Safeheron 提供的专业技术建议。

参考资料:

.https://etherscan.io/tx/0xcf0b3487dc443f1ef92b4fe27ff7f89e07588cdc0e2b37d50adb8158c697cea6

. https://github.com/LimelabsTech/eth-ecies

. GitHub - openpgpjs/openpgpjs: OpenPGP implementation for JavaScript

. Elliptic curve constructor - Elliptic curves

By: Johan

来源:DeFi之道

DeFi之道

个人专栏

阅读更多

金色财经 善欧巴

金色早8点

白话区块链

欧科云链

Odaily星球日报

Arcane Labs

MarsBit

深潮TechFlow

BTCStudy

链得得

标签:BSPNBSRONOOTBSPAYnbs币未来价格iron币矿池Football Decentralized

火必APP热门资讯
LSDFi 协议 0xAcid 的 90% APR 是真实收益吗?

注:本文主要介绍 LSDfi 协议 0xAcid ,不作任何投资建议以太坊上海升级完成后,ETH 的质押收益率可以看作是以太坊的无风险国债利率,基于这一利率衍生出了多种 LSDFi 协议,在近期都获得了大量的曝光.

1900/1/1 0:00:00
诸神觉醒:网络国家和TSI的兴起

原文作者:Jingyi,云起方达创始人、LD Capital Advisor(Twitter:/img/2023525205117/0.jpg" />14 世纪-16 世纪.

1900/1/1 0:00:00
Vitalik:以太坊多客户端将如何与ZK-EVM交互?

作者:Vitalik;翻译:金色财经0x25一种未被充分讨论但非常重要的以太坊维护其安全性和去中心化的方式是其多客户端理念.

1900/1/1 0:00:00
加息亏资本金 缩表亏准备金

作者:川越牛熊 本次硅谷银行和瑞士信贷的根源是加息缩表引起的,但媒体少有报道瑞士信贷巨额亏损的原因,本文我们尝试从债券现货和衍生品交易角度扒一扒硅谷银行和瑞士信贷暴雷的异同和关联.

1900/1/1 0:00:00
零知识机器学习 (ZKML) :ZK与AI将会碰撞出怎样的火花?

原文标题:《AN INTRODUCTION TO ZERO-KNOWLEDGE MACHINE LEARNING (ZKML)》原文来源:Worldcoin原文编译:深潮 TechFlowZero-Knowledge 机器学习(ZKM.

1900/1/1 0:00:00
火爆出圈的最强 AI GPT 是否可用于合约安全审计?

前言 近期 ChatGPT 爆火,其对传统文字工作的效率提高及总结能力让使用者惊艳。紧随其后 CodeGPT 这样基于 GPT 的插件出现,也充分体现了其对代码编写效率的提高.

1900/1/1 0:00:00