文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.08.014
中文引用格式: 裴根,石朝陽,,鄒雪城,,等. 一種基于快速激活的硬件木馬檢測法[J].電子技術(shù)應(yīng)用,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)滲透到人類社會活動的各個領(lǐng)域,包括在金融,、軍事、工業(yè),、交通等關(guān)乎國家命脈的領(lǐng)域也得到了廣泛的應(yīng)用,,因此確保集成電路的安全性與可靠性變得尤為重要。
圍繞硬件木馬檢測,,研究人員已經(jīng)做了很多工作,,但目前學(xué)術(shù)界仍缺少相應(yīng)的用于評估各種木馬檢測方法有效性的評價準(zhǔn)則[1]。現(xiàn)有的硬件木馬檢測技術(shù)主要可分為基于物理分析的檢測方法,、基于ATPG(自動測試矢量生成)的檢測方法,,以及基于旁路信號分析的檢測方法?;谖锢矸治龅姆椒ㄊ且环N破壞性的方法,,對芯片進(jìn)行反向工程,還原出原始設(shè)計的電路,,這種方法工作量很大,,效果也不太好?;谂月沸盘柕呐月贩治黾夹g(shù)最初主要應(yīng)用于密碼分析學(xué)領(lǐng)域,,通過監(jiān)測采集IC密碼芯片在工作時泄露的物理特征信息(如功耗、聲波,、運(yùn)行時間,、電磁輻射等),利用數(shù)學(xué)分析(重點(diǎn)是統(tǒng)計分析)方法獲取IC密碼芯片中的秘密信息,?;谂月贩治龅拿艽a芯片正是利用原始電路與木馬電路之間旁路信號的差異來檢測木馬,文獻(xiàn)[2]首次提出采用電路的功耗信息來檢測硬件木馬的方法,。此外,,通過測量芯片電源端的瞬態(tài)電流信號,并對這些信號進(jìn)行電流集成化分析[3]或基于區(qū)域的分析[4],,可以有效地檢測出小規(guī)模的硬件木馬,。文獻(xiàn)[5]提出一種基于時延的物理不可克隆功能(Physical Unclonable Function,PUF)的電路結(jié)構(gòu),,該結(jié)構(gòu)能在芯片的測試階段輔助檢測硬件木馬,。文獻(xiàn)[6]提出一種基于全芯片路徑延時信息的新穎指紋生成方法,。文獻(xiàn)[7]提出了一種未用電路識別(UCI)技術(shù),該文章結(jié)果顯示UCI技術(shù)可以檢測大多數(shù)常規(guī)簡單的硬件木馬,。文獻(xiàn)[8]提出了一種新的RTL級木馬的代碼設(shè)計風(fēng)格以規(guī)避文獻(xiàn)[7]中提到的UCI檢測技術(shù),。文獻(xiàn)[9]提出了一種反硬件木馬的電路設(shè)計方法,通過密鑰產(chǎn)生簽名,,對簽名進(jìn)行匹配,,以檢測硬件木馬。
文獻(xiàn)[2]~[6]的方法都是基于旁路信號分析,,要生產(chǎn)出實際的芯片做測試,,花銷比較大,研究周期也很長,。文獻(xiàn)[7]提出的UCI技術(shù)實際上是基于冗余電路分析,,但是目前也有很多木馬在設(shè)計過程中就巧妙地融合到正常電路中去了,并不能被當(dāng)作冗余電路中識別出來,,而且文獻(xiàn)[8]就針對此UCI技術(shù)提出了一種規(guī)避的方法,。文獻(xiàn)[9]中的簽名匹配技術(shù)在簽名不匹配時只能警告電路可能植入了木馬,并不能精確指出木馬的存在位置,。綜上所述,,本文基于木馬的隱藏機(jī)制,提出了一種基于快速激活的RTL級硬件木馬檢測方法,,本方法可以檢測一些將電路中的低活躍度信號作為觸發(fā)條件的硬件木馬,,同時可以定位這些木馬,以方便恢復(fù)原始電路設(shè)計,。
1 硬件木馬的快速激活方法
1.1 木馬的激活概率分析
硬件木馬具有隱蔽性高,、激活概率低的特點(diǎn),并且通過常規(guī)的測試流程很難激活發(fā)現(xiàn)這些硬件木馬,。圖1展示了一個簡單的三級邏輯門電路概率計算過程,。我們以(P0,P1)來表征一個節(jié)點(diǎn)值為0和1的概率,。概率計算過程遵循如下原則:(1)P0+P1=1,;(2)不考慮門之間的拓?fù)鋵W(xué)內(nèi)在聯(lián)系,每個節(jié)點(diǎn)都是獨(dú)立的;(3)最原始輸入端節(jié)點(diǎn)概率為(1/2,,1/2),。從圖1可以看到,到第三級中虛線框中的與門輸出端值為1的概率為1/256,。事實上,如果電路規(guī)模變大,,級數(shù)增加,,一些有更低的概率甚至難以觸發(fā)的節(jié)點(diǎn)是可以預(yù)見的,。
圖1 電路的概率計算過程
如果木馬植入者多利用有幾個這種低概率值的節(jié)點(diǎn)組合作為硬件木馬的觸發(fā)條件,根據(jù)統(tǒng)計學(xué)原理,木馬被觸發(fā)激活的概率為由此可見,,硬件木馬就更難以在常規(guī)功能驗證測試中被激活,。基于此,,下文提出了一種能可控地改變那些低概率節(jié)點(diǎn)概率的方法,,通過加大那些節(jié)點(diǎn)的概率,使硬件木馬能夠被快速激活,,從而被檢測到,。
1.2 快速激活木馬的機(jī)制
為了綜合表征一個節(jié)點(diǎn)的概率分布,我們引入一個權(quán)重值——節(jié)點(diǎn)翻轉(zhuǎn)概率Pt,,Pt=P0×P1,,平均翻轉(zhuǎn)時間周期Tt=1/Pt??梢?,節(jié)點(diǎn)翻轉(zhuǎn)概率越小,需要的平均翻轉(zhuǎn)周期越大,。為了確保Pt大于一個設(shè)定的閾值Pth,,根據(jù)可測性設(shè)計思想,一個虛擬掃描觸發(fā)器(dummy scan flip-flop,,dSFF)可以植入我們的電路中用來使P0和P1的值盡量靠近,。如圖2所示是虛擬觸發(fā)器的結(jié)構(gòu)圖(與門和或門除外)。
(a)dSFF-AND (b)dSFF-OR
圖2 虛擬觸發(fā)器的結(jié)構(gòu)圖
當(dāng)節(jié)點(diǎn)i的P0<<P1時,,一個與門放在dSFF后面,,同時將節(jié)點(diǎn)i與dSFF的輸出Q連入與門輸入端,與門輸出作為新的節(jié)點(diǎn)i,。當(dāng)節(jié)點(diǎn)i的P0>>P1時 ,,一個或門放在dSFF后面,同時將節(jié)點(diǎn)i與dSFF的輸出Q連入或門輸入端,,或門輸出作為新的節(jié)點(diǎn)i,。本文中,dSFF-AND和dSFF-OR分別代表dSFF后面接了一個與門和或門,。當(dāng)TE(Test Enable)信號使能時,,dSFF的輸出Q由SI(Scan Input)來決定。當(dāng)TE不使能時,,植入電路內(nèi)的dSFF對原始電路的功能不會有影響,。
在測試模式下,dSFF的輸出概率分布為(1/2,,1/2),。假設(shè)節(jié)點(diǎn)i的概率分布(P0,,P1),P1<<P0,,有
在插入dSFF后,,新的節(jié)點(diǎn)i′的概率分布為
可見新節(jié)點(diǎn)的概率P0和P1的值互相靠近1/2。那么節(jié)點(diǎn)翻轉(zhuǎn)概率變化如下
如圖3所示為在圖1電路圖基礎(chǔ)上添加dSFF后對電路節(jié)點(diǎn)概率的影響,。原電路中虛線框中的與門輸出節(jié)點(diǎn)翻轉(zhuǎn)概率為平均翻轉(zhuǎn)時間周期Tt=255.6,,插入dSFF后,節(jié)點(diǎn)翻轉(zhuǎn)概率變?yōu)?img src="http://files.chinaaet.com/images/2016/11/30/6361609644052200007069167.png" title="QQ圖片20161130095506.png" alt="QQ圖片20161130095506.png"/>,,平均翻轉(zhuǎn)時間周期
由此對比可見,,dSFF的插入大大增加了低翻轉(zhuǎn)概率節(jié)點(diǎn)的翻轉(zhuǎn)概率,縮短了木馬的激活時間,。
圖3 添加dSFF
2 實驗驗證
2.1 測試方法
為了真實模擬硬件木馬的植入及檢測過程,,我們使用了開源微處理器OR1200作為我們的測試平臺。我們從TRUST-HUB上提供的一些benchmarks中提取了10個木馬原型,如表1所示,,植入到OR1200的源代碼中,。我們寫了10個不同功能的C語言程序,利用opencores提供的工具鏈編譯成機(jī)器碼,,作為OR1200的測試用例,,以便盡可能覆蓋所有處理器功能。
首先我們通過功能測試確保木馬在功能驗證過程中不會被暴露,,同時,,用Perl編寫腳本統(tǒng)計信號節(jié)點(diǎn)的翻轉(zhuǎn)概率(翻轉(zhuǎn)次數(shù)/仿真時鐘周期數(shù)),將dSFF插入代碼中,。dSFF的插入流程如圖4所示,。Pth為節(jié)點(diǎn)翻轉(zhuǎn)概率Pt的可設(shè)閾值。
圖4 dSFF插入流程
2.2 結(jié)果分析
在檢測實驗過程中,,我們設(shè)置不同的Pth值,,并利用腳本分析電路內(nèi)部信號節(jié)點(diǎn)的翻轉(zhuǎn)次數(shù)統(tǒng)計值Toggle,如圖5所示,,隨著Pth的逐漸加大,,電路的信號節(jié)點(diǎn)激活度逐漸增大。在Pth>10-3后,,激活度增長趨勢放緩,。可見,,插入dSFF在一定范圍內(nèi)可以增大電路的激活率,,但是并不能無限增強(qiáng),有一個極限值。
圖5 電路激活度曲線
圖6是植入木馬被激活發(fā)現(xiàn)的個數(shù)與Pth的關(guān)系,。在一定值內(nèi),,由圖5可知,電路激活度隨著Pth的增大而增大,,木馬的發(fā)現(xiàn)個數(shù)也隨著Pth的增大而增大,在Pth>10-3后,,木馬的被激活個數(shù)趨于穩(wěn)定,,說明木馬的發(fā)現(xiàn)個數(shù)與電路的激活度有著直接的關(guān)系。同時我們可以看到,,在不同的Pth值范圍里,,并不能檢測到所有植入的木馬,可見,,本方法還有一些局限性,。
圖6 木馬的發(fā)現(xiàn)個數(shù)曲線
表2顯示了試驗中硬件開銷,數(shù)據(jù)由Quartus II軟件的compilation report獲得,??梢钥吹剑踩氲?0個硬件木馬對于原始設(shè)計的硬件開銷影響1%都不到,,基本上可以忽略不計,。插入dSFF的開銷隨著Pth的增大而顯著增大。所以,,結(jié)合圖6的數(shù)據(jù),,在檢測木馬的時候,硬件開銷和Pth值的選擇需要有一個折衷考慮,。
3 結(jié)語
為了縮短硬件木馬的激活時間,,本文提出了一種快速激活以檢測木馬的方法,在設(shè)計的功能驗證測試階段,,通過對電路內(nèi)在節(jié)點(diǎn)的翻轉(zhuǎn)概率分析,,植入dSFF模塊,縮短節(jié)點(diǎn)的激活時間,?;贠R1200的測試結(jié)果表明,對于利用低活躍度信號作為觸發(fā)條件的硬件木馬,,本方法可以很容易激活并檢測出來,,對于用特殊序列作為觸發(fā)條件的硬件木馬,本方法的激活成功率很有限,??偟膩碚f,硬件木馬千千萬萬,,并非本方法可以全部檢測,,新的方法需要我們繼續(xù)努力研究去發(fā)現(xiàn),。
參考文獻(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