這篇技術分析將探討近期由 Ledger 的 Donjon 安全團隊揭露的一項針對 Tangem 硬體錢包的攻擊。對於初入行的工程師來說,這是一個極佳的案例,可以用來理解硬體安全、Secure Element(安全元件)以及所謂的「故障注入」攻擊是如何運作的。
首先我們要理解 Tangem 的設計邏輯。Tangem 錢包外觀像一張銀行卡,內部搭載了 Samsung S3D232A 晶片。這是一個 Secure Element(安全元件),專門設計用來儲存私鑰並抵抗物理篡改,且通過了 EAL6+(一種極高規格的硬體安全認證)認證。在正常情況下,私鑰永遠不會離開晶片,攻擊者必須同時擁有實體卡片且知道密碼才能轉移資金。
這次漏洞的核心在於 Tangem 的密碼重設機制。為了方便使用者,Tangem 允許使用者透過將兩張綁定卡片放在一起來重設密碼。在晶片內部執行這個流程時,會有一道邏輯檢查:目前的狀態是否處於恢復模式(Recovery Mode)?如果答案是肯定的,晶片就會允許使用者在不輸入舊密碼的情況下設定新密碼。
Donjon 團隊利用了一種稱為 Laser Fault Injection(雷射故障注入)的技術。簡單來說,攻擊者將卡片切開,暴露出晶片,並在晶片執行上述那道邏輯檢查的精確瞬間,對特定電路位置發射一束高能雷射脈衝。這束雷射並不是去修改儲存的數據,而是透過物理干擾讓晶片的電路在瞬間產生錯誤,導致邏輯檢查失效。結果就是晶片被「欺騙」成正處於恢復模式,從而接受任何新的密碼設定,完全繞過了舊密碼驗證或第二張備份卡的檢查。
從工程實務來看,這次攻擊有幾個非常重要的技術特點。
第一是極高的攻擊門檻。這不是一種可以透過網路遠端執行的攻擊,而是需要物理接觸。攻擊者需要一套價值約 25 萬美元的雷射設備、高精度的量測工具,以及深厚的硬體逆向工程能力來定位晶片上的精確打擊點與時間點。此外,由於必須切開卡片,攻擊過程會留下明顯的物理毀損,無法在不被發現的情況下完成。
第二是不可修補的永久性。這是本案例最令人不安的地方。Tangem 在設計時將不可更新韌體(Firmware)視為一種安全特性,認為這樣可以防止遠端竄改。然而,當漏洞存在於韌體層級時,這個特性反而變成了致命傷。因為晶片出廠後無法更新,意味著所有已售出的卡片都永久攜帶這個漏洞,沒有任何軟體補丁可以修復。
第三是安全認證的誤區。許多人認為 EAL6+ 認證就代表絕對安全,但事實上,認證通常針對的是晶片本身的硬體防禦能力。而這次的漏洞發生在錢包廠商在晶片之上所撰寫的韌體邏輯中。這提醒我們,即便底層硬體極其堅固,上層的邏輯設計失誤依然會成為突破口。
針對此威脅,Tangem 官方認為實務風險極低。其理由是攻擊成本過高,且攻擊者無法在不破壞卡片的情況下知道該卡片內含多少資產(可能是 50 美元,也可能是 5000 萬美元),因此缺乏經濟誘因。
對於使用者而言,只要卡片在手,目前不需要採取任何行動。但如果你的 Tangem 卡片遺失或被盜,且其中存放了高額資產,請立即使用備份卡或種子金鑰將資金轉移至新地址。在這種情況下,你不能再信任密碼的保護作用,因為對於擁有專業設備的攻擊者來說,密碼已經不再是障礙。
來源:thehackernews.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。