如果您查看當前的加密硬件錢包市場,您會注意到幾乎所有這些都分為兩大類,主要由兩種不同的意識形態驅動。
但是這兩種方法都有起伏。像 Trezor 這樣的完全開源的系統通常沒有安全元素。因此,秘密通常存儲在通用 MCU 中,很容易被故障攻擊暴露出來。
或者,Ledger 型錢包可以抵抗此類故障攻擊,因為機密存儲在安全元件中。但是有了這些,設備固件和軟件的重要部分通常仍然無法用於同行評審。因此,引入了某種信任因素,這在許多加密愛好者中不太受歡迎。
然而,有一個這樣的硬件錢包似乎通過提供兩全其美的方式達到了最佳狀態——提供用於存儲秘密的 SE,同時保持固件和軟件完全開源。
我們談論的是 Coinkite 的 Coldcard 硬件錢包。
冷卡外觀
Coldcard 具有簡單的半透明設計,可以更好地視覺檢測內部組件中的篡改。該公司更專注於確保設備安全,以及保持低製造成本和零售價格。
它有一個用於顯示信息的 OLED 屏幕、一個包含數字 0-9 的 12 鍵鍵盤,以及 OK(確認)和 X(拒絕)按鈕。這些按鈕可用於輸入您的 Coldcard PIN、瀏覽用戶界面和簽署交易。
還有一個 MicroSD 卡插槽(稍後會詳細介紹)、3 個 LED 指示燈和一個用於供電和直接連接的 Micro-USB 端口。
有關 Coldcard 硬件的更多信息,請參閱官方文檔。
為什麼冷卡與眾不同?
Coldcard 與當前市場上其他流行的硬件錢包有很大不同。
安全元素,但不是“通過默默無聞的安全”
通常,大多數帶有 SE 的硬件錢包使用雙芯片架構——一個用於正常設備功能的通用 MCU,一個用於存儲秘密和簽署交易的銀行級 SE。
但是,銀行級 SE 通常附帶(部分或完全)閉源固件。這個想法是,如果攻擊者不了解系統,就無法利用該系統。因此,這種類型的硬件通常提供“隱秘的安全性”。
Coldcard 也使用了類似的雙芯片架構,但它的 SE 與 Ledger 型硬件錢包中常見的 SE 有很大不同。
它使用 Microchip 的ATECC508A (Mk2)、ATECC608A (Mk3) 來存儲關鍵的主密鑰。該微控制器是一種密碼協處理器,可提供基於硬件的安全密鑰存儲。更重要的是,它沒有任何閉源組件。
安全 MCU 可以執行 SHA-256 散列並包括一個內部真隨機數生成器 (TRNG)。結合這些功能和精心的協議設計,Coldcard 強制攻擊者必須知道特定的 PIN 序列(作為錢包設置過程的一部分保存)才能訪問機密。
Coldcard PIN 的長度可以從 4 到 12 位,分為兩部分——前綴和其餘 PIN——每部分長度為 2 到 6 位。建議使用至少包含 8 (4 + 4) 位數字的 PIN。
輸入前綴 PIN 後,Coldcard 從 BIP39 詞表中生成兩個詞。這對詞對每個 Coldcard 設備和前綴 PIN 組合都是唯一的,可作為識別網絡釣魚攻擊企圖的措施。
如果顯示的反網絡釣魚詞對與預期的不匹配,要么您輸入了錯誤的前綴 PIN,要么可能是網絡釣魚設備!
此外,安全 MCU限制了 PIN 嘗試的最大次數——針對重複的 PIN 嘗試強制執行增量時間延遲——這樣強力攻擊對於強 PIN 代碼是不切實際的。
所以,如果攻擊者現在決定直接暴力破解秘密,那也太倒霉了!SHA-256 加密散列與 TRNG 一起確保強加密。搜索空間現在是 2^256,即使在主 MCU 上完全更換固件或從板上移除 SE 芯片時,這仍然是正確的。
因此,ATECCX08A 芯片依賴於加密散列函數的安全性,而不是“通過默默無聞的安全性”。使用這樣的 SE 允許 Coinkite 保持其所有固件和軟件的開源,可以進行同行評審和驗證。
完全“氣隙”的解決方案
Coldcard 可以離線操作,無需以任何方式連接到計算機或移動設備。它不支持藍牙或 WiFi 連接,您只需將 Coldcard 插入電源插座即可有效地執行 Coldcard 上的所有操作。也可以選擇通過 USB 與計算機進行操作。
Coldcard 有一個 MicroSD 插槽,可以使用存儲卡作為氣隙之間的介質。它可以為支持的錢包應用程序生成骨架錢包,包括 MicroSD 卡上的 Electrum 和 Wasabi,其中包含擴展的公鑰。擴展公鑰可用於生成新的接收地址,而無需知道相應的私鑰。
Coldcard 也是世界上第一個 PSBT 原生(“部分簽名比特幣交易格式”——BIP 174)硬件錢包;從而允許您直接在 MicroSD 卡上簽署交易,然後在網絡上廣播它們,而無需連接 Coldcard。
除此之外,Coldcard 可以將 MicroSD 卡用於諸如將錢包種子備份到加密文件或升級設備固件等目的,所有這些都無需直接連接到計算機。
注意:氣隙提供更高的安全性,但可能有點不方便。Coldcard 通過支持氣隙以及通過 USB 直接連接,提供了在更安全或更方便之間進行選擇的選項。
無需專用軟件
即使支持第三方應用程序,大多數硬件錢包通常也依賴其官方配套應用程序來執行固件驗證和升級、擴展硬幣支持等任務。
Coldcard 沒有專門的配套應用程序。它旨在與 Electrum 和 Wasabi 等本機錢包應用程序配合使用。借助 MicroSD 支持、LED 指示燈等功能,固件更新和驗證等任務可以直接在設備內處理。
Coldcard 通過 USB 直接連接以及氣隙解決方案與 Electrum 和 Wasabi 一起使用。
同樣,固件更新可以直接從Coldcard 網站下載,並使用 Electrum(通過 USB)或 Coldcard 本身(通過 MicroSD 卡)加載到設備上。
注意:截至目前,Coldcard 僅支持比特幣(Main & TestNet)和萊特幣(Main & TestNet)加密貨幣。
如何設置Coldcard硬件錢包
為了提高設備的安全性,Coldcard 的設置過程與其他流行的硬件錢包略有不同。這是在 Coldcard 中設置新錢包的分步指南。
注意:訂購後,您的 Coldcard 應裝在一個密封袋中,袋子下方有一個條形碼和一個數字。檢查袋子是否有任何損壞跡象,如果發現任何不合適的地方,請將其報告給Coinkite 支持。
- 使用微型 USB 壁式充電器或電池組為您的 Coldcard 供電。
- 通讀 Coldcard 屏幕上的使用條款;使用按鍵 5(向上)或 8(向下)瀏覽消息,然後按右下角的 OK 鍵繼續。
- 驗證設備序列號並確保它與包裝袋上印刷的序列號匹配。
- 輸入將用於保護您的 Coldcard 免受未經授權使用的前綴 PIN;建議使用 4-6 位數字。
- 注意並記住屏幕上顯示的兩個反網絡釣魚詞。根據您使用的特定前綴 PIN,此詞對是您的 Coldcard 所獨有的。
- 輸入您首選的 PIN 的其餘部分;建議使用 4-6 位數字。
- 保存 PIN 後,您應該會看到一個菜單,用於從 BIP39 種子創建新錢包或導入現有錢包。使用 5 和 8 鍵向上或向下導航,然後按 OK 按鈕。
- 使用導入現有,您可以通過提供相應的 12-24 字種子來輸入您現有的錢包。
- 或者,當您選擇 New Wallet 時,下一個屏幕上將顯示一組 24 個種子詞。滾動瀏覽並記錄每個單詞。為此,您可以使用包裝中提供的 Wallet Backup 卡。最後,按 OK 進行測驗並驗證所有單詞都已正確記錄。
成功完成測驗後,您的錢包就可以使用了。
注意:如果您希望切換到不同的錢包來存儲和訪問您的資產,您可以選擇設置 BIP39 密碼。
有關如何使用不同錢包功能的更多詳細信息,您可以查看Coldcard 網站。
冷卡安全與不同的攻擊媒介
Coldcard 採取了多項措施來確保其產品的安全性。讓我們分析它們如何抵禦不同的攻擊媒介。
遠程攻擊
Coldcard 將私鑰存儲在安全元件芯片中,該芯片使用 SHA-256 散列和 TRNG 對數據進行加密。即使將設備直接插入連接到 Internet 的計算機,SE 也可確保機密永遠不會暴露給外部世界。
所有支出交易都可以通過讀取顯示接收者地址的 OLED 顯示屏進行驗證,並通過按物理 OK 鍵確認。外部可用的唯一數據是用於啟動交易的簽名消息。
如果您足夠偏執,您可以在氣隙模式下使用 Coldcard,在這種模式下,設備始終處於離線狀態。在這種情況下,無法對 Coldcard 硬件錢包執行遠程攻擊。
物理攻擊
讓我們考慮對 Coldcard 錢包進行不同類型的物理/中間人 (MITM) 攻擊。
供應鏈攻擊
每個 Coldcard 錢包在出廠時都包裝在一個特殊的序列號袋中。這個特殊的包不僅有防篡改封條,而且有一個唯一的序列號,它也記錄在設備閃存的安全區域,在錢包設置過程中可以驗證。
此外,在 Coldcard 周圍使用透明塑料外殼是一種有意的設計決定,以幫助輕鬆發現設備內部的物理篡改跡象。此外,由於塑料外殼是焊接封閉的,因此很難在不被注意的情況下打開和重新密封外殼以進行此類物理篡改。
盜竊
如果設備被盜,將很難(讀作“不可能”)訪問錢包的秘密。如前所述,機密存儲在安全元件中,如果不知道正確的 PIN 序列,就無法從中提取機密。
錯誤 PIN 嘗試之間強制執行的時間限制使得執行暴力攻擊變得不切實際,尤其是在使用強 PIN 代碼的情況下。此外,如果攻擊者試圖在沒有 PIN 碼輸入的情況下從外部強行破解秘密,由於巨大的 (2^256) 搜索空間,SHA-256 哈希 + TRNG 會使強行變得不切實際。
注意:在 Coldcard 的後續迭代中(自 MK3 起),預先確定的連續錯誤 PIN 嘗試次數將永久破壞(“破壞”)設備及其機密。
邪惡女僕攻擊
冷卡採取多種對策來阻止各種邪惡女僕的攻擊:
惡意固件攻擊 – Ledger STM32 0xF00DBABE
Ledger Nano S 曾經遭受(目前已修復)嚴重的引導加載程序問題,其中固件驗證過程涉及檢查特定內存位置的特定十六進制常量 (0xF00DBABE)。這個問題很容易被安全研究人員利用,自定義固件成功加載到 Nano S,同時在特定內存位置寫入 0xF00DBABE。
與 Nano S 不同的是,Coldcard Wallet 每次啟動設備時都會校驗每個閃存地址。SHA-256 散列是根據安全存儲在 SE 中的值計算和驗證的。結果以紅色(表示假)和綠色(表示真)燈顯示給用戶,除了 SE 之外,系統的任何部分都無法訪問這些燈。
執行固件升級時,新固件的 SHA-256 哈希值會發生變化。那時,新的“應該是”哈希值也被寫入到 SE 中。如果攻擊者希望刷新自定義(惡意)固件,他們必須知道主要設備 PIN。
暴風雨攻擊 – Ledger Blue RF 洩漏
在另一個演示中,安全研究人員能夠通過跟踪由於在設備屏幕上不同區域註冊的觸摸而產生的射頻信號來確定 Ledger Blue PIN 碼。這很難在 Coldcard 上執行,因為它的固件具有針對此類攻擊的必要保護措施。
此外,從 MK2 版本開始,Coldcard 使用物理鍵代替觸摸鍵,從而增強了抗風性能。
故障攻擊——TREZOR One Glitching
TREZOR 設備容易受到故障攻擊,因為秘密(以加密形式)存儲在主要通用 MCU 本身上。Coldcard 的情況並非如此,所有機密都存儲在 ATECCX08A SE 芯片中。
如前所述,如果不知道主 PIN 碼,就不可能從這個 SE 中提取數據。它還具有諸如在不成功的 PIN 嘗試和使用 TRNG 對機密進行 SHA-256 散列之間的強制定時延遲等功能的強力攻擊。
最重要的是,Coldcard 還可以輕鬆檢測可能的 MITM 攻擊,而不會洩露您的完整 PIN 碼。輸入前綴 PIN 後,它會顯示兩個防釣魚字,這是您的設備獨有的和前綴 PIN 組合。如果單詞不匹配,則表明您的 Coldcard 硬件可能已被篡改。
或者,在設備通電時,在校驗和驗證(紅燈和綠燈)期間會識別任何刷新設備固件惡意版本(不知道主 PIN)的嘗試。
“5 美元扳手”的情況
當您受到脅迫時,硬件錢包中採用的所有安全機制都可能會失敗,例如,被持槍指著以洩露設備 PIN 和/或將比特幣轉移到攻擊者的錢包。BIP39 密碼支持、脅迫 PIN 和 BrickMe PIN 等功能使您能夠在這種情況下拯救或銷毀您的 Coldcard 錢包。
密碼
BIP 39 標準除了 24 字的種子外還支持可選的密碼短語,它可以為每個可能的密碼短語訪問一個新錢包。Coldcard 錢包支持在初始種子詞中添加密碼,從固件版本 2.0.0 開始。
當您隨時通過輸入 PIN 登錄 Coldcard 時,默認密碼始終為空。要添加密碼並訪問與之關聯的全新錢包,請執行以下操作:
- 使用您的前綴和休息 PIN 登錄到 Coldcard。
- 從 Coldcard 菜單中選擇密碼短語。
- 在密碼短語描述屏幕上按確定。
- 通過選擇適當的選項添加新密碼:編輯短語(通過向上/向下和向左/向右移動輸入字符)、添加單詞(從 BIP39 單詞列表中選擇一個單詞)、添加數字(使用物理鍵盤)。
所有這些選項都可以組合使用。您的密碼可能包含 BIP39 單詞列表中的一個單詞,後跟一些數字,然後還有一些特殊字符。短語最長可達 100 個字符。
如果您需要重新輸入密碼或希望返回到您的 24 字種子錢包,密碼短語菜單還具有清除所有選項。
選擇密碼後,從菜單中選擇應用以繼續。一個八位數的錢包指紋將顯示在屏幕上。此指紋可用於驗證通過輸入特定密碼訪問的錢包是否確實是您打算打開的錢包。每次輸入相同的密碼時,錢包指紋都應該相同。
脅迫錢包
當您被迫透露 PIN 時,脅迫錢包應該作為一種逃生路線,以防萬一出現脅迫情況。您可以輸入脅迫 PIN 而不是實際的 PIN 來訪問不同的錢包。
當輸入脅迫 PIN 時,Coldcard 會正常運行並解鎖錢包,因此通常不會警告攻擊者。但是,熟悉 Coldcard 的人可能會分辨出其中的區別。例如,脅迫錢包沒有密碼短語菜單項。
BrickMe 密碼
Coldcard 還允許您設置 BrickMe PIN 以有效地永久銷毀 Coldcard 設備。當使用 BrickMe PIN 時,關鍵秘密將被不可逆轉地破壞,錢包基本上變得像磚頭一樣無用”。
脅迫 PIN 和 BrickMe PIN 都可以通過 Coldcard 錢包中的設置菜單(更改 PIN 代碼選項)進行設置。
獎勵:以最安全的方式設置 Coldcard
這些提示將幫助您以最大的安全性設置您的 Coldcard 錢包。
無需計算機即可開機:將 Coldcard 插入壁式插座或電池組即可開機。
強 12 位 PIN:創建具有 6 位前綴 PIN 和 6 位其餘 PIN 的強 PIN 碼。然後,創建一個新錢包並安全地記錄您的種子以用於恢復目的。
密碼短語設置:接下來,轉到密碼短語菜單並設置一個您可以記住但不容易猜到的強密碼短語。應用密碼短語後,您將登錄到與特定密碼短語相關的錢包。另外,記下錢包指紋以備將來參考。
PSBT:現在,使用 MicroSD 卡通過 PSBT 將您的資產存儲或轉移到與密碼相關的錢包中。
始終離線:繼續在氣隙模式下使用 Coldcard 錢包。
注意:雖然 Coldcard 有一個專門針對脅迫情況的脅迫錢包,但我們不建議您使用該功能,因為熟悉 Coldcard 的攻擊者可以很容易地檢測到實際錢包和脅迫錢包之間的區別。相反,您可能希望在沒有密碼的情況下在主錢包中加載一些資金(您願意丟失),您可以在脅迫情況下訪問這些資金。
附加提示:新的 Coldcard MK3 具有在連續 13 次 PIN 嘗試失敗後自動“變磚”設備的功能。但是,如果您使用的是較早版本的設備,您可以設置一個 BrickMe PIN,該 PIN 的位數與您的主要 PIN 相同,但數值較小。這樣,在暴力破解您的 PIN 碼時,攻擊者可能會在解鎖設備之前先將設備變磚。
你應該得到一張Coldcard
目前,Coldcard 不支持多種貨幣。它不適合在旅途中發送比特幣。儘管如此,Coldcard 可能是長期比特幣“hodlers”的完美解決方案。
該設備主要關注安全性和成本效益,是希望以最安全的方式(氣隙、安全元件)存儲比特幣的人的理想選擇,同時又不影響開源意識形態。