此研究如何偵測硬體木馬之方法,是採用旁通道訊號分析模式來進行模擬無硬體木馬 之電路與有硬體木馬存在之電路中,檢測統計其旁通道訊號之變化差異(如圖5.)。其中較常 使用之旁通道訊號可分為是基於電力特性(power-based)或時間特性(timing-based)之訊號兩 種。
圖 5.檢測流程
3.1 時間特性分析
本研究實驗目標是量測分析路徑延遲時間此為時間特性旁通道訊號,此方法的關鍵點 在於輸入測資必須盡量涵蓋整個電路,進行方式是同時對安全電路與未檢測電路施予相同 測資並量測輸出訊號,比對輸出訊號之延遲時間之差異是否是在可接受的變化範圍(考慮製 程飄移因素),藉此判斷未檢測電路存在硬體木馬的可能性。
𝐷 = Ʃ𝑑𝑖 (1)
∆𝐷 = 𝐷2− 𝐷1 (2)
𝐷 為各階延遲時間𝑑𝑖的總和。安全電路的延遲時間總和為𝐷1,未檢測電路的延遲總和 為𝐷2,∆𝐷為兩者的差異,由該值的數值大小是否合理,判斷未檢測電路是否遭受到惡意攻 擊。
3.2 實作惡意行為電路
DES3模組與硬體木馬植入:DES/DES3(Data Encryption Standard):是一個加解密電路,
加解密電路最注重的就是資料的安全性,且要加密的資料一定有一定程度的重要性,所以 攻擊者要針對這個IP攻擊就可以針對未加密的資料竊取。
Self-Verify Circuit
Data
Pattern feeder
DES3
Controller Key Selection
circuit Generator BRAM
(Test Pattern)
Original data
在 DES3 模組架構中有兩個部分,第一個部分是 Self-Verify Circuit、第二個部分是 DES3,
在第一部份中自我驗證的電路是設計將所要加解密資料和所選擇的金鑰送進 DES3 中,為 了驗證方便,Pattern feeder 會先跟 BRAM 拿取測試檔案不停的送資料進去加解密,才好偵 測運作過程中是否有硬體木馬的威脅,在這邊使用 BRAM 是為了將所有的資料都能在最後 的步驟中燒入至 FPGA 版上,來執行自我偵測的步驟。
第二部分是 DES3 IP,共有 Key selection circuit、Encrypted circuit、ROM、Controller module,Key selection circuit 是將所獲得的 key 選擇如何使用來加密,DES3 是採用 3 個 key 作為加密金鑰,3 個金鑰的組合可能為全相同、兩同一異或全相異,而選擇哪一種方是就 是由 Key selection circuit 所決定。Encrypted circuit 就是將選擇後的金鑰來跟 ROM 拿資料來 加密送回到 controller,最後在由 controller 送出資料回 pattern feeder 驗證。 紅色區塊為硬 體木馬電路的設計,在這邊設計的硬體木馬是要將 pattern feeder 送出的的資料竊取出來,
但不影響整個 DES3 的運作,在 DES3 閒置的時候再將竊取的資料秘密地輸出。
目前採用 Virtex-5 ml507 當作開發平台,下圖是正在使用的 FPGA:
圖 7 Virtex-5 ml507
在開發平台確認後,使用 Xilinx ISE Design Suite 上模擬 IP 的行為是否正常,透過 nWave 來清楚看到模擬波型來驗證正確性,以下是 ISE 驗證整個 IP 的流程:
圖 8 ISE 設計流程
第一個步驟是將 Design Entry 拿去 Functional Simulation 執行原本設計的模擬,確認程 式的正確性,在執行 Design Synthesis,也就做合成的動作,產生 netlist 再餵給 Design Implementation 去對應到整個 FPGA 實際的內容,在 Design Implementation 中先做一些最佳 化後,會執行三個大動作,就是 Mapping、Placement、Routing,Mapping 的過程就是將一 開始產生的 netlist 對應到 FPGA 上的真正的 slice 和一些特徵元件,Placement 根據你的 PCF 檔(設定一些原件限制的檔案)放到 FPGA 上,最後在 Routing 將 timing constrains 考量進去,
在將過程拿到 Timing Simulation 做確認正確性,再產生 Bitstream 燒入至 FPGA 上。
在整個模擬完 IP 且燒入至 FPGA 上後,使用 Xilinx ChipScope 來監測燒入至 FPGA 上 後的運作是否正做,符不符合當初的要求,ChipScope 的概念大致如下圖:
圖 9 Xilinx ChipScope 驗證流程
很清楚的可以看的 FPGA 經由 JTAG 傳回信號給 PC 端監測,觀察波型是否放至到 FPGA 上還是正確的。
FPGA設計的流程大致如上所描述,我們將會把原本使用的IP(沒有木馬的)先量測好他 的數據,在將硬體木馬植入到IP中燒入至FPGA上,量測另一組數據來了解實際上的差別,
可能會有Power、hardware overhead、area等等可比較的數據。