亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于位流回讀的硬件木馬檢測方法

        2022-01-13 15:03:54萬旺張紅旗張大宇張松王賀
        關(guān)鍵詞:木馬寄存器數(shù)據(jù)包

        萬旺,張紅旗,張大宇,張松,王賀

        (中國航天宇航元器件工程中心,北京 100094)

        0 引言

        近年來,針對硬件木馬[1],提出了諸多測試方法,但大體上可以分為逆向工程[2]、旁路分析[3-4]和邏輯測試[5]等幾類。對于專用集成電路(ASIC)而言,逆向工程可以通過開封、清洗等操作對IC內(nèi)部結(jié)構(gòu)進行分析,旁路分析可以通過分析功耗去檢測,而邏輯測試亦可以通過功能測試去驗證,在特定的情況下,這些方法都能夠?qū)τ布抉R做出適當(dāng)?shù)淖R別。然而,對于現(xiàn)場可編程邏輯門陣列(FPGA:Field Programmable Gate Array)而言,由于其內(nèi)部是大量的邏輯模塊,而其功能是根據(jù)需求進行配置的,所以上述的幾種方法往往很難對FPGA設(shè)計中的硬件木馬做出判斷。對此,也有人提出了門級網(wǎng)表的測試方法[6],然而該方法也只能防止設(shè)計時的隱患,隨著StarBleed漏洞的揭露[7],F(xiàn)PGA中在線運行的設(shè)計被植入硬件木馬的可能性已無法被忽視。而針對這種方式植入的硬件木馬,至今尚沒有提出有效的解決措施。

        因此,本文提出基于位流回讀[8-9]的硬件木馬檢測方法,通過位流對比分析,可以有效地檢測出FPGA設(shè)計中植入的硬件木馬。該方法的主要難點在于測試人員必須深入地了解相應(yīng)器件的配置及接口等信息,并通過相應(yīng)的EDA工具進行必要的軟硬件協(xié)同設(shè)計才能夠?qū)崿F(xiàn)該測試過程。本文將對Xilinx系列FPGA的具體配置及接口信息進行分析,并在VC707評估板上進行簡單設(shè)計以驗證該方法的合理性。

        1 FPGA配置

        FPGA的配置是指將設(shè)計生成的位流加載到FPGA配置存儲器中,實現(xiàn)相應(yīng)的功能。該過程中所涉及的3個關(guān)鍵點是配置模式的選擇、配置幀的格式和配置寄存器的訪問。

        1.1 配置模式

        Virtex FPGA的配置模式由3個引腳控制,分別為M2、M1和M0,理論上有8種配置模式,但常見的主要有4種,如表1所示。

        表1 Virtex FPGA常見的配置模式

        其中,主串模式是指上電后,F(xiàn)PGA產(chǎn)生配置時序,自動地從外部存儲器中加載配置位流。而從串模式則相反,F(xiàn)PGA處于從機模式,由CPU、DSP等提供時序,配置位流從硬盤等媒介加載到FPGA中。SelectMAP模式是一種8-bits并行模式。邊界掃描(JTAG)模式是一種調(diào)試模式。作為相應(yīng)的配置接口,SelectMAP接口和JTAG接口都能完成配置和回讀操作,考慮到JTAG接口對資源占用較少且長期激活等特點,本試驗中將通過JTAG接口進行位流的配置與回讀。

        1.2 配置接口

        聯(lián)合測試行動小組(JTAG:Joint Test Action Group)是IEEE 1149.1標(biāo)準(zhǔn)的常用名稱,該協(xié)議主要由測試訪問接口(TAP)和邊界掃描結(jié)構(gòu)兩個部分組成。通過JTAG接口,測試人員可以靈活地訪問器件的內(nèi)部節(jié)點,對芯片內(nèi)部的模塊進行在線編程和調(diào)試,從而大幅度地提高測試效率。

        1.2.1 TAP接口

        Virtex系列的FPGA全都支持JTAG接口。根據(jù)IEEE 1149.1標(biāo)準(zhǔn)的描述,TAP控制器包含了4根強制性的專用引腳,分別是TCK、TMS、TDI和TDO,其余一些引腳如復(fù)位引腳都是可選的,如表2所示。

        表2 TAP接口控制引腳

        其中,TCK與TMS共同作用來控制著TAP控制器的模式選擇,TAP是一個16狀態(tài)的有限狀態(tài)機,TMS引腳是一個上拉引腳,在不驅(qū)動時呈現(xiàn)高電平,在時鐘上升沿的觸發(fā)下,TMS引腳的狀態(tài)將會決定TAP的狀態(tài)序列,對于TAP控制器而言,雖然有多種狀態(tài),但主要只有兩種狀態(tài)變化序列,即數(shù)據(jù)移入數(shù)據(jù)寄存器和命令移入命令寄存器。而對于數(shù)據(jù)寄存器和命令寄存器中的數(shù)據(jù)輸入和輸出,則是通過TDI和TDO引腳串行輸入和輸出來實現(xiàn)的。

        1.2.2 邊界掃描結(jié)構(gòu)

        JTAG測試得以有效實施的另一依據(jù)便是邊界掃描結(jié)構(gòu),該結(jié)構(gòu)的主要組成部分是一系列被串聯(lián)起來的寄存器所組成的掃描鏈,邊界掃描結(jié)構(gòu)的示意圖如圖1所示。

        圖1 邊界掃描結(jié)構(gòu)

        如圖1所示,一系列的IOB組成了掃描鏈,該掃描鏈形成了數(shù)據(jù)的輸入與輸出通道。該結(jié)構(gòu)中其余寄存器的作用如表3所示。

        表3 邊界掃描寄存器

        1.3 配置幀

        FPGA的資源主要有IOB、CLB和BRAM,以及互連線資源,這些資源都需要位流進行配置,而配置時,都是以幀為單位對內(nèi)部存儲器進行讀寫。幀是FPGA配置時最小的可尋址單位,如圖2所示,整個配置存儲器可以被分為3段,分別為BRAM0、BRAM1和CLB。

        其中,每一段都是由若干幀組成,每一幀都是寬度為1 bit的自上而下的一列資源,BRAM0和BRAM1的幀所包含的資源是塊存儲器中的單元,而CLB中的幀列可以細分為CLB、IO和內(nèi)部互聯(lián)控制等元素。

        如之前所說,幀是FPGA配置時最小的可尋址單位,所以在配置或回讀過程中,需要對相應(yīng)的地址進行解析。如圖2的配置內(nèi)存圖中所示,分為3個幀塊,每一幀塊都有一個塊地址,而幀塊中的每一列也有相應(yīng)的列地址,在尋址時通過塊地址、列地址的順序逐層定位到相應(yīng)的幀。對于不同型號的器件,幀的尺寸和數(shù)目是不同的,但其尋址方式保持一致。

        1.4 位流與配置寄存器

        配置寄存器是指配置過程中所使用的若干寄存器,這些寄存器在配置命令的作用下完成了如圖3所示的配置流程。

        圖3 Virtex FPGA配置流程

        對于初始化設(shè)置階段,主要涉及的是模式選擇寄存器,在第一小節(jié)配置模式中已有描述,位流加載過程是整個配置過程中最為關(guān)鍵的環(huán)節(jié),而且整個過程也是對配置寄存器進行讀寫的過程。首先,對于位流而言,是由兩類數(shù)據(jù)包構(gòu)成,如圖4-5所示,給出了兩類數(shù)據(jù)包的包頭:第一類的包頭包含了寄存器的定位等信息,可以獨立地完成寄存器的讀寫,但相應(yīng)地,其所攜帶的包數(shù)據(jù)較少;第二類包頭不含寄存器信息,不能獨立地使用,必須與第一類包頭結(jié)合使用。通常在讀寫幀數(shù)據(jù)時,考慮到字數(shù)較多,所以先發(fā)一個不含包數(shù)據(jù)(字數(shù)為0)的第一類包頭,再發(fā)一個第二類包頭,隨后開始幀數(shù)據(jù)的傳送。

        圖4 第一類數(shù)據(jù)包

        圖5 第二類數(shù)據(jù)包

        其次,位流對于寄存器的讀寫只能通過第一類包進行操作,第一類包所涉及的寄存器如表4所示。

        表4 配置寄存器

        其中,CMD命令寄存器控制著配置幀數(shù)據(jù)的讀寫和校驗等操作,其常見命令如表5所示。

        表5 配置命令

        總之,只有正確地使用配置模式、配置接口和配置寄存器才能夠?qū)⒃O(shè)計載入到FPGA中,這是位流回讀的基礎(chǔ)。

        2 位流回讀技術(shù)的設(shè)計與實現(xiàn)

        Xilin x 7系列FPGA允許用戶通過JTAG、SelectMAP等接口將FPGA內(nèi)部配置數(shù)據(jù)回讀到PC端進行分析,回讀一般分為兩種目的,分別為驗證和捕獲,驗證是將配置內(nèi)存中的數(shù)據(jù)全部回讀,其中包括了用戶的設(shè)計信息和當(dāng)前運行所對應(yīng)的各種狀態(tài)值,而回讀捕獲相當(dāng)于驗證的一個子集,它主要集中于FGPA運行的動態(tài)信息,即捕獲當(dāng)前時刻的各種狀態(tài)。本次試驗探究的是設(shè)計被篡改的情況,所以此處主要就回讀驗證進行介紹。

        2.1 訪問配置寄存器

        對于標(biāo)準(zhǔn)的JTAG協(xié)議而言,提供了旁路(Bypass)和邊界(Boundary)寄存器去進行數(shù)據(jù)的交互。而通過JTAG訪問Xilinx 7系列配置信息時則是通過類似的CFG_IN和CFG_OUT寄存器?;刈x指令通過CFG_IN寄存器寫入,配置內(nèi)存中的數(shù)據(jù)則通過CFG_OUT寄存器讀出。

        回讀的主要操作集中于對配置寄存器的讀取,盡管并非所有的寄存器都對外開放讀取權(quán)限,但只要具有讀取權(quán)限的配置寄存器,通常都可以利用JTAG接口進行讀取,這里簡要地描述JTAG讀取STAT寄存器的流程,對于其余寄存器的讀取與該過程基本類似。

        a)復(fù)位TAP控制器。

        b)通過Shift-IR將CFG_IN中的指令移入JTAG的指令寄存器中。

        c)通過Shift-DR將數(shù)據(jù)包寫入命令移入CFG_IN寄存器:

        1)向器件寫入同步字;

        2)寫入數(shù)個空指令;

        3)將讀取STAT寄存器的包頭寫入器件;

        4)寫入兩個填充字以刷新緩沖區(qū)。

        d)通過Shift-IR將CFG_OUT指令移入JTAG的指令寄存器。

        e)通過Shift-DR將狀態(tài)寄存器中的32位數(shù)據(jù)移除。

        f)重置TAP控制器。

        2.2 回讀數(shù)據(jù)流

        回讀的數(shù)據(jù)流包含了配置幀數(shù)據(jù),但是相比于配置的位流,該數(shù)據(jù)流中不包含配置的指令信息,也沒有CRC校驗信息。簡言之,除了其頭部的一個填充幀以外,其余的回讀數(shù)據(jù)都是FPGA內(nèi)部存儲器的幀數(shù)據(jù)。盡管可以獲得所有幀的數(shù)據(jù),但其驗證過程并不是逐位都需要參與比較,因為其中的一些比特或位置由于特殊用途而不用于比較,對此需要參考相應(yīng)的MASK文件,對比MASK文件,可以從回讀位流中提取出有效的數(shù)據(jù)位。對于回讀驗證而言,會涉及到.bit、.rbt、.rbd、.msk和.msd等文件。其中,bit/rbt文件主要存放的是設(shè)計位流;msk/msd存放的是MASK文件;rbd存放的是回讀位流;而bit、msk文件是二進制文件;rbt、msd和rbd都是ASCII文件。MASK文件和回讀數(shù)據(jù)流的示例如圖6-7所示。

        圖6 MSD文件

        圖7 回讀的RBD文件

        對于同一器件而言,MASK文件中的比特數(shù)目與RBD文件中的比特數(shù)目相一致,但它們中0與1的意義截然不同,對于RBD文件中,每一比特都代表了配置幀中的某一位數(shù)據(jù);而MASK文件則是針對回讀位流而生成的一類文件,其中1代表了遮蓋,即MASK中1出現(xiàn)的位置所對應(yīng)的位流數(shù)據(jù)不參與比較,而0所對應(yīng)的數(shù)據(jù)需要比較。

        2.3 回讀實現(xiàn)

        對于回讀過程,就硬件部分而言,與其配置時采用相同的硬件設(shè)施;而軟件部分,對于Xilinx 7系列FPGA可以使用Vivado IDE軟件進行相應(yīng)的配置設(shè)計和回讀。

        Vivado IDE提供了GUI模式和Tcl命令行模式,對于FPGA配置而言,采取其中任何一種方式都可以達到期望的目標(biāo);而對于回讀操作而言,則主要是通過Tcl指令去完成?;刈x操作需要用到的指令,如圖8所示。

        圖8 Tcl回讀指令

        圖8中,-readback_file用于生成ASCII文件,-bin_file文件用于生成二進制文件,回讀后的文件與配置時生成的msk或msd文件相對照即可得到配置信息。

        3 系統(tǒng)驗證

        本次試驗中將以Vivado IDE作為配置設(shè)計和回讀操作的軟件平臺,以Virtex-7 FPGA VC707評估板作為硬件平臺進行相應(yīng)的驗證工作。在試驗中將使用Trust-Hub網(wǎng)站提供的RS232 T100硬件木馬電路[10-11]作為受感染的設(shè)計。

        RS232 T100硬件木馬電路的觸發(fā)邏輯與內(nèi)部的19路信號相關(guān),一旦觸發(fā),就將會導(dǎo)致接收準(zhǔn)備信號產(chǎn)生stuck-at-‘0’故障,一般條件下很難觸發(fā)此類木馬;而且,由于該類木馬面積較小,邏輯測試或者側(cè)信道分析的效果并不理想,而在本試驗中,通過位流回讀的方式,可以直接篩選出那些對設(shè)計進行了惡意更改的芯片。如下是本次試驗的流程:

        1)RS232接口電路設(shè)計;

        2)配置位流生成,同時生成相應(yīng)的msd/msk即金位流(.rbd)文件;

        3)通過JTAG接口配置Virtex-7 XCV7X485T FPGA;

        4)將RS232 T100注入到配置中(注入木馬的方式較多,這里為了驗證方便,直接用RS232 T100取代原始設(shè)計將其載入FPGA中);

        5)通過JTAG回讀,生成回讀位流文件(.rbd);

        6)與金位流文件對比,得出結(jié)論。

        根據(jù)如上所述的流程開展試驗,得到的結(jié)果如圖9所示。

        圖9 位流對比

        如圖9所示,原始設(shè)計與RS232-T100的回讀位流存在若干行不一致的情況,表明了原始設(shè)計與硬件木馬感染電路的位流存在著明顯的差異,從而證明了該方法的有效性。

        4 結(jié)束語

        由于FPGA開發(fā)的低成本和便捷等特性,其在航天航空等領(lǐng)域中應(yīng)用廣泛,然而,近年來有關(guān)硬件安全的問題備受關(guān)注,F(xiàn)PGA本身及其設(shè)計的安全性也受到了質(zhì)疑。對于配置之前的設(shè)計,可以通過形式驗證、門級驗證等方式去檢測;而對于配置后設(shè)計乃至在線運行的器件,如何保證其中功能的正確性,卻鮮有討論,尤其是隨著FPGA漏洞的揭漏,該方面問題變得愈發(fā)突出。

        本次設(shè)計的基于位流的木馬檢測系統(tǒng),可以對FPGA內(nèi)部配置進行回讀,通過將其與原始設(shè)計相比較,可以有效地提取出受感染的部分,從而有效地防止硬件木馬帶來的危害。該方法的優(yōu)點是相比于旁路分析等方式,其受環(huán)境和工藝影響較??;此外,該方法直接對設(shè)計的每一位進行解析,其檢測率可以完全覆蓋整個設(shè)計。尚不足之處是該方法執(zhí)行過程中對于回讀電路本身的安全性未曾考慮,以及對于加密設(shè)計,該方法需要進一步地優(yōu)化。

        猜你喜歡
        木馬寄存器數(shù)據(jù)包
        小木馬
        騎木馬
        Lite寄存器模型的設(shè)計與實現(xiàn)
        小木馬
        SmartSniff
        旋轉(zhuǎn)木馬
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計與實現(xiàn)
        視覺注意的數(shù)據(jù)包優(yōu)先級排序策略研究
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        国产精品免费精品自在线观看| 开心五月骚婷婷综合网| 久久久久高潮综合影院| 强行无套内谢大学生初次| 亚洲aⅴ无码日韩av无码网站| 国产内射视频在线观看| 国产女主播一区二区三区| 亚洲av无码一区二区三区人| 东北无码熟妇人妻AV在线| 亚洲视频在线播放免费视频| 中文字字幕在线中文乱码解| 亚洲成熟中老妇女视频| 九九在线中文字幕无码| 亚洲永久无码7777kkk| 国产精品反差婊在线观看| 国产亚洲综合另类色专区| 正在播放老肥熟妇露脸| 玖玖资源站无码专区| 男人的av天堂狠狠操| 国产一区二区三区18p| 风韵少妇性饥渴推油按摩视频| 天天看片视频免费观看| 国产2021精品视频免费播放| 国产青青草自拍视频在线播放| 美女下蹲露大唇无遮挡| 日韩人妻ol丝袜av一二区 | 成人欧美一区二区三区白人| 国产精品专区一区二区av免费看| 国内久久婷婷六月综合欲色啪| 麻豆成人精品国产免费| 加勒比黑人在线| 精品久久一区二区三区av制服| 国产婷婷色一区二区三区在线| 欧美gv在线观看| 国产剧情无码中文字幕在线观看不卡视频 | 日本一区二区在线高清观看| 中国老熟妇自拍hd发布| 老熟女熟妇嗷嗷叫91| 激情五月天在线观看视频| 中国女人内谢69xxxx免费视频| 国产97色在线 | 免|