CN114692160A - 计算机安全可信启动的处理方法及装置 - Google Patents

计算机安全可信启动的处理方法及装置 Download PDF

Info

Publication number
CN114692160A
CN114692160A CN202011600334.4A CN202011600334A CN114692160A CN 114692160 A CN114692160 A CN 114692160A CN 202011600334 A CN202011600334 A CN 202011600334A CN 114692160 A CN114692160 A CN 114692160A
Authority
CN
China
Prior art keywords
bmc
trusted
security
measurement
computer
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
CN202011600334.4A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011600334.4A priority Critical patent/CN114692160A/zh
Publication of CN114692160A publication Critical patent/CN114692160A/zh
Pending legal-status Critical Current

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/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/572Secure firmware programming, e.g. of basic input output system [BIOS]

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

本申请提供一种计算机安全可信启动的处理方法及装置,该方法包括:基板管理控制器BMC是计算机第一个上电启动部件,该BMC上电后首先执行可信度量根核心CRTM代码建立计算机的可信根,并对BMC安全固件进行可信度量和加载执行。该CRTM代码存储于安全域内由安全硬件保护的只读存储器中,该安全域为BMC内由集成电路硬件实现的存储和执行安全特性功能软件的区域。该BMC安全固件为存储于该安全域中可读/写存储器内的软件程序,其功能为计算机系统和BMC系统从上电开始到系统正常运行的启动阶段,对包含但不限于可被运行的软件和配置文件进行可信度量和控制。本申请能够提高计算机启动阶段的安全性,消减信息安全威胁。

Description

计算机安全可信启动的处理方法及装置
技术领域
本申请涉及信息安全中的可信计算技术领域,具体涉及计算机安全可信启动的处理方法及装置。
背景技术
计算机系统组成日趋复杂和完善,特别是服务器平台,其启动阶段所需运行的部件越来越多,恶意固件和恶意软件对启动部件的篡改和攻击等损害威胁日趋严重。为了减少甚至防止这些损害,可以在计算机启动阶段对需要运行的部件进行可信度量和校验。
现有基于基板管理控制器(base-board management controller,BMC)对计算机启动阶段进行可信度量的方案,但是这类方案中用于实现可信度量和校验的计算机程序没有得到恰当的保护,导致对计算机启动阶段对需要运行的部件进行可信度量和校验的结果也不一定准确,依然存在安全隐患。
综上所述,如何提高计算机启动的安全性是本领域技术人员需要解决的技术问题。
发明内容
本申请提供一种计算机安全可信启动的处理方法及装置,能够提高计算机启动的安全性,主动消减计算机中的安全威胁。
第一方面,本申请提供一种计算机安全可信启动的处理方法,该方法包括:
基板管理控制器(base-board management controller,BMC)的安全核加载可信度量根核心(core root of trust for measurement,CRTM),以构建可信根,该安全核为安全域内的计算核心;
该安全核加载BMC安全固件,并在该安全域内执行该BMC安全固件以获取待度量对象,该待度量对象包括计算机系统以及该BMC的操作系统启动过程中运行的一个或多个对象;
该安全核基于该BMC安全固件和该可信根对该待度量对象进行可信度量,并基于该可信度量的结果对该待度量对象进行控制。
具体的,BMC的安全域中的安全核从所述安全域内的只读存储器加载可信度量根核心CRTM,并在所述安全域内执行所述CRTM构建可信根;该安全域为所述BMC中通过硬件实现且与该BMC的操作系统物理隔离的物理区域。此外,上述BMC安全固件为存储在所述安全域内由安全硬件保护的可读可写的存储器中的软件程序。
本申请中,可信度量根核心CRTM是BMC上电后执行的第一段代码,主要用于构建可信根,BMC安全固件是BMC上电后执行的第二段代码,主要用于对待度量对象进行可信度量和可信控制,这两段代码的安全性关系着后续可信度量结果的准确性,因此,本申请利用BMC主控芯片的安全域架构,将CRTM和BMC安全固件安置在安全域内存储和执行,保证了CRTM和BMC安全固件的安全可信,进而保证了后续待度量对象可信度量结果的准确性,从而提高了计算机启动的安全性。
另外,现有技术中有些待度量对象不是直接基于可信根进行可信度量的,例如BIOS可信度量通过之后,是计算机执行BIOS对计算机的操作系统加载器进行可信度量,又例如,计算机的操作系统加载器可信度量通过之后,由计算机执行该加载器对操作系统的二进制文件进行度量等,这种间接的可信度量存在安全隐患,计算机执行这些文件对另一个文件进行度量的过程中可能存在安全风险,例如存在不被保护的代码被执行的风险,导致可能存在安全隐患。而本申请实施例中,所有的待度量对象均是由安全核基于BMC安全固件和可信根来进行可信度量,保证了可信度量结果的准确性,从而减少了计算机启动过程中的安全隐患,提高安全性。
一种可能的实施方式中,该安全核加载BMC安全固件之前,还包括:该安全核基于该可信根对该BMC安全固件的镜像文件进行可信度量,且确定该BMC安全固件的镜像文件的可信度量通过。
本申请中,BMC在执行BMC安全固件之前进一步验证BMC安全固件的可信度,从而可以进一步保证BMC安全固件的安全性,主动消减计算机中的安全威胁,提高计算机启动的安全性。
一种可能的实施方式中,该BMC安全固件中部署了该待度量对象的可信度量策略、可信基准值数据库和可信控制策略;其中,该可信度量策略用于指示该待度量对象可信度量的先后顺序,该可信基准值数据库中包括该待度量对象的基准映射值,该可信控制策略用于指示不同的可信测量结果的情况下对该待度量对象的处理方式。
本申请在BMC安全固件中创新部署可信度量策略、可信基准值数据库和可信控制策略,使得计算机启动过程的可信度量过程灵活可控,状态效果可感知。
一种可能的实施方式中,该待度量对象包括复杂可编程逻辑器件(complexprogrammable logic device,CPLD)的逻辑配置文件;该BMC安全固件中部署了可信基准值数据库,该可信基准值数据库中包括该CPLD的逻辑配置文件的基准映射值;
该安全核基于该BMC安全固件和该可信根对该待度量对象进行可信度量,包括:
该安全核通过该BMC安全固件向该可信根发送该CPLD的逻辑配置文件,驱动该可信根对该CPLD的逻辑配置文件进行计算得到第一映射值;
该安全核基于该第一映射值和该CPLD的逻辑配置文件的基准映射值判断该CPLD的逻辑配置文件的可信度量是否通过。
由于CPLD可以控制计算机的系统内各个部件的上电时序等,关系着计算机是否可以正常工作,因此,本申请基于BMC安全固件中的可信度量策略对CPLD的逻辑配置文件进行可信度量,从而保证了计算机启动后CPLD的控制操作安全可信,主动消减计算机中的安全威胁。
一种可能的实施方式中,该待度量对象包括该BMC的启动引导程序镜像文件;该BMC安全固件中部署了可信基准值数据库,该可信基准值数据库中包括该启动引导程序镜像文件的基准映射值;
该安全核基于该BMC安全固件和该可信根对该待度量对象进行可信度量,包括:
该安全核通过该BMC安全固件向该可信根发送该启动引导程序镜像文件,驱动该可信根基于该启动引导程序镜像文件进行计算得到第二映射值;
该安全核基于该第二映射值和该启动引导程序镜像文件的基准映射值判断该启动引导程序镜像文件的可信度量是否通过。
由于BMC监控维护这计算机正常运行的各种信息状态,对计算机的正常运行有着很重要的作用,因此,本申请基于BMC安全固件中的可信度量策略对BMC的启动引导程序镜像文件进行可信度量,从而保证BMC可以正常启动,主动消减计算机中的安全威胁。
一种可能的实施方式中,该待度量对象还包括基本输入输出系统(basic inputoutput system,BIOS)的镜像文件;该可信基准值数据库中还包括该BIOS的镜像文件的基准映射值;
该安全核基于该BMC安全固件和该可信根对该待度量对象进行可信度量,还包括:
在该BMC的启动引导程序镜像文件的可信度量通过的情况下,该安全核通过该BMC安全固件向该可信根发送该BIOS的镜像文件,驱动该可信根对该BIOS的镜像文件进行计算得到第三映射值;
该安全核基于该第三映射值和该BIOS的镜像文件的基准映射值判断该BIOS的镜像文件的可信度量是否通过。
由于BIOS的作用是为计算机提供最底层的、最直接的硬件设置和控制,同样关系着计算机是否可以正常工作,因此,本申请基于BMC安全固件中的可信度量策略对BIOS的镜像文件进行可信度量,从而保证了计算机启动后BIOS的控制操作安全可信,主动消减计算机中的安全威胁。
一种可能的实施方式中,该待度量对象还包括该计算机的操作系统加载器(operation system loader,OS loader)的二进制文件;该可信基准值数据库中还包括该OS loader的二进制文件的基准映射值;该BIOS中植入了第一扩展度量模块,该第一扩展度量模块与该BMC安全固件建立了通信;
该在该安全域内执行该BMC安全固件以获取待度量对象,包括:
在该BIOS的功能代码的镜像文件的可信度量通过的情况下,该安全核调用该BMC安全固件与该第一扩展度量模块交互获取该OS loader的二进制文件;
该安全核基于该BMC安全固件和该可信根对该待度量对象进行可信度量,还包括:
该安全核通过该BMC安全固件向该可信根发送该OS loader的二进制文件,驱动该可信根对该OS loader的二进制文件进行计算得到第四映射值;
该安全核基于该第四映射值和该OS loader的二进制文件的基准映射值判断该OSloader的二进制文件的可信度量是否通过。
由于OS loader负责将操作系统由固件环境进入OS环境,关系着计算机的操作系统的正常启动,因此,本申请基于BMC安全固件中的可信度量策略对OS loader的二进制文件进行可信度量,从而保证了计算机的操作系统可以正常启动,主动消减计算机中的安全威胁。
一种可能的实施方式中,该待度量对象还包括该计算机的操作系统(operationsystem,OS)的二进制文件;该可信基准值数据库中还包括该OS的二进制文件的基准映射值;该OS loader中植入了第二扩展度量模块,该第二扩展度量模块与该BMC安全固件建立了通信;
该在该安全域内执行该BMC安全固件以获取待度量对象,还包括:
在该OS loader的二进制文件的可信度量通过的情况下,该安全核调用该BMC安全固件与该第二扩展度量模块交互获取该计算机的OS的二进制文件;
该安全核基于该BMC安全固件和该可信根对该待度量对象进行可信度量,还包括:
该安全核通过该BMC安全固件向该可信根发送该计算机的OS的二进制文件,驱动该可信根对该计算机的OS的二进制文件进行计算得到第五映射值;
该安全核基于该第五映射值和该OS的二进制文件的基准映射值判断该计算机的OS的二进制文件的可信度量是否通过。
由于OS管理着计算机的硬件与软件资源,可以说是计算机正常运转的核心,因此,本申请基于BMC安全固件中的可信度量策略对OS的二进制文件进行可信度量,从而保证了计算机可以正常工作,主动消减计算机中的安全威胁。
一种可能的实施方式中,该待度量对象还包括该BMC的操作系统和应用软件的镜像文件;该可信基准值数据库中还包括该BMC的操作系统和应用软件的镜像文件的基准映射值;上述BMC的启动引导程中植入了第三扩展度量模块,该第三扩展度量模块与该BMC安全固件建立了通信;
该在该安全域内执行该BMC安全固件以获取待度量对象,还包括:
在该BMC的启动引导程序镜像文件的可信度量通过的情况下,该安全核调用该BMC安全固件与该第三扩展度量模块交互获取该BMC的操作系统和应用软件的镜像文件;
该安全核基于该BMC安全固件和该可信根对该待度量对象进行可信度量,包括:
该安全核通过该BMC安全固件向该可信根发送该BMC的操作系统和应用软件的镜像文件,驱动该可信根对该BMC的操作系统和应用软件的镜像文件进行计算得到第六映射值;
该安全核基于该第六映射值和该BMC的操作系统和应用软件的镜像文件的基准映射值,判断该BMC的操作系统和应用软件的镜像文件的可信度量是否通过。
由于BMC的操作系统和应用软件可以帮助计算机更好地运转,因此,本申请基于BMC安全固件中的可信度量策略对BMC的操作系统和应用软件的镜像文件进行可信度量,从而为计算机可以正常工作提供安全保障,主动消减计算机中的安全威胁。
上述各个可能的实施方式对计算机启动过程中的组件逐级度量校验,逐级可信控制,直至操作系统启动运行并提供服务,对整个启动过程进行全程安全防护。
一种可能的实施方式中,该在该安全域内执行该CRTM构建可信根,包括:
该安全核在该安全域内执行该CRTM以驱动可信密码模块TCM成为该可信根。
本申请表明可信密码模块为可信根。
一种可能的实施方式中,该BMC安全固件中部署了可信控制策略;该可信控制策略用于指示不同的可信测量结果的情况下对该待度量对象的处理方式;
该基于该可信度量的结果对该待度量对象进行控制,包括:
基于该可信控制策略,若该待度量对象的可信度量不通过,该安全核对该待度量对象执行版本的回退、恢复或阻止运行操作。
本申请中,BMC基于BMC安全固件中的可信控制策略对可信测量结果进行控制,若可信度量不通过可以回退或恢复,还可以阻止对应程序的执行,以主动消减计算机中的安全威胁。
一种可能的实施方式中,该BMC的操作系统包括可信证明代理,该可信证明代理用于与远程安全运维管理中心交互为该待度量对象的可信度量结果提供可信证明,所述远程安全运维管理中心还用于维护该计算机启动过程中的可信度量策略、可信基准值数据库和可信控制策略。
具体的,可信证明代理与远程安全运维管理中心之间通过可信网络连接,建立可信通信。可信证明代理可以向远程安全运维管理中心发送上述某个待度量对象的可信度量结果的可信证明挑战(credible proof challenge,CPC),远程安全运维管理中心基于该可信证明挑战向可信证明代理发送该待度量对象的可信度量结果的可信证据,从而实现对该待度量对象的可信证明。
本申请中,BMC结合远程安全运维管理中心,为计算机系统提供了丰富的安全运维管理和可信证明能力,能够对计算机启动过程的可信度量提供可信证明服务。
一种可能的实施方式中,该BMC与该计算机的处理器之间通过系统总线连接。
本申请不仅适用于有南桥芯片的处理器平台,而且适用于无南桥芯片的处理器架构平台;具备更好的平台兼容性和通用推广优势。
第二方面,本申请提供一种基板管理控制器BMC,该BMC包括:
构建单元,用于加载可信度量根核心CRTM,以构建可信根,该安全核为安全域内的计算核心;
获取单元,用于加载BMC安全固件,并在该安全域内执行该BMC安全固件以获取待度量对象,该待度量对象包括计算机系统以及该BMC的操作系统启动过程中运行的一个或多个对象;
可信度量单元,用于基于该BMC安全固件和该可信根对该待度量对象进行可信度量;
控制单元,用于基于该可信度量的结果对该待度量对象进行控制。
具体的,构建单元从所述安全域内的只读存储器加载可信度量根核心CRTM,并在所述安全域内执行所述CRTM构建可信根;该安全域为所述BMC中通过硬件实现且与该BMC的操作系统物理隔离的物理区域。此外,上述BMC安全固件为存储在所述安全域内由安全硬件保护的可读可写的存储器中的软件程序。
一种可能的实施方式中,该可信度量单元,还用于在该获取单元加载该BMC安全固件之前,基于该可信根对该BMC安全固件的镜像文件进行可信度量,且确定该BMC安全固件的镜像文件的可信度量通过。
一种可能的实施方式中,该待度量对象包括复杂可编程逻辑器件CPLD的逻辑配置文件;该BMC安全固件中部署了可信基准值数据库,该可信基准值数据库中包括该CPLD的逻辑配置文件的基准映射值;该可信度量单元具体用于:
通过该BMC安全固件向该可信根发送该CPLD的逻辑配置文件,驱动该可信根对该CPLD的逻辑配置文件进行计算得到第一映射值;
基于该第一映射值和该CPLD的逻辑配置文件的基准映射值判断该CPLD的逻辑配置文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象包括该BMC的启动引导程序镜像文件;该BMC安全固件中部署了可信基准值数据库,该可信基准值数据库中包括该启动引导程序镜像文件的基准映射值;该可信度量单元具体用于:
通过该BMC安全固件向该可信根发送该启动引导程序镜像文件,驱动该可信根基于该启动引导程序镜像文件进行计算得到第二映射值;
基于该第二映射值和该启动引导程序镜像文件的基准映射值判断该启动引导程序镜像文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象还包括基本输入输出系统BIOS的镜像文件;该可信基准值数据库中还包括该BIOS的镜像文件的基准映射值;该可信度量单元具体还用于:
在该BMC的启动引导程序镜像文件的可信度量通过的情况下,通过该BMC安全固件向该可信根发送该BIOS的镜像文件,驱动该可信根对该BIOS的镜像文件进行计算得到第三映射值;
基于该第三映射值和该BIOS的镜像文件的基准映射值判断该BIOS的镜像文件的可信度量是否通过。
一种可能的实施方式中,该BIOS的镜像文件包括该BIOS的配置文件、分段功能代码、驱动模块和外设功能模块的镜像文件。
一种可能的实施方式中,该待度量对象还包括该计算机的操作系统加载器OSloader的二进制文件;该可信基准值数据库中还包括该OS loader的二进制文件的基准映射值;该BIOS中植入了第一扩展度量模块,该第一扩展度量模块与该BMC安全固件建立了通信;该获取单元具体用于:
在该BIOS的功能代码的镜像文件的可信度量通过的情况下,调用该BMC安全固件与该第一扩展度量模块交互获取该OS loader的二进制文件;
该可信度量单元具体还用于:
通过该BMC安全固件向该可信根发送该OS loader的二进制文件,驱动该可信根对该OS loader的二进制文件进行计算得到第四映射值;
基于该第四映射值和该OS loader的二进制文件的基准映射值判断该OS loader的二进制文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象还包括该计算机的操作系统OS的二进制文件;该可信基准值数据库中还包括该OS的二进制文件的基准映射值;该OS loader中植入了第二扩展度量模块,该第二扩展度量模块与该BMC安全固件建立了通信;该获取单元具体还用于:
在该OS loader的二进制文件的可信度量通过的情况下,调用该BMC安全固件与该第二扩展度量模块交互获取该计算机的OS的二进制文件;
该可信度量单元具体还用于:
通过该BMC安全固件向该可信根发送该计算机的OS的二进制文件,驱动该可信根对该计算机的OS的二进制文件进行计算得到第五映射值;
基于该第五映射值和该OS的二进制文件的基准映射值判断该计算机的OS的二进制文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象还包括该BMC的操作系统和应用软件的镜像文件;该可信基准值数据库中还包括该BMC的操作系统和应用软件的镜像文件的基准映射值;该BMC的启动引导程中植入了第三扩展度量模块,该第三扩展度量模块与该BMC安全固件建立了通信;
该获取单元具体还用于:在该BMC的启动引导程序镜像文件的可信度量通过的情况下,调用该BMC安全固件与该第三扩展度量模块交互获取该BMC的操作系统和应用软件的镜像文件;
该可信度量单元具体还用于:
通过该BMC安全固件向该可信根发送该BMC的操作系统和应用软件的镜像文件,驱动该可信根对该BMC的操作系统和应用软件的镜像文件进行计算得到第六映射值;
基于该第六映射值和该BMC的操作系统和应用软件的镜像文件的基准映射值,判断该BMC的操作系统和应用软件的镜像文件的可信度量是否通过。
一种可能的实施方式中,该构建单元具体用于:
在该安全域内执行该CRTM驱动可信密码模块TCM成为该可信根。
一种可能的实施方式中,该BMC安全固件中部署了可信控制策略;该可信控制策略用于指示不同的可信测量结果的情况下对该待度量对象的处理方式;该控制单元,具体用于:
基于该可信控制策略,若该待度量对象的可信度量不通过,对该待度量对象执行版本的回退、恢复或阻止运行操作。
一种可能的实施方式中,该BMC的操作系统包括可信证明代理,该可信证明代理用于与远程安全运维管理中心交互为该待度量对象的可信度量结果提供可信证明,该远程安全运维管理中心还用于维护计算机启动过程中的可信度量策略、可信基准值数据库和可信控制策略。
一种可能的实施方式中,该BMC与该计算机的处理器之间通过系统总线连接。
第三方面,本申请提供一种计算机安全可信启动的处理装置,该装置包括处理器和存储器,其中,该存储器用于存储计算机程序,该处理器用于执行该存储器中存储的计算机程序执行如下操作:
加载可信度量根核心CRTM,以构建可信根,该安全核为安全域内的计算核心;加载BMC安全固件,并在该安全域内执行该BMC安全固件以获取待度量对象,该待度量对象包括计算机系统以及该BMC的操作系统启动过程中运行的一个或多个对象;然后,基于该BMC安全固件和该可信根对该待度量对象进行可信度量,并基于该可信度量的结果对该待度量对象进行控制。
具体的,该处理器从所述安全域内的只读存储器加载可信度量根核心CRTM,并在所述安全域内执行所述CRTM构建可信根;该安全域为所述BMC中通过硬件实现且与该BMC的操作系统物理隔离的物理区域。此外,上述BMC安全固件为存储在所述安全域内由安全硬件保护的可读可写的存储器中的软件程序。
一种可能的实施方式中,该加载BMC安全固件之前,还包括:基于该可信根对该BMC安全固件的镜像文件进行可信度量,且确定该BMC安全固件的镜像文件的可信度量通过。
一种可能的实施方式中,该BMC安全固件中部署了该待度量对象的可信度量策略、可信基准值数据库和可信控制策略;其中,该可信度量策略用于指示该待度量对象可信度量的先后顺序,该可信基准值数据库中包括该待度量对象的基准映射值,该可信控制策略用于指示不同的可信测量结果的情况下对该待度量对象的处理方式。
一种可能的实施方式中,该待度量对象包括复杂可编程逻辑器件(complexprogrammable logic device,CPLD)的逻辑配置文件;该BMC安全固件中部署了可信基准值数据库,该可信基准值数据库中包括该CPLD的逻辑配置文件的基准映射值;
该基于该BMC安全固件和该可信根对该待度量对象进行可信度量,包括:
通过该BMC安全固件向该可信根发送该CPLD的逻辑配置文件,驱动该可信根对该CPLD的逻辑配置文件进行计算得到第一映射值;
基于该第一映射值和该CPLD的逻辑配置文件的基准映射值判断该CPLD的逻辑配置文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象包括该BMC的启动引导程序镜像文件;该BMC安全固件中部署了可信基准值数据库,该可信基准值数据库中包括该启动引导程序镜像文件的基准映射值;
该基于该BMC安全固件和该可信根对该待度量对象进行可信度量,包括:
通过该BMC安全固件向该可信根发送该启动引导程序镜像文件,驱动该可信根基于该启动引导程序镜像文件进行计算得到第二映射值;
基于该第二映射值和该启动引导程序镜像文件的基准映射值判断该启动引导程序镜像文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象还包括基本输入输出系统(basic inputoutput system,BIOS)的镜像文件;该可信基准值数据库中还包括该BIOS的镜像文件的基准映射值;
该基于该BMC安全固件和该可信根对该待度量对象进行可信度量,还包括:
在该BMC的启动引导程序镜像文件的可信度量通过的情况下,通过该BMC安全固件向该可信根发送该BIOS的镜像文件,驱动该可信根对该BIOS的镜像文件进行计算得到第三映射值;
基于该第三映射值和该BIOS的镜像文件的基准映射值判断该BIOS的镜像文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象还包括该计算机的操作系统加载器(operation system loader,OS loader)的二进制文件;该可信基准值数据库中还包括该OS loader的二进制文件的基准映射值;该BIOS中植入了第一扩展度量模块,该第一扩展度量模块与该BMC安全固件建立了通信;
该在该安全域内执行该BMC安全固件以获取待度量对象,包括:
在该BIOS的功能代码的镜像文件的可信度量通过的情况下,调用该BMC安全固件与该第一扩展度量模块交互获取该OS loader的二进制文件;
该基于该BMC安全固件和该可信根对该待度量对象进行可信度量,还包括:
通过该BMC安全固件向该可信根发送该OS loader的二进制文件,驱动该可信根对该OS loader的二进制文件进行计算得到第四映射值;
基于该第四映射值和该OS loader的二进制文件的基准映射值判断该OS loader的二进制文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象还包括该计算机的操作系统(operationsystem,OS)的二进制文件;该可信基准值数据库中还包括该OS的二进制文件的基准映射值;该OS loader中植入了第二扩展度量模块,该第二扩展度量模块与该BMC安全固件建立了通信;
该在该安全域内执行该BMC安全固件以获取待度量对象,还包括:
在该OS loader的二进制文件的可信度量通过的情况下,调用该BMC安全固件与该第二扩展度量模块交互获取该计算机的OS的二进制文件;
该基于该BMC安全固件和该可信根对该待度量对象进行可信度量,还包括:
通过该BMC安全固件向该可信根发送该计算机的OS的二进制文件,驱动该可信根对该计算机的OS的二进制文件进行计算得到第五映射值;
基于该第五映射值和该OS的二进制文件的基准映射值判断该计算机的OS的二进制文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象还包括该BMC的操作系统和应用软件的镜像文件;该可信基准值数据库中还包括该BMC的操作系统和应用软件的镜像文件的基准映射值;该BMC的启动引导程中植入了第三扩展度量模块,该第三扩展度量模块与该BMC安全固件建立了通信;
该在该安全域内执行该BMC安全固件以获取待度量对象,还包括:
在该BMC的启动引导程序镜像文件的可信度量通过的情况下,调用该BMC安全固件与该第三扩展度量模块交互获取该BMC的操作系统和应用软件的镜像文件;
该基于该BMC安全固件和该可信根对该待度量对象进行可信度量,包括:
通过该BMC安全固件向该可信根发送该BMC的操作系统和应用软件的镜像文件,驱动该可信根对该BMC的操作系统和应用软件的镜像文件进行计算得到第六映射值;
基于该第六映射值和该BMC的操作系统和应用软件的镜像文件的基准映射值,判断该BMC的操作系统和应用软件的镜像文件的可信度量是否通过。
一种可能的实施方式中,该在该安全域内执行该CRTM构建可信根,包括:
在该安全域内执行该CRTM以驱动可信密码模块TCM成为该可信根。
一种可能的实施方式中,该BMC安全固件中部署了可信控制策略;该可信控制策略用于指示不同的可信测量结果的情况下对该待度量对象的处理方式;
该基于该可信度量的结果对该待度量对象进行控制,包括:
基于该可信控制策略,若该待度量对象的可信度量不通过,对该待度量对象执行版本的回退、恢复或阻止运行操作。
一种可能的实施方式中,该BMC的操作系统包括可信证明代理,该可信证明代理用于与远程安全运维管理中心交互为所述待度量对象的可信度量结果提供可信证明,该远程安全运维管理中心还用于维护计算机启动过程中的可信度量策略、可信基准值数据库和可信控制策略。
一种可能的实施方式中,该BMC与该计算机的处理器之间通过系统总线连接。
第四方面,本申请提供一种芯片,该芯片包括处理器和存储器,其中,该存储器用于存储计算机程序,该处理器用于执行该存储器中存储的计算机程序,使得该芯片执行上述第一方面任意一项所述的方法。
第五方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第一方面任意一项所述的方法。
上述第二方面至第五方面提供的方案,用于实现或配合实现上述第一方面提供的方法,因此可以与第一方面达到相同或相应的有益效果,此处不再进行赘述。
综上所述,本申请能够提高计算机启动的安全性,主动消减计算机中的安全威胁。
附图说明
下面将对本申请实施例中所需要使用的附图作介绍。
图1所示为本申请提供的一种计算机安全可信启动的处理方法适用的系统架构示意图;
图2所示为本申请实施例提供的一种计算机安全可信启动的处理方法的流程示意图;
图3所示为本申请实施例提供的一种计算机启动过程中对文件可信度量的流程示意图;
图4所示为本申请实施例提供的一种计算机内部件连接示意图;
图5所示为本申请实施例提供的一种计算机的逻辑结构示意图;
图6所示为本申请实施例提供的计算机的硬件结构示意图。
具体实施方式
下面结合附图对本申请实施例中的技术方案进行描述。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
基板管理控制器(base-board management controller,BMC):是广泛应用于服务器类计算机处理器的带外管理子系统,其功能包括虚拟键盘、鼠标、显示器、电源管理控制和远程运维等,也包括对服务器等计算机的电源电压、温度、风扇状态、机箱状态等物流信息的监视。其硬件是主板第一个上电启动的部件和带外管理系统。
可信密码模块:是构建安全运算环境的硬件和固件的集合。其核心功能体系就是从三个维度基于自主密码算法构建可信计算的功能,该三个维度包括:完整性度量与验证,可信身份标识与鉴别,和数据保护。
可信根(root of trust,RoT):可信根的范围包括可信度量根(root of trustfor measurement,RTM)、可信存储根(root of trust for storage,RTS)和可信报告根(root of trust for reporting,RTR)。可信根是可信度量中的信任源点,是一个必然被信任的组件。
可信度量根核心(core root of trust for measurement,CRTM):在本申请中,CRTM是计算机上电启动后执行的第一段代码或者说第一段计算机程序,是建立可信根的核心程序代码。
操作系统加载器(operation system loader,OS loader):OS loader负责将系统由固件(Firmware)环境进入OS环境。功能一般包括确定启动位置,配置物理内存和环境变量,读取操作系统镜像后将控制权交给操作系统内核。
基本输入输出系统(basic input output system,BIOS):是一组固化到主板上一个存储器芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从互补金属氧化物半导体(complementary metal oxidesemiconductor,CMOS)中读写系统设置的具体信息。
固件(firmware):可以是一种软件,这种软件被写入芯片,所以是“固化”的。固件代码本身可以保存在只读存储器(read-only memory,ROM)中。也可保存在可编程只读存储器(programmable read-only memory,PROM)或者电可擦除只读存储器(electricallyerasable programmable read-only memory,EEPROM)等存储器中。
镜像文件:镜像(Mirroring)是一种文件存储形式,文件以一定的格式制作成和存储,一个文件和其自身的镜像文件是完全相同的,只是存储的位置不相同,也可以说镜像文件是原来的文件的备份或副本。
为了更好的理解本申请实施例提供的一种计算机安全可信启动的处理方法,下面对本申请实施例适用的场景进行示例性地描述。参阅图1,图1是本申请实施例提供一种的系统构架示意图。
可以看到,图1所示的系统架构包括计算机的系统11、基板管理控制器管理系统12和远程安全运维管理中心13。计算机的系统11和基板管理控制器管理系统12通过硬件接口连接实现通信,基板管理控制器管理系统12和远程安全运维管理中心13通过可信网络连接实现通信。
需要说明的是,计算机的系统11和基板管理控制器管理系统12均属于该计算机内所包括的系统。该计算机可以包括但不限于服务器、工作站、高性能计算机、个人家用计算机、便携式计算机和任何一种基于智能操作系统的电子产品等。
计算机的系统11包括主板硬件111、基本输入输出系统BIOS112、操作系统加载器OS loader 113、操作系统内核(operation system kernel,OS kernel)114和应用程序(application,APP)115。
主板硬件111是计算机最重要的部件之一,安装了计算机的主要电路系统,例如包括处理器、存储BIOS的闪存器件和控制电源时序的复杂可编程逻辑器件(complexprogrammable logic device,CPLD)等等。该处理器可以是中央处理器单元(centralprocessing unit,CPU)、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。
基本输入输出系统112是一组固化到主板硬件111上一个存储芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序等,它可读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
在本申请中,基本输入输出系统112植入了第一扩展度量模块,该第一扩展度量模块主要作用是读取下一级加载启动的文件并发送给BMC安全固件,然后,由BMC安全固件利用可信根对该下一级加载启动的文件进行可信度量。该下一级加载启动的文件可以是操作系统加载器113的二进制文件。
操作系统加载器113是执行程序和代码必不可少的组件,它负责将程序送入内存,为程序的运行提供准备。加载的工作一旦完成,操作系统才会移交控制权给被加载的程序代码以执行该程序。
在本申请中,操作系统加载器113植入了第二扩展度量模块,该第二扩展度量模块主要作用是建立与BMC安全固件的通信,并配合BMC安全固件利用可信根对下一级加载启动的功能代码进行可信度量。该下一级加载启动的功能代码可以是操作系统内核114的二进制文件。
操作系统内核114是一个操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、内核体系结构、计算机驱动程序、文件和网络系统,决定着系统的性能和稳定性。
应用程序115指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。
基板管理控制器管理系统12包括基板管理控制器121即主控芯片121、BMC安全存储器122和可信密码模块123。
基板管理控制器管理系统12通过与主板硬件111上的不同传感器通信来监视系统是否有严重事件,并在某些参数超出其预置阈值时发出警报和日志事件。基板管理控制器管理系统12支持工业标准的智能平台管理接口(intelligent platform managementinterface,IPMI)协议,可以实现远程配置、监测和恢复。基板管理控制器121就相当于基板管理控制器管理系统12的中央处理器,是基板管理控制器管理系统12信息处理和程序运行的最终执行单元。
基板管理控制器121包括非安全域1211和安全域1212,其中,非安全域1211和安全域1212中均包括存储器和处理器核。其中,非安全域1211内的处理器核可以称为非安全核,是非安全域1211内的计算核心;安全域1212内的处理器核可以称为安全核,是安全域1212内的计算核心。在安全域1212中的存储器和程序执行的环境受硬件保护,其中的信息包括计算机程序和数据等外界不可读取,不可篡改。该安全域1212是与该BMC的操作系统物理隔离的物理区域。
非安全域1211中的BMC的操作系统和BMC的启动引导程序可以存储在非安全域1211中的存储器中,并可以被非安全核加载后在非安全域1211内执行。其中:
BMC的操作系统提供启动部件升级管理、可信策略管理应用、日志审查管理运维软件、可信证明代理等安全管理,以及通过可信证明代理与远程安全运维管理中心可信连接以提供等安全运维功能和服务。
BMC的启动引导程序可以是uboot软件等,是BMC操作系统启动的引导软件。在本申请中,BMC的启动引导程序植入了第三扩展度量模块,该第三扩展度量模块主要作用是读取下一级加载启动的文件并发送给BMC安全固件,然后,由BMC安全固件利用可信根对该下一级加载启动的文件进行可信度量。该下一级加载启动的文件可以是BMC的操作系统和应用软件的镜像文件。
安全域1212中的BMC安全固件和可信度量根核心CRTM可以存储在安全域1212中的存储器中,并可以被安全核加载后在安全域1212内执行。示例性地,BMC安全固件存储于该安全域中有安全硬件保护的可读/写存储器中;该CRTM是存储于安全域1212内由安全硬件保护的只读存储器中。其中:
CRTM为植入安全域1212的存储器中的代码模块,其功能为驱动可信密码模块123建立可信根,是基板管理控制器管理系统12上电运行后加载执行的第一级代码。另外,CRTM中还包括BMC安全固件启动加载器的程序,用于启动该BMC安全固件。
BMC安全固件也是植入安全域1212的存储器中的代码模块,是基板管理控制器管理系统12上电运行后加载执行第二级代码,其主要功能为读取计算机启动过程中运行的文件,并基于可信根对这些文件进行可信度量。
BMC安全存储器122具备硬件保护功能,是用于存储BMC主控芯片可执行固件和软件二进制代码镜像文件的存储器件。示例性地,该BMC安全存储器122中可以存储BMC安全固件的二进制镜像文件、BMC启动引导程序的二进制镜像文件、BMC操作系统的二进制镜像文件和BMC应用软件的二进制镜像文件中的一项或多项。
可信密码模块123是构建安全运算环境的硬件和固件的集合,其核心功能体系就是基于自主密码算法对计算机启动过程中运行的文件进行可信计算。可信密码模块123包括可信密码模块(trusted crypto module,TCM)或可信平台模块(trusted platformmodule,TPM)在内的可信芯片,可信芯片可以包括处理器、存储器和输入输出(input/output,I/O)等硬件,可以实现密码算法逻辑、嵌入式操作系统、完成可信度量的存储、秘钥产生、加密签名和数据安全存储等功能。
远程安全运维管理中心13包括远程安全运维界面131、远程可信证明中心132和远程安全管理中心133。
远程安全运维界面131和远程安全管理中心133用于对计算机的系统启动过程中各级可信度量结果、可信控制行为和结果、可信证据和日志的审查管理和态势感知;并包含计算机的系统11和基板管理控制器管理系统12的各安全组件、配置文件和数据库文件的升级、部署和版本维护功能。具体的,可以维护该计算机启动过程中的可信度量策略、可信基准值数据库和可信控制策略。
远程可信证明中心132与基板管理控制器管理系统12中的可信证明代理交互以完成对计算机的启动过程中可信度量结果的远程可信证明。
需要说明的是,上述如图1所示系统架构仅为一个示例,本申请实施例提供的计算机安全可信启动的处理方法适用的系统构架不限于上述的描述,只要是应用到本申请实施例提供的计算机安全可信启动的处理方法的场景,都是本申请实施例适用的场景,此处不再赘述。
基于上述的描述,为了解决现有的技术方案中用于实现可信度量和校验的计算机程序没有得到恰当的保护,依然存在安全隐患的问题,下面介绍本申请实施例提供的一种计算机安全可信启动的处理方法。该方法可以应用于上述图1所示系统架构,参见图2,该方法可以包括但不限于如下步骤:
S201、基板管理控制器的安全核加载可信度量根核心CRTM,并在该安全域内执行该CRTM构建可信根。
该基板管理控制器可以是图1所示基板管理控制器121,该安全域可以是图1所示的基板管理控制器121中的安全域1212,该安全核可以是该安全域1212中的计算核心。该度量可信核心根CRTM可以是上述图1中介绍的CRTM。
在具体实施例中,计算机开始上电后,基板管理控制器第一个上电启动,然后基板管理控制器中的安全核调用该安全域的只读存储器中固化的CRTM计算机程序执行,驱动可信密码模块建立可信根,使得该可信密码模块成为计算机启动阶段可信度量的可信根。该可信密码模块可以是图1所示的可信密码模块123。
S202、该安全核加载BMC安全固件,并在该安全域内执行该BMC安全固件以获取待度量对象。
该BMC安全固件为存储在上述安全域的存储器内的计算机程序,该待度量对象包括计算机系统以及该BMC的操作系统启动过程中运行的一个或多个对象。该BMC安全固件可以是上述图1中介绍的BMC安全固件。
在具体实施例中,基板管理控制器中的安全核将该BMC安全固件从安全域的存储器中加载到安全域的执行区中运行以获取待度量对象。该待度量对象包括可以包括CPLD的逻辑配置文件,BMC的启动引导程序镜像文件,BIOS配置文件,BIOS分段功能代码的二进制镜像文件,BIOS驱动模块的二进制镜像文件,BIOS外设功能模块的二进制镜像文件,计算机的操作系统启动加载器OS loader的二进制镜像文件,计算机的操作系统的二进制镜像文件,BMC操作系统的二进制镜像文件和BMC应用软件的二进制镜像文件中的一项或多项。
S203、该安全核基于该BMC安全固件和该可信根对该待度量对象进行可信度量,并基于该可信度量的结果对该待度量对象进行控制。
在具体实施例中,基板管理控制器中的安全核通过BMC安全固件获取到待度量对象之后,将该待度量对象发送给可信根,即发送给可信密码模块,由可信密码模块对待度量对象进行可信度量的计算。
具体的,该可信度量的计算指的是可信密码模块通过密码散列函数算法对待度量对象进行计算得到该待度量对象的一个映射值。
可选的,该密码散列函数算法可以是国家密码管理局发布的SM3密码杂凑算法,在这种情况下,可信度量计算得到的待度量对象的映射值可以称为杂凑值。或者,该密码散列函数算法可以是安全散列算法384(secure hash algorithm 384,SHA-384)等等。本申请对具体使用的密码散列函数算法不做限制。
可信密码模块计算得到待度量对象的映射值之后,将该映射值发送给基板管理控制器的安全核,基板管理控制器的安全核通过BMC安全固件将该映射值与该待度量对象预设的预设值比较。若两个映射值相同,则表明该待度量对象的可信度量通过,即表明该待度量对象没有被篡改,是安全的;若两个映射值不同,则表明该待度量对象的可信度量不通过,即表明该待度量对象可能被篡改,存在安全威胁。
上述安全核获得待度量对象的可信度量结果之后,基于该可信度量结果对该待度量对象进行控制。示例性地,若待度量对象的可信度量通过,那么该安全核可以驱动控制相关的模块加载执行该待度量对象。若待度量对象的可信度量不通过,那么该安全核可以对该待度量对象执行版本回退、恢复或阻止运行等操作。关于可信控制,后面会详细介绍,此处暂不详述。
综上,本实施例中,可信度量根核心CRTM是BMC上电后执行的第一段代码,主要用于构建可信根,BMC安全固件是BMC上电后执行的第二段代码,主要用于对待度量对象进行可信度量和可信控制,这两段代码的安全性关系着后续可信度量结果的准确性,因此,本申请利用BMC主控芯片的安全域架构,将CRTM和BMC安全固件安置在安全域内存储和执行,保证了CRTM和BMC安全固件的安全可信,进而保证了后续待度量对象可信度量结果的准确性,主动消减了计算机中的安全隐患,提高了计算机启动的安全性。
一种可能的实现方式中,BMC安全固件中部署了上述待度量对象的可信度量策略、可信基准值数据库和可信控制策略。其中,该可信度量策略包括度量方法和度量对象等等,该度量方法包括度量点的设置、度量的时机、度量的算法等,度量对象包括程序、数据和行为等。该可信基准值数据库中包括该待度量对象的基准映射值,具体的,可信基准值数据库是对安全对象例如上述待度量对象的安全可信的版本进行建模并将其可信度量基准值进行登记的数据库。该可信控制策略用于指示不同的可信测量结果的情况下对该待度量对象的处理方式,示例性地,可信控制策略是对计算机系统的控制点、控制范围、状态信息和控制机制响应判定结果进行规定的策略数据库。本实施例在BMC安全固件中创新部署可信度量策略、可信基准值数据库和可信控制策略,使得计算机启动过程的可信度量过程灵活可控,状态效果可感知。
下面结合BMC安全固件中的可信度量策略、可信基准值数据库和可信控制策略示例性地介绍对计算机启动过程中运行的一个或多个文件的可信度量,以及基于可信度量的进行控制的过程,示例性地可以参见图3。
首先,计算机上电之后,基板管理控制器管理系统首先上电,此时基板管理控制器中的安全核加载执行可信度量根核心CRTM驱动可信密码模块建立可信根。
由于可信度量根核心CRTM中还包括BMC安全核固件启动加载器的程序,因此基板管理控制器中的安全核执行可信度量根核心CRTM中的BMC安全固件启动加载器的程序,读取BMC安全固件的镜像文件,并将读取的BMC安全固件镜像文件发送给可信密码模块进行可信度量计算得到该镜像文件的映射值,然后,可信密码模块将计算得到的映射值发送给基板管理控制器中的安全核,基板管理控制器中的安全核将该映射值与该BMC安全固件镜像文件预设的基准映射值进行比较,若两个映射值相同,则表明该BMC安全固件的可信度量通过,即表明该BMC安全固件没有被篡改,是安全的;若两个映射值不同,则表明该BMC安全固件的可信度量不通过,即表明该BMC安全固件可能被篡改,存在安全威胁。
若BMC安全固件的可信度量不通过,那么基板管理控制器中的安全核根据对BMC安全固件预设的可信控制策略对该BMC安全固件执行版本的回退或恢复操作,当然,也可以根据该可信控制策略对该BMC安全固件执行其它预先设置的处理操作,例如阻止运行等操作,本方案对此不做限制。该其它预先设置的处理操作可以包括日志审查和报警等操作。一种可能的实施方式中,BMC安全固件回退或恢复之后,基板管理控制器中的安全核可以继续对回退或恢复之后的BMC安全固件进行可信度量,直到可信度量通过为止。
若BMC安全固件的可信度量通过,那么基板管理控制器中的安全核加载执行该BMC安全固件,按照该BMC安全固件中的可信度量策略逐级获取需要可信度量的文件进行可信度量。
本实施例中,BMC中的安全核在执行BMC安全固件之前进一步验证BMC安全固件的可信度,从而可以进一步保证BMC安全固件的安全性,主动消减计算机中的安全威胁,提高计算机启动的安全性。
示例性地,基板管理控制器中的安全核根据BMC安全固件中的可信度量策略首先获取CPLD的逻辑配置文件,然后将该CPLD的逻辑配置文件发送给作为可信根的可信密码模块,由可信密码模块对该CPLD的逻辑配置文件进行可信度量计算得到该CPLD的逻辑配置文件的映射值,可以称该映射值为第一映射值。可信密码模块将该第一映射值发送给基板管理控制器中的安全核,基板管理控制器中的安全核将该第一映射值与该BMC安全固的可信基准值数据库中该CPLD的逻辑配置文件的基准映射值进行比较。若两个映射值相同,则表明该CPLD的逻辑配置文件的可信度量通过,即表明该CPLD的逻辑配置文件没有被篡改,是安全的;若两个映射值不同,则表明该CPLD的逻辑配置文件的可信度量不通过,即表明该CPLD的逻辑配置文件可能被篡改,存在安全威胁。
若CPLD的逻辑配置文件的可信度量不通过,那么基板管理控制器中的安全核可以基于可信控制策略阻止计算机系统的继续启动,并根据BMC安全固件中的可信控制策略通过非安全域中的可信证明代理将该可信度量不通过的结果发送给远程安全运维管理中心,由该远程安全运维管理中心对该计算机进行标记,并提供运维提示信息。该远程安全运维管理中心可以是图1所示的远程安全运维管理中心13。
若CPLD的逻辑配置文件的可信度量通过,那么基板管理控制器中的安全核根据BMC安全固件中的可信控制策略驱动CPLD执行相关的控制操作,例如对计算机的系统进行时序上电等控制操作。
由于CPLD可以控制计算机的系统内各个部件的上电时序等,关系着计算机是否可以正常工作,因此,本实施例基于BMC安全固件中的可信度量策略对CPLD的逻辑配置文件进行可信度量,从而保证了计算机启动后CPLD的控制操作安全可信,主动消减计算机中的安全威胁。
在CPLD的逻辑配置文件的可信度量通过之后,基板管理控制器中的安全核根据BMC安全固件中的可信度量策略获取BMC的启动引导程序镜像文件,然后将该BMC的启动引导程序镜像文件发送给作为可信根的可信密码模块,由可信密码模块对该BMC的启动引导程序镜像文件进行可信度量计算得到该BMC的启动引导程序镜像文件的映射值,可以称该映射值为第二映射值。可信密码模块将该第二映射值发送给基板管理控制器中的安全核,基板管理控制器中的安全核将该第二映射值与该BMC安全固的可信基准值数据库中该BMC的启动引导程序镜像文件的基准映射值进行比较。若两个映射值相同,则表明该BMC的启动引导程序的可信度量通过,即表明该BMC的启动引导程序没有被篡改,是安全的;若两个映射值不同,则表明该BMC的启动引导程序的可信度量不通过,即表明该BMC的启动引导程序可能被篡改,存在安全威胁。
若BMC的启动引导程序的可信度量不通过,那么基板管理控制器中的安全核根据对BMC安全固件预设的可信控制策略对该BMC的启动引导程序执行版本的回退或恢复操作,当然,也可以根据该可信控制策略对该BMC的启动引导程序执行其它预先设置的处理操作,例如阻止运行等操作,本方案对此不做限制。一种可能的实施方式中,BMC的启动引导程序回退或恢复之后,基板管理控制器中的安全核可以继续对回退或恢复之后的BMC的启动引导程序镜像文件进行可信度量,直到可信度量通过为止。
若BMC的启动引导程序的可信度量通过,基板管理控制器中的安全核驱动控制BMC的非安全域中的非安全核加载执行该BMC的启动引导程序。
由于BMC监控维护这计算机正常运行的各种信息状态,对计算机的正常运行有着很重要的作用,因此,本实施例基于BMC安全固件中的可信度量策略对BMC的启动引导程序镜像文件进行可信度量,从而保证BMC可以正常启动,主动消减计算机中的安全威胁。
一种可能的实施方式中,基板管理控制器中的安全核根据BMC安全固件中的可信度量策略也可以先对BMC的启动引导程序镜像文件进行可信度量,在BMC的启动引导程序镜像文件的可信度量通过后再对CPLD的逻辑配置文件进行可信度量。
在BMC的启动引导程序的可信度量通过之后,基板管理控制器中的安全核根据BMC安全固件中的可信度量策略获取BIOS的镜像文件,然后将该BIOS的镜像文件发送给作为可信根的可信密码模块,由可信密码模块对该BIOS的镜像文件进行可信度量计算得到该BIOS的镜像文件的映射值,可以称该映射值为第三映射值。可信密码模块将该第三映射值发送给基板管理控制器中的安全核,基板管理控制器中的安全核将该第三映射值与该BMC安全固的可信基准值数据库中该BIOS的镜像文件的基准映射值进行比较。若两个映射值相同,则表明该BIOS的可信度量通过,即表明该BIOS没有被篡改,是安全的;若两个映射值不同,则表明该BIOS的可信度量不通过,即表明该BIOS可能被篡改,存在安全威胁。
一种可能的实施方式中,该BIOS的镜像文件包括BIOS的配置文件、分段功能代码、驱动模块和外设功能模块的二进制镜像文件。上述的第三映射值可以包括该四个镜像文件各自的映射值,在进行可信度量比较时,也是将该四个镜像文件各自的映射值与BMC安全固的可信基准值数据库中该四个镜像文件各自的基准映射值比较,以各自判断该四个镜像文件是否通过可信度量。只有该四个镜像文件均通过可信度量BIOS才能通过可信度量。
若BIOS的可信度量不通过,那么基板管理控制器中的安全核根据对BMC安全固件预设的可信控制策略对该BIOS执行版本的回退或恢复操作,当然,也可以根据该可信控制策略对该BIOS执行其它预先设置的处理操作,例如阻止运行等操作,本方案对此不做限制。一种可能的实施方式中,BIOS回退或恢复之后,基板管理控制器中的安全核可以继续对回退或恢复之后的BIOS的镜像文件进行可信度量,直到可信度量通过为止。
若BIOS的可信度量通过,基板管理控制器中的安全核调用CPLD对计算机的处理器上电,该计算机的处理器上电后加载执行该BIOS。
由于BIOS的作用是为计算机提供最底层的、最直接的硬件设置和控制,同样关系着计算机是否可以正常工作,因此,本实施例基于BMC安全固件中的可信度量策略对BIOS的镜像文件进行可信度量,从而保证了计算机启动后BIOS的控制操作安全可信,主动消减计算机中的安全威胁。
在BIOS的可信度量通过之后,基板管理控制器中的安全核根据BMC安全固件中的可信度量策略获取计算机的操作系统启动加载器OS loader的二进制镜像文件,然后将该OS loader的二进制镜像文件发送给作为可信根的可信密码模块,由可信密码模块对该OSloader的二进制镜像文件进行可信度量计算得到该OS loader的二进制镜像文件的映射值,可以称该映射值为第四映射值。可信密码模块将该第四映射值发送给基板管理控制器中的安全核,基板管理控制器中的安全核将该第四映射值与该BMC安全固的可信基准值数据库中该OS loader的二进制镜像文件的基准映射值进行比较。若两个映射值相同,则表明该OS loader的可信度量通过,即表明该OS loader没有被篡改,是安全的;若两个映射值不同,则表明该OS loader的可信度量不通过,即表明该OS loader可能被篡改,存在安全威胁。
一种可能的实施方式中,BIOS中植入了第一扩展度量模块(该第一扩展度量模块可以是图1中所示的基本输入输出系统112植入的第一扩展度量模块),计算机的处理器加载执行该第一扩展度量模块以读取存储器中计算机的操作系统启动加载器OS loader的二进制镜像文件,然后将该读取的文件发送给BMC,BMC通过BMC安全固件接收该OS loader的二进制镜像文件,从而可以实现对该OS loader的二进制镜像文件的可信度量。
一种可能的实施方式中,上述第一扩展度量模块可以是加密的,那么,BIOS的可信度量通过之后,上述计算机的处理器加载该BIOS进行解密,从而对该第一扩展度量模块进行解密,解密之后该计算机的处理器执行该BIOS中的第一扩展度量模块。
若OS loader的可信度量不通过,那么基板管理控制器中的安全核根据对BMC安全固件预设的可信控制策略对该BIOS执行变更启动文件、变更启动位置、停止启动或者提示用户后关闭系统等预置操作。
由于OS loader负责将操作系统由固件环境进入OS环境,关系着计算机的操作系统的正常启动,因此,本实施例基于BMC安全固件中的可信度量策略对OS loader的二进制文件进行可信度量,从而保证了计算机的操作系统可以正常启动,主动消减计算机中的安全威胁。
若OS loader的可信度量通过,基板管理控制器中的安全核根据对BMC安全固件预设的可信控制策略向BIOS发送控制指令,使得BIOS可以驱动计算机的处理器加载执行该OSloader。
在OS loader的可信度量通过之后,基板管理控制器中的安全核根据BMC安全固件中的可信度量策略获取计算机的操作系统OS的二进制镜像文件,然后将该OS的二进制镜像文件发送给作为可信根的可信密码模块,由可信密码模块对该OS的二进制镜像文件进行可信度量计算得到该OS的二进制镜像文件的映射值,可以称该映射值为第五映射值。可信密码模块将该第五映射值发送给基板管理控制器中的安全核,基板管理控制器中的安全核将该第五映射值与该BMC安全固的可信基准值数据库中该OS的二进制镜像文件的基准映射值进行比较。若两个映射值相同,则表明该OS的可信度量通过,即表明该OS没有被篡改,是安全的;若两个映射值不同,则表明该OS的可信度量不通过,即表明该OS可能被篡改,存在安全威胁。
一种可能的实施方式中,OS loader中植入了第二扩展度量模块(该第二扩展度量模块可以是图1中所示的操作系统加载器113植入的第二扩展度量模块),计算机的处理器加载执行该第二扩展度量模块以读取存储器中计算机的操作系统OS的二进制镜像文件,然后将该读取的文件发送给BMC,BMC通过BMC安全固件接收该OS的二进制镜像文件,从而可以实现对该OS的二进制镜像文件的可信度量。
一种可能的实施方式中,上述第二扩展度量模块可以是加密的,那么,上述OSloader的可信度量通过之后,上述计算机的处理器加载该OS loader进行解密,从而对该第二扩展度量模块进行解密,解密之后该计算机的处理器执行该OS loader中的第二扩展度量模块。
若OS的可信度量不通过,那么基板管理控制器中的安全核根据对BMC安全固件预设的可信控制策略对该OS执行版本的回退或恢复操作,当然,也可以根据该可信控制策略对该OS执行其它预先设置的处理操作,例如阻止运行等操作,本方案对此不做限制。一种可能的实施方式中,OS回退或恢复之后,基板管理控制器中的安全核可以继续对回退或恢复之后的OS的镜像文件进行可信度量,直到可信度量通过为止。
若OS的可信度量通过,基板管理控制器中的安全核根据对BMC安全固件预设的可信控制策略向OS loader发送控制指令,使得OS loader可以驱动计算机的处理器加载执行该OS。
一种可能的实施方式中,上述计算机的操作系统OS的二进制镜像文件可以包括计算机的操作系统中的部分或全部的二进制镜像文件,可选的,可以包括计算机的操作系统内核的二进制镜像文件。
由于OS管理着计算机的硬件与软件资源,可以说是计算机正常运转的核心,因此,本实施例基于BMC安全固件中的可信度量策略对OS的二进制文件进行可信度量,从而保证了计算机可以正常工作,主动消减计算机中的安全威胁。
一种可能的实施方式中,在上述BMC的启动引导程序的可信度量通过之后,基板管理控制器中的安全核还可以根据BMC安全固件中的可信度量策略获取BMC的操作系统和应用软件的镜像文件,然后将该BMC的操作系统和应用软件的镜像文件发送给作为可信根的可信密码模块,由可信密码模块对该BMC的操作系统和应用软件的镜像文件进行可信度量计算,得到该BMC的操作系统和应用软件的镜像文件的映射值,可以称该映射值为第六映射值。可信密码模块将该第六映射值发送给基板管理控制器中的安全核,基板管理控制器中的安全核将该第五映射值与该BMC安全固的可信基准值数据库中该BMC的操作系统和应用软件的镜像文件的基准映射值进行比较。若两个映射值相同,则表明该BMC的操作系统和应用软件的可信度量通过,即表明该BMC的操作系统和应用软件没有被篡改,是安全的;若两个映射值不同,则表明该BMC的操作系统和应用软件的可信度量不通过,即表明该BMC的操作系统和应用软件可能被篡改,存在安全威胁。
一种可能的实施方式中,上述的第六映射值可以包括该BMC的操作系统的镜像文件和BMC的应用软件的镜像文件的映射值,在进行可信度量比较时,也是将该两个镜像文件各自的映射值与BMC安全固的可信基准值数据库中该两个镜像文件各自的基准映射值比较,以各自判断该两个镜像文件是否通过可信度量。
一种可能的实施方式中,上述BMC的启动引导程序中植入了第三扩展度量模块(该第三扩展度量模块可以是图1中所示的BMC的启动引导程序植入的第三扩展度量模块),BMC的非安全域中的非安全核加载执行该第三扩展度量模块以读取BMC安全存储器中BMC的操作系统和应用软件的镜像文件,然后将该读取的文件发送给BMC安全固件,进而可以实现对该BMC的操作系统和应用软件的镜像文件的可信度量。
若该BMC的操作系统和应用软件的可信度量不通过,那么基板管理控制器中的安全核根据对BMC安全固件预设的可信控制策略,对该BMC的操作系统和应用软件执行版本的回退或恢复操作,当然,也可以根据该可信控制策略对该BMC的操作系统和应用软件执行其它预先设置的处理操作,例如阻止运行等操作,本方案对此不做限制。一种可能的实施方式中,该BMC的操作系统和应用软件回退或恢复之后,基板管理控制器中的安全核可以继续对回退或恢复之后的该BMC的操作系统和应用软件的镜像文件进行可信度量,直到可信度量通过为止。
若BMC的操作系统和应用软件的可信度量通过,基板管理控制器中的安全核驱动控制BMC中的非安全域的非安全核通过BMC的启动引导程序加载执行BMC的操作系统,进而加载执行BMC应用软件。
由于BMC的操作系统和应用软件可以帮助计算机更好地运转,因此,本实施例基于BMC安全固件中的可信度量策略对BMC的操作系统和应用软件的镜像文件进行可信度量,从而为计算机可以正常工作提供助力,主动消减计算机中的安全威胁。
上述各个可能的实施方式对计算机启动过程中的组件逐级度量校验,逐级可信控制,直至操作系统启动运行并提供服务,对整个启动过程进行全程安全防护。另外,现有技术中有些待度量对象不是直接基于可信根进行可信度量的,例如BIOS可信度量通过之后,是计算机执行BIOS对计算机的操作系统加载器进行可信度量,又例如,计算机的操作系统加载器可信度量通过之后,由计算机执行该加载器对操作系统的二进制文件进行度量等,这种间接的可信度量存在安全隐患,计算机执行这些文件对另一个文件进行度量的过程中可能存在安全风险,例如存在不被保护的代码被执行的风险,导致可能存在安全隐患。而本申请实施例中,所有的待度量对象均是由安全核基于BMC安全固件和可信根来进行可信度量,保证了可信度量结果的准确性,从而减少了计算机启动过程中的安全隐患,提高安全性。
需要说明的是,上述介绍的可信度量策略中各个文件的可信度量的顺序只是一个示例,本申请对该可信度量策略中各个文件的可信度量的顺序不做限制。另外,上述各个文件的可信度量的度量结果可以存储在可信密码模块的非易失存储器中。
一种可能的实施方式中,由于BMC通过可信证明代理与远程安全运维管理中心建立通信连接,那么BMC可以将上述各个待度量对象的可信度量结果以及各个待度量对象可信度量计算得到的映射值发送给远程安全运维管理中心,有远程安全运维管理中心进行处理和保存,以便于对待度量对象的可信度量结果进行远程的可信证明。具体的,可信证明代理与远程安全运维管理中心之间通过可信网络连接,建立可信通信。可信证明代理可以向远程安全运维管理中心发送上述某个待度量对象的可信度量结果的可信证明挑战,远程安全运维管理中心基于该可信证明挑战向可信证明代理发送该待度量对象的可信度量结果的可信证据,从而实现对该待度量对象的可信证明。该可信证据即为存储在远程安全运维管理中心中的待待度量对象的可信度量结果。该可信度量结果可以是远程安全运维管理中心基于待度量对象的映射值确定的可信度量结果,该基于待度量对象的映射值确定的可信度量结果可以与从可信证明代理接收的该待度量对象的可信度量结果一致。
为了便于进一步理解上述基于图3所介绍的可信度量和可信控制过程,可以参见图4。图4示出了计算机的系统和BMC管理系统之间的线路连接的示意图。
在图4中,可以看到BMC(主控芯片)与BMC安全存储器之间通过嵌入式多媒体卡(embedded multi-media card,eMMC)接口连接,BMC与计算机的处理器之间通过高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)接口连接,BMC与CPLD之间通过本地总线(Local Bus)接口连接,图4所示的其它连接接口均为串行闪存控制器(serial flash controller,SFC)接口。
另外,图4中以计算机的处理器为两个处理器为例画出,实际上本申请对计算机的处理器的个数不做限制。BIOS可以存储在串行闪存型存储器件中。每一个处理器对应一个BIOS。在图4中可以看到,对串行闪存型存储器件的访问受到开关电路的控制,由于BMC和计算机的处理器均可以访问串行闪存型存储器件读取BIOS,但是每次只能有一个对象进行访问,且默认的访问对象为计算机的处理器,因此,若BMC想访问串行闪存型存储器件读取BIOS,需要通过Local Bus接口调用CPLD切换开关电路使得BMC与串行闪存型存储器件之间的通信通道打开才可以进行访问。因此,上述BMC对BIOS的镜像文件进行可信度量需要先通过Local Bus接口调用CPLD切换开关电路连通BMC与串行闪存型存储器件,才可以读取到串行闪存型存储器件中的BIOS的镜像文件。
基于图4,上述可信度量过程中,基板管理控制器中的安全核根据BMC安全固件中的可信度量策略并通过Local Bus接口读取CPLD内部的逻辑配置文件。
上述可信度量过程中BMC读取BMC安全固件的镜像文件,BMC的启动引导程序镜像文件,以及BMC的操作系统和应用软件的镜像文件均可以通过eMMC接口读取。
上述可信度量过程中BMC与可信密码模块、CPLD与串行闪存型存储器件之间的交互可以通过SFC接口来实现。
上述可信度量过程中,计算机的处理器通过第一扩展度量模块读取计算机的操作系统启动加载器OS loader的二进制镜像文件后,可以通过PCIe接口将该读取的文件发送给BMC。
同理,上述计算机的处理器通过第二扩展度量模块读取计算机的操作系统OS的二进制镜像文件后,可以通过PCIe接口将该读取的文件发送给BMC。
相比于现有技术中,BMC和计算机的处理器之间需要通过南桥芯片中转连接,在本申请中,BMC和计算机的处理器可以直接通过PCIe总线连接,因此本申请不仅适用于有南桥芯片的计算机,还适用于无南桥芯片的计算机;具备更好的兼容性和通用推广优势。
综上所述,本申请将BMC与可信密码模块相结合构建计算机启动过程中可信度量的信任源点可信根,并基于这个可信根对计算机的整个启动过程和所有启动部件进行可信看护,进行完整性度量、合法性校验、可信控制并提供可信证明服务,保障了计算机及系统启动阶段的任何部件的非法篡改都会被感知并触发管理控制操作。同时,该本申请还提供了对可信度量和可信校验失败事件的处理措施,提供包括恢复、回退、升级、日志审查和报警等功能,可以有效防护因启动部件被篡改而对于计算机及系统造成的更大安全威胁。
上述主要对本申请实施例提供的计算机安全可信启动的处理方法进行了介绍。可以理解的是,各个计算机为了实现上述对应的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对计算机进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图5示出了基板管理控制器BMC的一种可能的逻辑结构示意图。该基板管理控制器500包括构建单元501、获取单元502、可信度量单元503和控制单元504。其中:
构建单元501,用于加载可信度量根核心CRTM,以构建可信根,所述安全核为安全域内的计算核心;
获取单元502,用于加载BMC安全固件,并在所述安全域内执行所述BMC安全固件以获取待度量对象,所述待度量对象包括计算机系统以及所述BMC的操作系统启动过程中运行的一个或多个对象;
可信度量单元503,用于基于所述BMC安全固件和所述可信根对所述待度量对象进行可信度量;
控制单元504,用于基于该可信度量的结果对该待度量对象进行控制。
一种可能的实施方式中,该可信度量单元503,还用于在该获取单元502加载该BMC安全固件之前,基于该可信根对该BMC安全固件的镜像文件进行可信度量,且确定该BMC安全固件的镜像文件的可信度量通过。
一种可能的实施方式中,该待度量对象包括复杂可编程逻辑器件CPLD的逻辑配置文件;该BMC安全固件中部署了可信基准值数据库,该可信基准值数据库中包括该CPLD的逻辑配置文件的基准映射值;该可信度量单元503具体用于:
通过该BMC安全固件向该可信根发送该CPLD的逻辑配置文件,驱动该可信根对该CPLD的逻辑配置文件进行计算得到第一映射值;
基于该第一映射值和该CPLD的逻辑配置文件的基准映射值判断该CPLD的逻辑配置文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象包括该BMC的启动引导程序镜像文件;该BMC安全固件中部署了可信基准值数据库,该可信基准值数据库中包括该启动引导程序镜像文件的基准映射值;该可信度量单元503具体用于:
通过该BMC安全固件向该可信根发送该启动引导程序镜像文件,驱动该可信根基于该启动引导程序镜像文件进行计算得到第二映射值;
基于该第二映射值和该启动引导程序镜像文件的基准映射值判断该启动引导程序镜像文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象还包括基本输入输出系统BIOS的镜像文件;该可信基准值数据库中还包括该BIOS的镜像文件的基准映射值;该可信度量单元503具体还用于:
在该BMC的启动引导程序镜像文件的可信度量通过的情况下,通过该BMC安全固件向该可信根发送该BIOS的镜像文件,驱动该可信根对该BIOS的镜像文件进行计算得到第三映射值;
基于该第三映射值和该BIOS的镜像文件的基准映射值判断该BIOS的镜像文件的可信度量是否通过。
一种可能的实施方式中,该BIOS的镜像文件包括该BIOS的配置文件、分段功能代码、驱动模块和外设功能模块的镜像文件。
一种可能的实施方式中,该待度量对象还包括该计算机的操作系统加载器OSloader的二进制文件;该可信基准值数据库中还包括该OS loader的二进制文件的基准映射值;该BIOS中植入了第一扩展度量模块,该第一扩展度量模块与该BMC安全固件建立了通信;该获取单元502具体用于:
在该BIOS的功能代码的镜像文件的可信度量通过的情况下,调用该BMC安全固件与该第一扩展度量模块交互获取该OS loader的二进制文件;
该可信度量单元503具体还用于:
通过该BMC安全固件向该可信根发送该OS loader的二进制文件,驱动该可信根对该OS loader的二进制文件进行计算得到第四映射值;
基于该第四映射值和该OS loader的二进制文件的基准映射值判断该OS loader的二进制文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象还包括该计算机的操作系统OS的二进制文件;该可信基准值数据库中还包括该OS的二进制文件的基准映射值;该OS loader中植入了第二扩展度量模块,该第二扩展度量模块与该BMC安全固件建立了通信;该获取单元502具体还用于:
在该OS loader的二进制文件的可信度量通过的情况下,调用该BMC安全固件与该第二扩展度量模块交互获取该计算机的OS的二进制文件;
该可信度量单元503具体还用于:
通过该BMC安全固件向该可信根发送该计算机的OS的二进制文件,驱动该可信根对该计算机的OS的二进制文件进行计算得到第五映射值;
基于该第五映射值和该OS的二进制文件的基准映射值判断该计算机的OS的二进制文件的可信度量是否通过。
一种可能的实施方式中,该待度量对象还包括该BMC的操作系统和应用软件的镜像文件;该可信基准值数据库中还包括该BMC的操作系统和应用软件的镜像文件的基准映射值;该BMC的启动引导程中植入了第三扩展度量模块,该第三扩展度量模块与该BMC安全固件建立了通信;
该获取单元502具体还用于:在该BMC的启动引导程序镜像文件的可信度量通过的情况下,调用该BMC安全固件与该第三扩展度量模块交互获取该BMC的操作系统和应用软件的镜像文件;
该可信度量单元503具体还用于:
在该BMC的启动引导程序镜像文件的可信度量通过的情况下,通过该BMC安全固件向该可信根发送该BMC的操作系统和应用软件的镜像文件,驱动该可信根对该BMC的操作系统和应用软件的镜像文件进行计算得到第六映射值;
基于该第六映射值和该BMC的操作系统和应用软件的镜像文件的基准映射值,判断该BMC的操作系统和应用软件的镜像文件的可信度量是否通过。
一种可能的实施方式中,该构建单元501具体用于:
在该安全域内执行该CRTM驱动可信密码模块TCM成为该可信根。
一种可能的实施方式中,该BMC安全固件中部署了可信控制策略;该可信控制策略用于指示不同的可信测量结果的情况下对该待度量对象的处理方式;该控制单元504,具体用于:
基于该可信控制策略,若该待度量对象的可信度量不通过,对该待度量对象执行版本的回退、恢复或阻止运行操作。
一种可能的实施方式中,该BMC的操作系统包括可信证明代理,该可信证明代理用于与远程安全运维管理中心交互为该待度量对象的可信度量结果提供可信证明,该远程安全运维管理中心还用于维护计算机启动过程中的可信度量策略、可信基准值数据库和可信控制策略。
一种可能的实施方式中,该BMC与该计算机的处理器之间通过系统总线连接。
图5所示装置500中各个单元的具体操作以及有益效果可以参见上述图2所述方法及其可能的实施方式中的描述,此处不再赘述。
图6所示为本申请提供的装置的一种可能的硬件结构示意图,该装置可以是上述实施例所述方法中的基板管理控制器BMC。该装置600包括:处理器601、存储器602和通信接口603。处理器601、通信接口603以及存储器602可以相互连接或者通过总线604相互连接。
示例性的,存储器602用于存储装置600的计算机程序和数据,存储器602可以包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-onlymemory,ROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM)等。
在实现图5所示实施例的情况下,执行图5中的全部或部分单元的功能所需的软件或程序代码存储在存储器602中。
在实现图5实施例的情况下,如果是部分单元的功能所需的软件或程序代码存储在存储器602中,则处理器601除了调用存储器602中的程序代码实现部分功能外,还可以配合其它部件(如通信接口603)共同完成图5实施例所描述的其它功能(如发送和接收数据的功能)。
通信接口603的个数可以为多个,用于支持装置600进行通信,例如接收或发送数据或信号等。
示例性的,处理器601可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器601可以用于读取上述存储器602中存储的程序,执行上述图2所述的方法以及可能的实施方式所述的方法中BMC所做的操作。例如,该处理器601可以执行如下操作:
加载可信度量根核心CRTM,以构建可信根,该安全核为安全域内的计算核心;加载BMC安全固件,并在该安全域内执行该BMC安全固件以获取待度量对象,该待度量对象包括计算机系统以及该BMC的操作系统启动过程中运行的一个或多个对象;然后,基于该BMC安全固件和该可信根对该待度量对象进行可信度量,并基于该可信度量的结果对该待度量对象进行控制。
图6所示装置600所执行的具体操作以及有益效果可以参见上述图2该方法及其可能的实施方式中的描述,此处不再赘述。
本申请实施例还提供一种芯片或系统芯片(System on a Chip,SoC),该装置包括处理器、通信接口和存储器,该装置被配置为执行上述各个实施例及其可能的实施例中任意一个实施例所述的方法。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述各个实施例及其可能的实施例中任意一个实施例所述的方法。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述各个实施例及其可能的实施例中任意一个实施例所述的方法将被执行。
本申请实施例还提供一种计算机程序,当该计算机程序在计算机上执行时,将会使该计算机实现上述各个实施例及其可能的实施例中任意一个实施例所述的方法。
综上所述,本申请能够提高计算机启动的安全性,主动消减计算机中的安全威胁。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一图像可以被称为第二图像,并且类似地,第二图像可以被称为第一图像。第一图像和第二图像都可以是图像,并且在某些情况下,可以是单独且不同的图像。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (30)

1.一种计算机安全可信启动的处理方法,其特征在于,所述方法包括:
基板管理控制器BMC的安全核加载可信度量根核心CRTM,以构建可信根,所述安全核为安全域内的计算核心;
所述安全核加载BMC安全固件,并在所述安全域内执行所述BMC安全固件以获取待度量对象,所述待度量对象包括计算机系统以及所述BMC的操作系统启动过程中运行的一个或多个对象;
所述安全核基于所述BMC安全固件和所述可信根对所述待度量对象进行可信度量,并基于所述可信度量的结果对所述待度量对象进行控制。
2.根据权利要求1所述的方法,其特征在于,
所述可信度量根核心CRTM和所述BMC安全固件存储在所述安全域内的存储器中;
所述安全域为所述BMC中与所述BMC操作系统物理隔离的区域。
3.根据权利要求1或2所述的方法,其特征在于,所述安全核加载BMC安全固件之前,还包括:
所述安全核基于所述可信根对所述BMC安全固件的镜像文件进行可信度量,且确定所述BMC安全固件的镜像文件的可信度量通过。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述待度量对象包括复杂可编程逻辑器件CPLD的逻辑配置文件;所述BMC安全固件中部署了可信基准值数据库,所述可信基准值数据库中包括所述CPLD的逻辑配置文件的基准映射值;
所述安全核基于所述BMC安全固件和所述可信根对所述待度量对象进行可信度量,包括:
所述安全核通过所述BMC安全固件向所述可信根发送所述CPLD的逻辑配置文件,驱动所述可信根对所述CPLD的逻辑配置文件进行计算得到第一映射值;
所述安全核基于所述第一映射值和所述CPLD的逻辑配置文件的基准映射值判断所述CPLD的逻辑配置文件的可信度量是否通过。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述待度量对象包括所述BMC的启动引导程序镜像文件;所述BMC安全固件中部署了可信基准值数据库,所述可信基准值数据库中包括所述启动引导程序镜像文件的基准映射值;
所述安全核基于所述BMC安全固件和所述可信根对所述待度量对象进行可信度量,包括:
所述安全核通过所述BMC安全固件向所述可信根发送所述启动引导程序镜像文件,驱动所述可信根基于所述启动引导程序镜像文件进行计算得到第二映射值;
所述安全核基于所述第二映射值和所述启动引导程序镜像文件的基准映射值判断所述启动引导程序镜像文件的可信度量是否通过。
6.根据权利要求5所述的方法,其特征在于,所述待度量对象还包括基本输入输出系统BIOS的镜像文件;所述可信基准值数据库中还包括所述BIOS的镜像文件的基准映射值;
所述安全核基于所述BMC安全固件和所述可信根对所述待度量对象进行可信度量,还包括:
在所述BMC的启动引导程序镜像文件的可信度量通过的情况下,所述安全核通过所述BMC安全固件向所述可信根发送所述BIOS的镜像文件,驱动所述可信根对所述BIOS的镜像文件进行计算得到第三映射值;
所述安全核基于所述第三映射值和所述BIOS的镜像文件的基准映射值判断所述BIOS的镜像文件的可信度量是否通过。
7.根据权利要求6所述的方法,其特征在于,所述BIOS的镜像文件包括所述BIOS的配置文件、分段功能代码、驱动模块和外设功能模块的镜像文件。
8.根据权利要求6或7所述的方法,其特征在于,所述待度量对象还包括所述计算机的操作系统加载器OS loader的二进制文件;所述可信基准值数据库中还包括所述OS loader的二进制文件的基准映射值;所述BIOS中植入了第一扩展度量模块,所述第一扩展度量模块与所述BMC安全固件建立了通信;
所述在所述安全域内执行所述BMC安全固件以获取待度量对象,包括:
在所述BIOS的功能代码的镜像文件的可信度量通过的情况下,所述安全核调用所述BMC安全固件与所述第一扩展度量模块交互获取所述OS loader的二进制文件;
所述安全核基于所述BMC安全固件和所述可信根对所述待度量对象进行可信度量,还包括:
所述安全核通过所述BMC安全固件向所述可信根发送所述OS loader的二进制文件,驱动所述可信根对所述OS loader的二进制文件进行计算得到第四映射值;
所述安全核基于所述第四映射值和所述OS loader的二进制文件的基准映射值判断所述OS loader的二进制文件的可信度量是否通过。
9.根据权利要求8所述的方法,其特征在于,所述待度量对象还包括所述计算机的操作系统OS的二进制文件;所述可信基准值数据库中还包括所述OS的二进制文件的基准映射值;所述OS loader中植入了第二扩展度量模块,所述第二扩展度量模块与所述BMC安全固件建立了通信;
所述在所述安全域内执行所述BMC安全固件以获取待度量对象,还包括:
在所述OS loader的二进制文件的可信度量通过的情况下,所述安全核调用所述BMC安全固件与所述第二扩展度量模块交互获取所述计算机的OS的二进制文件;
所述安全核基于所述BMC安全固件和所述可信根对所述待度量对象进行可信度量,还包括:
所述安全核通过所述BMC安全固件向所述可信根发送所述计算机的OS的二进制文件,驱动所述可信根对所述计算机的OS的二进制文件进行计算得到第五映射值;
所述安全核基于所述第五映射值和所述OS的二进制文件的基准映射值判断所述计算机的OS的二进制文件的可信度量是否通过。
10.根据权利要求5至9任一项所述的方法,其特征在于,所述待度量对象还包括所述BMC的操作系统和应用软件的镜像文件;所述可信基准值数据库中还包括所述BMC的操作系统和应用软件的镜像文件的基准映射值;所述BMC的启动引导程中植入了第三扩展度量模块,所述第三扩展度量模块与所述BMC安全固件建立了通信;
所述在所述安全域内执行所述BMC安全固件以获取待度量对象,还包括:
在所述BMC的启动引导程序镜像文件的可信度量通过的情况下,所述安全核调用所述BMC安全固件与所述第三扩展度量模块交互获取所述BMC的操作系统和应用软件的镜像文件;
所述安全核基于所述BMC安全固件和所述可信根对所述待度量对象进行可信度量包括:
所述安全核通过所述BMC安全固件向所述可信根发送所述BMC的操作系统和应用软件的镜像文件,驱动所述可信根对所述BMC的操作系统和应用软件的镜像文件进行计算得到第六映射值;
所述安全核基于所述第六映射值和所述BMC的操作系统和应用软件的镜像文件的基准映射值,判断所述BMC的操作系统和应用软件的镜像文件的可信度量是否通过。
11.根据权利要求1至10任一项所述的方法,其特征在于,所述在所述安全域内执行所述CRTM构建可信根,包括:
所述安全核在所述安全域内执行所述CRTM以驱动可信密码模块TCM成为所述可信根。
12.根据权利要求1至11任一项所述的方法,其特征在于,所述BMC安全固件中部署了可信控制策略;所述可信控制策略用于指示不同的可信测量结果的情况下对所述待度量对象的处理方式;
所述基于所述可信度量的结果对所述待度量对象进行控制,包括:
基于所述可信控制策略,若所述待度量对象的可信度量不通过,所述安全核对所述待度量对象执行版本的回退、恢复或阻止运行操作。
13.根据权利要求1至12任一项所述的方法,其特征在于,所述BMC的操作系统包括可信证明代理,所述可信证明代理用于与远程安全运维管理中心交互为所述待度量对象的可信度量结果提供可信证明,所述远程安全运维管理中心还用于维护所述计算机启动过程中的可信度量策略、可信基准值数据库和可信控制策略。
14.根据权利要求1至13任一项所述的方法,其特征在于,所述BMC与所述计算机的处理器之间通过系统总线连接。
15.一种基板管理控制器BMC,其特征在于,所述BMC包括:
构建单元,用于加载可信度量根核心CRTM,以构建可信根,所述安全核为安全域内的计算核心;
获取单元,用于加载BMC安全固件,并在所述安全域内执行所述BMC安全固件以获取待度量对象,所述待度量对象包括计算机系统以及所述BMC的操作系统启动过程中运行的一个或多个对象;
可信度量单元,用于基于所述BMC安全固件和所述可信根对所述待度量对象进行可信度量;
控制单元,用于基于所述可信度量的结果对所述待度量对象进行控制。
16.根据权利要求15所述的BMC,其特征在于,
所述可信度量根核心CRTM和所述BMC安全固件存储在所述安全域内的存储器中;
所述安全域为所述BMC中与所述BMC操作系统物理隔离的区域。
17.根据权利要求15或16所述的BMC,其特征在于,所述可信度量单元,还用于在所述获取单元加载所述BMC安全固件之前,
基于所述可信根对所述BMC安全固件的镜像文件进行可信度量,且确定所述BMC安全固件的镜像文件的可信度量通过。
18.根据权利要求15至17任一项所述的BMC,其特征在于,所述待度量对象包括复杂可编程逻辑器件CPLD的逻辑配置文件;所述BMC安全固件中部署了可信基准值数据库,所述可信基准值数据库中包括所述CPLD的逻辑配置文件的基准映射值;所述可信度量单元具体用于:
通过所述BMC安全固件向所述可信根发送所述CPLD的逻辑配置文件,驱动所述可信根对所述CPLD的逻辑配置文件进行计算得到第一映射值;
基于所述第一映射值和所述CPLD的逻辑配置文件的基准映射值判断所述CPLD的逻辑配置文件的可信度量是否通过。
19.根据权利要求15至18任一项所述的BMC,其特征在于,所述待度量对象包括所述BMC的启动引导程序镜像文件;所述BMC安全固件中部署了可信基准值数据库,所述可信基准值数据库中包括所述启动引导程序镜像文件的基准映射值;所述可信度量单元具体用于:
通过所述BMC安全固件向所述可信根发送所述启动引导程序镜像文件,驱动所述可信根基于所述启动引导程序镜像文件进行计算得到第二映射值;
基于所述第二映射值和所述启动引导程序镜像文件的基准映射值判断所述启动引导程序镜像文件的可信度量是否通过。
20.根据权利要求19所述的BMC,其特征在于,所述待度量对象还包括基本输入输出系统BIOS的镜像文件;所述可信基准值数据库中还包括所述BIOS的镜像文件的基准映射值;所述可信度量单元具体还用于:
在所述BMC的启动引导程序镜像文件的可信度量通过的情况下,通过所述BMC安全固件向所述可信根发送所述BIOS的镜像文件,驱动所述可信根对所述BIOS的镜像文件进行计算得到第三映射值;
基于所述第三映射值和所述BIOS的镜像文件的基准映射值判断所述BIOS的镜像文件的可信度量是否通过。
21.根据权利要求20所述的BMC,其特征在于,所述BIOS的镜像文件包括所述BIOS的配置文件、分段功能代码、驱动模块和外设功能模块的镜像文件。
22.根据权利要求20或21所述的BMC,其特征在于,所述待度量对象还包括所述计算机的操作系统加载器OS loader的二进制文件;所述可信基准值数据库中还包括所述OSloader的二进制文件的基准映射值;所述BIOS中植入了第一扩展度量模块,所述第一扩展度量模块与所述BMC安全固件建立了通信;所述获取单元具体用于:
在所述BIOS的功能代码的镜像文件的可信度量通过的情况下,调用所述BMC安全固件与所述第一扩展度量模块交互获取所述OS loader的二进制文件;
所述可信度量单元具体还用于:
通过所述BMC安全固件向所述可信根发送所述OS loader的二进制文件,驱动所述可信根对所述OS loader的二进制文件进行计算得到第四映射值;
基于所述第四映射值和所述OS loader的二进制文件的基准映射值判断所述OSloader的二进制文件的可信度量是否通过。
23.根据权利要求22所述的BMC,其特征在于,所述待度量对象还包括所述计算机的操作系统OS的二进制文件;所述可信基准值数据库中还包括所述OS的二进制文件的基准映射值;所述OS loader中植入了第二扩展度量模块,所述第二扩展度量模块与所述BMC安全固件建立了通信;所述获取单元具体还用于:
在所述OS loader的二进制文件的可信度量通过的情况下,调用所述BMC安全固件与所述第二扩展度量模块交互获取所述计算机的OS的二进制文件;
所述可信度量单元具体还用于:
通过所述BMC安全固件向所述可信根发送所述计算机的OS的二进制文件,驱动所述可信根对所述计算机的OS的二进制文件进行计算得到第五映射值;
基于所述第五映射值和所述OS的二进制文件的基准映射值判断所述计算机的OS的二进制文件的可信度量是否通过。
24.根据权利要求19至23任一项所述的BMC,其特征在于,所述待度量对象还包括所述BMC的操作系统和应用软件的镜像文件;所述可信基准值数据库中还包括所述BMC的操作系统和应用软件的镜像文件的基准映射值;所述BMC的启动引导程中植入了第三扩展度量模块,所述第三扩展度量模块与所述BMC安全固件建立了通信;
所述获取单元具体还用于:
在所述BMC的启动引导程序镜像文件的可信度量通过的情况下,调用所述BMC安全固件与所述第三扩展度量模块交互获取所述BMC的操作系统和应用软件的镜像文件;
所述可信度量单元具体还用于:
通过所述BMC安全固件向所述可信根发送所述BMC的操作系统和应用软件的镜像文件,驱动所述可信根对所述BMC的操作系统和应用软件的镜像文件进行计算得到第六映射值;
基于所述第六映射值和所述BMC的操作系统和应用软件的镜像文件的基准映射值,判断所述BMC的操作系统和应用软件的镜像文件的可信度量是否通过。
25.根据权利要求15至24任一项所述的BMC,其特征在于,所述构建单元具体用于:
在所述安全域内执行所述CRTM驱动可信密码模块TCM成为所述可信根。
26.根据权利要求15至25任一项所述的BMC,其特征在于,所述BMC安全固件中部署了可信控制策略;所述可信控制策略用于指示不同的可信测量结果的情况下对所述待度量对象的处理方式;所述控制单元,具体用于:
基于所述可信控制策略,若所述待度量对象的可信度量不通过,对所述待度量对象执行版本的回退、恢复或阻止运行操作。
27.根据权利要求15至26任一项所述的BMC,其特征在于,所述BMC的操作系统包括可信证明代理,所述可信证明代理用于与远程安全运维管理中心交互为所述待度量对象的可信度量结果提供可信证明,所述远程安全运维管理中心还用于维护所述计算机启动过程中的可信度量策略、可信基准值数据库和可信控制策略。
28.根据权利要求15至27任一项所述的BMC,其特征在于,所述BMC与所述计算机的处理器之间通过系统总线连接。
29.一种计算机安全可信启动的处理装置,其特征在于,所述装置包括处理器和存储器,其中,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,使得所述装置执行如权利要求1至14任一项所述的方法。
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至14任意一项所述的方法。
CN202011600334.4A 2020-12-29 2020-12-29 计算机安全可信启动的处理方法及装置 Pending CN114692160A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011600334.4A CN114692160A (zh) 2020-12-29 2020-12-29 计算机安全可信启动的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011600334.4A CN114692160A (zh) 2020-12-29 2020-12-29 计算机安全可信启动的处理方法及装置

Publications (1)

Publication Number Publication Date
CN114692160A true CN114692160A (zh) 2022-07-01

Family

ID=82131617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011600334.4A Pending CN114692160A (zh) 2020-12-29 2020-12-29 计算机安全可信启动的处理方法及装置

Country Status (1)

Country Link
CN (1) CN114692160A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116679967A (zh) * 2023-07-28 2023-09-01 苏州浪潮智能科技有限公司 一种基本输入输出系统固件升级方法和装置
WO2024060756A1 (zh) * 2022-09-19 2024-03-28 华为技术有限公司 计算机设备及其运行方法、安全芯片

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024060756A1 (zh) * 2022-09-19 2024-03-28 华为技术有限公司 计算机设备及其运行方法、安全芯片
CN116679967A (zh) * 2023-07-28 2023-09-01 苏州浪潮智能科技有限公司 一种基本输入输出系统固件升级方法和装置
CN116679967B (zh) * 2023-07-28 2023-11-03 苏州浪潮智能科技有限公司 一种基本输入输出系统固件升级方法和装置

Similar Documents

Publication Publication Date Title
US11520894B2 (en) Verifying controller code
US9785596B2 (en) Redundant system boot code in a secondary non-volatile memory
EP2729896B1 (en) Bios flash attack protection and notification
US20190073478A1 (en) Hardware-enforced firmware security
KR101662618B1 (ko) 단일 신뢰 플랫폼 모듈을 가진 플랫폼 컴포넌트의 측정
JP6054908B2 (ja) 変数セットを修復する方法、コンピュータ・プログラムおよびコンピュータ
US20090125716A1 (en) Computer initialization for secure kernel
CN107665308B (zh) 用于构建和保持可信运行环境的tpcm系统以及相应方法
US9990255B2 (en) Repairing compromised system data in a non-volatile memory
US9928367B2 (en) Runtime verification
CN114692160A (zh) 计算机安全可信启动的处理方法及装置
Frazelle Securing the Boot Process: The hardware root of trust
Frazelle Securing the boot process
US11580225B2 (en) Determine whether to perform action on computing device based on analysis of endorsement information of a security co-processor
WO2023179745A1 (zh) 可信验证方法及装置
US11797679B2 (en) Trust verification system and method for a baseboard management controller (BMC)
CN115061735A (zh) 一种处理方法和装置
US20200143058A1 (en) Operational verification
US20240037216A1 (en) Systems And Methods For Creating Trustworthy Orchestration Instructions Within A Containerized Computing Environment For Validation Within An Alternate Computing Environment
CN117494232B (zh) 固件的执行方法和装置、系统、存储介质及电子设备
US20230030501A1 (en) System and method for maintaining trusted execution in an untrusted computing environment using a secure communication channel
CN116956267A (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