文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.08.014
中文引用格式: 裴根,石朝陽,,鄒雪城,,等. 一種基于快速激活的硬件木馬檢測法[J].電子技術應用,2016,,42(8):63-66.
英文引用格式: Pei Gen,,Shi Zhaoyang,Zou Xuecheng,,et al. A hardware Trojan detection method based on rapid activation[J].Application of Electronic Technique,,2016,42(8):63-66.
0 引言
在過去幾十年,,集成電路已經(jīng)滲透到人類社會活動的各個領域,包括在金融,、軍事、工業(yè),、交通等關乎國家命脈的領域也得到了廣泛的應用,,因此確保集成電路的安全性與可靠性變得尤為重要。
圍繞硬件木馬檢測,,研究人員已經(jīng)做了很多工作,,但目前學術界仍缺少相應的用于評估各種木馬檢測方法有效性的評價準則[1]。現(xiàn)有的硬件木馬檢測技術主要可分為基于物理分析的檢測方法,、基于ATPG(自動測試矢量生成)的檢測方法,,以及基于旁路信號分析的檢測方法?;谖锢矸治龅姆椒ㄊ且环N破壞性的方法,,對芯片進行反向工程,,還原出原始設計的電路,這種方法工作量很大,,效果也不太好,。基于旁路信號的旁路分析技術最初主要應用于密碼分析學領域,,通過監(jiān)測采集IC密碼芯片在工作時泄露的物理特征信息(如功耗,、聲波、運行時間,、電磁輻射等),,利用數(shù)學分析(重點是統(tǒng)計分析)方法獲取IC密碼芯片中的秘密信息?;谂月贩治龅拿艽a芯片正是利用原始電路與木馬電路之間旁路信號的差異來檢測木馬,,文獻[2]首次提出采用電路的功耗信息來檢測硬件木馬的方法。此外,,通過測量芯片電源端的瞬態(tài)電流信號,,并對這些信號進行電流集成化分析[3]或基于區(qū)域的分析[4],可以有效地檢測出小規(guī)模的硬件木馬,。文獻[5]提出一種基于時延的物理不可克隆功能(Physical Unclonable Function,,PUF)的電路結構,該結構能在芯片的測試階段輔助檢測硬件木馬,。文獻[6]提出一種基于全芯片路徑延時信息的新穎指紋生成方法,。文獻[7]提出了一種未用電路識別(UCI)技術,該文章結果顯示UCI技術可以檢測大多數(shù)常規(guī)簡單的硬件木馬,。文獻[8]提出了一種新的RTL級木馬的代碼設計風格以規(guī)避文獻[7]中提到的UCI檢測技術,。文獻[9]提出了一種反硬件木馬的電路設計方法,通過密鑰產(chǎn)生簽名,,對簽名進行匹配,,以檢測硬件木馬。
文獻[2]~[6]的方法都是基于旁路信號分析,,要生產(chǎn)出實際的芯片做測試,,花銷比較大,研究周期也很長,。文獻[7]提出的UCI技術實際上是基于冗余電路分析,,但是目前也有很多木馬在設計過程中就巧妙地融合到正常電路中去了,并不能被當作冗余電路中識別出來,,而且文獻[8]就針對此UCI技術提出了一種規(guī)避的方法,。文獻[9]中的簽名匹配技術在簽名不匹配時只能警告電路可能植入了木馬,并不能精確指出木馬的存在位置,。綜上所述,,本文基于木馬的隱藏機制,,提出了一種基于快速激活的RTL級硬件木馬檢測方法,,本方法可以檢測一些將電路中的低活躍度信號作為觸發(fā)條件的硬件木馬,,同時可以定位這些木馬,以方便恢復原始電路設計,。
1 硬件木馬的快速激活方法
1.1 木馬的激活概率分析
硬件木馬具有隱蔽性高,、激活概率低的特點,并且通過常規(guī)的測試流程很難激活發(fā)現(xiàn)這些硬件木馬,。圖1展示了一個簡單的三級邏輯門電路概率計算過程,。我們以(P0,P1)來表征一個節(jié)點值為0和1的概率,。概率計算過程遵循如下原則:(1)P0+P1=1,;(2)不考慮門之間的拓撲學內(nèi)在聯(lián)系,每個節(jié)點都是獨立的;(3)最原始輸入端節(jié)點概率為(1/2,,1/2),。從圖1可以看到,到第三級中虛線框中的與門輸出端值為1的概率為1/256,。事實上,,如果電路規(guī)模變大,級數(shù)增加,,一些有更低的概率甚至難以觸發(fā)的節(jié)點是可以預見的,。
圖1 電路的概率計算過程
如果木馬植入者多利用有幾個這種低概率值的節(jié)點組合作為硬件木馬的觸發(fā)條件,根據(jù)統(tǒng)計學原理,木馬被觸發(fā)激活的概率為由此可見,,硬件木馬就更難以在常規(guī)功能驗證測試中被激活,。基于此,,下文提出了一種能可控地改變那些低概率節(jié)點概率的方法,,通過加大那些節(jié)點的概率,使硬件木馬能夠被快速激活,,從而被檢測到,。
1.2 快速激活木馬的機制
為了綜合表征一個節(jié)點的概率分布,我們引入一個權重值——節(jié)點翻轉概率Pt,,Pt=P0×P1,,平均翻轉時間周期Tt=1/Pt??梢?,節(jié)點翻轉概率越小,需要的平均翻轉周期越大,。為了確保Pt大于一個設定的閾值Pth,,根據(jù)可測性設計思想,,一個虛擬掃描觸發(fā)器(dummy scan flip-flop,dSFF)可以植入我們的電路中用來使P0和P1的值盡量靠近,。如圖2所示是虛擬觸發(fā)器的結構圖(與門和或門除外),。
(a)dSFF-AND (b)dSFF-OR
圖2 虛擬觸發(fā)器的結構圖
當節(jié)點i的P0<<P1時,一個與門放在dSFF后面,,同時將節(jié)點i與dSFF的輸出Q連入與門輸入端,,與門輸出作為新的節(jié)點i。當節(jié)點i的P0>>P1時 ,,一個或門放在dSFF后面,,同時將節(jié)點i與dSFF的輸出Q連入或門輸入端,或門輸出作為新的節(jié)點i,。本文中,,dSFF-AND和dSFF-OR分別代表dSFF后面接了一個與門和或門。當TE(Test Enable)信號使能時,,dSFF的輸出Q由SI(Scan Input)來決定,。當TE不使能時,植入電路內(nèi)的dSFF對原始電路的功能不會有影響,。
在測試模式下,,dSFF的輸出概率分布為(1/2,1/2),。假設節(jié)點i的概率分布(P0,,P1),P1<<P0,,有
在插入dSFF后,,新的節(jié)點i′的概率分布為
可見新節(jié)點的概率P0和P1的值互相靠近1/2。那么節(jié)點翻轉概率變化如下
如圖3所示為在圖1電路圖基礎上添加dSFF后對電路節(jié)點概率的影響,。原電路中虛線框中的與門輸出節(jié)點翻轉概率為平均翻轉時間周期Tt=255.6,,插入dSFF后,節(jié)點翻轉概率變?yōu)?img src="http://files.chinaaet.com/images/2016/11/30/6361609644052200007069167.png" title="QQ圖片20161130095506.png" alt="QQ圖片20161130095506.png"/>,,平均翻轉時間周期
由此對比可見,,dSFF的插入大大增加了低翻轉概率節(jié)點的翻轉概率,縮短了木馬的激活時間,。
圖3 添加dSFF
2 實驗驗證
2.1 測試方法
為了真實模擬硬件木馬的植入及檢測過程,,我們使用了開源微處理器OR1200作為我們的測試平臺。我們從TRUST-HUB上提供的一些benchmarks中提取了10個木馬原型,如表1所示,,植入到OR1200的源代碼中,。我們寫了10個不同功能的C語言程序,利用opencores提供的工具鏈編譯成機器碼,,作為OR1200的測試用例,,以便盡可能覆蓋所有處理器功能,。
首先我們通過功能測試確保木馬在功能驗證過程中不會被暴露,同時,,用Perl編寫腳本統(tǒng)計信號節(jié)點的翻轉概率(翻轉次數(shù)/仿真時鐘周期數(shù)),,將dSFF插入代碼中。dSFF的插入流程如圖4所示,。Pth為節(jié)點翻轉概率Pt的可設閾值,。
圖4 dSFF插入流程
2.2 結果分析
在檢測實驗過程中,,我們設置不同的Pth值,,并利用腳本分析電路內(nèi)部信號節(jié)點的翻轉次數(shù)統(tǒng)計值Toggle,如圖5所示,,隨著Pth的逐漸加大,,電路的信號節(jié)點激活度逐漸增大。在Pth>10-3后,,激活度增長趨勢放緩,。可見,,插入dSFF在一定范圍內(nèi)可以增大電路的激活率,,但是并不能無限增強,有一個極限值,。
圖5 電路激活度曲線
圖6是植入木馬被激活發(fā)現(xiàn)的個數(shù)與Pth的關系,。在一定值內(nèi),由圖5可知,,電路激活度隨著Pth的增大而增大,,木馬的發(fā)現(xiàn)個數(shù)也隨著Pth的增大而增大,在Pth>10-3后,,木馬的被激活個數(shù)趨于穩(wěn)定,,說明木馬的發(fā)現(xiàn)個數(shù)與電路的激活度有著直接的關系。同時我們可以看到,,在不同的Pth值范圍里,,并不能檢測到所有植入的木馬,可見,,本方法還有一些局限性,。
圖6 木馬的發(fā)現(xiàn)個數(shù)曲線
表2顯示了試驗中硬件開銷,數(shù)據(jù)由Quartus II軟件的compilation report獲得,??梢钥吹剑踩氲?0個硬件木馬對于原始設計的硬件開銷影響1%都不到,,基本上可以忽略不計,。插入dSFF的開銷隨著Pth的增大而顯著增大,。所以,結合圖6的數(shù)據(jù),,在檢測木馬的時候,,硬件開銷和Pth值的選擇需要有一個折衷考慮。
3 結語
為了縮短硬件木馬的激活時間,,本文提出了一種快速激活以檢測木馬的方法,,在設計的功能驗證測試階段,通過對電路內(nèi)在節(jié)點的翻轉概率分析,,植入dSFF模塊,,縮短節(jié)點的激活時間?;贠R1200的測試結果表明,,對于利用低活躍度信號作為觸發(fā)條件的硬件木馬,本方法可以很容易激活并檢測出來,,對于用特殊序列作為觸發(fā)條件的硬件木馬,,本方法的激活成功率很有限??偟膩碚f,,硬件木馬千千萬萬,并非本方法可以全部檢測,,新的方法需要我們繼續(xù)努力研究去發(fā)現(xiàn),。
參考文獻
[1] JIN Y,KUPP N,,MAKRIS Y.Experiences in hardware Trojan design and implementation[C].Hardware-Oriented Security and Trust.San Francisco:IEEE,,2009:50-57.
[2] AGRAWAL D,BAKTIR S,,KARAKOYUNLU D,,et al.Trojan detection using IC fingerprinting[C].Security and Privacy.Berkeley:IEEE,2007:296-310.
[3] WANG X,,SALMANI H,,TEHRANIPOOR M,et al.Hardware Trojan detection and isolation using current integration and localized current analysis[C].Defect and Fault Tolerance in VLSI Systems,,2008.Boston:IEEE,,2008:87-95.
[4] RAD R M,WANG X,,TEHRANIPOOR M,,et al.Power supply signal calibration techniques for improving detection resolution to hardware Trojans[C].Proceedings of the 2008 IEEE/ACM International Conference on Computer-Aided Design.San Jose:IEEE Press,2008:632-639.
[5] LI J,LACH J.At-speed delay characterization for IC authentication and Trojan horse detection[C].HardwareOriented Security and Trust.Anaheim:IEEE,,2008:8-14.
[6] JIN Y,,MAKRIS Y.Hardware Trojan detection using path delay fingerprint[C].Hardware-Oriented Security and Trust.Anaheim:IEEE,2008:51-57.
[7] HICKS M,,F(xiàn)INNICUM M,,KING S T,et al.Overcoming an untrusted computing base:Detecting and removing malicious hardware automatically[C].Security and Privacy.Brisbane:IEEE,,2010:159-172.
[8] STURTON C,,HICKS M,WAGNER D,,et al.Defeating UCI:Building stealthy and malicious hardware[C].Security and Privacy.Berkeley:IEEE,,2011:64-77.
[9] CHAKRABORTY R S,PAUL S,,BHUNIA S.On-demand transparency for improving hardware Trojan detectability[C].Hardware-Oriented Security and Trus.Anaheim:IEEE,,2008:48-50.
[10] TRUST_HUB[EB/OL].[2015-8-12].https://www.trusthub.org/
[11] OR1200 OpenRISC Processor.[EB/OL].[2015-8-12].http://opencores.org/or1k/OR1200_OpenRISC_Processor