一种通过fTPM实现可信启动的方法及相关装置制造方法及图纸

技术编号:35089101 阅读:17 留言:0更新日期:2022-10-01 16:44
本申请公开了一种通过基于固件的可信平台模块fTPM实现可信启动的方法,该方法应用于支持可信执行环境的计算机系统中。该方法包括:通过执行统一可扩展固件接口UEFI,在可信执行环境中分配存储空间;通过执行UEFI,对fTPM驱动组件进行度量,得到第一度量值,并将第一度量值存储于存储空间中;通过执行fTPM驱动组件,启动fTPM;通过执行fTPM,将存储空间中的第一度量值扩展到fTPM的平台配置寄存器中;根据PCR中的度量值对计算机系统的启动过程进行验证。通过该方法,整个度量过程所得到的度量值都能够扩展到PCR中,处理器能够基于PCR中的度量值对计算机系统的启动过程进行验证,保证了计算机系统启动过程的安全性。证了计算机系统启动过程的安全性。证了计算机系统启动过程的安全性。

【技术实现步骤摘要】
一种通过fTPM实现可信启动的方法及相关装置


[0001]本申请涉及计算机
,尤其涉及一种通过基于固件的可信平台模块(firmware based Trusted Platform Module,fTPM)实现可信启动的方法及相关装置。

技术介绍

[0002]远程证明是可信计算整体解决方案中的关键技术之一,用户可以通过远程证明服务器认证远端设备是否处于一个可信状态。远程证明过程包括:远端设备在某些特定的时刻,对目标文件进行度量,得到度量证据(例如目标文件的摘要值);远端设备将得到的度量证据发送给远程证明服务器,由远程证明服务器根据度量证据来判断远端设备是否可信。
[0003]启动度量作为远程证明的关键度量阶段之一,能够解决设备在启动过程中系统被篡改或植入恶意代码的问题,从而保障设备启动过程中系统的完整性。通常,启动度量是借助硬件模块
‑‑
可信平台模块(Trusted Platform Module,TPM)实现的。系统的启动度量过程遵循“先度量,再执行”的原则,即当前阶段代码负责度量下一个阶段的代码,由当前阶段代码将对下一个阶段的代码进行度量得到的度量值扩展到TPM的平台配置寄存器(Platform Configuration Register,PCR)中。此后下一阶段的代码成为更新后的当前阶段代码,对新的下一阶段的代码执行上述过程,这样逐次循环往复,将系统启动过程中所得到的度量值都扩展到PCR中。PCR中的扩展值作为系统启动阶段的度量证据,被设备发给远程证明服务器,由远程证明服务器判断设备是否处于可信状态。
[0004]在启动度量过程中,TPM是不可缺少的硬件模块。然而,出于成本的考虑,某些设备上可能没配置TPM。目前,对于没配置TPM的设备,能够通过fTPM来实现启动度量。其中,fTPM是指基于固件实现TPM功能的程序。但是,fTPM作为一个可信的应用程序,fTPM必须等可信执行环境操作系统(Trusted Execution Environment operating system,TEE OS)启动之后才能够启动。因此,通过fTPM来实现启动度量时,fTPM启动之前所得到的度量值无法扩展到PCR中,即远端设备只能够获取到fTPM启动之后的度量值。由于远端设备无法获得fTPM启动之前所得到的度量值,因此设备启动过程的安全性无法得到保障。

技术实现思路

[0005]本申请提供了一种通过fTPM实现可信启动的方法及相关装置,能够保证计算机系统启动过程的安全性。
[0006]本申请第一方面提供一种通过fTPM实现可信启动的方法,该方法应用于支持可信执行环境的计算机系统中。该方法包括:在第一时刻计算机系统上电,在计算机系统上电后,处理器通过执行统一可扩展固件接口(Unified Extensible Firmware Interface,UEFI),在可信执行环境中分配存储空间,该存储空间用于存储在fTPM启动前所得到的度量值。处理器通过执行UEFI,对fTPM驱动组件进行度量,得到第一度量值,并将第一度量值存储于存储空间中。例如,处理器采用哈希算法计算fTPM驱动组件的摘要值,得到第一度量值,第一度量值包括fTPM驱动组件的摘要值和哈希算法的编号。在对fTPM驱动组件进行度
量后,处理器通过执行fTPM驱动组件,启动fTPM。然后,处理器通过执行fTPM,将存储空间中的第一度量值扩展到fTPM的PCR中。其中,处理器将第一度量值扩展到fTPM的PCR中是指处理器将第一度量值中的摘要值与PCR中所存储的值进行拼接,得到拼接后的值;处理器再对拼接后的值进行度量,得到新的摘要值,并将该新的摘要值写入PCR中。最后,处理器根据PCR中的度量值对计算机系统的启动过程进行验证。
[0007]本方案中,通过在处理器执行第一次度量之前,在可信执行环境中分配一个安全的存储空间,并将fTPM启动前所得到的度量值存储至该存储空间中。在fTPM启动后,再由处理器将可信执行环境的存储空间中的度量值扩展到fTPM的PCR中,保证了度量过程的完整性。基于本方案,整个度量过程所得到的度量值都能够扩展到PCR中,处理器能够基于PCR中的度量值对计算机系统的启动过程进行验证,保证了计算机系统启动过程的安全性。此外,由于处理器是在可信执行环境中分配用于存储度量值的存储空间,该存储空间的安全性高,能够有效保障存储空间所存储的度量值的安全性。
[0008]可选的,处理器通过执行UEFI,对fTPM驱动组件进行度量,得到第一度量值,包括:处理器通过执行核心可信度量根(Core Root of Trust for Measurement,CRTM),对ARM可信固件(arm

trusted

firmware,ATF)进行度量,得到第一子度量值,并将第一子度量值存储于存储空间中。处理器通过执行ATF,对TEE OS进行度量并启动TEE OS,得到第二子度量值。其中,UEFI包括CRTM和ATF,该ATF用于得到fTPM驱动组件的度量值。处理器对fTPM驱动组件进行度量所得到的第一度量值包括第一子度量值和第二子度量值。此外,fTPM位于TEE OS中,因此处理器通过执行ATF,对TEE OS进行度量并启动,以使得fTPM启动后能够运行于TEE OS中。
[0009]可选的,处理器通过执行UEFI,对fTPM驱动组件进行度量,得到第一度量值,还包括:处理器通过执行ATF,对UEFI中的引导器(BootLoader)进行度量,得到第三子度量值。处理器通过执行BootLoader,对操作系统内核(OS Kernel)进行度量,得到第四子度量值。其中,第一度量值还包括第三子度量值和第四子度量值。OS Kernel包括fTPM驱动组件。因此,处理器对整个OS Kernel进行度量,即可完成对fTPM驱动组件的度量。
[0010]可选的,该方法还包括:处理器通过执行CRTM,将存储空间的地址存储于平台配置数据库(Platform Configuration Database,PCD)中。然后,处理器通过执行BootLoader,从平台配置数据库中获取存储空间的地址,并将存储空间的地址配置于OS Kernel的设备树源码中。最后,处理器通过执行fTPM驱动组件,从设备树源码中获取到存储空间的地址,并将设备树源码中的存储空间的地址通过共享内存传递给fTPM。这样,处理器在执行fTPM时,fTPM则能够从共享内存中获取到用于存储度量值的存储空间的地址,并且基于该存储空间的地址从存储空间中取出所存储的度量值。
[0011]可选的,处理器通过执行UEFI,对fTPM驱动组件进行度量,得到第一度量值,还包括:处理器通过执行ATF,对UEFI中的fTPM驱动组件进行度量,得到第五子度量值。其中,第一度量值还包括第五子度量值。
[0012]可选的,该方法还包括:处理器通过执行CRTM,将存储空间的地址存储于平台配置数据库中。处理器通过执行ATF,从平台配置数据库中获取本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通过基于固件的可信平台模块fTPM实现可信启动的方法,应用于支持可信执行环境的计算机系统中,其特征在于,包括:在第一时刻所述计算机系统上电,在所述计算机系统上电后通过执行统一可扩展固件接口UEFI,在可信执行环境中分配存储空间,所述存储空间用于存储在fTPM启动前所得到的度量值;通过执行所述UEFI,对fTPM驱动组件进行度量,得到第一度量值,并将所述第一度量值存储于所述存储空间中;通过执行所述fTPM驱动组件,启动所述fTPM;通过执行所述fTPM,将所述存储空间中的所述第一度量值扩展到所述fTPM的平台配置寄存器PCR中;根据所述PCR中的度量值对所述计算机系统的启动过程进行验证。2.根据权利要求1所述的方法,其特征在于,所述通过执行所述UEFI,对fTPM驱动组件进行度量,得到第一度量值,包括:通过执行核心可信度量根CRTM,对ARM可信固件ATF进行度量,得到第一子度量值,并将所述第一子度量值存储于所述存储空间中;通过执行所述ATF,对TEE OS进行度量并启动所述TEE OS,得到第二子度量值;其中,所述UEFI包括所述CRTM和所述ATF,所述ATF用于得到所述fTPM驱动组件的度量值,所述第一度量值包括所述第一子度量值和第二子度量值,所述fTPM位于所述TEE OS中。3.根据权利要求2所述的方法,其特征在于,所述通过执行所述UEFI,对fTPM驱动组件进行度量,得到第一度量值,还包括:通过执行所述ATF,对所述UEFI中的引导器BootLoader进行度量,得到第三子度量值;通过执行所述BootLoader,对操作系统内核OS Kernel进行度量,得到第四子度量值;其中,所述OS Kernel包括所述fTPM驱动组件,所述第一度量值还包括所述第三子度量值和所述第四子度量值。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:通过执行所述CRTM,将所述存储空间的地址存储于平台配置数据库中;通过执行所述BootLoader,从所述平台配置数据库中获取所述存储空间的地址,并将所述存储空间的地址配置于所述OS Kernel的设备树源码中;通过执行所述fTPM驱动组件,将所述设备树源码中的所述存储空间的地址传递给所述fTPM。5.根据权利要求2所述的方法,其特征在于,所述通过执行所述UEFI,对fTPM驱动组件进行度量,得到第一度量值,还包括:通过执行所述ATF,对所述UEFI中的fTPM驱动组件进行度量,得到第五子度量值;其中,所述第一度量值还包括所述第五子度量值。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:通过执行所述CRTM,将所述存储空间的地址存储于平台配置数据库中;通过执行所述ATF,从所述平台配置数据库中获取所述存储空间的地址,并将所述存储空间的地址传递给所述TEE OS,所述TEE OS用于将所述存储空间的地址传递给所述fTPM。7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
通过执行所述CRTM,将所述存储空间的地址传递给所述ATF;通过执行所述ATF,将所述存储空间的地址传递给所述TEE OS,所述TEE OS用于将所述存储空间的地址传递给所述fTPM。8.根据权利要求1

7任意一项所述的方法,其特征在于,所述根据所述PCR中的度量值对所述计算机系统的启动过程进行验证,包括:获取所述计算机系统的历史启动过程中所获得的历史度量值,所述历史启动过程是所述计算机系统在所述第一时刻之前发生的启动过程;通过比对所述历史度量值以及所述PCR中的度量值,对所述计算机系统的启动过程进行验证。9.根据权利要求1

7任意一项所述的方法,其特征在于,所述根据所述PCR中的度量值对启动过程进行验证,包括:向服务器发送所述PCR中的度量值,以使得所述服务器根据所述PCR中的度量值对启动过程进行验证。10.根据权利要求1

9任意一项所述的方法,其特征在于,所述通过执行所述UEFI,对fTPM驱动组件进行度量,包括:通过执行所述UEFI,采用哈希算法计算所述fTPM驱动组件的摘要值,得到所述第一度量值,所述第一度量值包括所述fTPM驱动组件的摘要值和所述哈希算法的编号。11.根据权利要求1

10任意一项所述的方法,其特征在于,所述方法还包括:获取对所述fTPM驱动组件进行度量所得到的度量信息,所述度量信息包括所述UEFI的信息、所述fTPM驱动组件的信息和/或所述第一度量值;将所述度量信息记录到度量日志。12.一种计算机系统,所述计算机系统支持可信执行环境,其特征在于,包括:处理器和存储器;在第一时刻所述计算机系统上电,在所述计算机系统上电后,所述处理器用于通过执行UEFI,在所述存储器的可信执行环境中分配存储空间,所述存储空间用于...

【专利技术属性】
技术研发人员:刘丹同理童国雷
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1