CN112069506A - 一种安全启动方法和装置 - Google Patents
一种安全启动方法和装置 Download PDFInfo
- Publication number
- CN112069506A CN112069506A CN202010974197.4A CN202010974197A CN112069506A CN 112069506 A CN112069506 A CN 112069506A CN 202010974197 A CN202010974197 A CN 202010974197A CN 112069506 A CN112069506 A CN 112069506A
- Authority
- CN
- China
- Prior art keywords
- program
- memory
- address space
- loading
- secure
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000015654 memory Effects 0.000 claims abstract description 238
- 238000004590 computer program Methods 0.000 claims description 9
- 230000009191 jumping Effects 0.000 claims description 5
- 230000003068 static effect Effects 0.000 claims description 4
- 231100000279 safety data Toxicity 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 9
- 238000012795 verification Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 101001070329 Geobacillus stearothermophilus 50S ribosomal protein L18 Proteins 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000004069 differentiation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000007858 starting material Substances 0.000 description 1
Images
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/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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
公开了一种安全启动方法及装置。该方法包括:在第二存储器中,通过第一程序加载第二程序,其中,所述第一程序存储在第一存储器的安全地址空间中;在第三存储器的普通地址空间中,通过所述第二程序加载操作系统;在所述第二存储器和所述第三存储器各自的至少一个的安全地址空间中,通过所述第二程序加载第三程序;以及通过所述第三程序将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。在降低SRAM等硬件资源需求的同时可以实现对大型安全数据的加载和解密,防止芯片安全数据的泄漏和免于非法攻击,在降低系统成本的同时提高了芯片等装置的安全性。
Description
技术领域
本申请涉及芯片技术领域,尤其涉及一种安全启动方法、装置、多处理器集成装置以及计算机可读存储介质。
背景技术
在芯片厂商给客户提供SoC(System on Chip,称为系统级芯片)解决方案时,其内部通常存储有各种安全属性不同的数据、逻辑代码等敏感信息,如果这些信息被破解获取,将造成商业秘密等知识产权的泄漏;同时,如果这些信息在系统启动过程中遭受攻击者的非法修改,将导致系统安全性受到影响。另一方面,SoC芯片一般采用存取速度快的SRAM作为片内缓存,如果保密数据都读取至SRAM,使用大量的SRAM存放将提高系统的硬件成本。
发明内容
为了解决上述技术问题,提出了本申请。本申请的实施例提供了一种可应用于例如SoC芯片的安全启动方法及装置。
根据本申请的一个方面,提供了一种安全启动方法,包括:
在第二存储器中,通过第一程序加载第二程序,其中,所述第一程序存储在第一存储器的安全地址空间中;
在第三存储器的普通地址空间中,通过所述第二程序加载操作系统;
在所述第二存储器和所述第三存储器各自的至少一个的安全地址空间中,通过所述第二程序加载第三程序;以及
通过所述第三程序将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。
根据本申请的另一方面,提供了一种安全启动装置,包括:
引导模块,配置为在第二存储器中,通过第一程序加载第二程序,其中,所述第一程序存储在第一存储器的安全地址空间中;
第一加载模块,配置为在第三存储器的普通地址空间中,通过所述第二程序加载操作系统;
第二加载模块,配置为在所述第二存储器和所述第三存储器各自的至少一个的安全地址空间中,通过所述第二程序加载第三程序;以及
数据操作模块,配置为通过所述第三程序将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。
根据本申请的另一方面,提供了一种处理器集成装置,包括第一处理器、第一存储器、第二存储器和第三存储器,其中,所述第一处理器被配置为:
通过第一程序,在所述第二存储器中加载第二程序,其中,所述第一程序存储在所述第一存储器的安全地址空间中;
通过所述第二程序,在所述第三存储器的普通地址空间中加载操作系统;
通过所述第二程序,在所述第二存储器和所述第三存储器中的至少一个的安全地址空间中加载第三程序;以及
通过所述第三程序,将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。
根据本申请的另一方面,提供了一种电子设备,包括:多个处理器;以及用于存储所述多个处理器中的第一处理器可执行的指令的至少一个存储器;所述第一处理器用于从所述至少一个存储器中读取所述指令,并执行所述指令以实现上述安全启动方法。
另外,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行上述安全启动方法。
通过根据本申请的示例的方法和装置,在芯片中定义了多个程序(第一程序、第二程序、以及第三程序)来引导启动,提高了芯片软件的可升级性,此外,在降低SRAM等硬件资源需求的同时可以实现对大型安全数据的加载和解密,对芯片运行时的保密数据实施分级保护,防止芯片安全数据的泄漏和免于非法攻击,在降低系统成本的同时提高了芯片的安全性。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是典型Linux系统的程序镜像结构示意图。
图2是本申请一示例性实施例将芯片资源进行划分的结构示意图。
图3是本申请一示例性实施例提供的安全启动方法的流程示意图。
图4是本申请一示例性实施例提供的对程序镜像进行加密的示意图。
图5是本申请一示例性实施例提供的对程序镜像进行加载解密的示意图。
图6是本申请另一示例性实施例提供的对程序镜像进行加密的示意图。
图7是本申请另一示例性实施例提供的对程序镜像进行加载和解密的示意图。
图8是本申请一示例性实施例提供的加载操作系统的流程示意图。
图9是本申请一示例性实施例提供的加载第二程序的流程示意图。
图10是本申请一示例性实施例提供的在芯片的安全世界和普通世界进行启动引导的执行过程示意图。
图11是本申请另一示例性实施例提供的在芯片的安全世界和普通世界进行启动引导的执行过程示意图。
图12是本申请又一示例性实施例提供的在芯片的安全世界和普通世界进行启动引导的执行过程示意图。
图13是本申请一示例性实施例提供的安全启动装置的结构示意图。
图14是本申请一示例性实施例提供的处理器集成装置的结构示意图。
图15是本申请一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。
申请概述
随着芯片计算处理能力的增强,采用SoC片上系统的嵌入式设备已经成为计算机辅助驾驶领域、工业互联网领域等应用领域的选择。嵌入式设备具有移动便利、不可修改和实时性较强等特点,可以嵌入到现有的交通设备、工业设施等控制系统中。另一方面,由于嵌入式设备的功能的不断扩展,此类设备及相关系统内可能包含算法、核心数据等敏感信息,对这些极具价值的信息进行有效保护是芯片、嵌入式设备的生产厂商需要面对的问题。
敏感信息的泄漏风险可能发生在设备上电启动时,以采用Linux内核的嵌入式设备为例,图1示出了典型的Linux系统的镜像示意图,其包括引导程序(Bootloader)、操作系统内核(kernel)以及文件系统,芯片启动过程的第一个引导程序一般位于烧录在设备中的只读存储器(ROM)中,引导程序初始化内存并加载运行内核。内核运行后,会初始化各种子设备以及挂载文件系统,从而在正常启动后调用各种应用程序来执行相应操作。文件系统中除了初始化设备的根文件系统外,还可能包含程序代码、执行参数等敏感数据。如果对这些数据没有有效保护,恶意软件可能会在镜像文件导入内存时窃取编译代码等数据,若将其进行反编译分析很容易发现代码的执行逻辑和敏感数据,造成生产商的知识产权泄漏。此外,对于自动驾驶、人脸识别等特定的应用场景中,如果算法的逻辑和数据被攻击者非法修改,将导致自动驾驶功能的安全性、人脸识别的准确性受到影响,引发其他的风险。
针对上述技术问题,本申请的基本构思是提出一种安全启动方法、装置、电子设备及计算机可读存储介质,在执行启动时,在第二存储器中,通过存储在第一存储器的安全地址空间中的第一程序加载第二程序;在第三存储器的普通地址空间中,通过所述第二程序加载操作系统;在所述第二存储器和所述第三存储器各自的至少一个的安全地址空间中,通过所述第二程序加载第三程序;以及通过所述第三程序将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。本申请的实施例将敏感程序和文件系统中的敏感数据加载在存储器的安全空间中,可有效防止芯片生产商的安全数据的泄漏和避免非法篡改,同时,通过多个程序进行启动引导,减少第一程序的功能,提高了软件的可升级性。此外,对于程序和文件系统的数据量较大的情况,通过合理选择存储器以及内存分配可以在保障运行速度的同时有效降低硬件成本。
需要说明的是,尽管上文以特定的操作系统以及应用场景为例进行说明,但本申请实施例的适用范围不限于此。本申请的操作系统可以为Linux操作系统,还可为Unix操作系统、安卓(Android)操作系统等其他系统。相应地,本申请实施例也可应用于基于手机、PDA等操作的移动互联、银行金融等需要数据保护的各种场景。
示例性系统
本申请的实施例可适用于任何支持对SoC软硬件资源进行区分和隔离的系统,该系统使得处理器的执行状态分为安全和普通两个世界,安全世界(Secure World)中用于运行可信软件,普通世界(Normal World)中用于运行不可信软件。
图2为本申请采用ARM处理器架构中的TrustZone技术将芯片资源进行划分的结构示意图。TrustZone在处理器和RAM等内存中间设置有控制器,例如,当处理器(CPU)工作在安全世界模式时,可以通过操作可信域地址控制器TZASC(TrustZone address spacecontroller)而将内存等资源划分为安全区域和非安全区域,其中安全区域可用于运行和存储安全世界中的程序和信息。运行时,在系统总线上具有特殊的信号线来指示CPU是否在安全世界内,例如其针对每一个信道的读写增加了一个额外的控制信号位NS(Non-Secure)位,来指明当前系统的状态。同时,TrustZone将每个物理处理器核虚拟为一个安全核和一个非安全核,安全核运行安全世界的程序并可以访问所有资源,而非安全核运行普通世界的程序并只能访问普通世界的资源。两者之间使用监控模式进行切换。当普通世界需要切换至安全世界时,通过调用安全监控调用(SMC)指令可以从普通世界切换到安全世界的监控模式。在监控模式下执行异常返回(ERET)指令,CPU通过检查NS位来决定返回普通世界还是继续停留在安全世界。
采用如上的方法,本申请的实施例可以将第二存储器、第三存储器中的内存资源划分为安全区域和普通区域,安全区域位于芯片的安全世界内,普通区域位于芯片的普通世界内,只有位于安全世界的软件程序可以访问上述存储器的安全区域。通过将逻辑算法、保密数据等敏感信息挂载到安全世界并进行处理,可以有效保护数据不被泄漏或篡改。
需要说明的是,依据图2所示结构仅为示例,本申请实施例适用的系统不限于此。本申请实施例可应用于支持内存划分的任意系统。
示例性方法
图3是本申请一示例性实施例提供的安全启动的示例性方法100,其可应用于多种终端,包括小型的手持终端设备(手机、PDA等),也可以是大型的终端设备(例如自动驾驶汽车、工业机器人等)。如图3所述,该示例性方法100包括如下步骤:
步骤110,在第二存储器中,通过存储在第一存储器的安全地址空间中的第一程序加载第二程序;
步骤120,在第三存储器的普通地址空间中,通过所述第二程序加载操作系统;
步骤130,在所述第二存储器和所述第三存储器的至少一个的安全地址空间中,通过所述第二程序加载第三程序;以及
步骤140,通过所述第三程序将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。
步骤110中,终端设备上电启动后,首先运行第一程序,第一程序例如为引导加载程序,其是设备上电运行的第一段代码,一般可将其固化烧录在第一存储器(例如ROM)中。为了提高系统的安全性,可将第一存储器的全部空间设置为安全区域,由此第一程序存储在第一存储器的安全地址空间中。
在一实施例中,第一程序只需验证并加载第二程序到第二存储器中,例如将加密签名的第二程序的镜像文件搬移至第二存储器中,如此,可减小第一存储器的存储空间。第二存储器可为静态随机存取存储器(SRAM),其存取速度快,但体积、功耗较大。如下具体描述,第二程序可划分为加载其他程序以及操作系统的多个部分,相应地,步骤110中可加载第二程序的全部或其中一部分到第二存储器中。
在一实施例中,参照图4,可以如下方式制作所述第二程序的镜像文件,先根据第一加密算法(例如AES算法)生成第一密钥(AES密钥)对第二程序文件BL21进行加密,并计算出加密文件的哈希值(例如256比特),其中,哈希运算的算法可以为安全哈希算法(SecureHash Algorithm,SHA)、SHA2算法、中国商用密码杂凑算法标准SM3密码杂凑算法等;再根据第二非对称加密算法(例如RSA算法)生成第二密钥,第二密钥包括公钥和私钥,并利用该私钥对上述哈希值进行签名发布;将加密文件、加密文件哈希值、相应签名、以及上述公钥打包到镜像存储设备中,在本实施例中存储各引导程序以及操作系统的镜像的存储设备可为闪存FLASH存储器,也可以采用其它存储设备,如外部存储卡等。
在通过第一程序加载第二程序时,参照图5,可预先在第一存储器或芯片的电熔断(eFuse)存储器等一次性可编程存储器(OTP)中存储上述的第一密钥(例如,AES密钥B)以及第二密钥的公钥(例如,RSA公钥A)的哈希值Hash A。
通过第一程序BL1从镜像存储设备中加载第二程序BL21的镜像文件BL21’,读取该镜像文件BL21’可得到加密文件BL21x’、哈希值X1、签名X2以及RSA公钥A’。首先计算RSA公钥A’的哈希值Hash A’,并将其与存储在芯片内部的Hash A比较验证,若Hash A’与Hash A相等,则验证镜像中的RSA公钥A’与第二密钥的公钥是相同的,这进一步加强了每次验证的安全性,并可利用该公钥A’对签名的镜像进行验签。若验签成功,则表明第二程序的镜像BL21’是合法的,可以得到哈希值X1。接着,计算加密文件BL21x’的哈希值X1’,若其与哈希值X1相等,则表明第二程序的镜像文件是完整的。如此,能够确保所述第二程序的镜像文件的合法性以及完整性,可利用存储在芯片内部的第一密钥(AES密钥B)对加密文件BL21x’进行解密得到第二程序,保证其运行在芯片的安全世界中。应当理解,若验签不成功或者哈希值X1与哈希值X1’不相等时,则停止启动操作。在另一实施例中,如下文所述,在第二程序的作用主要在于加载其它引导程序及操作系统时,其不包含保密性逻辑代码,因此也可采用其它方式对其进行镜像制作。图6示出了对第二程序BL21进行镜像制作的另一方式,与图4所示的方式相比,此实施方式中不需对第二程序BL21进行加密,而可直接将其放入镜像文件中,其它方面与图4所示的方式相同,此处不再赘述。相应地,如图7所示,在利用第一程序BL1加载第二程序的镜像文件BL21时,可在成功执行与图5所示的验证RSA公钥A’、验证第二程序哈希值的签名相同的操作后即可跳转运行第二程序,而不需要解密操作来获得第二程序,如此可提高系统的启动速度。
可以理解,为了保证运行程序在各方面都未被篡改,在计算第一、第二程序以及下面第三程序、操作系统的哈希值时,除了计算程序的内容、公钥的哈希值外,还可计算程序的权限和与程序相关的属性的哈希值,以及在后续过程中对计算的每一项的哈希值均进行完整性校验,从而可以更全面的对运行程序的完整性进行校验。
步骤120中,在将第二程序从镜像存储设备搬移至芯片中后,可由第二程序执行加载操作系统至芯片中,例如将操作系统内核镜像搬移至第三存储器的普通地址空间中。第三存储器可为动态随机存取存储器(DRAM),其功耗低,使用DRAM作为内存可减小系统的硬件成本。
在一实施例中,可直接由第二程序加载操作系统至第三存储器中,这一定程度上可提高系统的启动速度。
优选地,在另一实施例中,可由第二程序间接地将操作系统加载到第三存储器中,这降低了对第二存储器的空间占用从而降低硬件成本,并可提高系统的可升级性。图8示出了根据本申请另一实施例的将操作系统加载至第三存储器中的流程图。
如图8所示,通过所述第二程序加载操作系统的步骤S120包括:
在步骤S121中,在第三存储器的普通地址空间中,通过第二程序加载第四程序。
例如,通过第二程序对第四程序的镜像文件进行验证,并在验证成功后将其搬移到第三存储器中,对第四程序进行验证的操作可参考图4-5所示的实施方式,也可采用图6-7所示的实施方式。
接着,在步骤S122中,在第三存储器的普通地址空间中,通过第四程序加载所述操作系统的内核。内核得到运行后,可初始化各种设备(例如时钟、电源、各种片内控制器等)并挂载文件系统。对于文件系统的操作将在下面进行具体描述。
步骤130中,通过所述第二程序加载可读取操作系统的文件系统的第三程序到芯片的安全世界的安全区域内。
例如,通过第二程序对第三程序的镜像进行验证,并在验证成功后将其搬移到芯片的内存空间。对第三程序进行验证的操作可参考图4-5所示的实施方式,也可采用图6-7所示的实施方式。
在一实施例中,可将第三程序的一部分加载到第二存储器的安全地址空间中,由此可直接由第二程序跳转到第三程序进行后续的读取文件系统操作,其一定程度上提高了芯片的启动速度。
在另一实施例中,可将第三程序的一部分或全部加载到第三存储器的安全地址空间中。例如,可由先在芯片的普通世界由第二程序对第三存储器(DRAM)进行初始化,然后进入安全世界将经验证的第三程序由镜像文件搬移到第三存储器的安全地址空间,如此保证了后面读取文件系统是在安全环境下进行,保证了系统的启动安全。
应该注意的是,上述步骤120和步骤130都是由第二程序实施的,因此本申请对这两个步骤的实施顺序并不限制,即也可以先实施步骤130,然后再实施步骤120,其均在本申请的保护范围内。
步骤140中,在芯片的安全世界,由第三程序将操作系统的文件系统中的加密数据读取至第三存储器的安全地址空间中。
文件系统中不仅包含文件中的数据而且还有文件系统的结构,所有应用程序所看到的文件、目录、软连接及文件保护信息等均存储在文件系统中,因此其可能包括有芯片研究人员或开发商的核心算法和敏感数据信息(例如BPU二进制程序)。如果不对这部分信息进行保护操作,将存在敏感信息泄露或数据被篡改的风险。
在一实施例中,内核得到运行后,可挂载文件系统,并可将其中的敏感数据解密到内存中进行后续操作,如此不用对整个文件系统进行解密后再挂载,这提升了系统的启动效率。
在将加密数据读取到第三存储器的安全空间后,可实施解密程序进行解密操作。本申请对具体的加密、解密算法并不做具体限定,即对文件系统的全部或只针对敏感数据部分采用AES、DES、3DES、RSA等算法进行加密操作。例如,在一实施例中,文件系统的加密数据可采用图4-5所示的方式进行加密和解密操作。
本申请实施例中,逻辑算法、核心数据等保密数据可通过第三程序在芯片的安全世界进行解密并运行,运行在普通世界的软件无法接触到保密数据,因此可保证这些数据的安全性。在系统启动时,加密数据读取到内存的安全区域,非法软件无法进行截获;在系统运行时,即使在普通世界的操作系统受到攻击时,也无法访问这些保密数据。同时,通过将引导启动由多个程序(第一程序、第二程序、以及第三程序)实施,提高了软件的升级性和扩展性。另外,结合下面具体描述的,可将第二程序、第三程序的部分以及第四程序都加载在DRAM中,降低了SRAM的占用,可节省系统硬件成本。
如前所述,可利用第二程序加载第三程序以及操作系统,为此需要将第二程序加载在合适的内存空间中。图9图示了根据本申请一实施例提供的通过第一程序加载第二程序到芯片内部的流程图。
如图9所示,通过第一程序加载第二程序可包括:
在步骤111中,在一实施例中,可通过第一程序将第二程序的第一部分加载到第二存储器的安全地址空间中,该第一部分至少用于加载所述第三程序。由于第三程序需要在安全世界中运行,相应地,需要将第二程序的上述第一部分加载到第二存储器的安全地址空间中,提升系统的安全性能。
替代地,可将第二程序的上述第一部分存储在第一存储器的安全地址空间中,例如烧录在第一存储器中。相应地,在步骤111中,可在执行所述第一程序之后直接跳转至第二程序的该第一部分,进一步提高系统的稳定性和运行效率。
在步骤112中,通过第二程序的第一部分,将第二程序的第二部分加载到第二存储器的普通地址空间中,该第二部分至少用于加载第四程序/操作系统。在由第二程序间接加载操作系统时,步骤112中可由第二程序的上述第二部分加载第四程序,再由第四程序进行加载操作系统,由此可减少对第二存储器的空间占用。由于第四程序/操作系统只需在普通世界中运行,相应的,可将第二程序的上述第二部分加载到第二存储器的普通地址空间中。
在一实施例中,在将第三程序加载到第三存储器的安全地址空间中之前,需要对第三存储器进行初始化,这可通过前述第二程序的第一部分或第二部分进行,建立第三存储器内存空间的映射图,以便于为调用第三程序、操作系统内核准备好合适的环境。
在一具体实施例中,可通过第二程序的第二部分对第三存储器进行初始化,再由第一程序加载第三程序到初始化后的第三存储器中。由于第二程序的第二部分运行在普通世界,这可提高系统的装载速度。
在另一具体实施例中,可通过第二程序的第一部分对第三存储器进行初始化,此时还可将第二程序的第二部分加载到第三存储器的普通地址空间中,如此可进一步降低了对第二存储器的占用,从而降低系统的硬件成本。
在对所述第三存储器进行初始化之后,可通过所述第二程序的第一部分将第三程序的至少一部分(全部或部分)加载到所述第三存储器的安全地址空间中,该至少一部分将用于将文件系统中的加密数据读取到芯片的安全世界中。
具体地,在一实施例中,通过第二程序加载第三程序包括:在第三存储器的安全地址空间中加载所述第三程序的部分(第一部分),该部分可配置为将操作系统的文件系统中的加密数据读取至第三存储器的安全地址空间中。例如,在对第三存储器初始化之后,通过安全态环境提供的库函数为第三程序分配虚拟地址,CPU访问时将该虚拟地址翻译为物理内存地址从而执行第三程序。
在另一实施例中,通过第二程序加载第三程序可包括:在第二存储器的安全地址空间中加载所述第三程序的部分(第二部分),该部分可配置为对第三存储器进行初始化或重新初始化。例如,在将第三程序加载到第二存储器后,可启动电源状态协调接口(PSCI),便于为系统从普通世界的程序进入安全世界执行程序,以及建立第三存储器内存空间中安全世界和普通世界的映射图。
在一具体实施例中,例如可针对第二存储器设置有内存监控单元,在第一程序将第二程序加载到第二程序后,通过该内存监控单元监控第二存储器的剩余内存资源,如果剩余的内存资源能够用于加载第三程序的全部(第一部分和第二部分),则将该第三程序加载到第二存储器中,否则内存监控单元判断剩余的内存资源是否能够用于加载第三程序中的第二部分,如果剩余的内存资源能够用于加载第三程序的该第二部分,则将该第二部分加载在第二存储器的安全地址空间中,而将第一部分加载在第三存储器的安全空间中,否则将第三程序的全部都加载在第三存储器的安全地址空间中,这可充分利用第二存储器从而提高系统的启动速度。
下面通过具体的示例来说明上述SoC芯片的安全启动方法的具体实施流程。图10示出了根据本申请一示例性实施例的安全启动方法在芯片的安全世界和普通世界进行启动引导的执行过程示例。在该示例中,采用ARM平台的TrustZone技术提供“安全世界”和“普通世界”的区分和隔离,安全世界能够访问普通世界所有的硬件资源(内存、寄存器等),而普通世界无法访问安全世界的硬件资源。通过ERET指令系统可退出安全世界进入普通世界,通过SMC指令系统可从普通世界返回安全世界。
步骤①中,SoC上电启动后处理器(例如,ARM处理器)跳转至第一程序BL1,其为第一存储器(ROM)中固化的启动程序,其可用于初始化系统时钟,初始化堆和栈,以及加载第二程序BL2。
步骤②中,BL1对第二程序的第一部分BL21进行验证,验证成功后从镜像存储设备中的镜像文件中加载BL21到第二存储器(SRAM)的安全区域,其中对BL21进行加密和解密的步骤可采用图4-5或图6-7所示的方式,此处不再详述,BL21可用于初始化外部硬件设备,设置好栈,以及加载第二程序的第二部分BL22和第三程序BL31。
步骤③中,BL21对第二程序的第二部分BL22进行验证,验证成功后从镜像文件中加载BL22到第二存储器的普通区域,然后跳转到BL22程序代码入口。将BL21和BL22分别加载在芯片的安全世界和普通世界,实现了定制代码和非定制代码的区分和隔离,提升了系统的可维护性,降低了维护成本。
步骤④中,BL22在普通世界中初始化第三存储器(DRAM)等额外内存,然后使用SMC命令返回安全世界,跳转到BL21程序。
步骤⑤中,BL21在安全世界中对第三程序BL31进行验证,验证成功后加载BL31到第三存储器的安全区域,BL21同时加载第四启动程序BL33,验证成功之后将BL33的启动地址存入CPU寄存器中,然后跳转到BL31程序代码入口。
步骤⑥中,BL31从CPU寄存器中获取BL33的启动地址,完成自身运行环境的初始化,便于其读取普通世界的程序或数据并在安全世界执行相关程序,然后通过ERET指令进入普通世界,跳转到BL33。
步骤⑦中,BL33检测第三存储器的内存映射,为操作系统内核设置启动参数,并在成功对操作系统验证之后将操作系统从镜像存储设备加载到第三存储器的普通区域中,然后跳转到操作系统。
步骤⑧中,操作系统内核启动后,初始化各种子设备并挂载文件系统,此时可启动文件系统中的根文件系统以例如用于进入图形界面或进行系统升级等,但不对其中的加密数据进行解密操作,然后使用SMC命令进入安全世界,跳转到BL31程序。
步骤⑨中,BL31将文件系统中的加密数据拷贝到第三存储器的安全区域中并对其进行解密操作,对于文件系统中的敏感数据进行加密和解密的操作可采用图4-5所示的方式,此处不再详述。第三程序在对加密数据进行解密之后通过ERET指令返回操作系统。在对加密数据进行解密之后,芯片处理器可加载安全内存中的数据并开始工作。
图11示出了根据本申请另一示例性实施例的安全启动方法的执行过程示例,其与图10不同之处在于此实施例中第三程序BL31的一部分或全部被加载在第二存储器的安全空间中。例如,如图11所示,BL31的第一部分BL31-1被加载在第二存储器的安全区域中以用于对第三存储器进行初始化或重新初始化,第三程序的第二部分BL31-2则被加载在第三存储器的安全区域中以用于将文件系统中的加密数据读取至第三存储器的安全地址空间中,其余步骤与图10所示的步骤大体相同,此处不再赘述。
图12示出了根据本申请第三种示例性实施例的安全启动方法的执行过程示例,其与图10、11不同之处在于此实施例中第二程序的两部分(BL21和BL22)被合并到一起,放置在第二存储器的安全空间中。此实施例由于将BL21和BL22合并,启动时将减少一次对镜像文件的验证,因此将会加快启动速度,其余步骤与图10、11所示的步骤大体相同,此处不再赘述。
需要说明的是,尽管在各个实施例中分别对根据本申请实施例的安全启动方法进行了说明,但是不应理解为其为本申请能实施的全部实施方式,相反这些实施例中的一个或多个、全部或部分之间可以相互结合,同时这些实施例还可以与本文描述的其他特征进行结合,例如第二程序的第一部分BL21可以和第一程序BL1共同烧录在第一存储器中,这些实施方式均不脱离本申请的发明原理并可实现辅助的技术效果。
示例性装置
图13是本申请一示例性实施例提供的安全启动装置。如图13所示,安全启动示例性装置200包括:
引导模块210,配置为在第二存储器中,通过第一程序加载第二程序,其中,所述第一程序存储在第一存储器的安全地址空间中;
第一加载模块220,配置为在第三存储器的普通地址空间中,通过所述第二程序加载操作系统;
第二加载模块230,配置为在所述第二存储器和所述第三存储器各自的至少一个的安全地址空间中,通过所述第二程序加载第三程序;以及
数据操作模块240,配置为通过所述第三程序将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。
在一个示例中,第一加载模块220可以包括:第一加载子模块,其用于在所述第三存储器的普通地址空间中,通过所述第二程序加载第四程序;以及第二加载子模块,其用于在所述第三存储器的普通地址空间中,通过所述第四程序加载所述操作系统。
在一个示例中,引导模块210还可配置为:通过所述第一程序将所述第二程序的第一部分加载到所述第二存储器的安全地址空间中,或者在执行所述第一程序之后跳转至存储在所述第一存储器的安全地址空间中的所述第二程序的第一部分,其中,所述第一部分至少用于加载所述第三程序;以及通过所述第一部分,将所述第二程序的第二部分加载到所述第二存储器的普通地址空间中,其中,所述第二部分至少用于加载操作系统或所述第四程序。
在一个示例中,第二加载模块230可配置为:在通过所述第二程序的第一部分或第二部分对所述第三存储器进行初始化之后,通过所述第二程序的第一部分,将所述第三程序的至少一部分加载到所述第三存储器的安全地址空间中。
在一个示例中,第二加载模块230还可配置为:在所述第三存储器的安全地址空间中加载所述第三程序的部分,该部分配置为将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。
在一个示例中,第二加载模块230还可配置为:在所述第二存储器的安全地址空间中加载所述第三程序的部分,该部分配置为对所述第三存储器进行初始化或重新初始化。
上述安全启动装置200中的各个模块的具体功能和操作已经在上面参考图1-13描述的安全启动方法中详细介绍,因此这里仅简要介绍,并省略不必要的重复描述。本申请实施例的上述示例性装置可实现将保密数据在芯片的安全世界进行解密并运行,保证这些数据的安全性。
示例性处理器集成装置
图14是本申请一示例性实施例提供的处理器集成装置,例如为SoC片上系统。如图14所示,处理器集成装置300包括:第一处理器310、第一存储器320、第二存储器330和第三存储器340。其中第一存储器320的存储空间全部设置为安全区域,第二存储器330和第三存储器340的存储空间被隔离为安全区域和普通区域。
所述第一处理器310可为ARM处理器,其可被配置为:
通过第一程序,在所述第二存储器中加载第二程序,其中,所述第一程序存储在所述第一存储器的安全地址空间中;
通过所述第二程序,在所述第三存储器的普通地址空间中加载操作系统;
通过所述第二程序,在所述第二存储器和所述第三存储器中的至少一个的安全地址空间中加载第三程序;以及
通过所述第三程序,将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。
在一示例中,上述第二程序、第三程序以及操作系统的程序镜像存储在外部存储器360中,并由第一处理器310通过执行相应程序将各部分加载到个存储器中,外部存储器360可为FLASH、SD卡等存储设备。
在一示例中,所述第一处理器310配置为通过如下方式加载操作系统:通过所述第二程序,在所述第三存储器的普通地址空间中加载第四程序;以及通过所述第四程序,在所述第三存储器的普通地址空间中加载操作系统。
在一示例中,所述第一处理器310还被配置为:通过所述第一程序将所述第二程序的第一部分加载到所述第二存储器的安全地址空间中,或者在执行所述第一程序之后跳转至存储在所述第一存储器的安全地址空间中的所述第二程序的第一部分,其中,所述第一部分至少用于加载所述第三程序;以及通过所述第一部分将所述第二程序的第二部分加载到所述第二存储器的普通地址空间中,所述第二部分至少用于加载操作系统或所述第四程序。
在一示例中,所述第一处理器310还被配置为:在通过所述第二程序的第一部分或第二部分对所述第三存储器进行初始化之后,通过所述第二程序的第一部分,将所述第三程序的至少一部分加载到所述第三存储器的安全地址空间中。
在一示例中,所述第一处理器310还被配置为通过所述第一程序,将所述第二程序的第一部分加载到所述第二存储器的安全地址空间中。
在一示例中,处理器集成装置300还包括第二处理器350,其配置为基于所述第三存储器的安全地址空间中的加密数据执行操作。第二处理器350例如可以为大脑处理器(BPU,Brain Processing Unit)、张量处理单元(TPU,Tensor Processing Unit)等支持神经网络相关计算的处理器。
在一示例中,所述第一存储器320包括至少一个只读存储器(ROM),所述第二存储器330包括至少一个静态随机存取存储器(SRAM),所述第三存储器340包括至少一个动态随机存取存储器(DRAM),例如DDR、DDR2等。
上述处理器集成装置300中的各个模块的具体功能和操作已经在上面参考图1-13描述的安全启动方法中详细介绍,因此这里仅简要介绍,并省略不必要的重复描述。本申请实施例的上述示例性装置300通过将引导启动由多个程序(第一程序、第二程序、以及第三程序)实施,提高了芯片的升级性和扩展性。另外,可将第二程序、第三程序的部分以及第四程序都加载在DRAM中,降低了SRAM的占用,可节省芯片的硬件成本。
示例性电子设备
除了上述方法和装置意外,本申请的实施例还可以是电子设备,该电子设备包括:多个处理器;以及用于存储所述多个处理器中的第一处理器可执行的指令的至少一个存储器;所述第一处理器用于从所述至少一个存储器中读取所述指令,并执行所述指令以使所述第一处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的安全启动方法中的步骤。
本申请实施例的上述电子设备可适用于利用操作系统控制的各种设备,其可将逻辑算法、核心数据等保密数据可通过在芯片的安全世界进行解密并运行,普通世界的软件无法接触到保密数据,因此可保证这些数据的安全性。一种实现方式中,该电子设备可以包括图14所述装置中的第一处理器和第二处理器。
图15图示了根据本申请实施例的电子设备的框图。
如图15所示,电子设备400包括一个或多个处理器410和存储器420。
处理器400可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备400中的其他组件以执行期望的功能。
存储器420可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器410可以运行所述程序指令,以实现上文所述的本申请的各个实施例的安全启动方法以及/或者其他期望的功能。
在一个示例中,电子设备400还可以包括:输入装置430和输出装置440,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。例如,该输入装置430可以是摄像头、麦克风或麦克风阵列。此外,该输入设备430还可以包括例如键盘、鼠标等等。该输出装置440可以向外部输出各种信息。该输出设备440可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图15中仅示出了该电子设备400中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备400还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的安全启动方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的安全启动方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
在本发明实施例中,术语“模块”一般指:硬件、硬件和软件的组合、软件等。例如,模块可以是运行在处理器上的进程、处理器、对象、可执行应用、执行的线程、程序等。运行在处理器上的应用和该处理器二者都可以是模块。一个或多个模块可以位于一个计算机中和/或分布在两个或更多计算机之间。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (16)
1.一种安全启动方法,包括:
在第二存储器中,通过第一程序加载第二程序,其中,所述第一程序存储在第一存储器的安全地址空间中;
在第三存储器的普通地址空间中,通过所述第二程序加载操作系统;
在所述第二存储器和所述第三存储器各自的至少一个的安全地址空间中,通过所述第二程序加载第三程序;以及
通过所述第三程序将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。
2.如权利要求1所述的方法,其中,通过所述第二程序加载操作系统包括:
在所述第三存储器的普通地址空间中,通过所述第二程序加载第四程序;以及
在所述第三存储器的普通地址空间中,通过所述第四程序加载所述操作系统。
3.如权利要求2所述的方法,其中,所述通过第一程序加载第二程序包括:
通过所述第一程序将所述第二程序的第一部分加载到所述第二存储器的安全地址空间中,或者在执行所述第一程序之后跳转至存储在所述第一存储器的安全地址空间中的所述第二程序的第一部分,其中,所述第一部分至少用于加载所述第三程序;以及
通过所述第一部分,将所述第二程序的第二部分加载到所述第二存储器的普通地址空间中,其中,所述第二部分至少用于加载所述第四程序。
4.如权利要求3所述的方法,还包括:
在通过所述第二程序的第一部分或第二部分对所述第三存储器进行初始化之后,通过所述第二程序的第一部分,将所述第三程序的至少一部分加载到所述第三存储器的安全地址空间中。
5.如权利要求1所述的方法,其中,通过所述第二程序加载第三程序包括:
在所述第三存储器的安全地址空间中加载所述第三程序的部分,该部分配置为将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。
6.如权利要求1所述的方法,其中,通过所述第二程序加载第三程序包括:
在所述第二存储器的安全地址空间中加载所述第三程序的部分,该部分配置为对所述第三存储器进行初始化或重新初始化。
7.一种安全启动装置,包括:
引导模块,配置为在第二存储器中,通过第一程序加载第二程序,其中,所述第一程序存储在第一存储器的安全地址空间中;
第一加载模块,配置为在第三存储器的普通地址空间中,通过所述第二程序加载操作系统;
第二加载模块,配置为在所述第二存储器和所述第三存储器各自的至少一个的安全地址空间中,通过所述第二程序加载第三程序;以及
数据操作模块,配置为通过所述第三程序将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。
8.一种处理器集成装置,包括第一处理器、第一存储器、第二存储器和第三存储器,其中,所述第一处理器被配置为:
通过第一程序,在所述第二存储器中加载第二程序,其中,所述第一程序存储在所述第一存储器的安全地址空间中;
通过所述第二程序,在所述第三存储器的普通地址空间中加载操作系统;
通过所述第二程序,在所述第二存储器和所述第三存储器中的至少一个的安全地址空间中加载第三程序;以及
通过所述第三程序,将所述操作系统的文件系统中的加密数据读取至所述第三存储器的安全地址空间中。
9.如权利要求8所述的多处理器集成装置,其中,所述在所述第三存储器的普通地址空间中加载操作系统包括:
通过所述第二程序,在所述第三存储器的普通地址空间中加载第四程序;以及
通过所述第四程序,在所述第三存储器的普通地址空间中加载操作系统。
10.如权利要求9所述的多处理器集成装置,其中,所述第一处理器还被配置为:
通过所述第一程序将所述第二程序的第一部分加载到所述第二存储器的安全地址空间中,或者在执行所述第一程序之后跳转至存储在所述第一存储器的安全地址空间中的所述第二程序的第一部分,其中,所述第一部分至少用于加载所述第三程序;以及
通过所述第一部分将所述第二程序的第二部分加载到所述第二存储器的普通地址空间中,所述第二部分至少用于加载所述第四程序。
11.如权利要求10所述的多处理器集成装置,其中,所述第一处理器还被配置为:
在通过所述第二程序的第一部分或第二部分对所述第三存储器进行初始化之后,通过所述第二程序的第一部分,将所述第三程序的至少一部分加载到所述第三存储器的安全地址空间中。
12.如权利要求10所述的多处理器集成装置,其中,所述第一处理器还被配置为通过所述第一程序,将所述第二程序的第一部分加载到所述第二存储器的安全地址空间中。
13.如权利要求9所述的多处理器集成装置,还包括:
第二处理器,被配置为基于所述第三存储器的安全地址空间中的加密数据执行操作。
14.如权利要求9至13中的任一项所述的多处理器集成装置,其中,所述第一存储器包括至少一个只读存储器,所述第二存储器包括至少一个静态随机存取存储器,所述第三存储器包括至少一个动态随机存取存储器。
15.一种计算机可读存储介质,在其上存储有计算机程序,所述计算机程序用于执行根据权利要求1至6中的任一项所述的方法。
16.一种电子设备,包括:
多个处理器;以及
用于存储所述多个处理器中的第一处理器可执行的指令的至少一个存储器;
所述第一处理器用于从所述至少一个存储器中读取所述指令,并执行所述指令以实现根据权利要求1至6中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010974197.4A CN112069506B (zh) | 2020-09-16 | 2020-09-16 | 一种安全启动方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010974197.4A CN112069506B (zh) | 2020-09-16 | 2020-09-16 | 一种安全启动方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069506A true CN112069506A (zh) | 2020-12-11 |
CN112069506B CN112069506B (zh) | 2024-02-23 |
Family
ID=73697079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010974197.4A Active CN112069506B (zh) | 2020-09-16 | 2020-09-16 | 一种安全启动方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069506B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113114645A (zh) * | 2021-03-31 | 2021-07-13 | 武汉天喻信息产业股份有限公司 | 提高安全模组存储容量及运行安全性的方法、装置及设备 |
CN113886834A (zh) * | 2021-09-29 | 2022-01-04 | 南方科技大学 | 基于arm架构的gpu可信执行方法、系统、设备及存储介质 |
CN114491565A (zh) * | 2022-03-31 | 2022-05-13 | 飞腾信息技术有限公司 | 固件安全启动方法、装置、计算设备和可读存储介质 |
WO2023070823A1 (zh) * | 2021-11-01 | 2023-05-04 | 锐凌无线有限责任公司 | 启动引导程序加载方法、装置、系统、电子设备及介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012089541A2 (fr) * | 2010-12-29 | 2012-07-05 | Viaccess | Procede de chargement d'un code d'au moins un module logiciel |
US20140075567A1 (en) * | 2009-01-28 | 2014-03-13 | Headwater Partners I Llc | Service Processor Configurations for Enhancing or Augmenting System Software of a Mobile Communications Device |
CN104156659A (zh) * | 2014-08-14 | 2014-11-19 | 电子科技大学 | 一种嵌入式系统的安全启动方法 |
CN104318182A (zh) * | 2014-10-29 | 2015-01-28 | 中国科学院信息工程研究所 | 一种基于处理器安全扩展的智能终端隔离系统及方法 |
CN105260663A (zh) * | 2015-09-15 | 2016-01-20 | 中国科学院信息工程研究所 | 一种基于TrustZone技术的安全存储服务系统及方法 |
WO2016131553A1 (de) * | 2015-02-16 | 2016-08-25 | IAD Gesellschaft für Informatik, Automatisierung und Datenverarbeitung mbH | Autonom bootendes system mit einem sicherheitsmodul |
CN107003863A (zh) * | 2015-01-29 | 2017-08-01 | 惠普发展公司,有限责任合伙企业 | 引导片上系统器件 |
US20190042712A1 (en) * | 2017-08-01 | 2019-02-07 | Maxim Integrated Products, Inc. | Software intellectual property protection systems and methods for embedded platforms |
CN109426523A (zh) * | 2017-08-18 | 2019-03-05 | 厦门雅迅网络股份有限公司 | 双系统启动方法及计算机可读存储介质 |
CN109543415A (zh) * | 2018-11-20 | 2019-03-29 | 南方电网科学研究院有限责任公司 | 一种安全操作系统架构 |
CN109992992A (zh) * | 2019-01-25 | 2019-07-09 | 中国科学院数据与通信保护研究教育中心 | 一种可信的敏感数据保护方法及系统 |
CN110023941A (zh) * | 2016-12-29 | 2019-07-16 | 华为技术有限公司 | 一种实现安全操作系统切换的片上系统和方法 |
CN110750791A (zh) * | 2019-10-15 | 2020-02-04 | 首都师范大学 | 基于内存加密保障可信执行环境抗物理攻击的方法及系统 |
-
2020
- 2020-09-16 CN CN202010974197.4A patent/CN112069506B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140075567A1 (en) * | 2009-01-28 | 2014-03-13 | Headwater Partners I Llc | Service Processor Configurations for Enhancing or Augmenting System Software of a Mobile Communications Device |
WO2012089541A2 (fr) * | 2010-12-29 | 2012-07-05 | Viaccess | Procede de chargement d'un code d'au moins un module logiciel |
CN103282913A (zh) * | 2010-12-29 | 2013-09-04 | 维亚塞斯公司 | 用于加载至少一个软件模块的代码的方法 |
CN104156659A (zh) * | 2014-08-14 | 2014-11-19 | 电子科技大学 | 一种嵌入式系统的安全启动方法 |
CN104318182A (zh) * | 2014-10-29 | 2015-01-28 | 中国科学院信息工程研究所 | 一种基于处理器安全扩展的智能终端隔离系统及方法 |
CN107003863A (zh) * | 2015-01-29 | 2017-08-01 | 惠普发展公司,有限责任合伙企业 | 引导片上系统器件 |
WO2016131553A1 (de) * | 2015-02-16 | 2016-08-25 | IAD Gesellschaft für Informatik, Automatisierung und Datenverarbeitung mbH | Autonom bootendes system mit einem sicherheitsmodul |
CN105260663A (zh) * | 2015-09-15 | 2016-01-20 | 中国科学院信息工程研究所 | 一种基于TrustZone技术的安全存储服务系统及方法 |
CN110023941A (zh) * | 2016-12-29 | 2019-07-16 | 华为技术有限公司 | 一种实现安全操作系统切换的片上系统和方法 |
US20190042712A1 (en) * | 2017-08-01 | 2019-02-07 | Maxim Integrated Products, Inc. | Software intellectual property protection systems and methods for embedded platforms |
CN109426523A (zh) * | 2017-08-18 | 2019-03-05 | 厦门雅迅网络股份有限公司 | 双系统启动方法及计算机可读存储介质 |
CN109543415A (zh) * | 2018-11-20 | 2019-03-29 | 南方电网科学研究院有限责任公司 | 一种安全操作系统架构 |
CN109992992A (zh) * | 2019-01-25 | 2019-07-09 | 中国科学院数据与通信保护研究教育中心 | 一种可信的敏感数据保护方法及系统 |
CN110750791A (zh) * | 2019-10-15 | 2020-02-04 | 首都师范大学 | 基于内存加密保障可信执行环境抗物理攻击的方法及系统 |
Non-Patent Citations (4)
Title |
---|
嵌入式SKY: "uboot结构之BL0、BL1、BL2、BL3区别于关系", Retrieved from the Internet <URL:https://blog.csdn.net/CSDNmianfeixiazai001/article/details/83378739> * |
李月等: "基于NVM的存储安全综述", 《计算机科学》, vol. 45, no. 07, pages 59 - 66 * |
王希冀等: "基于可信密码模块的SoC可信启动框架模型", 《计算机工程与科学》, vol. 41, no. 04, pages 36 - 41 * |
郭朋飞等: "一种基于TrustZone的双核安全隔离SoC架构", 《第二十一届计算机工程与工艺年会暨第七届微处理器技术论坛论文集》, pages 103 - 111 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113114645A (zh) * | 2021-03-31 | 2021-07-13 | 武汉天喻信息产业股份有限公司 | 提高安全模组存储容量及运行安全性的方法、装置及设备 |
CN113114645B (zh) * | 2021-03-31 | 2022-09-16 | 武汉天喻信息产业股份有限公司 | 提高安全模组存储容量及运行安全性的方法、装置及设备 |
CN113886834A (zh) * | 2021-09-29 | 2022-01-04 | 南方科技大学 | 基于arm架构的gpu可信执行方法、系统、设备及存储介质 |
WO2023070823A1 (zh) * | 2021-11-01 | 2023-05-04 | 锐凌无线有限责任公司 | 启动引导程序加载方法、装置、系统、电子设备及介质 |
CN114491565A (zh) * | 2022-03-31 | 2022-05-13 | 飞腾信息技术有限公司 | 固件安全启动方法、装置、计算设备和可读存储介质 |
CN114491565B (zh) * | 2022-03-31 | 2022-07-05 | 飞腾信息技术有限公司 | 固件安全启动方法、装置、计算设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112069506B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9910991B2 (en) | Event-based apparatus and method for securing bios in a trusted computing system during execution | |
CN112069506B (zh) | 一种安全启动方法和装置 | |
JP4288209B2 (ja) | システム・オン・チップのためのセキュリティ・アーキテクチャ | |
KR102102090B1 (ko) | Arm® trustzone™ 구현을 위한 펌웨어 기반 신뢰 플랫폼 모듈 | |
US9183394B2 (en) | Secure BIOS tamper protection mechanism | |
EP2874091B1 (en) | Partition-based apparatus and method for securing bios in a trusted computing system during execution | |
EP2874092B1 (en) | Recurrent BIOS verification with embedded encrypted hash | |
US9367689B2 (en) | Apparatus and method for securing BIOS in a trusted computing system | |
US8108905B2 (en) | System and method for an isolated process to control address translation | |
EP3757838B1 (en) | Warm boot attack mitigations for non-volatile memory modules | |
US9779242B2 (en) | Programmable secure bios mechanism in a trusted computing system | |
US20170098082A1 (en) | Event-based apparatus and method for securing bios in a trusted computing system during execution | |
US11960737B2 (en) | Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof | |
US10055588B2 (en) | Event-based apparatus and method for securing BIOS in a trusted computing system during execution | |
EP3316168B1 (en) | Fuse-enabled secure bios mechanism in a trusted computing system | |
CN113342735A (zh) | 一种处理器芯片及电子设备 | |
EP3316167B1 (en) | Programmable secure bios mechanism in a trusted computing system | |
US20170046515A1 (en) | Jtag-based secure bios mechanism in a trusted computing system | |
US10095868B2 (en) | Event-based apparatus and method for securing bios in a trusted computing system during execution | |
EP3316170B1 (en) | Fuse-enabled secure bios mechanism with override feature | |
EP3316169B1 (en) | Jtag-based secure bios mechanism in a trusted computing system | |
Thekkumbadan et al. | Mechanism for Runtime Kernel Integrity Check without Additional IP and without TEE for Low/Mid Automotive Segments |
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 |