欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 基于JTAG接口的安全认证方法及系统独创技术15369字

基于JTAG接口的安全认证方法及系统

2021-03-20 13:06:02

基于JTAG接口的安全认证方法及系统

  【技术领域

  本发明属于芯片调试技术领域,尤其涉及一种基于JTAG接口的安全认证方法及系统。

  【背景技术

  JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试。JTAG调试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别调试。然而这种调试体系存在重大的安全问题,攻击者可通过该JTAG接口下载恶意代码到芯片内部的CPU中执行,从而窃取芯片内部包括密钥在内的敏感信息。

  目前常用的解决方式是在产品出货前,通过逻辑或者物理的方法一次性断开芯片内部的JTAG电路与I/O的连接,例如采用OTP(One Time Programable,一次性可编程)存储器控制I/O与JTAG电路的通断,但是这种方法不具有可逆性,对于返修的芯片产品无法重新连通JTAG电路,严重功能修复。另外,还有一个方法是通过MTP(Multiple TimeProgramable,可多次编程)存储器控制I/O与JTAG电路的通断,可进行有限多次的打开或关闭JTAG,但操作繁琐,成本较高,无法有效保证产品的安全性。

  鉴于此,实有必要提供一种基于JTAG接口的安全认证方法及系统以克服上述缺陷。

  【发明内容

  本发明提出一种基于JTAG接口的安全认证方法及系统,在打开JTAG之前进行安全认证,有效保证芯片的安全性,且能够防止攻击者破解。

  为了实现上述目的,本发明提供一种基于JTAG接口的安全认证方法,应用于包括有主机端和芯片端的安全认证系统中,其中,所述芯片端包括认证模块和JTAG模块,所述JTAG模块在与所述主机端连通后开启所述芯片端的调试功能;所述安全认证方法包括以下步骤:

  所述认证模块与所述主机端连通并向所述主机端发送认证请求;

  所述主机端根据所述认证请求接收用户输入的密钥信息并发送至所述认证模块;

  所述认证模块对所述密钥信息进行解密并认证,若认证通过,则断开所述认证模块与所述主机端的连接并切换所述JTAG模块与所述主机端连通。

  在一个优选实施方式中,所述认证模块中预先储存有公钥的哈希值,所述认证请求中携带有所述芯片端的唯一标识码,所述用户输入的密钥信息包括用户的公钥及采用非对称加密算法通过用户的私钥加密所述唯一标识码得到的密文。

  在一个优选实施方式中,所述认证模块对所述密钥信息进行解密并认证包括:

  所述认证模块对所述用户的公钥进行哈希运算得到运算结果;

  所述认证模块将所述运算结果与存储的哈希值进行对比,若一致,则使用所述用户的公钥解密所述密文得到明文;

  所述认证模块将所述明文与所述唯一标识码进行对比,若相同,则认证通过。

  在一个优选实施方式中,所述认证模块在所述安全认证系统上电时默认与所述主机端连通。

  在一个优选实施方式中,所述JTAG模块在所述安全认证系统断电时断开与所述主机端的连接。

  在一个优选实施方式中,所述唯一标识码为所述芯片端的序列号。

  为了实现上述目的,本发明还提供一种基于JTAG接口的安全认证系统,包括主机端和芯片端;所述芯片端包括认证模块和JTAG模块,所述JTAG模块用于在与所述主机端连通后开启所述芯片端的调试功能;所述认证模块用于与所述主机端连通并向所述主机端发送认证请求;所述主机端用于根据所述认证请求接收用户输入的密钥信息并发送至所述认证模块;所述认证模块还用于对所述密钥信息进行解密并认证,若认证通过,则断开所述认证模块与所述主机端的连接并切换所述JTAG模块与所述主机端连通。

  在一个优选实施方式中,所述认证模块用于预先储存公钥的哈希值,所述认证请求中携带有所述芯片端的唯一标识码,所述用户输入的密钥信息包括用户的公钥及采用非对称加密算法通过用户的私钥加密所述唯一标识码得到的密文。

  在一个优选实施方式中,所述认证模块具体用于:

  对所述用户的公钥进行哈希运算得到运算结果;

  将所述运算结果与存储的哈希值进行对比,若一致,则使用所述用户的公钥解密所述密文得到明文;

  将所述明文与所述唯一标识码进行对比,若相同,则认证通过。

  在一个优选实施方式中,所述认证模块用于在所述安全认证系统上电时默认与所述主机端连通;所述JTAG模块用于在所述安全认证系统断电时断开与所述主机端的连接。

  与现有技术相比,本发明的有益效果在于:在芯片调试前通过认证模块进行安全认证,认证通过后才开启调试功能,有效保证了芯片内部的安全性,且能够防止攻击者破解。

  为使发明的上述目的、特征和优点能更明显易懂,下文特举本发明较佳实施例,并配合所附附图,作详细说明如下。

  【附图说明

  图1为本发明实施例中基于JTAG接口的安全认证系统的结构示意图;

  图2为图1所示的芯片端的结构示意图;

  图3为本发明实施例提供的基于JTAG接口的安全认证系统的交互过程示意图;

  图4为本发明实施例中基于JTAG接口的安全认证方法的流程示意图。

  【具体实施方式

  为了使本发明的目的、技术方案和有益技术效果更加清晰明白,以下结合附图和具体实施方式,对本发明进行进一步详细说明。应当理解的是,本说明书中描述的具体实施方式仅仅是为了解释本发明,并不是为了限定本发明。

  请参阅图1及图2,本发明提供一种基于JTAG接口的安全认证系统100,包括主机端10和芯片端20,芯片端20包括认证模块21和JTAG模块22,JTAG模块22用于在与主机端10连通后开启芯片端20的调试功能。

  安全认证系统100还包括协议转换器30,主机端10通过协议转换器30来连接芯片端20实现不同协议的转换。通常在认证通过后系统进行调试,主机端10用于运行调试软件,芯片端20具体为SoC(System-on-a-Chip,片上系统)芯片,芯片端20运行被调试程序,主机端10利用协议转换器30向芯片端20的JTAG模块22发送调试命令,同时读取JTAG模块22返回的调试信息,通过JTAG模块22访问芯片端20的CPU,实现程序在芯片端20的实时调试。需要说明的是,本发明的认证过程可使用调试工具完成,例如ARM DStream套件,在上电时,认证模块21可模拟成一个简单版的、调试软件可识别的处理器,利用对主机端10暴露的地址空间完成认证过程;也即是,主机端10通过该调试软件完成认证过程,在认证通过后继续进行调试,无需添加其他硬件就可实现认证,具有较高的兼容性。

  请一并参阅图3,认证模块21用于与主机端10连通并向主机端10发送认证请求。主机端10用于根据认证请求接收用户输入的密钥信息并发送至认证模块21。具体的,调试软件包括显示内存空间,主体端10通过调试软件的显示内存空间获取认证请求。认证模块21还用于对密钥信息进行解密并认证,若认证通过,则断开认证模块21与主机端10的连接并切换JTAG模块22与主机端10连通。

  本实施例中,认证模块21用于预先储存公钥的哈希值,上述的认证请求中携带有芯片端20的唯一标识码。认证模块21储存公钥的哈希值,可减小占用的存储空间;上述的唯一标识码为芯片端20的序列号。在其他的实施方式中,认证模块21也可用于预先储存完整的公钥。

  进一步的,用户输入的密钥信息包括用户的公钥及采用非对称加密算法通过用户的私钥加密唯一标识码得到的密文。可以理解,主机端10接收到认证请求后获得唯一标识码,用户通过自己持有的私钥采用非对称加密算法对唯一标识码进行加密,然后在主机端10的调试软件的显示内存空间上写入公钥和密文,并通过主机端10发送至认证模块21。

  具体的,认证模块21用于对用户的公钥进行哈希运算得到运算结果。其中,用户的公钥是用户自己持有的,上述的哈希运算可以包括,但不局限于SHA256算法及SHA512算法,具体此处不做限定。

  认证模块21用于将运算结果与存储的哈希值进行对比,若一致,则使用用户的公钥解密密文得到明文;否则,认证失败。认证失败后由主机端10显示失败信息以提示用户重新输入正确的密钥信息。其中,在运算结果与存储的哈希值一致时,则用户的公钥是正确的,而私钥是对外界保密的,通过私钥加密的相关信息,只能通过其对应的公钥来进行解密,安全性较高,公钥是可以公开传送的,甚至不担心丢失,因为即便公钥被窃取,攻击者还是无法将密文解密为明文。

  需要说明的是,上述的公钥与私钥是通过非对称加密算法得到,也就是说,私钥与公钥是配对存在的,具体的,在本发明实施例中,私钥可以是任一字符串,示意性的,可以是一个256位的随机数作为私钥,而公钥则是利用非对称加密算法生成的私钥对应的公钥,具体此处不做限定。本发明实施例中,上述非对称加密算法可以包括,但不局限于ed25519算法、RSA算法、DSA算法、Diffie-Hellman以及ECC算法,具体本发明实施例也不做限定。

  认证模块21还用于将明文与唯一标识码进行对比,若相同,则认证通过;否则,认证失败。认证失败后由主机端10显示失败信息以提示用户重新输入正确的密钥信息或者由认证模块21发送认证请求重新开始认证过程。

  优选的,认证模块21用于在安全认证系统100上电时默认与主机端10连通。也即是,安全认证系统100每次上电时需要进行一次认证,而芯片端20重启时则不需要重新认证,方便调试。进一步的,JTAG模块22用于在安全认证系统100断电时断开与主机端10的连接,也即是,在下次调试前需要重新进行认证,保证芯片内部的安全性。

  请一并参阅图4,本发明提供一种基于JTAG接口的安全认证方法,应用于包括有主机端10和芯片端20的安全认证系统100中,其中,芯片端20包括认证模块21和JTAG模块22,JTAG模块22用于在与主机端10连通后开启芯片端20的调试功能。该安全认证方法包括以下步骤:

  步骤S401,认证模块21与主机端10连通并向主机端10发送认证请求。

  步骤S402,主机端10根据认证请求接收用户输入的密钥信息并发送至认证模块21。

  步骤S403,认证模块21对密钥信息进行解密并认证,若认证通过,则断开认证模块21与主机端10的连接并切换JTAG模块22与主机端10连通。

  具体的,认证模块21中预先储存有公钥的哈希值,认证请求中携带有芯片端20的唯一标识码,用户输入的密钥信息包括用户的公钥及采用非对称加密算法通过用户的私钥加密唯一标识码得到的密文。

  优选的,认证模块21对密钥信息进行解密并认证,进一步包括以下子步骤:

  步骤S4031,认证模块21对用户的公钥进行哈希运算得到运算结果。

  步骤S4032,认证模块21将运算结果与存储的哈希值进行对比,若一致,则使用用户的公钥解密密文得到明文。

  步骤S4033,认证模块21将明文与唯一标识码进行对比,若相同,则认证通过。

  进一步的,认证模块21用于在安全认证系统100上电时默认与主机端10连通。JTAG模块22用于在安全认证系统100断电时断开与主机端10的连接。

  应当说明的是,上述实施例中提供的安全认证方法和安全认证系统100均是基于相同的发明构思。因此,安全认证方法中各个具体实施例的步骤均可以参照前述安全认证系统100实施例,在此不再赘述。

  可见,本发明解决了芯片调试体系的安全性,在芯片调试前通过认证模块21进行安全认证,认证通过后才开启调试功能,认证模块21未存储任何敏感密钥,防止了攻击者攻击芯片内部的可能性及成功率。

  本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

  本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

  这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

  这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

  以上仅为本发明的较佳实施例而已,是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施局限于这些说明。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围内。

《基于JTAG接口的安全认证方法及系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)