李 悅, 朱 翔, 姜會龍,2, 韓建偉
1. 中國科學院國家空間科學中心, 北京 100190
2. 中國科學院大學, 北京 100049
越來越多的現代硬件設備(例如手機、平板電腦和智能卡等)普遍存在安全和隱私保護問題. 為了達到較高的安全級別, 安全協議和復雜加密算法被廣泛使用. 然而, 實現安全協議和復雜加密算法的系統硬件成為了當前攻擊的主要目標之一. 在針對系統硬件的所有攻擊類型中, 基于脈沖激光注入的故障攻擊因其具有較高的時間和空間分辨性、能量連續可調, 被認為是最有潛力的故障攻擊手段之一. 2017 年, Vasselle等[1]就通過利用激光誘導智能手機產生故障, 成功繞過了手機的安全啟動. 一次成功的故障攻擊與分析除了需要攻擊者具備豐富的針對被攻擊對象的軟硬件知識, 還需要攻擊者能準確控制或清楚知道注入的故障類型. 例如, 差分故障分析(DFA) 方法通過利用加密算法的錯誤輸出和正確輸出之間的差異來恢復加密密鑰, 然而, DFA 的成功和效率在很大程度上取決于注入的故障模型.
基于脈沖激光的故障注入是產生錯誤的非常有效的手段. 然而, 針對大面積集成電路的簡單激光故障攻擊, 會同時觸發多種故障類型, 很難對內部狀態進行精確控制, 降低了攻擊的有效性. 因此, 對于給定攻擊目標, 掌握其故障觸發概率與故障模型分布情況對開展有效故障攻擊是十分必要的. 2002 年, Serger等[2]首次將激光作為故障注入手段, 對一款MCU 的SRAM 存儲單元實現了任一比特的置位, 此后激光作為攻擊密碼設備的手段被研究者重視. 2007 年, Chugg 等[3]利用脈沖激光定位優勢研究了不同工藝SRAM SEU 敏感區的分布特性. 2013 年, Roscian 等[4]和Lacruche 等[5]基于激光輻照實驗和仿真兩種方法開展故障模型研究, 其結果顯示由脈沖激光引起的SRAM 故障類型為位置位(bit-set) 或位復位(bit-reset) 模型. 隨著器件工藝尺寸不斷縮小, 激光光斑尺寸可覆蓋多個存儲單元, 學者開始關注小尺寸工藝下的故障攻擊是否還能實現單個激光注入下產生單比特故障類型. 為解答該問題, 2015 年, Selmke等[6,7]使用較小的激光光斑尺寸, 對65 nm 和45 nm 的FPGA 器件進行激光故障注入試驗, 其研究結果表明, 激光注入在小尺寸器件下同樣可以實現位置位或位復位故障注入, 并且具有足夠的成功概率來對密碼操作執行攻擊. 當前, 應用激光到IC 安全領域的研究大部分集中于SRAM 存儲單元敏感區域定位,而針對激光能量和存儲數據類型對SRAM 故障模型的影響以及概率分布尚未有經驗性結果發表. 一個已知的故障模型和其觸發概率對于一個技術熟練的攻擊者是十分必要的.
本工作利用高精度脈沖激光單粒子效應掃描測繪裝置, 對兩款不同工藝尺寸的商用SRAM 器件開展單粒子翻轉故障模型試驗研究, 全面評估和分析激光能量和存儲數據類型對SRAM 器件故障觸發概率和故障模型分布概率的影響, 為針對未知器件開展具有顛覆性的高精度故障注入建立可參考的故障模型與激光攻擊試驗流程方法.
本節首先闡述脈沖激光誘發SRAM 存儲單元數據位翻轉的原理.
圖1 是典型的六管SRAM 單元結構. 在正常工作時, 兩對處于對角線狀態MOS 管會分別處于開啟和關斷的狀態, 其中處于關斷狀態的MOS 管漏極區域對光照敏感. 例如, 當存儲單元的邏輯值為1 時, 即Q 為高電平而QB 為低電平, 此時P1 和N2 管處于開啟狀態而N1 和P2 管處于關斷狀態, 若對N1 管漏極區域輻照光子, 激發的電子會被N1 的漏極電場收集而空穴會被襯底收集, 收集的電子電流將拉低Q點電平, 與Q 連接的P2 和N2 管的柵極電壓也被拉低, 造成N2 管關斷而P2 管逐漸開啟, QB 電平升高, P1 和N1 管的柵極電平也升高, 造成P1 管關斷而N1 管逐漸開啟, 最終Q 為低電平而QB 為高電平, 電路重新恢復穩定, 而邏輯值由1 變為0. 這種現象被稱為單粒子翻轉(single event upset, SEU). 因此, 利用激光改變SRAM 單元的存儲信息需要輻照到關斷狀態的MOS 管漏極區域. 不同存儲數據結構下的輻照敏感區域并不相同, 表1 為SRAM 單元在邏輯值為0 和1 狀態時對應的SEU 敏感區域.

圖1 典型六管SRAM 單元結構Figure 1 Typical six-tube SRAM cell structure

表1 典型六管SRAM 單元SEU 敏感區域列表Table 1 List of typical six-tube SRAM cell SEU sensitive areas
圖2 是工藝尺寸與激光光斑直徑的演變圖. 由圖可知, 隨著器件工藝尺寸不斷縮小, 激光光斑尺寸可覆蓋多個存儲單元, 單個脈沖激光注入可造成多個SRAM 單元同時發生翻轉, 這種現象被稱為多比特翻轉(multiple bit upset, MBU). 納米工藝時代下, SRAM 器件發生MBU 故障必將成為主流.

圖2 工藝尺寸與激光光斑直徑的演變[8]Figure 2 Evolution of technology size vs laser spot diameter of 1 μm [8]
圖3 為基于NI 工控機開發的能夠實現針對典型SRAM 器件SEU 檢測、移動臺控制、位置數據讀取以及激光實時觸發的同步控制電路系統、操作和數據處理軟件, 用于器件SEU 敏感區域的掃描測繪. NI工控機軟件用于設置三維移動臺的掃描間隔、掃描速度、被測器件的讀寫數據、對采集到的故障數據進行顯示并繪圖等功能; 由SRAM 型FPGA 構建的SEU 檢測器用于根據NI 工控機的指令或通過實時檢測移動平臺脈沖來實現對被測器件的讀寫操作; SEU 檢測器安裝在三維移動平臺上, 被測板卡通過以子板的形式安裝在SEU 檢測器上; 三維移動平臺根據接收到的NI 工控機移動控制指令實現位置移動, 其最高移動精度可達0.1 μm; 可控脈沖激光發射器用于根據觸發信號發射脈沖激光, 可產生1064 nm 的脈沖激光,脈沖寬度約為15 ps, 單光子能量為1.17 eV; CCD 相機用于采集被測器件襯底的CCD 圖像.

圖3 SRAM 器件SEU 敏感區域掃描測繪裝置Figure 3 Scanning and mapping facility for SRAM device SEU sensitive area
SRAM 器件SEU 敏感區域掃描測繪流程如圖4 所示. 針對未知輻照性能和版圖布局的被測器件, 可將掃描過程分為兩個階段: (1) 全芯片掃描: 采用較大掃描間隔(5 μm 或10 μm) 對全芯片區域進行掃描測繪, 用于獲取器件翻轉閾值和識別存儲單元位置與形狀; (2) 局部掃描: 采用較小掃描間隔(0.5 μm 或1 μm 或2 μm) 對發現的局部區域進行深度掃描測繪, 獲得單個Cell 敏感區域與故障模型分布概率.

圖4 SRAM 器件SEU 敏感區域掃描測繪流程圖Figure 4 Flow diagram of SRAM device SEU sensitive area mapping and screening
表2 為選定的兩款不同工藝尺寸被測SRAM 器件. 兩款被測SRAM 器件均是陶瓷TSOP 封裝, 必須對其進行開封處理才能進行激光SEE 測試. 為避開器件正面金屬層對激光的阻擋作用, 測試采用背部輻射方式. 背部輻照是將器件進行背部開封露出Si 襯底, 激光從背部入射.

表2 被測SRAM 器件列表Table 2 List of SRAM devices under test
基于全芯片掃描獲得器件翻轉閾值后, 對選定的局部區域(10 μm×6 μm) 進行深度掃描測繪(掃描間隔為0.1 μm), 輻照激光能量為3.1 nJ. 單個Cell 的敏感區域分布如圖5 所示, 藍色格點表示存儲數據由0 翻轉為1 的激光注入點, 綠色格點表示存儲數據由1 翻轉為0 的激光注入點. 由圖5 可知, 該器件單個Cell 的面積約為2 μm×3 μm, 且器件發生位置位和位復位故障的敏感面積差距較小.

圖5 3.1 nJ 激光能量注入下的SRAM 單元敏感區域分布圖Figure 5 Sensitivity area map of SRAM cell at 3.1 nJ laser energy
為研究激光能量和存儲數據類型對SRAM 器件故障觸發概率和故障模型分布概率的影響, 選定局部區域(20 μm×20 μm) 進行深度掃描測繪(掃描間隔為2 μm), 輻照激光能量階梯式遞增. 圖6 為不同激光能量觸發的故障類型比例. 圖7 為器件單粒子翻轉觸發概率和器件發生單比特故障比例隨激光能量變化情況. 由圖6 可知, 在激光能量閾值(2 nJ) 附近, 1-bit 單位翻轉為主要故障類型, 2-bit 多位翻轉也會小概率出現; 在3 倍激光能量閾值(6.5 nJ) 附近, 多比特翻轉以大概率事件出現. 由圖7 可知, 隨著激光能量的增加, 器件單粒子翻轉觸發概率呈不斷遞增趨勢, 存儲單元存儲數據為FF 時較存儲數據為00 時略敏感;當激光能量增大到6.5 nJ, 可實現近90% 以上的高觸發概率; 在激光能量閾值附近, 器件單粒子翻轉觸發概率雖然較低(10%–30%), 但只要故障被觸發, 其觸發的故障類型將以1-bit 單位翻轉類型為主, 且其占比可高達80%.
結合圖6 和圖7 進行分析可知, 該器件的單粒子翻轉觸發概率和單比特故障比例產生急劇變化的點在4 nJ 激光能量附近, 其變化曲線交叉點在4.3 nJ 激光能量附近(首次出現3-bit 翻轉類型). 為使數據結果具有可參考價值, 本節將試驗結果數據歸一化處理, 以器件激光能量閾值為參考點可知: 器件在1–2 倍激光能量閾值范圍內, 以10%–35% 的觸發概率觸發1-bit 或2-bit 故障類型; 器件在2 倍激光能量閾值以上, 以50% 以上的觸發概率觸發多比特翻轉(包含3-bit、4-bit 及5-bit 等故障類型). 通過控制器件激光能量閾值增量, 可以一定概率觸發故障攻擊所需的故障類型.

圖6 不同激光能量觸發的故障類型比例Figure 6 Proportion of fault types triggered by different laser energy

圖7 器件單粒子翻轉觸發概率和單比特故障比例隨激光能量變化情況Figure 7 SEU trigger probability and proportion of 1-bit fault of device changes with laser energy
針對90 nm 工藝的CY62126EV 型SRAM 器件開展同樣的單粒子翻轉故障模型試驗研究. 試驗結果顯示, 該器件在激光能量較大時會出現高達上萬比特數據簇出錯, 且器件電流未有明顯增加, 當停止脈沖激光輻照時, 重新對器件進行讀寫操作, 器件功能恢復正常. 該現象與文獻[9] 所述單粒子微閂鎖效應表現形式一致, 由此可判斷該器件在激光能量較大時發生了微閂鎖效應, 致使該結果不具備參考價值. 本節僅列出低激光能量注入下的試驗數據, 如表3 所示. 通過分析表3 數據可知, CY62126EV 型SRAM 與R1RW0416DSB 型SRAM 器件故障模型結果保持一致: 在激光能量閾值附近, 可實現近10% 的低故障觸發概率, 故障類型以單比特翻轉為主, 且其占比高達98%.

表3 故障觸發概率及故障模型分布概率隨激光能量變化列表Table 3 Fault trigger probability and fault model distribution probability changes with laser energy
本工作利用高精度脈沖激光單粒子效應掃描測繪裝置, 對兩款不同工藝尺寸的商用SRAM 器件開展單粒子翻轉故障模型試驗研究, 全面評估和分析激光能量和存儲數據類型對SRAM 器件故障觸發概率和故障模型分布概率的影響. 結果表明, 在3 倍激光能量閾值下, 可實現近90% 的高故障觸發概率, 故障類型以多比特翻轉為主; 在激光能量閾值附近, 可實現近10%–30% 的低故障觸發概率, 故障類型以單比特翻轉為主, 且其占比高達80%; 在覆蓋多個存儲單元的的局部區域, 存儲數據類型對誘發SRAM 器件故障模型分布概率的影響較小.
本研究團隊嘗試將脈沖激光誘發SRAM 故障模型應用到一款以微控制器為代表的密碼芯片破譯工作中[10]. 通過控制脈沖激光能量在閾值附近, 使得單個脈沖激光誘發的SRAM 故障類型為單比特翻轉, 完成最終秘鑰破解. 不同的故障分析方法對故障模型需求不同, 通過開展脈沖激光誘發SRAM 故障模型研究, 建立脈沖激光閾值能量和故障模型之間的量化關系, 可有效指導實際密碼芯片破譯工作.
在實際故障攻擊案例時, 針對未知器件, 在無法獲得器件內部數據的情況下: (1) 通過控制器件激光能量閾值增量, 對局部區域進行掃描(間隔1 μm 或2 μm) 故障注入, 可以一定概率觸發故障攻擊所需的故障類型; (2) 基于獲得的器件觸發概率和故障類型分布概率數據, 可協助攻擊者采用基于概率統計的方法判斷注入的故障模型, 為有效選擇故障分析方法和進行高效故障分析提供助力.