CN101021885B - 一种基于jtag端口控制的保护芯片内部信息安全的方法 - Google Patents
一种基于jtag端口控制的保护芯片内部信息安全的方法 Download PDFInfo
- Publication number
- CN101021885B CN101021885B CN200610050898A CN200610050898A CN101021885B CN 101021885 B CN101021885 B CN 101021885B CN 200610050898 A CN200610050898 A CN 200610050898A CN 200610050898 A CN200610050898 A CN 200610050898A CN 101021885 B CN101021885 B CN 101021885B
- Authority
- CN
- China
- Prior art keywords
- jtag
- locking
- chip
- instruction
- port
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
一种基于JTAG端口控制的保护芯片内部信息安全的方法,属于系统芯片(SOC)技术领域,所述芯片包含一个非易失性介质,用以储存JTAG锁止指令;一JTAG锁止控制器,用以控制JTAG端口的边界扫描链和JTAG端口寄存器;所述方法包括以下步骤:芯片上电时,JTAG锁止控制器检测JTAG锁止指令的步骤;判断JTAG锁止指令已写入JTAG指令存储单元的步骤;JTAG锁止控制器切断边界扫描链,停止JTAG端口寄存器工作的步骤;JTAG锁止控制器控制芯片的程序引导器,使程序引导器拒绝从片外引导代码进入片内的步骤。本发明使得芯片即可以从JTAG端口中受益,又保证JTAG边界扫描接口锁止后,没有任何渠道非法访问芯片内部资源的安全性。
Description
技术领域
本发明属于系统芯片(SOC)技术领域,具体涉及一种基于JTAG端口控制的保护芯片内部信息安全的方法。
背景技术
随着大规模集成电路设计水平的提高,将多种不同工艺制程的IC集成到单一芯片中构建SOC(系统芯片)已是大势所趋,基于SOC的产品越来越受到市场的欢迎。SOC可以使原来由分立IC器件构成的整机产品成本更低,功耗更低,可靠性更高。
JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试(Boundary Scan�;边界扫描)。现在多数的高级器件都支持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:
Signal | Direction | Description |
jtag_deu_dei[15:0] | Input | Input from the DEI shift register |
deu_jtag_del[15:0] | Output | Output from the DEI parallel register |
jtag_deu_ded[15:0] | Input | Input from the DED shift register |
deu_jtag_ded[15:0] | Output | Output from the DED parallel register |
jtag_deu_er | Input | Input from the ER shift register |
deu_jtag_hwflag_er | Output | Output from the ER parallel register-connected directty to theER core control register |
deu_jtag_hwflag_ex | Output | Output from the EX parallel register-connected directty to theEX core control register |
jtag_inst_reg[2:0] | Input | JTAG Instructlon Register |
jtag_update-DR | Input | Input from the JTAG TAP controller-decode of the JTAGupdate_DR TAP controller state |
jtag_shirt_DR | Input | Input from the JTAG TAP controller-decode of the JTAGshift_DR TAP controller state |
io_jtag_tck | Input | JTAG clock |
deu_scan_en | Output | Signals the JTAG block that the core is in scan mode. |
PS1803的嵌入式FLASH采用和舰的HJ180FLAG21024K_320.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端口恢复正常工作,同时允许程序引导器从片外引导代码。
采用这种安全架构的处理器有着广泛地应用前景,指纹电子签名器为其中一个典型应用案例。
上述实施例只为说明本发明的技术构思以及特点,其目的在于在本领域熟悉此项技术的人士可以了解本发明的内容并据以实施,并不能以此限制发明的保护范围,凡以本发明思想所作的等效变化和修饰,都应涵盖本发明保护范围之内。
Claims (5)
1.一种基于JTAG端口控制的保护芯片内部信息安全的方法,其特征在于所述芯片包含:
一个非易失性存储介质,用以储存JTAG锁止指令;
一个JTAG锁止控制器,用以控制JTAG端口寄存器、边界扫描链及程序引导器;
所述方法包括以下步骤:
芯片被整体擦除恢复到出厂状态时,写入JTAG锁止指令存储单元的JTAG锁止指令才被擦除的步骤;
所述芯片整体擦除后,JTAG端口允许程序引导器从片外引导代码的步骤;
芯片上电时,JTAG锁止控制器检测JTAG锁止指令的步骤;
判断JTAG锁止指令是否已写入JTAG指令存储单元;如果写入了JTAG锁止指令,则JTAG锁止控制器将启动JTAG锁止程序;
JTAG锁止控制器切断边界扫描链,停止JTAG端口寄存器工作的步骤;
JTAG端口锁止后,JTAG锁止控制器同时控制芯片的程序引导器,使程序引导器拒绝从片外引导代码进入片内;
软件开发调试完毕后,由用户软件在初始化时将JTAG锁止指令写入JTAG锁止指令存储单元,JTAG端口即被锁死,芯片将不能从片外存储体执行软件,也不能从片外存储体引导代码到片内RAM中运行。
2.如权利要求1所述的基于JTAG端口控制的芯片内部信息安全的方法,其特征在于非易失性存储介质为芯片内部的寄存器单元。
3.如权利要求1所述的基于JTAG端口控制的芯片内部信息安全的方法,其特征在于非易失性存储介质为嵌入在芯片内部的FLASH单元。
4.如权利要求1所述的基于JTAG端口控制的芯片内部信息安全的方法,其特征在于非易失性存储介质为嵌入在芯片内部的EEPROM单元。
5.如权利要求1所述的基于JTAG端口控制的芯片内部信息安全的方法,其特征在于JTAG锁止指令为由JTAG锁止控制器设定的一串公开的数字序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610050898A CN101021885B (zh) | 2006-05-24 | 2006-05-24 | 一种基于jtag端口控制的保护芯片内部信息安全的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610050898A CN101021885B (zh) | 2006-05-24 | 2006-05-24 | 一种基于jtag端口控制的保护芯片内部信息安全的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101021885A CN101021885A (zh) | 2007-08-22 |
CN101021885B true CN101021885B (zh) | 2010-05-12 |
Family
ID=38709647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610050898A Active CN101021885B (zh) | 2006-05-24 | 2006-05-24 | 一种基于jtag端口控制的保护芯片内部信息安全的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101021885B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9746519B2 (en) * | 2011-03-25 | 2017-08-29 | Nxp B.V. | Circuit for securing scan chain data |
CN108985283A (zh) * | 2014-11-14 | 2018-12-11 | 深圳市汇顶科技股份有限公司 | 基于状态监视和握手的指纹传感器的闩锁恢复机制 |
CN105138929B (zh) * | 2015-10-09 | 2019-05-07 | 天津国芯科技有限公司 | 一种具有防误写操作的寄存器保护方法及装置 |
GB2543804A (en) * | 2015-10-29 | 2017-05-03 | Nordic Semiconductor Asa | Microprocessor interfaces |
TWI713957B (zh) * | 2018-12-22 | 2020-12-21 | 新唐科技股份有限公司 | 具有解鎖除錯功能的電子裝置 |
CN109933481B (zh) * | 2019-03-13 | 2022-08-09 | 珠海一微半导体股份有限公司 | 一种jtag接口的解锁系统及jtag解锁控制方法 |
WO2022235747A1 (en) * | 2021-05-04 | 2022-11-10 | Texas Instruments Incorporated | Methods and apparatus for using scan operations to protect secure assets |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1443338A1 (en) * | 2003-02-03 | 2004-08-04 | STMicroelectronics Limited | Secure test arrangement |
CN1639663A (zh) * | 2002-03-18 | 2005-07-13 | 自由度半导体公司 | 集成电路保护及其方法 |
CN1661385A (zh) * | 2004-02-26 | 2005-08-31 | 联想(北京)有限公司 | 一种jtag模块及应用该模块的调试方法 |
CN1222909C (zh) * | 2002-05-30 | 2005-10-12 | 华为技术有限公司 | 一种flash芯片的加载方法和jtag控制器 |
-
2006
- 2006-05-24 CN CN200610050898A patent/CN101021885B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1639663A (zh) * | 2002-03-18 | 2005-07-13 | 自由度半导体公司 | 集成电路保护及其方法 |
CN1222909C (zh) * | 2002-05-30 | 2005-10-12 | 华为技术有限公司 | 一种flash芯片的加载方法和jtag控制器 |
EP1443338A1 (en) * | 2003-02-03 | 2004-08-04 | STMicroelectronics Limited | Secure test arrangement |
CN1661385A (zh) * | 2004-02-26 | 2005-08-31 | 联想(北京)有限公司 | 一种jtag模块及应用该模块的调试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101021885A (zh) | 2007-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101021885B (zh) | 一种基于jtag端口控制的保护芯片内部信息安全的方法 | |
Eldefrawy et al. | Smart: secure and minimal architecture for (establishing dynamic) root of trust. | |
Vasile et al. | Breaking all the things—A systematic survey of firmware extraction techniques for IoT devices | |
WO2018036559A1 (zh) | Jtag调试装置以及jtag调试方法 | |
CN104794393B (zh) | 一种嵌入式分区映像安全认证及内核可信引导方法及其设备 | |
CN100481104C (zh) | 用于保护电子设备中的通信端口的方法和装置 | |
CN106775716A (zh) | 一种基于度量机制的可信plc启动方法 | |
US20130346928A1 (en) | Method for protecting rtl ip core | |
CN108604274A (zh) | 安全片上系统 | |
CN101169809A (zh) | 一种安全的jtag连接认证系统及其认证方法 | |
CN102184365B (zh) | 基于SoC芯片外部数据安全存储系统及存取控制方法 | |
Khattri et al. | Hsdl: A security development lifecycle for hardware technologies | |
CN101788958A (zh) | 一种存储器数据保护的方法 | |
CN103748562A (zh) | 测试、验证和调试架构 | |
CN106484581A (zh) | 空间辐射环境下可编程soc器件单粒子翻转检测系统及方法 | |
CN100357751C (zh) | 一种jtag模块及应用该模块的调试方法 | |
CN101124768A (zh) | 使用受保护的非易失性存储器的系统和方法 | |
KR20110034631A (ko) | 테스트 동작모드 동안 집적회로 상의 디지털 정보를 보호하기 위한 장치 및 방법 | |
EP2608102A1 (en) | Appparatus for protecting against external attack for processor based on arm core and method using the same | |
CN105138903A (zh) | 一种基于ret指令与jmp指令的rop攻击检测方法 | |
CN101978339A (zh) | 用于硬件重置保护的方法和装置 | |
CN102479123A (zh) | 卡片操作系统的测试系统及测试方法 | |
CN103023647B (zh) | 一种增强二次雷达fpga安全性的方法 | |
Malik et al. | Specification and modeling for systems-on-chip security verification | |
EP4318284A1 (en) | Secure boot device and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP03 | Change of name, title or address |
Address after: Hangzhou City, Zhejiang province Yuhang District 311121 West Street Wuchang No. 998 Building 9 East Patentee after: HANGZHOU SYNODATA SECURITY TECHNOLOGY CO., LTD. Address before: 310012 room 17, building 1, 103 staff Road, Hangzhou, Zhejiang, Xihu District Patentee before: Hangzhou Shengyuan Chip Technique Co., Ltd. |