**作者:CompoundWater 複水 ; Contents May Also Contribute to MatrixDAO本篇主整理來自 MatrixDAO GM 的週分享內容 。
URL: **
Contents
-
Intro
-
首先 Ledger 的架構如何運行?
-
為什麼 Ledger 需要 Firmware Update?
-
Firmware 韌體如何更新?
-
哪種情況下 Ledger 是可信任的?
-
大家以為 Ledger 安全元件是用特殊應用 ASIC 晶片,實際上可能是微控制器
-
Conclusion
Intro
近期 Ledger 推出新服務——Ledger Recover。一個基於ID的密鑰恢復訂閱的方案。此功能將用戶的助記詞分割成三個加密片段,由不同實體保存。
看似乎提供了額外的安全性,但該功能發布後引發不少用戶對隱私和安全的擔憂,尤其是涉及到存儲私鑰助記詞並與護照或 ID 證件相關聯等操作,顯然違背了加密社區的隱私價值觀與去中心化。
https://www.odaily.news/post/5187141
首先 Ledger 的架構如何運行?
https://developers.ledger.com/docs/embedded-app/bolos-hardware-architecture/
根據官網,Ledger 的架構如下,外圍與許多不同的設備連接,例如屏幕、按鈕、通過 USB 連接的主機,或 Ledger 的藍牙和 NFC。
且額外的 STM32 微控制器(MCU)連接到安全元件(SE),作為安全元件和外圍設備之間的“啞路由器”。微控制器不執行任何應用程序邏輯,也不存儲 BOLOS 使用的任何加密秘密,它只是管理外圍設備並在準備好接收新數據時通知安全元件。BOLOS 應用程序完全在安全元件上執行。
安全元件 (Secure Element, SE)
- 用於存儲 BIP-32 種子和密碼 (Stores BIP-32 seed & passcode)
韌體 (Firmware: BOLOS)
-
可訪問助記詞的介面 (a kernel with access to the seed)
-
運行下載更新在應用端程序 (an app loader that runs each app in a sandbox)
-
韌體更新 BOLOS 介面程序 (Each firmware update BOLOS kerne)l
為什麼 Ledger 需要 Firmware Update?
因為當新的鏈協議(Ex: Aptos)和簽名演算法方式出現,之前的軟體無法配合硬體,所以當任何惡意固件升級都可能導致攻擊者竊取您的種子
→ any malicious FW upgrade can lead attacker stealing your seed
Firmware 韌體如何更新?
-
新韌體更新必須由 Ledger 簽名 (The new FW has to be signed by Ledger)
-
用戶也須使用他們的密碼批准 (the user has to approve the update with their passcode)
→ 所以每個用戶更新不是被逼的,而是可以自己決定是否更新韌體
哪種情況下 Ledger 是可信任的?
-
只信任安全元件完整性 (Assuming only trust in SE hardware integrity)
-
即 Ledger 公司和連接到該設備的電腦可能會受到損害 (i.e, Ledger the company, and the computer attached to the device might be compromised)
-
用戶密碼是唯一阻止攻擊者提取種子的東西 (the user passcode is the only thing preventing an attacker from extracting the seed)
-
-
消費者自己的選擇 (Options for consumers )
-
新的區塊鏈發佈時扔掉你的設備 (throw away your device every time a new blockchain ships)
-
理論上信任賬本一次,因為你永遠不會“被迫”升級韌體 (in theory, Trust ledger once, since you are never “forced” to upgrade firmware)
-
大家以為 Ledger 安全元件是用特殊應用 ASIC 晶片,實際上可能是微控制器
Ledger 官網提到的安全元件 ST31 晶片,網上查了下可能是安謀晶片公司 ARM 的商用微控制器晶片 ST31 ARM SC000,能根據韌體更新調整其行為,所以可能並不像我們認為其安全元件使用了 ASIC 特殊晶片。
簡單科普,ASIC 是一種定制化的積體電路,專為特定的應用或功能而設計。處理特定的任務或執行特定固定的功能,其晶片行為是固定的,例如只做錢包簽章的固定行為。
而微控制器是一種整合了處理器(CPU)、記憶體、輸入/輸出接口和其他必要電路的單片電腦系統,通常用於控制和監控應用等嵌入式系統。微控制器具有可程式性,開發人員可以通過編寫軟體指令來控制其行為。
Ledger 自己也說有機會可以由更新韌體去擷取硬體上儲存的Key → 等於= 碰得到註記詞種子 Seed,還拿得出來 (韌體有風險的雙向傳輸設計)
Conclusion
本次探討了硬體錢包Ledger的架構和安全性,包括Ledger Recover的隱私和安全問題,以及韌體更新的必要性和更新方式。Ledger的安全元件(SE)存儲BIP-32種子和密碼,搭配韌體BOLOS運行。更新韌體需要Ledger簽名和用戶密碼批准。然而,似乎只有相信SE硬件完整性,用戶密碼才能防止攻擊者提取種子,因為 Ledger 也承認更新韌體可能擷取硬體上儲存的Key。
轉載請註明出處與作者
聯繫郵件:[email protected]
更多關於我: CompoundWater複水
IG/TG/YT/FB/Linkedin/Twitter: 頻道搜尋 @compoundwater
歡迎自由斗內支持(ERC20): 0xc2Ac7F93D54dfbf9Bf7E4AeD21F817F2ce598D28