在加密貨幣世界,無論你如何強調安全,都不爲過。隨着全球加密貨幣市值不斷增長,資產安全成爲廣大投資者最爲關注的問題,2018 年以來,發生在加密貨幣行業的黑客攻擊事件不勝枚舉,導致的損失更是高達數十億人民幣。

更爲嚴重是,加密資產一旦丟失,就很難找回。

在這樣的背景下,不同形式的加密貨幣存儲「工具」被髮明出來:硬件錢包、熱錢包、去中心化錢包、全節點錢包、多籤錢包等等。那麼,有沒有一種能夠保證資產「絕對安全」的工具呢?

火幣研究院在其報告《火幣區塊鏈產業專題報告:錢包篇》中認爲,冷錢包是相當對安全的加密資產存工具,「冷錢包將私鑰存儲在完全離線的設備上,相比於熱錢包是更安全的方法」。與此同時,廣大普通用戶也會有這樣的觀念:硬件錢包是絕對安全的,可以完全放心。

但真實情況是這樣麼?

原文標題:《「絕對安全」只是奢望,硬件錢包如何防範「中間人攻擊」?》

攻擊

硬件錢包在設計上將錢包私鑰與網絡完全隔絕,由於不觸網的特性,這種類型的錢包又被稱爲冷錢包。也由於這種特性,人們普遍認爲硬件錢包是安全可靠,不會遭到攻擊。

但可惜的是,硬件錢包所謂的絕對安全也是相對的。

2018 年初,Reddit 用戶 moodyrocket 發帖稱,因其在 eBay 上購買了一個二手的硬件錢包,而損失了價值 3.4 萬美金的積蓄。「這是我所有的積蓄。」moodyrocket 在帖子中表示。

經調查,這位用戶購買的二手錢包是被賣方採用了「中間人攻擊」的形式,預先將硬件錢包造商 Ledger 公司的隨機數替換成了賣方的隨機數種子,進而獲得用戶私鑰,這才導致了盜幣事件發生。

中間人攻擊,是指攻擊者從硬件錢包出廠到買家手中的過程中,對錢包動手腳,以修改固件的形式,破解並控制錢包私鑰。持幣人一旦將自己的加密貨幣資產存入其中,攻擊者就會伺機轉走這些加密貨幣資產。

這種隨機數泄露導致錢包丟幣並不是個案,2014 年,Blockchain.info 錢包的隨機數被黑客破解,導致大量用戶私鑰泄露,萬幸白帽黑客及時發現問題,才挽救了用戶損失。

這兩個事件也從側面表明,硬件錢包實際上並不是「無懈可擊」。

「(錢包生產、運輸、存放過程中)我知道這是一個硬件錢包,那我把它拆掉,換上一個我改過固件的硬件錢包,這在真實世界發生過。」Cobo 聯合創始人 CEO 神魚解釋道,隨機數失去了「隨機」的意義,「我就有可能轉走你的幣,這其實非常危險。」

這種針對硬件錢包的「中間人攻擊」,在國內也可能存在。

我們在國內較爲知名的二手物品交易網站上搜索關鍵詞「硬件錢包」時,發現了不少賣家。而出售說明中不少備註有「已拆封,作用不大,故出售」,或者未對已經拆封的錢包標明拆封。而用戶一旦貪圖便宜購買這種錢包,就有可能面臨「中間人攻擊」。

硬件錢包並非無懈可擊,防不勝防的「中間人攻擊」

「硬件錢包,一定要從原廠購買,」加密貨幣錢包公司產品安全負責人郎平表示,「哪怕是你信任的人給的,也最好別用。」

除了「中間人攻擊」會導致用戶丟幣,硬件錢包本身的漏洞,也有可能給攻擊者可乘之機。

2018 年 12 月 27 日,在第 35 屆混沌通訊大會上,來自初創公司 Wallet Fail 的三人團隊演示了他們攻破 Trezor One、Ledger Nano S 和 Ledger Blue 三款硬件錢包的過程,在業內掀起了軒然大波。

被「攻破」的錢包公司,則迅速對自身產品的安全問題做出了迴應。

Trezor 官方表示:「攻擊者必須拿到你的設備,如果你的 Trezor 依然在你手中,你可以放心繼續使用,這個漏洞不會影響到你。」而 Ledger 錢包團隊則表示:「他們並未成功提取任何種子或者 PIN 碼。」

這並不是這些硬件錢包製造商頭一次遇到類似的「危機」。

2017 年 3 月份,一名 15 歲的英國黑客 Saleem Rashid 爆出,Ledger Nano S 這款比特幣硬件錢包有嚴重的安全性漏洞,它可能會被黑客控制,成爲黑客安插在你身邊的「間諜」,偷走你的比特幣。

「雖然中間人攻擊看起來很嚇人,但是很多廠家也在極力防範類似事件發生。」郎平說道。

防禦

一款硬件錢包由硬件與軟件兩部分組成。硬件部分包括錢包出廠包裝、錢包主板、芯片、外殼等;軟件部分主要是開源代碼庫。「如果廠商在設計錢包之初,能夠保證這些部分安全,那麼錢包基本上也就相對安全了。」郎平表示。

以 2013 年國內上市的某硬件錢包產品爲例,用戶收到錢包之後,整個錢包由一層透明塑料包裹,內部包裝還由一次性膠帶封閉。這些雖然是最基礎的物理手段,但也能降低硬件錢包在物流途中直接暴露在攻擊者手中的可能性。

硬件錢包並非無懈可擊,防不勝防的「中間人攻擊」

硬件錢包並非無懈可擊,防不勝防的「中間人攻擊」

「你的私鑰直接保存在硬件錢包中,暴露在不懷好意者面前,是比較危險的。」郎平表示。

如果攻擊者破了基礎「防火牆」,神不知鬼不覺地拿到錢包並嘗試暴力拆解,這時錢包核心部件就會暴露出來。針對這種情況,不少錢包還設計了防拆除功能。「很多硬件錢包外殼都是超聲波塑封,很難拆開,一旦被拆開過,用戶就很容易被發現。」郎平說道。

「有的硬件錢包被人拆了,然後把裏面的精密信息讀出來,比如從閃存芯片裏恢復出來一些敏感信息(導致私鑰泄露,很危險)。」神魚在談到攻擊者針對硬件錢包暴力拆除時,認爲硬件錢包確實會遇到被拆開讀取信息的可能性,他認爲比較安全的做法是,廠商在設計錢包就要做到「拆開即毀」,使用者第一次開機就要「校驗你的系統有沒有被改過」。

除了硬件防範,軟件安全也是較爲重要的一個環節。「衡量軟件安全最重要的環節就是軟件代碼是否開源。」郎平表示。

同時,火幣研究院也認爲,錢包開源一方面可以接受各方對其代碼進行監督審查,另一方面也更容易獲得技術極客的幫助,不斷地改進升級。

錢包代碼開源,也能讓錢包使用者監督項目方代碼架構與更新情況,更爲重要的是驗證錢包私鑰隨機數是否真正隨機。

「如果私鑰並非真正隨機產生。危險係數就比較高,有可能被破解。」郎平表示,「但驗證私鑰是否隨機產生的操作對於絕大多數用戶而言過於複雜,一般用戶很難操作。」

實際上,在 2018 年下半年,EOS 公鏈博彩類 DApp 就發生過大量因隨機數被破解而導致的安全事件,這造成了價值上百萬的 EOS 代幣被黑客捲走。不過,由於硬件錢包的離線斷網特性,攻擊者發動類似攻擊還是有難度的。

代碼開源的另一個好處就是「監控」項目方的開發進度。

硬件錢包並非無懈可擊,防不勝防的「中間人攻擊」

以國內某知名硬件錢包爲例,該錢包目前開源了 6 個代碼庫,其中的 3 個關鍵代碼庫是從 trezor 代碼庫中分叉而來。trezor 是國際老牌硬件錢包公司,這一定程度上說明了該錢包軟件部分的可靠性。

但是,分析項目代碼更新情況之後卻發現了問題。打開該硬件錢包的藍牙代碼庫,我們發現自 2018 年 5 月份之後,代碼庫代碼幾乎很少更新。

硬件錢包並非無懈可擊,防不勝防的「中間人攻擊」

同時,打開該錢包源代碼,發現該錢包源代碼在 2018 年 8 月份之後更新頻率也明顯降低。

藍牙代碼庫更新停止與整個代碼庫更新活躍程度大幅度降低,說明項目發展遇到阻礙,產品更新比較慢。代碼更新頻率下降,實際上也能反映出錢包團隊的工作狀態,錢包安全性則需要打一個大大的問號。

硬件錢包並非無懈可擊,防不勝防的「中間人攻擊」

通過開源代碼更新頻率,我們能夠得知硬件錢包產品開發進度,進而判斷產品安全性,這也衆多錢包、公鏈項目對於開源與否極爲敏感的原因之一。

對於加密貨幣資產持有者而言,錢包私鑰的安全性是不允許出現任何「差池」的。這方面,硬件錢包是如何保證這一點呢?

私鑰

硬件錢包發送交易的過程大致是這樣的:通過手機端 APP 構造交易,硬件端確認交易信息,再用手機端把交易聯網發送出去。然後等待區塊鏈確認完成,交易就成功了。

正是由於硬件錢包在交易過程中全程離線,保證了錢包私鑰的安全性。

硬件錢包並非無懈可擊,防不勝防的「中間人攻擊」

交易過程中硬件錢包通過藍牙、USB 與 App 發生鏈接,這也個過程保證了錢包能夠絕對斷網。「目前藍牙的安全距離是 9 米,只要周圍不存在可疑人員,就可以放心操作了。」郎平表示。

實際上,錢包內部也有相當完整的「保密」程序。

硬件錢包通過分層確定的方法,將種子生成主私鑰,然後再派生海量的子私鑰和地址。由於種子是一串很長的隨機數,不利於記憶,所以錢包會用特殊算法將種子轉化爲一串助記詞(Mnemonic),通過助記詞就能夠得到種子以及種子背後所有的私鑰。

硬件錢包並非無懈可擊,防不勝防的「中間人攻擊」從種子到私鑰,再到海量私鑰的轉換過程

由此看來,助記詞的安全性關乎重大,那麼有沒有可能猜出助記詞呢?通常情況下,一個硬件錢包助記詞是由 12 個單詞組成,這 12 個單詞出自 2048 個單詞庫。如何計算出隨機生成的助記詞的所有可能性是一個排列問題,根據公式:n!/(n – r )! ,即 2048!/(2048-12)!= 5.2715379713014884760003093175282 e+39 。

5.2 乘以 10 的 39 次方,這個數據有多大?

有人用數學模型對這個數據進行了測算,這個數量相當於在美國本土上鋪滿一堆 1 塊錢硬幣,這堆硬幣要鋪多高呢?高度大約相當於從地球表面到月球的距離。而一次性猜對助記詞的概率,就相當於從如此衆多的硬幣中隨手一抓,就抓到了那個正確的硬幣的概率,這幾乎是不可能發生的事情。

而有的硬件錢包更是設置了 24 個助記詞,將猜出助記詞的可能性降到了零。

「只要你不泄露錢包助記詞,硬件錢包相對來說還是最安全的。」郎平說道。Reddit 用戶 moodyrocket 之所以丟失私鑰,就是因爲其購買的二手錢包的隨機數種子被銷售者獲取,才導致丟幣。

加密貨幣作爲一種「丟了就找不回來」的資產,從靠譜的途徑獲得一款安全性靠譜的硬件錢包,對資產安全至關重要。避開「中間人攻擊」與避免使用自帶漏洞的錢包,基本上就能夠保證資產安全了。

即便躲開了所有坑,有人還是對自己錢包安全性不放心,「老韭菜」會告訴你,「去瑞士吧」。

瑞士有全世界安保措施最嚴的防空洞,「甚至能防核彈」。屆時,你就能與羅斯柴爾德家族一起,接受世界上最安全的財富保管服務了。