《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 一種基于快速激活的硬件木馬檢測法
一種基于快速激活的硬件木馬檢測法
2016年電子技術(shù)應(yīng)用第8期
裴 根,石朝陽,鄒雪城,劉政林
華中科技大學(xué) 光學(xué)與電子信息學(xué)院,湖北 武漢430074
摘要: 硬件木馬因其巨大的潛在威脅而受到學(xué)術(shù)界和工業(yè)界越來越廣泛的關(guān)注,而傳統(tǒng)的測試技術(shù)很難發(fā)現(xiàn)這些硬件木馬,因此,針對硬件木馬的隱藏機制,提出了一種快速激活并檢測木馬的方法,通過將木馬原型植入微處理器OR1200中,并利用大量測試用例激勵,激活了木馬,驗證了該方法的正確性。
中圖分類號: TN918
文獻標(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.
A hardware Trojan detection method based on rapid activation
Pei Gen,Shi Zhaoyang,Zou Xuecheng,Liu Zhenglin
School of Optical and Electronic Information,Huazhong University of Science and Technology,Wuhan 430074,China
Abstract: Hardware Trojans draw more and more attention of the academia and industry because of its huge potential in recent years. Traditional testing technology is difficult to find these hardware Trojans. To solve this problem, considering the hardware Trojan hidden mechanism, a rapid hardware Trojan activation method is proposed in this paper. According to implant several hardware Trojan prototypes into microprocessor OR1200 and take advantage of a large number of test vectors incentives, then using the rapid hardware Trojan activation method, Trojan horses are activated. Thus, the correctness of the method proposed is verified.
Key words : hardware Trojan,turning probability;Trojan activation;Trojan detection

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ù)見的。

圖像 001.png

圖1  電路的概率計算過程

  如果木馬植入者多利用有幾個這種低概率值的節(jié)點組合作為硬件木馬的觸發(fā)條件,根據(jù)統(tǒng)計學(xué)原理,木馬被觸發(fā)激活的概率為QQ圖片20161130095536.png由此可見,硬件木馬就更難以在常規(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)圖(與門和或門除外)。

圖像 002.png

(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,有

  QQ圖片20161130095400.png

  在插入dSFF后,新的節(jié)點i′的概率分布QQ圖片20161130095802.png

  QQ圖片20161130095403.png

  可見新節(jié)點的概率P0和P1的值互相靠近1/2。那么節(jié)點翻轉(zhuǎn)概率變化如下

  QQ圖片20161130095407.png

  如圖3所示為在圖1電路圖基礎(chǔ)上添加dSFF后對電路節(jié)點概率的影響。原電路中虛線框中的與門輸出節(jié)點翻轉(zhuǎn)概率為QQ圖片20161130095503.png平均翻轉(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)時間周期QQ圖片20161130095721.png由此對比可見,dSFF的插入大大增加了低翻轉(zhuǎn)概率節(jié)點的翻轉(zhuǎn)概率,縮短了木馬的激活時間。

圖像 003.png

圖3  添加dSFF

2 實驗驗證

  2.1 測試方法

  為了真實模擬硬件木馬的植入及檢測過程,我們使用了開源微處理器OR1200作為我們的測試平臺。我們從TRUST-HUB上提供的一些benchmarks中提取了10個木馬原型,如表1所示,植入到OR1200的源代碼中。我們寫了10個不同功能的C語言程序,利用opencores提供的工具鏈編譯成機器碼,作為OR1200的測試用例,以便盡可能覆蓋所有處理器功能。

圖像 007.png

  首先我們通過功能測試確保木馬在功能驗證過程中不會被暴露,同時,用Perl編寫腳本統(tǒng)計信號節(jié)點的翻轉(zhuǎn)概率(翻轉(zhuǎn)次數(shù)/仿真時鐘周期數(shù)),將dSFF插入代碼中。dSFF的插入流程如圖4所示。Pth為節(jié)點翻轉(zhuǎn)概率Pt的可設(shè)閾值。

圖像 004.png

圖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)可以增大電路的激活率,但是并不能無限增強,有一個極限值。

圖像 005.png

圖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值范圍里,并不能檢測到所有植入的木馬,可見,本方法還有一些局限性。

圖像 006.png

圖6  木馬的發(fā)現(xiàn)個數(shù)曲線

  表2顯示了試驗中硬件開銷,數(shù)據(jù)由Quartus II軟件的compilation report獲得??梢钥吹?,植入的10個硬件木馬對于原始設(shè)計的硬件開銷影響1%都不到,基本上可以忽略不計。插入dSFF的開銷隨著Pth的增大而顯著增大。所以,結(jié)合圖6的數(shù)據(jù),在檢測木馬的時候,硬件開銷和Pth值的選擇需要有一個折衷考慮。

圖像 008.png

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

  


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。