本发明是关于嵌入式技术,特别是关于一种安全芯片的升级方法、装置及安全芯片。
背景技术:
随着嵌入式技术的普及,应用领域逐步扩大,嵌入式系统应用作为一种新兴电子技术渗透到各种传统产业的,例如信息家电、仪器仪表、工业控制、航空航天技术。
安全芯片作为一种嵌入式安全单元,在智能终端中起到至关重要的作用。当智能终端等设备的业务流程发生变化、增加新业务时,当新的信息安全技术、新密码算法、新攻击手段、新安全架构出现时,与之相适应的安全芯片需要具备在线升级能力,及时适配新需求。
目前,智能终端业务处理能力不断提高,数据交互需求量不断增大,安全芯片操作系统的工作效率受到了极大的挑战。现有技术中的升级方式基本为iap升级方式,具体包括:判断是否接收到升级包,若接收到升级包则进行简单的数据校验,若校验通过则进行自动下载,下载完成后根据升级包进行安装。
基于此,本申请的发明人发现,现有的升级方式在升级过程中,不响应除了升级命令外的任何操作,导致工作效率低。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
技术实现要素:
本发明的目的在于提供一种安全芯片的升级方法、装置及安全芯片,其能够提高安全芯片的工作效率。
为实现上述目的,本发明提供了一种安全芯片的升级方法,该安全芯片具有第一内存区和第二内存区,所述升级方法包括:安全芯片接收外部设备发送的第一指令,其中所述第一指令包括第一任务类型;判断所述安全芯片的状态;若所述安全芯片正在所述第二内存区执行第二指令,则分别获取与第二指令对应的第二任务类型、第二指令的优先级以及第一指令的优先级;若第一指令的优先级高于第二指令的优先级,则安全芯片中断第二指令的执行并在所述第一内存区执行第一指令,其中,所述第一内存区和第二内存区用于执行不同的任务类型,所述第一指令或第二指令为所述安全芯片的升级指令。
在一优选的实施方式中,在所述判断所述安全芯片的状态之前,还包括:判断所述第一指令的类型;
若所述第一指令的类型为升级指令,则对外部设备进行身份认证;若身份认证成功,则判断所述安全芯片的状态。
在一优选的实施方式中,所述第一指令为升级指令,所述第一指令包括第一数据;所述判断所述安全芯片的状态之后,还包括:若所述安全芯片的状态为空闲状态,则将所述升级指令中的第一数据存储在第一内存区,其中,所述第一内存区为预设的用于执行所述升级指令的内存区。
在一优选的实施方式中,所述在所述第一内存区执行第一指令包括:将所述升级指令中的第一数据存储在第一内存区。
在一优选的实施方式中,在将所述升级指令中的第一数据存储在第一内存区之后,还包括:检查第一数据的完整性;若完整性满足要求,则根据第一数据对安全芯片进行升级。
在一优选的实施方式中,所述第二指令为业务处理指令,所述升级方法还包括:安全芯片在第二内存区执行所述业务处理指令。
在一优选的实施方式中,在分别获取与第二指令对应的第二任务类型、第二指令的优先级以及第一指令的优先级之后,还包括:若所述第一指令的优先级的低于第二指令的优先级,则将与第一指令相关的数据进行缓存,继续执行第二指令。
在一优选的实施方式中,所述第一指令为业务处理指令,第二指令为升级指令,所述业务处理指令的优先级高于所述升级指令;若第一指令的优先级高于第二指令的优先级,则安全芯片中断第二指令的执行并在所述第一内存区执行第一指令包括:将与升级指令相关的数据进行缓存;获取与业务处理指令对应的第二数据,并在第二内存区对所述第二数据进行处理;在所述业务处理指令执行结束后,释放第二内存区;获取缓存的与升级指令对应的数据,并在第一内存区对与升级指令对应的数据进行处理。
在一优选的实施方式中,所述在第一内存区对与升级指令对应的数据进行处理之后,还包括:在所述升级指令执行完成后,释放第一内存区。
为实现上述目的,本发明还提供了一种安全芯片的升级装置,该安全芯片具有第一内存区和第二内存区,所述升级装置包括:接收模块,用于接收外部设备发送的第一指令,其中所述第一指令包括第一任务类型;判断模块,用于判断所述安全芯片的状态;执行模块,用于在所述判断模块判断所述安全芯片正在所述第二内存区执行第二指令时,分别获取与第二指令对应的第二任务类型、第二指令的优先级以及第一指令的优先级;在第一指令的优先级高于第二指令的优先级时,安全芯片中断第二指令的执行并在所述第一内存区执行第一指令,其中,所述第一内存区和第二内存区用于执行不同的任务类型,所述第一指令或第二指令为所述安全芯片的升级指令。
为实现上述目的,本发明还提供了一种安全芯片,所述安全芯片包括上述的安全芯片的升级装置。
与现有技术相比,根据本发明的安全芯片的升级方法、装置及安全芯片,通过对安全芯片存储区合理划分,使得两个内存区可以交替处于工作状态,安全芯片在执行任务的过程中,接收到优先级别高的任务可以立即响应,执行结束后再恢复当前执行的任务,可以提高安全芯片的工作效率。满足数据传输安全性高、安全芯片工作量大等需求。
附图说明
图1是根据本发明一实施方式的安全芯片的内存分区结构示意图;
图2是根据本发明一实施方式的安全芯片的升级方法的流程图;
图3是根据本发明一实施方式的安全芯片的内存区域使用情况的结构示意图;
图4是根据本发明一实施方式的安全芯片的升级装置的结构示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
目前在对应用区进行升级操作时,通常在终端设备内用于存储软件镜像的非易失存储器内,划分出主、备分区。主、备分区均采用只读文件系统,当开始进行软件模块升级时,先将主分区内的软件镜像全部读取并写入到备分区中,获取软件模块升级包,用软件模块升级包在备分区内对软件镜像进行软件模块升级操作,完成软件模块升级操作后,将主、备分区进行切换,重启终端设备。在升级之前进行拷贝操作,当待升级程序较大时会耗费一定的时间。本申请中,两个程序存储区交替使用,在升级的时候不必将原程序进行备份,升级成功后,自动设置程序区的有效性,下次运行则执行升级后的软件功能。
或者,将升级包存储在需升级的外部存储器中,系统上电后,先判断运行内部或者外部存储器,然后进入相应的流程。将升级包存储在需升级的外部存储器中,而不是对设备的存储区进行合理划分,造成资源利用率不高。本申请对嵌入式设备存储区合理划分,在处理升级数据时,无需调用外部存储器,经过空间检查和数据合法性检查,直接将升级数据存储到内部存储区,完成升级。
本方案提出一种安全芯片操作系统在线升级的实现方案,引入了多种安全防护措施,增加了方案的可靠性、安全性。同时,安全芯片的内存区合理划分及任务调度机制能够满足当前智能终端业务处理能力不断提高的需求,使得安全芯片操作系统升级功能和原有的业务处理功能可以动态切换,降低升级操作对智能终端日常工作的影响,提高安全芯片操作系统升级效率。
本申请所述方法中主要包含两类任务,一是操作系统升级,二是原有业务应用处理,将后者的优先级设置为更高。采用基于优先级抢占式调度机制。
基于优先级抢占式调度:如果操作系统正在执行升级任务,发现就绪队列中有比当前运行任务更高的优先级业务应用处理任务,就把当前运行任务置于就绪队列中,调入高优先级任务运行。采用这种调度方式,可以保证重要的突发事件及时得到处理。
如图1所示,其为根据本发明优选实施方式的安全芯片的内存分区结构示意图,本实施例中将安全芯片存储空间划分多个区块,具体的,可以划分为四个部分:boot区、管理应用区、第一内存区、第二内存区、数据区。boot区用于存储实现安全芯片基本功能的程序代码。管理应用区用于实现第一内存区1和第二内存区2的设置与释放。
如图2所示,其为根据本发明优选实施方式的安全芯片的升级方法的流程图,该安全芯片具有第一内存区和第二内存区。所述升级方法包括:步骤s1-s4。
在步骤s1中,安全芯片接收外部设备发送的第一指令,其中所述第一指令包括第一任务类型;其中,外部设备可以为下载服务器。
在步骤s1之后,还可以包括:判断外部设备发送的第一指令的类型。若所述第一指令的类型为升级指令,则对外部设备进行身份认证。其中,若身份认证成功,则执行步骤s2,判断所述安全芯片的状态。
具体的,身份认证过程可以包括:外部设备与安全芯片共享身份认证密钥,在需要进行身份认证时,首先安全芯片产生随机因子,外部设备向安全芯片获取随机因子,之后外部设备使用该密钥对获取的随机因子进行加密,将加密后的随机因子传输给安全芯片。安全芯片使用共享身份认证密钥对产生的随机因子进行加密,并将计算得到的结果与外部设备传输的加密后的随机因子进行对比,若相同则认证成功。该方法在鉴别身份的同时,由于加入随机因子可以抵抗重放攻击。
在步骤s2中,判断所述安全芯片的状态。
具体的,安全芯片的状态可以是正在执行其他指令,也可以是空闲状态,即没有执行其他指令的状态。
在步骤s3中,若所述安全芯片正在所述第二内存区执行第二指令,则分别获取与第二指令对应的第二任务类型、第二指令的优先级以及第一指令的优先级。
在步骤s4中,若第一指令的优先级高于第二指令的优先级,则安全芯片中断第二指令的执行并在所述第一内存区执行第一指令,其中,所述第一内存区和第二内存区用于执行不同的任务类型,所述第一指令或第二指令为所述安全芯片的升级指令。
具体的,本实施例中的执行主体可以为管理应用区。可以设置第一指令与第二指令的优先级。
管理应用区中设置有任务控制模块(英文全称:taskcontrolblock,英文缩写:tcb)。步骤s4具体通过以下方式进行执行:若第一指令的优先级高于第二指令的优先级,则首先保存当前正在执行的第二指令的上下文及所有相关信息到tcb中。然后,将需要第一指令的上下文从该任务的堆栈中装入操作系统的寄存器,并开始运行。待高第一指令执行结束后,保存其上下文并恢复上一个任务的任务控制模块内容,继续运行。
任务控制模块一般存储如下信息:任务名称、任务执行的起始地址、优先级、状态、上下文等信息。
由此,本实施例提供的安全芯片的升级方法,通过对安全芯片存储区合理划分,使得两个内存区可以交替处于工作状态,安全芯片在执行任务的过程中,接收到优先级别高的任务可以立即响应,执行结束后再恢复当前执行的任务,可以提高安全芯片的工作效率。满足数据传输安全性高、安全芯片工作量大等需求。
在一种实现方式中,第一指令为升级指令,第一指令包括第一数据。在此种情况下,若安全芯片的状态是正在执行第二指令,所述第二指令为业务处理指令,安全芯片在第二内存区执行所述业务处理指令。若升级指令的优先级高于业务处理指令,则中断业务处理指令的执行,优先执行升级指令。将所述升级指令中的第一数据存储在第一内存区,其中,所述第一内存区为预设的用于执行所述升级指令的内存区。
由此,本实施例提供的安全芯片的升级方法,在升级过程中,接收到业务处理请求,立即响应,然后继续进行升级,提高安全芯片的工作效率。满足数据传输安全性高、安全芯片工作量大等需求。
若所述第一指令的优先级的低于第二指令的优先级,也就是升级指令的优先级低于业务处理指令,则将与第一指令相关的数据进行缓存,继续执行第二指令。
在此种情况下,若所述安全芯片的状态为空闲状态,则将所述升级指令中的第一数据存储在第一内存区。
需要说明的是,将所述升级指令中的第一数据存储在第一内存区具体包括:首先对升级数据将要占用的内存空间进行合理性检查,具体可以通过判断第一数据所占空间与安全芯片中预留的内存的大小来实现,避免内存溢出等异常。若空间满足要求则判断数据的机密性是否符合要求,若满足则将解析后的数据进行存储,直到所有数据处理完毕,不满足机密性要求则异常结束。
进一步地,在将所述升级指令中的第一数据存储在第一内存区之后,还可以包括:检查第一数据的完整性;若完整性满足要求,则根据第一数据对安全芯片进行升级。由此,避免数据丢失和篡改等异常,满足要求则升级操作结束,否则异常结束。
在一种实现方式中,所述第一指令为业务处理指令,第二指令为升级指令,所述业务处理指令的优先级高于所述升级指令;
步骤s4可以包括:步骤s41-步骤s45。
在步骤s41中,若业务处理指令的优先级高于升级指令的优先级,则将与升级指令相关的数据进行缓存;
在步骤s42中,获取与业务处理指令对应的第二数据,并在第二内存区对所述第二数据进行处理;
在步骤s43中,在所述业务处理指令执行结束后,释放第二内存区;
在步骤s44中,获取缓存的与升级指令对应的数据,并在第一内存区对与升级指令对应的数据进行处理。
在步骤s45中,在所述升级指令执行完成后,释放第一内存区。
需要说明的是,本实施例中预设的第一指令在第一内存区执行,第二指令在第二内存区执行,第一指令和第二指令为不同的两个指令。可以根据需要对内存区进行更换选择,或释放后的重新选择。
以下对安全芯片的内存分区进行具体说明。请再次参阅图1,本实施例中将安全芯片的内存划分为五个部分:boot区、管理应用区、第一内存区、第二内存区、数据区。其中第一内存区和第二内存区大小相等。
系统上电或复位运行后,假设当前系统运行第一内存区中的与业务指令对应的程序,若此时系统升级指令,需要进行软件在线更新,那么管理应用区将升级指令对应的更新程序存入第二内存区。若系统更新完成后,管理应用区设置相应标志,系统下次启动运行时,将运行第二内存区中的程序;若下载更新过程中出现传输错误,且管理应用区并没有修改相关标志位,那么系统下次启动运行时,仍然执行第一内存区中的程序。管理应用区中的标志位对应第一内存区或第二内存区的选择。
如图3所示,其为根据本发明优选实施方式的安全芯片的内存区域使用情况的结构示意图,为了提高支持在线升级的安全芯片对各种异常情况的兼容性,以及减小升级操作对智能终端原有业务的影响。基本思想是在程序储存介质中,将安全芯片划分两个程序存储区。例如:第一内存区存储的是当前的与业务指令对应的程序,升级指令对应的更新程序下载到第二内存区,至少保留了当前程序的一个备份,当业务应用在线更新过程中出现数据丢失或其他异常时,仍有备份程序可以使用。如下图所示:
状态1为下载模式:程序从boot区开始执行,将管理应用和第一内存区cos1下载至用户程序区。此时用户程序区的其余部分和用户数据区无有效数据。
状态2为正常模式:安全芯片重新上电复位后进入正常模式,程序从管理应用区开始执行,此时cos1生效。管理应用区处理所有过程的数据收发,并进行任务调度。对于原有业务功能的指令跳转至cos1执行相应指令处理,当有升级任务时,将升级数据下载至备份的用户程序区,待下载完毕并经过校验后,即在安全芯片内存中增加了cos2,此时在管理应用区置第二内存区cos2生效的标志。
状态3为升级后:管理应用查询标志,发现cos2已经完整下载并通过校验,对于此后的业务指令,将分发至cos2进行处理,此时cos1将失效。如果此时还有升级的需求时,需将原始cos1区域擦除后,作为新的待升级区使用。以后用户程序区则交替运行。
如图4所示,其为根据本发明优选实施方式的安全芯片的升级装置的结构示意图,该安全芯片具有第一内存区和第二内存区。所述升级装置包括:接收模块1、判断模块2以及执行模块3。
接收模块1,用于接收外部设备发送的第一指令,其中所述第一指令包括第一任务类型;
判断模块2,用于判断所述安全芯片的状态。
执行模块3,用于在所述判断模块判断所述安全芯片正在所述第二内存区执行第二指令时,分别获取与第二指令对应的第二任务类型、第二指令的优先级以及第一指令的优先级;若第一指令的优先级高于第二指令的优先级,则安全芯片中断第二指令的执行并在所述第一内存区执行第一指令,其中,所述第一内存区和第二内存区用于执行不同的任务类型,所述第一指令或第二指令为所述安全芯片的升级指令。
在一种实现方式中,判断模块2在所述判断所述安全芯片的状态之前,还包括:判断所述第一指令的类型;若所述第一指令的类型为升级指令,则对外部设备进行身份认证;若身份认证成功,则判断所述安全芯片的状态。
在一种实现方式中,所述第一指令为升级指令,所述第一指令包括第一数据;执行模块3,还用于在所述判断模块判断安全芯片的状态为空闲状态,则将所述升级指令中的第一数据存储在第一内存区,其中,所述第一内存区为预设的用于执行所述升级指令的内存区。
具体的,所述在所述第一内存区执行第一指令包括:将所述升级指令中的第一数据存储在第一内存区。
执行模块3,在将所述升级指令中的第一数据存储在第一内存区之后,还用于:检查第一数据的完整性;若完整性满足要求,则根据第一数据对安全芯片进行升级。
在一种实现方式中,所述第二指令为业务处理指令,所述安全芯片在第二内存区执行所述业务处理指令。
执行模块3在分别获取与第二指令对应的第二任务类型、第二指令的优先级以及第一指令的优先级之后,还用于在所述第一指令的优先级的低于第二指令的优先级时,将与第一指令相关的数据进行缓存,继续执行第二指令。
在一种实现方式中,所述第一指令为业务处理指令,第二指令为升级指令,所述业务处理指令的优先级高于所述升级指令;若第一指令的优先级高于第二指令的优先级,则执行模块3具体用于:将与升级指令相关的数据进行缓存;获取与业务处理指令对应的第二数据,并在第二内存区对所述第二数据进行处理;在所述业务处理指令执行结束后,释放第二内存区;获取缓存的与升级指令对应的数据,并在第一内存区对与升级指令对应的数据进行处理。
执行模块3在第一内存区对与升级指令对应的数据进行处理之后,还用于在所述升级指令执行完成后,释放第一内存区。
由此,本实施例提供的安全芯片的升级装置,在升级过程中,接收到业务处理请求,立即响应,然后继续进行升级,提高安全芯片的工作效率。满足数据传输安全性高、安全芯片工作量大等需求。
本发明实施例还提供了一种安全芯片,所述安全芯片包括上述实施例中的安全芯片的升级装置,本实施例在此不再赘述。
本实施例提供的安全芯片可以提高工作效率,满足数据传输安全性高、安全芯片工作量大等需求。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。