本发明涉及芯片安全技术领域。
背景技术:
嵌入式芯片是指具有rom和ram存储器,有控制功能的芯片,例如:soc(系统芯片)。随着大规模集成电路设计水平的提高(基于soc的产品受到市场青睐。jtag(jointtestactiongroup,联合测试行为组织)是一种国际标准测试协议,主要用于芯片内部测试(boundaryscan(边界扫描)。传统的软件开发调试多使用jtag工具加载软件程序,借助强大的调试软件工具,能够有效地提高软件开发效率。
随着芯片集成度的提高,开放性与安全性之间的矛盾越来越突出。一方面,基于ieee1149.1规范的jtag边界扫描接口因其开放性和方便性,被很多芯片采用作为标准的开发测试接口(比如arm将jtag作为标准配置)。另一方面,系统芯片因为将所有的软硬件资源集成在单一芯片内,便于对芯片内部的各种资源进行观察、分析和测试,虽然给芯片的开发调试带来了方便,但同时也给芯片本身带来了危险,如何保护芯片内部的代码(程序)、参数、存储在芯片内的密钥等关键信息成了亟待解决的问题。再则,用户也越来越注重个人隐私的保护,对芯片的安全性提出了更高的要求。
当前,考虑到芯片安全,现有技术采用的措施通常为:
方式一,去掉jtag调试端口,以软件仿真器代替芯片的调试工作(不依赖jtag环境),其牺牲了通过边界扫描对芯片进行测试的手段,给软件开发和调试带来不便,并且,也不能有效阻拦片外软件的攻击。
方式二,采用可熔断的prom(programmableread)onlymemory,可编程只读存储器)位,代码写入片内后,利用外部高压将该prom位熔断,切断通过端口对芯片代码存储区的访问,其缺陷在于熔断过程不可逆,熔断后芯片不能恢复,不适用于系统复杂又昂贵的soc。
站在芯片安全角度,如何提供一种高效、不依赖jtag环境的芯片软件下载启动方案是当前亟待解决的技术问题。
技术实现要素:
本发明的目的在于:克服现有技术的不足,提供了一种芯片的安全下载启动装置、系统及方法。本发明提供的下载启动方案,在芯片中固化引导程序,下载和启动的文件均需要进行安全校验,提高芯片的启动安全性;进一步,在下载和启动过程中使用分级下载和分级启动技术,显著地提高了芯片安全性级别,并节省了芯片经济成本。
为实现上述目标,本发明提供了如下技术方案:
一种芯片的安全下载启动装置,包括签名模块、安全鉴权模块、下载模块和启动模块;
所述签名模块,用以对文件进行安全签名得到签名文件;
所述安全鉴权模块,用以获取芯片只读存储器区域固化的引导程序,并通过所述引导程序获取密钥对签名文件进行解签,对待下载或待启动的文件进行鉴权以确认合法性;
所述下载模块,与上位机交互,用以从上位机中获取启动所需的硬件初始化程序以及系统镜像文件,将所有文件经过前述签名模块的签名操作,再经安全鉴权模块确认文件合法后下载到下位机嵌入式平台搭载的存储介质中;
所述启动模块,用以复位芯片,并控制芯片重新从前述引导程序开始,依次逐级执行引导程序加载阶段、次级程序加载阶段、启动程序加载阶段和系统镜像文件加载阶段;以及在执行每个加载阶段之前,通过前述安全鉴权模块确认加载文件的合法性。
进一步(下载模块下载文件时,依次逐级执行引导程序下载阶段、初级下载阶段、次级下载阶段和网络下载阶段,在执行每个下载阶段之前,通过前述安全鉴权模块确认下载文件的合法性,下载完成后执行复位。
进一步(所述下载模块通过串口和网口与上位机程序进行交互。
进一步(所述下载模块在与上位机程序交互进行文件下载时,分为握手、连接、启动、传输、结束和执行六个状态进程,所述芯片固化引导程序按照上述状态进程与上位机程序交互进行文件下载。
进一步(所述签名文件包括校验头、下载文件和鉴权结构。
本发明还提供了一种芯片的安全下载启动系统,包括上位机软件系统和下位机嵌入式平台系统;
所述上位机软件系统存储有启动所需的硬件初始化程序以及系统镜像文件;
所述下位机嵌入式平台系统,包括芯片,存储介质,串口,网口和前述的装置,所述芯片上固化有引导程序。
进一步(所述下位机嵌入式平台系统通过串口和网口与上位机程序进行交互。
进一步(所述签名文件包括校验头、下载文件和鉴权结构。
本发明还提供了一种实施前述装置的方法,包括步骤;
在芯片只读存储器区域固化引导程序,芯片上电后,自动运行引导程序;
下位机嵌入式平台与上位机程序交互,从上位机中获取启动所需的硬件初始化程序以及系统镜像文件,将所有文件经过签名模块的签名操作,再经安全鉴权模块确认文件合法后下载到下位机嵌入式平台搭载的存储介质中;
启动模块重新复位芯片,控制芯片从前述引导程序开始执行,依次逐级执行各级程序。
进一步(下载文件时执行分级下载,依次逐级执行引导程序下载阶段、初级下载阶段、次级下载阶段和网络下载阶段,在执行每个下载阶段之前,通过前述安全鉴权模块确认下载文件的合法性,下载完成后执行复位。
本发明由于采用以上技术方案,与现有技术相比,作为举例,具有以下的优点和积极效果:所述下载启动方案,在芯片中固化引导程序,下载和启动的文件均需要进行安全校验,提高芯片的启动安全性;进一步,在下载和启动过程中使用分级下载和分级启动技术,显著地提高了芯片安全性级别,并节省了芯片经济成本。
附图说明
图1为本发明实施例提供的系统的模块结构图。
图2为本发明实施例提供的下载交互协议进程示意图。
图3为本发明实施例提供的分级下载流程图。
图4为本发明实施例提供的分级启动流程图。
图5为本发明实施例提供的签名文件的结构示意图。
具体实施方式
以下结合附图和具体实施例对本发明公开的芯片的安全下载启动装置、系统及方法作进一步详细说明。应当注意的是,下述实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。在下述实施例的附图中,各附图所出现的相同标号代表相同的特征或者部件,可应用于不同实施例中。因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
需说明的是,本说明书所附图中所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响发明所能产生的功效及所能达成的目的下,均应落在发明所揭示的技术内容所能涵盖的范围内。本发明的优选实施方式的范围包括另外的实现,其中可以不按所述的或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
实施例
参见图1所示,公开了一种芯片的安全下载启动系统,所述系统包括上位机软件系统和下位机嵌入式平台系统。
上位机软件系统中存储有启动所需的硬件初始化程序以及系统镜像文件。
所述上位机软件系统(简称上位机),是指可以发出操控命令的计算机,其可以是pc(personalcomputer个人计算机),主机(hostcomputer),主计算机(mastercomputer)或上位机(uppercomputer)。本实施例中,所述上位机为pc端。
所述下位机嵌入式平台系统(简称下位机嵌入式平台),包括芯片,存储介质,串口和网口。本实施例中,在芯片只读存储器(rom)区域固化引导程序(romcode),芯片上电后,自动运行前述引导程序,通过串口和网口与上位机pc端运行的程序(软件)进行交互,从而将经过安全签名的待下载的文件下载到下位机嵌入式平台的存储介质中。所述待下载的文件为二进制文件。
下载阶段完成后,启动所需的镜像文件已经被烧写入前述存储介质中,控制芯片进入启动阶段:重新复位芯片后,芯片从引导程序(romcode)开始执行,逐级加载各级程序。
在下载、启动阶段,芯片中的引导程序会对下载、启动的镜像文件做鉴权,非法的二进制文件将不会被下载、启动。本实施例中,由于引导程序(romcode)固化在芯片中,能够从根源上阻止非法攻击和非法破解。
具体实施时,在所述嵌入式系统中,可以对应于芯片设置安全下载启动装置。所述安全下载启动装置包括签名模块、安全鉴权模块、下载模块和启动模块。
所述签名模块,用以对文件进行安全签名得到签名文件。
文件签名即对文件的数字签名,是一种加密技术。加密算法可以采用对称加密,或者采用非对称加密,或者采用对称加密和非对称加密的组合。
所述安全鉴权模块,用以获取芯片只读存储器区域固化的引导程序,并通过所述引导程序获取密钥对签名文件进行解签,对待下载或待启动的文件进行鉴权以确认合法性。
所述鉴权,即进行文件合法性验证,以确认文件合法性。
解签时,通过引导程序获取密钥对签名文件进行解签。以aes为对称加密算法为例,加密和解密使用同样的密钥,加解密算法可以通过专用的加密引擎(ce)来实现。
所述下载模块,与上位机交互,用以从上位机中获取启动所需的硬件初始化程序以及系统镜像文件,并将所有文件经过前述签名模块的签名操作,再经安全鉴权模块确认文件合法后,下载到下位机嵌入式平台搭载的存储介质中,并将镜像文件烧写入存储介质。
所述芯片在与上位机程序交互下载程序的过程中,需要满足一定的协议格式。本实施例中,参见图2所示,所述下载模块在与上位机程序交互进行文件下载时,分为握手、连接、启动、传输、结束和执行六个状态进程,所述芯片固化引导程序(romcode)按照上述协议状态进程与上位机应用程序交互,进行文件下载。
本实施例中,优选的,所述下载模块通过串口和网口与上位机程序进行交互。串口结合网口的下载方式,兼顾芯片的可靠性和下载效率。
同时,下载模块下载文件时,采用分级下载方式。参见图3所示,分级下载流程包括:依次逐级执行引导程序(romcode)下载阶段、初级下载阶段(primarydownloadperiod)、次级下载阶段(secondarydownloadperiod)和网络下载阶段,下载完成后执行芯片复位操作。对于每一级的下载阶段;在执行每个下载阶段之前,均需要通过前述安全鉴权模块确认下载文件的合法性。如此,通过多级下载方式,可有效地提高芯片安全性级别和节省芯片经济成本。
所述启动模块,用以复位芯片,并控制芯片重新从前述引导程序开始,依次逐级执行引导程序加载阶段、次级程序加载阶段、启动程序加载阶段和系统镜像文件加载阶段;以及在执行每个加载阶段之前,通过前述安全鉴权模块确认加载文件的合法性。
下载阶段完成后,启动所需的镜像文件已经被烧写入存储介质中,控制芯片进入启动阶段:重新复位芯片后,进入分级启动流程。参见图4所示,分级启动流程包括:重新从前述引导程序(romcode)开始,依次逐级执行引导程序(romcode)加载阶段、次级程序加载(secondaryprogramloader)阶段、启动程序加载(bootloader)阶段和系统镜像文件加载阶段。在执行每个加载阶段之前,均需要通过前述安全鉴权模块确认加载文件的合法性。如此,通过多级启动方式,可有效地提高芯片安全性级别。
本实施例中,进行文件签名时,作为举例而非限制,可以通过aes对称加密下载文件进行加密生成签名文件,或者通过rsa非对称加密下载文件生成签名文件。参见图5所示,生成的签名文件可以包括校验头(header,或称文件头),下载文件(image,或称待执行文件)和鉴权结构(verify,或称签名信息)。
本实施例提供的上述方案,提供了严格的安全校验机制,下载和启动的文件均需要做安全签名,未经签名的文件无法被下载、启动,显著提高了芯片的下载启动安全性。
本发明的另一实施例,还提供了一种实施前述装置的方法,包括如下步骤:
步骤100,在芯片只读存储器区域固化引导程序,芯片上电后,自动运行引导程序。
步骤200,下位机嵌入式平台与上位机程序交互,从上位机中获取启动所需的硬件初始化程序以及系统镜像文件,将所有文件经过签名模块的签名操作,再经安全鉴权模块确认文件合法后下载到下位机嵌入式平台搭载的存储介质中。
上位机中存储有启动所需的硬件初始化程序以及系统镜像文件。
所述上位机,是指可以发出操控命令的计算机,其可以是pc(personalcomputer个人计算机),主机(hostcomputer),主计算机(mastercomputer)或上位机(uppercomputer)。本实施例中,所述上位机为pc端。
所述下位机嵌入式平台,包括芯片,存储介质,串口和网口。本实施例中,在芯片只读存储器(rom)区域固化引导程序(romcode),芯片上电后,自动运行前述引导程序,通过串口和网口与上位机pc端运行的程序(软件)进行交互,从而将经过安全签名的待下载的文件下载到下位机嵌入式平台的存储介质中。所述待下载的文件为二进制文件。
优选的,下载文件时执行分级下载,依次逐级执行引导程序下载阶段、初级下载阶段、次级下载阶段和网络下载阶段,在执行每个下载阶段之前,通过前述安全鉴权模块确认下载文件的合法性,下载完成后执行复位。
步骤300,启动模块重新复位芯片,控制芯片从前述引导程序开始执行,依次逐级执行各级程序。
下载阶段完成后,启动所需的镜像文件已经被烧写入前述存储介质中,控制芯片进入启动阶段:重新复位芯片后,芯片从引导程序(romcode)开始执行,逐级加载各级程序。
逐级加载各级程序的流程包括:重新从前述引导程序(romcode)开始,依次逐级执行引导程序(romcode)加载阶段、次级程序加载(secondaryprogramloader)阶段、启动程序加载(bootloader)阶段和系统镜像文件加载阶段。在执行每个加载阶段之前,均需要通过前述安全鉴权模块确认加载文件的合法性。如此,通过多级启动方式,可有效地提高芯片安全性级别。
在下载、启动阶段,芯片中的引导程序会对下载、启动的镜像文件做鉴权,非法的二进制文件将不会被下载、启动。同时,由于引导程序(romcode)固化在芯片中,能够从根源上阻止非法攻击和非法破解。进一步,使用分级下载和分级启动技术,显著地提高了芯片安全性级别,并节省了芯片经济成本。
其它技术特征参见在前实施例的描述,在此不再赘述。
需要说明的是,本发明中,设备或装置还可以包括通常在计算系统中找到的其它组件,诸如存储在存储器中并由处理器执行的操作系统、队列管理器、设备驱动程序、数据库驱动程序或一个或多个网络协议等。
在上面的描述中,本发明的公开内容并不旨在将其自身限于这些方面。而是,在本公开内容的目标保护范围内,各组件可以以任意数目选择性地且操作性地进行合并。另外,像“包括”、“囊括”以及“具有”的术语应当默认被解释为包括性的或开放性的,而不是排他性的或封闭性,除非其被明确限定为相反的含义。所有技术、科技或其他方面的术语都符合本领域技术人员所理解的含义,除非其被限定为相反的含义。在词典里找到的公共术语应当在相关技术文档的背景下不被太理想化或太不实际地解释,除非本公开内容明确将其限定成那样。本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。