李 悅, 朱 翔, 姜會龍,2, 韓建偉
1. 中國科學(xué)院國家空間科學(xué)中心, 北京 100190
2. 中國科學(xué)院大學(xué), 北京 100049
越來越多的現(xiàn)代硬件設(shè)備(例如手機(jī)、平板電腦和智能卡等)普遍存在安全和隱私保護(hù)問題. 為了達(dá)到較高的安全級別, 安全協(xié)議和復(fù)雜加密算法被廣泛使用. 然而, 實(shí)現(xiàn)安全協(xié)議和復(fù)雜加密算法的系統(tǒng)硬件成為了當(dāng)前攻擊的主要目標(biāo)之一. 在針對系統(tǒng)硬件的所有攻擊類型中, 基于脈沖激光注入的故障攻擊因其具有較高的時(shí)間和空間分辨性、能量連續(xù)可調(diào), 被認(rèn)為是最有潛力的故障攻擊手段之一. 2017 年, Vasselle等[1]就通過利用激光誘導(dǎo)智能手機(jī)產(chǎn)生故障, 成功繞過了手機(jī)的安全啟動. 一次成功的故障攻擊與分析除了需要攻擊者具備豐富的針對被攻擊對象的軟硬件知識, 還需要攻擊者能準(zhǔn)確控制或清楚知道注入的故障類型. 例如, 差分故障分析(DFA) 方法通過利用加密算法的錯誤輸出和正確輸出之間的差異來恢復(fù)加密密鑰, 然而, DFA 的成功和效率在很大程度上取決于注入的故障模型.
基于脈沖激光的故障注入是產(chǎn)生錯誤的非常有效的手段. 然而, 針對大面積集成電路的簡單激光故障攻擊, 會同時(shí)觸發(fā)多種故障類型, 很難對內(nèi)部狀態(tài)進(jìn)行精確控制, 降低了攻擊的有效性. 因此, 對于給定攻擊目標(biāo), 掌握其故障觸發(fā)概率與故障模型分布情況對開展有效故障攻擊是十分必要的. 2002 年, Serger等[2]首次將激光作為故障注入手段, 對一款MCU 的SRAM 存儲單元實(shí)現(xiàn)了任一比特的置位, 此后激光作為攻擊密碼設(shè)備的手段被研究者重視. 2007 年, Chugg 等[3]利用脈沖激光定位優(yōu)勢研究了不同工藝SRAM SEU 敏感區(qū)的分布特性. 2013 年, Roscian 等[4]和Lacruche 等[5]基于激光輻照實(shí)驗(yàn)和仿真兩種方法開展故障模型研究, 其結(jié)果顯示由脈沖激光引起的SRAM 故障類型為位置位(bit-set) 或位復(fù)位(bit-reset) 模型. 隨著器件工藝尺寸不斷縮小, 激光光斑尺寸可覆蓋多個存儲單元, 學(xué)者開始關(guān)注小尺寸工藝下的故障攻擊是否還能實(shí)現(xiàn)單個激光注入下產(chǎn)生單比特故障類型. 為解答該問題, 2015 年, Selmke等[6,7]使用較小的激光光斑尺寸, 對65 nm 和45 nm 的FPGA 器件進(jìn)行激光故障注入試驗(yàn), 其研究結(jié)果表明, 激光注入在小尺寸器件下同樣可以實(shí)現(xiàn)位置位或位復(fù)位故障注入, 并且具有足夠的成功概率來對密碼操作執(zhí)行攻擊. 當(dāng)前, 應(yīng)用激光到IC 安全領(lǐng)域的研究大部分集中于SRAM 存儲單元敏感區(qū)域定位,而針對激光能量和存儲數(shù)據(jù)類型對SRAM 故障模型的影響以及概率分布尚未有經(jīng)驗(yàn)性結(jié)果發(fā)表. 一個已知的故障模型和其觸發(fā)概率對于一個技術(shù)熟練的攻擊者是十分必要的.
本工作利用高精度脈沖激光單粒子效應(yīng)掃描測繪裝置, 對兩款不同工藝尺寸的商用SRAM 器件開展單粒子翻轉(zhuǎn)故障模型試驗(yàn)研究, 全面評估和分析激光能量和存儲數(shù)據(jù)類型對SRAM 器件故障觸發(fā)概率和故障模型分布概率的影響, 為針對未知器件開展具有顛覆性的高精度故障注入建立可參考的故障模型與激光攻擊試驗(yàn)流程方法.
本節(jié)首先闡述脈沖激光誘發(fā)SRAM 存儲單元數(shù)據(jù)位翻轉(zhuǎn)的原理.
圖1 是典型的六管SRAM 單元結(jié)構(gòu). 在正常工作時(shí), 兩對處于對角線狀態(tài)MOS 管會分別處于開啟和關(guān)斷的狀態(tài), 其中處于關(guān)斷狀態(tài)的MOS 管漏極區(qū)域?qū)庹彰舾? 例如, 當(dāng)存儲單元的邏輯值為1 時(shí), 即Q 為高電平而QB 為低電平, 此時(shí)P1 和N2 管處于開啟狀態(tài)而N1 和P2 管處于關(guān)斷狀態(tài), 若對N1 管漏極區(qū)域輻照光子, 激發(fā)的電子會被N1 的漏極電場收集而空穴會被襯底收集, 收集的電子電流將拉低Q點(diǎn)電平, 與Q 連接的P2 和N2 管的柵極電壓也被拉低, 造成N2 管關(guān)斷而P2 管逐漸開啟, QB 電平升高, P1 和N1 管的柵極電平也升高, 造成P1 管關(guān)斷而N1 管逐漸開啟, 最終Q 為低電平而QB 為高電平, 電路重新恢復(fù)穩(wěn)定, 而邏輯值由1 變?yōu)?. 這種現(xiàn)象被稱為單粒子翻轉(zhuǎn)(single event upset, SEU). 因此, 利用激光改變SRAM 單元的存儲信息需要輻照到關(guān)斷狀態(tài)的MOS 管漏極區(qū)域. 不同存儲數(shù)據(jù)結(jié)構(gòu)下的輻照敏感區(qū)域并不相同, 表1 為SRAM 單元在邏輯值為0 和1 狀態(tài)時(shí)對應(yīng)的SEU 敏感區(qū)域.
圖1 典型六管SRAM 單元結(jié)構(gòu)Figure 1 Typical six-tube SRAM cell structure
表1 典型六管SRAM 單元SEU 敏感區(qū)域列表Table 1 List of typical six-tube SRAM cell SEU sensitive areas
圖2 是工藝尺寸與激光光斑直徑的演變圖. 由圖可知, 隨著器件工藝尺寸不斷縮小, 激光光斑尺寸可覆蓋多個存儲單元, 單個脈沖激光注入可造成多個SRAM 單元同時(shí)發(fā)生翻轉(zhuǎn), 這種現(xiàn)象被稱為多比特翻轉(zhuǎn)(multiple bit upset, MBU). 納米工藝時(shí)代下, SRAM 器件發(fā)生MBU 故障必將成為主流.
圖2 工藝尺寸與激光光斑直徑的演變[8]Figure 2 Evolution of technology size vs laser spot diameter of 1 μm [8]
圖3 為基于NI 工控機(jī)開發(fā)的能夠?qū)崿F(xiàn)針對典型SRAM 器件SEU 檢測、移動臺控制、位置數(shù)據(jù)讀取以及激光實(shí)時(shí)觸發(fā)的同步控制電路系統(tǒng)、操作和數(shù)據(jù)處理軟件, 用于器件SEU 敏感區(qū)域的掃描測繪. NI工控機(jī)軟件用于設(shè)置三維移動臺的掃描間隔、掃描速度、被測器件的讀寫數(shù)據(jù)、對采集到的故障數(shù)據(jù)進(jìn)行顯示并繪圖等功能; 由SRAM 型FPGA 構(gòu)建的SEU 檢測器用于根據(jù)NI 工控機(jī)的指令或通過實(shí)時(shí)檢測移動平臺脈沖來實(shí)現(xiàn)對被測器件的讀寫操作; SEU 檢測器安裝在三維移動平臺上, 被測板卡通過以子板的形式安裝在SEU 檢測器上; 三維移動平臺根據(jù)接收到的NI 工控機(jī)移動控制指令實(shí)現(xiàn)位置移動, 其最高移動精度可達(dá)0.1 μm; 可控脈沖激光發(fā)射器用于根據(jù)觸發(fā)信號發(fā)射脈沖激光, 可產(chǎn)生1064 nm 的脈沖激光,脈沖寬度約為15 ps, 單光子能量為1.17 eV; CCD 相機(jī)用于采集被測器件襯底的CCD 圖像.
圖3 SRAM 器件SEU 敏感區(qū)域掃描測繪裝置Figure 3 Scanning and mapping facility for SRAM device SEU sensitive area
SRAM 器件SEU 敏感區(qū)域掃描測繪流程如圖4 所示. 針對未知輻照性能和版圖布局的被測器件, 可將掃描過程分為兩個階段: (1) 全芯片掃描: 采用較大掃描間隔(5 μm 或10 μm) 對全芯片區(qū)域進(jìn)行掃描測繪, 用于獲取器件翻轉(zhuǎn)閾值和識別存儲單元位置與形狀; (2) 局部掃描: 采用較小掃描間隔(0.5 μm 或1 μm 或2 μm) 對發(fā)現(xiàn)的局部區(qū)域進(jìn)行深度掃描測繪, 獲得單個Cell 敏感區(qū)域與故障模型分布概率.
圖4 SRAM 器件SEU 敏感區(qū)域掃描測繪流程圖Figure 4 Flow diagram of SRAM device SEU sensitive area mapping and screening
表2 為選定的兩款不同工藝尺寸被測SRAM 器件. 兩款被測SRAM 器件均是陶瓷TSOP 封裝, 必須對其進(jìn)行開封處理才能進(jìn)行激光SEE 測試. 為避開器件正面金屬層對激光的阻擋作用, 測試采用背部輻射方式. 背部輻照是將器件進(jìn)行背部開封露出Si 襯底, 激光從背部入射.
表2 被測SRAM 器件列表Table 2 List of SRAM devices under test
基于全芯片掃描獲得器件翻轉(zhuǎn)閾值后, 對選定的局部區(qū)域(10 μm×6 μm) 進(jìn)行深度掃描測繪(掃描間隔為0.1 μm), 輻照激光能量為3.1 nJ. 單個Cell 的敏感區(qū)域分布如圖5 所示, 藍(lán)色格點(diǎn)表示存儲數(shù)據(jù)由0 翻轉(zhuǎn)為1 的激光注入點(diǎn), 綠色格點(diǎn)表示存儲數(shù)據(jù)由1 翻轉(zhuǎn)為0 的激光注入點(diǎn). 由圖5 可知, 該器件單個Cell 的面積約為2 μm×3 μm, 且器件發(fā)生位置位和位復(fù)位故障的敏感面積差距較小.
圖5 3.1 nJ 激光能量注入下的SRAM 單元敏感區(qū)域分布圖Figure 5 Sensitivity area map of SRAM cell at 3.1 nJ laser energy
為研究激光能量和存儲數(shù)據(jù)類型對SRAM 器件故障觸發(fā)概率和故障模型分布概率的影響, 選定局部區(qū)域(20 μm×20 μm) 進(jìn)行深度掃描測繪(掃描間隔為2 μm), 輻照激光能量階梯式遞增. 圖6 為不同激光能量觸發(fā)的故障類型比例. 圖7 為器件單粒子翻轉(zhuǎn)觸發(fā)概率和器件發(fā)生單比特故障比例隨激光能量變化情況. 由圖6 可知, 在激光能量閾值(2 nJ) 附近, 1-bit 單位翻轉(zhuǎn)為主要故障類型, 2-bit 多位翻轉(zhuǎn)也會小概率出現(xiàn); 在3 倍激光能量閾值(6.5 nJ) 附近, 多比特翻轉(zhuǎn)以大概率事件出現(xiàn). 由圖7 可知, 隨著激光能量的增加, 器件單粒子翻轉(zhuǎn)觸發(fā)概率呈不斷遞增趨勢, 存儲單元存儲數(shù)據(jù)為FF 時(shí)較存儲數(shù)據(jù)為00 時(shí)略敏感;當(dāng)激光能量增大到6.5 nJ, 可實(shí)現(xiàn)近90% 以上的高觸發(fā)概率; 在激光能量閾值附近, 器件單粒子翻轉(zhuǎn)觸發(fā)概率雖然較低(10%–30%), 但只要故障被觸發(fā), 其觸發(fā)的故障類型將以1-bit 單位翻轉(zhuǎn)類型為主, 且其占比可高達(dá)80%.
結(jié)合圖6 和圖7 進(jìn)行分析可知, 該器件的單粒子翻轉(zhuǎn)觸發(fā)概率和單比特故障比例產(chǎn)生急劇變化的點(diǎn)在4 nJ 激光能量附近, 其變化曲線交叉點(diǎn)在4.3 nJ 激光能量附近(首次出現(xiàn)3-bit 翻轉(zhuǎn)類型). 為使數(shù)據(jù)結(jié)果具有可參考價(jià)值, 本節(jié)將試驗(yàn)結(jié)果數(shù)據(jù)歸一化處理, 以器件激光能量閾值為參考點(diǎn)可知: 器件在1–2 倍激光能量閾值范圍內(nèi), 以10%–35% 的觸發(fā)概率觸發(fā)1-bit 或2-bit 故障類型; 器件在2 倍激光能量閾值以上, 以50% 以上的觸發(fā)概率觸發(fā)多比特翻轉(zhuǎn)(包含3-bit、4-bit 及5-bit 等故障類型). 通過控制器件激光能量閾值增量, 可以一定概率觸發(fā)故障攻擊所需的故障類型.
圖6 不同激光能量觸發(fā)的故障類型比例Figure 6 Proportion of fault types triggered by different laser energy
圖7 器件單粒子翻轉(zhuǎn)觸發(fā)概率和單比特故障比例隨激光能量變化情況Figure 7 SEU trigger probability and proportion of 1-bit fault of device changes with laser energy
針對90 nm 工藝的CY62126EV 型SRAM 器件開展同樣的單粒子翻轉(zhuǎn)故障模型試驗(yàn)研究. 試驗(yàn)結(jié)果顯示, 該器件在激光能量較大時(shí)會出現(xiàn)高達(dá)上萬比特?cái)?shù)據(jù)簇出錯, 且器件電流未有明顯增加, 當(dāng)停止脈沖激光輻照時(shí), 重新對器件進(jìn)行讀寫操作, 器件功能恢復(fù)正常. 該現(xiàn)象與文獻(xiàn)[9] 所述單粒子微閂鎖效應(yīng)表現(xiàn)形式一致, 由此可判斷該器件在激光能量較大時(shí)發(fā)生了微閂鎖效應(yīng), 致使該結(jié)果不具備參考價(jià)值. 本節(jié)僅列出低激光能量注入下的試驗(yàn)數(shù)據(jù), 如表3 所示. 通過分析表3 數(shù)據(jù)可知, CY62126EV 型SRAM 與R1RW0416DSB 型SRAM 器件故障模型結(jié)果保持一致: 在激光能量閾值附近, 可實(shí)現(xiàn)近10% 的低故障觸發(fā)概率, 故障類型以單比特翻轉(zhuǎn)為主, 且其占比高達(dá)98%.
表3 故障觸發(fā)概率及故障模型分布概率隨激光能量變化列表Table 3 Fault trigger probability and fault model distribution probability changes with laser energy
本工作利用高精度脈沖激光單粒子效應(yīng)掃描測繪裝置, 對兩款不同工藝尺寸的商用SRAM 器件開展單粒子翻轉(zhuǎn)故障模型試驗(yàn)研究, 全面評估和分析激光能量和存儲數(shù)據(jù)類型對SRAM 器件故障觸發(fā)概率和故障模型分布概率的影響. 結(jié)果表明, 在3 倍激光能量閾值下, 可實(shí)現(xiàn)近90% 的高故障觸發(fā)概率, 故障類型以多比特翻轉(zhuǎn)為主; 在激光能量閾值附近, 可實(shí)現(xiàn)近10%–30% 的低故障觸發(fā)概率, 故障類型以單比特翻轉(zhuǎn)為主, 且其占比高達(dá)80%; 在覆蓋多個存儲單元的的局部區(qū)域, 存儲數(shù)據(jù)類型對誘發(fā)SRAM 器件故障模型分布概率的影響較小.
本研究團(tuán)隊(duì)嘗試將脈沖激光誘發(fā)SRAM 故障模型應(yīng)用到一款以微控制器為代表的密碼芯片破譯工作中[10]. 通過控制脈沖激光能量在閾值附近, 使得單個脈沖激光誘發(fā)的SRAM 故障類型為單比特翻轉(zhuǎn), 完成最終秘鑰破解. 不同的故障分析方法對故障模型需求不同, 通過開展脈沖激光誘發(fā)SRAM 故障模型研究, 建立脈沖激光閾值能量和故障模型之間的量化關(guān)系, 可有效指導(dǎo)實(shí)際密碼芯片破譯工作.
在實(shí)際故障攻擊案例時(shí), 針對未知器件, 在無法獲得器件內(nèi)部數(shù)據(jù)的情況下: (1) 通過控制器件激光能量閾值增量, 對局部區(qū)域進(jìn)行掃描(間隔1 μm 或2 μm) 故障注入, 可以一定概率觸發(fā)故障攻擊所需的故障類型; (2) 基于獲得的器件觸發(fā)概率和故障類型分布概率數(shù)據(jù), 可協(xié)助攻擊者采用基于概率統(tǒng)計(jì)的方法判斷注入的故障模型, 為有效選擇故障分析方法和進(jìn)行高效故障分析提供助力.