袁曄:硬錢包是最安全的嗎?

數字錢包 安全 火星專欄 袁曄 2018-07-27

硬錢包是比軟錢包和交易所賬戶都安全幾個數量級的,但並非所有硬錢包都是安全的。

火星專欄作者:袁曄,水木清華TBC執行董事(FCoin保薦機構),盜火者區塊鏈應用聯盟發起人。

硬件錢包最重要的點是對於設備端(冷端)自身的安全保護,這裡就會涉及到硬件錢包的安全性判斷標準:

1、 設備端(冷端)是否本身會被攻擊和破解。操作系統和應用本身是保存在開放性的存儲器(SDRAM)中還是存放在進行安全保護的芯片中,是不是有被篡改的可能性。

2、 私鑰的保存是不是得到了安全的保護,加密或者未加密過的密鑰(或種子密碼文件)是否可導出。有沒有辦法通過包括破拆、破解在內的手段從設備端(冷端)得到私鑰。如果經過加密存放的密鑰,可以被導出(直接拆出SDRAM),則有可能針對導出的加密文件進行暴力破解。

注:對於使用分層確定性(HD)的錢包,所有的私鑰都是通過一個種子密碼生成出來的,這個種子密碼對用戶的展現形式就是助記詞,所以HD錢包的種子密碼就相當於用戶錢包的所有幣種的私鑰。得到種子密碼就得到了所有的私鑰。

3、 私鑰有沒有進入到內存和開放性的存儲器。所有開放性存儲器(內存、FLASH)內的內容都是可以被讀出的,以明文方式進入內存的私鑰(或種子密鑰)有無數的辦法可以導出,因此也是不安全的。

4、 涉及到私鑰的運算過程是否進入了開放性存儲器(內存、Flash),一旦進入內存進行運算,整個的運算過程都是可以被黑客更容易定位和截獲。

5、 是否可以通過反編譯來模擬應用程序的邏輯。如果程序存儲在開放性的編譯器中,則可以輕易的獲取程序,並通過反編譯獲得應用程序邏輯,並通過模擬程序的運行來獲得用戶的私鑰。

6、 防止偽造交易的核心是針對一個經過用戶確認的真實的交易信息進行簽名,在這個過程中防止交易信息在傳遞的過程中被篡改。在哪一端輸入交易信息並不是重點,重點在於在冷端要進行安全的用戶的交易信息顯示和確認,並且保證冷端自身的安全性。如果冷端被攻破,交易信息在冷端就是一個偽冒信息,即使在冷端輸入也會發生偽造交易。

屏幕快照 2018-07-08 上午8.34.46.png

只要計算過程流出了安全芯片的內部,在內存中運行,這樣的攻擊漏洞在非安全芯片的錢包中都存在,黑客是有辦法獲得SDRAM中的內容的。包括芯片錢包中沒有使用安全芯片的Trezor和KeepKey就曾經被這樣攻擊過,可以百度一下就知道了。

針對某硬錢包的攻擊方式一(軟件方式):

1、 Root冷端的系統

2、 對系統做內存導出

3、 對內存進行分析,從中獲得明文密鑰數據

針對某硬錢包的攻擊方式二(破拆方式):

1、 在硬錢包中安裝監聽芯片,監聽進入內存的信息。

2、 對監聽的數據通訊進行密鑰分析並導出密鑰。

針對類安卓錢包:

1、 設備端(冷端)存儲了種子密碼,而這個種子密碼能夠計算出所有幣種的錢包私鑰和地址。根據分層確定性(HD)錢包協議的規範,只要獲得種子密碼,可以在任何地方用標準算法來算出用戶的所有幣種的私鑰。所以在開放性的存儲器中存儲了種子密碼相當於在開放性的存儲器中已經存儲了私鑰。

2、 私鑰簽名會以明文的方式在內存中進行運算是系統的。對於一個強調安全的硬件錢包而言,進入內存進行運算就可能會被抓取,無關乎在內存中是持續保存了還是用完後清除,只要出現了就可能已經洩露了。

3、 防止偽造交易的核心是針對一個經過用戶確認的真實的交易信息進行簽名,在這個過程中防止交易信息在傳遞的過程中被篡改,用戶發送的是一個經過確認的真實交易,雙端驗證的必要性在於:需要假定熱端(PC/手機端)被偽造或者冷端(設備端)被偽造的情況下都能夠保證交易的安全。

說了這麼多,大家估計多數人都沒有看懂,只要記住一個結論,硬錢包是比軟錢包和交易所賬戶都安全幾個數量級的,但並非所有硬錢包都是安全的,哪怕是目前主流的硬錢包,國內國外產品皆是如此。


文章聲明:本文為火星財經專欄作者作品,版權歸作者所有,不代表火星財經觀點。

相關推薦

推薦中...