By: Johan
據慢霧安全團隊情報,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 的私鑰。
Andre Cronje新項目Solidly總鎖倉量達到10.4億美元:2月25日消息,據 Defi Llama 數據顯示,Andre Cronje 新項目 Solidly 總鎖倉量目前達到 10.4 億美元,在部署過 Fantom 鏈的 Defi 項目中排名第 2 位。此前報道,Solidly 是 DEX 類項目,官方表示該合約暫時仍在測試階段,資金損失風險高,且目前沒有 Token 發行,參與 Solidly 暫無任何收益。[2022/2/25 10:15:53]
是否真的如此?且讓我們先分析?下 eth-ecies 存在的是怎么樣的?個漏洞。
經過分析,我們發現 eth-ecies 使?了 "elliptic": "^6.4.0",這是個 Javascript 橢圓曲線庫,這個版本的庫存在多個安全漏洞,其中?個就是扭曲曲線攻擊漏洞(twist attacks),這個漏洞的成因是在計算 ECDH 共享密鑰時沒有驗證對?的公鑰是否在曲線上,攻擊者可通過構造??群曲線上的公鑰,誘導受害者計算共享密鑰,從?破解出受害者私鑰。
但是這個漏洞的利?難度是很?的,需要有?常契合的場景才能發起攻擊,Ronin Exploiter 是否有機會發起扭曲攻擊呢?
ECDH 算法是基于橢圓曲線加密的密鑰交換算法。它與傳統的 Diffie-Hellman (DH) 算法類似,但是使?的是橢圓曲線上的數學運算來實現密鑰交換,從?提供更?的安全性。
波場TRON話題#TRONAnniversary已上土耳其、印度和俄羅斯推特熱搜:據最新消息顯示,波場TRON話題#TRONAnniversary已上土耳其、印度和俄羅斯推特熱搜。據悉,新加坡時間7月7日晚九點,波場TRON將舉行波場大航海時代4.0全球線上發布會。TRON 4.0主要升級內容如下:1.波場TRONZ匿名協議升級;2.TPOS新二層共識機制。新共識機制為跨鏈協議可將區塊確認時間從57秒縮短至3秒;3.新TICP跨鏈協議,實現了不同區塊鏈之間的資產互換和資產轉移;4.企業級一鍵發鏈,推出區塊鏈通用開發框架,包括共識機制、P2P網絡、區塊鏈數據庫、跨鏈、虛擬機、交易、加密等核心功能模塊。[2020/7/7]
下?是 ECDH 算法的步驟:
1. ?成橢圓曲線:在密鑰交換之前,通信雙?需要選擇?個橢圓曲線,該曲線必須滿??些數學特性,例如離散對數問題。
2. ?成私鑰和公鑰:每個通信?都需要?成?對私鑰和公鑰。私鑰是?個隨機數,?于計算公鑰。公鑰是?個點,它在橢圓曲線上,并由私鑰計算得出。
3. 交換公鑰:通信雙?將??的公鑰發送給對?。
4. 計算共享密鑰:通信雙?使?對?發送的公鑰和??的私鑰計算出?個共享密鑰。這個共享密鑰可以?于加密通信中的數據,保證通信的機密性。
為了?便描述下? Alice 和 Bob 分別代表上?雙?,G 為基點,假設:
Alice 的私鑰是 a,則 Alice 公鑰是 A = aG;
Bob 的私鑰中 b,則 Bob 公鑰是 B = bG。
推特官方正式推出波場TRON與TRX的emoji表情:據最新消息顯示,推特官方正式推出波場TRON與TRX的emoji表情。據推特用戶表示,目前已可在推特官方使用關于TRON與TRX的emoji表情,在推特上輸入#TRON、#TRX、#TRONAnniversary、 #TRONGrandVoyage、#TRONConference這五個話題時,即可在話題旁自動顯示相對應的波場TRON與TRX emoji表情。詳情請查看波場官方推特。[2020/7/3]
核?知識點在共享密鑰計算?法,根據群的乘法交換律,他們只要獲取到對?的公鑰就可以計算出共享密鑰:
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。
動態 | 跨ETH/EOS/TRON/IOST四大公鏈,DApp活躍度排行榜:據 DAppTotal 12月23日數據顯示,過去一周,綜合對比ETH、EOS、TRON、IOST四大公鏈的DApp生態情況發現:總用戶量(個): ETH(205,267) > TRON(45,723) > EOS(38,292) > IOST(4,741);總交易次數(筆):EOS(287,804,425) > IOST(4,974,087) > TRON(4,187,554) > ETH(1,005,848);總交易額(美元):EOS(85,738,753) > ETH(39,026,842) > TRON(26,929,848) > IOST(8,529,951);跨四條公鏈按用戶量TOP3 DApps為:BeeHive (ETH)(ETH)、cryptolegends(EOS)、Dice(EOS);按交易次數TOP3 DApps分別為:EIDOS(EOS)、iPirates(IOST)、WINk(TRON);按交易額TOP3 DApps分別為:Newdex(EOS)、BigGame(EOS)、EIDOS(EOS)。[2019/12/23]
需要多少個扭曲點呢?這取決于每?次選擇的階數 q,需要階數相乘能超過私鑰的最?值,即滿?:
如果我每次選擇的 q ??點,那么需要交互的次數 n 就可以少?點,但 q 越?意味著窮舉的難度越?,所以這?需要根據 Alice 的運算性能做?個取舍。
現場 | Certik CEO Ronghui Gu:形式驗證方法是實現計算機系統安全和隱私的可靠的方法:金色財經現場報道,NEO DevCon 2019開發者大會今日在西雅圖舉行,Certik CEO Ronghui Gu 做了以“建設可信的區塊鏈生態”主題演講。Ronghui Gu 表示,區塊鏈目前是十分脆弱的,有許多執行上的漏洞。攻擊區塊鏈的受益也是巨大的,據統計截止到2017年已經有6.3億美元的區塊鏈資產被黑客盜取。智能合約對黑客開源,一旦執行很難去修改, 我們應該去避免區塊鏈編程上的漏洞。程序的測試可以用于展示漏洞存在,但是它不能夠去顯示漏洞不存在。而形式驗證的方法是目前唯一可靠的方法去實現計算機系統的安全和隱私,形式驗證在數學上證明代碼滿足規范。[2019/2/17]
上?我們分析了 ECDH 算法的?險和攻擊原理,我們再回來看 eth-ecies 這個庫,實際上它使?的只是?個類似 ECDH 的算法,它在構造共享私鑰時使?的是臨時密鑰,根本不需要?到加密?的私鑰,所以并不會對加密?構成?險。
那么有沒有可能 Ronin Exploiter 是想利?社會?程學引導 Euler Exploiter 使?其它有問題的?具呢??如我們熟知的 PGP 加密協議?
巧的很,我們很快就發現被?泛使?的開源庫 openpgpjs 最新版本 v5.7.0 還在使?了低版本的 "@openpgp/elliptic": "^6.5.1" ,更巧的是,它?持基于 Curve25519 的 ECDH 協議,故事本應該進??潮,但經過分析發現,openpgpjs 的 ECDH 協議在實現時,和 Ecies 協議?樣引?了臨時密鑰,即使加密?導?了私鑰,也僅僅?于消息簽名,?不會?于構造共享密鑰。
故事結束了,我覺得 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
慢霧科技
個人專欄
閱讀更多
金色財經 善歐巴
金色早8點
白話區塊鏈
歐科云鏈
Odaily星球日報
Arcane Labs
MarsBit
深潮TechFlow
BTCStudy
鏈得得
一季度行情即將接近尾聲,比特幣和以太坊的走勢越來越趨同,幾乎完全相關。比推終端數據顯示,以太坊年初至今 (YTD) 上漲了 50.02%,但比特幣卻飆升了 72.30%,有望創下兩年來最佳的季度.
1900/1/1 0:00:00原文來源:CoinDesk 等, 鏈接請見文末“參考資料”原文編譯:Cecilia, bfrenz DAO加密貨幣仍處于初期發展階段,NFT 更是一種全新的資產類別.
1900/1/1 0:00:00與前兩年的一擁而上相反,目前微軟、Meta等科技巨頭紛紛削減或關閉元宇宙部門,我們不禁要問駛向元宇宙的科技巨輪已經拋錨了嗎?非也.
1900/1/1 0:00:00機構:Mint Ventures 作者:Colin Li 在ETH流動性質押之外,BNB與ATOM質押市場開始獲得投資者的注意力.
1900/1/1 0:00:00原文:《加速發展的Sui,能否成為下一個Layer1破局者》作者:Daniel LiSui正在從幕后走向前臺,向人們展示多年來積累的技術實力.
1900/1/1 0:00:00Binance 以巨大的優勢成為世界上最大的加密貨幣交易所。自 2017 年成立以來,它取得了持續的增長,但自 2020 年以來,其日益增長的主.
1900/1/1 0:00:00