CN118211242A - 一种安全架构***、实现安全可信启动的方法和计算设备 - Google Patents

一种安全架构***、实现安全可信启动的方法和计算设备 Download PDF

Info

Publication number
CN118211242A
CN118211242A CN202211626911.6A CN202211626911A CN118211242A CN 118211242 A CN118211242 A CN 118211242A CN 202211626911 A CN202211626911 A CN 202211626911A CN 118211242 A CN118211242 A CN 118211242A
Authority
CN
China
Prior art keywords
firmware
tcm
subsystem
tpcm
control module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211626911.6A
Other languages
English (en)
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 CN202211626911.6A priority Critical patent/CN118211242A/zh
Publication of CN118211242A publication Critical patent/CN118211242A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请公开了一种安全架构***、实现安全可信启动的方法和计算设备,其中,在安全架构***的第三子***中集成了包括TCM和TPCM控制模块的安全服务平台,不仅利用了硬件可信根技术对固件进行逐级验证,实现安全启动技术的信任链构建;同时,利用了TCM和/或TPCM控制模块实现了可信计算技术的信任链构建。另外,TCM密码模块和TPCM控制模块彼此隔离,一方面有利于增强TCM密码模块和TPCM控制模块之间的独立性;另一方面,当除第一子***外的某一子***不可用时,安全服务平台仍可以利用另一子***中的TCM密码模块/TPCM控制模块对启动过程中运行的固件进行度量,有利于提高安全架构***的鲁棒性。

Description

一种安全架构***、实现安全可信启动的方法和计算设备
技术领域
本说明书涉及计算机应用技术领域,具体来说,涉及计算机应用技术领域下的可信计算技术,更具体地说,涉及一种安全架构***、实现安全可信启动的方法和计算设备。
背景技术
可信计算(Trusted Computing,TC)是一项由TCG(Trusted Computing Group,可信计算组织)推动和开发的技术。可信的核心目标之一是保证***和应用的完整性,从而确定***或软件运行在设计目标期望的可信状态。
为了掌握在可信计算领域的技术主导权和产业主导权,保障国际信息安全的核心技术掌握在自己手中,我国在可信计算领域推出了TCM(Trusted Cryptography Module,可信密码模块)标准。TCM可以对计算机***中运行的对象进行度量,实现对度量对象是否可信的评估。在TCM标准的基础上,我国又推出了集成定制化控制机制的TPCM(TrustedPlatform Control Module,可信平台控制模块)标准。
随着可信计算技术的成熟,可信计算技术也逐步应用到各种计算设备中,如何使得可信计算技术兼容各类计算设备,是本领域技术人员努力的方向之一。
发明内容
为解决上述技术问题,本申请提供了一种安全架构***、安全服务方法和计算设备,以实现兼容TCM和TPCM对计算设备的启动过程中运行的固件进行度量的目的,以满足各类计算设备的可信启动。
为实现上述技术目的,本申请实施例提供了如下技术方案:
第一方面,提供了一种安全架构***,包括:第一子***、第二子***和第三子***,所述第一子***、所述第二子***和所述第三子***各自对应的安全等级依次递增,所述第二子***和所述第三子***运行在第一处理器核中,所述安全架构***构建有安全服务平台,所述安全服务平台内置有可信密码模块TCM,所述安全服务平台还搭载有TPCM控制模块,所述TPCM控制模块用于通过软件方式调用所述TCM,所述TCM包括TCM密码模块,所述TPCM控制模块和所述TCM密码模块运行于除所述第一子***外的不同子***,所述安全服务平台配置成:
响应于上电请求,执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对启动过程中运行的固件进行度量,并记录度量结果。
在本实施方式中,通过在安全架构***中集成包括TCM和TPCM控制模块的安全服务平台,不仅利用了硬件可信根技术对固件进行逐级验证,实现安全启动技术的信任链构建;同时,利用了所述TCM和/或TPCM控制模块对启动过程中加载运行的固件进行可信度量、可信存储及可信报告,实现可信计算技术的信任链构建。
另外,所述TPCM控制模块和所述TCM密码模块运行于除所述第一子***外的不同子***,使得TCM密码模块和TPCM控制模块彼此隔离,一方面有利于增强TCM密码模块和TPCM控制模块之间的独立性;另一方面,当除第一子***外的某一子***不可用时,安全服务平台仍可以利用另一子***中的TCM密码模块/TPCM控制模块对启动过程中运行的固件进行度量,有利于提高安全架构***的鲁棒性。
需要说明的是,相关现有技术中,外置TPM以及TCM的实现方式,会额外增加计算机设备中硬件资源的消耗。而本申请提出的发明构思,在不涉及可信计算的场景下,可以直接升级传统技术中关于处理器的设置;在涉及可信计算的场景下,可以直接更新处理器中关于可信技术的设置。这里,关于可信技术的实现方案可以包括:(外置TPM以及TCM中的一个或多个;或者,处理器内部集成一个TPM;或者,处理器内部集成一个TCM)。
在一种实施方式中,所述TCM密码模块运行于所述第三子***,所述TPCM控制模块运行于所述第二子***,或,所述TCM密码模块运行于所述第二子***,所述TPCM控制模块运行于所述第三子***。
TCM密码模块和TPCM控制模块在第二子***和第三子***中的灵活设置,有利于提高安全架构***对于各类计算设备的适应性。
在一种实施方式中,所述安全服务平台利用所述TCM或所述TPCM控制模块对启动过程中运行的固件进行度量具体用于:
利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件。
在本实施例中,所述安全服务平台可以根据计算设备的实际情况或对安全/可信启动的实际需要,在启动过程中对BL2固件、BL31固件、BL32固件和BL33固件进行有选择性的度量,在保障安全架构***的安全性的基础上,提升安全架构***对各应用场景的适用性。
在一种实施方式中,所述TCM还包括TCM服务模块,所述TCM服务模块和所述TCM密码模块运行于所述第三子***中,所述TPCM控制模块运行于所述第二子***,且所述第二子***与所述第三子***运行于第一处理器核;
所述安全服务平台执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件具体用于:
运行所述BL2固件,并初始化所述安全架构***的处理器内核。
对所述TCM密码模块的硬件资源进行自检。在该步骤中,对TCM的硬件资源的自检可以包括对TCM的随机数产生器(例如可以是TRNG)、密码算法硬件引擎等硬件资源的自检。
在所述TCM密码模块的硬件资源自检通过的情况下,加载运行所述TCM密码模块。
加载运行所述TCM服务模块和所述TPCM控制模块。
利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量。
在本实施例中,选择对BL2固件和BL31、BL32和BL33固件的部分或全部进行度量,在保障安全***架构的安全性的基础上,有利于实现安全架构***的可信启动,保障安全***架构的安全性。
另外,TCM密码模块和TCM服务模块在TCM密码模块的硬件资源自检通过的情况下一起加载,可以使得TCM尽快获得完整的功能,为***固件的开放调用接口,满足***固件调用TCM进行可信计算的需求。
在一种实施方式中,所述安全服务平台运行所述BL2固件之后还用于:
利用所述BL2固件对所述BL31固件进行签名认证。
在本实施例中,利用BL2固件、TCM/TPCM控制模块对BL31固件进行双重认证,实现了安全/可信启动的有机结合,提高了安全架构***的安全性。
在一种实施方式中,所述TCM还包括TCM服务模块,所述TCM服务模块和所述TCM密码模块运行于所述第三子***中,且所述第二子***运行于第二处理器核,所述第三子***运行于第三处理器核;
所述安全服务平台执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件具体用于:
加载运行所述第三子***中的固件,以初始化所述第三子***;
对所述TCM密码模块的硬件资源进行自检;
在所述TCM密码模块的硬件资源自检通过的情况下,加载运行所述TCM;
利用所述TCM度量BL2固件;
运行所述BL2固件;
利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量。
在本实施例中,在本实施例中,由于第二子***和第三子***分别运行于不同的处理器核上,使得第三子***具备了图灵完备性,能够自己独立执行任务,有利于提高第三子***的任务执行效率。也正是由于第三子***具有图灵完备性,使得启动过程中,可以先加载运行第三子***中的固件,初始化第三子***,使得第三子***具备运行环境。
在一种实施方式中,所述安全服务平台利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量具体用于:
利用所述TCM度量所述BL31固件;
在所述BL31固件认证通过时,加载运行所述BL31固件;在所述BL31固件认证不通过时,终止启动过程。
利用所述TCM度量所述BL32固件;
运行所述BL32固件和所述TPCM控制模块;
检测所述TPCM控制模块的可用状态,设置表征所述TPCM控制模块的可用状态的标志位;
若所述标志位表征所述TPCM控制模块可用,则利用所述TPCM控制模块度量所述BL33固件;
若所述标志位表征所述TPCM控制模块不可用,则利用所述TCM度量所述BL33固件。
在本实施例中,在TPCM控制模块加载时,设置表征TPCM控制模块是否可用的标志位,并在TPCM控制模块可用时,优先采用TPCM控制模块进行对启动过程中运行的固件进行度量,有利于发挥可信计算3.0路线的技术优势,保障安全/可信启动流程的自主可控和安全可信。
在一种实施方式中,所述TCM还包括TCM服务模块,所述TCM服务模块和所述TPCM控制模块运行于所述第二子***中,所述TCM密码模块运行于所述第三子***中,且所述第二子***与所述第三子***运行于第一处理器核;
所述安全服务平台执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件具体用于:
对所述TCM密码模块的硬件资源进行自检。
在所述TCM密码模块的硬件资源自检通过的情况下,加载运行所述TCM密码模块。
利用所述TCM密码模块,对所述BL2固件进行度量。
运行所述BL2固件,并初始化所述安全架构***的处理器内核。
利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量。
在本实施例中,TCM服务模块不与TCM密码模块一起加载运行,可以将TCM服务模块的加载运行任务放在运算资源加载相对充分的阶段(例如BL2固件加载运行之后)进行,有利于缩短启动过程所需的启动时间。
在一种实施方式中,TCM还包括TCM服务模块,所述TCM密码模块运行于所述第三子***中,所述TCM服务模块和所述TPCM控制模块运行于所述第二子***,且所述第二子***运行于第二处理器核,所述第三子***运行于第三处理器核;
所述安全服务平台执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件具体用于:
加载运行所述第三子***中的固件,以初始化所述第三子***;
对所述TCM密码模块的硬件资源进行自检;
在所述TCM密码模块的硬件资源自检通过的情况下,加载运行所述TCM密码模块;
利用所述TCM密码模块,对所述BL2固件进行度量;
加载运行所述BL2固件,初始化所述安全架构***的处理器内核;
利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL31固件、BL32固件、BL33固件。
在本实施例中,在启动过程中先加载运行第三子***,使得第三子***可以首先正常运行,有利于提高第三子***的任务处理效率,从而提高启动效率。
在一种实施方式中,所述安全服务平台利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量具体用于:
利用所述TCM密码模块度量所述BL31固件;
在所述BL31固件认证通过时,加载运行所述BL31固件;
利用所述TCM密码模块度量所述BL32固件;
运行所述BL32固件、所述TCM服务模块和所述TPCM控制模块;
检测所述TPCM控制模块的可用状态,设置表征所述TPCM控制模块的可用状态的标志位;
若所述标志位表征所述TPCM控制模块可用,则利用所述TPCM控制模块度量所述BL33固件;
若所述标志位表征所述TPCM控制模块不可用,则利用所述TCM度量所述BL33固件。
在本实施例中,在TPCM控制模块加载时,设置表征TPCM控制模块是否可用的标志位,并在TPCM控制模块可用时,优先采用TPCM控制模块进行对启动过程中运行的固件进行度量,有利于发挥可信计算3.0路线的技术优势,保障安全/可信启动流程的自主可控和安全可信。
在一种实施方式中,所述安全架构***内置有可信根,所述安全服务平台在加载运行所述BL1固件之前,还用于:
执行所述可信根,对所述第一处理器核和所述TCM的可信计算硬件资源进行自检,若自检失败则终止所述启动过程,若自检成功,则利用所述可信根对所述BL2固件进行签名认证;
所述安全服务平台运行所述BL2固件具体用于:
在所述BL2固件认证通过的情况下,运行所述BL2固件。在所述BL2固件认证不通过的情况下,终止启动过程。
在本实施例中,通过可信根度量BL2固件,实现了整个启动链条的安全/可信,提高了安全架构***的安全性。
在一种实施方式中,所述安全架构***内置有可信根,所述安全服务平台加载运行所述第三子***中的固件之前,还用于:
执行所述可信根;
通过所述可信根对所述第三子***中的固件进行签名认证;
所述安全服务平台加载运行所述第三子***中的固件具体用于:
在所述第三子***中的固件认证通过的情况下,加载运行所述第三子***中的固件。
在本实施例中,通过可信根度量第三子***中的固件,实现了整个启动链条的安全/可信,提高了安全架构***的安全性。
在一种实施方式中,所述安全架构***被设置在计算设备中,所述安全服务平台还用于:
利用所述TCM或所述TPCM控制模块对所述计算设备的操作***内核进行度量;
在所述计算设备的操作***内核度量结果为通过时,加载所述操作***内核,以初始化所述计算设备的硬件资源以及引导所述操作***,从而完成所述计算设备的启动。
在本实施例中,实现了利用所述TCM或所述TPCM控制模块对所述计算设备的操作***内核进行度量的操作,保障了启动过程的全链条安全与可信。
第二方面,提供了一种实现安全可信启动的方法,应用于安全架构***,所述安全架构***包括:第一子***、第二子***和第三子***,所述第一子***、所述第二子***和所述第三子***各自对应的安全等级依次递增,所述第二子***和所述第三子***运行在第一处理器核中,所述安全架构***构建有安全服务平台,所述安全服务平台内置有可信密码模块TCM,所述安全服务平台还搭载有TPCM控制模块,所述TPCM控制模块用于通过软件方式调用所述TCM,所述TCM包括TCM密码模块,所述TPCM控制模块和所述TCM密码模块运行于除所述第一子***外的不同子***,所述实现安全可信启动的方法包括:
响应于上电请求,执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对启动过程中运行的固件进行度量,并记录度量结果。
在一种实施方式中,所述利用所述TCM或所述TPCM控制模块对启动过程中运行的固件进行度量包括:
利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL1固件、BL2固件、BL31固件、BL32固件、BL33固件。
第三方面,提供了一种计算设备,包括如上述任一项所述的安全架构***。
第四方面,提供了一种启动装置,应用于安全架构***,所述安全架构***包括:第一子***、第二子***和第三子***,所述第一子***、所述第二子***和所述第三子***各自对应的安全等级依次递增,所述第二子***和所述第三子***运行在第一处理器核中,所述安全架构***构建有安全服务平台,所述安全服务平台内置有可信密码模块TCM,所述安全服务平台还搭载有TPCM控制模块,所述TPCM控制模块用于通过软件方式调用所述TCM,所述TCM包括TCM密码模块,所述TPCM控制模块和所述TCM密码模块运行于除所述第一子***外的不同子***,所述启动装置包括:
度量模块,用于响应于上电请求,执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对启动过程中运行的固件进行度量,并记录度量结果。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现如上述的实现安全可信启动的方法。
第六方面,本说明书实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序,所述处理器执行所述计算机程序时实现上述的实现安全可信启动的方法的步骤。
从上述技术方案可以看出,本申请实施例提供了一种安全架构***、实现安全可信启动的方法和计算设备,其中,在所述安全架构***的第三子***中集成了包括TCM和TPCM控制模块的安全服务平台,不仅利用了硬件可信根技术对固件进行逐级验证,实现安全启动技术的信任链构建;同时,利用了所述TCM和/或TPCM控制模块对启动过程中加载运行的固件进行可信度量、可信存储及可信报告,实现可信计算技术的信任链构建。
另外,所述TPCM控制模块和所述TCM密码模块运行于除所述第一子***外的不同子***,使得TCM密码模块和TPCM控制模块彼此隔离,一方面有利于增强TCM密码模块和TPCM控制模块之间的独立性;另一方面,当除第一子***外的某一子***不可用时,安全服务平台仍可以利用另一子***中的TCM密码模块/TPCM控制模块对启动过程中运行的固件进行度量,有利于提高安全架构***的鲁棒性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本说明书的一个实施例提供的一种可选地安全架构***的结构示意图;
图2为本说明书的一个实施例提供的另一种可选地安全架构***的结构示意图;
图3为本说明书的一个实施例提供的又一种可选地安全架构***的结构示意图;
图4为本说明书的另一个实施例提供的另一种实现安全可信启动的方法的流程示意图;
图5为本说明书的一个实施例提供的再一种可选地安全架构***的结构示意图;
图6为本说明书的另一个实施例提供的又一种实现安全可信启动的方法的流程示意图;
图7为本说明书的另一个实施例提供的一种安全架构***的结构示意图;
图8为本说明书的另一个实施例提供的再一种实现安全可信启动的方法的流程示意图;
图9为本说明书的另一个实施例提供的另一种安全架构***的结构示意图;
图10为本说明书的另一个实施例提供的一种可选地启动的方法的流程示意图;
图11为本说明书的另一个实施例提供的另一种可选地实现安全可信启动的方法的流程示意图;
图12为本说明书的另一个实施例提供的又一种安全架构***的结构示意图;
图13为本说明书的另一个实施例提供的再一种安全架构***的结构示意图;
图14为本说明书的一个实施例提供的一种实现安全可信启动的方法的流程框图;
图15为本说明书的一个实施例提供的一种计算设备的结构示意图。
具体实施方式
除非另外定义,本说明书实施例使用的技术术语或者科学术语应当为本说明书所属领域内具有一般技能的人士所理解的通常意义。本说明书实施例使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来避免构成要素的混同而设置的。
除非上下文另有要求,否则,在整个说明书中,“多个”表示“至少两个”,“包括”被解释为开放、包含的意思,即为“包含,但不限于”。在说明书的描述中,术语“一个实施例”、“一些实施例”、“示例性实施例”、“示例”、“特定示例”或“一些示例”等旨在表明与该实施例或示例相关的特定特征、结构、材料或特性包括在本说明书的至少一个实施例或示例中。上述术语的示意性表示不一定是指同一实施例或示例。
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
为便于理解,下面先对本说明书实施例中可能出现的部分名词或术语进行解释:
安全硬件架构,是为计算设备设计的一种***架构,其目的是为计算设备构建一个安全框架来抵御各种可能的攻击。安全硬件架构的实现方式可以是将处理器的硬件和软件资源划分为安全(Secure World)和普通(Normal World)世界。所有需要保密的操作在安全世界执行(如指纹识别、密码处理、数据加解密和安全认证等),其余操作在普通世界执行(如用户操作***、各种普通应用程序等),安全世界和普通世界通过一个名为监控模式(Monitor Mode)的模式进行转换。在处理器架构上,可以将物理的处理器核虚拟为两个核,一个非安全核(Non-secure Core,NS Core),运行普通世界的代码,另一个安全核(SecureCore),运行安全世界的代码。安全硬件架构的具体结构类型可参考Trust Zone(简称TZ)和SGX(Software Guard Extensions)技术。
可信固件(Trusted Firmware,TF)是一种安全解决方案,将计算设备启动和运行过程中的特权级进行了划分。这些特权级与安全硬件架构相结合,共同保障计算设备的启动过程的安全性。具体地,可信固件技术划分了EL0(Exception Level 0)到EL3共四个特权级。从EL0到EL3,特权级依次递增。从高LE转低EL通过ERET指令,从低EL转高EL通过exception,从而可以严格区分不同的特权级。其中EL0、EL1和EL2可以分成NS-ELx(NoneSecure ELx,x=0,1,2,即普通世界ELx)和S-ELx(Secure ELx,x=0,1,2,即安全世界ELx),而EL3只有安全世界EL3一种。在一些情形中,计算设备的启动过程所需运行的固件可以包括BL1固件、BL2固件、BL31固件、BL32固件和BL33固件。
其中,BL1固件可以称为Trusted Boot ROM(可信启动ROM),是启动过程中运行最早的固件,也是存储于处理器ROM(Read-Only Memory,只读存储器)中的固件,BL1固件与计算设备的BIOS并不在一起,在一些类型的可信固件技术中,BL1固件是一切的信任根。BL1固件可以用于初始化计算设备的核心硬件(例如Trusted SRAM(可信静态随机存取存储器)、串口等),并找到BL2硬件,一些情况下,BL1固件会对BL2固件进行验签。BL1固件运行在EL3特权级上。
BL2固件可以称为Trusted Boot Firmware(可信启动固件),BL2固件同样运行在EL3特权级上,BL2固件和BL1固件的显著不同是BL2固件可以存储在外置的可信存储设备上,它的可信可以是建立在BL1固件对它的验证上。BL2固件会初始化一些关键安全硬件和软件框架,BL2固件在初始化完成之后,会找到BL31。
BL31固件可以称为EL3 Runtime Firmware(EL3运行固件),BL31固件也运行在EL3特权级上,是EL3特权级最后的安全堡垒,BL31固件不像BL1固件和BL2固件是一次性运行的,它通过SMC(Secure Monitor Call,安全监视调用)为普通世界(Non-Secure)持续提供涉及安全的服务。
BL32固件可以包括OPTee OS(Open Portable Tee Operate System,开放可移植Tee操作***)和可信应用,OPTee OS可以是指可信执行环境Tee的操作***。BL32固件运行在S-EL1上,BL32固件上的可信应用运行在S-EL0。在一些情形下,OPTee OS运行完毕后,返回EL3的BL31固件,BL31固件找到BL33固件,BL31固件还可以验签BL33固件。
BL33固件可以包括运行在普通世界的固件(Non-Trusted Firmware),BL33固件可以包括面向桌面、服务器等领域的UEFI(Unified Extensible Firmware Interface,可扩展固件接口)固件或者U-boot(面向嵌入式领域的引导加载程序),也可以包括LinuxKernel(Linux内核),还可以包括基本输入输出***(basic input output system,BIOS)固件。在普通世界下,EL0、EL1、EL2、EL3的执行权限依次增大。其中,UEFI固件被配置运行在普通世界的EL2级别,OP-TEE被配置运行在安全世界的EL1级别。在进入UEFI(BL33)启动的时候,OP-TEE已经完成启动,而UEFI与OP-TEE之间可以通过安全监控调用(secure monitorcall,SMC)接口进行通信。因此,在进行UEFI启动时,在对镜像文件进行完整性和安全性验证时,可以通过普通世界触发SMC方式调用安全世界的OP-TEE对应接口来实现某些功能,如此,可以将涉及到对镜像文件的验证过程传递到安全世界进行验证,并返回验证结果给普通世界。
可信计算(Trusted Computing,TC)是在计算设备中广泛使用的,基于安全服务模块支持的可信计算平台,以提高计算设备整体的安全性。
安全服务模块,是为计算设备提供完整性和真实性保障的安全芯片,一般通过物理方式被强绑定到计算设备的硬件平台中。安全服务器模块的核心功能是基于支持的密码算法构建可信计算3个维度的功能,包括:平台完整性度量与验证、平台可信身份标识与鉴别、平台数据保护。可选地,安全服务模块可以包括可信密码模块(Trusted CryptoModule,TCM)、可信平台模块(Trusted Platform Module,TPM)和可信平台控制模块(Trusted Platform Control Module,TPCM)中的至少一项。
TPM标准由TCG(Trusted Computing Group,是可信计算组织)推出,TPM技术规范遵循相应的国际规范,因此,它提供符合TPM国际规范的标准服务。通常的,TPM模块可包括TPM密码模块和TPM服务模块两部分。TPM密码模块和TPM服务模块配合工作能够支撑实现TPM可信计算技术的服务。
TCM,是我国借鉴国际可信计算技术框架与技术理念,结合国内可信计算技术的发展实际,提出的可信计算芯片。TCM使用的算法可以包括非对称密码算法、对称密码算法和杂凑算法。其中,非对称密码算法采用椭圆曲线密码算法,包括3个子算法:椭圆曲线数字签名算法(SM2-1)、椭圆曲线密钥交换协议(SM2-2)和椭圆曲线公钥加密算法(SM2-3)。对称密码算法采用SM-4算法(SM-4算法可以是基于ISO/IEC 18033-3:2010/AMD1:2021《信息技术安全技术加密算法第3部分:分组密码补篇1:SM4》标准的算法),该算法是一个分组算法,分组长度为128位,密钥长度为128位,加密算法与密钥扩展算法都采用32轮非线性迭代结构。杂凑算法采用SM-3算法(SM-3算法可以是基于GM/T 0004-2012《SM3密码杂凑算法》标准的算法),该算法将不定长度的文本压缩为32字节的摘要值。各密码算法采用的密钥可以不同。从上面的描述可以发现,TPM和TCM的主要区别在于支持的密码算法和密钥种类不同,且TCM的存储主密钥为对称密钥。TCM可以包括用于提供密钥算法和存储密钥的算法引擎(例如可以是SM2引擎、SM3引擎、SM4引擎)、HMAC引擎(基于SM3引擎的计算消息认证码单元)和随机数产生器(例如真随机数发生器,True Random Number Generator,TRNG)等部件构成,这些部件可以通过依托硬件和软件的结合实现。
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服务模块具体的设计,不同厂商有各自不同的设计实现。
TPM密码模块,用于为TPM可信计算服务提供可信计算硬件资源,该可信计算硬件资源具体包括用于存储密钥、随机数等数据的存储空间,和用于多种密码算法的算法模块等硬件资源。例如,通常情况下,TPM密码模块能够支持摘要算法单元SHA-1,SHA-256,和加解密算法单元RSA、ECC、AES,并且也支持新算法。
TPM服务模块,可以是指用于调用TPM密码模块,提供服务接口的模块。相似的,TPM密码模块和TPM服务模块共同构成了完整的TPM。
可信平台控制模块TPCM,由TCM和平台控制机制组成,除提供密码服务功能之外,还提供平台控制功能,可以对***中的总线进行控制,其中的平台控制机制可以称为TPCM控制模块(或TPCM模块),TPCM控制模块可以主动调用TCM提供诸如安全度量等安全服务。
安全服务,也可称为密码服务,是指安全服务模块基于自身支持的密码算法能够提供的服务类型。安全服务具体可以包括可信度量、可信存储和可信报告等等。可信存储可以是指通过密码机制实现数据的保密存储或完整性保护。可信报告可以是指向外界提供描述安全服务模块内部状态的报告。可信度量是指基于安全服务模块的密码算法,按照度量策略和度量基准值为计算设备中运行的其他对象的完整性和/或可信性的度量,根据该度量结果可对度量对象的运行状态进行控制。当对待度量对象的度量通过时,可以维持待度量对象原本的状态,或执行待度量对象在被可信度量之前预期需要执行的操作,当对待度量对象的度量不通过时,可以对待度量对象采取安全措施,例如,可以控制计算机复位,或者,可以控制待度量对象重新启动,以避免导致度量不通过的原因对计算机造成安全威胁。
可信根(Root of Trust,ROT)是安全架构***可信的源头,是一个必然被信任的组件。对于一个安全***架构中可信根的具体构成,不同的***架构中有所不同,在一些情况下,可信根可以是指可信度量根(Root of Trust for Measurement,RTM)、可信存储根(Root of Trust for Storage,RTS)和可信报告根(Root of Trust for Reporting,RTR)。在一些情况下,可信根也可以是TPCM。在本说明书的一些实施方式中,可信根也可以是存储在只读存储器(Read-Only Memory,ROM)中,且在***上电启动过程中运行的前一行(段)或前几行(段)代码(可以称为启动ROM或者处理器基础ROM(Processor Based ROM))。在一些实施方式中,由于BL1固件存储于ROM中,且属于启动过程中所需运行的固件,BL1固件也具有较难篡改、安全性较高的特点,因此可信根可以包括BL1固件。可信根可以认为是***信任链建立的源头。
平台配置寄存器(Platform Configuration Register,PCR)是一组特殊的寄存器,这组寄存器将新写入值与寄存器中的原始值合并,进行一次Hash(哈希)计算,其运行结果作为PCR中的新值。一般我们将对特定对象的度量结果写入PCR寄存器中。
可信软件基(Trusted Software Base,TSB):可信软件基是可信计算体系的重要组成部分,基于运算和防护并存的双***体系结构思想设计。软件层面的双***即宿主基础软件和可信软件基。可信软件基在宿主基础软件运行时进行主动拦截和度量,不需要修改原应用,通过制定策略进行主动实时防护,从而破坏和阻止进入***的病毒或木马等恶意软件,达到主动免疫防御的安全效果。
基板管理控制器(Baseboard Management Controller,BMC):广泛应用于服务器类计算机平台处理器带外管理子***,其功能包括虚拟键盘、鼠标、显示器、电源管理控制和远程运维等,也包括对服务器平台的电源电压、温度、风扇状态、机箱状态等物流信息的监视。基板管理控制器是主板第一个上电启动的部件。
基本输入输出***(Base Input/Output System,BIOS),基本输入输出***通过I/O接口实现基本的输入输出操作。
本说明书实施例提供的安全架构***是为了兼容TCM和TPCM对计算设备的启动过程中运行的固件进行度量的目标,满足各类计算设备的安全和可信启动的要求。
总的来说,本申请提出的实现安全可信启动的方法涵盖以下情形:
在一个实施例中,利用硬件可信根技术对固件进行逐级验证,实现安全启动技术的信任链构建,其中,固件可以包括BL1固件、BL2固件、BL31固件、BL32固件和BL33固件中的一种或多种;
一般情况下,BL1固件可以被设置在硬件可信根中,具有不可篡改的特性,是上电启动的第一段代码,是一切信任链的源头。在这种情况下,为实现安全启动技术,需先执行硬件可信根,之后,对BL2固件、BL31固件、BL32固件和BL33固件中的一种或多种进行逐级签名验证,示例性地,该逐级签名验证具体体现在:通过硬件可信根对BL2固件进行签名验证,之后,BL2固件对BL31固件进行签名验证,BL31固件对BL32和/或BL33固件分别进行签名验证。
在一个实施例中,在实现了上述安全启动技术的基础上,进一步利用TCM或TPCM控制模块对启动过程中加载运行的固件进行可信度量、可信存储及可信报告,实现可信计算技术的信任链构建。
其实现流程可以包括:上电,执行硬件可信根,之后,对BL2固件、BL31固件、BL32固件和BL33固件中的一种或多种进行逐级验证,示例性地,该逐级具体体现在:通过硬件可信根对BL2固件进行验证,之后,通过BL2固件对BL31固件、BL32和/或BL33固件进行逐个验证;或者说,通过BL2固件对BL31固件进行验证,之后,通过BL31固件对BL33固件进行验证;或者说,通过BL2固件对BL31固件进行验证,之后,通过BL31固件对BL32固件和BL33固件进行逐个验证;与此同时,TCM硬件自检,在自检成功的情况下,加载运行TCM或TPCM控制模块,在加载成功的情况下,利用所述TCM或所述TPCM控制模块对BL31固件、BL32固件、BL33固件中的至少一项进行度量,例如,利用所述TCM或所述TPCM控制模块对BL31固件、BL32固件和BL33固件进行逐个度量;或者说,利用所述TCM或所述TPCM控制模块对BL31固件和BL33固件进行逐个度量;若度量成功,安全/可信启动完成,若度量失败,安全/可信启动失败。在后续实施例中,将会具体阐述相关实现。
下面将结合附图对本说明书实施例提供的安全架构***进行示例性说明。
示例性***
本说明书实施例提供了一种安全架构***,如图1所示,包括:第一子***11、第二子***12和第三子***13,所述第一子***11、所述第二子***12和所述第三子***13各自对应的安全等级依次递增,所述第二子***12和所述第三子***13运行在第一处理器核中,所述安全架构***构建有安全服务平台,所述安全服务平台内置有可信密码模块TCM,所述安全服务平台还搭载有TPCM控制模块22,所述TPCM控制模块22用于通过软件方式调用所述TCM,所述TCM包括TCM密码模块211,所述TPCM控制模块22和所述TCM密码模块211运行于除所述第一子***11外的不同子***,所述安全服务平台配置成:
响应于上电请求,执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块22对启动过程中运行的固件进行度量,并记录度量结果。
在本实施例中,当安全架构***接收或检测到上电请求后,响应该上电请求优先于启动过程中所需运行的固件先行启动,利用TCM或TPCM控制模块22实现对启动过程中所需运行的固件的主动度量,TCM21或TPCM控制模块22对固件的主动度量可以包括可信度量、可信存储和可信报告,实现可信计算基数的信任链构建。在一些实施方式中,为了便于实现对安全服务平台的优先启动,所述安全服务平台的TCM和所述TPCM控制模块22可以与计算设备的处理器集成在同一块芯片中,如此可以减少安全服务平台与集成处理器的芯片之间的外部通信接口,使得安全服务平台可以便于接收或检测所述上电请求,也使得所述安全服务平台方便利用所述TCM或所述TPCM控制模块22对启动过程中运行的固件进行度量。
度量结果可以记录在安全架构***的PCR中,记录的度量结果可以在安全架构***启动完成后,提供远程验证服务,满足可信启动的要求。记录在PCR中的度量结果也可以用于生成可信报告,向外界提供描述安全架构***内部状态的报告。
TPCM控制模块22以软件方式调用所述TCM可以是指TPCM控制模块22以向TCM发送软件程序调用指令的方式调用所述TCM。
上电请求可以是计算设备接通电源后的电源信号,也可以是计算设备接通电源后向安全架构***发送的请求启动***的请求。
在一些实施例中,所述安全架构***还可以包括可信根,基于可信根对固件进行逐级验证,实现安全启动技术的信任链构建,其中,固件可以包括BL1固件、BL2固件、BL31固件、BL32固件和BL33固件中的一种或多种。在一些实施方式中,可信根包括BL1固件,这种情况下,BL1固件具有不可篡改的特性,是上电启动的第一段代码,是一切信任链的源头。在这种情况下,所述安全架构***还可以基于可信根实现***的安全启动,具体地,安全启动过程可以包括:先执行可信根,之后对BL2固件、BL31固件、BL32固件和BL33固件中的一种或多种进行逐级签名验证。示例性地,该逐级签名验证过程可以包括:通过可信根对BL2固件进行签名验证,之后,通过BL2固件对BL31固件进行签名验证,通过BL31固件分别对BL32固件和BL33固件进行逐个签名验证,任意一级签名验证不通过均可以终止启动过程,以这种方式,可以实现安全架构***的安全启动。可选地,在一些实施方式中,安全架构启动过程中运行的固件可以不包括BL32固件,此时BL31固件对BL33固件进行签名验证即可。
第一子***11可以是普通执行环境(Rich Execution Environment,REE,也可称为富执行环境)子***,该子***可以用于运行计算设备的操作***(Operating System,OS)和普通应用(也可称为客户端应用(Client Application,CA))等对象。
第二子***12可以是可信执行环境(Trusted Execution Environment,TEE)子***,该子***可以用于运行可信应用(Trusted Application,TA),满足数字版权管理(Digital Rights Management,DRM)、移动支付和敏感数据保护等应用需求。
第三子***13可以是安全元件子***(Secure Element,SE),该子***可以用于实施安全芯片技术,保证重要资源的安全性。
安全等级,也可称为安全保护等级,可以是指定义各子***信息安全保护能力的等级。子***的信息安全保护能力可以通过硬件隔离和/或软件隔离等方式保障。
图1中示出了在第一子***11、第二子***12和第三子***13中可能运行/搭载的对象。例如,第一子***11中可以运行***固件、操作***OS或虚拟机VM(VirtualMachine)。***固件可以是实现为面向桌面、服务器等领域的可扩展固件接口(UnifiedExtensible Firmware Interface,UEFI),或者可以是实现为面向嵌入式领域的引导加载程序(U-Boot)。此外,基础固件、***固件以及操作***OS可以与带外控制***(例如嵌入式控制器EC、基板管理控制器BMC等)进行通信。
第二子***12可以运行第二子***12依赖的安全操作***(TEE OS)。在一些实施例中,第二子***12中还可以运行可信应用TA。第二子***12的安全等级高于第一子***11,即第二子***12的安全性高于第一子***11,第二子***12例如可以用于支持支付业务中校验支付环境等功能。第二子***12可以向诸如第一子***11及其上运行的普通应用提供可信服务并且与第一子***11相隔离,即第一子***11及其上运行的普通应用无法直接访问第二子***12的硬件和软件资源。
第三子***13运行的应用可以称为安全元件应用(Applet),其安全性高于第二子***12。第三子***13可以用于存储诸如根密钥等重要资源,通过权限校验、密码技术等手段来保证第三子***13中存储的重要资源的安全性。在安全架构***中,通过这三个子***之间的相互配合来保障计算环境的安全性。
除此之外,第一子***11还用于运行普通应用程序(简称普通应用),其中的普通应用可以是涉及支付场景的应用,其中实现诸如浏览商品、选择商品、提交订单等基本业务。第二子***12中可以运行可信应用,通过可信应用来对第一子***11提供可信赖的运行环境,再通过对机密性、完整性的保护和数据访问权限的控制,确保端到端的安全性。此外,第二子***12可以与第一子***11并行运行,并且例如第二子***12通过安全的应用程序编程接口(Application Programming Interface,API)与第一子***11进行交互。作为示例,第一子***11可以向第二子***12传递可信服务发起请求,以请求第二子***12提供相应的可信服务并基于请求做出响应。
第三子***13相较于第二子***12的安全等级更高,可以用于构建可信安全的资源存储和运算环境。一般情况下,第三子***13中的软件***相对简单,包括较少的硬件元器件,因此更容易建立物理防护和实施安全保障,从而提高第三子***13的安全等级,以服务于对安全性要求更高的安全***。作为示例,第二子***12可以向第三子***13传递安全服务请求,以请求第三子***13提供相应的安全服务并基于请求做出响应,第二子***12请求的安全服务例如可以是请求第三子***13进行与密码运算相关的服务等。
例如,在一些实施例中,第一子***11与第二子***12不存在直接访问第三子***13的物理通路,只能通过共享内存等交互的方式向第三子***13提出请求,由第三子***13向第一子***11、第二子***12提供服务。关于第三子***13,作为一种实现方式,第三子***13可以包括执行引擎、静态随机存取存储器(SRAM)、非易失性存储器,或者还可以包括密钥派生模块(Key Derivation Function,KDF)。其中,诸如根密钥等重要资源可以存入第三子***13内的非易失性存储器,并且由第三子***13的固件或硬件保证根密钥不具有传递出第三子***13的软件或硬件路径。此外,第三子***13内集成的密钥派生模块KDF例如可以实现为软件或硬件并用于实现基于根密钥产生派生密钥。例如,密钥派生模块KDF可以是哈希函数,通常用来将短密码变成长密码。具体的,上述共享内存可以是指在多处理器的计算机***中,可以被不同处理器访问的大容量内存。在一些实施方式中,第三子***13包括的执行引擎等资源可以作为TCM和/或TPM的可信计算硬件资源。
本实施例中,在所述安全架构***的第三子***13中集成了包括TCM和TPCM控制模块22的安全服务平台,使得所述安全服务平台可以在启动流程中,利用TCM或TPCM控制模块22对目标固件进行度量,并存储度量结果,存储的度量结果可以在计算设备联网后供远程验证,满足可信启动的要求。基于所述安全架构***实现了兼容TCM和TPCM标准进行可信启动的目的。此外,通过在安全架构***100中集成包括TCM21和TPCM控制模块22的安全服务平台20,不仅利用了硬件可信根技术对固件进行逐级验证,实现安全启动技术的信任链构建;同时,利用了所述TCM和/或TPCM控制模块对启动过程中加载运行的固件进行可信度量、可信存储及可信报告,实现可信计算技术的信任链构建。
另外,所述TPCM控制模块22和所述TCM密码模块211运行于除所述第一子***11外的不同子***,使得TCM密码模块211和TPCM控制模块22彼此隔离,一方面有利于增强TCM密码模块211和TPCM控制模块22之间的独立性;另一方面,当除第一子***11外的某一子***不可用时,安全服务平台仍可以利用另一子***中的TCM密码模块211/TPCM控制模块22对启动过程中运行的固件进行度量,有利于提高安全架构***的鲁棒性。
参考图2,并结合参考图1,图1和图2示出了可行的TCM密码模块211和TPCM控制模块22的设置方式,在图1中,所述TCM密码模块211运行于所述第三子***13,所述TPCM控制模块22运行于所述第二子***12。在图2中,所述TCM密码模块211运行于所述第二子***12,所述TPCM控制模块22运行于所述第三子***13。
将TCM密码模块211设置于安全等级更高的第三子***13中,有利于保障TCM的硬件资源基础(即所述TCM密码模块211)得到更好的保证。而将TPCM控制模块22设置于第三子***13中,有利于尽早启动所述TPCM控制模块22,使得TPCM控制模块22可以更早地参与到启动过程中运行的固件的度量工作中,发挥可信计算3.0的优势。TCM密码模块211和TPCM控制模块22的具体设置位置可以根据实际情况灵活选择,本说明书对此并不做限定。
为了灵活配置对启动过程中需要度量的固件,在本说明书的一些实施方式中,所述安全服务平台利用所述TCM或所述TPCM控制模块对启动过程中运行的固件进行度量具体用于:
利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件。
关于BL2固件、BL31固件、BL32固件和BL33固件的限定可参考上文中的相关描述。
在本实施例中,所述安全服务平台可以根据计算设备的实际情况或对安全/可信启动的实际需要,在启动过程中对BL2固件、BL31固件、BL32固件和BL33固件进行有选择性的度量,在保障安全架构***的安全性的基础上,提升安全架构***对各应用场景的适用性。
下面的一些实施方式,介绍一些可能的具体启动流程,可选地,在本说明书的一个实施例中,参考图3,所述TCM21还包括TCM服务模块212,所述TCM服务模块212和所述TCM密码模块211运行于所述第三子***13中,所述TPCM控制模块22运行于所述第二子***12,且所述第二子***12与所述第三子***13运行于第一处理器核31。
参考图4,所述安全服务平台执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件具体用于:
运行所述BL2固件,并初始化所述安全架构***的处理器内核。
对所述TCM密码模块的硬件资源进行自检。在该步骤中,对TCM的硬件资源的自检可以包括对TCM的随机数产生器(例如可以是TRNG)、密码算法硬件引擎等硬件资源的自检。
在所述TCM密码模块的硬件资源自检通过的情况下,加载运行所述TCM密码模块。
加载运行所述TCM服务模块和所述TPCM控制模块。
利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量。
具体过程参考图4:
S1701:启动:响应于上电请求,执行启动流程。
S1702:加载运行BL2:即运行所述BL2固件,初始化所述安全架构***的处理器内核。
S1703:TCM的硬件资源自检:即对所述TCM密码模块的硬件资源进行自检,在所述TCM的硬件资源自检通过(或称自检成功)的情况下,进入步骤S1704:加载运行所述TCM密码模块。在所述TCM的硬件资源自检失败的情况下,进入步骤S1710:安全/可信启动失败,终止启动过程。
S1705:加载运行TCM服务模块。
S1706:度量BL31、BL32、BL33:利用TCM或TPCM控制模块对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行度量,若度量成功则进入步骤S1707:安全/可信启动完成,若度量失败则进入步骤S1708:安全/可信启动失败,终止启动过程。在步骤S1706中,由于TPCM控制模块运行于第二子***中,通常与第二子***的操作***封装在一起,因此在包括第二子***的操作***的BL32固件加载运行完毕后,才能进行TPCM控制模块的加载运行。
在本实施例中,选择对BL2固件和BL31、BL32和BL33固件的部分或全部进行度量,在保障安全***架构的安全性的基础上,有利于实现安全架构***的可信启动,保障安全***架构的安全性。
另外,TCM密码模块和TCM服务模块在TCM密码模块的硬件资源自检通过的情况下一起加载,可以使得TCM尽快获得完整的功能,为***固件的开放调用接口,满足***固件调用TCM进行可信计算的需求。
可选地,在另一个实施例中,所述安全服务平台运行所述BL2固件之后还用于:
利用所述BL2固件对所述BL31固件进行签名认证。
该过程可以包括:
启动:响应于上电请求,执行启动流程。
加载运行BL2:即运行所述BL2固件,初始化所述安全架构***的处理器内核。
在BL2固件运行之后,对所述TCM的硬件资源进行自检,在所述TCM的硬件资源自检通过(或称自检成功)的情况下,加载运行所述TCM和所述TPCM控制模块。在所述TCM的硬件资源自检失败的情况下,安全/可信启动失败,终止启动过程。
度量BL31、BL32、BL33:利用TCM或TPCM控制模块对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行度量,若度量失败则安全/可信启动失败,终止启动过程。
BL2签名认证BL31,即在BL2固件运行之后,还利用BL2固件对BL31固件进行签名认证,在BL2固件对BL31固件的签名认证成功,且度量BL31、BL32、BL33的度量结果为成功时,安全/可信启动完成,否则安全/可信启动失败,终止启动过程。
在本实施例中,利用BL2固件、TCM/TPCM控制模块对BL31固件进行双重认证,实现了安全/可信启动的有机结合,提高了安全架构***的安全性。
在本说明书的一个实施例中,参考图5,所述TCM还包括TCM服务模块,所述TCM服务模块212和所述TCM密码模块211运行于所述第三子***13中,且所述第二子***12运行于第二处理器核32,所述第三子***13运行于第三处理器核33;
所述安全服务平台执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件具体用于:
加载运行所述第三子***中的固件,以初始化所述第三子***;
对所述TCM密码模块的硬件资源进行自检;
在所述TCM密码模块的硬件资源自检通过的情况下,加载运行所述TCM;
利用所述TCM度量BL2固件;
运行所述BL2固件;
利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量。
在本实施例中,由于第二子***和第三子***分别运行于不同的处理器核上,使得第三子***具备了图灵完备性,能够自己独立执行任务,有利于提高第三子***的任务执行效率。
也正是由于第三子***具有图灵完备性,使得启动过程中,可以先加载运行第三子***中的固件,初始化第三子***,使得第三子***具备运行环境,之后的度量步骤可参考图4中的相关描述。
在一些实施方式中,对如何利用TCM或TPCM控制模块对固件进行度量提出了优化设计,具体地,当TPCM控制模块运行于第二子***,TCM服务模块和TPM密码模块运行于第三子***时,参考图6,所述安全服务平台利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量具体用于:
利用所述TCM度量所述BL31固件;
在所述BL31固件认证通过时,加载运行所述BL31固件;在所述BL31固件认证不通过时,终止启动过程。
利用所述TCM度量所述BL32固件;
运行所述BL32固件和所述TPCM控制模块;
检测所述TPCM控制模块的可用状态,设置表征所述TPCM控制模块的可用状态的标志位;
若所述标志位表征所述TPCM控制模块可用,则利用所述TPCM控制模块度量所述BL33固件;
若所述标志位表征所述TPCM控制模块不可用,则利用所述TCM度量所述BL33固件。
具体步骤包括:
S1901:度量BL31:由于TPCM控制模块运行于第二子***,因此在加载运行BL32固件之前,TPCM控制模块暂未运行,此时需要利用TCM度量BL31固件。
若BL31固件度量成功,则执行步骤S1902:加载运行BL31。若BL31固件度量失败,则执行步骤S1907:安全/可信启动失败,终止启动过程。
S1903:度量BL32:同样的,由于BL32固件加载之前,TPCM控制模块未运行,因此需要利用已经在之前步骤中加载运行的TCM度量BL32固件。
若BL32固件度量成功,在执行步骤S1904:加载运行BL32固件和TPCM控制模块。
若BL32固件度量失败,则执行步骤S1907:安全/可信启动失败,终止启动过程。
S1905:检测TPCM控制模块:检测所述TPCM控制模块的标志位,若所述TPCM控制模块的标志位表征所述TPCM控制模块可用,则使能TPCM控制模块,后续度量步骤(S1906)采用TPCM控制模块进行度量,若TPCM控制模块的标志位表征所述TPCM控制模块不可用,则后续度量步骤(S1906)采用TCM进行度量。
S1906:度量BL33:根据步骤S1905的检测结果,选择TCM或TPCM控制模块,对BL33固件进行度量。
若BL33固件度量失败,则执行步骤S1907:安全/可信启动失败,终止启动过程。
若BL33固件度量成功,则执行步骤S1908:安全/可信启动完成。
在步骤S1901之前的步骤根据第二子***和第三子***是否运行于同一处理器核等因素的不同而有所不同,具体可行执行过程可参考上文中的相关描述。
在本实施例中,在TPCM控制模块加载时,设置表征TPCM控制模块是否可用的标志位,并在TPCM控制模块可用时,优先采用TPCM控制模块进行对启动过程中运行的固件进行度量,有利于发挥可信计算3.0路线的技术优势,保障安全/可信启动流程的自主可控和安全可信。
在本说明书的一个实施例中,参考图7,所述TCM还包括TCM服务模块212,所述TCM服务模块212和所述TPCM控制模块22运行于所述第二子***12中,所述TCM密码模块211运行于所述第三子***13中,且所述第二子***12与所述第三子***13运行于第一处理器核31;
如图8所示,所述安全服务平台执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件具体用于:
对所述TCM密码模块的硬件资源进行自检。
在所述TCM密码模块的硬件资源自检通过的情况下,加载运行所述TCM密码模块。
利用所述TCM密码模块,对所述BL2固件进行度量。
运行所述BL2固件,并初始化所述安全架构***的处理器内核。
利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量。
参考图8,具体启动过程包括:
S2101:启动:响应于上电请求,执行启动流程。
S2102:加载运行BL2:即运行所述BL2固件,初始化所述安全架构***的处理器内核。
S2103:TCM的硬件资源自检:即在BL2固件运行之后,对所述TCM密码模块的硬件资源进行自检,在所述TCM的硬件资源自检通过(或称自检成功)的情况下,进入步骤S2104:加载运行所述TCM密码模块。在所述TCM的硬件资源自检失败的情况下,进入步骤S2107:安全/可信启动失败,终止启动过程。
S2105:度量BL31、BL32、BL33:利用TCM或TPCM控制模块对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行度量,若度量成功则进入步骤S2106:安全/可信启动完成,若度量失败则进入步骤S2107:安全/可信启动失败,终止启动过程。在步骤S2105中,由于TPCM控制模块和TCM服务模块运行于第二子***中,通常与第二子***的操作***封装在一起,因此在包括第二子***的操作***的BL32固件加载运行完毕后,才能进行TPCM控制模块和TCM服务模块的加载运行。
在本实施例中,TCM服务模块不与TCM密码模块一起加载运行,可以将TCM服务模块的加载运行任务放在运算资源加载相对充分的阶段(例如BL2固件加载运行之后)进行,有利于缩短启动过程所需的启动时间。
对于具有多核处理器的计算设备,在一些实施例中,参考图9,所述TCM服务模块212和所述TPCM控制模块22运行于所述第二子***12,且所述第二子***12运行于第二处理器核32,所述第三子***13运行于第三处理器核33;
参考图10,所述安全服务平台执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件具体用于:
加载运行所述第三子***中的固件,以初始化所述第三子***;
对所述TCM密码模块的硬件资源进行自检;
在所述TCM密码模块的硬件资源自检通过的情况下,加载运行所述TCM密码模块;
利用所述TCM密码模块,对所述BL2固件进行度量;
加载运行所述BL2固件,初始化所述安全架构***的处理器内核;
利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL31固件、BL32固件、BL33固件。
具体步骤参考图10,包括:
S2301:启动:响应于上电请求,执行启动流程。
S2302:加载运行第三子***的固件,以初始化第三子***。在本实施例中,由于第三子***运行于单独的第二处理器核上,具备图灵完备性,可以自己运行第三子***中的固件。
S2303:TCM的硬件资源自检:即对所述TCM密码模块的硬件资源进行自检,在所述TCM的硬件资源自检通过(或称自检成功)的情况下,进入步骤S2304:加载运行所述TCM密码模块。在所述TCM的硬件资源自检失败的情况下,进入步骤S2309:安全/可信启动失败,终止启动过程。
S2305:度量BL2:利用TCM密码模块对BL2固件进行度量,在BL2固件度量结果为通过(或称成功)的情况下,进入步骤S2306:加载运行BL2:即加载运行所述BL2固件,初始化所述安全架构***的处理器内核。在BL2固件度量结果为失败的情况下,进入步骤S2309,终止启动过程。
S2307:度量BL31、BL32、BL33:利用TCM或TPCM控制模块对所述BL31固件、所述BL32固件、所述BL33固件中的一种或多种进行度量,若度量成功则进入步骤S2308:安全/可信启动完成,若度量失败则进入步骤S2309:安全/可信启动失败,终止启动过程。在步骤S2307中,由于TPCM控制模块和TCM服务模块运行于第二子***中,通常与第二子***的操作***封装在一起,因此在包括第二子***的操作***的BL32固件加载运行完毕后,才能进行TPCM控制模块和TCM服务模块的加载运行。
在本实施例中,在启动过程中先加载运行第三子***,使得第三子***可以首先正常运行,有利于提高第三子***的任务处理效率,从而提高启动效率。
需要说明的是,利用TCM或TPCM对***上电过程中加载的固件和/或软件,进行可信度量。其度量结果***不进行判断,上电过程会正常进行。只将其可信度量的结果可信存储于***的PCR中。等到上电完成以后,***在实时运行过程中,会利用该PCR值对远程服务器进行可信报告。由所述远程服务器判断度量的结果成功或失败。一般地,PCR值若不正确,本地设备/处理器架构***将被判断为不可信设备。不可信设备的仲裁策略会合并到态势感知***中处理。本专利不能限定可信度量失败的结果。需要说明的是,后续相关实施例也适用该具体实现方式,不再一一赘述。
对于TCM服务模块和TPCM控制模块运行于第二子***中,TCM密码模块运行第三子***的异构架构(即第二子***运行于第二处理器核,第三子***运行于第三处理器核)的情况,本说明书的一些实施例给出了一种BL3固件(即BL31固件、BL32固件和BL33固件中的至少一种)的度量方式,具体地,参考图11,所述安全服务平台利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量具体用于:
利用所述TCM密码模块度量所述BL31固件。
在所述BL31固件认证通过时,加载运行所述BL31固件。在所述BL31固件认证失败时,终止启动过程。
利用所述TCM密码模块度量所述BL32固件。
运行所述BL32固件、所述TCM服务模块和所述TPCM控制模块。
检测所述TPCM控制模块的可用状态,设置表征所述TPCM控制模块的可用状态的标志位。
若所述标志位表征所述TPCM控制模块可用,则利用所述TPCM控制模块度量所述BL33固件。
若所述标志位表征所述TPCM控制模块不可用,则利用所述TCM度量所述BL33固件。
具体步骤包括:
S2401:度量BL31:由于TCM服务模块和TPCM控制模块运行于第二子***,因此在加载运行BL32固件之前,TCM服务模块和TPCM控制模块暂未运行,此时需要利用TCM密码模块度量BL31固件。
若BL31固件度量成功,则执行步骤S2402:加载运行BL31。若BL31固件度量失败,则执行步骤S2407:安全/可信启动失败,终止启动过程。
S2403:度量BL32:同样的,由于BL32固件加载之前,TCM服务模块和TPCM控制模块未运行,因此需要利用已经在之前步骤中加载运行的TCM密码模块度量BL32固件。
若BL32固件度量成功,在执行步骤S2404:加载运行BL32固件和TPCM控制模块。
若BL32固件度量失败,则执行步骤S2407:安全/可信启动失败,终止启动过程。
S2405:检测TPCM控制模块:检测所述TPCM控制模块的标志位,若所述TPCM控制模块的标志位表征所述TPCM控制模块可用,则使能TPCM控制模块,后续度量步骤(S2406)采用TPCM控制模块进行度量,若TPCM控制模块的标志位表征所述TPCM控制模块不可用,则后续度量步骤(S2406)采用TCM进行度量。
S2406:度量BL33:根据步骤S2405的检测结果,选择TCM或TPCM控制模块,对BL33固件进行度量。
若BL33固件度量失败,则执行步骤S2407:安全/可信启动失败,终止启动过程。
若BL33固件度量成功,则执行步骤S2408:安全/可信启动完成。
在步骤S2401之前的步骤根据第二子***和第三子***是否运行于同一处理器核等因素的不同而有所不同,具体可行执行是可参考上文中的相关描述。
在本实施例中,在TPCM控制模块加载时,设置表征TPCM控制模块是否可用的标志位,并在TPCM控制模块可用时,优先采用TPCM控制模块进行对启动过程中运行的固件进行度量,有利于发挥可信计算3.0路线的技术优势,保障安全/可信启动流程的自主可控和安全可信。
为了保障安全/可信启动流程从启动过程的一开始就是可信的,在一些实施例中,参考图12,对于第二子***12和第三子***13运行于同一处理器核(即第一处理器核31)的情况下,还在所述安全服务平台中设置了可信根40。所述可信根40可以是写在计算设备的处理器的ROM中,启动时的前一行(段)或前几行(段)代码,是一切信任链的源头。所述可信根40可以包括BL1固件。
执行所述可信根,对所述第一处理器核和所述TCM的可信计算硬件资源进行自检,若自检失败则终止所述启动过程,若自检成功,则利用所述可信根对所述BL2固件进行签名认证。
所述安全服务平台运行所述BL2固件具体用于:
在所述BL2固件认证通过的情况下,运行所述BL2固件。在所述BL2固件认证不通过的情况下,终止启动过程。
关于运行BL2固件之后的启动过程,可参考上文中对于第二子***和第三子***运行于同一处理器核时的启动过程的相关描述,本说明书在此不做赘述。
在本实施例中,通过可信根度量BL2固件,实现了整个启动链条的安全/可信,提高了安全架构***的安全性。
参考图13,对于第二子***12和第三子***13运行于不同处理器核的情况下(即第二子***12运行于第二处理器核32,第三子***13运行于第三处理器核33),还在所述安全服务平台中设置了可信根40。所述可信根40可以是写在计算设备的处理器的ROM中,启动时的前一行(段)或前几行(段)代码,是一切信任链的源头。在一些实施方式中,由于BL1固件存储于ROM中,不易篡改的特性,所述可信根40包括BL1固件。
所述安全架构***内置有可信根,所述安全服务平台加载运行所述第三子***中的固件之前,还用于:
执行所述可信根;
通过所述可信根对所述第三子***中的固件进行签名认证;
所述安全服务平台加载运行所述第三子***中的固件具体用于:
在所述第三子***中的固件认证通过的情况下,加载运行所述第三子***中的固件。
在所述第三子***中的固件认证不通过的情况下,终止所述启动过程。
在加载运行所述第三子***中的固件之后的启动步骤,可参考上文中对于第二子***和第三子***运行于不同处理器核时的启动过程的相关描述,本说明书在此不做赘述。
在本实施例中,通过可信根度量第三子***中的固件,实现了整个启动链条的安全/可信,提高了安全架构***的安全性。
此外,BL2固件、BL31固件、BL32固件和BL33固件在度量失败后均不执行相应的固件加载任务,并终止启动过程,可以满足安全架构***的安全启动的要求。
在一些实施方式中,在启动过程中所需运行的固件的度量结束后,为了保障整个计算设备的***安全,所述安全架构***被设置在计算设备中,所述安全服务平台还用于:
利用所述TCM或所述TPCM控制模块对所述计算设备的操作***内核进行度量。
在所述计算设备的操作***内核度量结果为通过时,加载所述操作***内核,以初始化所述计算设备的硬件资源以及引导所述操作***,从而完成所述计算设备的启动。
在本实施例中,实现了利用所述TCM或所述TPCM控制模块对所述计算设备的操作***内核进行度量的操作,保障了启动过程的全链条安全与可信。
在一些实施方式中,除了对于TCM硬件资源的自检,在TCM加载运行时,还可以对TCM进行进一步的自检,保障TCM的安全可信。具体地,在本说明书的一个实施例中,所述安全服务平台加载运行所述TCM具体用于:
加载所述TCM。
运行所述TCM的自检程序,并获得所述TCM的自检程序返回的自检结果,若所述自检结果为自检失败,则终止所述启动过程。
TCM的自检程序可以是TCM内置的Self-Task程序,通过运行该自检程序,保障TCM除硬件资源外的其他资源的安全可信。
需要说明的是,在上面的启动过程中,主要体现了可信启动过程中TCM或TPCM控制模块对固件的度量。在可信启动过程中,安全启动过程也可并行进行,即利用可信根对固件进行逐级验证,实现安全启动技术的信任链构建,其中,固件可以包括BL1固件、BL2固件、BL31固件、BL32固件和BL33固件中的一种或多种。如前文所述,BL1固件可以被设置在可信根中,具有不可篡改的特性,是上电启动的第一段代码,是一切信任链的源头。在这种情况下,为实现安全启动技术,需先执行可信根,之后,对BL2固件、BL31固件、BL32固件和BL33固件中的一种或多种进行逐级验证,示例性地,该逐级具体体现在:可信根对BL2固件进行验证,之后,BL2固件对BL31固件进行验证,BL31固件对BL32和/或BL33固件分别进行验证。
示例性方法
本说明书实施例还提供了一种实现安全可信启动的方法,应用于安全架构***,如图14所示,所述实现安全可信启动的方法包括:
S2701:响应于上电请求,执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对启动过程中运行的固件进行度量,并记录度量结果。
所述安全架构***可以包括:第一子***、第二子***和第三子***,所述第一子***、所述第二子***和所述第三子***各自对应的安全等级依次递增,所述第二子***和所述第三子***运行在第一处理器核中,所述安全架构***构建有安全服务平台,所述安全服务平台内置有可信密码模块TCM,所述安全服务平台还搭载有TPCM控制模块,所述TPCM控制模块用于通过软件方式调用所述TCM,所述TCM包括TCM密码模块,所述TPCM控制模块和所述TCM密码模块运行于除所述第一子***外的不同子***
所述安全架构***也可以包括:第一子***、第二子***和第三子***,所述第一子***、所述第二子***和所述第三子***各自对应的安全等级依次递增,所述第二子***和所述第三子***运行在第一处理器核中,所述安全架构***构建有安全服务平台,所述安全服务平台内置有包括可信密码模块TCM,所述安全服务平台还搭载和有TPCM控制模块,所述TPCM控制模块用于通过软件方式调用所述TCM,所述TCM和所述TPCM控制模块运行于所述第三子***
所述安全架构***还可以包括:第一子***、第二子***和第三子***,所述第一子***、所述第二子***和所述第三子***各自对应的安全等级依次递增,所述第二子***运行在第一处理器核中,所述第三子***运行在第二处理器核中,所述安全架构***构建有安全服务平台,所述安全服务平台内置有可信密码模块TCM,所述安全服务平台还搭载有TPCM控制模块,所述TPCM控制模块用于通过软件方式调用所述TCM,所述TCM和所述TPCM控制模块运行于所述第三子***。
可选地,所述在所述启动过程中,利用所述TCM或所述TPCM控制模块对启动过程中运行的固件进行度量包括:
利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件。
关于安全架构***的具体结构以及各具体结构下各自对应的实现安全可信启动的方法的具体可行执行步骤可以参考上文“示例性***”中的相关描述。本文在此不做赘述。
示例性电子设备
本申请另一实施例还提出一种电子设备,参见图15所示,本说明书的一个示例性实施例还提供了一种电子设备,包括:存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时执行本说明书上述实施例中描述的根据本说明书各种实施例的实现安全可信启动的方法中的步骤。
该电子设备的内部结构可以如图15所示,该电子设备包括通过***总线连接的处理器、存储器、网络接口和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该中控设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以本说明书上述实施例中描述的根据本说明书各种实施例的实现安全可信启动的方法中的步骤。
处理器可包括主处理器,还可包括基带芯片、调制解调器等。
存储器中保存有执行本发明技术方案的程序,还可以保存有操作***和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。更具体的,存储器可以包括只读存储器(read-only memory,ROM)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,RAM)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。
处理器可以是通用处理器,例如通用中央处理器(CPU)、微处理器等,也可以是特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
输入设备可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。
输出设备可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。
通信接口可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。
处理器执行存储器中所存放的程序,以及调用其他设备,可用于实现本申请上述实施例所提供的任意一种实现安全可信启动的方法的各个步骤。
该电子设备还可以包括显示组件和语音组件,该显示组件可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示组件上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图15中示出的结构,仅仅是与本说明书方案相关的部分结构的框图,并不构成对本说明书方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
示例性计算机程序产品和存储介质
除了上述方法和设备以外,本说明书实施例提供的实现安全可信启动的方法还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本说明书各种实施例的实现安全可信启动的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本说明书实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行本说明书上述“示例性方法”部分中描述的根据本说明书各种实施例的实现安全可信启动的方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本说明书所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本说明书的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本说明书实施例提供的方案范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本说明书构思的前提下,还可以做出若干变形和改进,这些都属于本说明书的保护范围。因此,本说明书专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种安全架构***,其特征在于,包括:第一子***、第二子***和第三子***,所述第一子***、所述第二子***和所述第三子***各自对应的安全等级依次递增,所述第二子***和所述第三子***运行在第一处理器核中,所述安全架构***构建有安全服务平台,所述安全服务平台内置有可信密码模块TCM,所述安全服务平台还搭载有TPCM控制模块,所述TPCM控制模块用于通过软件方式调用所述TCM,所述TCM包括TCM密码模块,所述TPCM控制模块和所述TCM密码模块运行于除所述第一子***外的不同子***,所述安全服务平台配置成:
响应于上电请求,执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对启动过程中运行的固件进行度量,并记录度量结果。
2.根据权利要求1所述的***,其特征在于,所述TCM密码模块运行于所述第三子***,所述TPCM控制模块运行于所述第二子***,或,所述TCM密码模块运行于所述第二子***,所述TPCM控制模块运行于所述第三子***。
3.根据权利要求1所述的***,其特征在于,所述安全服务平台利用所述TCM或所述TPCM控制模块对启动过程中运行的固件进行度量具体用于:
利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件。
4.根据权利要求3所述的***,其特征在于,所述TCM还包括TCM服务模块,所述TCM服务模块和所述TCM密码模块运行于所述第三子***中,所述TPCM控制模块运行于所述第二子***,且所述第二子***与所述第三子***运行于第一处理器核;
所述安全服务平台执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件具体用于:
运行所述BL2固件,并初始化所述安全架构***的处理器内核;
对所述TCM密码模块的硬件资源进行自检;在该步骤中,对TCM的硬件资源的自检可以包括对TCM的随机数产生器、密码算法硬件引擎等硬件资源的自检;
在所述TCM密码模块的硬件资源自检通过的情况下,加载运行所述TCM密码模块;
加载运行所述TCM服务模块和所述TPCM控制模块;
利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量。
5.根据权利要求4所述的***,其特征在于,所述安全服务平台运行所述BL2固件之后还用于:
利用所述BL2固件对所述BL31固件进行签名认证。
6.根据权利要求3所述的***,其特征在于,所述TCM还包括TCM服务模块,所述TCM服务模块和所述TCM密码模块运行于所述第三子***中,且所述第二子***运行于第二处理器核,所述第三子***运行于第三处理器核;
所述安全服务平台执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件具体用于:
加载运行所述第三子***中的固件,以初始化所述第三子***;
对所述TCM密码模块的硬件资源进行自检;
在所述TCM密码模块的硬件资源自检通过的情况下,加载运行所述TCM;
利用所述TCM度量BL2固件;
运行所述BL2固件;
利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量。
7.根据权利要求4~6任一项所述的***,其特征在于,所述安全服务平台利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量具体用于:
利用所述TCM度量所述BL31固件;
在所述BL31固件认证通过时,加载运行所述BL31固件;在所述BL31固件认证不通过时,终止启动过程;
利用所述TCM度量所述BL32固件;
运行所述BL32固件和所述TPCM控制模块;
检测所述TPCM控制模块的可用状态,设置表征所述TPCM控制模块的可用状态的标志位;
若所述标志位表征所述TPCM控制模块可用,则利用所述TPCM控制模块度量所述BL33固件;
若所述标志位表征所述TPCM控制模块不可用,则利用所述TCM度量所述BL33固件。
8.根据权利要求3所述的***,其特征在于,所述TCM还包括TCM服务模块,所述TCM服务模块和所述TPCM控制模块运行于所述第二子***中,所述TCM密码模块运行于所述第三子***中,且所述第二子***与所述第三子***运行于第一处理器核;
所述安全服务平台执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件具体用于:
对所述TCM密码模块的硬件资源进行自检;
在所述TCM密码模块的硬件资源自检通过的情况下,加载运行所述TCM密码模块;
利用所述TCM密码模块,对所述BL2固件进行度量;
运行所述BL2固件,并初始化所述安全架构***的处理器内核;
利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量。
9.根据权利要求3所述的***,其特征在于,TCM还包括TCM服务模块,所述TCM密码模块运行于所述第三子***中,所述TCM服务模块和所述TPCM控制模块运行于所述第二子***,且所述第二子***运行于第二处理器核,所述第三子***运行于第三处理器核;
所述安全服务平台执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL2固件、BL31固件、BL32固件、BL33固件具体用于:
加载运行所述第三子***中的固件,以初始化所述第三子***;
对所述TCM密码模块的硬件资源进行自检;
在所述TCM密码模块的硬件资源自检通过的情况下,加载运行所述TCM密码模块;
利用所述TCM密码模块,对所述BL2固件进行度量;
加载运行所述BL2固件,初始化所述安全架构***的处理器内核;
利用所述TCM或所述TPCM控制模块对以下固件中的一种或多种进行度量:BL31固件、BL32固件、BL33固件。
10.根据权利要求8或9所述的***,其特征在于,所述安全服务平台利用所述TCM或所述TPCM控制模块对所述BL31固件、所述BL32固件和所述BL33固件中的一种或多种进行度量具体用于:
利用所述TCM密码模块度量所述BL31固件;
在所述BL31固件认证通过时,加载运行所述BL31固件;
利用所述TCM密码模块度量所述BL32固件;
运行所述BL32固件、所述TCM服务模块和所述TPCM控制模块;
检测所述TPCM控制模块的可用状态,设置表征所述TPCM控制模块的可用状态的标志位;
若所述标志位表征所述TPCM控制模块可用,则利用所述TPCM控制模块度量所述BL33固件;
若所述标志位表征所述TPCM控制模块不可用,则利用所述TCM度量所述BL33固件。
11.根据权利要求4~5、8任一项所述的***,其特征在于,所述安全架构***内置有可信根,所述安全服务平台在加载运行所述BL1固件之前,还用于:
执行所述可信根,对所述第一处理器核和所述TCM的可信计算硬件资源进行自检,若自检失败则终止所述启动过程,若自检成功,则利用所述可信根对所述BL2固件进行签名认证;
所述安全服务平台运行所述BL2固件具体用于:
在所述BL2固件认证通过的情况下,运行所述BL2固件,在所述BL2固件认证不通过的情况下,终止启动过程。
12.根据权利要求6或9所述的方法,其特征在于,所述安全架构***内置有可信根,所述安全服务平台加载运行所述第三子***中的固件之前,还用于:
执行所述可信根;
通过所述可信根对所述第三子***中的固件进行签名认证;
所述安全服务平台加载运行所述第三子***中的固件具体用于:
在所述第三子***中的固件认证通过的情况下,加载运行所述第三子***中的固件。
13.根据权利要求1~9任一项所述的***,其特征在于,所述安全架构***被设置在计算设备中,所述安全服务平台还用于:
利用所述TCM或所述TPCM控制模块对所述计算设备的操作***内核进行度量;
在所述计算设备的操作***内核度量结果为通过时,加载所述操作***内核,以初始化所述计算设备的硬件资源以及引导所述操作***,从而完成所述计算设备的启动。
14.一种实现安全可信启动的方法,其特征在于,应用于安全架构***,所述安全架构***包括:第一子***、第二子***和第三子***,所述第一子***、所述第二子***和所述第三子***各自对应的安全等级依次递增,所述第二子***和所述第三子***运行在第一处理器核中,所述安全架构***构建有安全服务平台,所述安全服务平台内置有可信密码模块TCM,所述安全服务平台还搭载有TPCM控制模块,所述TPCM控制模块用于通过软件方式调用所述TCM,所述TCM包括TCM密码模块,所述TPCM控制模块和所述TCM密码模块运行于除所述第一子***外的不同子***,所述实现安全可信启动的方法包括:
响应于上电请求,执行启动过程,在所述启动过程中,利用所述TCM或所述TPCM控制模块对启动过程中运行的固件进行度量,并记录度量结果。
15.一种计算设备,其特征在于,所述计算设备包括如权利要求1-13任一项所述的安全架构***。
CN202211626911.6A 2022-12-16 2022-12-16 一种安全架构***、实现安全可信启动的方法和计算设备 Pending CN118211242A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211626911.6A CN118211242A (zh) 2022-12-16 2022-12-16 一种安全架构***、实现安全可信启动的方法和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211626911.6A CN118211242A (zh) 2022-12-16 2022-12-16 一种安全架构***、实现安全可信启动的方法和计算设备

Publications (1)

Publication Number Publication Date
CN118211242A true CN118211242A (zh) 2024-06-18

Family

ID=91453352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211626911.6A Pending CN118211242A (zh) 2022-12-16 2022-12-16 一种安全架构***、实现安全可信启动的方法和计算设备

Country Status (1)

Country Link
CN (1) CN118211242A (zh)

Similar Documents

Publication Publication Date Title
US10516533B2 (en) Password triggered trusted encryption key deletion
US20200272739A1 (en) Performing an action based on a pre-boot measurement of a firmware image
US9690498B2 (en) Protected mode for securing computing devices
US11089016B2 (en) Secure system on chip
CN110334521B (zh) 可信计算***构建方法、装置、可信计算***及处理器
CN109669734B (zh) 用于启动设备的方法和装置
US20180025183A1 (en) Management of Authenticated Variables
US8375221B1 (en) Firmware-based trusted platform module for arm processor architectures and trustzone security extensions
CN110414235B (zh) 一种基于ARM TrustZone的主动免疫的双体系结构***
US20160350534A1 (en) System, apparatus and method for controlling multiple trusted execution environments in a system
CN110321713B (zh) 基于双体系架构的可信计算平台的动态度量方法和装置
CN110321235B (zh) 基于双体系架构的可信计算平台的***交互方法和装置
WO2019104988A1 (zh) Plc的安全处理单元及其总线仲裁方法
CN110321715A (zh) 可信度量方法、装置及处理器
CN102244684B (zh) 基于usbkey的efi可信云链引导方法
CN110334512B (zh) 基于双体系架构的可信计算平台的静态度量方法和装置
TWI745629B (zh) 電腦系統以及初始化電腦系統的方法
CN107704308B (zh) 虚拟平台vTPM管理***、信任链构建方法及装置、存储介质
CN115618364B (zh) 实现安全可信启动的方法、安全架构***及相关设备
Dhobi et al. Secure firmware update over the air using trustzone
CN110334509B (zh) 双体系架构的可信计算平台的构建方法和装置
EP3338214B1 (en) Secure computation environment
CN115879099A (zh) 一种dcs控制器、操作处理方法和防护子***
US20220092189A1 (en) Implementation of Trusted Computing System Based on Master Controller of Solid-State Drive
CN115618365B (zh) 实现安全可信启动的方法、安全架构***及相关设备

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