基于電路特征分析的硬件木馬檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)及電子信息技術(shù)領(lǐng)域,特別涉及一種基于電路特征分析的硬件 木馬檢測(cè)方法。
【背景技術(shù)】
[0002] 目前的集成電路芯片可以由多達(dá)數(shù)十億個(gè)晶體管構(gòu)成,在芯片設(shè)計(jì)制造過程中, 如果所使用的芯片或者第三方IP核中被人植入一些惡意的模塊,將難以檢查出來,但對(duì)使 用者而言,則會(huì)出現(xiàn)不受控制的安全問題,導(dǎo)致信息泄露、芯片被留下后門、或者非正常芯 片失效,造成極其嚴(yán)重的后果。此問題就是近年來逐漸被人們重視的硬件安全問題。而正 常電路之外的惡意電路,則被稱為"硬件木馬"。
[0003] 隨著系統(tǒng)級(jí)芯片(SystemonChip,SoC)的規(guī)模越來越大,芯片產(chǎn)品投向市場(chǎng)的設(shè) 計(jì)周期越來越短,集成電路設(shè)計(jì)中大量使用來自于第三方設(shè)計(jì)的IP核已經(jīng)成為大的趨勢(shì)。 而隨著集成電路制造的全球化趨勢(shì)越來越強(qiáng),想要控制集成電路的設(shè)計(jì)和生產(chǎn)的各個(gè)環(huán)節(jié) 是不現(xiàn)實(shí)的。因此,對(duì)于第三方IP核的可信性驗(yàn)證,也即對(duì)其中的硬件木馬進(jìn)行檢測(cè),是十 分必要的。由于硬件木馬一般都在很小的概率下才被激活,在未激活的情況下電路完全正 常工作,因此,普通的集成電路測(cè)試方法幾乎不能發(fā)現(xiàn)這些木馬。
[0004] 利用硬件木馬一般在很小的概率下才能激活這個(gè)特性,可以對(duì)于組合邏輯電路進(jìn) 行分析來尋找硬件木馬。一方面,靜態(tài)條件下,硬件木馬電路的輸入通常對(duì)輸出影響很小, 以實(shí)現(xiàn)很小的觸發(fā)概率。另一方面,在常規(guī)的驗(yàn)證測(cè)試中,由于硬件木馬一般不被激活,而 呈現(xiàn)出"休眠"的狀態(tài),對(duì)于原電路的功能沒有影響,因此也可通過驗(yàn)證仿真中尋找此部分 電路來檢測(cè)電路。
[0005] 然而,上述分析組合邏輯電路的方法面臨若干問題。第一是復(fù)雜度問題:分析組合 邏輯電路導(dǎo)致近乎指數(shù)級(jí)的運(yùn)算復(fù)雜度,使得檢測(cè)時(shí)間過長(zhǎng),達(dá)到數(shù)十小時(shí)甚至數(shù)天的數(shù) 量級(jí)。第二是對(duì)于時(shí)序電路中硬件木馬檢測(cè)的局面:由于時(shí)序電路中組合邏輯電路被觸發(fā) 器分割為分散的組合邏輯電路塊,若某個(gè)硬件木馬由多個(gè)組合邏輯電路塊組成,分析組合 邏輯的方法無法知道應(yīng)該合并哪些組合邏輯電路塊,因此難以檢測(cè)這類硬件木馬。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明旨在至少在一定程度上解決上述相關(guān)技術(shù)中的技術(shù)問題之一。
[0007] 為此,本發(fā)明的目的在于提出一種基于電路特征分析的硬件木馬檢測(cè)方法,該方 法能夠有效提高對(duì)于硬件木馬的檢測(cè)速度、不同種類硬件木馬的檢測(cè)區(qū)分度和時(shí)序電路中 硬件木馬的檢測(cè)效果。
[0008] 為了實(shí)現(xiàn)上述目的,本發(fā)明的實(shí)施例提出了一種基于電路特征分析的硬件木馬檢 測(cè)方法,包括以下步驟:輸入被檢測(cè)電路,并獲取被檢測(cè)電路的高層描述文件;根據(jù)所述被 檢測(cè)電路的高層描述文件對(duì)所述被檢測(cè)電路中的功能模塊進(jìn)行識(shí)別,以判斷所述功能模塊 的可信度,以及當(dāng)所述功能模塊可信時(shí),對(duì)所述被檢測(cè)電路進(jìn)行標(biāo)記;從標(biāo)記后的被檢測(cè) 電路中提取分類特征,并與預(yù)設(shè)的硬件木馬電路特征庫(kù)中的每一類硬件木馬的特征進(jìn)行匹 配,并根據(jù)匹配結(jié)果,輸出分類的特征分析結(jié)果;對(duì)所述分類的特征分析結(jié)果進(jìn)行綜合分 析,以得到所述被檢測(cè)電路的可信性信息。
[0009] 根據(jù)本發(fā)明實(shí)施例的基于電路特征分析的硬件木馬檢測(cè)方法,采用已知的硬件木 馬電路所提取的電路特征作為檢測(cè)標(biāo)準(zhǔn),通過特征對(duì)比得到被檢測(cè)電路中每一類硬件木馬 的分析結(jié)果,并經(jīng)過綜合分析輸出,可很大程度降低硬件木馬檢測(cè)的運(yùn)行時(shí)間,使得集成電 路的安全性驗(yàn)證時(shí)間對(duì)于集成電路設(shè)計(jì)流程的影響大為減?。徊⑶?,能夠有效地區(qū)分不同 類型的硬件木馬,為針對(duì)性的人工檢查提供依據(jù);另外,能夠有效地檢測(cè)到時(shí)序電路中由多 個(gè)組合邏輯電路塊組成的硬件木馬;同時(shí),能夠提升硬件木馬檢測(cè)方法的可擴(kuò)展性,通過擴(kuò) 充硬件木馬特征庫(kù)的方式應(yīng)對(duì)未來的硬件木馬。
[0010] 另外,根據(jù)本發(fā)明上述實(shí)施例的基于電路特征分析的硬件木馬檢測(cè)方法還可以具 有如下附加的技術(shù)特征:
[0011] 在一些示例中,所述硬件木馬電路特征庫(kù)針對(duì)不同種類的硬件木馬,對(duì)于其特征 進(jìn)行總結(jié),并可以針對(duì)所述被檢測(cè)電路的功能對(duì)于特征匹配的判決標(biāo)準(zhǔn)進(jìn)行調(diào)整。
[0012] 在一些示例中,所述被檢測(cè)電路的描述層次為:輸入端口、觸發(fā)器、輸出端口之間 數(shù)據(jù)流動(dòng)的觸發(fā)器間數(shù)據(jù)流圖。
[0013] 在一些示例中,所述觸發(fā)器間數(shù)據(jù)流圖為有向圖。
[0014] 在一些示例中,所述硬件木馬電路特征庫(kù)包括:內(nèi)部延遲電路進(jìn)行觸發(fā)的硬件木 馬、泄露芯片內(nèi)部信息的硬件木馬、輸入數(shù)據(jù)相關(guān)的單次觸發(fā)硬件木馬、輸入數(shù)據(jù)相關(guān)的多 次觸發(fā)硬件木馬、時(shí)序電路中由多個(gè)分離的組合邏輯電路塊組成的硬件木馬。
[0015] 在一些示例中,所述硬件木馬電路特征庫(kù)中對(duì)于硬件木馬特征的描述為所述觸發(fā) 器間數(shù)據(jù)流圖中結(jié)點(diǎn)的特征以及結(jié)點(diǎn)集合特征的描述。
[0016] 在一些示例中,從標(biāo)記后的被檢測(cè)電路中提取分類特征,具體包括:根據(jù)所述硬件 木馬電路特征庫(kù)中包含的五種硬件木馬及其對(duì)應(yīng)的特征描述,對(duì)于觸發(fā)器間數(shù)據(jù)流圖的結(jié) 點(diǎn)或者結(jié)點(diǎn)集合的信息進(jìn)行提取;如果一類硬件木馬的電路特征為其觸發(fā)器間數(shù)據(jù)流圖含 有具有滿足一定條件的結(jié)點(diǎn)集合,電路特征抽取將提取被檢測(cè)電路中所有的符合所述條件 的結(jié)點(diǎn)集合;如果一類硬件木馬的電路特征為其觸發(fā)器間數(shù)據(jù)流圖含有具有滿足一定條件 的結(jié)點(diǎn),電路特征抽取將統(tǒng)計(jì)所述條件上每個(gè)結(jié)點(diǎn)的數(shù)據(jù)。
[0017] 在一些示例中,所述與預(yù)設(shè)的硬件木馬電路特征庫(kù)中的每一類硬件木馬的特征進(jìn) 行匹配,進(jìn)一步包括:根據(jù)所述硬件木馬電路特征庫(kù)中對(duì)于每一類硬件木馬電路特征的特 征匹配判決標(biāo)準(zhǔn),對(duì)所述被測(cè)電路特征抽取所得到結(jié)點(diǎn)或結(jié)點(diǎn)集合進(jìn)行分析,判決被抽取 的電路特征是否符合硬件木馬電路特征庫(kù)中所述特征。
[0018] 在一些示例中,所述分類的特征分析結(jié)果指所述匹配結(jié)果中滿足所述特征匹配判 決標(biāo)準(zhǔn)、符合所述硬件木馬電路特征庫(kù)的所有嫌疑對(duì)象,其中,對(duì)于不同的特征,其對(duì)應(yīng)的 嫌疑對(duì)象的單位為結(jié)點(diǎn)或者結(jié)點(diǎn)集合。
[0019] 在一些示例中,所述對(duì)所述分類的特征分析結(jié)果進(jìn)行綜合分析,以得到所述被檢 測(cè)電路的可信性信息,進(jìn)一步包括:根據(jù)每一類硬件木馬嫌疑對(duì)象的數(shù)量、對(duì)于判決標(biāo)準(zhǔn)的 滿足程度、占電路總規(guī)模的比例以及所述被檢測(cè)電路所專門制定的標(biāo)準(zhǔn)對(duì)所述分類的特征 分析結(jié)果進(jìn)行分析,并產(chǎn)生硬件木馬的清單、種類以及置信度三類電路的可信性信息。
[0020] 本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變 得明顯,或通過本發(fā)明的實(shí)踐了解到。
【附圖說明】
[0021] 本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對(duì)實(shí)施例的描述中將變 得明顯和容易理解,其中:
[0022] 圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的基于電路特征分析的硬件木馬檢測(cè)方法的流程 圖;
[0023] 圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的被檢測(cè)電路的模塊示意圖;
[0024] 圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的被檢測(cè)電路在觸發(fā)器間數(shù)據(jù)流圖層次的示意圖; 以及
[0025] 圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的被檢測(cè)電路在添加一個(gè)小型內(nèi)部延遲電路進(jìn)行 觸發(fā)的木馬后,在觸發(fā)器間數(shù)據(jù)流圖層次的示意圖。
【具體實(shí)施方式】
[0026] 下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終 相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。
[0027] 以下結(jié)合附圖描述根據(jù)本發(fā)明實(shí)施例的基于電路特征分析的硬件木馬檢測(cè)方法。
[0028] 圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的基于電路特征分析的硬件木馬檢測(cè)方法的流程 圖。如圖1所示,該方法包括以下步驟:
[0029] 步驟S101,輸入被檢測(cè)電路,并獲取被檢測(cè)電路的高層描述文件。
[0030] 步驟S102,根據(jù)被檢測(cè)電路的高層描述文件對(duì)被檢測(cè)電路中的功能模塊進(jìn)行識(shí) 另IJ,以判斷功能模塊的可信度,以及當(dāng)功能模塊可信時(shí),對(duì)被檢測(cè)電路進(jìn)行標(biāo)記。
[0031] 在具體示例中,該步驟即對(duì)被檢測(cè)電路進(jìn)行預(yù)處理。具體地說,對(duì)于滿足電路規(guī)模 較小、功能劃分較明確等要求的被檢測(cè)電路,不需要輸入被檢測(cè)電路的高層次描述文件,也 即被檢測(cè)電路進(jìn)行處理。而于滿足電路規(guī)模較大、電路結(jié)構(gòu)較為復(fù)雜等條件的被檢測(cè)電路, 輸入被檢測(cè)電路及其高層次描述文件,并根據(jù)被檢測(cè)電路的高層次描述文件對(duì)被測(cè)電路中 的功能模塊進(jìn)行識(shí)別,對(duì)于易于識(shí)別的部分,若符合被檢測(cè)電路的高層次描述文件,將其標(biāo) 記為可信,輸出添加標(biāo)記后的被檢測(cè)電路。
[0032] 進(jìn)一步地,在該示例中,例如,被檢測(cè)電路的描述層次為:電路只考慮輸入端口、觸 發(fā)器、輸出端口之間數(shù)據(jù)流動(dòng)的觸發(fā)器間數(shù)據(jù)流圖。該觸發(fā)器間