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

By:?Johan

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

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

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

质疑

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

??公钥加密:

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

????私钥解密:

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

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

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

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

Tether Treasury在TRON网络铸造10亿USDT:金色财经报道,Whale Alert数据显示,Tether Treasury在TRON网络铸造10亿USDT。[2023/2/13 12:04:00]

扭曲攻击漏洞

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

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

ECDH算法?险

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

下?是ECDH算法的步骤:

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

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

Ronin攻击者相关地址7次陆续转出超 2.3万枚ETH:据欧科云链链上天眼监测显示,Ronin Network 攻击者相关地址(12 天前由攻击者地址转入23528 枚)于北京时间 5 月 18日 10:33:32 转出地址下5505.7枚 ETH,当前地址余额基本清零。据OKLink ETH浏览器显示,该相关地址从5月14日17:06:07开始,陆续转出7次,累计转出23,525.5枚ETH(约4900万美元),转出后再以100 枚 ETH/笔的数量转入Tornado.Cash。[2022/5/18 3:24:00]

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

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

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

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

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

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

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

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

AndreCronje发文解释其ve(3,3)DeFi产品:1月6日消息,Yearn.finance创始人Andre Cronje发文介绍“ve(3,3)”,解释基于“潜在未来”释放的代币如何平衡生态系统参与者。该产品机制与Curve相似,将产品Token锁仓可获得具有影响矿池利率权利的veToken,Token发行量每周递减且由veToken数量决定,veToken数量越多,Token发行量越少。此外,veToken可作为NFT在二级市场交易,解决锁仓资产的流动性问题。[2022/1/6 8:30:07]

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

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

事件结论

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

波场TRON连续7日每日交易数均突破450万次:据TRONSCAN最新数据显示,6月14日至6月20日,波场TRON每日交易数均突破450万次。截止目前,波场TRON交易总数已达2,035,430,825,突破20.3亿。波场TRON各项数据一直稳中前进,波场生态逐渐强大的同时,也将迎来更多交易量。[2021/6/21 23:52:52]

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

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

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

动态 | 由TRONZ团队研发的多方计算火炬激励计划人数已突破60人:据最新官方消息,由TRONZ团队研发的多方计算(MPC)火炬激励计划人数已突破60人。多方计算火炬计划是由波场匿名技术社区开发团队TRONZ发起,波场创始人孙宇晨是TRONZ多方计算的第9位参与者。TRONZ作为波场TRON公链的匿名技术社区开发团队,已成功完成匿名交易公测与测试网的顺利部署,匿名交易即将上线主网。为表达对隐私协议先驱者的敬意,TRONZ基金会将以火炬激励计划参与者的名义,向隐私协议基金会捐赠100美元。目前TRONZ正在开展主网多方计算流程,并将围绕本次多方计算流程开展多方计算火炬计划。详情请查看链接[2020/2/15]

意犹未尽

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

1.如何构造扭曲的点?

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

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

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

使?sagemath数学软件来表示:

p=2**255-19E=EllipticCurve(GF(p),)

然后我们计算它的阶数,并对这个阶数进?因式分解:

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(,)P1=x*G

到这?我们就得到了第?个扭曲的点,把它当作公钥发送给Bob,Bob就可以计算第?个共享密钥:

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

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

x=crt(,)print(x==b)print(hex(x))

总结

本?我们通过?个不同常理的对话开始研究了椭圆曲线加密算法中的扭曲曲线攻击,分析了漏洞的存在的原因,虽然漏洞利?场景有限,但不失为?个很有价值的漏洞,希望能对?家的学习研究有所启发。

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

参考资料:

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

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

.GitHub-openpgpjs/openpgpjs:OpenPGPimplementationforJavaScript

.Ellipticcurveconstructor-Ellipticcurves

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

酷币巨头AI混战背后 “卖水的”赚麻了

继文心一言发布、微软全线接入GPT-4后,大佬们又有新动作了。3月21日晚上11点,GTC2023开幕,英伟达CEO黄仁勋发表演讲,78分钟内四次提到”AI迎来了iphone时刻“,引发一众哗然.

XLM基于 2-of-2 多方安全计算的 MACI 匿名化方案

这篇文章将展示基于2-of-2MPC技术的MACI匿名化方案的具体实现。本文核心内容主要分为三个部分:从任意算法到逻辑电路的实现;从逻辑电路到混淆电路的实现;利用不经意传输实现多方安全计算。最后,我们总结基于多方安全计算的匿名化方案.

[0:0ms0-1:932ms