CN109614798A - 安全启动方法、装置及终端设备 - Google Patents
安全启动方法、装置及终端设备 Download PDFInfo
- Publication number
- CN109614798A CN109614798A CN201710928376.2A CN201710928376A CN109614798A CN 109614798 A CN109614798 A CN 109614798A CN 201710928376 A CN201710928376 A CN 201710928376A CN 109614798 A CN109614798 A CN 109614798A
- Authority
- CN
- China
- Prior art keywords
- outer boot
- boot
- ddr
- code
- signature
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/412—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
一种安全启动方法、装置及终端设备,该方法包括:将第一片外Boot的代码和安全签名拷贝到SRAM中进行签名校验,第一片外Boot实现的功能包括初始化DDR,初始化DDR包括配置DDR安全区;对第一片外Boot签名校验成功后,在SRAM中执行第一片外Boot的代码,实现初始化DDR以及配置DDR安全区;将第二片外Boot的代码和安全签名拷贝到DDR的安全区进行签名校验,第二片外Boot是片外Boot中除第一片外Boot以外的其他全部Boot;对第二片外Boot签名校验成功后,在DDR的安全区中执行第二片外Boot的代码。本发明实施例能防止安全启动过程中特定时间窗内的安全漏洞,提高系统安全。
Description
技术领域
本发明实施例涉及计算机领域,尤其涉及一种安全启动方法、装置及终端设备。
背景技术
系统安全是为了支持安全启动以及保证系统在可信环境中运行的一整套软硬件方案。基于ARM架构的系统安全方案通常由安全启动(Secure Boot)和信任区域(TrustZone)技术结合而成。Secure Boot是系统安全的基础,负责整个安全系统的初始化过程。根据可信的完整性理论,系统的安全启动是整个系统安全的可信根,只有保证了系统启动的安全,才能保证系统其他各部件的安全。
系统安全启动时,系统采取逐级校验签名,校验通过之后引导后续的过程。通常安全签名和代码存储在片外(通常是闪存FLASH),系统首先由片内Boot启动,对片外启动代码签名校验校验通过后,切换到片外启动代码执行,引导后续启动程序。参见图1,是现有技术中的一种安全启动过程的示意图。如图1所示,片内Boot和静态随机存储器(Static RandomAccess Memory,SRAM)为安全区。系统上电后首先在片内Boot运行安全启动代码(Boot ROMSecure Boot Code,BSBC),完成必要的初始化配置之后,将下一级节点片外Boot拷贝到SRAM进行签名校验。由于SRAM的成本较高,通常不会超过256KB,远小于片外Boot的大小,拷贝和签名校验动作只能采取多次分段覆盖的方式,无法在安全区保留完整的片外Boot代码,签名校验成功之后,再跳到片外Boot起始地址处启动代码执行。
BSBC对片外Boot的拷贝和签名校验分段进行,拷贝通常走局部总线(localbus)通道速率慢,10M片外Boot的分段拷贝和签名校验时间估计需要2s,签名校验成功之后直接跳转到片外Boot起始地址处启动代码执行。由于片外Boot为非安全区,在这2s的时间窗内通过篡改片外Boot代码能够攻破安全启动流程,因此存在系统安全漏洞。
发明内容
本发明实施例提供了一种安全启动方法、装置及终端设备,能够防止通常安全启动过程中特定时间窗内的安全漏洞,提高了系统安全。
本发明实施例具体可以通过如下技术方案实现:
第一方面,本发明实施例提供了一种安全启动方法,该方法包括:将第一片外Boot的代码以及所述第一片外Boot的安全签名拷贝到静态随机存储器SRAM中进行签名校验,所述第一片外Boot实现的功能包括初始化双倍速率同步动态随机存储器DDR,所述初始化DDR过程包括配置DDR安全区;在对所述第一片外Boot签名校验成功后,在SRAM中执行所述第一片外Boot的代码,实现初始化DDR以及配置所述DDR安全区;将第二片外Boot的代码以及所述第二片外Boot的安全签名拷贝到所述DDR的安全区进行签名校验,所述第二片外Boot是片外Boot中除所述第一片外Boot以外的其他全部Boot;在对所述第二片外Boot签名校验成功后,在所述DDR的安全区中执行所述第二片外Boot的代码。本发明实施例中,通过增加第一片外Boot,在SRAM中在对第一片外Boot签名校验成功后,执行第一片外Boot的代码实现初始化DDR以及配置所述DDR安全区,进而将除第一片外Boot以外的其他所有片外Boot(即本发明实施例中的第二片外Boot)的签名校验以及执行代码的过程均在DDR安全区进行,避免了现有技术中先在SRAM安全区进行签名校验之后再跳转到非安全区的FLASH中执行代码期间的代码被篡改风险,提高了系统启动过程的安全性。
在一种可能的设计中,所述第一片外Boot为片外Boot中新增的一级Boot。本发明实施例中,新增一级Boot专门用于初始化DDR以及配置DDR安全区,从而使得在对第一片外Boot签名校验成功后,配置一个容量较大的DDR安全区,用于校验第二片外Boot以及执行第二片外Boot的代码。从而实现第二片外Boot的一次性拷贝、校验。解决了签名校验和跳转到片外Boot执行的时间窗内(大约2s)可以篡改片外Boot(处于非安全区)的安全漏洞。
在一种可能的设计中,所述第一片外Boot的容量小于或等于SRAM的容量。本发明实施例中,第一片外Boot由于功能单一,可以做到小于128KB(或者256KB),片内Boot能一次性完成第一片外Boot的拷贝,从而解决了签名校验和跳转到片外Boot执行的时间窗内(大约2s)可以篡改片外Boot(处于非安全区)的安全漏洞。
第二方面,本发明实施例提供了一种安全启动装置,该装置包括用于执行上述第一方面所描述的安全启动方法的模块或单元。
第三方面,本发明实施例提供了一种终端设备,该终端设备包括处理器和存储器。其中,所述处理器用于调用所述存储器存储的安全启动程序指令执行上述第一方面所提供的安全启动方法。
第四方面,本发明实施例提供了一种计算机存储介质,用于存储用于执行上述第一方面所述的安全启动方法的计算机软件程序指令,所述程序指令当被所述处理器执行时使所述处理器执行如上述第一方面所述的安全启动方法。
第五方面,本发明实施例提供了一种计算机程序,该程序包括计算机软件程序指令,所述程序指令当被所述处理器执行时使所述处理器执行如上述第一方面所述的安全启动方法。
附图说明
图1是现有技术中的一种安全启动过程的示意图;
图2是本发明实施例提供的一种安全启动方法的流程示意图;
图3是本发明实施例提供的一种签名校验过程的示意图;
图4是本发明实施例提供的一种安全启动装置的结构示意图;
图5是本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
为了使本发明的技术方案及有益效果更加清楚,以下结合附图及实施例,对本发明进行进一步详细说明。
本发明实施例中的安全启动方法适用于各种带有处理器(Central ProcessingUnit,简称:CPU)的终端设备,包括服务器、计算设备、车载设备、可穿戴设备、以及各种形式的用户设备(User Equipment,UE),移动台(Mobile station,MS),终端(terminal),终端设备(Terminal Equipment)、嵌入式设备(比如基站设备中的嵌入式单板)等等。其中,CPU可以是ARM CPU,或者其他类型CPU,本发明实施例不作具体限定。
本发明实施例适用于安全启动场景,例如:ARM架构的系统安全启动。本发明实施例以系统安全启动为例进行说明。
结合图2,是本发明实施例提供的一种安全启动方法的流程示意图,该方法的执行主体为处理器(CPU)。
步骤1:系统上电启动。
系统上电后首先在片内启动引导程序(Boot)运行BSBC,完成必要的初始化配置之后,执行步骤2。
步骤2:将第一片外Boot的代码以及所述第一片外Boot的安全签名拷贝到SRAM中进行签名校验,签名校验成功后,执行步骤3,所述第一片外Boot实现的功能包括初始化DDR,所述初始化DDR过程包括配置DDR安全区。
本发明实施例中,可以将第一片外Boot的代码以及所述第一片外Boot的安全签名一次性拷贝到SRAM中。
签名校验的过程具体可以参见图3。利用第一片外Boot的安全签名对第一片外Boot的代码进行签名验证,以验证第一片外Boot的代码是否被篡改过。
需要说明的是,本发明实施例中的第一片外Boot是片外Boot新增加的一级Boot,该新增的片外Boot的功能主要完成DDR的初始化(设备上的已有硬件),DDR初始化过程中包括配置DDR安全区的过程。初始化DDR过程中除配置DDR安全区以外的其他过程为现有技术,本发明实施例对此不作特别说明。配置DDR安全区可以包括但不限于如下过程:指定某一段地址区间是安全的,只能通过特定的安全的访问方式去访问该段地址区间,而不能采用非安全的访问方式去访问、配置DDR安全区的容量。DDR区域是安全的是因为:DDR不易被第三方通过软件进行代码篡改,相较于片外存储器(例如FLASH)来说,安全级别更高。
本发明实施例中,第一片外Boot由于功能单一,可以做到小于128KB(或者256KB),片内Boot能一次性完成第一片外Boot的拷贝,从而解决了签名校验和跳转到片外Boot执行的时间窗内(大约2s)可以篡改片外Boot(处于非安全区)的安全漏洞。
步骤3:在SRAM中执行所述第一片外Boot的代码,实现初始化DDR以及配置所述DDR安全区。
通常的计算机系统,SRAM容量较小(一般128KB或者256KB),而DDR空间容量较大(通常为1GB以上)。由于DDR空间很大,后续安全启动流程可以将除所述第一片外Boot以外的其他片外Boot一次性拷贝到DDR安全区内执行,解决现有技术中的多次拷贝分段校验签名完成之后跳转到非安全的FLASH空间上执行代码期间的时间窗安全漏洞。
步骤4:将第二片外Boot的代码以及所述第二片外Boot的安全签名拷贝到所述DDR的安全区进行签名校验,所述第二片外Boot是片外Boot中除所述第一片外Boot以外的其他全部Boot,签名校验成功后,执行步骤5。
本发明实施例中,可以将第二片外Boot的代码以及所述第二片外Boot的安全签名一次性拷贝到DDR的安全区中。
签名校验的过程具体可以参见图3。利用第二片外Boot的安全签名对第二片外Boot的代码进行签名验证,以验证第二片外Boot的代码是否被篡改过。
步骤5:在所述DDR的安全区中执行所述第二片外Boot的代码。
本发明实施例中,对第一片外Boot和第二片外Boot的校验签名和执行代码均在SRAM或者DDR的安全区进行,提高了系统启动过程的安全性。
通过实施本发明实施例,通过增加第一片外Boot,在SRAM中在对第一片外Boot签名校验成功后,执行第一片外Boot的代码实现初始化DDR以及配置所述DDR安全区,进而将除第一片外Boot以外的其他所有片外Boot的签名校验以及执行代码的过程均在DDR安全区进行,避免了现有技术中先在SRAM安全区进行签名校验之后再跳转到非安全区的FLASH中执行代码期间的代码被篡改风险,提高了系统启动过程的安全性。
结合图3,下面对签名校验过程进行介绍。
系统启动代码(系统的某个版本对应的启动代码,System Code)在进行启动时,需要先进行签名安全校验,以确保系统启动代码没有被篡改。图3为系统安全启动相关的签名校验过程示意图,图3所示的示意图中采用eFuse模块存储密钥等与安全相关的内容。
签名校验的原理可以为:采用基于RSA非对称加密算法,使用私钥签名,公钥校验的签名校验机制来构建安全启动的信任链。
芯片商随机生成非对称性密钥对,并将公钥Hash值和私钥指数烧入Efuse,公钥写到Flash指定位置,设备商使用一单向散列函数:哈希(Hash)函数对系统启动代码生成信息摘要,然后使用Efuse私钥对信息摘要进行加密,即数字签名,签名后的信息摘要与系统启动代码放在一起,写到片外存储器,片外存储器通常是FLASH,例如,图2中所示为非易失性随机访问存储器(Non-Volatile Random Access Memory,NVRAM),公私钥对由芯片内部产生,烧写与校验过程不可见,且不备份。
安全启动时,系统由片内Boot启动,片内Boot ROM包含最小系统初始化和签名校验安全校验程序,先对Flash中的公钥生成Hash值,与Efuse的可信公钥根(Root Of TrustPublic Key,ROTPK)比对,所述可信公钥根是安全启动使用的EK公钥(N,e)的SHA256Hash值,以保证校验签名使用的公钥是唯一指定的。如果通过则对片外系统启动代码生成Hash摘要值,再使用公钥校验签名得到原始Hash摘要值,对这两个信息摘要值进行校验,就知道系统启动代码是否被篡改过,是否是预期授权的代码。片外系统启动代码签名校验校验通过后,切换到片外系统启动代码执行,引导后续启动程序。
以上是对本发明实施例中的版本校验方法进行的介绍,下面对本发明实施例中的安全启动装置进行介绍。
请参见图4,是本发明实施例提供的一种安全启动装置的结构示意图。如图4所示,安全启动装置40包括:拷贝单元401、签名校验单元402和执行单元403。
在本发明实施例中,拷贝单元401,用于将第一片外Boot的代码以及所述第一片外Boot的安全签名拷贝到静态随机存储器SRAM中;
签名校验单元402,用于对所述第一片外Boot的代码进行签名校验,所述第一片外Boot实现的功能包括初始化双倍速率同步动态随机存储器DDR,所述初始化DDR过程包括配置DDR安全区;
执行单元403,用于在所述签名校验单元402对所述第一片外Boot的代码进行签名校验成功后,在SRAM中执行所述第一片外Boot的代码,实现初始化DDR以及配置所述DDR安全区;
拷贝单元401,还用于将第二片外Boot的代码以及所述第二片外Boot的安全签名拷贝到所述DDR的安全区,所述第二片外Boot是片外Boot中除所述第一片外Boot以外的其他全部Boot;
签名校验单元402,还用于对所述第二片外Boot的代码进行签名校验;
执行单元403,还用于在签名校验单元402对所述第二片外Boot的代码进行签名校验成功后,在所述DDR的安全区中执行所述第二片外Boot的代码。
具体的,所述第一片外Boot为片外Boot中新增的一级Boot。
具体的,所述第一片外Boot的容量小于或等于SRAM的容量。
需要说明的是,本发明实施例所描述的安全启动装置40中各功能模块的功能可参见上述图2所示实施例中的相关描述,此处不再赘述。
另外,本发明实施例还提供了一种芯片,该芯片用于执行程序代码,以执行上述安全启动方法实施例的全部或部分步骤。
此外,本发明实施例还提供了一种终端设备,该终端设备可以以一个用户设备(例如:手机)的形式存在。该终端设备还可以包括手持设备、车载设备、可穿戴设备、计算设备,以及各种形式的用户设备。手持设备可以为包括手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、等任意终端设备。
请参见图5,是本发明实施例提供的一种终端设备的结构示意图。参考图5,终端设备50包括:射频(Radio Frequency,RF)电路510、存储器520、输入装置530、输出装置540、传感器550、音频电路560、无线保真(Wireless Fidelity,WiFi)模块570、处理器580、以及电源590等部件。其中,射频电路510、WiFi模块570为收发器。本领域技术人员可以理解,图5中示出的终端设备的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图5对终端设备的各个构成部件进行具体的介绍:
存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行终端设备50的各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端设备50的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
具体的,存储器520存储的应用程序为执行时包括上述图2所对应的方法中的部分或者全部步骤。存储器520中存储片外Boot的安全签名以及片外Boot的代码等信息。
输入单元530可用于接收输入的数字或字符信息,以及产生与终端设备50的用户设置以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入设备532。触控面板531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板531上或在触控面板531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器580,并能接收处理器580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板531。除了触控面板531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元540可用于显示由用户输入的信息或提供给用户的信息。显示单元540可包括显示面板541,可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图5中,触控面板531与显示面板541是作为两个独立的部件来实现终端设备50的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现终端设备50的输入和输出功能。
处理器580是终端设备50的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行终端设备50的各种功能和处理数据,从而对终端设备50进行整体监控。可选的,处理器580可包括一个或多个处理单元;优选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
具体的,本发明实施例中的处理器580用于执行存储器520中的应用程序,以执行图2实施例中的处理器所执行的部分或者全部步骤。
终端设备50还可包括至少一种传感器550、电源590,尽管未示出,终端设备50还可以包括摄像头、蓝牙模块等,在此不再赘述。
另外,本发明实施例还提供了一种计算机存储介质,该介质存储有计算机软件程序指令,该计算机软件程序指令被处理器执行时使所述处理器执行上述安全启动方法中的部分或者全部步骤。
结合本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件程序指令的方式来实现。软件程序指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、可擦除可编程只读存储器(ErasableProgrammable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于终端设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个程序指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明实施例的具体实施方式而已,并不用于限定本发明实施例的保护范围,凡在本发明实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明实施例的保护范围之内。
Claims (9)
1.一种安全启动方法,其特征在于,包括:
将第一片外Boot的代码以及所述第一片外Boot的安全签名拷贝到静态随机存储器SRAM中进行签名校验,所述第一片外Boot实现的功能包括初始化双倍速率同步动态随机存储器DDR,所述初始化DDR过程包括配置DDR安全区;
在对所述第一片外Boot签名校验成功后,在SRAM中执行所述第一片外Boot的代码,实现初始化DDR以及配置所述DDR安全区;
将第二片外Boot的代码以及所述第二片外Boot的安全签名拷贝到所述DDR的安全区进行签名校验,所述第二片外Boot是片外Boot中除所述第一片外Boot以外的其他全部Boot;
在对所述第二片外Boot签名校验成功后,在所述DDR的安全区中执行所述第二片外Boot的代码。
2.根据权利要求1所述的方法,其特征在于,所述第一片外Boot为片外Boot中新增的一级Boot。
3.根据权利要求1或2所述的方法,其特征在于,所述第一片外Boot的容量小于或等于SRAM的容量。
4.一种安全启动装置,其特征在于,包括:
拷贝单元,用于将第一片外Boot的代码以及所述第一片外Boot的安全签名拷贝到静态随机存储器SRAM中;
签名校验单元,用于对所述第一片外Boot的代码进行签名校验,所述第一片外Boot实现的功能包括初始化双倍速率同步动态随机存储器DDR,所述初始化DDR过程包括配置DDR安全区;
执行单元,用于在所述签名校验单元对所述第一片外Boot的代码进行签名校验成功后,在SRAM中执行所述第一片外Boot的代码,实现初始化DDR以及配置所述DDR安全区;
所述拷贝单元,还用于将第二片外Boot的代码以及所述第二片外Boot的安全签名拷贝到所述DDR的安全区,所述第二片外Boot是片外Boot中除所述第一片外Boot以外的其他全部Boot;
所述签名校验单元,还用于对所述第二片外Boot的代码进行签名校验;
所述执行单元,还用于在所述签名校验单元对所述第二片外Boot的代码进行签名校验成功后,在所述DDR的安全区中执行所述第二片外Boot的代码。
5.根据权利要求4所述的方法,其特征在于,所述第一片外Boot为片外Boot中新增的一级Boot。
6.根据权利要求4或5所述的方法,其特征在于,所述第一片外Boot的容量小于或等于SRAM的容量。
7.一种终端设备,其特征在于,包括处理器和存储器,所述存储器用于存储程序指令和/或数据,所述处理器用于执行所述存储器中的程序指令和/或数据,执行如下操作:
将第一片外Boot的代码以及所述第一片外Boot的安全签名拷贝到静态随机存储器SRAM中进行签名校验,所述第一片外Boot实现的功能包括初始化双倍速率同步动态随机存储器DDR,所述初始化DDR过程包括配置DDR安全区;
在对所述第一片外Boot签名校验成功后,在SRAM中执行所述第一片外Boot的代码,实现初始化DDR以及配置所述DDR安全区;
将第二片外Boot的代码以及所述第二片外Boot的安全签名拷贝到所述DDR的安全区进行签名校验,所述第二片外Boot是片外Boot中除所述第一片外Boot以外的其他全部Boot;
在对所述第二片外Boot签名校验成功后,在所述DDR的安全区中执行所述第二片外Boot的代码。
8.根据权利要求7所述的方法,其特征在于,所述第一片外Boot为片外Boot中新增的一级Boot。
9.根据权利要求7或8所述的方法,其特征在于,所述第一片外Boot的容量小于或等于SRAM的容量。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710928376.2A CN109614798B (zh) | 2017-09-30 | 2017-09-30 | 安全启动方法、装置及终端设备 |
PCT/CN2018/108857 WO2019062993A1 (zh) | 2017-09-30 | 2018-09-29 | 安全启动方法、装置及终端设备 |
EP18861963.9A EP3678039B1 (en) | 2017-09-30 | 2018-09-29 | Secure startup method and apparatus, and terminal device |
US16/832,922 US11238161B2 (en) | 2017-09-30 | 2020-03-27 | Secure boot and apparatus, and terminal device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710928376.2A CN109614798B (zh) | 2017-09-30 | 2017-09-30 | 安全启动方法、装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614798A true CN109614798A (zh) | 2019-04-12 |
CN109614798B CN109614798B (zh) | 2022-12-27 |
Family
ID=65900738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710928376.2A Active CN109614798B (zh) | 2017-09-30 | 2017-09-30 | 安全启动方法、装置及终端设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11238161B2 (zh) |
EP (1) | EP3678039B1 (zh) |
CN (1) | CN109614798B (zh) |
WO (1) | WO2019062993A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110210210A (zh) * | 2019-05-27 | 2019-09-06 | 北京中电华大电子设计有限责任公司 | 一种终端设备的逻辑安全设计方法和物理安全设计结构 |
CN110825421A (zh) * | 2019-11-29 | 2020-02-21 | 湖南国科微电子股份有限公司 | 一种固件升级方法、系统及可读存储介质 |
CN112287358A (zh) * | 2020-11-12 | 2021-01-29 | 瑞芯微电子股份有限公司 | 一种芯片安全防御方法和系统 |
CN113961939A (zh) * | 2021-12-20 | 2022-01-21 | 北京智芯微电子科技有限公司 | 嵌入式操作系统安全的防护方法和系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11423152B2 (en) * | 2019-06-11 | 2022-08-23 | Facebook Technologies, Llc | Randomized clock cycle lengths for boot sequences |
WO2020259285A1 (zh) * | 2019-06-28 | 2020-12-30 | 珠海奔图电子有限公司 | 图像形成装置及图像形成装置用安全控制系统 |
EP3929784A1 (de) * | 2020-06-23 | 2021-12-29 | Siemens Aktiengesellschaft | Booteinrichtung für ein computerelement und verfahren zum booten eines computerelements |
DE102022129350A1 (de) | 2022-11-07 | 2024-05-08 | Infineon Technologies Ag | Fahrzeug, Vorrichtung, Computerprogramm und Verfahren zum Laden von Daten |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080165952A1 (en) * | 2007-01-07 | 2008-07-10 | Michael Smith | Secure Booting A Computing Device |
CN101751273A (zh) * | 2008-12-15 | 2010-06-23 | 中国科学院声学研究所 | 用于嵌入式系统的安全引导装置及方法 |
CN104794393A (zh) * | 2015-04-24 | 2015-07-22 | 杭州字节信息技术有限公司 | 一种嵌入式分区映像安全认证及内核可信引导方法及其设备 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7676640B2 (en) * | 2000-01-06 | 2010-03-09 | Super Talent Electronics, Inc. | Flash memory controller controlling various flash memory cells |
US7987351B2 (en) * | 2006-10-06 | 2011-07-26 | Broadcom Corporation | Method and system for enhanced boot protection |
US7793090B2 (en) * | 2007-08-30 | 2010-09-07 | Intel Corporation | Dual non-volatile memories for a trusted hypervisor |
US7886141B2 (en) * | 2007-10-27 | 2011-02-08 | Asix Electronics Corporation | Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems |
US20150161600A1 (en) * | 2009-10-26 | 2015-06-11 | Gmx Sas | Transactor for use in connection with transactions involving secure and non-secure information |
CN102388365B (zh) * | 2011-09-27 | 2014-03-26 | 华为技术有限公司 | 一种处理器启动方法及装置 |
KR101927435B1 (ko) * | 2011-12-22 | 2018-12-11 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
CN103514414A (zh) | 2012-06-26 | 2014-01-15 | 上海盛轩网络科技有限公司 | 一种基于ARM TrustZone的加密方法及加密系统 |
US9100174B2 (en) * | 2012-08-31 | 2015-08-04 | Freescale Semiconductor, Inc. | Secure provisioning in an untrusted environment |
KR101954733B1 (ko) * | 2012-10-26 | 2019-03-06 | 삼성전자주식회사 | 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치 |
US9575768B1 (en) * | 2013-01-08 | 2017-02-21 | Marvell International Ltd. | Loading boot code from multiple memories |
EP2989583B1 (en) * | 2013-04-23 | 2018-10-10 | Hewlett-Packard Development Company, L.P. | Configuring a system |
WO2014175865A1 (en) * | 2013-04-23 | 2014-10-30 | Hewlett-Packard Development Company, L.P. | Repairing compromised system data in a non-volatile memory |
CN103677912B (zh) * | 2013-12-06 | 2017-12-01 | 华为技术有限公司 | 芯片及其启动方法 |
US20150339195A1 (en) * | 2014-05-23 | 2015-11-26 | Sandisk Technologies Inc. | Method and system for secure system recovery |
US10798108B2 (en) * | 2014-11-14 | 2020-10-06 | Marvell Asia Pte, Ltd. | Apparatus and method for a multi-entity secure software transfer |
CN106934289A (zh) * | 2015-12-30 | 2017-07-07 | 北京展讯高科通信技术有限公司 | 校验及形成签名映像的方法 |
-
2017
- 2017-09-30 CN CN201710928376.2A patent/CN109614798B/zh active Active
-
2018
- 2018-09-29 EP EP18861963.9A patent/EP3678039B1/en active Active
- 2018-09-29 WO PCT/CN2018/108857 patent/WO2019062993A1/zh unknown
-
2020
- 2020-03-27 US US16/832,922 patent/US11238161B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080165952A1 (en) * | 2007-01-07 | 2008-07-10 | Michael Smith | Secure Booting A Computing Device |
CN101578609A (zh) * | 2007-01-07 | 2009-11-11 | 苹果公司 | 安全启动计算设备 |
CN101751273A (zh) * | 2008-12-15 | 2010-06-23 | 中国科学院声学研究所 | 用于嵌入式系统的安全引导装置及方法 |
CN104794393A (zh) * | 2015-04-24 | 2015-07-22 | 杭州字节信息技术有限公司 | 一种嵌入式分区映像安全认证及内核可信引导方法及其设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110210210A (zh) * | 2019-05-27 | 2019-09-06 | 北京中电华大电子设计有限责任公司 | 一种终端设备的逻辑安全设计方法和物理安全设计结构 |
CN110825421A (zh) * | 2019-11-29 | 2020-02-21 | 湖南国科微电子股份有限公司 | 一种固件升级方法、系统及可读存储介质 |
CN110825421B (zh) * | 2019-11-29 | 2023-08-22 | 湖南国科微电子股份有限公司 | 一种固件升级方法、系统及可读存储介质 |
CN112287358A (zh) * | 2020-11-12 | 2021-01-29 | 瑞芯微电子股份有限公司 | 一种芯片安全防御方法和系统 |
CN113961939A (zh) * | 2021-12-20 | 2022-01-21 | 北京智芯微电子科技有限公司 | 嵌入式操作系统安全的防护方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200226264A1 (en) | 2020-07-16 |
EP3678039A1 (en) | 2020-07-08 |
CN109614798B (zh) | 2022-12-27 |
WO2019062993A1 (zh) | 2019-04-04 |
EP3678039A4 (en) | 2020-10-07 |
EP3678039B1 (en) | 2022-11-02 |
US11238161B2 (en) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614798A (zh) | 安全启动方法、装置及终端设备 | |
US10735427B2 (en) | Method and apparatus for managing program of electronic device | |
US9916452B2 (en) | Self-contained cryptographic boot policy validation | |
CN107402663B (zh) | 指纹验证方法和用于执行该方法的电子设备 | |
CN101578609B (zh) | 安全启动计算设备 | |
CN106650460B (zh) | 一种版本校验方法、装置及终端设备 | |
US10289842B2 (en) | Method and apparatus for protecting kernel control-flow integrity using static binary instrumentation | |
US11057216B2 (en) | Protection method and protection system of system partition key data and terminal | |
US8776040B2 (en) | Protection for unauthorized firmware and software upgrades to consumer electronic devices | |
US20140250291A1 (en) | Continuation of trust for platform boot firmware | |
CN110457894B (zh) | root权限的分配方法、装置、存储介质及终端设备 | |
US8819330B1 (en) | System and method for updating a locally stored recovery image | |
US20130067236A1 (en) | Systems for validating hardware devices | |
CN109753793B (zh) | 一种热补丁方法及热补丁装置 | |
KR102227263B1 (ko) | 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치 | |
KR20190032861A (ko) | 전자 장치 및 그의 제어 방법 | |
CN116266467A (zh) | 具有安全启动更新及自动恢复的存储器装置 | |
CN106295363B (zh) | 开机校验方法及装置 | |
JP5085778B1 (ja) | 情報処理装置、起動制御方法およびプログラム | |
US20190324923A1 (en) | Serial peripheral interface filter for processor security | |
CN106462478B (zh) | 数据恢复方法、装置以及终端 | |
CN108990041A (zh) | 一种进行主副卡设置的方法和设备 | |
KR102411920B1 (ko) | 전자 장치 및 그 제어 방법 | |
US20190087580A1 (en) | Secure launch for a hypervisor |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |