CN115828252A - 一种可更新信任根的移动终端安全启动方法 - Google Patents
一种可更新信任根的移动终端安全启动方法 Download PDFInfo
- Publication number
- CN115828252A CN115828252A CN202211235146.5A CN202211235146A CN115828252A CN 115828252 A CN115828252 A CN 115828252A CN 202211235146 A CN202211235146 A CN 202211235146A CN 115828252 A CN115828252 A CN 115828252A
- Authority
- CN
- China
- Prior art keywords
- mobile terminal
- starting
- partition
- safe starting
- safe
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种可更新信任根的移动终端安全启动方法,其步骤包括:1)将安全启动系统的代码存储到移动终端内可读写存储介质被首先启动的启动分区,将启动引导程序存储到可读写存储介质其他启动分区;在介质的数据区设置用于存储操作系统镜像的系统分区和用于存储控制信息的安全启动辅助分区;2)通过配置移动终端的启动选项,使移动终端从介质中读取安全启动系统的相关代码并执行;安全启动系统根据控制信息确定是否更新移动终端的信任根;如果需要更新,则完成信任根更新后进行步骤3);如果不需要更新,则直接进行步骤3);3)将安全启动系统所在分区设置为只读后对将要启动的操作系统镜像进行完整性验证,并启动引导程序完成系统启动。
Description
技术领域
本发明涉及一种可更新信任根的移动终端安全启动方法,属于移动终端安全技术领域。
背景技术
随着物联网及智能设备的发展,移动终端日渐普及。很多敏感业务开始在移动终端上运行,例如移动支付、个人健康数据采集、敏感文件处理等,涉及到大量敏感数据。移动终端如不对上述数据进行妥善保护,将导致数据的泄露,造成经济损失及其他不良后果。
保护敏感数据的安全首先需要移动终端能够确保自身操作系统的安全。如果攻击者破坏了操作系统的完整性,获得了管理员权限,操作系统所承载的敏感数据的安全自然无从谈起。安全启动是常见的操作系统完整性保护方案之一。安全启动系统的密钥通常由一对公私钥对组成,其中私钥由设备制造商持有,公钥作为信任根保存在移动终端上。设备制造商在发布操作系统镜像时会使用所持有的私钥对镜像文件的哈希值进行签名,并将签名值与操作系统镜像一同发布。移动终端在加载并启动操作系统之前,安全启动系统将会使用保存在终端中的信任根验证待加载的操作系统镜像的签名值。只有签名验证通过,操作系统才被允许启动。
现有的安全启动方案通常由移动终端的处理器芯片制造商提供,其中代码部分通常会固化在处理器的只读存储区域中,而所使用的信任根数据通常存储在电子保险丝(eFuse)中。上述组合虽然具有较好的安全性,但是对于移动终端制造商及使用者存在诸多不便。首先,在处理器制造商完成芯片制造后,移动终端制造商及使用者不能对其所实现的密码算法以及镜像验证逻辑进行任何修改;其次,虽然移动终端制造商及使用者可以通过烧录eFuse的方式来实现对信任根的配置,但因为eFuse只能写入一次,信任根的配置为一次性操作,不能满足灵活配置的需求。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种可更新信任根的移动终端安全启动方法,能够实现对安全启动所使用的算法以及镜像验证逻辑的升级,同时能够根据移动终端不同的使用者灵活地更换镜像验证所需的信任根等数据。本发明基于可写存储介质实现安全启动方案可以获得更好的灵活性;通过对写入数据的验证,进行可控的升级,可以防止攻击者篡改可写存储介质中的内容,达到与基于只读存储类似的安全。
安全启动可以确保智能终端所启动的系统是可信的。为了实现这一目标,需要完成两个功能:
1.确保安全启动在智能终端开机后首先运行,这样才能够由安全启动去校验其他系统镜像;
2.确保安全启动系统不能够被篡改。在安全启动完成对系统镜像的校验后,自身便会退出。此时需要确保安全启动的相关代码数据不被篡改,否则下一次启动时,安全启动便会因为被篡改而失效。
在手机的片上系统(SoC)中,通常会有一个只读的存储区域,SoC在上电之后,会默认的从此区域读取代码并执行,存储此代码的区域称为BootROM。传统的安全启动方案通常基于BootROM实现,即把代码放在BootROM中,便可满足上述的2个功能。BootROM会通过拨码开关或者其他的配置,来相对应地选择下一步的存储设备。在选择完毕后,BootROM会从选中的存储设备的约定位置(通常为启动分区)读取代码数据并执行。
本专利的主要思想便是弃用BootROM中厂商自带的安全启动机制,将其后移至存储设备中。因为在对存储设备进行配置后,移动终端会从存储设备的约定位置处执行代码,只需要将安全启动代码放在这个位置,即可实现安全启动代码被第一个启动。
同时现有的存储设备,通常有写保护功能,可以保护一部分数据不被篡改。具体而言,存储设备通常具有Power-on写保护功能,即在移动终端的一次上电开机过程中,可单次设置某一数据区域为只读,并在重启设备之前,该区域的只读状态不能再被修改。在重启后,该区域写保护将被解除。借助这一特性,本专利所实现的安全启动系统会在自身退出运行之前启动对自身的写保护,防止自身被篡改。
传统的安全启动系统基于只读的BootROM实现,无法进行更新。而本发明中安全启动系统的写保护基于Power-on写保护实现,在安全启动系统启用写保护之前;会对自身进行更新。如何有序进行可信更新,是本发明的另一个重要内容。
本发明的技术解决方案:
一方面,本发明提供一种可更新信任根的移动终端安全启动方法,包括:
1)将安全启动系统的代码存储到移动终端内可读写存储介质的被首先启动的启动分区,称为安全启动分区;将启动引导程序BootLoader存储到所述可读写存储介质的其他启动分区;在所述可读写存储介质的数据区设置安全启动辅助分区和系统分区,所述安全启动辅助分区用于存储用户发送的控制信息,所述系统分区用于存储移动终端的操作系统镜像;
2)通过拨码开关等配置移动终端的启动选项,从而确保移动终端将会从指定的可读写存储介质中读取移动终端的安全启动系统的相关代码并执行;拨码开关通常与SoC的管脚直接连接。可以配置SoC从何种存储设备读取系统镜像并启动。通常拨码开关可以配置存储设备,而SoC会从指定存储设备的固定分区(如启动分区)读取系统镜像。
3)在安全启动系统执行后,会从可读写存储介质中加载操作系统镜像至内存并对将要启动的操作系统镜像进行完整性验证;
4)安全启动系统为了实现对自身的保护,在启动操作系统前,需要配置存储设备,将自身所在的存储分区设置为只读。
进一步地,步骤2)包括:
2.1)加载安全启动系统:在移动终端上电后,处理器将从存储设备的固定存储分区位置加载需要执行的代码等数据至内存并执行。将安全启动系统相关代码存放至上述存储分区,即可实现在移动终端启动后首先执行安全启动系统;
2.2)加载操作系统镜像:安全启动系统将对移动终端的外设进行初步的初始化,随后从存储设备中加载操作系统镜像至内存;
2.3)验证操作系统镜像完整性:安全启动系统使用哈希算法计算位于内存中的操作系统镜像的哈希值,并进一步使用信任根验证镜像的完整性。信任根是一个公钥,公私钥对由设备制造商生成,并将公钥写入移动终端作为信任根。
另一方面,本发明提供一种可信的安全启动算法与信任根等数据的传递更新升级机制。所述安全启动系统首先根据所述安全启动辅助分区的控制信息确定是否更新所述移动终端的信任根;如需更新,则完成信任根更新后进行步骤3);如果不需要更新,则直接进行步骤3)。
更新信任根的方法为:安全启动系统使用信任根对将要启动的系统镜像进行验签,信任根决定了移动终端仅能够启动由信任根私钥持有者所签名的系统镜像。因此对在移动终端所有者变更后,需要同时对信任根进行变更。为了实现对信任根的可控变更,防止攻击者在信任根变更环节发起攻击,本发明使用传递更新升级机制。即移动终端的当前所有者为下一位所有者做信任背书,在移动终端的所有权被转让时,其所有者需要使用自己所持有的信任根私钥对下一位所有者的信任根进行签名,从而移动终端能够验证需要更新的信任根为可信的。在验证通过后,将对当前所存储的算法与信任根等数据进行更新。通过传递更新的方式,实现了移动终端控制权的流转。即不同所有者均可以部署自已的算法及信任根,从而安全地启动自已发布的操作系统。
本发明还提供一种移动终端,其特征在于,包括可读写存储介质,所述可读写存储介质上设有启动分区和数据区;所述启动分区中被首先启动的分区称为安全启动分区,用于存储安全启动系统的代码,所述启动分区中其他分区用于存储启动引导程序BootLoader;所述数据区设置系统启动分区和安全启动辅助分区,所述安全启动辅助分区用于存储用户发送的控制信息,所述系统启动分区用于存储移动终端的操作系统镜像;通过配置所述移动终端的启动选项,使所述移动终端从可读写存储介质中读取所述安全启动系统的相关代码并执行;所述安全启动系统首先根据所述安全启动辅助分区的控制信息确定是否更新所述移动终端的信任根,如果需要更新,则完成信任根更新后进行将安全启动分区设置为只读,然后对将要启动的操作系统镜像进行完整性验证;如果不需要更新,则直接将安全启动分区设置为只读,然后对将要启动的操作系统镜像进行完整性验证。
与现有技术相比,本发明的有益效果是:
本发明的可更新安全启动方案及系统在实现传统方案功能的同时,实现了对安全启动相关密码算法及信任根等数据的灵活更新。当移动终端的所有者变更时,可以部署新所有者所持有的安全启动方案及数据,解决了移动终端为不同所有者所持有时,信任根变更的问题。
附图说明
图1为本发明提供的一种可更新信任根的安全启动方案总体架构图。
图2为本发明提供的一种可更新信任根的安全启动方案存储分区图;
(a)未部署安全启动系统的eMMC存储分区,
(b)部署安全启动系统后eMMC存储分区。
图3为本发明提供的一种可更新信任根的安全启动方案执行流程图。
图4为本发明提供的一种传递更新机制示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进,这些都属于本发明的保护范围。
请参阅图1,本发明实施例提供一种可更新的安全启动系统,其借助嵌入式多媒体存储卡(eMMC)存储设备的写保护特性实现了可更新的安全启动系统。其中:
根据移动终端在启动后是否对安全启动系统所在的存储分区配置写保护,将设备定义为锁定与解锁状态。在锁定状态下的移动终端的操作系统将不能修改安全启动系统的配置,此时设备只能启动经过安全启动系统验证的操作系统镜像。
本发明中移动终端所运行的操作系统镜像由设备所有者提供并使用其所持有的私钥进行签名。随后,设备所有者通过移动终端的操作系统向安全启动辅助分区中写入锁定命令、安全启动系统验证所使用的信任根文件等以及上述文件的签名。安全启动系统将对上述文件进行验证,并根据相关信息配置位于写保护分区的自身实现。在配置完成后,安全启动系统的写保护将被启动,设备将处于锁定状态。在设备的拥有者使用私钥解锁设备前,其他试图改变设备锁定状态的命令将被拒绝。
请参阅图2,本发明对原有的eMMC设备分区进行了调整,新增了用于存储安全启动系统的分区。其中安全启动系统位于eMMC启动分区,并受到写保护;安全启动辅助分区位于eMMC数据分区,可以被任意读写。安全启动系统实现了移动终端安全启动所需的验证逻辑及相关算法与数据,如RSA、SHA-256、SM2、SM3等,安全启动辅助分区则存储了由所有者发送的控制信息,其可信性与完整性由所有者进行签名。
请参阅图3及图4,本发明实施例提供一种可更新的安全启动系统的实现方法,其特征在于,包括以下步骤:
(1)从安全启动辅助分区读取由所有者发送的控制命令:为了减小安全启动系统的可信计算基,其自身不包括进行网络通信等所需的组件,而是由操作系统代为与远程管理者通讯,并使用安全启动辅助分区传递给安全启动系统。
(2)根据设备的不同状态以及不同的命令做不同的处理:为了记录移动终端当前的状态,安全启动系统共维护了4个变量,分别为是否锁定、根密钥、加密算法库和解锁随机数。其中“是否锁定”记录了当前移动终端是否处于锁定状态;“根密钥”保存了当前移动终端所使用的信任根;“加密算法库”保存了当前移动终端验证系统镜像时所使用的密码算法;“解锁随机数”主要用于解锁时防止重放攻击。
安全启动系统将会首先尝试从安全启动辅助分区中读取远程的控制命令。如果不存在控制命令,则将根据当前系统的锁定状态即“是否锁定”变量的值来决定是否需要对待启动的操作系统镜像进行验证;如果存在控制命令,则使用“根密钥”中所存储的信任根对控制命令进行验证,并根据命令对设备进行相应的锁定/解锁操作。在锁定状态下,每次由安全启动系统启动操作系统镜像前将配置安全启动系统所在分区的写保护,从而保证安全启动系统无法被篡改。
在本发明的情况下,加载安全启动系统及对操作系统镜像进行验签可能带来性能损耗。实验内容为测试安全启动系统在上述两种场景下的加载和执行的性能。为降低实验误差,每个测试实验都会迭代500次然后取平均值作为最终实验结果。
(1)安全启动系统加载时间测试实验:实验内容为安全启动系统在由处理器芯片初始化时所消耗的时间,测试结果如表1所示。
表1安全启动系统加载时间测试结果
(2)操作系统镜像验证时间测试实验:实验内容为安全启动系统对操作系统镜像进行验证所消耗的时间,测试结果如表2所示。
表2操作系统镜像验证时间测试结果
操作系统镜像大小 | 128KB | 256KB | 512KB | 1MB | 2MB | 4MB |
时间 | 1.75ms | 3.41ms | 6.74ms | 13.40ms | 26.70ms | 53.33ms |
以上实验表明,本发明给操作系统的加载和执行仅带来了很小的性能开销,且上述开销仅在移动终端启动时一次性产生,不会对移动终端在启动后的执行产生影响。
以上所述仅为本发明的一个实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (7)
1.一种可更新信任根的移动终端安全启动方法,其步骤包括:
1)将安全启动系统的代码存储到移动终端内可读写存储介质被首先启动的启动分区,称为安全启动分区;将启动引导程序BootLoader存储到所述可读写存储介质的其他启动分区;在所述可读写存储介质的数据区设置系统启动分区和安全启动辅助分区,所述安全启动辅助分区用于存储用户发送的控制信息,所述系统启动分区用于存储移动终端的操作系统镜像;
2)通过配置所述移动终端的启动选项,使所述移动终端从可读写存储介质中读取所述安全启动系统的相关代码并执行;所述安全启动系统根据所述安全启动辅助分区的控制信息确定是否更新所述移动终端的信任根;如果需要更新,则完成信任根更新后进行步骤3);如果不需要更新,则直接进行步骤3);
3)所述安全启动系统将所述安全启动分区设置为只读后启动引导程序BootLoader,从所述系统启动分区中加载操作系统镜像至内存;然后所述安全启动系统对将要启动的所述操作系统镜像进行完整性验证。
2.根据权利要求1所述的方法,其特征在于,更新信任根的方法为:在移动终端的所有权被转让时,所述移动终端的原所有者使用信任根私钥对新所有者设置的新信任根进行签名,并由新所有者将该新信任根发送至所述安全启动辅助分区;所述移动终端验证对该新信任根的签名验证通过后,将所述安全启动系统当前所存储的算法与信任根进行更新。
3.根据权利要求1或2所述的方法,其特征在于,所述安全启动系统包括移动终端安全启动所需的验证逻辑及相关算法与数据。
4.根据权利要求1或2所述的方法,其特征在于,所述安全启动系统使用信任根对将要启动的系统镜像进行验签以便验证镜像完整性。
5.根据权利要求1或2所述的方法,其特征在于,通过移动终端上的拨码开关配置移动终端的启动选项。
6.根据权利要求1所述的方法,其特征在于,所述可读写存储介质为具有写保护功能的可读写存储设备。
7.一种移动终端,其特征在于,包括可读写存储介质,所述可读写存储介质上设有启动分区和数据区;所述启动分区中被首先启动的分区称为安全启动分区,用于存储安全启动系统的代码;所述启动分区中其他一分区用于存储启动引导程序BootLoader;所述数据区设置系统启动分区和安全启动辅助分区,所述安全启动辅助分区用于存储用户发送的控制信息,所述系统启动分区用于存储移动终端的操作系统镜像;通过配置所述移动终端的启动选项,使所述移动终端从可读写存储介质中读取所述安全启动系统的相关代码并执行;所述安全启动系统首先根据所述安全启动辅助分区的控制信息确定是否更新所述移动终端的信任根,如果需要更新,则完成信任根更新后进行将所述安全启动分区设置为只读,然后对将要启动的操作系统镜像进行完整性验证;如果不需要更新,则直接将所述安全启动分区设置为只读,然后对将要启动的操作系统镜像进行完整性验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211235146.5A CN115828252A (zh) | 2022-10-10 | 2022-10-10 | 一种可更新信任根的移动终端安全启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211235146.5A CN115828252A (zh) | 2022-10-10 | 2022-10-10 | 一种可更新信任根的移动终端安全启动方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115828252A true CN115828252A (zh) | 2023-03-21 |
Family
ID=85524502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211235146.5A Pending CN115828252A (zh) | 2022-10-10 | 2022-10-10 | 一种可更新信任根的移动终端安全启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115828252A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009982A (zh) * | 2023-09-26 | 2023-11-07 | 统信软件技术有限公司 | 镜像文件的安全验证方法、装置、电子设备及存储介质 |
-
2022
- 2022-10-10 CN CN202211235146.5A patent/CN115828252A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009982A (zh) * | 2023-09-26 | 2023-11-07 | 统信软件技术有限公司 | 镜像文件的安全验证方法、装置、电子设备及存储介质 |
CN117009982B (zh) * | 2023-09-26 | 2023-12-26 | 统信软件技术有限公司 | 镜像文件的安全验证方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI643130B (zh) | 用於在uefi安全開機資料庫中自動註冊任選rom的系統以及方法 | |
US9378372B2 (en) | Secure download and security function execution method and apparatus | |
US9627081B2 (en) | Manufacturing mode for secure firmware using lock byte | |
US11263326B2 (en) | Method and apparatus for secure system boot | |
US11106798B2 (en) | Automatically replacing versions of a key database for secure boots | |
US20170090909A1 (en) | Secure patch updates for programmable memories | |
EP3522059B1 (en) | Perform security action based on inventory comparison | |
TWI534610B (zh) | 用於安全選項唯讀記憶體控制的方法、媒體及計算裝置 | |
US20090193211A1 (en) | Software authentication for computer systems | |
US20060047954A1 (en) | Data access security implementation using the public key mechanism | |
US20050138409A1 (en) | Securing an electronic device | |
WO2014131652A1 (en) | A method for software anti-rollback recovery | |
CN113168474A (zh) | 固件的安全验证 | |
EP2011049A1 (en) | Selectively unlocking a core root of trust for measurement (crtm) | |
CN113486360B (zh) | 基于risc-v的安全启动方法及系统 | |
EP3851989B1 (en) | Electronic device for updating firmware based on user authentication and an operating method thereof | |
CN112685338B (zh) | 包括安全可修补rom的半导体装置及其修补方法 | |
CN115828252A (zh) | 一种可更新信任根的移动终端安全启动方法 | |
CN112613011B (zh) | U盘系统认证方法、装置、电子设备及存储介质 | |
CN112231709B (zh) | 一种带远程升级功能的系统安全设计方法 | |
CN116756730A (zh) | SoC芯片多级流程控制的可信启动方法及硬件可信根 | |
US10417429B2 (en) | Method and apparatus for boot variable protection | |
CN117813795A (zh) | 设备身份密钥 | |
JP2007164681A (ja) | 認証方法、認証プログラム、認証システムおよびメモリカード | |
US11989300B2 (en) | Firmware secure boot customization extensions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |