多可信执行环境下终端设备的启动方法和终端设备与流程

文档序号:14071468阅读:192来源:国知局

本发明涉及通信领域,尤其涉及一种多可信执行环境下终端设备的启动方法和终端设备。



背景技术:

目前,随着移动终端智能化程度的发展,智能终端操作系统已经可以提供各类应用软件的运行环境,智能终端的普及和移动互联网应用的繁荣使得越来越多的用户借助智能终端处理各类安全敏感业务,从而使得移动终端面临着各种安全威胁。对于智能终端,基本上所有对终端系统的入侵都需要更改系统内容,因此对系统进行完整性和一致性验证非常有必要,对系统的完整性和一致性的验证在智能终端启动时进行,从而保证智能终端安全启动。

现有技术中,常见的安全启动方案采用多级信任链机制,将系统自下而上建立起系统平台的信任链。请参照图1所示的智能终端芯片的典型结构,芯片主要包括负责控制、运算的处理器及配套片内只读存储器(readonlymemory,rom)、随机存取存储器(radomaccessmemory,ram)、联合测试工作组制定的测试接口标准(jointtestactiongroup,jtag)接口和通用输入输出口(generalpurposeinput/out,gpio)和其他功能模块。由于受到片内存储器容量的限制,智能终端的主要程序都放在外部的非易失性存储器(non-volatilememory,nvm)中。

该信任链的最底层是芯片的安全引擎(secureengine,se)和一次性可编程存储单元(one-time-programmablememory,otp),最高层是系统应用程序。整个信任链原理是:安全引擎内事先保存有证书的哈希(hash)摘要,系统启动后首先运行芯片内启动代码,启动代码会读取nvm内证书的hash摘要并和otp内的哈希摘要比较,如果一致说明证书是完整、合法的,然后用证书中的公钥去验证引导代码(bootloader),验证通过后运行引导代码,引导代码用同样的方法验证映像(image),这样就能保证整个系统的完整性和合法性。对于有安全操作系统(secureoperatingsystem,secureos)的系统,需要插入对安全操作系统的校验,校验顺序如下:启动代码,安全操作系统的引导代码,安全操作系统,引导代码和映像。

但是,在终端运行多个操作系统和应用程序时,也就是存在多个可信执行环境(trustedexecutionenvironment,tee)时,多个安全操作系统互相独立,在启动时必然存在安全操作系统启动的先后顺序。在现有技术的安全启动方法中,如果前一个启动的安全操作系统没有引导下一个,那么就可能跳过某一个安全操作系统;甚至前一个启动的安全操作系统可以修改下一个安全操作系统的信息,导致终端无法启动。



技术实现要素:

本发明解决的技术问题是如何实现多可信执行环境下终端设备的安全启动。

为解决上述技术问题,本发明实施例提供一种多可信执行环境下终端设备的启动方法,多可信执行环境下终端设备的启动方法包括:

运行启动代码,以使终端设备运行在配置模式;在所述配置模式下,分配各个可信执行环境可用的存储器的运行地址段,不同的可信执行环境的运行地址段的范围不同;所述启动代码对所述各个可信执行环境的引导代码进行验证;在验证通过后,将所述各个可信执行环境的引导代码加载至所述存储器中对应的运行地址段内,并退出所述配置模式;所述启动代码调用指令依次运行所述各个可信执行环境的引导代码,以加载启动对应的安全操作系统。

可选的,在分配各个可信执行环境可用的存储器的运行地址段时,还一并分配指向所述运行地址段的起始调用地址,所述启动代码调用指令依次运行所述各个可信执行环境的引导代码,以加载启动对应的安全操作系统包括:所述启动代码调用指令进入每一可信执行环境,在进入每一可信执行环境时,运行所述可信执行环境对应的起始调用地址指向的运行地址段内的引导代码;所述可信执行环境的引导代码加载启动所述可信执行环境的安全操作系统,直至所有可信执行环境的安全操作系统全部启动完成。

可选的,所述启动方法还包括:在每一可信执行环境的安全操作系统启动完成后,修改所述可信执行环境的起始调用地址以指向所述可信执行环境的响应代码;或更新所述可信执行环境的运行地址段中的所述引导代码为所述响应代码。

可选的,所述起始调用地址指向的是所述引导代码还是所述响应代码是通过判断标识来指示的。

可选的,在退出所述配置模式后,所述各个可信执行环境中的任一可信执行环境禁止修改其余可信执行环境的起始调用地址。

可选的,通过哈希校验的方式验证所述各个可信执行环境的引导代码,所述各个可信执行环境的引导代码的哈希值存储于一次性可编程存储单元。

可选的,所述启动方法还包括:根据查询得到的安全标识,确定所述终端设备当前运行的可信执行环境,所述安全标识用于唯一标识所述可信执行环境。

可选的,所述运行启动代码包括:运行第一启动代码,所述第一启动代码存储于只读存储器;验证第二启动代码,并在验证通过后运行所述第二启动代码,以进入所述配置模式,所述第二启动代码存储于非易失性存储器。

可选的,所述指令对应于不同的可信执行环境,或所述指令中的参数对应于不同的可信执行环境。

为解决上述技术问题,本发明实施例还公开了一种终端设备,所述终端设备包括:处理器、域控制器、只读存储器和存储器;

所述处理器适于运行启动代码,以使所述终端设备运行在配置模式,所述启动代码存储于所述只读存储器;所述域控制器适于在所述配置模式下,分配各个可信执行环境可用的存储器的运行地址段,不同的可信执行环境的运行地址段的范围不同;其中,所述启动代码对所述各个可信执行环境的引导代码进行验证;在验证通过后,将所述各个可信执行环境的引导代码加载至所述存储器中对应的运行地址段内,并退出所述配置模式;所述启动代码调用指令依次运行所述各个可信执行环境的引导代码,以加载启动对应的安全操作系统。

可选的,所述终端设备还包括:寄存器组;所述域控制器在分配各个可信执行环境可用的存储器的运行地址段时,还一并分配指向所述运行地址段的所述寄存器组的起始调用地址;所述启动代码调用指令进入每一可信执行环境,在进入每一可信执行环境时,运行所述可信执行环境对应的起始调用地址指向的运行地址段内的引导代码;所述可信执行环境的引导代码加载启动所述可信执行环境的安全操作系统,直至所有可信执行环境的安全操作系统全部启动完成。

可选的,运行代码在每一可信执行环境的安全操作系统启动完成后,修改所述可信执行环境的起始调用地址以指向所述可信执行环境的响应代码;或更新所述可信执行环境的运行地址段中的所述引导代码为所述响应代码。

可选的,所述起始调用地址指向的是所述引导代码还是所述响应代码是通过判断标识来指示的。

可选的,在退出所述配置模式后,所述各个可信执行环境中的任一可信执行环境禁止修改其余可信执行环境的起始调用地址。

可选的,所述终端设备还包括:一次性可编程存储单元,适于存储所述各个可信执行环境的引导代码的哈希值;所述启动代码通过哈希校验的方式验证所述各个可信执行环境的引导代码。

可选的,所述处理器适于:根据查询得到的安全标识,确定所述终端设备当前运行的可信执行环境,所述安全标识用于唯一标识所述可信执行环境。

可选的,所述处理器适于:运行第一启动代码,所述第一启动代码存储于所述只读存储器;验证第二启动代码,并在验证通过后运行所述第二启动代码,以进入所述配置模式,所述第二启动代码存储于非易失性存储器。

可选的,所述指令对应于不同的可信执行环境,或所述指令中的参数对应于不同的可信执行环境。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

本发明实施例通过运行启动代码,以使终端设备运行在配置模式;在所述配置模式下,分配各个可信执行环境可用的存储器的运行地址段,不同的可信执行环境的运行地址段的范围不同;所述启动代码对所述各个可信执行环境的引导代码进行验证;在验证通过后,将所述各个可信执行环境的引导代码加载至所述存储器中对应的运行地址段内,并退出所述配置模式;所述启动代码调用指令依次运行所述各个可信执行环境的引导代码,以加载启动对应的安全操作系统。本发明技术方案在需要启动多个可信执行环境时,在配置模式下分配各个可信执行环境可用的存储器的运行地址段,并将各个可信执行环境的引导代码加载至存储器中对应的运行地址段内,从而使得运行各个可信执行环境的引导代码时,可以根据对应的运行地址段确定引导代码,实现了多可信执行环境的启动;同时,还避免了不同可信执行环境的引导代码之间互相篡改,保证了启动的安全性。

进一步,在分配各个可信执行环境可用的存储器的运行地址段时,还一并分配指向所述运行地址段的起始调用地址。由于各个可信执行环境对应的起始调用地址是在配置模式下分配的,因此在退出配置模式加载启动各个可信执行环境时,各个可信执行环境可以依次启动,并不会对其余可信执行环境的引导代码或起始调用地址进行篡改;同时,通过起始调用地址去运行所述运行地址段内的引导代码,可以提高启动速度。

附图说明

图1是现有技术一种智能终端芯片的典型结构的示意图;

图2是本发明实施例一种多可信执行环境下终端设备的启动方法的流程图;

图3是本发明实施例一种终端设备的结构示意图。

具体实施方式

如背景技术中所述,在终端运行多个操作系统和应用程序时,也就是存在多个可信执行环境(trustedexecutionenvironment,tee)时,多个安全操作系统互相独立,在启动时必然存在安全操作系统启动的先后顺序。在现有技术的安全启动方法中,如果前一个启动的安全操作系统没有引导下一个,那么就可能跳过某一个安全操作系统;甚至前一个启动的安全操作系统可以修改下一个安全操作系统的信息,导致终端无法启动。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图2是本发明实施例一种多可信执行环境下终端设备的启动方法的流程图。

图2所示的多可信执行环境下终端设备的启动方法可以包括以下步骤:

步骤s201:运行启动代码,以使终端设备运行在配置模式;

步骤s202:在所述配置模式下,分配各个可信执行环境可用的存储器的运行地址段,不同的可信执行环境的运行地址段的范围不同;

步骤s203:所述启动代码对所述各个可信执行环境的引导代码进行验证;

步骤s204:在验证通过后,将所述各个可信执行环境的引导代码加载至所述存储器中对应的运行地址段内,并退出所述配置模式;

步骤s205:所述启动代码调用指令依次运行所述各个可信执行环境的引导代码,以加载启动对应的安全操作系统。

本实施例的多可信执行环境下终端设备的启动方法中,终端设备可以配置为配置模式和配置模式以外的模式,例如特权模式。在配置模式下,可以分配、修改各个可信执行环境可用的存储器的运行地址段,另外也可以设置和修改指向上述运行地址段的起始调用地址,各个可信执行环境可以访问任意可信执行环境的运行地址段。而在特权模式下,各个可信执行环境可以访问各自对应的运行地址段,但不能访问其他可信执行环境的运行地址段,也不能访问和修改其他可信执行环境的起始调用地址。

具体实施中,在步骤s201中,终端设备系统启动后,运行启动代码,终端设备运行在配置模式。在步骤s202中,在配置模式下,分配各个可信执行环境可用的存储器的运行地址段。所述存储器可以是双倍速率同步动态随机存储器(doubledataratesdram,ddr)、闪存、随机存取存储器等。优选的,所述存储器为随机存取存储器。例如,运行地址段ram1对应tee1,运行地址段ram2对应tee2,以此类推,运行地址段ramn对应teen。

在具体实施中,tee可以是终端设备内运行的操作系统和/或应用程序。tee可以保证加载到自身环境内部的代码和数据的安全性、机密性以及完整性。tee可以提供一个隔离的执行环境,提供的安全特征包括隔离执行、可信应用的完整性、可信数据的机密性、安全存储等。总体来说,tee提供的执行空间比常见的如ios、android等移动操作系统提供更高级别的安全性,比如为智能卡、sim卡等安全元素(secureelement,se)提供更多的功能。在移动设备上,tee可以与移动操作系统并行存在,为丰富的移动操作系统环境提供安全功能。

具体实施中,运行启动代码可以包括:运行第一启动代码,所述第一启动代码存储于只读存储器;验证第二启动代码,并在验证通过后运行所述第二启动代码,以进入所述配置模式,所述第二启动代码存储于非易失性存储器(non-volatilememory,nvm)。通过将第一启动代码存储于只读存储器,保证了启动安全性;将第二启动代码存储于片外非易失性存储器,可以实现启动代码的升级特性,有利于终端设备的维护。可以理解的是,运行启动代码也可以包括:运行第一启动代码,以进入所述配置模式,所述第一启动代码存储于只读存储器。这种情况下省略了第二启动代码的验证和运行过程,使得启动代码的运行过程更为简化,但是相应的,这种情况只能保证启动安全性。

具体实施中,在步骤s203中,启动代码可以对所述各个可信执行环境的引导代码进行验证。具体而言,可以通过哈希(hash)校验的方式验证所述各个可信执行环境的引导代码。具体地,哈希校验过程可以如下:在可信执行环境的操作系统出厂前计算其引导代码的hash值,并保存在终端设备内;在校验时,计算可信执行环境的引导代码的hash值,并和之前保存在设备内的hash值比较,如果一致则校验通过,反之则不通过。

具体实施中,所述各个可信执行环境的引导代码的哈希值可以存储于一次性可编程存储单元(one-time-programmablememory,otp)。更具体地,各个可信执行环境的引导代码的哈希值可以存储于终端设备芯片内部的otp中。通过将各个可信执行环境的引导代码的哈希值存储于终端设备芯片内部的otp中,可以保证校验过程的安全性,进而保证了启动安全性。

可以理解的是,验证各个可信执行环境的引导代码的方式也可以是其他任意可实施的安全校验方式,例如,签名验证方式,本发明实施例对此不做限制。

具体实施中,在步骤s204中,如果验证通过,则将所述各个可信执行环境的引导代码加载至所述随机存取存储器中对应的运行地址段内,并退出所述配置模式。由此,在步骤s205中,所述启动代码可以调用指令依次运行所述各个可信执行环境的引导代码,以加载启动对应的安全操作系统。

由上,在运行各个可信执行环境的引导代码时,可以根据对应的运行地址段确定引导代码,实现了多可信执行环境的启动;同时,还避免了不同可信执行环境的引导代码之间篡改,保证了启动的安全性。

具体实施中,在分配各个可信执行环境可用的随机存取存储器的运行地址段时,还可以一并分配指向所述运行地址段的起始调用地址。例如,起始调用地址ra1指向运行地址段ram1,起始调用地址ra2指向运行地址段ram2,以此类推,起始调用地址ran指向运行地址段ramn。进一步而言,起始调用地址可以存储于相应的寄存器地址内,可以通过修改寄存器内存储地址的方式修改起始调用地址。那么,在配置模式下,各个可信执行环境可以修改任意可信执行环境的寄存器。在特权模式下,各个可信执行环境可以修改各自对应的寄存器地址内的内容,但不能修改其他可信执行环境的寄存器地址内的内容。

由此,启动代码可以调用指令进入每一可信执行环境,在进入每一可信执行环境时,运行所述可信执行环境对应的起始调用地址指向的运行地址段内的引导代码;所述可信执行环境的引导代码加载启动所述可信执行环境的安全操作系统,直至所有可信执行环境的安全操作系统全部启动完成。

也就是说,启动代码在调用指令进入每一可信执行环境时,可以自动跳转至起始调用地址指向的运行地址段内运行引导代码。例如,启动代码调用指令进入tee1,然后终端系统自动运行起始调用地址ra1指向运行地址段ram1内的引导代码,引导代码可以按照常规的安全启动方式加载启动安全操作系统1。此时终端设备运行在tee1。其中,终端设备运行在tee1时,其引导代码可以访问tee1下的所有硬件资源,但不能访问其余可信执行环境tee2,…,teen下的所有硬件资源。安全操作系统1启动完成后,退出tee1并返回到启动代码。启动代码可以继续调用指令启动下一可信执行环境。

由于各个可信执行环境对应的起始调用地址是在配置模式分配的,因此在退出配置模式加载启动各个可信执行环境时,各个可信执行环境可以依次启动;同时由于退出配置模式后,各个可信执行环境不能够修改其他可信执行环境的起始调用地址,因此不会对其他可信执行环境的引导代码或起始调用地址进行篡改;还可以通过修改起始调用地址更改或更新指向的代码,避免了对运行地址段的直接操作,进一步保证了启动的安全性。

具体实施中,在每一可信执行环境的安全操作系统启动完成后,运行代码修改所述可信执行环境的起始调用地址以指向所述可信执行环境的响应代码;或更新所述可信执行环境的运行地址段中的所述引导代码为所述响应代码,以在后续的可信执行环境运行时,可以通过调用响应代码完成系统切换。例如,tee1启动完成后,引导代码可以修改起始调用地址ra1指向tee1的响应代码;引导代码还可以将ra1指向运行地址段ram1内的引导代码更新为响应代码。可以理解的是,所述运行代码可以是系统当前工作所运行的代码

具体实施中,所述起始调用地址指向的是所述引导代码还是所述响应代码还可以通过判断标识来指示。其中,所述判断标识可以是预先配置的。例如,终端设备状态配置判断标识以区分tee1是否启动完成;在运行ra1指向的代码之前,可以根据判断标识确定运行引导代码还是响应代码。

具体实施中,在退出所述配置模式后,所述各个可信执行环境中的任一可信执行环境禁止修改其余可信执行环境的起始调用地址。也就是说,由于各个可信执行环境对应的起始调用地址是在配置模式分配的,在退出所述配置模式后,各个可信执行环境中的任一可信执行环境不能够修改其余可信执行环境的起始调用地址和引导代码。例如,终端设备运行在tee1时,不能修改可信执行环境tee2,…,teen的起始调用地址和引导代码。

图3是本发明实施例一种终端设备的结构示意图。

所述终端设备包括但不限于智能手机、平板电脑、机顶盒、智能电视等。

下面结合图3对所述终端设备的结构进行详细介绍,所述终端设备可以包括:处理器1、域控制器2、只读存储器(rom)3和随机存取存储器(randomaccessmemory,ram)(未标示)。具体而言,随机存取存储器可以包括片内随机存储器41和片外随机存储器42。例如,片外随机存储器42可以是双倍速率同步动态随机存储器(doubledataratesdram,ddr)。

具体实施中,处理器1适于运行启动代码,以使所述终端设备运行在配置模式,所述启动代码存储于只读存储器3中。更近一步地,处理器1可运行第一启动代码,所述第一启动代码存储于只读存储器3;验证第二启动代码,并在验证通过后运行所述第二启动代码,以进入所述配置模式,所述第二启动代码存储于片外非易失性存储器。由此,通过将第一启动代码存储于只读存储器3,保证了启动安全性;第二将启动代码存储于片外非易失性存储器,可以实现启动代码的升级特性,有利于终端设备的维护。

域控制器2适于在所述配置模式下,分配各个可信执行环境可用的随机存取存储器的运行地址段,不同的可信执行环境的运行地址段的范围不同。具体而言,域控制器2可以分配片内随机存储器41内的地址给各个可信执行环境。例如,分配地址段ram1(0~100m)给tee1,分配地址段ram2(100~200m)给tee2等。

其中,所述启动代码对所述各个可信执行环境的引导代码进行验证;在验证通过后,将所述各个可信执行环境的引导代码加载至所述随机存取存储器中对应的运行地址段内,并退出所述配置模式;所述启动代码调用指令依次运行所述各个可信执行环境的引导代码,以加载启动对应的安全操作系统。

为了提高电子设备执行环境配置的灵活性,在具体实施中,处理器1可以包括n1个相互独立的内核及调度管理器11,其中:所述调度管理器11适于根据自身的工作模式,为所述n1个相互独立的内核分配可信执行环境。例如,核1分配给tee1,核2分配给tee2。

具体实施中,终端设备还可以包括寄存器组12。具体而言,寄存器组12可以设置在处理器1内。域控制器2在分配各个可信执行环境可用的片内随机存取存储器41的运行地址段时,还一并分配指向所述运行地址段的寄存器组12的起始调用地址。例如,寄存器组12存储各个可执行环境的调用起始地址,其中,ra1表示tee1的调用起始地址,ra2表示tee2的调用起始地址,ra3表示tee3的调用起始地址。在启动时,如果需要切换到某个tee,可以通过自动跳转到对应的调用起始地址去执行其指向的引导代码。

具体实施中,图3所示的终端设备可以工作在配置模式。在配置模式下可以修改寄存器组12中任一调用起始地址。终端设备在退出配置模式(也可以称终端设备工作在特权模式)后,任一tee可以修改其对应的存器组12中的调用起始地址,但不能修改其他tee对应的存器组12中的调用起始地址。

具体实施中,图3所示的终端设备还可以包括一次性可编程存储单元(otp),适于存储所述各个可信执行环境的引导代码的哈希值。

可以理解的是,除一次性可编程存储单元外,还可以是可编程的熔丝(efuse)或者受保护的闪存(flash)等任意可实施存储功能的模块或器件来存储哈希值,本发明实施例对此不做限制。

具体实施中,处理器1可以根据查询得到的安全标识,确定所述终端设备当前运行的可信执行环境,所述安全标识用于唯一标识所述可信执行环境。

具体而言,安全标识可以通过总线来传输,安全标识可以标识相应的执行环境是否可信。安全标识的比特数为2时,终端设备可以区分四个可信执行环境,当然,在实际工作时可以运行小于等于四个的可信执行环境。例如,运行三个可信执行环境时,00表示富系统环境(richexecutionenvironment,ree),譬如说常见的安卓系统环境;01表示tee1,此时运行安全操作系统1;10表示tee2,此时运行安全操作系统2;11表示空闲状态。

需要说明的是,本领域技术人员根据实际需要,还可以在终端设备设置其他类型的存储器,或外设接口、外围辅助单元等,本发明实施例对此不做限制。

继续参照图3,对多可信执行环境下终端设备的启动过程做示例性的说明。运行保存在只读存储器3中的第一启动代码,第一启动代码可以通过hash校验或签名验证或其他安全校验方式第二启动代码。验证通过后运行第二启动代码,进入配置模式。也可以直接通过运行第一启动代码进入配置模式。

在配置模式下,域控制器2分配片内随机存取存储器41的不同运行地址段给不同的可信执行环境。启动代码(第一启动代码或第二启动代码)可以设置各个可信执行环境在寄存器组12的起始调用地址。配置完成后,启动代码可以依次校验各个可信执行环境的引导代码,然后加载到随机存取存储器41的不同运行地址段中。加载完成后,启动代码退出配置模式。

启动代码开始调用指令进入tee1,处理器1自动运行起始调用地址ra1指向的引导代码,此时终端设备工作在tee1。此时安全标识为01,引导代码可以访问tee1和ree下的所有硬件资源,但禁止访问其他tee的运行地址段和起始调用地址。tee1的引导代码可以加载启动安全操作系统1,并在启动完毕后修改起始调用地址ra1,指向tee1的响应代码位置。可选的,引导代码也可以不修改起始调用地址ra1,而更新起始调用地址ra1指向的运行地址段ram1中的引导代码为响应代码。可选的,还可以通过增加一个判断标识来区分各tee是否引导完成,在运行调用地址ra1指向的代码之前,可以先通过该判断标识区分是引导代码还是响应代码。

在安全操作系统1加载启动完成后,退出tee1并回到启动代码。以此类推,启动代码再调用指令进入tee2,引导加载tee2;依次引导各个安全操作系统。由于寄存器组12中的各个起始调用地址是在各tee引导之前就设置好的,并且在各tee引导之前已退出配置模式,因此虽然各个tee还是依次启动,但避免了在任一tee引导过程中篡改其他tee的引导代码和起始调用地址。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于以计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1