一種激光故障注入方法與故障機理描述
背景介紹
隨著物聯網的發展,微控制器(MCU)的需求大幅增加,且其處理的數據常常是關鍵且有價值的。除了網絡攻擊之外,由于這些設備在物理上是可訪問的,因此出現了許多物理技術來提取未經授權的數據。
在相關技術中,故障注入(FI)是一種主動的側信道攻擊方式,通過改變芯片的物理操作環境(例如過電壓和欠電壓、超頻、暴露于高溫或低溫或激光),在目標處理器中引發計算故障,例如跳過指令,從而改變設備的工作方式;由此,它會產生一個故障結果,進一步使用差分故障分析(故障與無故障),以提取未經授權的數據。
基于以上信息,巴黎理工學院的Vanthanh Khuat、Jean-Luc Danger、Jean-Max Dutertre等人在FDTC 2021上討論了一種針對32位微控制器的激光故障注入方法,通過收集所有位置上的故障并分析它們的行為,實現了從閃存接口到執行管道的故障識別與故障描述。[1]
已有工作
相關研究證明,激光故障注入能夠導致易失性存儲器(靜態隨機存取存儲器(SRAM)或寄存器)中存儲的數據發生故障,同時使用不同的底層技術和數據從一個組件移動到另一個組件,而不會影響存儲在非易失性存儲器中的數據。
具體而言,激光故障注入可用于瞄準和修改指令,導致指令被破壞、跳過等。2019年Dutertre等人報告了一個強大的激光故障注入誘導多指令跳過故障模型,在該模型中,作者能夠使用具有相對較長脈寬的激光脈沖跳過任意數量的指令,最多跳過300條指令。[2]
實驗內容
作者使用ARM Cortex-M0+內核(兩級流水線)的SAMD21G18A進行實驗,激光故障注入裝置如圖1所示,激光平臺由激光源、顯微鏡、XYZ工作臺、紅外(IR)攝像機和計算機組成。激光源可以產生波長為1064 納秒的激光脈沖,使光能夠通過幾百μm的硅。激光脈沖寬度可在50納秒到1秒的范圍內調諧。此外,激光源允許獲得可編程延遲,功率范圍為0到3瓦。光被引導到顯微鏡并通過顯微鏡聚焦。

圖1 激光注入工作臺
使用紅外攝像機觀察激光光斑在整個設備中的位置,本文分別在六個點位(如下圖2所示)、是否啟用緩存的共十二種情況下進行激光故障注入。

圖2 紅外相機拍攝的對應點位
實驗結果
- 重放與跳過兩種故障現象
首先對故障現象進行描述,跳過故障定義如下圖3(左)、重放故障定義如下圖3(右)。

圖3 跳過故障定義(左)、重放故障定義(右)
在六個點位分別進行激光故障注入,觀察到不同的故障現象,部分故障現象如下圖4所示,分為重放和跳過兩種故障現象。當緩存被禁用時,緩沖區大小為32位,對應2×16位的指令,對應的故障現象為跳過某兩條指令或重放某兩條指令;當緩存被啟用后,緩沖區大小為64位,對應4×16位的指令,對應的故障現象為跳過某四條指令或重放某四條指令。

圖4 在點位P1、P2觀察到的故障現象
經過分析,重放故障是由激光導致的閃存接口緩沖區更新被阻止引起的;跳過故障是由激光導致的緩沖區內容中的一個或多個位損壞引起的。
- 故障發生機制
根據故障指令的數量以及在禁用和啟用緩存時報告的故障行為,嘗試確定指令在哪個階段出現故障。為了檢測和大致分類誘發故障,首先要了解從閃存到核心管道的指令流。圖5是SAMD21G18A的非易失性存儲器(NVM)的框圖。通常存儲在NVM(如閃存)中的指令在傳輸到AHB總線之前先加載到閃存接口及其緩沖區。與2×16位指令對應的32位數據每兩個時鐘周期加載到AHB總線中。然后,指令由AHB總線加載入管道。

圖5 SAMD21 NVM接口
有實驗表明,使用EMFI(電磁波故障注入)和LFI(Laser)時,閃存接口緩沖區可能會出現故障。
故障發生機制如圖6所示。假設AHB總線已經申請到了。這時候就要把HTRANS、HADDR放總線上。HRDATA比HADDR是慢一個周期的。因此,在圖6(b)中,由于AHB縱向數據更新發生故障,導致指令i5、i6被重放;在圖6(c)中,由于HRDATA發生位故障,指令不能被正確識別,導致指令i7、i8被跳過;在圖6(d)中,由于核心管道的提取階段獲得了位損壞的指令,導致i6被跳過;在圖6(e)中,由于核心管道的執行階段獲得了位損壞的指令,導致i5被跳過。

圖6 故障發生機制
綜上可以得出,不同的激光故障注入位點會影響指令流水線處理的不同過程,這與作者們觀察到的不同故障發生時間也較為一致。
相關學者還討論了PW、功率對故障注入成功率的影響。激光脈寬越大,發生故障的指令越多;激光功率越大,發生故障的概率越高。
結論
本論文介紹了一種通過AHB總線在32位微控制器(MCU)中使用激光故障注入(LFI)從閃存接口到執行管道獲取故障的方法。在指令通道的六個位置獲得了不同的故障行為,通過收集所有位置上的故障并分析它們的行為,可以識別和描述故障,并確定閃存接口緩沖區上的故障因緩存操作模式而異;根據注入位置的不同,得到重放和跳過兩種故障模型,研究了脈沖寬度和功率等激光故障注入參數對故障的影響。
本文的結果說明了激光故障注入的空間和時間準確性,指出了易受攻擊的位置并揭示了設備架構的信息。
參考資料
[1] V. Khuat, J. -L. Danger and J. -M. Dutertre, "Laser Fault Injection in a 32-bit Microcontroller: from the Flash Interface to the Execution Pipeline," 2021 Workshop on Fault Detection and Tolerance in Cryptography (FDTC), 2021, pp. 74-85, doi: 10.1109/FDTC53659.2021.00020.
[2] Jean-Max Dutertre, Timothé Riom, Olivier Potin, and JeanBaptiste Rigaud. Experimental analysis of the laser-induced instruction skip fault model. In Nordic Conference on Secure IT Systems, pages 221–237.Springer, 2019.
