CN103793654A - 服务器主动管理技术协助的安全引导 - Google Patents

服务器主动管理技术协助的安全引导 Download PDF

Info

Publication number
CN103793654A
CN103793654A CN201410090626.6A CN201410090626A CN103793654A CN 103793654 A CN103793654 A CN 103793654A CN 201410090626 A CN201410090626 A CN 201410090626A CN 103793654 A CN103793654 A CN 103793654A
Authority
CN
China
Prior art keywords
key
platform
processor
firmware
signature
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.)
Granted
Application number
CN201410090626.6A
Other languages
English (en)
Other versions
CN103793654B (zh
Inventor
K.维德
V.J.齐默
M.谢克哈
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN103793654A publication Critical patent/CN103793654A/zh
Application granted granted Critical
Publication of CN103793654B publication Critical patent/CN103793654B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths

Abstract

本发明涉及服务器主动管理技术协助的安全引导,在一些实施例中,本发明涉及与平台的安全引导相关的系统和方法。在至少一个实施例中,本发明预设为使用存储在平台上安全位置中的一个或多个签名密钥来安全地引导平台,其中对该签名的访问是由平台上的微控制器或来执行,并且主处理器没有直接访问权来更改签名密钥。还描述了其他实施例并对它们提出了权利要求。

Description

服务器主动管理技术协助的安全引导
技术领域
本发明的实施例一般地涉及平台的引导,尤其涉及使用存储在平台上的安全位置中的签名密钥来进行的安全引导。
背景技术
对于安全引导,有多种机制。统一可扩充固件接口(UEFI)规范定义一种用于操作系统与平台固件之间的接口的新模型。此接口由包含平台相关信息的数据表组成,另外还有对于操作系统及其装载程序可用的引导和运行时服务调用。它们一起提供用于引导操作系统和运行引导前应用程序的标准环境。可以在URL www*uefi*org/home的公众互联网上找到有关UEFI的更多信息。请注意本文献中以星号替代了句点以防止无意产生的超链接。UEFI标准可用于协助平台的安全引导。
UEFI规范2.1的第26章描述一种用于安全引导的协议。此定义的协议为通用认证信息的访问提供特定装置路径。该协议可以在任何设备句柄上使用以获取与物理或逻辑装置关联的信息。可以将公用密钥和证书保存在固件上,并检查第三方EFI驱动程序和操作系统(OS)装载程序上的数字签名。将公用密钥绑定到平台已成为一个部署问题。其安全性仅相当于平台能够安全地存储公用密钥。在引导时撤销公用密钥或证书是不可能的。假冒装载程序可被插入到平台中以规避此安全性。因此,这种安全引导方法在引导时间期间可能仍容易受到攻击。
发明内容
本发明为克服上述背景技术中存在的问题构思而成。
本发明的第一方面是一种用于平台上安全引导的系统,包括:与固件存储器耦合的主处理器;用于引导所述主处理器的固件,所述固件在引导期间利用一个或多个签名密钥,各签名密钥与引导期间要在所述平台上装载的软件映像关联;以及所述平台上的第二处理器,所述第二处理器以通信方式耦合到存储器的安全区域,所述存储器的所述安全区域对于所述固件或其他主处理器应用程序不可访问;所述第二处理器配置成管理所述一个或多个签名密钥以控制引导期间的映像装载。
本发明的第二方面是一种用于平台上安全引导的方法,包括如下步骤:
由平台固件起始所述平台上主处理器的安全引导;
确定第二处理器是否对与引导时要装载且存储在安全存储器中的软件映像关联的至少一个签名密钥具有访问权,如果是,则所述第二处理器从所述安全存储器检索出所述至少一个签名密钥,但是
如果否,则从固件存储器检索出所述至少一个签名密钥;
由所述第二处理器检索出与所述至少一个签名密钥关联的验证信息;以及
用所述验证信息验证所述至少一个签名密钥。
本发明的第三方面是用于平台上安全引导的机器可访问媒体,所述媒体中存储有在机器上执行时使所述机器执行如下操作的指令:
由平台固件起始所述平台上主处理器的安全引导;
确定第二处理器是否对与引导时要装载且存储在安全存储器中的软件映像关联的至少一个签名密钥具有访问权,
如果是,则所述第二处理器从所述安全存储器检索出所述至少一个签名密钥,但是
如果否,则从固件存储器检索出所述至少一个签名密钥;
由所述第二处理器检索与所述至少一个签名密钥关联的验证信息;以及
用所述验证信息验证所述至少一个签名密钥。
附图说明
本发明的特征和优点将通过以下参照附图对本发明的详细描述阐明,附图中:
图1是表示根据本发明实施例的带外(out-of-band)微控制器(OOB微控制器)的特征的框图;
图2A是表示根据本发明实施例的示范性服务器平台的框图;
图2B是表示根据本发明实施例的示范性客户机平台的框图;
图3是说明根据本发明实施例的可扩充固件接口(EFI)体系结构系统的执行的流程图;
图4说明根据本发明实施例的用于确保引导和系统完整性的签名密钥的分级结构;
图5是说明根据本发明实施例的用于验证密钥和证书的示范性方法的流程图。
具体实施方式
本发明的一实施例是与平台的安全引导相关的系统和方法。在至少一个实施例中,本发明预设为使用存储在平台上安全位置中的签名密钥来安全地引导平台,其中对该签名的访问是由平台上的微控制器或其他辅助处理器来执行,并且主处理器没有直接访问权来更改签名密钥。
本说明书中对“一个实施例”或“一实施例”的引述表示结合该实施例描述的特征、结构或特点包含在本发明的至少一个实施例中。因此,在本说明书中的多个不同位置出现短语“在一个实施例中”不一定全部指同一个实施例。
为了解释的目的,给出许多特定配置和细节,以便于对本发明的透彻理解。但是,对于本领域技术人员来说,显然在没有这些特定细节的情况下,仍可以实施本发明的这些实施例。而且,文中还省略或简化一些公知的特征,以免造成对本发明理解的不清晰。本文描述中会给出多种实例。这些示例仅是对本发明的特定实施例的描述。本发明的范围不局限于给出的这些示例。
本发明的实施例中,通过利用平台上与主处理器分开的微控制器来增强UEFI标准的标准安全引导协议。该微控制器可以具有主动管理技术(AMT)功能,例如
Figure BDA0000475942810000041
主动管理技术(iAMT)功能,以及具有带外(OOB)通信功能,下文称为带外(OOB)微控制器,或可互换地称为可管理性引擎(ME)控制器或iAMT。
Figure BDA0000475942810000042
主动管理技术(iAMT)在如下网站中有描述:URLwww*intel*com/technology/manage/iamt/。利用微控制器的OOB功能,可以将证书和密钥与通常为公众互联网上的可经由OOB连接访问的已认证的网站或公告板比较。在引导期间,可以由OOB微控制器来验证证书和密钥。
图1是表示根据本发明实施例的示范性带外微控制器(OOB微控制器)的特征的框图。此系统拓扑结构的实施例具有增加的网络连接,例如网络接口卡(NIC)150。NIC150可用于OOB平台的可管理性和通信。在一个实施例中,OOB微控制器支持可使系统的管理能够在不干扰系统执行的情况下进行。
平台100包括处理器101。处理器101可经由存储器控制器集线器103连接到随机访问存储器105。处理器101可以是任何类型能够执行软件的处理器,例如微处理器、数字信号处理器、微控制器等。虽然图1仅示出一个这样的处理器101,但是平台100中可以有一个或多个处理器,且这些处理器的一个或多个处理器可以包括多个线程、多个核等。
处理器101还可经由输入/输出控制器集线器(ICH)107连接到I/O装置。该ICH可以经由低引脚计数(LPC)总线102耦合到多种装置,例如超级I/O控制器(SIO)、键盘控制器(KBC)或可信平台模块(TPM)。例如SIO可具有对软盘驱动程序或工业标准体系结构(ISA)装置(未示出)的访问权。在一实施例中,ICH107经由串行外围接口(SPI)总线104耦合到非易失性存储器117。非易失性存储器117可以是闪速存储器或静态随机存取存储器(SRAM)等。带外(OOB)微控制器110可以存在于平台100上。OOB微控制器110可以经由总线112连接到ICH107,总线112通常为外围组件互连(PCI)或PCI Express(PCIe)总线。OOB微控制器110还可经由SPI总线104与非易失性存储器(NV存储器)117耦合。NV存储器117可为闪速存储器或静态随机存取存储器(SRAM)等。在许多现有系统中,NV存储器是闪速存储器。
OOB微控制器110可以比作“微型”处理器。与完整功能的处理器一样,OOB微控制器具有处理器单元111,处理器单元111可以在操作上耦合到高速缓存存储器115以及RAM和ROM存储器113。OOB微控制器可以具有内置的网络接口150和至电源125的独立连接,以能够在即使带内处理器101是无源的或未完全引导时仍能进行带外通信。
在一些实施例中,该处理器在NV存储器117中具有基本输入输出系统(BIOS)119。在另一些实施例中,该处理器从远程设备(未示出)引导,该引导矢量(指针)驻留在NV存储器117的BIOS部分119中。OOB微控制器110可以具有对NV存储器117的所有内容的访问权,包括非易失性存储器的BIOS部分119和受保护部分121。在一些实施例中,可以利用
Figure BDA0000475942810000051
主动管理技术(iAMT)将存储器的受保护部分121保密。
OOB微控制器可以耦合到平台以启用SMBUS命令。OOB微控制器还可以在PCIe总线上是主动的。集成器件电子装置(IDE)总线可以连接到PCIe总线。在一个实施例中,SPI104是用于ICH107与闪速存储器117通信的串行接口。OOB微控制器还可以经由SPI总线与闪速存储器通信。在一些实施例中,OOB微控制器可对SPI总线或其他总线的其中之一没有访问权。
NV存储器121中仅对OOB微控制器可用的部分可用于以安全方式存储BIOS、固件或操作系统不可访问的证书、密钥和签名。NIC150可用于访问互联网、公告板或其他远程系统以验证存储在NV存储器121中的密钥和证书。不使用带外通信,就不可能在引导时用系统固件来撤销和验证,因为在主处理器的驱动程序初始化之前没有网络连接存在。OOB微控制器可以在平台上的主处理器101引导期间较早地访问远程系统,以验证要用于完整地引导平台的驱动程序和装载程序。该远程系统可将特定证书标识为过期或已撤销。如果无能力在引导之前撤销证书,则平台容易受到伪装载程序等的攻击。OOB微控制器可以标识来自远程系统的已撤销证书,例如标识在证书撤销列表(CRL)上,并在NV存储器121中相应地标记它们。因此,引导时,已撤销的证书将不会错误地认证伪造或过期模块。
在一些实施例中,OOB微控制器是可管理性引擎(ME)控制器。可以将ME控制器(也简称为可管理性引擎(ME))集成到平台中。在一些实施例中,ME可以执行其他可管理性功能,也称为iAMT功能。但是,正如本文所描述的,此功能性对于实施本发明实施例并非必需。出于讨论的目的,术语ME和iAMT控制器指物理控制器而不是指平台的能力。ME通常可以通过内部数据路径或系统总线(SMBUS)或PECI访问器来访问芯片组寄存器。出于说明的目的,图2A-B表示为具有ME控制器和iAMT代码。
现在参考图2A,其中示出说明根据本发明实施例的示范性服务器平台的框图。在一个服务器实施例中,平台包括以通信方式耦合到DEAM303a-b、输入/输出集线器(IOH)307、闪速存储器305和输入/输出控制器集线器(ICH)309的处理器301。在此服务器实施例中,北桥(未示出的存储器控制器)驻留在处理器301中。平台可以具有可信平台模块(TPM)311并且可以连接到外部LAN313。平台还可以经由外部基板管理控制器(BMC)或键盘视频鼠标(KVM)接口317与独立的图形控制器315耦合。KVM是允许复用许多可能的本地/远程键盘/鼠标/视频源的芯片。在本示范性实施例中,IOH307可具有用于TPM302、主机嵌入式控制器接口(HECI)304、虚拟IDE(vIDE)308和ME控制器310a的附加组件。HECI304与PCI装置类似,并且是BIOS和OS可用于与ME310a通信的部件。vIDE308能够实现对LAN313d的虚拟间接引用(virtualindirection)。阴影区域300指示平台中ME控制器310a使用的部分。例如,在一实施例中,ME控制器310a具有有限数量的ROM来存储其代码。在此例中,ME控制器310a访问闪速存储器305中具有ME或iAMT代码的隔离或受保护的部分。ICH309中的资源对于ME控制器310a执行其他iAMT功能可能是必需的。外部LAN313也可以具有单独的ME控制器组件310b。但是,嵌入式ME控制器310a具有对闪速存储器中的受保护存储器的访问权,并可以使系统较为不容易受到攻击。
ME控制器310a或310b可以经由平台内的多个总线和通信路径来对平台上的其他芯片编程。处理器301与IOH307之间的链路可以包括点到点(pTp)互连链路或其他通信接口。存储器控制器集线器(MCH)或北桥一般设于服务器的处理器301内,图中未示出。
在一备选实施例中,可在引导时用外部BMC317来访问远程系统以认证密钥和证书。但是,BMC317不具有对闪速存储器305部分的安全访问权,可能导致较不安全的系统。在一优选实施例中,利用ME310a来确保证书和密钥存储在闪速存储器305的硬件保护区域中。
iAMT代码驻留在闪速存储器305中受保护的部分中。此部分对于OS和固件(BIOS/EFI)为不可访问。在一些实施例中,在ICH309中可设有基址寄存器(BAR)。引导时,BIOS设置ICH309中的寄存器以定义闪速存储器中哪些部分对于BIOS可访问以及哪个部分仅对ME310可访问。如果ICH BAR寄存器指示闪速存储器的某个部分BIOS为不可访问,则该存储器对于固件和OS将不可映射且完全不可见和不可访问。本领域技术人员可以设想出并使用通过硬件保护方案来隔离存储器的一些部分的其他方法。
图2B表示根据本发明实施例的示范性客户机平台。在示范性客户机实施例中,该平台包括具有软件代理341和操作系统343的处理器321。处理器321经由存储器控制器集线器(MCH)或北桥327以通信方式耦合到DRAM323a-c。MCH327可以对图形接口329和输入/输出控制集线器(ICH)331通信。ICH331可以与硬盘驱动程序(HDD)333、闪速存储器325和一个或多个网络接口装置335a-b(例如均可从英特尔公司购买的Ninevah2以太网控制器或Kedron无线LAN适配器)通信。网络装置335a-b可以具有带外(OOB)通信组件339。在此实施例中,ME子系统337可以构建于MCH327中。闪速存储器325包含固件代码(BIOS)、受保护的iAMT代码和制造商设置。本领域技术人员显而易见的是,处理器301和321可包括单处理器或多处理器和/或可具有一个以上的核。同样显而易见的是,图2A和2B所示的平台的多种组件可被组合或单独设置而均不会影响本文公开的本发明实施例的实用期限(viability)。
图2B所示的实施例以与图2A所示的相似方式工作。两个实施例均利用可管理性引擎(ME)310、337来将密钥和证书存储在受保护的存储器(例如闪速存储器305、325)中。安全引导进程执行ME控制器310、337上的引导脚本,或将适合的命令和数据发送到处理器301、321以供系统固件来处理。在任一情况中,引导密钥和证书均受保护而不被篡改。
本发明的实施例可以在符合统一可扩充固件接口(UEFI)的平台上实现。UEFI/EFI平台上的引导进程在图3中说明。图3表示一个根据本发明实施例的系统的执行流程。可以在安全性(SEC)阶段210加电时运行前置验证器(pre-verifier)或可信模块(CRTM)的硬件核根211。前置验证器一般是初始化并检查环境的模块。在现有的系统中,前置验证器和SEC阶段是测量的可信根核(CRTM),即足够用来启动可信平台模块(TPM)并执行BIOS的散列扩展的代码。有关TPM的更多信息可以在URL www-trustedcomputinggroup-org中见到。
处理器221、芯片组223和主板225可以在EFI前初始化(PEI)阶段220中初始化。PEI分配器227可在PEI阶段220中执行。在PEI之后,在驱动程序执行环境(DXE)230中以安全方式启动驱动程序执行环境(DXE)分配器231。PEI阶段220的操作可以在退出到DXE阶段230之前由作为RAM(CAR)的高速缓存运行。OS在暂态系统装载(TDL)阶段250引导。
引导装置选择(BDS)阶段240负责选择适合的操作系统。当OS运行(RT阶段260)期间发生系统故障(例如
Figure BDA0000475942810000091
中称为BSOD(蓝屏死机)的或Unix/Linux中称为崩溃的系统故障)时,可以在有效期后(AL阶段270)中重构固件PEI和DXE流以允许OS未启用的恢复活动。
现有的系统可能对层安全性活动依赖于Clark-Wilson安全性模型并实现Clark-Wilson模型。在此模型中,在以EFI体系结构配置的系统中,层0可以涵盖SEC210和PEI220阶段。层1涵盖DXE阶段230,以及层2涵盖BDS240和TSL250阶段。在此模型中,层0(SEC/PEI)具有平台中最高的安全完整性。安全完整性按层从高到低,即层1具有较层2高的安全完整性,但是低于层0。最高完整性代码是固件,并执行密钥管理和密钥存储。每个连续的层负责检查下一层的完整性。在安全引导中,在传递控制之前,较高完整性代码检查较低完整性代码。
术语“安全引导”实际是源于可信计算组(TCG)的术语,它不同于“已测量”或“可信”引导,因为系统并不处于给定状态(即,发现了未授权的代码),该引导进程将忽略未授权的模块,并进入某种恢复模式。最初的可信平台模块(TPM)1.1b以数据完整性寄存器(DIR)硬件来设想此方案,TPM1.2通过其存储在TPM中的更通用的非易失性数据(NVData)来实现此方案。可以在公众互联网www*trustedcomputinggroup*org/specs/TPM上找到TPM标准文献。
此模型多数源于有关安全性和私密的IEEE研讨会中概述的设计,1997年5月4-7日,1997Arbaugh,W.A.;Farber,D.J.;Smith,J.M.发表的标题为“安全和可靠引导体系结构”的论文页号65-71[DigitalObiect Identifier10.1109/SECPRI.1997.601317],下文简称[Arbaugh](IEEE Symposium on Security and Privacy,1997,4-7May1997Page(s):65-71of the paper entitled"A secure and reliable bootstraparchitecture″by Arbaugh,W.A.;Farber,D.J.;Smith,J.M.[Digital ObjectIdentifier10.1109/SECPRI.1997.601317],hereinafter[Arbaugh])。[Arbaugh]类型的“安全引导”过去通过Phoenix技术有限公司的定制的非标准BIOS来实现。安全引导模型的一个目的是将UEFI安全引导引入到主流操作系统(例如
Figure BDA0000475942810000101
Vista SP1/Longhorn服务器)中。
“安全引导”不同于可信引导,因为测量的可信根(RTM)是可信引导的活动代理,而“安全引导”需要RTE/RTV(用于强制/验证的可信根)来实施策略决策。RTE/RTV还可以平衡RTM动作和TPM的RTS/RTR(用于存储的可信根和用于报告的可信根),(即使用TPM来存储用于确证映像完整性的映像散列或公用密钥的白名单)。
可以使用密钥交换来将策略传递到固件中。配置此功能的一备选方式是具有适合PoP(存在证明)的“操作系统(OS)前”(pre-operatingsystem(OS))设置屏幕。
结合签署的映像的公用密钥白名单来使用“安全引导”有助于解决被测引导的“可伸缩性问题”,即许多不同的散列。对组件的签署导致某个级别的间接引用(indirection),即(可望)以较小的公用密钥和根存储器集合应对非常大量的可能散列。
在现有的系统中,OS装载程序被签署,但是固件中没有任何检查装载程序完整性的代码。后续的内核级代码完整性检查不具有平台/硬件可信根。在公开的本发明实施例中,目的在于使UEFI固件检查装载程序签名,并且如果平台未处于拥有者授权的状态,则不调用。因为UEFI参与代码完整性保证,所以确保不发生代码完整性破坏变得更为重要。应当理解,虽然本发明公开的实施例与符合UEFI体系结构的平台配合得非常好,但是还可以使用具有含OOB能力的独立控制器的任何平台来验证密钥,并确保引导装载程序和平台其他密钥组件的完整性。
图4表示用来确保引导和系统完整性的密钥的分级结构。利用虚线描绘的密钥可以驻留在写保护存储器中。在一个示范性UEFI实施例中,PV-00、PV-01、PV-30和PV-31(401a-d)表示要保护UEFI保护变量的密钥。这些受保护变量(PV)指向被签署的UEFI装载程序和驱动程序。KeK0 pub、KeK1 pub、KeK2 pub和KeK3 pub(403a-d)表示固件存储的公用密钥。固件使用公用密钥403来检查嵌入UEFI驱动程序和装载程序中的数字签名,以查看这些签名是否正确。一些密钥可能不对应于受保护变量。每个操作系统装载程序一般具有其自身的密钥。例如,平台可能同时具有
Figure BDA0000475942810000111
装载程序和Linux装载程序。二者都需要被保护。各装载程序将具有其自身的公用密钥。各OS供应商通常将以数字方式签署它们的装载程序产品。平台密钥(PK)是平台拥有者(例如公司的信息技术(IT)部门)赋予平台的密钥。该平台使用PK来加密/签署所有其他密钥。例如,使用PK405将来自OS供应商或独立硬件供应商(IHV)的密钥KEK403加密。换言之,平台固件使用PK来使KEK安全。
Platform_admin_r407表示系统或平台、管理员或IT专业人员。此管理员通常将开启密钥/签署/加密功能部件,并安装PK405。在一实施例中,平台管理员407可驻在管理控制台处,并通过经由到UEFI机器的iAMT联网来发送命令,以远程方式安装和启动安全引导功能部件。
远程服务器410可以将例如平台密钥413a或OS装载程序密钥413b等专用密钥以及证书和撤销列表保存在活动目录411中。活动目录411是企业注册表。该注册表可以保存关于所管理平台的信息。可以将好的/有效的密钥列表存储在活动目录411中。在本发明的实施例中,ME(或iAMT)访问远程服务器410上的活动目录411,以确定密钥是否是有效的或是否已经被撤销。在备选实施例中,ME可以经由例如公众互联网访问其他远程服务器或网络以检索出好的或被撤销的密钥的列表。
图5是根据本发明实施例用于验证密钥和证书的示范性方法的流程图。出于说明目的,描述的系统与统一可扩充固件接口(UEFI)体系结构相一致。应当理解,本发明的各实施例可以在具有嵌入式可管理性引擎或其他带外微处理器的多种系统体系结构上实现。以虚线示出的处理和决策框指示要由平台上存在iAMT或ME控制器执行或当iAMT或ME控制器配置成实现本发明的实施例时执行的过程。当系统被重新启动或引导(如框501所示)时,在框503中可以将UEFI系统标记(AMT_Store)设为“假”。通过下文描述应当理解,可以使用其他方法(包括控制线(control line))来确定安全存储器是否包含密钥。使用标记(flag)仅为了说明的目的。在框505中确定ME(akaiAMT)控制器是否可用。如果OOB通信由ME控制器启用,则在框507中确定平台上是否有平台密钥(PK)。如果如此,则在框509中指示ME控制器保密的存储器中存储(在闪速存储器上)的密钥,并将系统标记AMTStore设为“真”。该标记指示密钥在ME保密的存储区域中可用。如果没有PK,则如框511所示,可从远程服务器检索出PK和签名密钥。然后将检索到的密钥存储在ME安全存储器中,并将AMT_Store标记设为“真”。接着在框513中进行操作系统(OS)前的处理或引导系统处理。
在引导期间,在框515中确定是否要启动UEFI驱动程序或OS装载程序。如果不是,则在框531中处理接着进行的下一项引导。固件持续进行检查,以查看是否要在在框515中启动驱动程序或装载程序,直到引导完成为止。
如果确定要启动驱动程序或OS装载程序,则在框517,就系统标记AMT_Store是否为“真”,即确定安全存储器中是否有密钥。如果有这些密钥,则在框518中确定OOB通信是否启动并正在运行。如果例如由于调制解调器或子系统故障,没有通信可用,则不装载映像(529)并且处理接着进行(531)。如果此映像对于要引导的系统是必不可少的,则可能发生引导失败,需要恢复。否则,如果OOB通信正在正常工作,则在框519中从安全存储器检索公用签名密钥,并且请求ME控制器验证检索到的密钥。ME控制器的OOB组件访问远程服务器、公告板、互联网位置等以检查在线证书撤销列表(OCELL)或其他数据库,来确定该密钥是否已被撤销或过期。
在框521中基于OOB组件做出的确定,检查用于所装载的驱动程序或OS的UEFI映像签名,以查看它是否已被撤销或过期。如果如框525中确定的,该签名通过验证或仍是好的,则在框527中调用、启动或装载映像,然后处理在框531中继续,直到引导进程完成为止。
如果框517中确定安全存储器中未存储上述的驱动程序或装载程序的密钥,则在框523中,固件从BIOS可访问的正规闪速存储器检索供应商或OEM提供的密钥。如果框524中确定闪速存储器中不存在任何密钥,则不装载映像(529)且处理继续进行(531)。如果存在密钥,则在框521中检查有效性,并在框525接着验证密钥。如果框525中确定签名验证失败,则该映像被忽略,且不装载、启动或调用它(529)。在框531,对下一个映像(驱动程序或装载程序)的处理继续进行。
如果在529无法装载系统的必需的组件或映像,则系统可能无法引导到操作系统。应当理解,可以使用多种恢复和诊断方法来解决该问题。还应当理解,当密钥丢失或至远程服务器的通信不可用时,还可以调用能够进行引导的多种平台策略。在这种情况下,可以向系统管理员发送消息或将消息排队以通知管理员此后需要执行的纠正动作。基于密钥故障的严重程度,有多种忽略装载映像或允许装载一些类型的映像的多种置换方式(permutation)。
本文描述的这些技术不限于任何特定的硬件或软件配置;可以在任何计算、消费电子或处理环境中发现它们的实用性。这些技术可以采用硬件、软件或二者组合形式来实现。
为了进行模拟,程序代码可以使用硬件描述语言或实质地提供期望如何执行指定硬件的模型的另一种功能描述语言来表示硬件。程序代码可以是汇编或机器语言或可以编译和/或解释的数据。而且,在本领域中通常将软件以一种形式或另一种形式称为采取动作或促成结果。此类表述仅是说明通过处理系统执行程序代码使处理器执行动作或产生结果的便捷方式。
可以采用高级过程或面向对象的编程语言来实现每个程序以与处理系统通信。但是如果需要,还可以采用汇编或机器语言来实现这些程序。在任何情况下,该语言可以被编译或解释。
程序指令可用来使以这些指令编程的通用或专用处理系统执行本文描述的操作。或者,可以由特定硬件组件来执行这些操作,其中特定硬件组件包含用于执行这些操作的硬布线逻辑或由编程的计算机组件和定制硬件组件的任何组合来执行。本文描述的方法可以作为计算机程序产品来提供,该计算机程序产品可包括其上存储可用于对处理系统或其他电子装置编程以执行这些方法的指令的机器可访问媒体。
程序代码或指令可以存储在例如易失性和/或非易失性存储器(例如存储器和/或关联的机器可读或机器可访问媒体,包括固态存储器、硬盘驱动程序、软盘、光存储器、磁带、闪速存储器、存储棒、数字视频光盘、数字多功能光盘(DVD)等)以及较不常见的机器可访问生物态保存存储器。机器可读媒体可包括用于以机器可读形式存储、传送或接收信息的任何机构,该媒体可包括可用于传递将程序代码编码的电、光、声或其他形式传播的信号或载波的有形媒体,例如天线、光纤、通信接口等。程序代码可采用分组、串行数据、并行数据、传播的信号等形式来传送,并可采用压缩或加密的格式来使用。
程序代码可以在可编程机器上执行的程序中实现,可编程机器诸如移动或固定计算机、个人数字助理、机顶盒、蜂窝电话和传呼机、消费电子装置(包括DVD播放器、个人录像机、个人视频播放器、卫星接收器、立体声收音机、电缆TV接收器)以及其他电子装置,这些可编程机器均包括处理器、可被处理器读取的易失性和/或非易失性存储器、至少一个输入装置和/或一个或多个输出装置。可以将程序代码应用于用输入装置输入的数据以执行所描述的实施例和生成输出信息。可以将输出信息应用于一个或多个输出装置。本领域技术人员能够认识到,所公开的发明主题的实施例可用多种计算机系统配置来实施,包括多处理器或多核处理器系统、微计算机、主机计算机以及实际可以嵌入任何装置中的泛及或缩微(pervasive or miniature)计算机或处理器。所公开的发明主题的实施例还可在分布式计算环境中实施,在分布式计算环境中其任务或部分可以由通过通信网络链接的远程处理设备来执行。
虽然操作可以描述为顺序过程,但是这些操作的其中一些实际可以并行地执行、同时地执行和/或在分布式环境中执行,并且可以利用本地和/或远程地存储以被单个或多个处理器机器访问的程序代码来执行。此外,在一些实施例中,可以将操作的次序重新安排,而不背离所公开的发明主题的精神。程序代码可以被嵌入式控制器使用或与嵌入式控制器一起使用。
虽然本发明是参考说明性实施例来描述的,但是该描述不应视为限制意义的。些说明性实施例的多种修改以及本发明的其他实施例对于本领域技术人员是显而易见的,而这些修改和其他实施例应视为落在本发明的精神和范围内。

Claims (12)

1.一种用于平台上安全引导的系统,包括: 
与固件存储器耦合的主处理器,所述固件存储器用于存储固件以引导所述主处理器;
所述平台上的第二处理器,所述第二处理器以通信方式耦合到存储器的安全区域,所述存储器的所述安全区域对于所述固件和其他主处理器应用程序不可访问,所述第二处理器检索并验证来自所述安全区域的签名密钥以控制引导期间的映像装载,所述第二处理器具有用于带外连接的网络接入,即使在所述主处理器还未引导时,所述第二处理器是可用的,使得当甚至未引导所述主处理器时能够撤销或验证它的签名。
2.如权利要求1所述的系统,其特征在于,所述存储器的安全区域驻留在所述固件存储器上。
3. 如权利要求2所述的系统,其特征在于,所述固件存储器是在所述平台上被芯片组隔离的闪速存储器,所述隔离使得安全存储区域对于所述固件不可访问。
4. 如权利要求1所述的系统,其特征在于,所述固件配置成如果在安全存储区域中签名密钥是不可用的则从所述固件存储器检索出所述签名密钥。
5. 如权利要求1所述的系统,其特征在于,如果与所述软件映像关联的所述签名密钥的验证失败,则所述固件将不装载或启动所述软件映像。
6. 如权利要求5所述的系统,其特征在于,验证失败是过期证书、丢失证书或撤销证书中至少其一的结果。
7. 如权利要求1所述的系统,其特征在于,签名密钥包括平台密钥、受保护变量密钥或公用密钥中至少其一。
8. 如权利要求7所述的系统,其特征在于,包括签名密钥的分级结构,其中更高级别密钥保护更低级别密钥。
9. 如权利要求8所述的系统,其特征在于,所述平台密钥具有比受保护变量密钥更高的级别,而所述受保护变量密钥具有比公用密钥更高的级别,其中公用密钥与引导期间将要装载的每个软件映像关联。
10. 如权利要求1所述的系统,其特征在于,证书验证或在线证书撤销列表是从局域网、远程网络、公众互联网上的位置、内联网上的位置或机器可访问的公告板中至少其一检索到的。
11. 如权利要求1所述的系统,其特征在于,所述第二处理器包括主动管理技术微控制器、可管理性引擎控制器或基板管理控制器的其中之一。
12. 如权利要求1所述的系统,其中所述第二处理器具有带外通信能力并且被配置成验证所述签名密钥以及通过带外通信从远程位置访问证书验证或在线证书撤销列表的至少其中之一。
CN201410090626.6A 2007-03-30 2008-03-28 服务器主动管理技术协助的安全引导 Active CN103793654B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/731,526 US8984265B2 (en) 2007-03-30 2007-03-30 Server active management technology (AMT) assisted secure boot
US11/731526 2007-03-30
CN 200810090932 CN101340288A (zh) 2007-03-30 2008-03-28 服务器主动管理技术协助的安全引导

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN 200810090932 Division CN101340288A (zh) 2007-03-30 2008-03-28 服务器主动管理技术协助的安全引导

Publications (2)

Publication Number Publication Date
CN103793654A true CN103793654A (zh) 2014-05-14
CN103793654B CN103793654B (zh) 2017-10-24

Family

ID=39590693

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201410090626.6A Active CN103793654B (zh) 2007-03-30 2008-03-28 服务器主动管理技术协助的安全引导
CN 200810090932 Pending CN101340288A (zh) 2007-03-30 2008-03-28 服务器主动管理技术协助的安全引导

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN 200810090932 Pending CN101340288A (zh) 2007-03-30 2008-03-28 服务器主动管理技术协助的安全引导

Country Status (3)

Country Link
US (1) US8984265B2 (zh)
EP (1) EP1975836B1 (zh)
CN (2) CN103793654B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107580766A (zh) * 2015-06-09 2018-01-12 英特尔公司 用于网络的群组密钥分发的系统、装置和方法
CN112005237A (zh) * 2018-04-30 2020-11-27 谷歌有限责任公司 安全区中的处理器与处理加速器之间的安全协作

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008159164A (ja) * 2006-12-25 2008-07-10 Funai Electric Co Ltd 再生装置
US7917741B2 (en) * 2007-04-10 2011-03-29 Standard Microsystems Corporation Enhancing security of a system via access by an embedded controller to a secure storage device
US7836309B2 (en) * 2007-07-20 2010-11-16 Microsoft Corporation Generic extensible pre-operating system cryptographic infrastructure
US8185941B2 (en) * 2007-07-31 2012-05-22 Hewlett-Packard Development Company, L.P. System and method of tamper-resistant control
US8220041B2 (en) * 2007-12-13 2012-07-10 Trend Micro Incorporated Method and system for protecting a computer system during boot operation
US8739292B2 (en) * 2008-03-04 2014-05-27 Apple Inc. Trust exception management
US8621551B2 (en) * 2008-04-18 2013-12-31 Samsung Electronics Company, Ltd. Safety and management of computing environments that may support unsafe components
US20090327741A1 (en) * 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8078873B2 (en) 2008-06-30 2011-12-13 Intel Corporation Two-way authentication between two communication endpoints using a one-way out-of-band (OOB) channel
US8132267B2 (en) * 2008-09-30 2012-03-06 Intel Corporation Apparatus and method to harden computer system
US20100083002A1 (en) * 2008-09-30 2010-04-01 Liang Cui Method and System for Secure Booting Unified Extensible Firmware Interface Executables
KR101571880B1 (ko) * 2009-02-02 2015-11-25 삼성전자 주식회사 전자장치와 가상머신 제공장치 및 이를 이용한 가상머신 서비스 이용 방법
US8321656B2 (en) * 2009-06-13 2012-11-27 Phoenix Technologies Ltd. Timer use in extensible firmware interface compliant systems
TWI414997B (zh) * 2009-08-19 2013-11-11 Aten Int Co Ltd 遠端操控系統及提供使用者客製化憑證與簽名之方法
US8635705B2 (en) * 2009-09-25 2014-01-21 Intel Corporation Computer system and method with anti-malware
US8464038B2 (en) 2009-10-13 2013-06-11 Google Inc. Computing device with developer mode
JP5647332B2 (ja) * 2010-04-12 2014-12-24 インターデイジタル パテント ホールディングス インコーポレイテッド ブートプロセスでのリリースの段階化された制御
US9721101B2 (en) * 2013-06-24 2017-08-01 Red Hat, Inc. System wide root of trust chaining via signed applications
US9367327B2 (en) * 2010-09-24 2016-06-14 Intel Corporation Method to ensure platform silicon configuration integrity
US8726069B2 (en) * 2010-10-27 2014-05-13 Red Hat Israel, Ltd. Highly available file system in a directly attached storage
CN102024105A (zh) * 2010-11-16 2011-04-20 深圳市文鼎创数据科技有限公司 安全认证方法和装置
US8812830B2 (en) 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
US20130061328A1 (en) * 2011-09-06 2013-03-07 Broadcom Corporation Integrity checking system
BR112014013583A8 (pt) 2011-12-29 2017-06-13 Intel Corp método e aparelho para otimização de inicialização confiável
EP2810157A4 (en) * 2012-01-30 2015-08-19 Hewlett Packard Development Co PRIMING A SERVER USING REMOTE DEAD MEMORY IMAGE
US9218462B2 (en) * 2012-04-25 2015-12-22 Hewlett Packard Enterprise Development Lp Authentication using lights-out management credentials
US9825932B2 (en) * 2013-01-09 2017-11-21 Qatar Foundation Storage system and method of storing and managing data
US9336395B2 (en) 2013-01-25 2016-05-10 Hewlett-Packard Development Company, L.P. Boot driver verification
CN103761124B (zh) * 2014-01-06 2017-03-01 武汉烽火富华电气有限责任公司 用于保护测控装置的嵌入式Linux系统启动方法
US9626196B2 (en) * 2014-03-21 2017-04-18 Intel Corporation Broadcasting management information using fountain codes
US9785801B2 (en) * 2014-06-27 2017-10-10 Intel Corporation Management of authenticated variables
US9524390B2 (en) 2014-09-09 2016-12-20 Dell Products, Lp Method for authenticating firmware volume and system therefor
US9767118B2 (en) 2014-12-01 2017-09-19 Dell Products, Lp Optimized UEFI file system with network file system compound statements
US10430589B2 (en) 2015-03-19 2019-10-01 Intel Corporation Dynamic firmware module loader in a trusted execution environment container
DE102015207004A1 (de) 2015-04-17 2016-03-24 Siemens Aktiengesellschaft Verfahren zum geschützten Zugriff auf Sicherheitsfunktionen eines Sicherheitsmoduls eines Hostsystems
CN105046138A (zh) * 2015-07-13 2015-11-11 山东超越数控电子有限公司 一种基于飞腾处理器的可信管理系统及方法
US10467015B2 (en) 2015-09-08 2019-11-05 Dell Products, Lp Method for out of band device configuration deployment and system therefor
US10181956B2 (en) * 2015-12-21 2019-01-15 Hewlett-Packard Development Company, L.P. Key revocation
WO2017131712A1 (en) * 2016-01-28 2017-08-03 Hewlett-Packard Development Company, L.P. Thresholds on scripts executable by unified extensible firmware interface systems
US10467402B2 (en) * 2016-08-23 2019-11-05 Lenovo (Singapore) Pte. Ltd. Systems and methods for authentication based on electrical characteristic information
US10528765B2 (en) * 2016-09-16 2020-01-07 Intel Corporation Technologies for secure boot provisioning and management of field-programmable gate array images
US10262140B2 (en) 2016-09-29 2019-04-16 Intel Corporation Methods and apparatus to facilitate blockchain-based boot tracking
EP3382590B1 (en) * 2017-03-31 2019-10-16 OMRON Corporation Method for initializing a computerized system and computerized system against rollback attacks
US10417429B2 (en) 2017-06-02 2019-09-17 Apple Inc. Method and apparatus for boot variable protection
US11263326B2 (en) 2017-06-02 2022-03-01 Apple Inc. Method and apparatus for secure system boot
US10467416B2 (en) * 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
US10831897B2 (en) * 2017-07-14 2020-11-10 Dell Products, L.P. Selective enforcement of secure boot database entries in an information handling system
US10489594B2 (en) 2017-07-19 2019-11-26 Dell Products, Lp System and method for secure migration of virtual machines between host servers
US10462664B2 (en) 2017-08-02 2019-10-29 Dell Products, Lp System and method for control of baseboard management controller ports
WO2019147288A1 (en) * 2018-01-29 2019-08-01 Hewlett-Packard Development Company, L.P. Data protection in a pre-operating system environment
WO2019212579A1 (en) 2018-04-30 2019-11-07 Google Llc Managing enclave creation through a uniform enclave interface
US10956576B2 (en) * 2018-09-06 2021-03-23 Micron Technology, Inc. Secure boot via system and power management microcontroller
CN109446815B (zh) * 2018-09-30 2020-12-25 华为技术有限公司 基本输入输出系统固件的管理方法、装置和服务器
DE102019201244A1 (de) * 2019-01-31 2020-08-06 Robert Bosch Gmbh Verfahren zum Überprüfen eines Softwaremoduls
US11574060B2 (en) 2019-04-24 2023-02-07 International Business Machines Corporation Secure initial program load
US11443036B2 (en) * 2019-07-30 2022-09-13 Hewlett Packard Enterprise Development Lp Facial recognition based security by a management controller
CN112347481A (zh) * 2019-08-06 2021-02-09 华为技术有限公司 安全启动方法、控制器和控制系统
US11385902B2 (en) 2019-11-17 2022-07-12 Nuvoton Technology Corporation Secure firmware management with hierarchical boot sequence using last known good firmware
EP3933631B1 (en) * 2020-06-30 2023-04-12 NXP USA, Inc. Fast and versatile multicore soc secure boot method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0849657A1 (en) * 1996-12-18 1998-06-24 NCR International, Inc. Secure data processing method and system
US20050138409A1 (en) * 2003-12-22 2005-06-23 Tayib Sheriff Securing an electronic device
US20050276228A1 (en) * 2004-06-09 2005-12-15 Raj Yavatkar Self-isolating and self-healing networked devices

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237611A (en) * 1992-07-23 1993-08-17 Crest Industries, Inc. Encryption/decryption apparatus with non-accessible table of keys
US6401208B2 (en) * 1998-07-17 2002-06-04 Intel Corporation Method for BIOS authentication prior to BIOS execution
US6711684B1 (en) * 1999-06-08 2004-03-23 General Instrument Corporation Variable security code download for an embedded processor
US7200758B2 (en) 2002-10-09 2007-04-03 Intel Corporation Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem
US7509644B2 (en) * 2003-03-04 2009-03-24 Secure 64 Software Corp. Operating system capable of supporting a customized execution environment
US20050005108A1 (en) * 2003-05-13 2005-01-06 Bsi2000, Inc. Cryptographically secure transactions with optical cards
US8055910B2 (en) * 2003-07-07 2011-11-08 Rovi Solutions Corporation Reprogrammable security for controlling piracy and enabling interactive content
US7207039B2 (en) * 2003-12-24 2007-04-17 Intel Corporation Secure booting and provisioning
US20060015732A1 (en) * 2004-07-15 2006-01-19 Sony Corporation Processing system using internal digital signatures
US8146142B2 (en) * 2004-09-03 2012-03-27 Intel Corporation Device introduction and access control framework
US20060179308A1 (en) * 2005-02-07 2006-08-10 Andrew Morgan System and method for providing a secure boot architecture
US7774616B2 (en) * 2006-06-09 2010-08-10 International Business Machines Corporation Masking a boot sequence by providing a dummy processor
US7733874B2 (en) * 2006-10-27 2010-06-08 International Business Machines Corporation Communicating packets between devices involving the use of different communication protocols

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0849657A1 (en) * 1996-12-18 1998-06-24 NCR International, Inc. Secure data processing method and system
US20050138409A1 (en) * 2003-12-22 2005-06-23 Tayib Sheriff Securing an electronic device
US20050276228A1 (en) * 2004-06-09 2005-12-15 Raj Yavatkar Self-isolating and self-healing networked devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107580766A (zh) * 2015-06-09 2018-01-12 英特尔公司 用于网络的群组密钥分发的系统、装置和方法
CN112005237A (zh) * 2018-04-30 2020-11-27 谷歌有限责任公司 安全区中的处理器与处理加速器之间的安全协作

Also Published As

Publication number Publication date
US8984265B2 (en) 2015-03-17
EP1975836A2 (en) 2008-10-01
EP1975836B1 (en) 2017-09-20
CN101340288A (zh) 2009-01-07
EP1975836A3 (en) 2008-11-26
CN103793654B (zh) 2017-10-24
US20080244257A1 (en) 2008-10-02

Similar Documents

Publication Publication Date Title
CN103793654A (zh) 服务器主动管理技术协助的安全引导
US11741230B2 (en) Technologies for secure hardware and software attestation for trusted I/O
US10318736B2 (en) Validating operating firmware of a periperhal device
KR101190479B1 (ko) 티켓 인증 보안 설치 및 부트
EP1805571B1 (en) Verifying binding of an initial trusted device to a secured processing system
CN108960830B (zh) 智能合约的部署方法、装置、设备及存储介质
CN103119560A (zh) 用于服务处理器复合体中的数据存储的基于需求的usb代理
CN101630353A (zh) 在移动因特网设备上安全引导uefi固件和uefi感知操作系统的系统和方法
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
US9292664B2 (en) Key injection tool
US10255438B2 (en) Operating system agnostic validation of firmware images
US11909882B2 (en) Systems and methods to cryptographically verify an identity of an information handling system
US20230009032A1 (en) Systems and methods for authenticating the identity of an information handling system
US11822669B2 (en) Systems and methods for importing security credentials for use by an information handling system
US11822668B2 (en) Systems and methods for authenticating configurations of an information handling system
US11843707B2 (en) Systems and methods for authenticating hardware of an information handling system
US20230297682A1 (en) Computing device quarantine action system
Holoubková Rešerše a ukázka zabezpečení platformy (TPM)

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant