据慢雾安全团队情报,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存在的是怎么样的?个漏洞。
波场TRON账户总数突破4300万:2021年7月1日,根据TRONSCAN最新数据显示,波场TRON账户总数达到43,006,551,突破4300万。波场TRON各项数据稳中前进,波场生态逐渐强大的同时,也将迎来更多交易量。[2021/7/1 0:19:47]
扭曲攻击漏洞
经过分析,我们发现eth-ecies使?了?"elliptic":"^6.4.0",这是个Javascript椭圆曲线库,这个版本的库存在多个安全漏洞,其中?个就是扭曲曲线攻击漏洞(twistattacks),这个漏洞的成因是在计算ECDH共享密钥时没有验证对?的公钥是否在曲线上,攻击者可通过构造??群曲线上的公钥,诱导受害者计算共享密钥,从?破解出受害者私钥。
但是这个漏洞的利?难度是很?的,需要有?常契合的场景才能发起攻击,RoninExploiter是否有机会发起扭曲攻击呢?
ECDH算法?险
ECDH算法是基于椭圆曲线加密的密钥交换算法。它与传统的Diffie-Hellman(DH)算法类似,但是使?的是椭圆曲线上的数学运算来实现密钥交换,从?提供更?的安全性。
下?是ECDH算法的步骤:
1.?成椭圆曲线:在密钥交换之前,通信双?需要选择?个椭圆曲线,该曲线必须满??些数学特性,例如离散对数问题。
波场TRON新版吉祥物“波牛TRON-BULL”正式发布:据最新消息,波场TRON新版吉祥物“波牛TRON-BULL”已正式发布,新版吉祥物“波牛TRON-BULL”的核心创意来自TRON Logo中的“T”字母恰巧与牛头的结构神似,因此整体的IP视觉升级都是围绕于此展开,波场TRON还希望以此为行业带来希望和力量,为品牌注入新的生机动力。新版吉祥物“波牛TRON-BULL”有四个故事场景,分别是雨林、月球、沙漠、科幻,每一个故事场景都是一段探险旅程,他们共同构成一个完整的探险故事拼图。
此外,“波牛TRON-BULL”的系列表情包和周边也已上线。波场TRON的品牌使命是“让互联网重新去中心化”,技术驱动,引领全球区块链技术不断向前发展,品牌愿景是成为全球最值得信赖的人类下一代金融基础设施,而这一切,都将因波场TRON新版吉祥物“波牛TRON-BULL”的诞生而被赋予更多意义。[2021/1/5 16:29:59]
2.?成私钥和公钥:每个通信?都需要?成?对私钥和公钥。私钥是?个随机数,?于计算公钥。公钥是?个点,它在椭圆曲线上,并由私钥计算得出。
3.交换公钥:通信双?将??的公钥发送给对?。
4.计算共享密钥:通信双?使?对?发送的公钥和??的私钥计算出?个共享密钥。这个共享密钥可以?于加密通信中的数据,保证通信的机密性。
为了?便描述下?Alice和Bob分别代表上?双?,G为基点,假设:
Alice的私钥是a,则Alice公钥是A=aG;
Bob的私钥中b,则Bob公钥是B=bG。
核?知识点在共享密钥计算?法,根据群的乘法交换律,他们只要获取到对?的公钥就可以计算出共享密钥:
以波场TRON网络为基础发行的稳定币借贷平台JUST已被DApp Total收录:据最新消息显示,以波场TRON网络为基础发行的稳定币借贷平台JUST已正式被DApp Total收录,用户可以在DApp Total平台上查看JUST项目的用户数、交易额、排名等基本数据。JUST旨在建立一个公平、去中心化的金融系统,为世界各地的用户提供稳定的货币借贷和治理机制。此外,JUST(JST)作为Poloniex(P网)LaunchBase首发项目,将于5月5日正式上线。[2020/4/22]
????????????????????????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。
需要多少个扭曲点呢?这取决于每?次选择的阶数?q,需要阶数相乘能超过私钥的最?值,即满?:
声音 | Byron Berry:对区块链创新的规模和复杂性充满信心:据coincryptorama报道,近日,Coreventus首席执行官Byron Berry表示,区块链、加密货币、大麻和电子竞技是资本市场关注的焦点。加密货币和区块链市场资金流入方面有点平静,但对区块链创新的规模和复杂性充满信心。[2018/12/14]
如果我每次选择的?q???点,那么需要交互的次数?n?就可以少?点,但?q?越?意味着穷举的难度越?,所以这?需要根据Alice的运算性能做?个取舍。
事件结论
上?我们分析了ECDH算法的?险和攻击原理,我们再回来看eth-ecies这个库,实际上它使?的只是?个类似ECDH的算法,它在构造共享私钥时使?的是临时密钥,根本不需要?到加密?的私钥,所以并不会对加密?构成?险。
那么有没有可能RoninExploiter是想利?社会?程学引导EulerExploiter使?其它有问题的?具呢??如我们熟知的PGP加密协议?
巧的很,我们很快就发现被?泛使?的开源库openpgpjs最新版本v5.7.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
By:Johan
来源:DeFi之道
标签:RONtronTROETHTronLink官方下载苹果TronWalletXPETROethylenediaminetetraaceticacid
3月27日消息,根据美国商品期货交易委员会(CFTC)发布的诉讼文件,文件中提到了多段关于CZ使用Signal聊天应用的聊天记录,包括他与Binance员工、美国客户等之间的聊天.
1900/1/1 0:00:00本文来自decrypt,原文作者:AndréBeganski3月25日,NFT投资者BrandonRiley意外发现自己以77ETH价格购买的CryptoPunk?被他不小心发送到销毁地址后化为.
1900/1/1 0:00:00长期以来,Rollup一直是扩展以太坊的重要计划。通过在单独的链上执行交易并将压缩的结果批次发布回以太坊,与L1相比,交易吞吐量明显更便宜且性能更高.
1900/1/1 0:00:00来源:美国SEC投资者教育和宣传办公室译/金色财经xiaozou要点:美国证券交易委员会投资者教育和宣传办公室继续敦促投资者在做加密资产证券有关投资考虑时需保持谨慎.
1900/1/1 0:00:00作者:FxstreetEktaMourya编译:PANews就在ARB代币空投几天后,3月28日.
1900/1/1 0:00:00原文:《别再只盯着Layer2空投,Layer1或将风云再起》作者:比推BitpushNewsAsherZhang哪些Layer1项目值得关注?加密大V都看好哪些项目?这些项目大热背后的深层逻辑.
1900/1/1 0:00:00