閃電小費

2026年8月4日 星期二

冷錢包隨機性分析與安全性比較(cold wallet entropy and security compared)

把 BTC 儲存在 COLDCARD 的用戶因為熵(entropy,隨機性)漏洞而導致資產被清空。

其助記詞(seed)生成方式是可以被重現的,任何人都可以重新計算出他們的私鑰。

因此我調查了其他每一家硬體錢包,看看它們是如何生成助記詞的,以及同樣的事情是否會再次發生。
  • @Trezor:將裝置的隨機性與電腦的隨機性混合,且裝置必須證明它同時使用了兩者。即使晶片完全損壞,你依然安全。這是目前為止最好的設計。
  • @BitBoxSwiss:組合了 5 個獨立的隨機性來源。單一不良來源不會讓你毀滅。開源、可重現構建(reproducible builds),支援擲骰子(dice)。
  • @FoundationHQ:除了另外兩個來源之外,還使用普通電阻(resistors)和電容(capacitors)打造了自己的隨機性電路,開源。不需要信任黑盒晶片(black-box chip)。支援擲骰子(dice)。
  • @KeystoneWallet:MCU 和 2 個獨立的安全元件各自產生自己的 TRNG,3 個獨立來源合併成最終增強熵值。此外還允許你擲最多256次骰子,並公開了如何自行驗證結果的方法
  • @Blockstream:Jade 從 7 個項目中擷取:無線電雜訊(radio noise)、CPU 計數器(cpu counters)、電池、溫度、攝影機、你的輸入、應用程式(app)。要破壞所有來源非常困難。
  • @SeedSigner:你擲的骰子是唯一的來源。完全不需要信任任何晶片。而且他們提供了一份指南,教你如何驗證他們自己的數學計算。硬體最弱,但驗證力最強。
  • @OneKey:裝置上結合了 Secure Element 與 MCU,開源韌體。很紮實,但你無法加入自己的隨機性。
  • @Ledger:一個經過認證的晶片(AIS-31, EAL5+)。具備良好的隨機性。但它是單一來源、閉源,而且你無法驗證其中的任何細節。你必須完全信任他們。
  • @Tangem:私鑰在晶片內部生成且永遠不會離開。經過三家公司審計。同樣的權衡:強大,但設計上讓你無法檢查。
  • @ngrave_official:將晶片隨機性與你的指紋和環境光混合。很聰明。但其 "EAL7" 認證標章僅涵蓋單一軟體元件,而非整台裝置。
  • @ELLIPAL:單一經過認證的晶片,沒有軟體備援(software fallback),若故障則直接關閉(fails closed)而非猜測。閉源,所以只能選擇相信它。
  • @SafePal:混合了 2 個晶片。他們從未公開過詳細資訊。
  • @COLDCARDwallet:目前已修復修補,且 COLDCARD 上的骰子功能一直都是可驗證的。但在 2021 年至 2026 年之間生成的所有助記詞(seed)都已永久作廢(burned)。

單一來源(one source) = Ledger, Tangem, Ellipal。如果該單一來源失效,一切就都完蛋了。他們的解決方案是將其做得很優秀並取得認證。但這正是 COLDCARD 賭輸的地方。

多重來源(many sources) = Trezor, BitBox, Passport, Jade, Keystone。單一損壞的來源永遠不會影響到你的私鑰。

而且這當中的每一家都宣稱擁有 128 或 256 位元(bits)的安全強度。

COLDCARD 當初也是這麼宣稱的。認證也沒有幫助,COLDCARD 的晶片本身沒問題,只是程式碼停止呼叫它而已。

唯一能救你的,就是自己進行檢查。
自己擲骰子(roll your own dice)。自己驗證單字(verify the words yourself)。


給冷錢包使用者的核心建議(補充觀點):

1. 不要盲目相信單一晶片或「EAL 認證標章」:軟體韌體邏輯漏洞(如 COLDCARD 案例)可能使頂級硬體 TRNG 形同虛設。

2. 多重來源(Many Sources)優於單一來源(One Source):選擇結合「MCU + 安全晶片 + 主機/用戶熵」的錢包(如 Trezor Safe 系統、BitBox02、Passport、Keystone)。

3. 終極安全作法——自行擲骰子(Roll Your Own Dice):若儲存大額資產,最安全的作法是在生成種子(助記詞)時,選擇支援實體擲骰子輸入熵並能離線驗證單字點陣圖(BIP-39 Mnemonic Verification)的錢包(如 SeedSigner, Passport, BitBox02, Keystone, COLDCARD),徹底消除對硬體晶片與隨機數生成器的盲目信任。

原始資料來源:https://x.com/the_smart_ape/status/2084265598368809390?s=61&t=P_R4W_aDAxCJn612ehUZJA

圖片表格對照翻譯 (Table Breakdown)

錢包 (wallet) 廠商 (vendor) 熵來源 (entropy sources) 晶片 / 認證 (chip / certification) 自訂熵 (your own entropy) 可驗證? (verifiable?) 開源 (open source) 結論 (verdict)
Trezor One / T / Safe 3 / Safe 5 SatoshiLabs MCU TRNG + 主機電腦熵,混合 SHA-256 (裝置與主機各 32 位元組) STM32;Safe 3 / Safe 5 增加了安全晶片 主機熵,恆定開啟 :承諾協定 (commitment protocol) 是,可重現構建 (reproducible builds) 最強設計 (Strongest design)
BitBox02 / BitBox02 Nova Shift Crypto / BitBox 五個來源:製造階段、裝置密碼、主機電腦、MCU TRNG、安全晶片TRNG ATECC608B (Nova: Optiga Trust M V3) 主機熵 + 骰子 部分 (partially) 是,可重現構建 (reproducible builds) 非常紮實 (Very solid)
Foundation Passport (Batch 2 / Core) Foundation Devices 開源雪崩雜訊電路 (獨立電阻 + 電容,非黑盒矽晶片) + MCU RNG + SE RNG 自家 TRNG 電路 + 安全晶片 骰子 (dice) 部分 (partially) 是,可重現構建 (reproducible builds) 非常紮實 (Very solid)
Keystone 3 Pro(支援簡體中文) Keystone MCU 和來自不同製造商的 2 個獨立的安全晶片各自產生自己的 TRNG,3 個獨立來源合併成最終增強熵值 ATECC608B (Microchip) + DS28S60 (Maxim),均符合 NIST SP 800-90B 骰子,最多256 次投擲 :廠商公開驗證方法 部分開源 (partial) 非常紮實 (Very solid)
Blockstream Jade / Jade Plus Blockstream 開機無線電雜訊、CPU 計數器、電池狀態、溫度、相機、使用者輸入、應用程式熵 -> SHA-512 累加器 ESP32 (Jade Plus: ESP32-S3) 配套應用程式熵 否 (no) 是 (yes) 紮實,多重來源 (Solid, many sources)
Ledger Nano S / S Plus / X / Stax / Flex Ledger Secure Element 內部的單一認證 TRNG + BOLOS 後處理 ST33K1M5C - AIS-31 PTG.2, EAL5+, CSPN (ANSSI) 無 (none) (NO) :閉源 (closed source) 紮實但不可驗證 (Solid but unverifiable)
Tangem cards Tangem Secure Element 內部的 TRNG:密鑰在卡上生成且永遠不離開 Samsung SE, EAL6+;由 Kudelski, Riscure, Cure53 審計 無 (none) :設計上無法驗證 否 (no) 紮實但不可驗證 (Solid but unverifiable)
NGRAVE ZERO NGRAVE 晶片 TRNG + 指紋 + 環境光採樣 EAL7 適用於 ProvenCore TEE 元件,非整台裝置 生物識別 + 環境光 否 (no) 否 (no) 概念好,但標章過度宣傳 (Good idea, oversold badge)
Ellipal Titan Ellipal 僅使用安全晶片中的硬體 TRNG,無軟體備援 (故障時關閉) EAL5+ 安全晶片 接受導入助記詞 否 (no) 否 (no) 廠商宣稱,閉源 (Vendor claim, closed source)
OneKey Classic / Pro(支援繁簡中文) OneKey 裝置上結合 安全晶片 + MCU SE EAL6+ 無 (none) 否 (no) 是 (yes) 紮實,開源 (Solid, open)
SafePal S1(支援繁簡中文) SafePal 具備密碼學混合的雙晶片架構 未公開細節 (undisclosed detail) 無 (none) 否 (no) 否 (no) 未公開 (Undisclosed)
SeedSigner (DIY) open-source project 你的骰子 (50 或 99 次投擲) 或相機影像熵 無 - 無安全晶片 骰子 (dice) :隨附 docs/dice_verification.md 文件 是,自 v0.7.0 起可重現構建 最可驗證,硬體強化程度最低 (Most verifiable, least hardened)
Coldcard Mk4 / Mk5 / Q (2026 修補後) Coinkite 修補後為 STM32 TRNG + 安全晶片 + 骰子 STM32 + 2 個安全晶片 骰子 (dice) (YES) 原始碼可見 (source-available) 已修復,但漏洞期間生成的助記詞仍作廢
Coldcard Mk2 / Mk3, firmware 4.0.0–4.1.9 Coinkite 軟體 PRNG (Yasmarang) 隨機種子來自晶片 UID + 計時器 - 兩者皆為公開 - 骰子 (藏在高級選單中) - - 破裂 (BROKEN) - 有效熵降至 ~2^32 到 2^40
Coldcard Mk1 / pre-v3.2.2 Coinkite 真實 STM32 硬體 TRNG STM32 - - - 從未受影響:舊款裝置反而是安全的
Tapsigner / Satscard / Opendime Coinkite 金鑰於卡片內部生成 ATECC Secure Element 無 (none) - 設計上即不可驗證 否 (no) 架構上不可驗證 (Unverifiable by construction)

沒有留言:

精選文章

冷錢包隨機性分析與安全性比較(cold wallet entropy and security compared)

把 BTC 儲存在 COLDCARD 的用戶因為熵(entropy,隨機性)漏洞而導致資產被清空。 其助記詞(seed)生成方式是可以被重現的,任何人都可以重新計算出他們的私鑰。 因此我調查了其他每一家硬體錢包,看看它們是如何生成助記詞...

熱門文章