CN117932612A - 一种基于TrustZone技术的安全启动方法 - Google Patents

一种基于TrustZone技术的安全启动方法 Download PDF

Info

Publication number
CN117932612A
CN117932612A CN202311740191.0A CN202311740191A CN117932612A CN 117932612 A CN117932612 A CN 117932612A CN 202311740191 A CN202311740191 A CN 202311740191A CN 117932612 A CN117932612 A CN 117932612A
Authority
CN
China
Prior art keywords
module
tcm
key
virtual
bios
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
CN202311740191.0A
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.)
Kunlun Taike Beijing Technology Co ltd
Original Assignee
Kunlun Taike Beijing 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 Kunlun Taike Beijing Technology Co ltd filed Critical Kunlun Taike Beijing Technology Co ltd
Priority to CN202311740191.0A priority Critical patent/CN117932612A/zh
Publication of CN117932612A publication Critical patent/CN117932612A/zh
Pending legal-status Critical Current

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于TrustZone技术的安全启动方法,包括:步骤1,设备上电后,在TEE环境中,启动虚拟TCM模块和安全启动模块;步骤2,在REE环境中,BIOS加载第三方EFI文件;步骤3,在TEE环境中,安全启动模块调用虚拟TCM模块提供的TCM服务以对EFI文件进行验签;步骤4,在REE环境中,如果验签成功,则BIOS执行EFI文件,完成安全启动;如果验签失败,则不执行EFI文件,完成安全启动;使用本发明能够通过虚拟TCM为设备中的各类软硬件提供启动阶段的有效安全防护,提升软件虚拟TCM技术的应用普适性。

Description

一种基于TrustZone技术的安全启动方法
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于TrustZone技术的安全启动方法。
背景技术
可信密码模块TCM(Trusted Cryptography Module)提供密码算法支撑,具有完整性度量、可信存储以及可信报告等功能。TCM芯片单元是可信密码模块的服务实现者,是安全可信计算的核心。TCM功能及接口规范应符合包括《GB/T38638-2020信息安全技术可信计算可信计算体系结构》在内的相关国家规范的要求。通常情况下,实现相关国家规范的要求需要硬件TCM芯片单元的支持。然而,当前很多计算机上并没有硬件TCM芯片单元,甚至有些主板上没有预留TCM接口,无法插入TCM卡,所以这些设备无法依靠相关硬件设备实现完整的可信计算体系结构。
当前,针对这些设备所提出的软件虚拟TCM技术并不成熟,尤其是针对设备上电启动这一环节,大多数设备在这一环节不仅需要进行BIOS、操作系统(OS,OperatingSystem)、CPU等基础服务或硬件的安全启动,也需要为其他各种厂商、型号各异的第三方软硬件提供具有安全保障的初始化驱动。而虚拟TCM作为一款软件,其必须依托于已启动的运行环境才能提供服务,因此如何设计一种安全启动方法,能够在设备启动阶段,通过虚拟TCM为各类软硬件提供有效的安全防护就成为亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种基于TrustZone技术的安全启动方法,能够通过虚拟TCM为设备中的各类软硬件提供启动阶段的有效安全防护,提升软件虚拟TCM技术的应用普适性。
为了解决上述技术问题,本发明是这样实现的:
一种基于TrustZone技术的安全启动方法,包括:
步骤1,设备上电后,在TEE环境中,启动虚拟TCM模块和安全启动模块;
步骤2,在REE环境中,BIOS加载第三方EFI文件;
步骤3,在TEE环境中,所述安全启动模块调用所述虚拟TCM模块提供的TCM服务以对所述EFI文件进行验签;
步骤4,在REE环境中,如果验签成功,则BIOS执行所述EFI文件,完成安全启动;如果验签失败,则不执行所述EFI文件,完成安全启动。
较佳地,在步骤1与步骤2之间,进一步进行BIOS的配置修改,包括:
步骤101,从外界导入平台密钥和/或密钥交换密钥数据,并通过所述安全启动模块进行保存;
步骤102,所述安全启动模块根据所述平台密钥和/或密钥交换密钥数据,通过BIOS的配置接口对BIOS进行配置修改。
较佳地,所述安全启动模块,包括:权限验证子模块、功能配置子模块、执行管理子模块和密码算法子模块;
所述权限验证子模块,对登录用户进行身份鉴别,确认用户权限;
所述功能配置子模块,根据所述用户权限,为拥有相应权限的用户提供控制安全启动的使能与关闭的安全启动开关;
所述执行管理子模块,根据所述安全启动开关的当前状态,判断是否调用所述密码算法子模块进行验签,并根据所述密码算法子模块的计算结果判断是否执行所述EFI文件;
所述密码算法子模块,通过哈希算法和/或非对称算法对所述EFI文件进行验签对比计算;验签对比计算所采用的算法和所述EFI文件签名的算法一致。
较佳地,所述安全启动模块,进一步包括:密钥存储子模块和密钥管理子模块;
所述密钥存储子模块,创建数据库以存储所述平台密钥和/或密钥交换密钥数据;
所述密钥管理子模块,根据所述平台密钥和/或密钥交换密钥数据,通过BIOS的配置接口对BIOS进行配置修改。
较佳地,所述虚拟TCM模块提供的TCM服务,包括:非对称加密或解密运算、对称加密或解密运算、生成非对称密钥对、杂凑运算、生成随机数、非易失性存储和易失性存储。
较佳地,所述非易失性存储服务,如果设备系统有独立的NV硬件,则利用所述NV硬件实现所述虚拟TCM模块的非易失性存储功能;如果设备系统没有独立的NV硬件,则利用BIOS系统所在的Flash芯片的空闲区域实现所述虚拟TCM模块的非易失性存储功能。
较佳地,所述密码算法子模块,调用所述虚拟TCM模块提供的杂凑运算和/或非对称加密或解密运算服务以对所述EFI文件进行验签。
较佳地,所述密钥存储子模块,调用所述虚拟TCM模块提供的非易失性存储和易失性存储服务以创建数据库存储所述平台密钥和/或密钥交换密钥数据。
一种基于TrustZone技术的安全启动系统,包括:处于TEE环境中的虚拟TCM模块和安全启动模块;
设备上电后,所述安全启动模块调用所述虚拟TCM模块提供的TCM服务以对BIOS加载的第三方EFI文件进行验签;如果验签成功,则BIOS执行所述EFI文件,完成安全启动;如果验签失败,则不执行所述EFI文件,完成安全启动。
较佳地,所述安全启动模块,进一步导入并保存平台密钥和/或密钥交换密钥数据;所述安全启动模块根据所述平台密钥和/或密钥交换密钥数据,通过BIOS的配置接口对BIOS进行配置修改。
有益效果:
1、本发明通过在可信执行环境(TEE,Trusted Execution Environment)中构建了独立于BIOS系统和OS系统的虚拟TCM模块和安全启动模块,利用Arm处理器的TrustZone技术,不仅保证了TCM的实现,更提升了设备安全启动环节的安全性。本发明通过安全启动模块的设计,实现了对富执行环境(REE,Rich Execution Environment)中的各种第三方软硬件的安全启动支持,从而能够提升软件虚拟TCM对安全启动环节的应用普适性,为设备中的各类软硬件提供启动阶段的有效安全防护,解决固件在启动过程中可能遭受的攻击问题,从而确保基于固件运行的系统的安全性和完整性。
2、本发明通过安全启动模块中密钥存储子模块和密钥管理子模块的设计,实现了对密钥数据更安全地导入、修改和保存,能够提升对BIOS配置进行修改和管理的安全性,为设备的安全启动和第三方EFI文件的验签功能提供更安全的保障。
3、本发明通过在TEE环境中构建了独立于BIOS系统和OS系统的虚拟TCM模块,利用Arm处理器的TrustZone技术,不仅保证了虚拟TCM模块的安全性,也实现了虚拟TCM模块对REE环境中的BIOS系统、OS系统和/或应用程序的服务支持,从而能够在不增加TCM硬件的情况下实现符合相关规范的可信计算体系,节省了硬件成本,也便于在没有预留TCM硬件接口的设备上实现。
4、本发明通过对虚拟TCM模块的子模块进行设计,对替代硬件TCM而构建的软件TCM进行了模块化的功能划分,实现了硬件设备和软件功能模块的对应映射,进一步降低了虚拟TCM模块的功能构成和实现的难度,为后续维护和升级提供了便利。
5、本发明通过非易失性存储子模块的设计,将虚拟TCM模块的软件数据保存在独立的特定的受保护区域中(如NV硬件或Flash芯片),不会被操作系统下的软件修改或删除。通过将虚拟TCM模块与操作系统环境隔离,有效防止了外部软件(如操作系统中运行的软件)对虚拟TCM模块运行过程的攻击。
附图说明
图1为本发明基于实施例的安全启动方法步骤示意图;
图2为本发明基于实施例的安全启动方法流程示意图;
图3为本发明基于实施例的模块运行环境结构示意图;
图4为本发明基于实施例的模块硬件调用关系示意图;
图5为本发明基于实施例的安全启动模块结构示意图;
图6为本发明基于实施例的虚拟TCM模块结构示意图;
图7为本发明基于实施例的BIOS配置修改流程示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种基于TrustZone技术的安全启动方法,其核心思想如图1所示,包括步骤:
步骤1,设备上电后,在TEE环境中,启动虚拟TCM模块和安全启动模块。
步骤2,在REE环境中,BIOS加载第三方EFI文件。
步骤3,在TEE环境中,安全启动模块调用虚拟TCM模块提供的TCM服务以对EFI文件进行验签。
步骤4,在REE环境中,如果验签成功,则BIOS执行EFI文件,完成安全启动;如果验签失败,则不执行EFI文件,完成安全启动。
可见,由于现有的软件TCM对设备启动环节涉及到的诸多第三方软硬件无法形成有效的支持,对于设备安全启动功能的实现效果不佳,在实际应用环境下普适性较差,往往只能用于测试开发。本发明通过在TEE环境中构建了独立于BIOS系统和OS系统的虚拟TCM模块和安全启动模块,利用Arm处理器的TrustZone技术,不仅保证了TCM的实现,更提升了设备安全启动环节的安全性。本发明通过安全启动模块的设计,实现了对REE环境中的各种第三方软硬件的安全启动支持,从而能够提升软件虚拟TCM对安全启动环节的应用普适性,为设备中的各类软硬件提供启动阶段的有效安全防护,解决固件在启动过程中可能遭受的攻击问题,从而确保基于固件运行的系统的安全性和完整性。
下面以实施例为代表,进一步对本发明进行详细说明。
在本发明的实施例一中,提出了一种基于TrustZone技术的安全启动方法,如图2所示,方法具体包括步骤:
步骤1,设备上电开机,BIOS完成CPU配置等初始化工作。进入TEE执行环境,初始化虚拟TCM模块,虚拟TCM模块对外发布TCM接口;初始化安全启动模块,安全启动模块调用虚拟TCM的服务,并对外发布安全启动配置接口。
在该步骤中,BIOS首先完成对CPU的初始化配置。而后进入TEE环境,完成TEE环境配置,进入TEE OS,在TEE OS下使能虚拟TCM模块和安全启动模块。虚拟TCM模块在TEE环境中,通过软件模拟并利用CPU自身硬件资源、实现了全部标准TCM接口函数,能够对外提供密码算法等可信计算接口。安全启动模块也是TEE OS下实现,安全启动模块通过调用虚拟TCM模块,实现了签名验签、密钥管理等功能,并对外发布了安全启动配置接口。UEFI BIOS在REE环境中进行安全启动时,调用TEE环境中的安全启动配置接口,实现安全启动功能。
本发明构建了运行在TEE环境、TEE OS系统中的虚拟TCM模块和安全启动模块,如图3所示。TEE环境作为与REE环境相隔离的安全运行环境,包含在TEE环境中运行的TEE OS系统,TEE OS系统则包含内存调度、地址空间映射等基础服务,以及TEE环境能够调用的处理器、内存、Flash芯片、随机数生成器、密码加速引擎和时钟(RTC)等硬件设备的硬件设备驱动。如图4所示,TEE OS系统通过硬件设备驱动调用这些硬件设备和资源支持TEE OS系统中的可信应用的运行。本发明所提出的虚拟TCM模块和安全启动模块就是TEE OS系统中的可信应用,虚拟TCM模块通过软件模拟和硬件支持,实现了相关标准中规定的可信密码模块接口,替代了硬件TCM设备的全部功能实现;而安全启动模块则通过调用虚拟TCM模块的功能,实现了设备的安全启动。
本实施例中的安全启动模块由6个子模块组成,如图5所示,具体包括:权限验证子模块、功能配置子模块、执行管理子模块和密码算法子模块,以及在一些实施例中进一步包括密钥存储子模块和密钥管理子模块,具体为:
1、权限验证子模块:对登录用户进行身份鉴别,通过用户密码确认用户权限。通常情况下BIOS有管理员和普通用户两种身份,只有管理员才能对安全启动模块进行配置。权限验证子模块依赖EFI规范的Identify底层接口,或者其他BIOS内部实现的用户验证接口,完成用户身份认证,并获取用户权限信息。权限验证子模块给功能配置子模块提供了权限认证支持,只有管理员权限才可以对安全启动功能进行配置。
2、功能配置子模块:功能配置子模块在BIOS配置界面中提供多个安全启动配置选项。包括安全启动开关,用于控制安全启动的使能与关闭;验证开关,用于控制EFI驱动验签的使能与关闭。功能配置子模块依赖权限验证模块提供当前用户的权限,对外提供用户配置界面接口,给用户提供配置界面,对内提供当前用户配置信息,把当前用户配置转发给执行管理子模块。
3、执行管理子模块:在开启安全启动后,执行BIOS镜像之外的EFI驱动或EFI应用程序时都需要先验证签名,验证通过后再执行;如果验证失败,则禁止执行。执行管理子模块依赖BIOS提供待验签的EFI可执行文件,依赖用户对安全启动开关的配置,依赖密码算法模块提供的哈希算法和非对称加密算法,实现对EFI文件的验签判断,再根据验签判断的结果判定是否执行该EFI程序。
4、密码算法子模块:在验证第三方EFI驱动和应用程序签名过程中,会使用密码算法子模块。密码算法子模块会提供哈希算法和非对称算法,来支持验证签名。哈希算法和非对称算法可以调用BIOS中集成的算法模块或者调用虚拟TCM提供的算法支持。验签的算法必须和第三方EFI文件签名的算法保持一致。密码算法子模块为执行管理子模块提供用于验签的哈希算法和非对称加密算法。算法程序可以是集成在BIOS中的算法库,也可以调用虚拟TCM模块提供的接口。
在一些实施例中,为了针对密钥数据进行进一步地有效修改和管理,安全启动模块进一步包括:
5、密钥管理子模块:该模块在BIOS配置界面中添加密钥管理界面,能够添加或删除平台密钥(PK)和密钥交换密钥(KEK)。相应厂商的证书可以通过密钥管理子模块导入密钥存储子模块。密钥管理子模块提供BIOS配置界面接口给用户,允许用户导入和删除PK和KEK,对内则把PK和KEK传递给密钥存储子模块。
6、密钥存储子模块:根据密钥管理PK模块,创建签名数据库(DB)和禁止签名数据库(DBX)。签名数据库用于存放密钥子证书(KEKpub)及Image的哈希值;禁止签名数据库用于存放禁用的KEKpub及Image的哈希值。密钥存储子模块把密钥数据保存在TCM的NV存储空间,以增强其安全性。密钥存储子模块从密钥管理子模块获取添加或删除KEK或PK的信息,从而调整签名数据库和禁止签名数据库。数据库内容保存在TCM的NV空间中,依赖TCM提供的NV读写接口。验签过程需要使用的公钥,以签名数据库的形式保存在虚拟TCM中。验签过程也会检查公钥黑名单,禁止签名数据库也保存在虚拟TCM中。
本实施例中的虚拟TCM模块由10个子模块组成,如图6所示,这10个子模块分别负责实现虚拟TCM模块不同的功能部分。具体包括:
1、非对称引擎子模块:该模块是执行非对称加/解密签名运算的单元,为虚拟TCM模块提供非对称算法支持。如果计算机系统有密码模块硬件支持非对称算法,非对称密码引擎底层实现可以依靠调用计算机硬件实现相应功能。如果平台不具备硬件支持,则使用软件算法提供非对称算法支持。
2、密钥生成子模块:该模块是产生非对称密钥对的功能模块,为虚拟TCM模块提供密钥生成功能。如果Arm处理器中集成密码引擎硬件,则虚拟TCM模块可以通过实现或者调用相应密码引擎硬件,实现TCM密码相关接口支持。
3、杂凑引擎子模块:该模块是负责执行杂凑运算的单元,为虚拟TCM模块提供杂凑算法支持。如果计算机系统有密码模块硬件支持杂凑算法,杂凑引擎底层实现可以依靠调用计算机硬件实现相应功能。如果平台不具备硬件支持,则使用软件算法提供非杂凑算法支持。
4、随机数发生器子模块:该模块是生成随机数的单元,为虚拟TCM模块提供随机数支持。该模块既可以通过调用处理器平台的随机数发生器产生真随机数、也可以通过软件算法提供伪随机数。
5、对称引擎子模块:该模块是处理对称加解密的功能模块,为虚拟TCM模块提供对称算法功能。
6、电源控制子模块:管理虚拟TCM模块的电源供电。
7、管理子模块:管理虚拟TCM模块的执行状态和控制域。
8、授权子模块:管理虚拟TCM模块的访问授权。
9、非易失性存储子模块:存储虚拟TCM模块永久数据的存储单元。如果计算机有独立的NV硬件,可以利用该硬件作为虚拟TCM模块的NV存储空间。如果计算机没有独立的NV硬件,则利用BIOS所在Flash芯片的空闲区域作为虚拟TCM模块的非易失性存储器。
10、易失性存储子模块:虚拟TCM模块运行时临时数据的存储单元。可利用虚拟TCM模块所运行的TEE OS分配固定内存,作为虚拟TCM模块的易失性存储器。
本发明通过对虚拟TCM模块的子模块进行设计,对替代硬件TCM而构建的软件TCM进行了模块化的功能划分,实现了硬件设备和软件功能模块的对应映射,进一步降低了虚拟TCM模块的功能构成和实现的难度,为后续维护和升级提供便利。同时,本发明通过非易失性存储子模块的设计,将虚拟TCM模块的软件数据保存在独立的NV硬件或Flash芯片中,无法被操作系统下的软件修改或删除。不易被破坏篡改,通过将虚拟TCM模块与操作系统环境隔离,有效防止了外部软件对虚拟TCM模块运行过程的攻击。
步骤2,返回REE环境,BIOS完成各个UEFI驱动模块加载后,加载第三方EFI文件。本实施例中,第三方EFI文件包括PCIe板块中的EFI驱动和操作系统的Boot Loader。
BIOS开机过程中,会执行PCIe板卡中的以OPROM形式存在的EFI驱动和保存在硬盘固定目录下的Boot Loader。如果该EFI驱动或者Boot Loader被篡改为一个恶意程序,那么BIOS自动执行该程序会导致灾难性后果。因此,在BIOS安全启动过程中,需要对加载的所有可执行文件,包括:EFI驱动程序、EFI可执行程序、操作系统Boot Loader、PCIe板卡的OPROM等进行校验来判定其是否是受信任的,从而保证可执行文件的合法性和完整性。
步骤3,安全启动模块对第三方EFI文件进行验签。验签过程调用安全启动模块中的执行管理子模块。执行管理子模块通过调用虚拟TCM提供的密码算法和NV空间中保存的各个厂商的公钥进行验签。
验证数字签名需要两部分数据:原始消息和公钥。首先使用公钥(与创建数字签名时使用的私钥为一对)对数字签名进行解码,并将结果与计算得出的原始消息的哈希值进行比较。如果两者的结果是相同的,则可以确定消息数据是原始签名的消息,并且未被篡改。安全启动功能开启后,每个外部引入的可执行程序在执行前,都要验证数字签名。在对可执行文件进行签名验证的时候,会依次轮询使用交换密钥中的公钥去验签。如果没有匹配的公钥,则认为验签失败,验签失败的可执行程序无法继续执行。
步骤4,如果步骤3中的验签成功,则BIOS执行该第三方EFI文件;如果验签失败,则不再执行该第三方EFI文件。完成设备的安全启动。
在本发明的实施例二中,进一步在步骤1与步骤2之间,进行BIOS的配置修改,如图7所示,包括:
步骤101,从外界导入平台密钥和/或密钥交换密钥数据,并通过安全启动模块进行保存。
在一些实施例中,从U盘导入各个外设厂商和操作系统厂商的PKJ或KEK,导入的数据通过安全启动模块的密钥管理模块进行管理。通过密钥存储模块,能够把各个厂商的公钥保存在虚拟TCM的NV空间中。
步骤102,安全启动模块根据平台密钥和/或密钥交换密钥数据,通过BIOS的配置接口对BIOS进行配置修改。
进入BIOS配置界面,BIOS中有PK和KEK导入、删除接口。在BIOS的配置界面,调用TEE环境的安全启动模块,完成PK和KEK的导入,并使能安全启动功能,能够实现对PCIeOPROM中的EFI驱动和操作系统的Boot Loader两类EFI文件分别管控。
在本发明的实施例三中,针对本发明所构建的虚拟TCM模块,当其为设备上电启动时REE环境中的BIOS系统和OS系统提供TCM服务时,在一些实施例中以计算机作为代表性设备,计算机系统在启动TEE环境中的虚拟TCM模块后,建立信任链、实现基础的可信启动主要有两种模式,一种是基于TCM的PCR接口来传递信任链;一种是基于TCM的NV读写接口传递信任链。本发明所构建的虚拟TCM模块支持包括NV读写接口和PCR接口在内的多种信任链度量接口方式。
在一些实施例中,当虚拟TCM模块使用TCM的PCR接口为REE环境的BIOS系统、OS系统和应用程序实现基础的可信启动时,计算机上电后,首先进入到TEE环境,完成TEE OS系统以及虚拟TCM模块的启动,虚拟TCM模块利用TEE环境的内存实现TCM接口中PCR相关接口函数,从而为整个计算机环境提供各类TCM接口服务。
CRTM是可信度量根,计算机系统上电后,CRTM负责度量BIOS系统,并把BIOS的预期值通过虚拟TCM模块的PCR接口记录到虚拟TCM模块中。CRTM完成BIOS的度量后,跳转到BIOS中,由BIOS对计算机硬件进行配置。
BIOS负责对计算机硬件平台进行初始化,根据用户配置选择合适Boot Loader来引导操作系统。在调转到Boot Loader之前,对Boot Loader进行度量,并把度量值记录到虚拟TCM的PCR中,然后跳转到Boot Loader。
Boot Loader负责加载并引导操作系统,Boot Loader中通常允许用户对启动参数进行配置。Boot Loader在引导操作系统内核前,先对系统内核进行度量操作,把度量值记录到虚拟TCM的PCR中,然后对内核进行引导。
操作系统引导成功后,在执行APP前,可以对APP进行度量,并把APP的度量值记录到TCM的PCR中。
TCM有多个PCR,根据规范定义,每个PCR都有各自的作用。根据相关规范,UEFI固件启动阶段使用PCR[0]~PCR[7]对启动阶段的行为进行记录,其中,PCR[0]和PCR[1]主要记录板载对象及配置,比如UEFI固件FV、UEFI固件启动变量等;PCR[2]和PCR[3]主要记录外插卡对象及配置,比如外插显卡的OPROM;PCR[4]和PCR[5]主要记录启动对象及配置,比如启动Grub文件、GPT分区表等;PCR[6]供OEM调试使用;PCR[7]记录安全启动功能的相关变量,比如PK等。
在本发明的实施例四中,提出了一种基于TrustZone技术的安全启动系统,包括:处于TEE环境中的虚拟TCM模块和安全启动模块。
设备上电后,安全启动模块调用虚拟TCM模块提供的TCM服务以对BIOS加载的第三方EFI文件进行验签;如果验签成功,则BIOS执行EFI文件,完成安全启动;如果验签失败,则不执行EFI文件,完成安全启动。
其中,安全启动模块进一步导入并保存平台密钥和/或密钥交换密钥数据;安全启动模块根据平台密钥和/或密钥交换密钥数据,通过BIOS的配置接口对BIOS进行配置修改。
安全启动模块,包括:权限验证子模块、功能配置子模块、执行管理子模块和密码算法子模块;具体为:
权限验证子模块,对登录用户进行身份鉴别,确认用户权限。
功能配置子模块,根据用户权限,为拥有相应权限的用户提供控制安全启动的使能与关闭的安全启动开关。
执行管理子模块,根据安全启动开关的当前状态,判断是否调用密码算法子模块进行验签,并根据密码算法子模块的计算结果判断是否执行EFI文件。
密码算法子模块,通过哈希算法和/或非对称算法对EFI文件进行验签对比计算;验签对比计算所采用的算法和EFI文件签名的算法一致。
安全启动模块进一步包括:密钥存储子模块和密钥管理子模块;具体为:
密钥存储子模块,创建数据库以存储平台密钥和/或密钥交换密钥数据。
密钥管理子模块,根据平台密钥和/或密钥交换密钥数据,通过BIOS的配置接口对BIOS进行配置修改。
其中,密码算法子模块,调用虚拟TCM模块提供的杂凑运算和/或非对称加密或解密运算服务以对EFI文件进行验签。密钥存储子模块,调用虚拟TCM模块提供的非易失性存储和易失性存储服务以创建数据库存储平台密钥和/或密钥交换密钥数据。
虚拟TCM模块提供的TCM服务,包括:非对称加密或解密运算、对称加密或解密运算、生成非对称密钥对、杂凑运算、生成随机数、非易失性存储和易失性存储。针对其中的非易失性存储服务,如果设备系统有独立的NV硬件,则利用NV硬件实现虚拟TCM模块的非易失性存储功能;如果设备系统没有独立的NV硬件,则利用BIOS系统所在的Flash芯片的空闲区域实现虚拟TCM模块的非易失性存储功能。
综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于TrustZone技术的安全启动方法,其特征在于,包括:
步骤1,设备上电后,在TEE环境中,启动虚拟TCM模块和安全启动模块;
步骤2,在REE环境中,BIOS加载第三方EFI文件;
步骤3,在TEE环境中,所述安全启动模块调用所述虚拟TCM模块提供的TCM服务以对所述EFI文件进行验签;
步骤4,在REE环境中,如果验签成功,则BIOS执行所述EFI文件,完成安全启动;如果验签失败,则不执行所述EFI文件,完成安全启动。
2.如权利要求1所述的基于TrustZone技术的安全启动方法,其特征在于,在步骤1与步骤2之间,进一步进行BIOS的配置修改,包括:
步骤101,从外界导入平台密钥和/或密钥交换密钥数据,并通过所述安全启动模块进行保存;
步骤102,所述安全启动模块根据所述平台密钥和/或密钥交换密钥数据,通过BIOS的配置接口对BIOS进行配置修改。
3.如权利要求1所述的基于TrustZone技术的安全启动方法,其特征在于,所述安全启动模块,包括:权限验证子模块、功能配置子模块、执行管理子模块和密码算法子模块;
所述权限验证子模块,对登录用户进行身份鉴别,确认用户权限;
所述功能配置子模块,根据所述用户权限,为拥有相应权限的用户提供控制安全启动的使能与关闭的安全启动开关;
所述执行管理子模块,根据所述安全启动开关的当前状态,判断是否调用所述密码算法子模块进行验签,并根据所述密码算法子模块的计算结果判断是否执行所述EFI文件;
所述密码算法子模块,通过哈希算法和/或非对称算法对所述EFI文件进行验签对比计算;验签对比计算所采用的算法和所述EFI文件签名的算法一致。
4.如权利要求2所述的基于TrustZone技术的安全启动方法,其特征在于,所述安全启动模块,进一步包括:密钥存储子模块和密钥管理子模块;
所述密钥存储子模块,创建数据库以存储所述平台密钥和/或密钥交换密钥数据;
所述密钥管理子模块,根据所述平台密钥和/或密钥交换密钥数据,通过BIOS的配置接口对BIOS进行配置修改。
5.如权利要求1-4中任意一项所述的基于TrustZone技术的安全启动方法,其特征在于,所述虚拟TCM模块提供的TCM服务,包括:非对称加密或解密运算、对称加密或解密运算、生成非对称密钥对、杂凑运算、生成随机数、非易失性存储和易失性存储。
6.如权利要求5所述的基于TrustZone技术的安全启动方法,其特征在于,所述非易失性存储服务,如果设备系统有独立的NV硬件,则利用所述NV硬件实现所述虚拟TCM模块的非易失性存储功能;如果设备系统没有独立的NV硬件,则利用BIOS系统所在的Flash芯片的空闲区域实现所述虚拟TCM模块的非易失性存储功能。
7.如权利要求3所述的基于TrustZone技术的安全启动方法,其特征在于,所述密码算法子模块,调用所述虚拟TCM模块提供的杂凑运算和/或非对称加密或解密运算服务以对所述EFI文件进行验签。
8.如权利要求4所述的基于TrustZone技术的安全启动方法,其特征在于,所述密钥存储子模块,调用所述虚拟TCM模块提供的非易失性存储和易失性存储服务以创建数据库存储所述平台密钥和/或密钥交换密钥数据。
9.一种基于TrustZone技术的安全启动系统,其特征在于,包括:处于TEE环境中的虚拟TCM模块和安全启动模块;
设备上电后,所述安全启动模块调用所述虚拟TCM模块提供的TCM服务以对BIOS加载的第三方EFI文件进行验签;如果验签成功,则BIOS执行所述EFI文件,完成安全启动;如果验签失败,则不执行所述EFI文件,完成安全启动。
10.如权利要求9所述的基于TrustZone技术的安全启动系统,其特征在于,所述安全启动模块,进一步导入并保存平台密钥和/或密钥交换密钥数据;所述安全启动模块根据所述平台密钥和/或密钥交换密钥数据,通过BIOS的配置接口对BIOS进行配置修改。
CN202311740191.0A 2023-12-18 2023-12-18 一种基于TrustZone技术的安全启动方法 Pending CN117932612A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311740191.0A CN117932612A (zh) 2023-12-18 2023-12-18 一种基于TrustZone技术的安全启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311740191.0A CN117932612A (zh) 2023-12-18 2023-12-18 一种基于TrustZone技术的安全启动方法

Publications (1)

Publication Number Publication Date
CN117932612A true CN117932612A (zh) 2024-04-26

Family

ID=90765654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311740191.0A Pending CN117932612A (zh) 2023-12-18 2023-12-18 一种基于TrustZone技术的安全启动方法

Country Status (1)

Country Link
CN (1) CN117932612A (zh)

Similar Documents

Publication Publication Date Title
US9361462B2 (en) Associating a signing key with a software component of a computing platform
CN109313690B (zh) 自包含的加密引导策略验证
US8909940B2 (en) Extensible pre-boot authentication
US9626512B1 (en) Validating using an offload device security component
US8850212B2 (en) Extending an integrity measurement
KR100930218B1 (ko) 소프트웨어 기반 보안 코프로세서를 제공하는 방법, 장치및 처리 시스템
US10382195B2 (en) Validating using an offload device security component
US7937575B2 (en) Information processing system, program product, and information processing method
US20100115625A1 (en) Policy enforcement in trusted platforms
US20110246778A1 (en) Providing security mechanisms for virtual machine images
US10243739B1 (en) Validating using an offload device security component
US20050021968A1 (en) Method for performing a trusted firmware/bios update
US10211985B1 (en) Validating using an offload device security component
JP2014513348A (ja) 統合拡張ファームウェアインタフェース準拠計算装置内のシステムセキュリティデータベースおよびファームウェア格納部を変更する要求を処理するシステムおよび方法
US11106798B2 (en) Automatically replacing versions of a key database for secure boots
US10592661B2 (en) Package processing
WO2009051471A2 (en) Trusted computer platform method and system without trust credential
CN107679425B (zh) 一种基于固件和USBkey的联合全盘加密的可信启动方法
US20170255775A1 (en) Software verification systems with multiple verification paths
Suciu et al. Horizontal privilege escalation in trusted applications
CN108345805B (zh) 验证固件的方法及装置
CN115470477A (zh) 智能终端及其处理器系统、可信执行方法
CN114547656A (zh) 一种云环境下基于Intel SGX的两阶段远程证明方法
Feng Trusted Computing: Principles and Applications
CN111310173A (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