還原 EOS「彩虹」攻擊始末,看小疏忽如何釀成大災難

最近,EOS中文治理社區EMAC,已經接到六起報告EOS丟失的事件,丟失的EOS數量從幾十個到幾十萬個不等,直接造成上千萬數字資產損失,而資產被盜的原因大多是開通賬戶註冊過程中常見的小問題:比如,助記詞選擇,賬戶有效性核實等。事實上,這些問題如果持幣者和開發者都具備一定安全認知的話,是可以被有效避免的。我們不妨來看看,這些容易被用戶忽視的小問題,是如何釀成大災難的呢?近日,區塊鏈安全公司PeckShield在分析EOS賬戶安全性時發現,部分EOS用戶正在使用的秘鑰存在嚴重的安全隱患。問題的根源在於部分秘鑰生成工具允許用戶採用較弱的助記詞組合,而通過這種方式生成的秘鑰很容易存在“彩虹”攻擊,進而導致賬戶數字資產被盜。

“彩虹”攻擊的原理

這裡所指的“彩虹”攻擊也通常被稱作彩虹表攻擊,它是一種破解哈希算法的技術,是一個針對各種字母組合預先計算好的哈希值集合,主要可破解MD5/HASH等多種密碼。早在1980年,公鑰密碼學提出者之一Hellman針對DES算法提出了這種攻擊方式,之後在2003年瑞典的Philippe Oechslin提出了一種高效破解windows開機密碼的時空折中算法,並命名為彩虹表攻擊。

用戶註冊私鑰時,系統為了幫助用戶記憶私鑰會生成一個助記詞,助記詞是明文私鑰的一種表現形式,其目的是為了幫助用戶記憶複雜的私鑰(64位的哈希值)。通常情況下,助記詞一般由12、15、18、21個單詞構成,且組合詞越多破解難度就越大。有一些私鑰生成工具在生成助記詞時,允許用戶採用較弱的助記詞組合,比如:0個、1個。

還原 EOS“彩虹”攻擊始末,看小疏忽如何釀成大災難

(“彩虹”攻擊過程圖示)

圖中“X”指代的是才採用1個助記詞的組合,Y是一個生成助記詞類哈希的一種算法(暗箱),X經過Y之後,會變成一串公鑰和私鑰的組合,我們把它當成一串串64位字符,我們可以將這些字符串和跑在EOS公鏈上的公鑰進行碰撞配對,一旦有公鑰匹配成功,相應的私鑰也會暴露在黑客的視野之下,黑客就可以控制住用戶的賬戶,盜取數字資產。

“彩虹”攻擊的危害及防範措施

EOS主網已經上線運行一段時間了,然而整個社區生態面臨的挑戰絲毫沒有減弱,存在多種安全威脅。用戶除了上述使用助記詞不規範情況下存在的安全威脅,私鑰的創建工具本身具有較大安全隱患時也能造成私鑰被盜。

比較糟糕的是,一旦用戶EOS被黑客以上述方式竊取了,除非主網分叉,不然以目前EOS生態是沒有辦法找回的。EOS有一個專門解決這些問題的機構叫ECAF(核心仲裁論壇),即是如此仲裁也需要得到BP 2/3以上的共識來修改數據,成本比較高。因此只有特大金額的盜竊問題才能通過ECAF來解決,一些較小的安全危機,只能用戶自己來承擔損失。

還原此次“彩虹”攻擊始末,由於“彩虹”攻擊並非針對合約的漏洞進行攻擊,黑客利用的是用戶行為不規範產生的疏漏,進而用類似窮舉的方式進行暴力破解。通常用戶在註冊生成錢包過程中,用戶網絡賬號密碼的管理、助記詞的使用規範等基礎安全防護工作做得不到位的話,黑客就容易找到實施“彩虹”攻擊的可能。

其危害歸根結底還是用戶和開發商安全防範意識的薄弱導致的,因此需要參與EOS社區生態建設的每一個共建合作伙伴,尤其是廣大持幣者和開發者都應該加速普及和提升安全認知。簡單而言,在使用第三方工具、註冊管理私鑰的過程中,要儘可能的加強安全防範舉措:比如,助記詞在註冊時採用10個以上的組合,又或者保管私鑰時採用手寫的方式避免網上存儲等等。


分享到:


相關文章: