CN115618364B - 实现安全可信启动的方法、安全架构系统及相关设备 - Google Patents

实现安全可信启动的方法、安全架构系统及相关设备 Download PDF

Info

Publication number
CN115618364B
CN115618364B CN202211616687.2A CN202211616687A CN115618364B CN 115618364 B CN115618364 B CN 115618364B CN 202211616687 A CN202211616687 A CN 202211616687A CN 115618364 B CN115618364 B CN 115618364B
Authority
CN
China
Prior art keywords
firmware
tcm
module
trusted
cryptographic
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.)
Active
Application number
CN202211616687.2A
Other languages
English (en)
Other versions
CN115618364A (zh
Inventor
郭御风
张博锋
张明
冯彦朝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phytium Technology Co Ltd
Original Assignee
Phytium Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202211616687.2A priority Critical patent/CN115618364B/zh
Publication of CN115618364A publication Critical patent/CN115618364A/zh
Application granted granted Critical
Publication of CN115618364B publication Critical patent/CN115618364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供一种实现安全可信启动的方法、安全架构系统及相关设备。安全架构系统搭载有富执行环境子系统、可信执行环境子系统和安全元件子系统,安全架构系统中构建有可信密码服务模块,可信密码服务模块包括TCM服务模块和TCM密码模块,TCM服务模块和TCM密码模块构建在除富执行环境子系统之外的不同子系统中。本申请不仅利用了硬件可信根技术对固件进行逐级验证,实现安全启动技术的信任链构建;同时,利用TCM服务模块和/或TCM密码模块对启动过程中加载运行的固件进行可信度量、可信存储及可信报告,实现可信计算技术的信任链构建。另外,将TCM服务模块和TCM密码模块构建在不同的子系统中,可以提高系统调用的灵活性。

Description

实现安全可信启动的方法、安全架构系统及相关设备
技术领域
本申请涉及处理器技术领域,具体涉及一种实现安全可信启动的方法、安全架构系统及相关设备。
背景技术
随着技术的发展,人们对系统的安全性提出了越来越高的要求,由此出现了可信计算技术,如可信密码服务模块。在利用可信密码服务模块提供服务的过程中,如何提高系统启动过程中的安全性以及调度的灵活性,是目前亟需解决的问题。
发明内容
本申请实施例提供一种实现安全可信启动的方法、安全架构系统及相关设备,能够提高系统启动过程的安全性以及调度的灵活性。
第一方面,提供了一种实现安全可信启动的方法,所述方法应用于安全架构系统,所述安全架构系统搭载有富执行环境子系统、可信执行环境子系统和安全元件子系统,所述安全架构系统中构建有可信密码服务模块,所述可信密码服务模块包括TCM服务模块和TCM密码模块,所述TCM服务模块和所述TCM密码模块构建在除所述富执行环境子系统之外的不同子系统中;所述方法包括:在所述安全架构系统的启动过程中,利用所述TCM服务模块和/或所述TCM密码模块对启动过程中运行的固件进行度量,并记录度量结果。
本申请的可信密码服务模块可以包括TCM服务模块和TCM密码模块两部分,通过将TCM服务模块和TCM密码模块进行分离,有利于提高调度的灵活性。
另外,本申请实施例提出可以将可信密码服务模块集成在安全架构系统中,或者说本申请实施例中的安全架构系统中可以构建有可信密码服务模块。由于可信密码服务模块集成在安全架构系统中,使得可信密码服务模块不仅能够对芯片启动过程中的固件进行主动度量,还能实现芯片的可信启动,保证系统的安全性。
将TCM服务模块和TCM密码模块构建在不同的子系统中,可以提高系统调用的灵活性。例如,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,或所述TCM服务模块构建在所述安全元件子系统中,所述TCM密码模块构建在所述可信执行环境子系统中。
由于可信执行环境子系统和安全元件子系统都具有安全的运行环境,将TCM服务模块和TCM密码模块构建在这两个子系统中,可以满足TCM服务模块和TCM密码模块对安全性的要求。
在一些实现方式中,所述利用所述TCM服务模块和/或所述TCM密码模块对启动过程中运行的固件进行度量,包括:利用所述TCM服务模块和/或所述TCM密码模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件。
通过对启动过程中的BL2固件、BL31固件、BL32固件、BL33固件中的一种或多种进行度量,可以保证启动过程的安全性。
在一些实现方式中,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,且所述安全元件子系统与所述可信执行环境子系统运行于第一处理器核,所述利用所述TCM服务模块和/或所述TCM密码模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件,包括:运行所述BL2固件,并初始化所述安全架构系统的处理器内核;对所述第一处理器核和所述TCM密码模块的硬件资源进行自检;在自检通过的情况下,加载并运行所述TCM密码模块;利用所述TCM密码模块对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行度量。
在度量的过程中,通过对TCM密码模块的硬件资源进行自检,有利于保证度量过程的安全性。直接利用TCM密码模块对BL2固件以及BL31固件、BL32固件和BL33固件中的一种或多种进行度量有利于提高启动速度。TCM密码模块的硬件资源的自检可以由BL1固件实现。TCM的自检程序可以是TCM内置的Self-Task程序,通过运行该自检程序,保障TCM除硬件资源外的其他资源的安全可信。
在一些实现方式中,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,且所述安全元件子系统与所述可信执行环境子系统运行于第一处理器核,所述利用所述TCM服务模块和/或所述TCM密码模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件,包括:运行所述BL2固件,并初始化所述安全架构系统的处理器内核;对所述第一处理器核和所述TCM密码模块的硬件资源进行自检;在自检通过的情况下,加载并运行所述TCM密码模块;利用所述TCM密码模块对所述BL31固件、所述BL32固件中的一种或多种进行度量;加载TCM服务模块;利用所述TCM服务模块和所述TCM密码模块对所述BL33固件进行度量。
在BL2固件被签名认证通过之后,TCM服务模块将被加载运行,其后可以利用TCM服务模块和/或TCM密码模块对BL33固件、系统内核等进行逐级可信度量。这有利于提高系统软件在启动过程中的安全性。
在一些实现方式中,所述TCM密码模块包括密码算法的硬件资源,所述利用所述TCM服务模块和/或所述TCM密码模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件,包括:在通过所述TCM密码模块调用所述密码算法的硬件资源对所述BL2固件进行度量之后,通过所述TCM密码模块调用所述密码算法的硬件资源,对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行度量。
本申请实施例的TCM模块,通过内置的方式,复用了处理器安全系统架构中的硬件资源。相比于增加设置一个独立外置TCM模块的系统架构,一方面,它有效提高了TCM模块度量服务的数据通信效率,且降低硬件成本;另一方面,利用内置的TCM模块以及复用密码硬件资源,对BL2固件以及BL31固件、BL32固件和BL33固件中的一种或多种进行度量,融合地实现了安全启动技术中的软件逐级度量以及可信计算技术中的软件可信度量,它有效地提高了安全系统架构在启动过程中的安全性。
在一些实现方式中,所述TCM密码模块包括服务接口模块和密码算法的硬件资源,所述服务接口模块和所述TCM服务模块构建在所述可信执行环境子系统中,所述利用所述TCM服务模块和/或所述TCM密码模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件,包括:在通过所述安全元件子系统调用所述密码算法的硬件资源对所述BL2固件进行度量之后,通过所述安全元件子系统调用密码算法的硬件资源对所述BL31固件、所述BL32固件中的一种或多种进行度量;加载所述TCM服务模块和所述服务接口模块;通过所述TCM服务模块和所述服务接口模块调用所述密码算法的硬件资源,对所述BL33固件进行度量。
利用TCM服务模块和服务接口模块对BL33固件进行度量,有利于提高系统的安全性。
在一些实现方式中,所述安全架构系统内置有可信根,所述方法还包括:执行所述可信根;利用所述可信根对所述BL2固件进行签名认证。
通过可信根对BL2固件进行签名认证,可以保证BL2固件运行的安全性,从而提高系统的安全性。
在一些实现方式中,所述安全系统架构被设置在计算设备中,所述方法还包括:利用所述TCM服务模块和所述TCM密码模块对所述计算设备的操作系统内核的程序进行度量;加载所述操作系统内核,以初始化所述计算设备的硬件资源以及引导所述操作系统,从而完成所述计算设备的启动。
在启动过程中的固件度量完成后,再对操作系统内核的程序进行度量,可以保证计算设备启动的安全性。
第二方面,提供一种安全架构系统,所述安全架构系统搭载有富执行环境子系统、可信执行环境子系统和安全元件子系统,所述安全架构系统中构建有可信密码服务模块,所述可信密码服务模块包括TCM服务模块和TCM密码模块,所述TCM服务模块和所述TCM密码模块构建在除所述富执行环境子系统之外的不同子系统中;所述安全架构系统被配置为:在所述安全架构系统的启动过程中,利用所述TCM服务模块和/或所述TCM密码模块对启动过程中运行的固件进行度量,并记录度量结果。
在一些实现方式中,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,或所述TCM服务模块构建在所述安全元件子系统中,所述TCM密码模块构建在所述可信执行环境子系统中。
在一些实现方式中,所述安全架构系统被配置为:利用所述TCM服务模块和/或所述TCM密码模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件。
在一些实现方式中,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,且所述安全元件子系统与所述可信执行环境子系统运行于第一处理器核,所述安全架构系统被配置为:运行所述BL2固件,并初始化所述安全架构系统的处理器内核;对所述第一处理器核和所述TCM密码模块的硬件资源进行自检;在所述TCM密码模块的硬件资源自检通过的情况下,加载并运行所述TCM密码模块;利用所述TCM密码模块对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行度量。
在一些实现方式中,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,且所述安全元件子系统与所述可信执行环境子系统运行于第一处理器核,所述安全架构系统被配置为:运行所述BL2固件,并初始化所述安全架构系统的处理器内核;对所述第一处理器核和所述TCM密码模块的硬件资源进行自检;在所述TCM密码模块的硬件资源自检通过的情况下,加载并运行所述TCM密码模块;利用所述TCM密码模块对所述BL31固件、所述BL32固件中的一种或多种进行度量;加载TCM服务模块;利用所述TCM服务模块和所述TCM密码模块对所述BL33固件进行度量。
在一些实现方式中,所述TCM密码模块包括密码算法的硬件资源,所述安全架构系统被配置为:在通过调用所述密码算法的硬件资源对所述BL2固件进行度量之后,通过调用所述密码算法的硬件资源,对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行度量。
在一些实现方式中,所述TCM密码模块包括服务接口模块和密码算法的硬件资源,所述服务接口模块和所述TCM服务模块构建在所述可信执行环境子系统中,所述密码算法的硬件资源设置在所述安全元件子系统中,所述安全架构系统被配置为:在通过调用所述密码算法的硬件资源对所述BL2固件进行度量之后,通过调用密码算法的硬件资源对所述BL31固件、所述BL32固件中的一种或多种进行度量;加载所述TCM服务模块和所述服务接口模块;利用所述TCM服务模块和所述服务接口模块调用所述密码算法的硬件资源,对所述BL33固件进行度量。
在一些实现方式中,所述安全架构系统内置有可信根,所述安全架构系统被配置为:执行所述可信根;利用所述可信根对所述BL2固件进行签名认证。
在一些实现方式中,所述安全系统架构被设置在计算设备中,所述安全架构系统被配置为:利用所述TCM服务模块和所述TCM密码模块对所述计算设备的操作系统内核的程序进行度量;加载所述操作系统内核,以初始化所述计算设备的硬件资源以及引导所述操作系统,从而完成所述计算设备的启动。
第三方面,提供一种计算设备,所述计算设备包括如第二方面或第二方面中任一实现方式所述的安全架构系统。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有程序,所述程序使得计算机执行如第一方面或第一方面中任一实现方式所述的方法。
附图说明
图1是相关技术中的一种安全架构系统的示意性结构图。
图2是一种同构三级架构的示意性结构图。
图3是一种异构三级架构的示意性结构图。
图4a和图4b是本申请实施例提供的安全架构系统的结构示意图。
图5是本申请实施例提供的一种实现安全可信启动的方法的示意流程图。
图6是一种计算设备的启动过程的示意图。
图7是本申请实施例提供的一种系统软件栈的结构示意图。
图8是本申请实施例提供的一种启动方法的示意性流程图。
图9是本申请实施例提供的另一种启动方法的示意性流程图。
图10是本申请实施例提供的另一种启动方法的示意性流程图。
图11是本申请实施例提供的另一种启动方法的示意性流程图。
图12是本申请实施例提供的一种计算设备的示意图。
图13是本申请实施例提供的一种实现安全可信启动的装置的示意性结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
随着计算设备对安全需求的增加,越来越多的安全技术逐步应用到各种计算设备中,其中,安全芯片技术已成为计算设备中的安全架构系统的重要技术手段,实施安全芯片技术的安全元件子系统成为许多安全架构系统的关键部分。如果无法保证计算系统数据的安全性和稳定性,将使得计算环境变得非常脆弱,容易由于软件攻击或物理攻击等因素而导致重要资源泄露,例如,与支付相关联的重要数据等。
一般地,计算设备的安全架构系统可以包括三类子系统,分别为富执行环境(richexecution environment,REE)子系统、可信执行环境(trusted execution environment,TEE)子系统以及安全元件(secure element,SE)子系统。安全元件子系统通过安全芯片技术,与典型安全计算处理器架构相融合,一同构建安全增强的处理器三级安全计算架构,保证重要资源的安全性。其中,REE子系统、TEE子系统和SE子系统的安全保护等级依次升高。也就是说,SE子系统的安全等级最高,TEE子系统的安全等级次之,REE子系统的安全等级最低。
图1示出了一种安全架构系统的结构示意图。该安全架构系统100包括REE子系统、TEE子系统和SE子系统。一般来说,REE子系统中运行的应用可以称为普通应用(clientapplication,CA),其安全性较低,容易受到攻击。图1中的应用程序表示CA。TEE子系统中运行的应用一般称为可信应用(trusted application,TA),其安全性高于CA,可用于实现数据敏感的业务场景,比如支付业务中持卡人信息及身份校验。SE子系统中运行的应用可以称为安全可信应用,其安全性高于CA和TA。由于SE子系统的安全等级最高,因此,SE子系统一般用于执行重要资源的计算及存储,如可信根等信息。SE子系统可通过权限校验、密码技术等手段来保证SE子系统中重要资源的安全性。在安全架构系统中,上述三类子系统相互配合,能灵活地为计算数据提供不同的安全保护需求。
REE子系统可以包括运行在通用的嵌入式处理器上的一般操作系统(operatingsystem,OS)或虚拟机(virtual machine,VM),其中安装有应用程序。图1中示出了应用程序1至应用程序n,其中,n是正整数。例如,应用程序可以是涉及支付场景的程序,其中实现诸如浏览商品、选择商品、提交订单等基本业务。REE子系统可以包括统一可扩展固件接口(unified extensible firmware interface,UEFI),通用启动引导程序(universal bootloader,U-Boot)。尽管在REE子系统中可以采取很多基于软件实现的诸如设备访问控制、设备数据加密机制、应用运行时的隔离机制、基于权限校验的访问控制等安全措施,但仍无法保证应用中重要数据的安全性。
TEE子系统可以包括通用安全核、可信用户接口(trusted user interface,TUI)以及TEE OS,是运行于一般操作系统之外的独立运行环境。TUI可以在可信执行环境内为可信应用与用户提供具有输入或输出安全交互能力的接口,例如,在支付场景下,TUI可用于交易信息的显示和个人身份识别码(personal identification number,PIN)输入等。TEE可以向诸如REE子系统提供安全服务并且与REE子系统相隔离,即REE子系统及其上的应用程序无法直接访问TEE子系统的硬件和软件资源。例如,TEE子系统中可以执行可信应用,诸如图1中示出的可信应用1至可信应用p,其中,p是正整数,通过可信应用来对REE子系统提供可信赖的运行环境,再通过对机密性、完整性的保护和数据访问权限的控制,确保端到端的安全性。此外,TEE子系统可以与REE子系统并行运行。TEE子系统例如可以通过安全的应用程序编程接口(application programming interface,API)与REE子系统进行交互。
TEE子系统提供了比REE子系统更高安全级别的运行环境,但无法提供硬件隔离级别的安全的密钥存储和密码相关运行环境。一般地,TEE子系统可以为REE子系统提供很多的API,供REE子系统调用TEE子系统的资源,TEE子系统提供的用于进行服务的API越多,TEE子系统面临的风险将越大,很难保证API本身不存在安全隐患,诸如安全漏洞,进而导致TEE子系统内的密钥等资源存在安全风险。进一步地,TEE子系统内将会运行多种TA,TA之间完全依赖于TEE操作系统提供的隔离机制,没有硬件级别的隔离,这使得如果TA本身存在安全漏洞或者TA自己主动访问其他TA对应的密钥或根密钥,也会导致密钥等敏感资源存在很大安全风险。
由于TEE子系统存在以上问题,提出基于SE来构建安全可信的存储资源和运算环境。一般地,SE子系统中的软件系统相对简单,包括较少的硬件元器件,因此容易建立物理防护和实施安全保障,从而提高SE子系统的安全强度,以服务于安全性要求更高的安全系统。其中,可以在SE子系统中执行安全应用,诸如图1中示出的安全应用1至安全应用m,其中,m是正整数。
本申请实施例中的安全架构系统可以为同构三级架构,也可以为异构三级架构。下面对这两种架构分别进行描述。
图2是本申请实施例提出的一种同构三级架构的示意图。在同构三级架构中,可信执行环境子系统和安全元件子系统均运行于相同安全等级处理器核(如处理器安全核)。假设可信执行环境子系统和安全元件子系统运行于第一处理器核,则第一处理器核既能够处理可信执行环境子系统中的程序或服务,也能够处理安全元件子系统中的程序或服务。
在图2所示的架构中,富执行环境子系统中可以包括应用核(AP-Cores),可信执行环境子系统中可以包括安全核(Secure-Cores),安全元件子系统中可以包括密码引擎(或密码服务模块)、安全存储介质、SE的服务接口(如安全动态随机存取内存(dynamic randomaccess memory,DRAM)接口)。该安全引擎可以提供密码运算等资源。
图3是本申请实施例提出的一种异构三级架构的示意图。在异构三级架构中,可信执行环境子系统和安全元件子系统运行于不同的处理器核,换句话说,安全元件子系统具有独立的处理器核。假设可信执行环境子系统运行于第二处理器核,安全元件子系统运行于第三处理器核,则第二处理器核负责处理可信执行环境子系统中的程序或服务,第三处理器核负责处理安全元件子系统中的程序或服务。
在图3所示的架构中,富执行环境子系统中可以包括应用核(AP-Cores),可信执行环境子系统中可以包括安全核(Secure-Cores),安全元件子系统中可以包括SE专用核、密码引擎、安全存储介质、SE的服务接口(如安全DRAM接口)。
在异构三级架构中,由于安全元件子系统具有专用核,因此,安全元件子系统具备图灵完备性,且具有自定义硬件安全执行单元。安全元件子系统中的任务执行完全独立,不受其他子系统执行环境的影响,从而可以提供更高的安全性,以及更高的执行效率。
随着技术的发展,在更宽广的网络环境下,人们对系统的安全性提出了更高的要求,比如人们希望远端实体的任何操作或过程行为,都是可预测的或可控的,由此出现了可信计算技术。可信的核心目标之一是保证系统和应用(或软件)的完整性,从而确保系统或应用运行在设计目标期望的可信状态。可信是安全的基础,任何安全方案或安全策略也只有运行在未被篡改的环境下才能进一步确保安全设计目标。总的来说,在系统和应用中加入可信验证能够减少由于使用未知或遭到篡改的系统/软件而遭到攻击的可能性。
可信计算(Trusted Computing,TC)是一项由可信计算组织(Trusted ComputingGroup,TCG)推动和开发的技术。可信的核心目标之一是保证系统和应用的完整性,从而确定系统或软件运行在设计目标期望的可信状态。在系统和应用中加入可信验证能够减少由于使用未知或遭到篡改的系统/软件遭到攻击的可能性。以个人计算机(personalcomputer,PC)机可信举例,通俗来讲,可信就是在每台PC机启动时检测基本输入输出系统(basic input output system,BIOS)和操作系统的完整性和正确性,保障用户在使用PC时硬件配置和操作系统没有被篡改过,所有系统的安全措施和设置都不会被绕过;在启动后,对所有的应用,如社交软件、音乐软件、视频软件等应用可进行实时监控,若发现应用被篡改立即采取止损措施。
可信主要通过度量和验证的技术手段实现。度量就是采集所检测的软件或系统的状态,验证是将度量结果和参考值比对看是否一致,如果一致表示验证通过,如果不一致则表示验证失败。可信计算通过芯片厂家植入在可信硬件中的算法和密钥,以及集成的专用微控制器对软件栈进行度量和验证来确保可信。根据安全芯片和其上运行的可信软件基(Trusted Software Stack)分类,业界目前主流的可信计算标准主要有三种:可信平台模块(Trusted Platform Module,TPM)、可信密码模块(Trusted Cryptography Module,TCM)和可信平台控制模块(Trusted Platform Control Module,TPCM)。
市面上,TPM和TCM一般植于计算设备内部,作为计算设备的可信根源。TPM芯片的规格由TCG来制定。而TCM是一种国产的可信计算技术,其功能与TPM的功能相对应,区别是TCM中的密码技术是由中国自主研发的,这样有利于保证国家信息安全。
TPCM是基于国产化思路提出的可信标准(目前在国内为团体标准)。相对于TPM和可信密码服务模块,TPCM对硬件和可信软件栈(trusted software stack,TSS)架构做了较大的改动。TPCM最大的优点是可以做主动度量,并使用中国自主研发的密码算法。但TPCM在计算主机上尚未商业规模化和产品成熟化。
本申请实施例主要针对可信密码服务模块进行介绍。
可信密码服务模块能够实现的功能可以包括以下三种。1、以可信度量根为起点,计算系统平台的完整性度量值,建立计算机系统平台信任链,确保系统平台可信。2、由于可信报告根可以标识平台身份的可信性,且其具有唯一性,因此,可以可信报告根为基础,实现平台身份证明和完整性报告。3、基于可信存储根,实现密钥管理、平台数据安全保护功能,提供相应的密码服务。
相关技术中的可信密码服务模块通常位于芯片(或安全架构系统)的外部,以被动挂接的方式,通过主机软件调用来发挥作用,只有被主机软件调用才会发挥作用,其安全能力完全依赖于主机系统的安全性,并不能实质上提升计算机系统的主动防御能力。一旦主机被攻击者控制,可信密码服务模块的作用就无从发挥。因此,采用外挂的方式设置的可信密码服务模块,不能有效地提高计算机系统的安全性。
另外,由于可信密码服务模块位于芯片的外部,只有被主机软件调用才会发挥作用,因此,可信密码服务模块只能对芯片的固件和可执行性程序进行被动度量,不能进行主动度量。
此外,由于可信密码服务模块需要主机的调用才能发挥作用,而主机软件只有启动之后才能对可信服务密码模块进行调用,因此,可信密码服务模块不能对芯片启动过程中的固件进行度量,从而会影响系统的安全性。
基于此,本申请实施例提供了一种实现安全可信启动的方法,不仅能够对芯片启动过程中的固件进行主动度量,还能实现芯片的可信启动,保证系统的安全性。
总的来说,本申请提出的实现安全可信启动方法涵盖以下情形。
在一个实施例中,利用硬件可信根技术对固件进行逐级验证,实现安全启动技术的信任链构建,其中,固件可以包括BL1固件、BL2固件、BL31固件、BL32固件和BL33固件中的一种或多种。
一般情况下,BL1固件可以被设置在硬件可信根中,具有不可篡改的特性,是上电启动的第一段代码,是一切信任链的源头。在这种情况下,为实现安全启动技术,需先执行硬件可信根,之后,对BL2固件、BL31固件、BL32固件和BL33固件中的一种或多种进行逐级签名验证。示例性地,该逐级签名验证具体体现在:通过硬件可信根对BL2固件进行签名验证,之后,通过BL2固件对BL31固件进行签名验证,通过BL31固件对BL32和/或BL33固件分别进行签名验证。
在一个实施例中,在实现了上述安全启动技术的基础上,进一步利用TCM服务模块和/或TCM密码模块对启动过程中加载运行的固件进行可信度量、可信存储及可信报告,实现可信计算技术的信任链构建。
其实现流程可以包括:上电,执行硬件可信根,之后,对BL2固件、BL31固件、BL32固件和BL33固件中的一种或多种进行逐级签名验证。示例性地,该逐级具体体现在:通过硬件可信根对BL2固件进行签名验证,之后,通过BL2固件对BL31固件、BL32和/或BL33固件进行逐个签名验证;或者说,通过BL2固件对BL31固件进行签名验证,之后,通过BL31固件对BL33固件进行签名验证;或者说,通过BL2固件对BL31固件进行签名验证,之后,通过BL31固件对BL32固件和BL33固件进行逐个签名验证;与此同时,TCM硬件自检,在自检成功的情况下,加载运行TCM服务模块和/或TCM密码模块,在加载成功的情况下,利用TCM服务模块和/或TCM密码模块对BL31固件、BL32固件、BL33固件中的至少一项进行度量,例如,利用TCM服务模块和/或TCM密码模块对BL31固件、BL32固件和BL33固件进行逐个度量;或者说,利用TCM服务模块和/或TCM密码模块对BL31固件和BL33固件进行逐个度量;若度量成功,安全/可信启动完成,若度量失败,安全/可信启动失败。在后续实施例中,将会具体阐述相关实现。
进一步地,本申请实施例的方法可以应用于安全架构系统中,该安全架构系统可以搭载有富执行环境子系统、可信执行环境子系统和安全元件子系统。该安全架构系统可以为上文描述的同构三级架构,也可以为异构三级架构。富执行环境子系统、可信执行环境子系统和安全元件子系统的相关介绍可以参见前文的描述,为了简洁,此处不再赘述。
本申请实施例的安全架构系统可以为芯片,如片上系统(system-on-a-chip,SOC)芯片。在一些实施例中,根据语境的不同,术语“安全架构系统”和术语“芯片”可以互换使用。
本申请实施例中的可信密码服务模块可以包括TCM密码模块和TCM服务模块。TCM服务模块和TCM密码模块合在一起组成了可信计算密码支撑服务平台的核心技术或者重要组成部分。TCM密码模块和TCM服务模块可以一同为可信计算平台提供服务,可支持实现平台完整性、平台身份可信及平台数据安全保护等平台安全功能。
TCM密码模块可以为具有受保护存储空间的独立模块,是可信计算密码支撑平台必备的关键基础部件。TCM密码模块可以包括可信计算资源,也就是说,TCM密码模块能够为可信密码服务模块提供可信的基础计算资源。例如,TCM密码模块可以为可信密码服务模块提供密码运算、真随机数发生器(true random number generator,TRNG)、安全存储等计算资源。TCM密码模块与系统交互的唯一接口是一组标准接口,该标准为中国国家密码管理局联合国内信息技术(information technology,IT)企业推出的中国标准。
TCM服务模块可以包括服务接口,换句话说,TCM服务模块可以为用户(或应用程序)调用TCM密码模块中的资源提供服务接口。在一些实施例中,TCM服务模块可以通过服务接口调用TCM密码模块,从而为应用程序提供可信度量、可信报告、可信存储等安全服务。在另一些实施例中,TCM服务模块也可以对TCM密码模块的资源进行管理,或者,TCM服务模块也可以隐藏TCM密码模块中的复杂功能命令,降低用户使用TCM密码模块的复杂度。中国国家密码管理局联合国内信息技术IT企业也推出了TCM服务模块的接口标准。而TCM服务模块具体的设计,不同厂商有各自不同的设计实现。
本申请实施例对TCM服务模块和TCM密码模块在安全架构系统中的构建方式不做具体限定。作为一个示例,TCM服务模块和TCM密码模块可以构建在除富执行环境子系统之外的不同子系统中,如图4a和图4b所示。将TCM服务模块和TCM密码模块构建在不同的子系统中,可以提高系统调用的灵活性。
在一些实施例中,TCM服务模块可以构建在可信执行环境子系统中,TCM密码模块构建在安全元件子系统中,如图4a所示。将TCM密码模块构建在安全元件子系统中,使得TCM密码模块可以复用安全元件子系统中的硬件资源,有利于降低成本。安全元件子系统包括TCM密码模块的运算硬件资源,具有性能高、功耗低、响应快等特点。可信执行环境子系统中应用有软硬件安全架构,如Trustzone、软件保护扩展(software guard extensions,SGX)等技术,能够为置于其中的TCM服务模块提供额外的执行环境的安全保障。
在另一些实施例中,TCM服务模块可以构建在安全元件子系统中,TCM密码模块可以构建在可信执行环境子系统中,如图4b所示。可信执行环境子系统中应用有软硬件安全架构,如Trustzone、SGX等技术,能够为置于其中的TCM密码模块提供额外的执行环境的安全保障。安全元件子系统具有可信安全的存储资源和运算环境,能够为置于其中的TCM服务模块提供额外的执行环境的安全保障。
由于可信执行环境子系统和安全元件子系统都具有安全的运行环境,将TCM服务模块和TCM密码模块构建在这两个子系统中,可以满足TCM服务模块和TCM密码模块对安全性的要求。
由于TCM服务模块和TCM密码模块构建在安全架构系统中,因此,TCM服务模块和TCM密码模块可以主动进行度量,而不需要依赖主机的调用。另外,由于TCM服务模块和TCM密码模块内置在安全架构系统中,因此,TCM服务模块和TCM密码模块可以在安全架构系统启动的过程中,对启动过程中的固件进行度量,从而有利于保证系统的安全性。例如,可以从片内可信根开始,对启动过程中引入的所有代码进行逐级验签,实现完整信任链,实现安全启动。
参见图5,本申请实施例的方法可以包括步骤S510。
步骤S510:在安全架构系统的启动过程中,利用TCM服务模块和/或TCM密码模块对启动过程中的固件进行度量,并记录度量结果。该度量结果用于实现安全架构系统的可信启动。启动过程中的固件可以包括以下中的一种或多种:BL2固件、BL31固件、BL32固件和BL33固件。
本申请实施例是利用TCM模块对系统加载的固件/软件进行度量,并将度量结果存储起来,如将度量结果保存在平台控制寄存器(platform control register,PCR)中。等联网之后,将PCR中的度量结果进行远程验证,从而实现可信启动。由于可信密码服务模块具有可信存储的功能,因此利用可信密码服务模块将度量结果进行可信存储,可以保证度量结果的可信性。
当然,由于度量结果需要做远程验证,因此,在启动过程中,无论可信度量结果如何,都会继续引导系统启动。
可信启动通常也需要依赖于安全启动建立一个用于度量的可信根,以此来保证记录到PCR中的度量结果是可信的。
本申请实施例同时考虑了安全启动和可信启动,能够为上电过程中加载的固件的完整性、数字签名、固件版本等,提供一个更完备的度量方法。如前所述,在安全启动过程中,利用硬件可信根技术对固件进行逐级验证,实现安全启动技术的信任链构建。在实现了安全启动技术的基础上,进一步利用TCM服务模块和/或TCM密码模块对启动过程中加载运行的固件进行可信度量、可信存储及可信报告,实现可信计算技术的信任链构建。
一般来说,安全架构系统(如ARM V8)中的硬件资源通常被划分为两个部分,一个是安全世界(secure world),一个是普通世界(normal world),其中,普通世界也可以称为非安全世界,如图6所示。当处理器运行在安全世界的时候,其可以访问所有的硬件资源。但是,当处理器运行在普通世界的时候,其只能访问普通世界中的资源。简单地说,普通世界中的应用程序和操作系统是传统的,而安全世界中的应用程序和操作系统是具有专门用途的(例如,数字签名管理、认证)。两个世界通过共享内存进行通信。
图6示出了一种计算设备的启动过程的示意图。箭头上的数字表示启动顺序。从Boot 只读存储器(read-only memory,ROM)里面的引导加载(boot loader,BL1)固件开始,按照BL1→BL2→BL31→BL32→BL33→OS顺序启动,直到启动操作系统(operating system,OS)界面,完成启动。当然,计算设备也可以按照其他的启动顺序进行启动,本申请实施例对此不做具体限定。
如图6所示,安全世界包括的固件有Boot ROM(无盘启动ROM接口)、平台初始化固件(platform initialization firmwre)、EL3运行时固件(EL3 runtime firmwre,即BL31)、开放可移植TEE(open portable TEE,OP-TEE)(如BL32)。OP-TEE是一个开源工程,完整地实现了一个可信执行软硬件环境,在这个环境中,可以极大加强信息安全。普通世界包括的固件有:U-Boot/UEFI固件(BL33)、内核(操作系统OS的内核(kernel))。其中,BL33固件可以为基本输入输出系统(basic input output system,BIOS)固件。在普通世界下,EL0、EL1、EL2、EL3的执行权限依次增大。其中,UEFI固件被配置运行在普通世界的EL2级别,OP-TEE被配置运行在安全世界的EL1级别。在进入UEFI(BL33)启动的时候,OP-TEE已经完成启动,而UEFI与OP-TEE之间可以通过安全监控调用(secure monitor call,SMC)接口进行通信。因此,在进行UEFI启动时,在对镜像文件进行完整性和安全性验证时,可以通过普通世界触发SMC方式调用安全世界的OP-TEE对应接口来实现某些功能,如此,可以将涉及到对镜像文件的验证过程传递到安全世界进行验证,并返回验证结果给普通世界。
BL1固件可以称为可信启动ROM(Trusted Boot ROM),是启动过程中运行最早的固件,也是存储于只读存储器(read-only memory,ROM)中的固件。BL1固件与计算设备的BIOS并不在一起,在一些类型的可信固件技术中,BL1固件是一切的信任根。BL1固件可以用于初始化计算设备的核心硬件(例如可信静态随机存取存储器(Trusted SRAM)、串口等),并找到BL2硬件,一些情况下,BL1固件会对BL2固件进行验签。BL1固件运行在EL3特权级上。
BL2固件可以称为(可信启动固件Trusted Boot Firmware),BL2固件同样运行在EL3特权级上,BL2固件和BL1固件的显著不同是BL2固件可以存储在外置的可信存储设备上,它的可信可以是建立在BL1固件对它的验证上。BL2固件会初始化一些关键安全硬件和软件框架,BL2固件在初始化完成之后,会找到BL31。在一些实施例中,通过BL2固件对BL31固件进行签名认证。
BL31固件可以称为EL3运行固件(EL3 Runtime Firmware)。BL31固件也运行在EL3特权级上,是EL3特权级最后的安全堡垒。BL31固件不像BL1固件和BL2固件是一次性运行的,它通过安全监视调用(Secure Monitor Call,SMC)为普通世界(Non-Secure)持续提供涉及安全的服务。
BL32固件可以包括开放可移植Tee操作系统(Open Portable Tee OperateSystem,OPTee OS)和可信应用,OPTee OS可以是指可信执行环境的操作系统。BL32固件运行在S-EL1上,BL32固件上的可信应用运行在S-EL0。BL31固件可以对BL32固件进行验签。在一些情形下,OPTee OS运行完毕后,返回EL3的BL31固件,BL31固件找到BL33固件,BL31固件还可以验签BL33固件。
BL33固件可以包括运行在普通世界的固件(Non-Trusted Firmware),BL33固件可以包括面向桌面、服务器等领域的可扩展固件接口(Unified Extensible FirmwareInterface,UEFI)固件或者U-boot(面向嵌入式领域的引导加载程序),也可以包括LinuxKernel(Linux内核),还可以包括BIOS固件。
在一些实施例中,本申请实施例可以利用TCM服务模块和/或TCM密码模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件,从而提高系统的安全性。在一些实施例中,可以使用TCM密码模块对BL2固件、BL31固件、BL32固件和BL33固件中的一部分固件进行度量,而使用TCM服务模块和TCM密码模块对BL2固件、BL31固件、BL32固件和BL33固件中的另一部分固件进行度量。
例如,可以利用TCM服务模块和/或TCM密码模块对BL31固件、BL32固件和BL33固件进行逐个度量,若度量成功,则逐个加载运行BL31固件、BL32固件和BL33固件。又例如,在不包含BL32固件的情况下,可以利用TCM服务模块和/或TCM密码模块对BL31固件和BL33固件进行逐个度量,若度量成功,则逐个加载运行BL31固件和BL33固件。
安全架构系统的启动过程通常分为以下几个阶段,BL1阶段、BL2阶段、BL31阶段、BL32阶段、BL33阶段。根据启动顺序,安全架构系统启动后首先执行BL1固件,接着验签BL2固件,BL2固件根据具体设计启动BL31固件或BL32固件,BL32固件只有在有BL31固件时才可能会存在,并被验签和加载启动。
由于BL1固件为系统启动过程中的第一个固件,且BL1固件是一段不可篡改的固件代码,从BL1固件开始进行度量,可以从根源上保证系统的安全性。在一些实施例中,BL1固件也可以称为可信启动根,或安全架构系统的可信根,或硬件可信根等等。
本申请实施例对固件的启动顺序不做具体限定。例如,固件的启动顺序可以为BL1固件→BL2固件→BL31固件→BL32固件→BL33固件,如图6所示的启动顺序。又例如,固件的启动顺序可以为BL1固件→BL2固件→BL31固件→BL33固件→BL32固件。再例如,固件的启动顺序可以为BL1固件→BL2固件→BL33固件→BL31固件→BL32固件。
上述固件的划分方式仅是一种示例,本申请实施例并不限于此,本申请实施例也可以按照其他方式对上述固件进行划分。例如,飞腾系统软件栈将上述固件划分为飞腾boot ROM(phytium boot ROM,PBR)和飞腾基础固件层(phytium base firmware,PBF),PBF包括PBF-BL1、PBF-BL2、PBF-BL31、PBF-BL32、PBF-BL33。PBR为可信根,PBF-BL1和PBF-BL2为平台初始化固件。
在上述固件启动完成之后,可以启动操作系统内核,从而完成计算设备的启动。
下面针对TCM服务模块和TCM密码模块在安全架构系统中的不同构建方式,对本申请实施例的启动过程进行介绍。下文中的TCM服务模块和TCM密码模块可以统称为TCM模块,即TCM模块可以包括TCM服务模块和TCM密码模块。
示例一
TCM服务模块构建在可信执行环境子系统中,TCM密码模块构建在安全元件子系统中,且该安全架构系统为同构三级架构,也就是说,安全元件子系统与可信执行环境子系统运行于同一个处理器核。假设可信执行环境子系统和安全元件子系统运行于第一处理器核,则第一处理器核既能够处理可信执行环境子系统中的程序或服务,也能够处理安全元件子系统中的程序或服务。
在介绍启动流程之前,先结合图7,对本申请实施例中的同构三级架构的系统软件栈进行介绍。
如图7所示,该系统软件栈可以包括三层固件:可信根(如PBR或BL1固件)、基础固件(如PBR)以及系统固件。其中,可信根可以是芯片内置的可信启动根,负责对基础固件进行第一级验签。在一些实施例中,系统软件栈也可以不包括可信根。
基础固件主要用于芯片的基本初始化,并提供相关服务。例如,基础固件可用于实现初始化服务、电源管理、恢复(如镜像恢复recover)、RAS、安全平台架构(PSPA)支持、安全监控器、安全启动、安全分区管理器(secure partition manager,SPM)调用等。其中,RAS表示可靠性(reliability)、可用性(availability))和可服务性(serviceability)分析。此外,基础固件还可以负责加载运行在安全态下的安全操作系统,例如,TEE OS。
根据应用场景不同,系统固件可以具有两种实现方式。如图7所示,系统固件可以实现为面向桌面、服务器等领域的可扩展固件接口(unified extensible firmwareinterface,UEFI),或者可以实现为面向嵌入式领域的引导加载程序(U-Boot)。
此外,基础固件、系统固件以及操作系统OS可以与带外控制系统(例如嵌入式控制器(embeded controller,EC)、基板管理控制器(baseboard management controller,BMC)等)进行通信。
如图7所示,安全元件子系统中设置有TCM服务模块和TCM密码模块,用于对安全启动过程中的代码进行验签认证。TCM密码模块提供基于硬件的TRNG、可信根密钥、安全存储密码运算、签名验签等标准服务。该可信根密钥可以包括可信存储根、可信度量根和可信报告根。TCM服务模块可以通过调用TCM密码模块以实现包括但不限于可信度量、可信报告、可信存储等服务。
参见图8,图8所示的方法可以包括步骤S810~S860。
步骤S810:响应上电请求,执行启动流程。加载运行BL2固件。在该步骤中,还可以初始化安全架构系统的处理器内核。
在运行BL2固件之前还可以运行可信根,通过可信根对BL2固件进行签名认证。该可信根例如可以为BL1固件。在BL2固件认证成功的情况下,再运行BL2固件。如果BL2固件认证失败,则可以退出启动流程,安全/可信启动失败。通过对BL2固件进行签名认证,可以保障BL2固件的完整性和正确性。
可信根可以是在芯片上电之后就直接运行的代码。该可信根可以是在安全元件子系统的SE引擎上执行,也可以是在可信执行环境子系统的可信核上执行。
运行可信根后,可以初始化处理器核心。例如,可以初始化TZC、双数据速率(double data rate,DDR)、外围组件快速互连(peripheral component interconnectexpress,PCIe)、片上网络(network-on-chip,NoC)等硬件资源。这里的处理器可以为第一处理器。
步骤S820:对第一处理器核和TCM密码模块的硬件资源进行自检。TCM密码模块的自检程序可以是预置在系统内的程序。
如果自检通过,则继续执行步骤S830。如果自检失败,则可以退出启动流程。
步骤S830:在自检通过的情况下,加载并运行TCM密码模块。
在BL2固件运行之后,可以对TCM密码模块的硬件资源进行自检。在TCM密码模块的硬件资源自检通过的情况下,再加载和运行TCM密码模块,从而有利于保证系统的安全性。如果TCM密码模块自检不通过,则退出启动流程。
TCM密码模块可以包括服务接口,该服务接口可用于固件或TCM服务模块调用服务。上述步骤还可以初始化TCM密码模块的服务接口,以为系统固件运行时提供用于初始化的调用服务。
步骤S840:利用TCM密码模块对BL31固件、BL32固件、BL33固件中的一种或多种进行度量。例如,可以利用TCM密码模块对BL31固件、BL32固件和BL33固件进行逐个度量,若度量成功,则逐个加载运行BL31固件、BL32固件和BL33固件。又例如,在不包含BL32固件的情况下,可以利用TCM密码模块对BL31固件和BL33固件进行逐个度量,若度量成功,则逐个加载运行BL31固件和BL33固件。
在对BL31固件、BL32固件、BL33固件进行度量之前,可以先对安全元件子系统的运行环境进行自检。判断是否有BL31固件、BL32固件和BL33固件,并引导系统中存在的固件的度量和加载。
本申请实施例可以利用TCM密码模块对BL31固件、BL32固件、BL33固件中的一种或多种进行度量,其度量顺序可以与BL31固件、BL32固件、BL33固件的启动顺序一致。如果度量失败,则可以退出启动流程。本申请实施例还可以安全存储度量结果,以实现可信启动。
在一些实施例中,也可以在BL32固件度量完成之后,加载和运行TCM服务模块。在该情况下,可以使用TCM服务模块和TCM密码模块对BL33固件进行度量。例如,本申请实施例可以在利用TCM密码模块对BL31固件和BL32固件中的一种或多种进行度量之后,加载TCM服务模块,并利用TCM服务模块和TCM密码模块对BL33固件进行度量。
需要说明的是,除了可以通过TCM服务模块和/或TCM密码模块对BL2固件、BL31固件、BL32固件、BL33固件中的一种或多种进行度量之外,还可以同时执行安全启动过程,即利用可信根对固件进行逐级签名认证,逐级签名认证可以包括:通过可信根对BL2固件进行签名认证,通过BL2固件对BL31固件进行签名认证,通过BL31固件对BL32固件和/或BL33固件进行签名认证,任一级固件认证失败,则终止启动过程。
还需要说明的是,本申请实施例的安全架构系统可以被设置在计算设备中。在上述固件度量完成之后,本申请实施例还可以利用TCM服务模块和TCM密码模块对计算设备的操作系统内核的程序进行度量。在得到度量结果后,可以安全存储度量结果。如果度量失败则可以退出启动流程。
在操作系统内核的程序度量完成之后,可以加载操作系统内核,以初始化计算设备的硬件资源以及引导操作系统,从而完成计算设备的启动。
从以上流程可以看出,本申请实施例可以对每个固件的度量结果、签名认证结果进行判断,任何一个固件度量失败、或者签名认证失败,都可以退出安全/可信启动流程,从而可以保证安全/可信启动过程的安全性。
下面结合图9,对启动流程进行更为详细的介绍。需要说明的是,图9所示的流程仅是为了便于理解,对本申请实施例进行的说明,并不应对本申请造成限定。
步骤S902:对芯片上电,执行可信根。该可信根可以是在安全元件子系统的SE引擎上执行,也可以是在可信执行环境子系统的可信核上执行。
步骤S904:对芯片状态进行安全自检。该自检过程可以包括对TRNG、密码算法硬件引擎等核心硬件的自检。如果自检失败,则可以不执行后续的安全/可信启动操作。
步骤S908:如果芯片自检成功,则可以初始化处理器核心,如初始化TZC、DDR、PCIe、NoC等硬件。另外,还可以在安全元件子系统中加载和运行TCM密码模块。在一些实施例中,还可以对TCM密码模块的硬件资源进行自检。例如,可以运行预置的SE-TCM硬件自检程序。如果自检不通过,则可以退出安全/可信启动流程。在一些实施例中,该步骤还可以为系统固件运行时提供用于初始化的调用服务。
步骤S910:利用可信根对BL2固件进行签名认证。例如,可以使用公钥算法对BL2固件进行签名认证。如果认证失败,则可以退出安全/可信启动流程。示例性地,公钥算法可以包括但不限于SM2和椭圆加密算法(ellipse curve cryptography,ECC)。需要说明的是,上述SM2、ECC只是一种示例,不应构成限定。
步骤S912:在BL2固件认证成功的情况下,运行BL2固件,初始化处理器平台。环境自检、判断是否有BL31固件、BL32固件和BL33固件,并引导这三个固件的度量和加载。
步骤S914:利用TCM密码模块对BL31固件/BL32固件/BL33固件进行度量,并记录度量结果。度量方法包括但不限于使用公钥算法进行签名验签。如果度量失败,则可以退出安全/可信启动流程。
在一些实施例中,也可以在BL2固件度量完成之后,加载和运行TCM服务模块。在该情况下,可以使用TCM服务模块和TCM密码模块对BL33固件进行度量。也就是说,BL31固件和/或BL32固件可以使用TCM密码模块进行度量,而BL33固件可以使用TCM服务模块和TCM密码模块进行度量。
步骤S916:在BL31固件/BL32固件/BL33固件度量成功的情况下,利用TCM服务模块和TCM密码模块度量系统内核环境程序,并存储度量结果。如果度量失败,则可以退出安全/可信启动流程。
步骤S918:加载系统内核,初始化计算设备的硬件资源,并引导操作系统。
步骤S920:完成安全/可信启动。
示例二
本申请实施例的TCM密码模块可以包括软件部分和硬件部分。硬件部分包括密码算法的硬件资源。该密码算法的硬件资源也可以为SE中的硬件资源。软件部分可以包括服务接口模块,可用于将TCM密码模块的标准接口转接到SE的硬件服务接口,从而实现TCM模块对SE硬件资源的调用。通过TCM模块复用SE中的硬件资源,可以降低成本。
本申请实施例的安全架构系统为同构三级架构,也就是说,安全元件子系统与可信执行环境子系统运行于同一个处理器核。假设可信执行环境子系统和安全元件子系统运行于第一处理器核,则第一处理器核既能够处理可信执行环境子系统中的程序或服务,也能够处理安全元件子系统中的程序或服务。
参见图10,图10所示的方法包括步骤S1010~步骤S1020。
步骤S1010:运行可信根。该可信根例如可以为BL1固件。在一些实施例中,可以在芯片上电之后,直接运行可信根。该可信根可以是在安全元件子系统的SE引擎上执行,也可以是在可信执行环境子系统的可信核上执行。
在一些实施例中,可以在运行可信根之后,初始化第一处理器核。
步骤S1020:在通过安全元件子系统调用密码算法的硬件资源对BL2固件进行度量之后,通过安全元件子系统调用密码算法的硬件资源,对BL31固件、BL32固件、BL33固件中的一种或多种进行度量。
运行可信根后,可以初始化处理器核心。例如,可以初始化TZC、DDR、PCIe、NoC等硬件资源。这里的处理器可以为第一处理器。另外,还可以加载SE上的硬件服务。本申请实施例还可以对TCM硬件资源(如密码算法的硬件资源)进行自检。如果自检不通过,则退出启动流程。TCM硬件资源的自检程序可以是预置在系统内的程序。
此外,本申请实施例还可以初始化服务接口模块,以为系统固件运行时提供用于初始化的调用服务。
本申请实施例可以通过SE子系统调用密码算法的硬件资源对BL2固件进行度量,也就是说,可以使用SE子系统的密码算法对BL2固件进行度量。在BL2固件度量成功的情况下,再对BL31固件、BL32固件、BL33固件中的一种或多种进行度量。
由上可知,BL2固件、BL31固件、BL32固件和BL33固件均可以通过SE子系统中的密码算法进行度量。
在另一些实施例中,也可以在BL32阶段加载TCM模块(如TCM服务模块和TCM密码模块的服务接口模块)。在该情况下,可以使用TCM模块对BL32固件进行度量,从而可以提高系统启动过程的安全性。
例如,可以在通过安全元件子系统调用密码算法的硬件资源对BL2固件进行度量之后,通过安全元件子系统调用密码算法的硬件资源对BL31固件、BL32固件中的一种或多种进行度量。在BL32固件度量完成之后,可以加载TCM服务模块和服务模块接口,通过TCM服务模块和服务接口模块调用密码算法的硬件资源,对BL33固件进行度量。
在对BL31固件、BL32固件、BL33固件进行度量之前,可以先对安全元件子系统的运行环境进行自检。判断是否有BL31固件、BL32固件和BL33固件,并引导系统中存在的固件的度量和加载。
本申请实施例对BL31固件、BL32固件、BL33固件进行度量的顺序可以与BL31固件、BL32固件、BL33固件的启动顺序一致。如果度量失败,则可以退出启动流程。本申请实施例还可以安全存储度量结果,以实现可信启动。
本申请实施例的安全架构系统可以被设置在计算设备中。在上述固件度量完成之后,本申请实施例还可以利用TCM服务模块和TCM密码模块对计算设备的操作系统内核的程序进行度量。在得到度量结果后,可以安全存储度量结果。如果度量失败则可以退出启动流程。
在操作系统内核的程序度量完成之后,可以加载操作系统内核,以初始化计算设备的硬件资源以及引导操作系统,从而完成计算设备的启动。
从以上流程可以看出,本申请实施例可以对每个固件的度量结果、签名认证结果进行判断,任何一个固件度量失败、签名认证失败,都可以退出安全/可信启动流程,从而可以保证安全/可信启动过程的安全性。
下面结合图11,对启动流程进行更为详细的介绍。需要说明的是,图11所示的流程仅是为了便于理解,对本申请实施例进行的说明,并不应对本申请造成限定。
步骤S1102:对芯片上电,执行可信根。该可信根可以是在安全元件子系统的SE引擎上执行,也可以是在可信执行环境子系统的可信核上执行。
步骤S1104:对芯片状态进行安全自检。该自检过程可以包括对TRNG、密码算法硬件引擎等核心硬件的自检。如果自检失败,则可以不执行后续的安全/可信启动操作。
步骤S1108:如果芯片自检成功,则可以初始化处理器核心,如初始化TZC、DDR、PCIe、NoC等硬件。在一些实施例中,还可以对TCM密码模块的硬件资源进行自检。例如,可以运行预置的SE-TCM硬件自检程序。如果自检不通过,则可以退出安全/可信启动流程。在一些实施例中,该步骤还可以为系统固件运行时提供用于初始化的调用服务。
步骤S1110:使用安全元件子系统中的密码算法对BL2固件进行验签,并安全存储度量结果。如果验签失败,则可以退出安全/可信启动流程。
步骤S1112:在BL2固件验签成功的情况下,运行BL2固件,并初始化处理器平台。环境自检、判断是否有BL31固件、BL32固件和BL33固件,并引导这三个固件的度量和加载。
步骤S1114:使用安全元件子系统中的密码算法分别对BL31固件、BL32固件和BL33固件中的一种或多种进行度量,并安全存储度量结果。如果度量失败,则可以退出安全/可信启动流程。
步骤S1116:在BL31固件/BL32固件/BL33固件度量成功的情况下,加载和运行BL31固件/BL32固件/BL33固件。一般情况下,BL32固件为TEE内核,TCM模块合封在TEE操作系统中,并与之一起加载和运行。
在一些实施例中,可以在BL2固件度量完成之后,加载TCM服务模块和服务接口模块。在该情况下,可以使用TCM服务模块和TCM密码模块对BL33固件进行度量。在度量过程中,TCM模块可以通过转接接口连接到SE的服务接口,进行硬件资源的调用。
步骤S1118:利用TCM服务模块和TCM密码模块度量系统内核环境程序,并存储度量结果。如果度量失败,则可以退出安全/可信启动流程。
步骤S1120:加载系统内核,初始化计算设备的硬件资源,并引导操作系统。
步骤S1122:完成安全/可信启动。
本申请实施例的公钥算法包括但不限于SM2和ECC。需要说明的是,上述SM2、ECC只是一种示例,不应构成限定。
除了上文介绍的对固件进行度量的方案外,本申请实施例还可以对固件进行逐级验签。例如,通过可信根对BL2固件进行签名认证,通过BL2固件可以对BL31固件进行签名认证,通过BL31固件对BL32和/或BL33固件分别进行签名认证等,任一级固件认证失败,则终止启动过程。
本申请实施例还提供一种安全架构系统,该安全架构系统的结构可以如图4a和图4b所示。该安全架构系统可以为上文描述的任意一种安全架构系统。
该安全架构系统搭载有富执行环境子系统、可信执行环境子系统和安全元件子系统,所述安全架构系统中构建有可信密码服务模块,所述可信密码服务模块包括TCM服务模块和TCM密码模块,所述TCM服务模块和所述TCM密码模块构建在除所述富执行环境子系统之外的不同子系统中;所述安全架构系统被配置为:在所述安全架构系统的启动过程中,利用所述TCM服务模块和/或所述TCM密码模块对启动过程中运行的固件进行度量,并记录度量结果。
在一些实现方式中,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,或所述TCM服务模块构建在所述安全元件子系统中,所述TCM密码模块构建在所述可信执行环境子系统中。
在一些实现方式中,所述安全架构系统被配置为:利用所述TCM服务模块和/或所述TCM密码模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件。
在一些实现方式中,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,且所述安全元件子系统与所述可信执行环境子系统运行于第一处理器核,所述安全架构系统被配置为:运行所述BL2固件,并初始化所述安全架构系统的处理器内核;对所述第一处理器核和所述TCM密码模块的硬件资源进行自检;在所述TCM密码模块的硬件资源自检通过的情况下,加载并运行所述TCM密码模块;利用所述TCM密码模块对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行度量。
在一些实现方式中,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,且所述安全元件子系统与所述可信执行环境子系统运行于第一处理器核,所述安全架构系统被配置为:运行所述BL2固件,并初始化所述安全架构系统的处理器内核;对所述第一处理器核和所述TCM密码模块的硬件资源进行自检;在所述TCM密码模块的硬件资源自检通过的情况下,加载并运行所述TCM密码模块;利用所述TCM密码模块对所述BL31固件、所述BL32固件中的一种或多种进行度量;加载TCM服务模块;利用所述TCM服务模块和所述TCM密码模块对所述BL33固件进行度量。
在一些实现方式中,所述TCM密码模块包括密码算法的硬件资源,所述安全架构系统被配置为:在通过调用所述密码算法的硬件资源对所述BL2固件进行度量之后,通过调用所述密码算法的硬件资源,对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行度量。
在一些实现方式中,所述TCM密码模块包括服务接口模块和密码算法的硬件资源,所述服务接口模块和所述TCM服务模块构建在所述可信执行环境子系统中,所述密码算法的硬件资源设置在所述安全元件子系统中,所述安全架构系统被配置为:在通过调用所述密码算法的硬件资源对所述BL2固件进行度量之后,通过调用密码算法的硬件资源对所述BL31固件、所述BL32固件中的一种或多种进行度量;加载所述TCM服务模块和所述服务接口模块;利用所述TCM服务模块和所述服务接口模块调用所述密码算法的硬件资源,对所述BL33固件进行度量。
在一些实现方式中,所述安全架构系统被配置为:利用所述TCM服务模块和所述TCM密码模块对所述计算设备的操作系统内核的程序进行度量;加载所述操作系统内核,以初始化所述计算设备的硬件资源以及引导所述操作系统,从而完成所述计算设备的启动。
在一些实现方式中,所述安全系统架构被设置在计算设备中,所述TCM服务模块和所述TCM密码模块被配置为:对所述计算设备的操作系统内核的程序进行度量;所述安全架构系统还包括处理模块,所述处理模块被配置为:加载所述操作系统内核,以初始化所述计算设备的硬件资源以及引导所述操作系统,从而完成所述计算设备的启动。
除了上文介绍的对固件进行度量的方案,本申请实施例还可以对固件进行逐级验签。例如,通过可信根对BL2固件进行签名认证,通过BL2固件可以对BL31固件进行签名认证,通过BL31固件对BL32和/或BL33固件分别进行签名认证等。任意一级验证不通过均可以终止启动过程,以这种方式,可以实现安全架构系统的安全启动。可选地,在一些实施方式中,安全架构系统启动过程中运行的固件可以不包括BL32固件,此时BL31固件对BL33固件进行验证即可。
图12是本申请实施例提供的一种计算设备的结构示意图。该计算设备1200包括安全架构系统1210。该安全架构系统1210可以为上文所述的任意一种安全架构系统。
本申请实施例对计算设备的具体形式不做具体限定。例如,计算设备可以为移动终端、台式计算机、平板电脑、个人计算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、智能手表、上网本、可穿戴电子设备、增强现实(augmented reality,AR)设备等。
图13是本申请实施例提供的一种实现可信启动的装置的结构示意图。该装置可用于实现上述方法实施例中描述的方法。装置1300可以是安全架构系统、计算机或任意类型的计算设备。
装置1300可以包括存储器1310和处理器1320。存储器1310可用于存储指令。控制器1320可用于根据存储器1310中存储的指令,执行前文任一实施例描述的方法。
该处理器1320可以是通用处理器或者专用处理器。例如,该处理器可以为中央处理单元(central processing unit,CPU)。或者,该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specificintegrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例还提供一种计算机可读存储介质,用于存储程序。该计算机可读存储介质可应用于本申请实施例提供的安全架构系统中,并且该程序使得计算机执行本申请各个实施例中的由安全架构系统执行的方法。
本申请实施例还提供一种计算机程序产品。该计算机程序产品包括程序。该计算机程序产品可应用于本申请实施例提供的安全架构系统中,并且该程序使得计算机执行本申请各个实施例中的由安全架构系统(如TCM服务模块和/或TCM密码模块)执行的方法。
本申请实施例还提供一种计算机程序。该计算机程序可应用于本申请实施例提供的安全架构系统中,并且该计算机程序使得计算机执行本申请各个实施例中的由安全架构系统(如TCM服务模块和/或TCM密码模块)执行的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以意识到,结合本申请实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (20)

1.一种实现安全可信启动的方法,其特征在于,所述方法应用于安全架构系统,所述安全架构系统搭载有富执行环境子系统、可信执行环境子系统和安全元件子系统,所述安全架构系统中内置有可信密码服务模块,所述可信密码服务模块包括TCM服务模块和TCM密码模块,所述TCM服务模块和所述TCM密码模块构建在除所述富执行环境子系统之外的不同子系统中,所述TCM密码模块用于为所述可信密码服务模块提供可信硬件计算资源,所述TCM服务模块用于为调用所述TCM密码模块中的资源提供服务接口;
所述方法包括:
在所述安全架构系统的启动过程中,执行以下任意一种或多种度量方式:
利用所述TCM密码模块对启动过程中运行的固件进行逐级度量,并记录度量结果;或
利用所述TCM服务模块通过所述服务接口调用所述TCM密码模块对启动过程中运行的固件进行逐级度量,并记录度量结果。
2.根据权利要求1所述的方法,其特征在于,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,或
所述TCM服务模块构建在所述安全元件子系统中,所述TCM密码模块构建在所述可信执行环境子系统中。
3.根据权利要求1所述的方法,其特征在于,所述对启动过程中运行的固件进行逐级度量,包括:
对以下固件中的一种或多种进行逐级度量:BL2固件、BL31固件、BL32固件、BL33固件。
4.根据权利要求3所述的方法,其特征在于,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,且所述安全元件子系统与所述可信执行环境子系统运行于第一处理器核,
所述对以下固件中的一种或多种进行逐级度量:BL2固件、BL31固件、BL32固件、BL33固件,包括:
运行所述BL2固件,并初始化所述安全架构系统的处理器内核;
对所述第一处理器核和所述TCM密码模块的硬件资源进行自检;
在自检通过的情况下,加载并运行所述TCM密码模块;
利用所述TCM密码模块对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行逐级度量。
5.根据权利要求3所述的方法,其特征在于,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,且所述安全元件子系统与所述可信执行环境子系统运行于第一处理器核,
所述对以下固件中的一种或多种进行逐级度量:BL2固件、BL31固件、BL32固件、BL33固件,包括:
运行所述BL2固件,并初始化所述安全架构系统的处理器内核;
对所述第一处理器核和所述TCM密码模块的硬件资源进行自检;
在自检通过的情况下,加载并运行所述TCM密码模块;
利用所述TCM密码模块对所述BL31固件、所述BL32固件中的一种或多种进行逐级度量;
加载TCM服务模块;
利用所述TCM服务模块和所述TCM密码模块对所述BL33固件进行度量。
6.根据权利要求3所述的方法,其特征在于,所述TCM密码模块包括密码算法的硬件资源,
所述对以下固件中的一种或多种进行逐级度量:BL2固件、BL31固件、BL32固件、BL33固件,包括:
在通过所述TCM密码模块调用所述密码算法的硬件资源对所述BL2固件进行度量之后,通过所述TCM密码模块调用所述密码算法的硬件资源,对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行逐级度量。
7.根据权利要求3所述的方法,其特征在于,所述TCM密码模块包括服务接口模块和密码算法的硬件资源,所述服务接口模块和所述TCM服务模块构建在所述可信执行环境子系统中,
所述对以下固件中的一种或多种进行逐级度量:BL2固件、BL31固件、BL32固件、BL33固件,包括:
在通过所述TCM密码模块调用所述密码算法的硬件资源对所述BL2固件进行度量之后,通过所述TCM密码模块调用密码算法的硬件资源对所述BL31固件、所述BL32固件中的一种或多种进行逐级度量;
加载所述TCM服务模块和所述服务接口模块;
通过所述TCM服务模块和所述服务接口模块调用所述密码算法的硬件资源,对所述BL33固件进行度量。
8.根据权利要求4-7中任一项所述的方法,其特征在于,所述安全架构系统内置有可信根,所述方法还包括:
执行所述可信根;
利用所述可信根对所述BL2固件进行签名认证。
9.根据权利要求4-7中任一项所述的方法,其特征在于,所述安全架构系统被设置在计算设备中,所述方法还包括:
利用所述TCM服务模块和所述TCM密码模块对所述计算设备的操作系统内核的程序进行度量;
加载所述操作系统内核,以初始化所述计算设备的硬件资源以及引导所述操作系统,从而完成所述计算设备的启动。
10.一种安全架构系统,其特征在于,所述安全架构系统搭载有富执行环境子系统、可信执行环境子系统和安全元件子系统,所述安全架构系统中内置有可信密码服务模块,所述可信密码服务模块包括TCM服务模块和TCM密码模块,所述TCM服务模块和所述TCM密码模块构建在除所述富执行环境子系统之外的不同子系统中,所述TCM密码模块用于为所述可信密码服务模块提供可信硬件计算资源,所述TCM服务模块用于为调用所述TCM密码模块中的资源提供服务接口;
所述安全架构系统被配置为:在所述安全架构系统的启动过程中,执行以下任意一种或多种度量方式:利用所述TCM密码模块对启动过程中运行的固件进行逐级度量,并记录度量结果;或利用所述TCM服务模块通过所述服务接口调用所述TCM密码模块对启动过程中运行的固件进行逐级度量,并记录度量结果。
11.根据权利要求10所述的安全架构系统,其特征在于,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,或
所述TCM服务模块构建在所述安全元件子系统中,所述TCM密码模块构建在所述可信执行环境子系统中。
12.根据权利要求10所述的安全架构系统,其特征在于,所述安全架构系统被配置为:
利用所述TCM服务模块和/或所述TCM密码模块对以下固件中的一种或多种进行逐级度量:BL2固件、BL31固件、BL32固件、BL33固件。
13.根据权利要求12所述的安全架构系统,其特征在于,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,且所述安全元件子系统与所述可信执行环境子系统运行于第一处理器核,
所述安全架构系统被配置为:
运行所述BL2固件,并初始化所述安全架构系统的处理器内核;
对所述第一处理器核和所述TCM密码模块的硬件资源进行自检;
在所述TCM密码模块的硬件资源自检通过的情况下,加载并运行所述TCM密码模块;
利用所述TCM密码模块对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行逐级度量。
14.根据权利要求12所述的安全架构系统,其特征在于,所述TCM服务模块构建在所述可信执行环境子系统中,所述TCM密码模块构建在所述安全元件子系统中,且所述安全元件子系统与所述可信执行环境子系统运行于第一处理器核,所述安全架构系统被配置为:
运行所述BL2固件,并初始化所述安全架构系统的处理器内核;
对所述第一处理器核和所述TCM密码模块的硬件资源进行自检;
在所述TCM密码模块的硬件资源自检通过的情况下,加载并运行所述TCM密码模块;
利用所述TCM密码模块对所述BL31固件、所述BL32固件中的一种或多种进行逐级度量;
加载TCM服务模块;
利用所述TCM服务模块和所述TCM密码模块对所述BL33固件进行度量。
15.根据权利要求12所述的安全架构系统,其特征在于,所述TCM密码模块包括密码算法的硬件资源,所述安全架构系统被配置为:
在通过调用所述密码算法的硬件资源对所述BL2固件进行度量之后,通过调用所述密码算法的硬件资源,对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行逐级度量。
16.根据权利要求12所述的安全架构系统,其特征在于,所述TCM密码模块包括服务接口模块和密码算法的硬件资源,所述服务接口模块和所述TCM服务模块构建在所述可信执行环境子系统中,
所述安全架构系统被配置为:
在通过调用所述密码算法的硬件资源对所述BL2固件进行度量之后,通过调用密码算法的硬件资源对所述BL31固件、所述BL32固件中的一种或多种进行逐级度量;
加载所述TCM服务模块和所述服务接口模块;
利用所述TCM服务模块和所述服务接口模块调用所述密码算法的硬件资源,对所述BL33固件进行度量。
17.根据权利要求13-16中任一项所述的安全架构系统,其特征在于,所述安全架构系统内置有可信根,所述安全架构系统被配置为:
执行所述可信根;
利用所述可信根对所述BL2固件进行签名认证。
18.根据权利要求13-16中任一项所述的安全架构系统,其特征在于,所述安全架构系统被设置在计算设备中,所述安全架构系统被配置为:
利用所述TCM服务模块和所述TCM密码模块对所述计算设备的操作系统内核的程序进行度量;
加载所述操作系统内核,以初始化所述计算设备的硬件资源以及引导所述操作系统,从而完成所述计算设备的启动。
19.一种计算设备,其特征在于,包括:如权利要求10-18中任一项所述的安全架构系统。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有程序,所述程序使得计算机执行如权利要求1-9中任一项所述的方法。
CN202211616687.2A 2022-12-16 2022-12-16 实现安全可信启动的方法、安全架构系统及相关设备 Active CN115618364B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211616687.2A CN115618364B (zh) 2022-12-16 2022-12-16 实现安全可信启动的方法、安全架构系统及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211616687.2A CN115618364B (zh) 2022-12-16 2022-12-16 实现安全可信启动的方法、安全架构系统及相关设备

Publications (2)

Publication Number Publication Date
CN115618364A CN115618364A (zh) 2023-01-17
CN115618364B true CN115618364B (zh) 2023-06-23

Family

ID=84879955

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211616687.2A Active CN115618364B (zh) 2022-12-16 2022-12-16 实现安全可信启动的方法、安全架构系统及相关设备

Country Status (1)

Country Link
CN (1) CN115618364B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117131519B (zh) * 2023-02-27 2024-06-11 荣耀终端有限公司 一种信息的保护方法及设备
CN117353921B (zh) * 2023-12-06 2024-02-13 飞腾信息技术有限公司 密钥管理方法、装置、计算设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104933358A (zh) * 2015-07-10 2015-09-23 沈军 一种计算机免疫系统设计方法与实现
CN111353162A (zh) * 2020-03-26 2020-06-30 中国人民解放军国防科技大学 基于TrustZone分核异步执行的主动可信计算方法及系统
CN113127873A (zh) * 2021-04-26 2021-07-16 中国邮政储蓄银行股份有限公司 堡垒机的可信度量系统及电子设备
CN115470477A (zh) * 2022-09-21 2022-12-13 无锡融卡科技有限公司 智能终端及其处理器系统、可信执行方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103368906A (zh) * 2012-03-29 2013-10-23 同方股份有限公司 一种基于可信密码模块芯片的可信网络接入认证系统
CN104951316B (zh) * 2014-03-25 2018-09-21 华为技术有限公司 一种内核可信启动方法和装置
CA2905105A1 (en) * 2015-09-28 2017-03-28 Gerard Voon Mental artificial intelligence algorythms
CN110119625A (zh) * 2018-02-06 2019-08-13 威海创事特信息科技发展有限公司 一种可信计算方法
US11132440B2 (en) * 2018-11-01 2021-09-28 Foundation Of Soongsil University-Industry Cooperation Hybrid trust execution environment based android security framework, android device equipped with the same and method of executing trust service in android device
CN111125705B (zh) * 2018-11-01 2022-08-19 华为终端有限公司 一种能力开放方法及装置
CN113821803B (zh) * 2021-11-24 2022-02-15 飞腾信息技术有限公司 安全架构系统、安全管理方法和计算设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104933358A (zh) * 2015-07-10 2015-09-23 沈军 一种计算机免疫系统设计方法与实现
CN111353162A (zh) * 2020-03-26 2020-06-30 中国人民解放军国防科技大学 基于TrustZone分核异步执行的主动可信计算方法及系统
CN113127873A (zh) * 2021-04-26 2021-07-16 中国邮政储蓄银行股份有限公司 堡垒机的可信度量系统及电子设备
CN115470477A (zh) * 2022-09-21 2022-12-13 无锡融卡科技有限公司 智能终端及其处理器系统、可信执行方法

Also Published As

Publication number Publication date
CN115618364A (zh) 2023-01-17

Similar Documents

Publication Publication Date Title
CN115618364B (zh) 实现安全可信启动的方法、安全架构系统及相关设备
US9690498B2 (en) Protected mode for securing computing devices
Shepherd et al. Secure and trusted execution: Past, present, and future-a critical review in the context of the internet of things and cyber-physical systems
CN109669734B (zh) 用于启动设备的方法和装置
US8850212B2 (en) Extending an integrity measurement
KR101662618B1 (ko) 단일 신뢰 플랫폼 모듈을 가진 플랫폼 컴포넌트의 측정
US9563457B2 (en) Enabling a secure environment through operating system switching
US8595483B2 (en) Associating a multi-context trusted platform module with distributed platforms
US8909940B2 (en) Extensible pre-boot authentication
US20100161998A1 (en) Associating a Signing key with a Software Component of a Computing Platform
CN110334512B (zh) 基于双体系架构的可信计算平台的静态度量方法和装置
Futral et al. Intel Trusted Execution Technology for Server Platforms: A Guide to More Secure Datacenters
US10853086B2 (en) Information handling systems and related methods for establishing trust between boot firmware and applications based on user physical presence verification
CN115618365B (zh) 实现安全可信启动的方法、安全架构系统及相关设备
CN110334509B (zh) 双体系架构的可信计算平台的构建方法和装置
CN113448681B (zh) 一种虚拟机监控器公钥的注册方法、设备和存储介质
CN115618327B (zh) 安全架构系统、安全管理方法、计算设备及可读存储介质
CN115618328B (zh) 安全架构系统、安全管理方法、计算设备及可读存储介质
CN110601846B (zh) 一种校验虚拟可信根的系统及方法
CN112988262A (zh) 一种在目标平台上启动应用程序的方法及装置
CN118211239A (zh) 一种安全架构系统、实现安全可信启动的方法和计算设备
US20240361923A1 (en) Read-Only Memory (ROM) Security
CN117390630A (zh) 安全启动方法、安全架构系统及计算设备
CN117390631A (zh) 安全启动方法、安全架构系统及计算设备
US20240184932A1 (en) Read-Only Memory (ROM) Security

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