一種基於jtag埠控制的保護晶片內部信息安全的方法
2023-06-02 02:51:21
專利名稱:一種基於jtag埠控制的保護晶片內部信息安全的方法
技術領域:
本發明屬於系統晶片(SOC)技術領域,具體涉及一種基於JTAG埠控制的保護晶片內部信息安全的方法。
背景技術:
隨著大規模集成電路設計水平的提高,將多種不同工藝製程的IC集成到單一晶片中構建SOC(系統晶片)已是大勢所趨,基於SOC的產品越來越受到市場的歡迎。SOC可以使原來由分立IC器件構成的整機產品成本更低,功耗更低,可靠性更高。
JTAG(Joint Test Action Group,聯合測試行動小組)是一種國際標準測試協議(IEEE 1149.1兼容),主要用於晶片內部測試(Boundary Scan#0;邊界掃描)。現在多數的高級器件都支持JTAG協議,如DSP、FPGA器件等,JTAG最初是用來對晶片進行測試的,基本原理是在器件內部定義一個TAP(Test Access Port測試訪問口)通過專用的JTAG測試工具對進行內部節點進行測試。JTAG測試允許多個器件通過JTAG接口串聯在一起,形成一個JTAG鏈,能實現對各個器件分別測試。現在,JTAG接口還常用於實現ISP(In-System Programmable在線編程),對FLASH等器件進行編程。
但是,隨著晶片集成度的提高,開放性與安全性之間的矛盾也越來越突出。一方面,基於IEEE1149.1規範的JTAG邊界掃描接口因其開放性和方便性,被越來越多的晶片採用作為標準的開發測試接口,如ARM將JTAG作為標準配置使其在市場上大受歡迎,另一方面,系統晶片因為將所有的軟硬體資源都集成在單一晶片內,如何保護晶片內部的代碼、參數、存儲在晶片內的密鑰等關鍵信息也越來越引起人們的重視。而JTAG接口作為一種開放的測試接口,可以很方便地對晶片內部各種資源進行觀察、分析和測試,給晶片的開發調試帶來了極大的方便,但卻給晶片本身帶來危險性。
現有技術中為晶片安全,一般都去掉了JTAG調試埠,以軟體仿真器代替晶片的調試工作。比如蘇州國芯設計32位信息安全專用CPU以及中興集成電路設計公司設計的Z32U-Flash系列32位安全控制器等都去掉了JTAG調試埠,採用軟體仿真器配合ISP進行晶片軟體的開發調試。這種方法不但犧牲了通過邊界掃描對晶片進行測試的手段,而且軟體的開發與調試也極其不便。其缺陷如下1、丟失邊界掃描功能;2、因不符合IEEE1149.1規範,喪失第三方工具的支持;3、不能實時仿真與調試,嵌入式軟體開發難度大、周期長;4、不能有效堵截片外軟體的攻擊;另一種單片機慣用的信息保護方法是採用可熔斷的PROM位,代碼寫入片內後,利用外部高壓將該PROM位熔斷,從而切斷通過埠對晶片代碼存儲區的訪問,達到信息保護的目的。這種方法的缺陷是熔斷過程是不可逆的,一旦熔斷,晶片再也不能恢復。這種方法適用於簡單廉價的單片機,對於系統複雜又昂貴的高端處理器或SOC則不適用。
現有技術尚沒有既可以讓晶片能夠享受JTAG接口所帶來的方便性又具備足夠的安全性的信息安全保護方法。
發明內容
本發明目的是提供一種基於JTAG埠控制的晶片內部信息安全的方法,使得即可以從JTAG埠中受益,包括設計驗證、樣機調試、測試工程和早期樣機測試以及產品測試和在現場進行板的測試、更新和維修。又保證JTAG邊界掃描接口鎖止後,從外部沒有任何渠道非法訪問晶片內部資源的安全性。
本發明實現上述目的採用如下方案一種基於JTAG埠控制的晶片內部信息安全的方法,其特徵所述晶片包含一個非易失性介質用於存儲JTAG鎖止指令,用以儲存JTAG鎖止指令;一JTAG鎖止控制器,用以控制JTAG埠的邊界掃描鏈和JTAG埠寄存器;所述方法包括以下步驟晶片上電時,JTAG鎖止控制器檢測JTAG鎖止指令的步驟;判斷JTAG鎖止指令已寫入JTAG指令存儲單元的步驟;JTAG鎖止控制器切斷邊界掃描鏈,停止JTAG埠寄存器工作的步驟;JTAG鎖止控制器控制晶片的程序引導器,使程序引導器拒絕從片外引導代碼進入片內的步驟。
進一步,晶片被整體擦除恢復到出廠狀態時,寫入JTAG鎖止指令存儲單元的JTAG鎖止指令才被擦除的步驟。
所述晶片整體擦除後,JTAG埠允許程序引導器從片外引導代碼的步驟。
JTAG埠被鎖止的晶片程序引導器,受JTAG鎖止控制器控制,堵截片外引導代碼進入。
所述的非易失性介質為晶片內部的寄存器單元。
晶片內部必須有非易失性介質用於存儲JTAG鎖止指令,該介質可以是晶片內部的寄存器單元,也可以是嵌入在晶片內部的FLASH單元或EEPROM單元;所述的JTAG鎖止指令由JTAG鎖止控制器設定,是一串公開的數字序列。
本發明提供的一種基於JTAG的晶片內部信息安全的方法讓日益複雜的系統晶片在享受JTAG邊界掃描調試埠便利的同時保障晶片內部信息的安全,本發明方法有益效果還在於晶片可以保留JTAG埠,便於軟體的開發調試,也便於晶片本身的測試;(1).軟體開發調試完畢後,由用戶軟體在初始化時將JTAG鎖止指令寫入JTAG鎖止指令存儲單元,JTAG埠即被鎖死;(2).JTAG埠鎖死後,晶片將不能從片外存儲體執行軟體,也不能從片外存儲體引導代碼到片內RAM中運行,這樣可以有效地堵截片外軟體的攻擊。有的晶片設計雖然去掉了JTAG埠以保護片內信息,但是晶片還是可以從片外空間執行軟體,這時攻擊者就可以編寫破解代碼導入片內進行破解,如常見的計算機病毒或木馬程序。
(3).可以通過將片內非易失性存儲體全部清空的辦法讓JTAG埠恢復正常工作。一般來說,用戶的代碼、密鑰等關鍵數據都保存在片內的非易失性存儲體內,清空之後相當於一片剛出廠的空晶片,此時沒必要將JTAG鎖死。本發明方法可以防止晶片在調試過程中被意外鎖死之後成為廢片,也便於實現片內系統的在線升級。
圖1為本發明方法晶片示意2為本發明用戶軟體初始化流程;圖3為本發明方法工作流程圖;圖4為應用本發明方法的指紋電子籤名器結構圖;圖5為圖4所示PS1803DSP安全控制器晶片集成的標準JTAG串行調試埠結構示意圖;圖6為圖4所示實施例JTAG鎖止控制器的讀取示意7為圖4所示實施例的JTAG鎖止控制器對JTAG埠的控制示意圖。
具體實施例方式
下面結合附圖對本發明作進一步描述。
下面以PS1803DSP安全微控制器晶片作為例子說明本發明的具體實現以及實現的效果。
PS1803是一顆以ZSP400核為基礎設計而成的DSP微控制器,它集成了128K字節嵌入式FLASH,156K字節RAM,還集成了USB口,UART,SPI,I2C口,以及NAND FLASH接口,可以同時掛接指紋傳感器,NANDFLASH等外圍器件。只要把固件寫入片內的FLASH,就可以構造一顆專用SOC。
指紋電子籤名器的整套軟體非常複雜,既要包含加解密算法,還要包含圖像處理和指紋識別算法,還得進行U盤的仿真與控制。指紋電子籤名器對主晶片的安全性要求非常高。主晶片內不但要存儲整套固件,還要存儲指紋特徵碼,數字證書,密鑰等關鍵信息。指紋電子籤名器的結構示意圖見圖4所示。
開發晶片時需要具備非常方便的開發調試接口,在開發完成量產時又要求晶片具備高度的保密性。PS1803晶片集成了JTAG調試埠,同時應用了本發明技術,很好地滿足了這種應用需求。
PS1803集成了標準的JTAG串行調試埠,該埠的結構示意圖如圖5所示。從圖5中可以看到,JTAG埠定義了5根接口線,分別為TDI數據輸入;TDO為測試數據輸入,數據通過TDI引腳輸入JTAG接口;TMS為測試模式選擇,用來設置JTAG接口處於某種特定的測試模式;TCK為測試時鐘輸入;TRST為測試復位,輸入引腳,低電平有效。
EX發送握手寄存器;ER接收握手寄存器。
上位機與晶片之間的數據交換通過4個寄存器實現,分別為DED調試數據寄存器;DEI調試指令寄存器;EX發送握手寄存器;ER接收握手寄存器。
CPU core與JTAG調試埠的信號關係如表1表1
PS1803的嵌入式FLASH採用和艦的HJ180FLAG21024K_32 0.18umFlash Macro,該flash含有一頁128位元組的信息頁(Information Page),我們將該頁的前4個字節設定為JTAG鎖止指令存儲區域,晶片預定的JTAG鎖止指令為Oxdeadbeef。我們將該存儲區域的地址和數據總線與JTAG鎖止控制器相連,使得JTAG鎖止控制器在晶片上電時就能直接獲得該區域的數據見圖6。
圖7為JTAG鎖止控制器對JTAG埠的控制示意圖,可表示JTAG鎖止控制器對JTAG埠的控制方法,JTAG埠的數據對CPU core是並行的,對外部則是串行的,所以要讓JTAG口停止工作只要控制並口數據和串行工作必須的時鐘就可以了。所以我們採用一個總線多路選擇器作為並行數據控制,採用與門對時鐘進行屏蔽。
嵌入式flash的INF page(信息頁)只有當整個flash被整體擦除時才被擦除。這時JTAG鎖止指令存儲區被清空,JTAG埠恢復正常工作。
JTAG鎖止控制器控制JTAG埠的邊界掃描鏈和JTAG埠寄存器,一旦控制器發現JTAG鎖止指令即將邊界掃描鏈切斷並使JTAG埠寄存器停止工作。JTAG鎖止指令由JTAG鎖止控制器設定。
見圖1~3所示,應用本發明的晶片初始化流程,檢查是否已經寫入JTAG鎖止指令,如果沒有,寫入數字序列表示的JTAG鎖止指令;如果已寫則進行其它初始化工作。在調試軟體時,直接跳過JTAG鎖止指令檢查,以免JTAG埠被意外鎖死。
當晶片上電時,JTAG鎖止控制器檢測JTAG鎖止指令,判斷JTAG鎖止指令是否已寫入JTAG指令存儲單元;如果寫入了鎖止指令,則控制器將啟動JTAG鎖止程序;JTAG埠鎖止後,JTAG鎖止控制器同時控制晶片的程序引導器,使程序引導器拒絕從片外引導代碼進入片內。
JTAG鎖止指令存儲單元一旦寫入了JTAG鎖止指令,則只有在晶片被整體擦除恢復到出廠狀態時才能被擦除。
晶片被整體擦除後,JTAG埠恢復正常工作,同時允許程序引導器從片外引導代碼。
採用這種安全架構的處理器有著廣泛地應用前景,指紋電子籤名器為其中一個典型應用案例。
上述實施例只為說明本發明的技術構思以及特點,其目的在於在本領域熟悉此項技術的人士可以了解本發明的內容並據以實施,並不能以此限制發明的保護範圍,凡以本發明思想所作的等效變化和修飾,都應涵蓋本發明保護範圍之內。
權利要求
1.一種基於JTAG埠控制的保護晶片內部信息安全的方法,其特徵在於所述晶片包含一個非易失性介質,用以儲存JTAG鎖止指令;一JTAG鎖止控制器,用以控制JTAG埠的邊界掃描鏈和JTAG埠寄存器;所述方法包括以下步驟晶片上電時,JTAG鎖止控制器檢測JTAG鎖止指令的步驟;判斷JTAG鎖止指令已寫入JTAG指令存儲單元的步驟;JTAG鎖止控制器切斷邊界掃描鏈,停止JTAG埠寄存器工作的步驟;JTAG鎖止控制器控制晶片的程序引導器,使程序引導器拒絕從片外引導代碼進入片內的步驟。
2.如權利要求1所述的基於JTAG埠控制的晶片內部信息安全的方法,其特徵在於晶片被整體擦除恢復到出廠狀態時,寫入JTAG鎖止指令存儲單元的JTAG鎖止指令才被擦除的步驟。
3.如權利要求1所述的基於JTAG埠控制的晶片內部信息安全的方法,其特徵在於晶片整體擦除後,JTAG埠允許程序引導器從片外引導代碼的步驟。
4.如權利要求1所述的基於JTAG埠控制的晶片內部信息安全的方法,其特徵在於JTAG埠被鎖止的晶片程序引導器,受JTAG鎖止控制器控制,堵截片外引導代碼進入。
5.如權利要求1~4之一所述的基於JTAG埠控制的晶片內部信息安全的方法,其特徵在於非易失性介質為晶片內部的寄存器單元。
6.如權利要求1~4之一所述的基於JTAG埠控制的晶片內部信息安全的方法,其特徵在於非易失性介質為嵌入在晶片內部的FLASH單元。
7.如權利要求1~4之一所述的基於JTAG埠控制的晶片內部信息安全的方法,其特徵在於非易失性介質為嵌入在晶片內部的EEPROM單元。
8.如權利要求1~4之一所述的基於JTAG埠控制的晶片內部信息安全的方法,其特徵在於JTAG鎖止指令為由JTAG鎖止控制器設定的一串公開的數字序列。
全文摘要
一種基於JTAG埠控制的保護晶片內部信息安全的方法,屬於系統晶片(SOC)技術領域,所述晶片包含一個非易失性介質,用以儲存JTAG鎖止指令;一JTAG鎖止控制器,用以控制JTAG埠的邊界掃描鏈和JTAG埠寄存器;所述方法包括以下步驟晶片上電時,JTAG鎖止控制器檢測JTAG鎖止指令的步驟;判斷JTAG鎖止指令已寫入JTAG指令存儲單元的步驟;JTAG鎖止控制器切斷邊界掃描鏈,停止JTAG埠寄存器工作的步驟;JTAG鎖止控制器控制晶片的程序引導器,使程序引導器拒絕從片外引導代碼進入片內的步驟。本發明使得晶片即可以從JTAG埠中受益,又保證JTAG邊界掃描接口鎖止後,沒有任何渠道非法訪問晶片內部資源的安全性。
文檔編號G06F21/00GK101021885SQ200610050898
公開日2007年8月22日 申請日期2006年5月24日 優先權日2006年5月24日
發明者邱柏雲, 裴育 申請人:杭州晟元晶片技術有限公司