趙毅強,高 雅,馬浩誠,張啟智,葉 茂,夏顯召,2,何家驥
(1. 天津大學微電子學院,天津 300072;2. 中國汽車技術研究中心,天津 300000)
近年來,隨著信息安全領域日新月異的發(fā)展,安全芯片作為信息安全領域的底層基礎和硬件保障,被廣泛應用于涉及敏感信息場景下的許多關鍵基礎設施中. 與此同時,隨著攻擊技術的不斷進步,越來越多的針對安全芯片的攻擊手段和案例被報道出來,如前美國軍事安全專家Christopher Tarnovsky 對英飛凌的SLE66 CLPE 安全芯片實施微探針攻擊獲取關鍵數(shù)據(jù)[1],引起人們對芯片安全的高度重視.
隨著物理攻擊技術的發(fā)展,安全芯片面臨的物理攻擊威脅可分為3 種:侵入式攻擊、非侵入式攻擊[2]和半侵入式攻擊[3]. 其中,侵入式攻擊以聚焦離子束(Fo?cused Ion Beam,F(xiàn)IB)攻擊[4]和微探針攻擊為代表,這兩類攻擊通常進行組合,通過破壞芯片封裝、反向工程來獲得芯片版圖,修改內部走線,讀取存儲數(shù)據(jù)[5]. 侵入式攻擊是現(xiàn)有物理攻擊中最有效、最直接的手段,為此,我國針對密碼模塊和安全芯片于2012年、2014年和2015 年先后制訂了《安全芯片密碼檢測準則》[6]《密碼模塊安全技術要求》[7]和《密碼模塊安全檢測要求》[8]行業(yè)標準,其中明確規(guī)定了安全類芯片必須具有抗物理侵入攻擊和非侵入攻擊的能力. 主動屏蔽層因其良好的抗侵入式物理攻擊能力,成為保障硬件安全的主流手段.
主動屏蔽層的防護水平與屏蔽線網絡的復雜程度密切相關,一些商用微處理器、智能卡等,采用了平行等勢線、蛇形走線、螺旋線、希爾伯特曲線、摩爾曲線等拓撲結構[9,10]. 這些布線結構的信息熵值大多在0.6~0.8 bit之間,具有較明顯的規(guī)律性,易于被分析破解;此外,大部分屏蔽層缺少完整性檢測電路,因此防護效果難以保障. 為了進一步提高芯片的安全性,本文基于哈密頓隨機回路的拓撲結構進行優(yōu)化,針對不同的應用場景和工藝條件,提出了一系列靈活易用的軟件定義主動屏蔽層布線生成算法,不僅兼容多種節(jié)點的工藝,而且能夠高效生成復雜無序的主動屏蔽層,其信息熵值高達0.95 bit,結合自研的屏蔽層完整性檢測電路,能夠極大地提高芯片的安全水平,最終形成了具備較高自動化程度的布線生成軟件,具有較高的應用價值.
主動屏蔽層的整體架構如圖1 所示,由屏蔽層、完整性檢測電路以及被保護區(qū)域3 部分組成. 由于微探針和FIB攻擊的方式是直接接觸芯片,因此通常選用頂層或次頂層金屬通過一層或多層金屬的走線組成復雜的屏蔽層網絡. 屏蔽層不僅可以有效遮蔽金屬層下方的加密模塊、存儲器模塊等關鍵組件[11],而且還可以在通入檢測信號后與完整性檢測電路相結合,將參考檢測信號與經過屏蔽層的待檢測信號進行比對,監(jiān)控屏蔽層的完整性狀態(tài),有效識別對屏蔽層的攻擊行為[12],一旦識別到芯片受到攻擊,立即產生報警信號通知主控單元,由主控單元進一步采取其他的防護手段.
圖1 軟件定義主動屏蔽層系統(tǒng)整體架構
應用于安全芯片的主動屏蔽層需要在完整覆蓋芯片待保護區(qū)域的基礎上,具備高隨機性、高復雜度的特點. 目前已知的基于哈密頓隨機路徑拓撲結構的生成算法主要為循環(huán)合并算法(Cycle Merging Algorithm,CMA)[13],但是其生成速率極大地受到布線面積的限制,即布線面積增大后,生成效率迅速降低. 為了提高屏蔽層的生成效率,本文采用預先分類的思想,將回路按照能否合并進行分類,每次合并過程只在可以合并的回路中進行隨機選擇,避免了無效合并對時間的消耗,提升了布線效率.
依據(jù)預先分類的思想,基于改進人工魚群算法[14,15]的隨機哈密頓路徑生成算法(Artificial Fish-Swarm Random-Hamiltonian Algorithm,AFSRHA)[16]被提出來. 將人工魚群算法與隨機哈密頓路徑的生成特點相結合,通過概念以及行為特征定義的改進,實現(xiàn)了一種高效的大面積隨機哈密頓路徑自動生成算法.
人工魚群算法即通過模擬魚類群體社會行為的智能尋優(yōu)算法. 現(xiàn)有的AFSRHA 算法只能生成線寬線間距相等的哈密頓回路,即布線的寬度變大后,線間距也隨之變大. 不同集成電路工藝,對于最小線寬線間距會有不同的要求,并不全都是相等的,可調的線寬線間距會提升算法的靈活性,滿足不同的布線需求. 此外,較寬的線間距會導致攻擊者不必切割金屬布線層,探針即可從布線間距中扎入底層待保護電路并獲取關鍵信息.
為了實現(xiàn)線寬與線間距均可根據(jù)需求進行調節(jié)的功能,在算法上將原本代表線寬線間距的參數(shù)一分為二,分別對線寬和線間距進行量化,且在最初的格點劃分步驟中,將線寬和線間距2 個參數(shù)進行歸一化處理,在回路合并完成后會形成1個封閉圖形,借助語言腳本對線寬線間距分別定義,將歸一化的格點坐標轉換為物理連線實際坐標,隨后組合線寬線間距作為一個整體沿著封閉圖形的邊緣進行描繪,實現(xiàn)對線寬和線間距的區(qū)分處理,從而實現(xiàn)對算法的改進和優(yōu)化.
AFSRHA 算法的流程圖和執(zhí)行圖分別如圖2、圖3所示. 實現(xiàn)過程首先將布線面積的長和寬用線寬線間距歸一后的參數(shù)進行劃分,等效為圖3(a)所示的格點.在算法的初始化階段,將相鄰的4 個格點構成1 個如圖3(b)所示的正方形并標號,代表1 條人工魚,本文以25 條人工魚為例. 每條人工魚都標記有活躍度屬性以及覓食、追尾、群聚3 種行為. 活躍度與魚群和食物的距離成反比. 活躍度為0 的人工魚為自由魚群,是算法初始化后的初始魚群;活躍度為1的人工魚是比自由魚群靠近食物的活躍魚群,自由魚群通過追尾行為可以加入活躍魚群;活躍度為2的人工魚則是正在進食的中心魚群. 隨機選擇1 條人工魚的位置投放食物,通過覓食行為,它的活躍度將變成2,活躍魚群通過群聚行為可以加入中心魚群. 中心魚群中的人工魚數(shù)目被記錄在公告板上,算法執(zhí)行過程中公告板數(shù)據(jù)會一直更新,直到公告板上的數(shù)據(jù)達到規(guī)定數(shù)值. 圖3(c)中隨機選擇了18 號魚投食,18 號魚通過覓食行為形成的回路C即中心魚群的初始回路. 公告板更新為1,剩下的自由魚數(shù)目為24. 在追尾行為中,圖3(c)中18 號魚周圍的17號、19號、3號、23號4條自由魚活躍度提升為1,在其中隨機選擇1 條19 號活躍魚通過群聚行為加入中心魚群,回路C 擴大如圖3(d)所示,公告板更新為2,24 號、14 號、20 號魚通過追尾行為加入到活躍魚群. 接下來在17號、23號、13號、24號、20號5條魚中隨機選擇1條通過群聚行為加入中心魚群,回路C 擴大如圖3(e)所示,公告板更新為3,以此類推直到所有人工魚被合并形成圖3(f)所示的哈密頓回路.
圖2 AFSRHA算法流程圖
圖3 AFSRHA算法步驟圖
總而言之,AFSRHA 算法的執(zhí)行過程就是通過隨機選擇的方式遍歷待保護區(qū)域的格點,且每個格點只訪問1 次,最終形成1 條封閉的隨機哈密頓路徑. 由于魚群具有追尾行為,每次隨機選擇的格點都會產生有效合并,故而提升了算法的效率.
針對主動屏蔽層算法的評價指標主要是熵值和執(zhí)行時間. 熵值代表了算法生成的隨機哈密頓路徑的復雜度,是最首要的指標,只有保證了復雜度的屏蔽層才能具有良好的防護效果. 其次是衡量算法效率的指標,即執(zhí)行時間. 隨著集成電路規(guī)模的指數(shù)型增長,如何在短時間內生成大面積的屏蔽層布線也是算法需要重點考慮的一個方面.
為了比較隨機哈密頓布線與其他商用布線的復雜度,設計了隨機蛇形走線算法,將其熵值與AFSRHA 算法熵值進行比較,結果如表1所示.
表1 隨機蛇形走線與AFSRHA算法熵值比較
主動屏蔽層算法的生成時間計算通過MAT?LAB2016的算法執(zhí)行時間(Execution Time,ET)來衡量,基于MATLAB2016 平臺,利用CMA 算法與AFSRHA 算法對同樣面積的區(qū)域進行布線,比較它們的生成時間,結果如表2所示.
表2 CMA與AFSRHA算法運行時間及熵值比較
可以看出,基于同樣的面積和平臺,熵值指標方面AFSRHA 算法生成的布線復雜度明顯高于隨機蛇形走線算法;時間效率方面AFSRHA 算法明顯高于CMA算法.
雖然屏蔽層的設計極其精密,但是依然存在被切割攻擊的可能,需要更加主動地進行安全監(jiān)測. 因此,高復雜度的主動屏蔽網絡需要與完整性檢測電路相配合,才能實現(xiàn)抵抗FIB 以及微探針攻擊的效果. 針對直接切割屏蔽層的FIB 攻擊,設計了通斷檢測電路;針對更高級的FIB和微探針攻擊,設計了隨機碼流型檢測電路,防止攻擊者在切割屏蔽層后,通過主動打入碼流使檢測電路失效.
2.3.1 通斷檢測電路設計
通斷檢測電路模塊如圖4 所示,其時序圖如圖5 所示. 利用2 個觸發(fā)沿相異的D 觸發(fā)器D3 和D4(其中D3為上升沿觸發(fā),D4 為下降沿觸發(fā))對輸入CLK 和NET端口的信號分別進行分頻,分頻結果為圖5 中的VCLK信號和VNET 信號. 在主動屏蔽層的起點注入CLK 信號,在主動屏蔽層終點接受到的信號為NET 信號,檢測電路將CLK 信號和NET信號進行比對.D1和D2這2個觸發(fā)沿相異的D 觸發(fā)器對主動屏蔽層通斷情況進行檢測,采集時鐘VCLK 信號上升沿和下降沿時刻的VNET信號值,輸出如圖4 中的D1_Q 和D2_Q 信號,經過異或門Y、反相器I 得到最終的報警信號alarm_2. 一旦攻擊者利用FIB 切割金屬線,NET 信號將消失,該檢測電路可以立即識別到攻擊,圖5 所示的alarm_2 信號翻轉為高電平.
圖4 通斷檢測電路模塊
圖5 通斷檢測電路時序圖
2.3.2 隨機碼流型檢測電路設計
主動型的通斷檢測在更加復雜的分析和攻擊場景下,因為碼流相對簡單,依然有被復制破解的可能. 因此,隨機碼流型檢測電路由隨機信號產生電路向屏蔽層起點注入隨機碼流,在終點處將流過屏蔽層的碼流與輸入屏蔽層的碼流進行比對,通過對碼流的一致性分析來判斷布線層是否受到物理攻擊.
目前主流的隨機信號產生電路均采用線性反饋移位寄存器(Linear Feedback Shift Register,LFSR)來生成隨機碼流[12]. 針對單通道的頂層金屬布線層,通常會選擇64 bit 的LFSR 中的1 bit 為布線層提供隨機碼流,電路設計完成后,通入布線層的碼流也隨之固定. 一旦攻擊者獲取到隨機發(fā)生器的種子,并注入相同的隨機碼流,現(xiàn)有的完整性檢測電路將失效. 為了增加攻擊難度,本文提出了新型的電路將在每個時鐘周期隨機切換輸入到布線層的碼流,進一步提高了電路的安全性.
此外,覆蓋于芯片頂層的主動屏蔽層具有較長的金屬走線,極易受到強烈變化的空間電磁場的干擾. 如果采用傳統(tǒng)的單比特主動式碼流檢測技術,容易出現(xiàn)將異常干擾判定為攻擊,從而出現(xiàn)誤報警的現(xiàn)象. 本設計中的比對模塊,使用累加器記錄一定周期內的比對結果,將累加器結果與設定的安全閾值比較,當其超過閾值時,報警信號被觸發(fā),提升了報警的準確度.
比對電路的工作過程如圖6 所示. 為盡可能減少磁場等外部因素對檢測結果的影響,信號比對過程將每8 bit 視為1 個比對周期,連續(xù)3 個比對周期視為1 個檢測周期. 針對每個比對周期,將8 bit 的LFSR 產生的隨機碼流信號A1 通入屏蔽層,將其與流經屏蔽層的輸出信號B1進行單比特的逐一比對,0和1分別代表比對結果的成功和失敗. 累加器將比對結果從0 開始累加,若累加值超過2,則判斷為受到攻擊,輸出高電平表示情況異常;若累加值等于1或2,則認為檢測信號受到了外界干擾,輸出低電平表示情況正常;若累加值等于0,則認為沒有受到攻擊,輸出低電平正常信號. 針對每個檢測周期內,如果其中3個比對周期都輸出高電平異常信號,則認為受到了攻擊,最終報警信號alarm_1 輸出高電平,否則輸出低電平正常信號.
圖6 比對電路模塊圖
針對前文提出的通斷和隨機碼流型2 種檢測電路架構,通過對主動屏蔽層模擬的FIB 攻擊,對能否檢測出布線完整性被破壞攻擊進行了驗證. 實驗選用華虹130 nm工藝庫來實現(xiàn)檢測電路的數(shù)字流程. 在10 MHz的時鐘頻率下,完成了從DC 綜合、Encounter布局布線、PrimeTime 靜態(tài)時序分析、VCS 平臺后仿以及Prime?Time-PX 中平均功耗分析和基于時序的功耗分析等全部流程.
對于通斷檢測電路,給流過屏蔽層的時鐘信號NET 賦值與時鐘信號CLK 同周期的方波信號,在一段時間后將NET 的賦值直接置0,來模擬FIB 切斷屏蔽線的攻擊場景,并觀察報警信號是否置1.
對于隨機碼流型檢測電路,給流過屏蔽層的碼流信號B1 賦值與時鐘信號CLK 同周期的方波信號,來模擬FIB與微探針攻擊切斷屏蔽線后,向屏蔽線中注入碼流的攻擊場景,并觀察一段時間后報警信號是否置1.
對于通斷檢測電路,后端實現(xiàn)過程采用了M1 至M5層金屬進行布線,數(shù)字版圖如圖7所示.
圖7 通斷檢測電路數(shù)字版圖
在測試文件中將通斷檢測電路的NET 信號賦值為與時鐘同頻的方波信號,當FIB切斷屏蔽線的攻擊發(fā)生時,NET 信號置0. 從圖8 的仿真結果可以看出,一旦屏蔽層被切割發(fā)生斷路,僅僅需要1個時鐘周期檢測電路即可識別到攻擊,報警信號alarm_2 被觸發(fā),電路響應迅速且功能正確.
圖8 通斷檢測電路仿真波形
對于隨機碼流型檢測電路,后端實現(xiàn)過程采用M1至M5層金屬進行布線,數(shù)字版圖如圖9所示.
圖9 隨機碼流型檢測電路數(shù)字版圖
當FIB與微探針攻擊切斷屏蔽線并注入碼流進行攻擊時,在電路的測試文件將B1信號賦值為與時鐘同頻的方波信號. 對于通入主動屏蔽層的隨機碼流信號A1,采用“雙重隨機”的方式生成. 利用6位LFSR的輸出在每個時鐘周期為變量m賦值一次,同時,選取LFSR輸出的第m位賦值給A1信號,保證了隨機碼流信號的雙重隨機性.
圖10 為仿真電路. 從仿真結果可以看出,累加信號cnt_total 通過累加的方式來記錄比對周期內比對失敗的情況,第1 個比對周期中超過2 bit 比對失敗,因此在下一個比對周期中累加信號計數(shù)加1;第2 個比對周期中同樣超過2 bit比對失敗,因此第3個比對周期中累加信號計數(shù)再加1. 當識別到連續(xù)3 個比對周期都存在超過2 bit的比對錯誤后,僅僅需要2個時鐘周期檢測電路即可識別到攻擊,觸發(fā)報警信號alarm_1,電路響應迅速且功能正確.
圖10 隨機碼流型檢測電路仿真波形
較長的主動屏蔽層布線可能會造成電路的天線效應,同時碼流信號的通入導致了信號線之間的寄生電阻、寄生電容,這些不良效應可能會影響到待保護電路的功能,因此在布線階段采用跳線、添加常閉傳輸門(NC)或反偏二極管(diode cell)等方式來消除天線效應.
為了測試寄生電阻和電容的影響,選擇在1 個8 位偽隨機數(shù)發(fā)生電路模塊上覆蓋主動屏蔽層布線,并打入碼流信號,測試其8 位輸出信號值是否受到影響. 實驗采用virtuoso 平臺實現(xiàn)主動屏蔽層與電路版圖的連接,如圖11 所示,抽取網表文件與寄生參數(shù)文件進行20 000 ns 的hspice 仿真,比較結果如圖12、圖13 所示.可以看出主動屏蔽層產生的寄生電阻和電容參數(shù)對底層電路的擾動十分微小,時間精度在0.1 ns左右.
圖11 主動屏蔽層與電路版圖的連接
圖12 有覆蓋(上)和無覆蓋(下)主動屏蔽層的電路out[2]信號輸出的仿真波形比較
圖13 有無覆蓋主動屏蔽層的電路out[2]信號輸出的仿真波形比較結果
實驗在不同工藝的情況下分析了通斷檢測電路和隨機碼流型檢測電路基于時間的功耗信息以及平均功耗信息. 表3 從面積、主電路中的檢測電路面積占比、端口、單元數(shù)、功耗5 個方面總結了2 個檢測電路的測試信息. 實驗結果顯示,2 種檢測電路可全部由數(shù)字流程實現(xiàn),工藝兼容性強,魯棒性高,功耗、面積開銷也相對較小. 此外,2 種檢測電路可直接作為IP 連同主動屏蔽層靈活植入到待保護電路的數(shù)字版圖中,極大地節(jié)約了設計的時間成本,整套流程可以將安全芯片的防護等級提升至國家二級標準[6].
表3 檢測電路測試結果表
本文提出了一種軟件定義主動屏蔽層防護技術,基于隨機哈密頓拓撲結構生成布線網絡,結合主動屏蔽層完整性檢測電路,形成一套與集成電路設計流程相匹配的芯片防護系統(tǒng). 作為有效抵御FIB 和微探針攻擊的主流防護手段,主動屏蔽層已經成為高安全等級芯片必備的安全保障結構. 未來可能會在利用主動屏蔽層主動對抗熱故障注入、光故障注入、電磁故障注入等非侵入式攻擊方面進行深入研究,同時會對本文設計芯片的流片結果進行基于實際芯片的驗證. 隨著人們對集成電路信息安全重視程度的提高,主動屏蔽層防護技術必將擁有廣闊的應用前景.