An article to understand the attack and defense of security chips and imKey's "core" level protection

一文了解安全晶片的攻防及 imKey 的「芯」級防護

一文了解安全晶片的攻防及 imKey 的「芯」級防護

前言

無論牛熊,資產安全永遠都是最重要的!尤其對於去中心化錢包使用者而言,私鑰自持,資產自管,但也意味著風險自擔,那麼,錢包的安全性必然就是使用者最關心的話題。

今天,我們再次走進 imKey 硬體錢包的安全核心 —— 安全晶片,透過本文了解歷史上涉及安全晶片的攻防有哪些?imKey 的安全晶片如何保護使用者的私鑰安全?

隨著電腦的發展,電腦安全已經成為現代電子世界重要的組成部分,而硬體安全更是成為電腦安全的一個關鍵領域。在這個領域上,從 1982 年第一批接入到互聯網的硬體開始,圍繞著晶片安全的攻擊與防護一刻都未停止過。

攻擊者們試圖非法地從晶片中取得使用者的私人信息,為此他們採取植入木馬、開啟後門、電磁干擾、高溫高濕、物理破壞等手段,無所不用其極。針對攻擊者們不同的攻擊方式,安全晶片在一次次對抗中發展出一整套與之對應的安全防護方案。

如果把晶片的攻擊和防護比喻為一場旷日持久的聖戰,那麼,攻擊者的各種攻擊方式就是一個個硝煙彌漫的戰場,而安全晶片就是各戰場上守護使用者信息安全的最堅固防線。

最古老的戰場 —— 內存數據防護

通常情況下,安全晶片會包含 FLASH / EEPROM / ROM 等持續性存儲,也會有 RAM / CACHE 等動態存儲。這些內存組件與 CPU 通過 Bus 總線連接進來,並以此來交換地址和數據。

20 多年前,攻擊者們的一項日常任務就是從晶片的內存中讀取未加密的數據,希望以此來掌控晶片內程序的代碼,或者是將數據從晶片內部分離出來。

最初,晶片製造商們使用一種叫做「implantation ROM」的技術,通過將離子注入到晶片的基板來替換可見的金屬連接進行信息編碼,但攻擊者們馬上就發現了一種稱為「decoration」的特殊蝕刻程序,可以讓內存數據暴露無疑。之後,晶片製造商們轉向整體安全措施,而最早的對策之一就是對內存地址進行加撒,但是不久之後,攻擊者就攻破了這種簡單的混淆,那就是通過應用程序從加撒的內存 dump 中重新組合出明文。更重要的是,當時的晶片佈局上很容易識別和恢復加撒信號。因此,在過去的十年中,簡單的地址加撒已經被內存加密廣泛地取代。此外,安全晶片還必須考慮任何可能影響晶片行為的故障攻擊。內存系統,包括相應的總線結構,都是攻擊者的目標,如果沒有得到有效防護的話,成功的故障攻擊可能會破壞密鑰、dump 數據、繞過密碼或 PIN 的輸入,甚至獲得對晶片的編程訪問權限。

若干年前,甚至現在的一些低端安全晶片產品,採用一種叫「Parity Bits」的手段進行內存的完整性校驗,每個字節(8Bit)都額外多使用一個 Bit 的數據進行數據校驗,因為只有一個 Bit 的數據,這個檢驗位只可能是奇數 1 或是偶數 0。換句話說,這樣的校驗位機制就給攻擊者可乘之機,攻擊者會有 50% 的機率成功。

而現在的高端安全晶片(比如 imKey 所用的這顆安全晶片)完全地棄用了這種方法,轉而採用數學錯誤檢測代碼(mathematical error detection codes,如圖)。不僅允許對一位或者多位錯誤進行錯誤檢測,還具有一定的糾錯能力。

最關鍵的戰場 —— CPU 防護

CPU 是整個晶片的核心,在 CPU 指令和信號周圍的攻擊不僅僅發生在影視劇或者實驗室中,而是切實地發生在現實中。在典型的 CPU 攻擊中,攻擊者不僅可能在處理過程中找到明文,還可能在操作過程中找到誘導其發生故障的絕佳機會,並用之來破解密鑰或隨意操縱軟件執行。早期有一種方法是通過增加一顆在內核外部用於檢測環境條件(如電壓、光或溫度)的傳感器來保護 CPU 內核,但是大多數傳感器通常在晶片的局部分布範圍內工作,並不能保護那些對 CPU 本身的局部攻擊,例如使用激光、α輻射、TIVA(熱感應電壓改變)或直接物理強制攻擊。

最初,安全晶片製造商們也用和內存防護相似的方法——「Parity Bits」來防護 CPU 的寄存器,但是和內存防護一樣,這種防護並不長久,僅僅是過一段時間之後,就被攻破了。而現今最常用的 CPU 防護方法是數據/代碼簽名。這些簽名通常在編譯代碼或生成數據時創建,然後與代碼和數據一起存儲在內存中。當數值不匹配時,會觸發錯誤並發出警報,從而停止 CPU 的進一步處理。代碼和數據簽名對於代碼中所謂「線性」部分的保護是很出色的,但是當代碼出現大量分支代碼時,它就成為了攻擊者最重要的目標,攻擊者會試圖通過攻擊代碼簽名來影響分支代碼的行為。儘管如此,代碼和數據簽名仍然是中端安全晶片產品常用的保護手段。

近年來,晶片製造商慢慢認識到要實現真正的 CPU 保護,僅靠一個 CPU 是不夠的,因為它無法在一定程度上自行檢查自己的決策,並以此來有效地應對現代攻擊方法。因此,最先進的對策是使用緊密相連的雙 CPU 內核,其中兩個 CPU 不斷檢查彼此的正確操作和執行條件,而且如果將 CPU 計算的數據進行加密,則可以為兩個 CPU 使用不同的動態密鑰,並同時采多時間和多區域的故障誘導方法,以此進一步增加對所謂的多故障攻擊的屏障作用。

最真假難辨的戰場—— 物理攻擊與防護

攻擊者對運行在矽芯片上的信號會非常感興趣,因為他們可以藉助於這些信號對芯片進行逆向工程。逆向工程是指對一個目標進行徹底的檢查,以達到對其結構或功能的全面理解的過程,以及攻擊者用來發動攻擊的一種方法。逆向工程廣泛用於克隆、複製各種安全關鍵應用中的系統和設備。歷史上最著名的一個例子是在二戰時期,一架 B-29 轟炸機被蘇聯捕獲、逆向工程並克隆。

針對於硬件產品的逆向工程,主要分為芯片級逆向、板級逆向、系統級逆向,安全芯片主要面對的是芯片級逆向。攻擊者先要識別芯片的封裝材料並移除芯片的封裝,攻擊者會用化學法(濕式、乾式)、機械法、納米製造技術、激光燒蝕等技術對芯片進行解封裝,之後攻擊者會將芯片進行分層。現代的芯片一般由幾個金屬層、鈍化層、通孔、觸點、多晶矽和有源層組成,攻擊者會對芯片進行橫截面進行成像處理,使用 SEM 或 TEM 來識別層數、金屬材料、層厚、通孔和觸點。在分層過程中,攻擊者會拍攝成千上萬的高分辨率圖像來捕獲每一層中包含的所有信息,隨後,這些圖像可以拼接在一起,然後進行研究以重建芯片。

最詭譎的戰場—— 側信道攻擊與防護

側信道攻擊,又稱邊信道攻擊(Side-Channel Attack),是一種非侵入性攻擊,它以密碼算法的實現為目標,而非分析其統計或數學弱點。這些攻擊利用從各種間接來源或渠道泄露的物理信息,例如目標設備的功率消耗、電磁輻射或計算的消耗時間來進行攻擊,此類攻擊統稱為側信道攻擊。側信道攻擊的方式多種多樣,幾乎可以利用的範圍是無限的,常常讓芯片製造商防不勝防,曾經有攻擊者就通過側信道攻擊在 4 米之外對筆記本發起了攻擊。

總體來說,常見的側信道攻擊分為功率分析、電磁分析、時序分析、故障注入等手段。除了下圖列出的常見側信道攻擊方式之外,聲音、溫度、振動等信號都是攻擊者可以利用的信號源。

針對側信道攻擊常用的方法是隱蔽信道、CPU 信號進行加密,並輔以協處理器進行輔助保護。

imKey 的「芯」級安全防護

imKey 硬件錢包選用的安全芯片為英飛凌生產的 SLE78CLUFX5000PH,相關參數如下:

該晶片運用「Integrity Guard」設計來協調兩個CPU核心的運算,確保資料不僅加密儲存在晶片內,並且在晶片內以加密形式處理。這種「Integrity Guard」設計的核心是一個獨立的、自我檢查的系統,這個系統就像細胞中的DNA雙螺旋一樣運作。

由兩個CPU組成的獨立自檢系統的工作原理就像細胞中的DNA雙螺旋線,檢查加密形式的應用代碼並將其傳輸到鏡像CPU。

來自兩個CPU的機器命令形成程式代碼。來自內存模組的命令和數據在CPU中組合以處理輸入數據並產生所需的輸出數據。

逆向工程、物理攻擊或側信道分析等攻擊只會洩露加密數據,這對攻擊者來說是無用的。

Integrity Guard 是市場上第一個在CPU本身中利用硬體加密處理的安全技術。

該晶片內部設有屏蔽層,並進行安全混雜布線、電流擾源處理,能夠有效防止外部對硬體的探測和破解。晶片具有完善的物理攻擊防護,保證在高低溫、電磁干擾、紫外線干擾、靜電干擾、電壓毛刺干擾等環境下不會洩露敏感信息。

該晶片的算法實現保存在一個特殊的存儲區,在算法下載後,這個區域不再支持晶片的調試運行。整個算法程序運行於一個獨立的程序堆棧中,一旦程序執行結束,棧區立刻被清空,否則無法執行下面的調用。晶片的硬體算法區受晶片自身訪問系統的保護,從而保證硬體算法和密鑰的安全性。

該晶片能夠對外部時鐘頻率和電源電壓進行檢測監控,防止外部通過檢測時鐘和電壓的變化來獲取信息,保證程序執行期間數據的安全性。晶片內灌裝的COS程序不會被篡改,用戶私鑰保存在晶片內部,無法被導出。

總結:

上述提及的僅是攻擊者常用的幾種攻擊手段,而不是硬體錢包面臨的所有威脅。諸如硬件木馬攻擊、面向測試的攻擊、針對隨機數的攻擊等都可能導致資產的損失。更甚者,即使使用了世界上最安全的安全晶片,攻擊者還可能使用社交工程攻擊,例如通過賄賂你的家人朋友直接盜取密碼或助記詞,資產還是可能會消失。

只有外在使用 CC EAL6+ 安全晶片的 imKey 硬體錢包,在內在時刻將安全意識記在心上,兩者結合,才能確保所持資產的安全

後記:

感謝英飛凌的 Dr. Peter Laackmann, Marcus Janke 編寫的安全晶片白皮書。

本文涉及的技術與方案僅是基礎概念,旨在讓大家了解安全晶片的攻防,以及硬體錢包使用安全晶片的必要性。

參考資料:

Integrity Guard 數字安全技術 https://www.infineon.com/cms/en/product/promopages/integrity-guard/