掌桥专利:专业的专利平台
掌桥专利
首页

基于安全芯片的嵌入式操作系统可信启动方法及主控系统

文献发布时间:2023-06-19 09:49:27


基于安全芯片的嵌入式操作系统可信启动方法及主控系统

技术领域

本发明涉及芯片安全技术领域,特别涉及一种基于安全芯片的嵌入式操作系统可信启动方法、一种MCU、一种安全芯片及一种主控系统。

背景技术

电力行业用电采集系统里用到了大量主控设备,很多主控设备的主控芯片都用到了嵌入式操作系统。为了保证这些操作系统的安全启动,现有技术是部分已经采用安全芯片对系统的各个启动部分的镜像进行度量。这些措施虽然能够提升一定的安全性,但主控设备的可信启动完全依赖安全芯片的安全,缺少进一步的安全措施。

发明内容

有鉴于此,本发明旨在提出一种基于安全芯片的嵌入式操作系统可信启动方法、一种MCU、一种安全芯片及一种主控系统,以至少部分地解决以上问题。

为达到上述目的,本发明的第一方面提供了一种基于安全芯片的嵌入式操作系统可信启动方法,所述启动方法包括:响应于启动指令,与所述安全芯片交换认证参数;确定交换的所述认证参数均正确,开始所述嵌入式操作系统的启动过程,所述启动过程中包括加载启动文件;确定所述启动过程中加载的启动文件被所述安全芯片成功度量,执行所述启动文件的功能,直至启动完成;在所述启动完成之后,再次确定所述启动文件被所述安全芯片成功度量。

优选的,根据从所述安全芯片交换获得的认证参数和所述嵌入式操作系统的所在侧自己存储的认证参数,生成第一加密数据,并将所述第一加密数据发送给所述安全芯片;接收来自所述安全芯片的第二加密数据,所述第二加密数据是所述安全芯片根据所述安全芯片自己存储的认证参数和与所述嵌入式操作系统的所在侧交换获得的认证参数所生成的;若所述第一加密数据与所述第二加密数据一致,则确定所述认证参数正确。

优选的,所述第一加密数据和所述第二加密数据均通过以下步骤得到:根据自己存储的认证参数和交换获得的认证参数生成密钥;采用所述密钥加密自己存储的认证参数和交换获得的认证参数,得到加密数据。

优选的,所述安全芯片生成并发送所述第二加密数据的条件为:通过生成的所述密钥对接收到的所述第一加密数据验证通过。

优选的,所述确定启动过程中加载的启动文件被所述安全芯片成功度量,包括:当所述启动文件被加载到ROM时,对所述启动文件进行度量得到度量结果,并将所述度量结果发送至所述安全芯片;获取所述安全芯片对于所述度量结果的验签结果,若所述验签结果为通过,则所述启动文件被所述安全芯片成功度量。

优选的,所述启动文件为多个启动文件,分别为所述启动过程中的不同启动阶段所需加载的启动文件。

优选的,所述启动方法还包括:仅当当前启动阶段的启动文件加载完成且所述启动文件被成功度量之后,才开始所述当前启动阶段的下一启动阶段。

优选的,所述再次确定所述启动文件被所述安全芯片成功度量,包括:从所述多个启动文件中选择部分或全部启动文件进行度量得到度量结果,且所述度量结果经所述安全芯片的验签结果均为通过。

优选的,从所述多个启动文件中选择的启动文件包括BOOT文件。

在本发明的第二方面,还提供了一种MCU,所述MCU采用嵌入式操作系统,所述MCU被配置为:响应于启动指令,与预设外部目标交换认证参数;确定所述认证参数正确,开始所述嵌入式操作系统的启动文件加载;确定启动过程中加载的启动文件被所述预设外部目标成功度量,执行启动过程;在所述嵌入式操作系统初始化之后,再次确定所述启动文件被所述预设外部目标成功度量,则启动完成。

在本发明的第三方面,还提供了一种安全芯片,所述安全芯片被配置为:与预设外部目标交换认证参数;根据自己存储的认证参数判断交换获得的认证参数是否正确;以及根据自己存储的度量签名判断接收到的度量结果,并向所述度量结果发送端返回验签结果。

在本发明的第四方面,还提供了一种主控系统,所述主控系统包括:前述的MCU和前述的安全芯片,所述MCU和所述安全芯片通信连接。

本发明还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的嵌入式操作系统可信启动方法。

本发明所述的基于安全芯片的嵌入式操作系统可信启动方法及主控系统,以及MCU和安全芯片,具有以下有益效果:本方法主要包含三个过程与现有技术相比多了完整的可信启动方案,包括身份双向认证、正向度量和反向度量。双向认证过程实现了MCU对安全芯片的认证和安全芯片对MCU的认证。而现有技术只能实现单向过程,单方面的信任安全芯片,无法对安全芯片进行认证。本方法还包括反向度量,可在系统运行阶段对可信启动段的镜像再次进行度量防止被恶意篡改。

本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施方式及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明一实施方式中的嵌入式操作系统可信启动方法的步骤示意图;

图2为本发明一实施方式中的双向认证过程的流程示意图;

图3为本发明一实施方式中的可信启动方法的加载顺序示意图;

图4为本发明一实施方式中的主控系统的结构示意图。

具体实施方式

以下结合附图对本发明实施方式的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施方式,并不用于限制本发明实施方式。

图1为本发明一实施方式中的嵌入式操作系统可信启动方法的步骤示意图。如图1所示,一种基于安全芯片的嵌入式操作系统可信启动方法,所述启动方法包括:

S01、响应于启动指令,与所述安全芯片交换认证参数;

响应于启动指令,该启动指令决定嵌入式操作系统是否将要被启动。例如,确定嵌入式操作系统是否被上电。如果嵌入式操作系统所在的硬件设备(例如MCU等)上的电源按钮被按下,或者在嵌入式的用法中,嵌入式操作系统所在的硬件设备的电源接通,则可以确定该嵌入式操作系统将要被启动。此时与安全芯片交换认证参数,即所述嵌入式操作系统的所在侧和所述安全芯片均将自己存储的认证参数发送给对方。交换认证参数之后,所述嵌入式操作系统的所在侧(即MCU)和所述安全芯片均存储有自己的认证参数和从对方接收的认证参数。

S02、确定交换的所述认证参数均正确,开始所述嵌入式操作系统的启动过程,所述启动过程包括加载启动文件;

此步骤中的认证参数的验证方法可以采用加密、哈希、特征比对等算法,目的在于提供一种安全验证。而现有技术只能实现单向验证过程,单方面的信任安全芯片,无法对安全芯片进行认证。因此本步骤中采用双向验证,在安全芯片对启动验证的同时,也实现了对安全芯片的验证,从而提升了系统启动的安全性。当安全验证通过之后,开始嵌入式操作系统的启动过程。

S03、确定所述启动过程中加载的启动文件被所述安全芯片成功度量,执行所述启动文件的功能,直至启动完成;

一般来说,嵌入式操作系统的启动的第一步是从非易失性存储器(如FLASH等)中读取uboot程序,uboot程序的目标是启动内核kernel。内核kernel启动之后再加载文件系统和运行环境关键数据,最后进入user阶段,该user阶段能够根据加载的应用程序对数据进行处理,完成应用程序的功能。本实施方式在启动过程中,可以按需对启动过程中的镜像文件进行一次或多次可信度量,以检查其安全性和完整性。从而保证了嵌入式操作系统启动过程中的文件安全性。

S04、在所述启动完成之后,再次确定所述启动文件被所述安全芯片成功度量。

在所述嵌入式操作系统初始化之后,即进入前述的user阶段,现有技术中认为启动已经完成,因此忽视了该启动文件从上次成功度量到启动完成期间内的安全性。本实施方式在启动完成后进行反向度量,从而保证启动文件在这个系统启动期间的安全性和完整性。

本实施方式实现了安全的可信启动,不仅实现了双向身份认证、对启动各个阶段的镜像度量,还在启动后对之前的启动各个阶段进行了反向度量。本实施方式在正常的可信启动度量基础上增加了双向身份认证和反向度量,从而保证系统可信启动过程更加安全可靠。

在本发明提供的一种实施方式中,所述交换的所述认证参数均正确,包括:根据从所述安全芯片交换获得的认证参数和自己存储的认证参数,生成第一加密数据,并将所述第一加密数据发送给所述安全芯片;接收来自所述安全芯片的第二加密数据,所述第二加密数据是所述安全芯片根据自己存储的认证参数和交换获得的认证参数所生成的;若所述第一加密数据与所述第二加密数据一致,则确定所述认证参数正确。正常情况下,MCU和安全芯片经过认证参数交换之后,其保存的自己的认证参和接收的认证参数应当与对方的是一致的。在加密方式和加密密钥一致的情况下,生成的第一加密数据和第二加密数据也应当是一致的。MCU和安全芯片至此完成了双向认证,避免了现有技术中单向认证带来的安全性较低的问题。

在本发明提供的一种实施方式中,所述第一加密数据和所述第二加密数据均通过以下步骤得到:根据自己存储的认证参数和交换获得的认证参数生成密钥,采用所述密钥加密所述自己存储的认证参数和交换获得的认证参数,得到加密数据;所述嵌入式操作系统的所在侧所述通过以上步骤得到的加密数据为所述第一加密数据,所述安全芯片通过以上步骤得到的加密数据为所述第二加密数据。为了保证密钥的一致性,本实施方式根据自己的认证参和接收的认证参数来生成密钥。此处的生成密钥的方法可以采用现有的方法。MCU和安全芯片均通过同样的密钥生成数据和密钥生成方式来分别生成密钥,保证了在低耦合情况下的密钥一致性。再通过生成的密钥来加密自己的认证参和接收的认证参数,从而得到了一致的加密数据。由此可见,当MCU和安全芯片除了认证参数以外,还需要同样的密钥生成方法和加密方法才能保证双向认证的完成,显著提升了MCU和安全芯片认证安全性。

图2为本发明一实施方式中的双向认证过程的流程示意图,如图2所示。在本发明提供的一种实施方式中,所述安全芯片生成并发送所述第二加密数据的条件为:通过生成的所述密钥对接收到的所述第一加密数据验证通过。前述的双向认证可以是并行完成的,但是也可以存在前后顺序。例如可以预设为:仅有当安全芯片通过密钥对接收到的所述第一加密数据进行验证,并验证通过之后,才生成所述第二加密数据,并发送至MCU。若安全芯片对第一加密数据验证失败之后,认证程序终止,不再执行生成并发送所述第二加密数据的步骤,MCU也不会接收到第二加密数据进行验证。以上的条件可以换向实施,例如,安全芯片先发送第二加密数据,MCU侧在验证不通过的情况下,不生成并发送第一加密数据。

在本发明提供的一种实施方式中,所述确定启动过程中加载的启动文件被所述安全芯片成功度量,包括:当所述启动文件被加载到ROM时,对所述启动文件进行度量得到度量结果,并将所述度量结果发送至所述安全芯片;获取所述安全芯片对于所述度量结果的验签结果,若所述验签结果为通过,则所述启动文件被所述安全芯片成功度量。本实施方式采用现有的度量方法对启动文件进行度量,其度量的时机在启动文件从FLASH被加载到ROM时。MCU对启动文件度量后得到度量结果,该度量结果是否正确是由安全芯片进行判断的。安全芯片中事先存储有度量签名,采用该度量签名对度量结果进行验签,并将验签结果发送至MCU。MCU接收到为“通过”的验签结果,则认为该启动文件被所述安全芯片成功度量,是可信的。由此保证了启动文件在操作系统启动中的可信性,从而保证了启动过程的安全可信。

在本发明提供的一种实施方式中,所述启动文件为多个启动文件,分别为所述启动过程中的不同启动阶段所需加载的启动文件。嵌入式操作系统的启动过程一般包括以下几个阶段:启动引导(boot阶段)、内核加载(kernel阶段)和应用加载(app阶段),应用加载完成后,操作系统的控制权限移交至用户。图3为本发明一实施方式中的可信启动方法的加载顺序示意图,如图3所示,系统的加载顺序为BOOT、文件系统以及运行环境关键数据。用户可以按照自己的设定,选择启动文件中的部分或全部进行前述的度量,并在度量成功后完成启动过程。通过本实施方式,用户可以按需设定需要度量的多个启动文件,在可信度量和系统负载间获取平衡。

在本发明提供的一种实施方式中,所述启动方法还包括:仅当当前启动阶段的启动文件加载完成且所述启动文件被成功度量之后,才开始所述当前启动阶段的下一启动阶段。为了更好地控制启动中的安全性,度量从boot阶段开始度量所加载的镜像文件完整性和安全性,并逐级度量到运行阶段系统。在每一启动阶段中,仅当当前启动阶段度量成功后,才将当前操作系统的控制权限向上级传递,开始下一启动阶段的步骤。经过多个启动阶段,直至将操作系统的控制权限移交至用户,即进入user阶段。以上按启动过程进行逐级度量的方式,能够全过程保证系统的启动安全。

在本发明提供的一种实施方式中,所述再次确定所述启动文件被所述安全芯片成功度量,包括:从所述多个启动文件中选择部分或全部启动文件进行度量得到度量结果,且所述度量结果经所述安全芯片的验签结果均为通过。如前所述,操作系统的启动文件存储于FLASH中,启动时将其读入操作系统的内存中。在操作系统初始化后,即进入user阶段后,再选择性地通过前述的度量步骤对启动过程中加载的多个启动文件进行度量,以实现对可信启动的进一步保证。

在本发明提供的一种实施方式中,从所述多个启动文件中选择的启动文件包括BOOT文件。为了保证操作系统的启动安全,在上一步中所选择反向度量的启动文件中应至少包括BOOT文件。BOOT文件作为操作系统启动的中的重要文件,在反向度量中作为必选项,从而保证反向度量的可靠性,保证操作系统的可信启动,防止被恶意篡改。

在本发明提供的一种实施方式中,还提供了一种MCU,所述MCU采用嵌入式操作系统,所述MCU被配置为:响应于启动指令,与预设外部目标交换认证参数;确定交换的所述认证参数正确,开始所述嵌入式操作系统的启动文件加载;确定启动过程中加载的启动文件被所述预设外部目标成功度量,执行启动过程;在所述嵌入式操作系统初始化之后,再次确定所述启动文件被所述预设外部目标成功度量,则启动完成。MCU应用广泛,采用的操作系统大多为嵌入式操作系统。MCU通过与外部安全设备的配合,在启动前执行双向认证,在启动中执行可信度量,在启动后执行反向度量,从三个阶段保证了整个启动过程的可信性,从而保证了MCU的数据安全和通信安全。

在本发明提供的一种实施方式中,还提供了一种安全芯片,所述安全芯片被配置为:与预设外部目标交换认证参数;根据自己存储的认证参数判断交换获得的认证参数是否正确;以及根据自己存储的度量签名判断接收到的度量结果,并向所述度量结果发送端返回验签结果。可以与前述的MCU配合使用的安全芯片,具有以下功能:基于响应,与对端配置完成双向认证;此处的双向认证包括认证参数的交换和正确性判断,以及有存储度量签名,该度量签名用于与度量结果向比较,得出验签结果。此处的安全芯片可以为IC芯片等。

图4为本发明一实施方式中的主控系统的结构示意图,如图4所示。在本发明提供的一种实施方式中,还提供了一种主控系统,所述主控系统包括:前述的MCU和前述的安全芯片,所述MCU和所述安全芯片通信连接。主控系统中采用MCU为处理器,并采用前述的安全芯片与之配合使用,能够提升主控系统的安全性,防止在系统级的恶意篡改。该主控系统如果应用于电力行业用电信息采集和配电等领域,可以提升电力系统整体上的安全性和可靠性。

本发明的实施方式还提供一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本实施方式所述的基于安全芯片的嵌入式操作系统可信启动方法。

通过以上的实施方式,与现有技术相比,多了完整的可信启动方案,其主要包含三个过程,包括身份双向认证、正向度量和反向度量。双向认证过程实现了MCU对安全芯片的认证和安全芯片对MCU的认证。反向度量则可在系统运行阶段对可信启动段的镜像再次进行度量防止被恶意篡改。

以上结合附图详细描述了本发明实施方式的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。

本领域技术人员可以理解实现上述实施方式方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,本发明实施方式的不同实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。

相关技术
  • 基于安全芯片的嵌入式操作系统可信启动方法及主控系统
  • 基于安全芯片的嵌入式操作系统可信启动方法及主控系统
技术分类

06120112318072