一種不依賴基準曲線的硬件木馬檢測方法
【技術領域】
[0001]本發明涉及一種不依賴基準曲線的硬件木馬檢測方法,尤其是一種在無法保證取得不含有硬件木馬的電路作為參照基準的情況下的一種檢測方法,尤其適合對第三方進口芯片進行檢測。
【背景技術】
[0002]隨著集成電路(IC,Integrated Circuit)設計的日益復雜,制造成本日趨高昂,集成電路的設計與制造正朝著全球化合作的趨勢發展,因此集成電路在設計與制造過程中,越來越頻繁地涉及到第三方的IP(Intellectual Property知識產權)、設計服務(DesignService)、EDA(Electronic Design Automat1n)工具以及不受控的晶圓制造和封裝測試,在這些環節當中,芯片很有可能被人為的修改,比如惡意的增加,刪除或者改變芯片內部原來有電路結構,或者在制造階段改變工藝參數影響晶體管的正常工作參數,如改變摻雜的程度,這類對電路的功能,性能,可靠性,安全性等會產生影響的惡意的電路修改即稱為硬件木馬。硬件木馬的種類有很多,有些硬件木馬會影響電路的正常工作,在一些關鍵的應用場合如空間衛星、火箭、導彈、飛機以及核設施等,硬件木馬可能會造成災難性的后果。有些硬件木馬通過內置后門,在數據傳輸的過程中,同時泄漏機密信息。還有些硬件木馬本身不對電路的工作產生任何影響,也不泄漏機密信息,但其為軟件木馬提供后門,協助軟件木馬對系統進行攻擊。最近幾年國際上已經涌現了多起由于硬件木馬引起的會危害國家安全的嚴重事件,比如“斯諾登棱鏡門”事件,伊朗的“震網”事件。由于我國每年進口的集成電路等電子元器件的價值已經達到近3000億美元,超過石油的進口,硬件木馬不僅影響國家的信息安全,社會穩定,還會造成經濟上的巨大浪費,影響我國的現代化建設。
[0003]硬件木馬的檢測方法目前主要有破壞性檢測,系統運行檢測,邏輯測試和旁路分析四類。
[0004]破壞性檢測即是將待測芯片去封裝,然后使用掃描電鏡等設備對電路一層一層的進行拍照,然后與原始版圖作對比,從而判斷芯片中有無硬件木馬。此方法雖然最為直觀,只適用于規模較小的電路,因為隨著電路規模的增大,其難度與耗費時間也會顯著增加,且針對一批芯片中只有少數幾顆芯片含有硬有木馬的情況,這種破壞性檢測的方法有可能漏檢,因此,此方法更多的是作為一種輔助手段,在某些其他檢測方法確定待測芯片含量有硬件木馬后,再通過此方法來確定待測芯片中的硬件木馬的形態與結構,便于未來分析。
[0005]系統運行檢測即是將待測芯片用于原型系統中,通過系統運行,來觀測芯片的運行過程中功能是否正確。此方法雖然可以檢測出大多數在運行過程中出現的問題,但對于一些需要很長時間,比如數年,才能觸發的硬件木馬,運行驗證的方法顯然不現實。
[0006]邏輯測試即是根據可測試性設計(DFT)的概念,在芯片測試過程中,在輸入端添加不同的測試向量,觀察輸出的結果是否匹配,此方法的缺陷是芯片的測試覆蓋率很難達到100%,即使達到100%的覆蓋,一旦經過第三方的修改植入木馬,原有的100%的測試覆蓋率也將下降,因此,此方法在理論上就存在一定的缺陷,更多的只是作為一種輔助手段。
[0007]旁路分析即是利用芯片工作時的旁路信號(如電磁輻射,電流或者電路延時等信息)來對木馬進行檢測。其原理是因為電路中植入的硬件木馬會對芯片的一些旁路信號,如電流,頻率或路徑延時產生影響,因此通過觀察芯片的旁路信號并與原始芯片的旁路信號作,對比檢測出芯片中是否有硬件木馬的存在。
[0008]目前基于旁路分析的硬件木馬檢測技術都是首先取得干凈的不含硬件木馬的電路,然后獲得其正常工作狀態下的旁路信息數據作為基準曲線,再將待測芯片進行同樣的測試取得待測芯片的旁路信息數據,并與基準曲線進行比較。當待測芯片的旁路信息值與基準曲線相比沒有超過預先設定的閾值,則認為待測芯片內不含有硬件木馬;當待測芯片的旁路信息值與基準曲線相比超過預先設定的閾值,則認為待測芯片內部含有硬件木馬。這種硬件木馬檢測方法都依賴于需要取得不含硬件木馬的芯片,但是針對涉及到不可控環節的芯片,如進口芯片,我們無法保證就一定能夠取得不含硬件木馬的芯片來獲得基準參考,相反,某款類型的芯片全部都含有硬件木馬在理論上也是非常可能的。
[0009]針對這種情況,傳統的硬件木馬檢測方法就無法檢測出芯片內部含有的硬件木馬。
【發明內容】
[0010]本發明的目的在于克服現有技術中存在的不足,提供一種不依賴基準曲線的硬件木馬檢測方法,可以在無法取得不含有硬件木馬芯片的情況下,也可以對芯片內的硬件木馬進行有效檢測。本發明采用的技術方案是:
1.一種不依賴基準曲線的硬件木馬檢測方法,其特征在于,包括以下步驟:
a)、將得到的原始功能測試向量S對目標電路進行測試,若有任何一組測試向量發生輸入-輸出不匹配,則待測電路內部含有硬件木馬,若所有的測試向量都通過測試,則進入下一步;此步驟主要從目標電路應該具備的功能來測試評價該電路;
b)、將上述原始功能測試向量進行修改,生成新的測試向量S’,且該新的測試向量中,相同的測試代碼會在不同的時間重復出現多次;
C)、將此新生成的測試向量S’,再進行電路測試,并記錄下每組測試向量在測試過程中的瞬態電流曲線;
d)、對記錄下的每組測試向量所對應的瞬態電流曲線,找出測試向量內相同測試代碼對應不同時間窗的瞬態電流曲線,并將這多組不同時間窗的瞬態電流曲線進行重疊擬合;
e)、確定電路在利用測試向量進行測試的過程中,電路自身瞬態電流曲線的最大變化范圍即閾值;這個閾值,可以在仿真和試驗中,根據具備相應功能,相應制造工藝,以及相應的交直流參數的電路進行多次仿真和試驗,由仿真和試驗來確定一個經驗值。
[0011]f)、將步驟d)各得到的擬合后的電路瞬態電流曲線進行比較,當這些擬合在一起的瞬態電流曲線彼此之間有數據點的最大變化超出閾值范圍,或者出現不同時間窗對應的瞬態電流曲線發生交叉時,即認為該待測電路中存在硬件木馬。
[0012]若數據點的最大變化沒有超出閾值范圍且沒有出現曲線交叉,則認為該待測電路內部不含有硬件木馬,是安全可靠的。
[0013]上述方法中,在完整的瞬態電流曲線中找出不同時間窗中,執行相同測試代碼時的瞬態電流數據點,并將數據點個數以及每個數據點對應的電流值在二維坐標中標出,其中數據點個數為橫坐標,每個數據點對應的瞬態電流值為縱坐標。
[0014]在步驟f)之后,還可以繼續生成后續新的測試向量,再進行電路測試,若所有測試向量對應的瞬態電流曲線按照上述判斷方法,都沒有發現問題,則認為該待測芯片內部不含有硬件木馬。
[0015]進一步地,在生成新的測試向量集合S’時必須滿足以下要求:
1)、新的測試向量比起原始測試向量能夠對待測電路內部節點產生更多的翻轉;
2)、新的測試向量必須重復向量內某一測試代碼段多次,使電路在執行這一測試向量時,能夠進行多次重復的操作;
3)、新的測試向量內的重復測試代碼段,可以連續執行,也可以間隔一定的時間再執行。
[0016]進一步地,在記錄利用新的測試向量S’進行測試時的電路瞬態電流曲線時必須滿足以下要求:
1)、對瞬態電流數據進行采樣的頻率必須至少大于電路工作頻率的2倍以上,以獲得較高的采樣精確度;
2)、為了減小測量噪聲對數據采集的影響,對每一組測試向量對應的瞬態電流數據應采取多次;
3)、將采集到的多組瞬態電流數據進行算術平均處理,從而盡可能的消除由于數據采集引入的噪聲,得到更為準確的瞬態電流數據。
[0017]在確定電路測試過程中的瞬態電流曲線的變化閾值時,不僅要考慮測量瞬態電流曲線時的測量噪聲,還需要考慮電路在制造過程中受到工藝漂移的影響。
[0018]本發明的技術效果在于:在無法取得保證不含硬件木馬的芯片的情況下(如進口芯片),也可以對芯片內可能含有的硬件木馬進行有效檢測。
【附圖說明】
[0019]圖1為本發明的流程示意圖。
[0020]圖2為本發明在一實施例中所述的硬件木馬電路的結構。
[0021]圖3為本發明在一實施例中所使用的CAN總線控制器電路的架構。
[0022]圖4為該實施例中的CAN總線控制器工作時的瞬態電流曲線示意圖。
[0023]圖5為本發明在一實施例中所使用的CAN總線控制器電路的架構中含有硬件木馬的示意圖。
[0024]圖6為該實施例中對含有硬件木馬的CAN總線控制器電路執行相同操作時的瞬態電流曲線示意圖。
【具體實施方式】
[0025]下面結合具體附圖和實施例對本發明作進一步說明。
[0026]傳統的基于旁路分析的硬件木馬檢測技術都有一個前提,就是要首先取得不含硬件木馬的電路,然后獲得其正常工作狀態下的旁路信息數據作為基準曲線,再將待測芯片進行同樣的測試,并獲得待測芯片的旁路信息數據曲線,并與基準曲線進行比較。
[0027]當待測芯片的旁路信息值與基準曲線相比沒有超過預先設定的閾值,則認為待測芯片內部不含有硬件木馬;當待測芯片的旁路信息值與基準曲線相比超過預先設定的閾值,則認為待測芯片內部含有硬件木馬。
[0028]這種傳統的基于旁路分析的檢測技術確實能夠在一定的環境與條件下對芯片內部含有的硬件木馬進行有效的檢測,但是這種硬件木馬檢測方法都依賴于需要取得不含硬件木馬的芯片。
[0029]當對涉及到不可控環節的芯片時,如第三方的進口芯片,人們會通過在全世界各地購買不同批次的相同型號的電路作為樣本,然后對所有的電路進行測試評估,篩選出旁路信息數據相差最大和最小的電路,然后作為參考,建立相應的基準曲線,通過這樣的方法即認為可以對第三方的芯片進行有效的硬件木馬檢測。
[0030]但是即使采用上述方法,我們無法保證就一定能夠取得不含硬件木馬的芯片來獲得基準參考,某一類型的芯片全部都含有硬件木馬的情況,在理論上