文獻標(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]?,F(xiàn)有的硬件木馬檢測技術(shù)主要可分為基于物理分析的檢測方法、基于ATPG(自動測試矢量生成)的檢測方法,以及基于旁路信號分析的檢測方法?;谖锢矸治龅姆椒ㄊ且环N破壞性的方法,對芯片進行反向工程,還原出原始設(shè)計的電路,這種方法工作量很大,效果也不太好?;谂月沸盘柕呐月贩治黾夹g(shù)最初主要應(yīng)用于密碼分析學(xué)領(lǐng)域,通過監(jiān)測采集IC密碼芯片在工作時泄露的物理特征信息(如功耗、聲波、運行時間、電磁輻射等),利用數(shù)學(xué)分析(重點是統(tǒng)計分析)方法獲取IC密碼芯片中的秘密信息?;谂月贩治龅拿艽a芯片正是利用原始電路與木馬電路之間旁路信號的差異來檢測木馬,文獻[2]首次提出采用電路的功耗信息來檢測硬件木馬的方法。此外,通過測量芯片電源端的瞬態(tài)電流信號,并對這些信號進行電流集成化分析[3]或基于區(qū)域的分析[4],可以有效地檢測出小規(guī)模的硬件木馬。文獻[5]提出一種基于時延的物理不可克隆功能(Physical Unclonable Function,PUF)的電路結(jié)構(gòu),該結(jié)構(gòu)能在芯片的測試階段輔助檢測硬件木馬。文獻[6]提出一種基于全芯片路徑延時信息的新穎指紋生成方法。文獻[7]提出了一種未用電路識別(UCI)技術(shù),該文章結(jié)果顯示UCI技術(shù)可以檢測大多數(shù)常規(guī)簡單的硬件木馬。文獻[8]提出了一種新的RTL級木馬的代碼設(shè)計風(fēng)格以規(guī)避文獻[7]中提到的UCI檢測技術(shù)。文獻[9]提出了一種反硬件木馬的電路設(shè)計方法,通過密鑰產(chǎn)生簽名,對簽名進行匹配,以檢測硬件木馬。
文獻[2]~[6]的方法都是基于旁路信號分析,要生產(chǎn)出實際的芯片做測試,花銷比較大,研究周期也很長。文獻[7]提出的UCI技術(shù)實際上是基于冗余電路分析,但是目前也有很多木馬在設(shè)計過程中就巧妙地融合到正常電路中去了,并不能被當(dāng)作冗余電路中識別出來,而且文獻[8]就針對此UCI技術(shù)提出了一種規(guī)避的方法。文獻[9]中的簽名匹配技術(shù)在簽名不匹配時只能警告電路可能植入了木馬,并不能精確指出木馬的存在位置。綜上所述,本文基于木馬的隱藏機制,提出了一種基于快速激活的RTL級硬件木馬檢測方法,本方法可以檢測一些將電路中的低活躍度信號作為觸發(fā)條件的硬件木馬,同時可以定位這些木馬,以方便恢復(fù)原始電路設(shè)計。
1 硬件木馬的快速激活方法
1.1 木馬的激活概率分析
硬件木馬具有隱蔽性高、激活概率低的特點,并且通過常規(guī)的測試流程很難激活發(fā)現(xiàn)這些硬件木馬。圖1展示了一個簡單的三級邏輯門電路概率計算過程。我們以(P0,P1)來表征一個節(jié)點值為0和1的概率。概率計算過程遵循如下原則:(1)P0+P1=1;(2)不考慮門之間的拓撲學(xué)內(nèi)在聯(lián)系,每個節(jié)點都是獨立的;(3)最原始輸入端節(jié)點概率為(1/2,1/2)。從圖1可以看到,到第三級中虛線框中的與門輸出端值為1的概率為1/256。事實上,如果電路規(guī)模變大,級數(shù)增加,一些有更低的概率甚至難以觸發(fā)的節(jié)點是可以預(yù)見的。
圖1 電路的概率計算過程
如果木馬植入者多利用有幾個這種低概率值的節(jié)點組合作為硬件木馬的觸發(fā)條件,根據(jù)統(tǒng)計學(xué)原理,木馬被觸發(fā)激活的概率為由此可見,硬件木馬就更難以在常規(guī)功能驗證測試中被激活?;诖?,下文提出了一種能可控地改變那些低概率節(jié)點概率的方法,通過加大那些節(jié)點的概率,使硬件木馬能夠被快速激活,從而被檢測到。
1.2 快速激活木馬的機制
為了綜合表征一個節(jié)點的概率分布,我們引入一個權(quán)重值——節(jié)點翻轉(zhuǎn)概率Pt,Pt=P0×P1,平均翻轉(zhuǎn)時間周期Tt=1/Pt??梢?,節(jié)點翻轉(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é)點i的P0<<P1時,一個與門放在dSFF后面,同時將節(jié)點i與dSFF的輸出Q連入與門輸入端,與門輸出作為新的節(jié)點i。當(dāng)節(jié)點i的P0>>P1時 ,一個或門放在dSFF后面,同時將節(jié)點i與dSFF的輸出Q連入或門輸入端,或門輸出作為新的節(jié)點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é)點i的概率分布(P0,P1),P1<<P0,有
在插入dSFF后,新的節(jié)點i′的概率分布為
可見新節(jié)點的概率P0和P1的值互相靠近1/2。那么節(jié)點翻轉(zhuǎn)概率變化如下
如圖3所示為在圖1電路圖基礎(chǔ)上添加dSFF后對電路節(jié)點概率的影響。原電路中虛線框中的與門輸出節(jié)點翻轉(zhuǎn)概率為平均翻轉(zhuǎn)時間周期Tt=255.6,插入dSFF后,節(jié)點翻轉(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é)點的翻轉(zhuǎn)概率,縮短了木馬的激活時間。
圖3 添加dSFF
2 實驗驗證
2.1 測試方法
為了真實模擬硬件木馬的植入及檢測過程,我們使用了開源微處理器OR1200作為我們的測試平臺。我們從TRUST-HUB上提供的一些benchmarks中提取了10個木馬原型,如表1所示,植入到OR1200的源代碼中。我們寫了10個不同功能的C語言程序,利用opencores提供的工具鏈編譯成機器碼,作為OR1200的測試用例,以便盡可能覆蓋所有處理器功能。
首先我們通過功能測試確保木馬在功能驗證過程中不會被暴露,同時,用Perl編寫腳本統(tǒng)計信號節(jié)點的翻轉(zhuǎn)概率(翻轉(zhuǎn)次數(shù)/仿真時鐘周期數(shù)),將dSFF插入代碼中。dSFF的插入流程如圖4所示。Pth為節(jié)點翻轉(zhuǎn)概率Pt的可設(shè)閾值。
圖4 dSFF插入流程
2.2 結(jié)果分析
在檢測實驗過程中,我們設(shè)置不同的Pth值,并利用腳本分析電路內(nèi)部信號節(jié)點的翻轉(zhuǎn)次數(shù)統(tǒng)計值Toggle,如圖5所示,隨著Pth的逐漸加大,電路的信號節(jié)點激活度逐漸增大。在Pth>10-3后,激活度增長趨勢放緩??梢?,插入dSFF在一定范圍內(nèi)可以增大電路的激活率,但是并不能無限增強,有一個極限值。
圖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獲得??梢钥吹?,植入的10個硬件木馬對于原始設(shè)計的硬件開銷影響1%都不到,基本上可以忽略不計。插入dSFF的開銷隨著Pth的增大而顯著增大。所以,結(jié)合圖6的數(shù)據(jù),在檢測木馬的時候,硬件開銷和Pth值的選擇需要有一個折衷考慮。
3 結(jié)語
為了縮短硬件木馬的激活時間,本文提出了一種快速激活以檢測木馬的方法,在設(shè)計的功能驗證測試階段,通過對電路內(nèi)在節(jié)點的翻轉(zhuǎn)概率分析,植入dSFF模塊,縮短節(jié)點的激活時間?;贠R1200的測試結(jié)果表明,對于利用低活躍度信號作為觸發(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