硬體錢包原理与安全使用建議

2022年底,全球第二大的交易所 FTX 由于挪用用户資產亏空而暴雷,在短短几天时间内就宣告破產而倒闭。而實際最受伤的是資產托管在FTX未来得及提现的用户,他们存在FTX的資產基本上就歸零了(参考 Mt.Gox 被黑客攻擊而破產)。

这个事件让我大為震驚。在我之前的认知中觉得加密資產存放在Top 3中心化交易所内是問题不大的,以為“大而不倒”而值得信賴。现在 FTX “大但瞬间倒塌“ 的事實狠狠打脸了,完全颠覆了我的认知。不得不考慮將存放在交易所的資產提到錢包自己管理。

自己管理加密資產,第一件事就是找到一个足够安全的錢包。對于網路安全从業背景的我来說,聽过太多太多软錢包被盗而損失資產的案例,所以首先排除了軟體錢包,然后就把眼睛轉向了硬體錢包。

對于硬體錢包,我之前是不懂的。近来自己研究了一番硬體錢包原理,分析了其潛在的安全隐患,并購买了硬體錢包真實体验了一把。没有實践就没有發言權,自己亲自体验了一遍之后得出結論:硬體錢包整体上安全隐患很小,谨慎使用的话可以安全保管好資金。


一、硬體錢包原理

在区块链里,私鑰 = 加密資產。

私鑰是錢包最最最重要的東西,有了私鑰(而不管是谁擁有)就有了錢包100%的控制權,可以做任何事情(轉账、授權、交易等)。

接下来围繞私鑰介绍硬體錢包之所以被认為是“安全”的原理。

1.1 私鑰生成

私鑰是一个随机數(Bitcoin 256-bit),一般使用十六进制(0x0~0xF)表示。其范围是从1~2^256+1(115792089237316195423570985008687907852837564279074904382605163141518161494337),所以安全不用担心其他人可以猜出你的私鑰。

而地址是由私鑰单向推導出来的,而根据地址是不可能推導出来私鑰(數学难题保證)。

另外,私鑰其實是不太符合人类記忆模型的,所以就有了“助記词(mnemonic code)”来方便記忆:其實就跟以前地下工作者用的密碼本一样,也跟“A for alpha, B for Brave, C for Charlie ”的原理类似。BIP39(Bitcoin Improvement Proposal 39)定義了2048个单词的列表,每个单词都有编号,然后把这些數字按照一些复雜的算法拼起来就可以还原出来私鑰。


更多關于私鑰、公鑰、地址相關的細節内容可以参考我之前的文章。

  • 秘鑰和地址 —— 极简比特幣教程

  • 私鑰——极简比特幣教程

  • 公鑰——极简比特幣教程

1.2 私鑰存儲

私鑰在產生之后,其需要在錢包記憶體儲,軟體錢包的做法是加密私鑰快取在本地文件中,而硬體錢包的做法更安全:使用单独的安全芯片(SE)存儲私鑰,确保私鑰不出芯片、不触网。

安全芯片主要是指安全单元 (Secure Element) , SE 是一台微型计算机,透過特有的安全元器件和芯片作業係統(COS)實现資料安全存儲、加解密運算等功能。

對于硬體錢包来說,安全芯片的“安全”体现在:

  • 私鑰存在安全芯片。芯片内部邏輯無法被篡改;

  • 私鑰只进不出。芯片只提供寫入私鑰的接口,無讀出私鑰接口;

  • 私鑰在芯片内部加密存儲。即使設備丢失,黑客也极难透過逆向工程破解出安全芯片内的私鑰。

1.3 私鑰使用

私鑰存儲在安全芯片内,但是錢包需要使用私鑰對交易資料进行簽名,以完成錢包業務功能。硬體錢包的做法是透過调用芯片接口(一般采用 I2C 或 SPI 通信),把需要簽名的資料传输给安全芯片,安全芯片返回簽名后的資料,實现了在不對外暴露私鑰的情况下,完成交易簽名,从而保證了私鑰安全(这里只是简要描述簽名流程,實際情况会有多次的鑑權验證等操作)。

如下為硬體錢包轉账交易过程示意圖,可以清晰的看到私鑰是不会出芯片的。


二、硬體錢包安全隐患

硬體錢包在原理上整体可以确保私鑰安全,但是并不是万無一失,加上使用过程中的人為因素,硬體錢包也并不“安全”。硬體安全使用过程中潛在的安全隐患:

  • 錢包生產者作恶。如果錢包生產者想作恶,那么其有太多太多的方式可以獲取到錢包私鑰。如生成私鑰使用偽随机算法、錢包内(安全芯片外)備份私鑰、预留后門 等等。这完全取决于錢包生產者的动机,也是硬體錢包本身而言面臨的最大風险。

  • 錢包供应链攻擊。錢包硬體组件、固件在生產、運输过程中都有可能被攻擊,进而有可能導致私鑰泄露。

  • 助記词被盗。不管是离线紙质助記词,还是保存在電子設備上的助記词被盗,攻擊者都可以轻易恢复出私鑰,獲取到錢包控制權;

  • 助記词丢失。用户如果同时丢失了備份助記词  和 硬體錢包,那么就無法恢复錢包了,錢包中的資產也永久封印在了区块链上。

  • 硬體錢包丢失。由于私鑰存儲在硬體錢包内,黑客有有两种方式攻擊錢包:1. 破解錢包PIN碼(不过一般只有10次尝試机会,連续错誤10次硬體錢包会重置);2.拆解錢包,提取固件,使用逆向工程破解得到私鑰(难度极大,成功可能性极低)。

  • 授權非法合約。使用过程中,硬體錢包交互非法合約请求錢包某些權限,如果使用者不了解權限,或者未仔細查看申请的權限列表,则可能導致过度授權,導致錢包被盗。

  • 助記词碰撞攻擊。攻擊者根据錢包遵守的BIP規范(如BIP39)做爆破碰撞攻擊:如从BIP39的2048个单词池中随机選取12/18/24个单词,根据算法恢复對应的私鑰,如果这种爆破碰撞到已存儲資產的錢包,则可轉移走錢包資產。这个攻擊發生的可能性极低(所有类型的錢包都存在此中隐患),風险可以忽略不计。


三、硬體錢包安全使用建議

使用硬體錢包保管加密資產并不是絕對安全、可以一勞永逸。我们需要小心谨慎的挑選硬體錢包、備份助記词、安全使用,才能最大程度的保護好自己的加密資產。

  • 挑選硬體錢包(原则)

    • 使用安全芯片

    • 软、硬體代碼開源(部分,或全部)

    • 錢包經CC认證,安全等級EAL5(及以上)

    • 發行时间长、使用广泛、無安全事故的厂商

    如果你無意去广泛、深入了解,可以从当前主流的硬體錢包Ledger、Trezor中进行選择。

  • 備份助記词(原则)

    • 离线備份,紙质或專用設備

    • 異地備份

    • 打乱助記词顺序

    • 混入客製化单词

    • 手抄助記词,切勿截圖、剪切板复制等

  • 安全使用

    • 專包專用,尤其是囤幣一定使用单独硬體錢包

    • double check交互地址

    • 谨慎授權


四、寫在最后

区块链世界的格言:Not your keys, not your coins。自己掌握錢包的私鑰(助記词),才是真正擁有加密資產的所有權,才能遠离中心化加密组織跑路、暴雷、被黑等事件给你帶来的資產損失。

願你在讀完这篇文章之后有更足的底氣使用硬體錢包,祝你好運!Enjoy blockchain.


(完)


文章末尾固定信息

我的微信
这是我的微信掃一掃
weinxin
我的微信
微訊號已复制
我的微信公眾号
我的微信公眾号掃一掃
weinxin
我的公眾号
公眾号已复制
 
admin2
  • 本文由 admin2 发表于2024 年 12 月 11 日 22:39:04
  • 轉载请務必保留本文链接:https://zuizhiyou.com/%e7%a1%ac%e9%ab%94%e9%8c%a2%e5%8c%85%e5%8e%9f%e7%90%86%e4%b8%8e%e5%ae%89%e5%85%a8%e4%bd%bf%e7%94%a8%e5%bb%ba%e8%ad%b0.html
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证