在移动因特网设备上安全引导uefi固件和uefi感知操作系统的系统和方法

文档序号:6578182阅读:260来源:国知局
专利名称:在移动因特网设备上安全引导uefi固件和uefi感知操作系统的系统和方法
在移动因特网设备上安全引导UEFI固件和UEFI感知操作系统的系统和方法 版权公告本文所包含的是受版权保护的资料。在本专利公开内容出现在专利商标局 专利文件或记录中时,版权所有者不反对任何人复制本专利公开内容的复制, 但在其它情况下始终保留属于版权的所有权利。发明领域本发明的实施例一般涉及移动计算平台,且更明确地,本发明的实施例增 加了平台所有者或管理员确保仅以所有者授权的方式执行固件的能力,诸如利 用签名的组件。实施例通过使用移动设备中的密码协处理器作为存储可信根 (RTS)存储根密钥(SRK)可将核心度量可信根(CRTM)扩展到统一可扩 展固件接口 (UEFI)平台初始化(PI)映象授权和引导管理器中。背景信息存在用于安全引导的各种机制。统一可扩展固件接口 (UEFI)规范定义 了一种用于操作系统与平台固件之间的新接口模型。该接口由包含平台相关信 息的数据表加上可用于操作系统及其加载程序的引导和运行时间服务调用组 成。它们一起提供用于引导操作系统和运行预引导应用的标准环境。可在公共 因特网上的URL www*uefi*org/home处找到有关UEFI的更多信息。请注意, 在本文档中用星号代替句点以防止因疏忽造成的超链接。UEFI标准可用于协 助平台的安全引导。UEFI规范2.1的第26章描述安全引导协议。所定义的协议提供特定的设 备路径来访问通用的认证信息。可在任何设备处理上使用该协议用于获得与物 理或逻辑设备相关联的信息。公钥和证书可保留在固件上并检査第三方(U)EFI 驱动程序和操作系统(OS)加载程序的数字签名。将公钥绑定到平台已经是一 个布署问题。安全性仅和平台安全存储公钥的程度相同(即可怕的"密钥管理问题")。在引导时撤消公钥或证书是不可能的,因为早期的引导环境不能访 问网络并从服务器查明证书撤消列表(CRL)。仿造的加载程序可被插入到平 台中以绕开安全性。因而,这种安全引导的方法在引导时仍易受到攻击。移动设备以及更明确的移动因特网设备(MID)已经变得普遍使用。存在用于引导移动设备的各种机制,它们可能与用于引导台式或膝上型系统的方法不同。在台式和服务器平台中,可信平台模块(TPM)组件可用于协助安全引 导,该TPM是一种由可信计算组(TCG)提供文档的芯片类型,其最新批准 的变体是1.2版本。当这些类型的平台与诸如AMD公司的Presidio及其SKINIT 指令或英特尔公司的使用SENTER指令的可信执行技术(TXT)(即aka LaGrande技术)之类的处理器/芯片组技术结合时,TPM可用于保护固件在这 些类型的平台上的引导。然而,MID处理器不支持可信执行技术(TXT)或 TCG1.2TPM,因此要求固件的"安全引导"和平台中的可信根作为操作系统 (OS)自举的一部分。需要在操作系统开始之前保护MID上的固件引导以增 加安全性。因为诸如音乐和其它多媒体之类的高价值的内容可在MID系统上 使用,需要内容供应商所要求的更强保护,所以这尤其正确。附图简述本发明的特征和优点将通过本发明下面的详细描述及附图而变得显而易 见,这些附图是

图1是例示用于确保在使用签名技术的系统中引导和系统完整性的签名 密钥的分层结构的框图;图2是例示根据本发明实施例当平台所有者取得所有权并借助于安全性 处理器产生平台凭证时的流程的图;图3是例示根据本发明实施例用于取得所有权并登记平台凭证的方法的 流程图;图4例示用于实现本发明实施例的示例性C代码; 图5是例示根据本发明实施例的证书数据库的示例性结构的框图; 图6是例示根据本发明实施例的平台所有者登记第三方认证凭证的方法 的流程图;图7是例示根据本发明实施例的平台所有者登记数字签名的方法的流程图;图8是例示根据本发明实施例用于授权UEFI可执行程序的示例性方法的 流程图;图9是例示根据本发明实施例具有主处理器元件和安全性处理芯片组的 平台的框图;以及图10是根据本发明实施例具有嵌入式安全性处理器的示例性密码单元的 框图。详细描述本发明实施例是与移动设备有关的系统和方法。为了说明,相关于移动因 特网设备(MID)描述本发明实施例。然而应当理解,本发明实施例可应用于 蜂窝电话、便携式MP3播放器、个人数字助理(PDA)或其它没有因特网访 问的移动设备。本发明的实施例增加了平台所有者或管理员确保仅以所有者授 权的方式执行固件的能力,诸如利用签名组件。实施例可通过使用移动设备中 的密码协处理器作为存储可信根(RTS)存储根密钥(SRK)来将核心度量可 信根(CRTM)扩展到统一可扩展固件接口 (UEFI)平台初始化(PI)映象授 权和引导管理器中。在本说明书对本发明"一个实施例"或"一实施例"的引用指结合该实施 例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因而,出 现整个说明书中各处的短语"在一个实施例中"不一定全都指同一实施例。为了说明的目的,阐述了特定配置和细节以便提供对本发明的彻底理解。 然而,对于本领域技术人员显而易见的是,本发明实施例可在没有本文提供的 特定细节的情况下实践。而且,省略或简化了众所周知的特征以便不掩盖本发 明。在本描述中给出了各种示例。这些仅仅是本发明特定实施例的描述。本发 明的范围不受限于给出的示例。本发明的实施例采用不透明的"OEM引导模块"并应用基于平台初始化 (PI)的固件的UEFI安全引导和基于策略的分派,以实现安全性解决方案且 支持出售MID的初始设备制造商(OEM)和初始设计制造商(ODM)。明确地,该技术涉及安全引导平台驱动程序、第三方选项ROM (O-ROM)和OS 加载程序,诸如Winload.efi (用于微软Windows )和eLilo.efi (用于Linux)。 eLilo是用于基于EFI的PC硬件的标准Linux引导加载程序。本实施例消除了 在平台所有者必须在调用经认证的各种服务之前签名有效载荷时暴露私钥的 危险。本实施例还补充了单点登录(Single Sign-On, SSO)情景和一触开通 服务(l-touchprovisioning)。例如,平台所有者可用同一授权数据取得OS和OS 前阶段两者的所有权。本发明的实施例使用MID上的安全性处理器来管理签名私钥。这允许带 有安全性处理器策略引擎的UEFI安全引导无缝地集成到可管理性和服务提供 的基础结构中。参考图9,示出了例示具有主或主机处理器元件910和安全性处理芯片组 930的平台900的框图。在本发明的实施例中,平台900具有主运行时间环境 910,其中主处理器911需要安全OS引导来保护不受恶意软件侵害。处理器 911以通信方式耦合至系统存储器905。安全性处理器芯片组单元930可具有 安全性引擎或处理器931、系统控制器(ARC) 933 (它在加载x86固件之前 完成某些平台初始化)和专用只读存储器(ROM) 935。 ROM可用于进一步 保护代码和数据以确保安全引导;当它是只读时,代码和数据可不被恶意篡改 改变。闪存920耦合至安全性处理器,并且保存用于引导主处理器911的引导 软件映象921。重要的是确认要加载到主处理器911上的引导软件映象是授权 的且无恶意软件。在一实施例中,验证过的引导可使用安全性芯片组930来实现。安全性引 擎931配置为实现密钥和签名过程,如下所述。由于安全性处理器931是一个 专用设备,不能被主处理器911访问,所以保护安全性引擎不受到篡改。安全 性引擎配置为在允许主处理器引导之前确认主处理器的引导ROM。在现有系 统中,例如基于英特尔⑧CoreTM2Duo的个人计算机(PC),主处理器只是在 无确认的情况下自动地将引导控制传递给在闪存部分——即弓I导ROM——中 任何一切。在一些台式、膝上型或其它全性能PC中,TXT技术可介入以确认 引导ROM和后续的处理。平台进入安全状态晚于进入开始过程;明确地,由 SENTER指令开始的TXT微代码将同步平台上的所有处理器并且允许测量开始环境(MLE)独立于在它之前运行的所有软件,包括选项ROM的软件和平 台BIOS。然而,TXT处理在MID和其它低成本平台上不可用。在实施例中, 可将安全性处理器增加到MID上以确认引导ROM,作为其它系统中的TXT 的替换。然而,在具有安全处理器的MID的实施例中,仅OEM引导模块能够
被验证。
OEM引导模块951本质上是UEFI固件。安全性处理器930确认OEM引 导模块951。 一旦确认,安全性处理器930将OEM引导模块951复制至主处 理器911的SRAM905。 OEM引导模块可包含预EFI初始化(PEI)和驱动程 序执行环境(DXE)。要求这些阶段在开始操作系统(OS)之前运行。在一 些系统中, 一旦执行OEM引导模块,就从PEI阶段开始OS加载程序953。 OS加载程序953开始可信OS 955。然而OS的信任在这些系统中是假设的, 而非真正验证过。除了仅验证OEM引导模块951之外,允许本发明实施例确 认OS加载程序和其它EFI模块。这提供存储多个签名OS实例并验证签名应 用的能力。
应当理解,在现有的MID系统中,引导模块、OS加载程序和OS代码可 存储为一个可执行映象。在MID上实现UEFI架构允许分离引导和操作系统加 载的每个阶段的映象。本发明实施例利用UEFI架构构造,因此每个单独的映 象具有其自己的数字签名,并且可独立地验证。在需要时,这还允许各个单独
组件被更新或改变。
在一些实施例中,可能需要提供在MID中引导替换的操作系统的能力。 例如,对于蜂窝电话用户更为方便的是,如果多个操作系统已经加载到电话上, 或者能够远程加载并适当授权,则可改变同一智能电话上对不同蜂窝载体的预 订。在该情形中,用户所需要的是,请求从一个新载体重新引导并且用其定制 软件使该载体重新引导MID (智能电话)而非强迫用户购买新电话。还可能需 要的是,基于设备中较佳的应用引导不同的操作系统,即使在处于同一载体的 时候。然而,重要的是,要对新的操作系统开始进行确认和授权。将理解的是, 即使为说明的目的参考了移动因特网设备,但可选择性地在移动设备上安装其 它应用,诸如照相机能力或音乐存储和播放,但不要求因特网访问来实现本发 明。当MID使用UEFI架构时,替换的操作系统可使用UEFI OS加载程序, UEFI固件可与安全性处理器通信并且在非易失性存储器中存储用于签名EFI 驱动程序和加载程序的认证变量和证书;认证变量可以存储在安全性处理器的 非易失性存储器中和/或平台闪存的安全区中并且由安全性处理器的RSA引擎 签名。安全性处理器可保证驱动程序执行环境(DXE)和预EFI初始化环境 (PEI)代码是正确且未损坏的。DXE阶段随后可使用安全性处理器的能力来 管理用于UEFI安全引导的凭证和证书。
安全性处理器具有其自己的存储器存储,它是主处理器不能访问的。密钥 和证书可安全地存储在安全性处理器存储中,没有被在主处理器上执行的恶意 代码篡改的危险。在另一个实施例中,密钥和证书可存储在主机处理器闪存的 安全区中,它是主机处理器不可访问的。该划分可由平台芯片组支持的,并且 只允许安全性处理器访问。
为了验证OEM弓I导模块, 一般OEM将公钥存储在MID的芯片组上。OEM 引导模块被签名并可用公钥来检査它。当安全性处理器验证了经签名的模块 时,芯片组将该模块发布给主处理器以开始引导。
所需要的是,维护安全多媒体栈961、可安全管理性栈963 (即媒体播放 器软件诸如来自RealNetworks公司的Helix)并且验证要在MID上执行的各种 应用之中的签名应用965;如果预引导环境不是可信的,则平台不能对这些应 用建立信任,直至并包括OS加载程序。除了OEM引导模块之外,本发明的 实施例确保这些应用得到验证。因而,本发明的实施例确保在MID主处理器 上执行的所有模块已经使用密钥和签名技术进行验证和认证,其中密钥是由安 全性处理器管理的。
现在参考图10,示出根据本发明实施例具有嵌入式安全性处理器的密码 单元。密码单元1000具有嵌入式安全性处理器931。安全性处理器931可通信 地耦合至ROM 935和系统RAM 937两者。密码单元1000还可包含安全调试 管理器1010。安全调试管理器可耦合至联合测试行为组织(JTAG)标准测试 接入端口 1011和用于使用边界扫描测试印刷电路板的测试接入端口的边界扫 描体系架构。密码核心1020 —般是固定功能的硬件,它可耦合至环形振荡器 1021。密码单元1000具有其自己的时钟1030和电源1040。时钟1030可由外部时钟1031驱动或与其同步。密码核心1020可加速由RSA算法或其它用于 签名和验证的不对称和对称密码学算法所使用的模算术。由于使用X86处理器 完成这些功能的成本,通常针对MID系统将固定功能硬件用于密码,其中成 本是按价格、尺寸、效率和功率要求来度量的。密码单元1000的电源可由外 部电源1041和复位1043单元来驱动或复位的。密码单元1000可具有非易失 性存储器(NVM)管理器1050来控制非易失性存储器(NVM)单元1051。
密码单元1000可具有与高级高性能总线(AHB)主模块和高级外设总线 (APB)从模块的系统接口 1070。 AHB互连于智能安全性处理器与主机之间。 AHB可以保持若干未完成的命令。这些命令中的一些诸如密码操作可发送到 APB以便在固定功能硬件中处理它们。让固定功能硬件处理密码是重要的,因 为用于密码的特制电路的每秒数百万指令(MIPS) /瓦特效率比在通用处理器 上处理密码要高得多。
在一实施例中,用于确保UEFI引导得到验证和认证的证书可存储在安全 性处理器可访问的非易失性存储器1051中。诸如遵循x509v2标准的证书之类 的证书各自存储n元组的信息。该信息可包括公钥、证书有效的日期/时间以及 来自某个可信第三方(TTP)诸如Verisign或OS销售商的证书签名。如此, 公钥1053可存储在密码单元1000的芯片组NVM 1051中以协助验证。用于认 证引导的过程将在下面进一步讨论。在实施例中,所使用的证书签名和密钥技 术与在使用签名密钥的现有系统中所使用的相似。然而,现有方法不能直接用 在无篡改危险的MID主处理器上。
图1例示用于确保在当前使用签名技术的系统中的引导和系统完整性的 签名密钥的分层结构。该签名分层结构是具有根和叶的规范存储。由虚线作为 轮廓线的密钥可驻留在写保护存储中。在本发明的实施例中,该保护存储可由 安全性设备访问,但不能由主处理器或设备操作系统访问。在示例性UEFI实 施例中,PV-OO、 PV-Ol、 PV-30禾卩PV-31 (101a-d)表示用于保护UEFI受保 护变量的密钥。这些受保护变量(PV)指向签名的UEFI加载程序和驱动程序。 KeK0pub, KeK,b, KeK,b和KeK3pub (103a-d)表示密码核心存储的公钥。UEFI 固件通过发送到密码核心的命令使用公钥103来检查嵌入在UEFI驱动程序和 加载程序中的数字签名以查看签名是否正确。 一些密钥可不对应于受保护变量。每个操作系统加载程序一般具有其自己的密钥。例如,平台可具有
Windows 加载程序和Linux加载程序两者。两者都需要被保护。每个加载程
序将具有其自己的公钥。每个os销售商一般将数字签名它们的加载程序产品。
平台密钥(PK)是平台所有者——诸如公司信息技术(IT)部门——给予平台 的密钥。平台使用PK来加密/签名所有其它密钥。例如,来自OS销售商或独 立硬件销售商(IHV)的密钥KEK 103是用PK 105来加密的。换言之,平台 固件使用PK来保护KEK的安全。
平台—管理员一r 107表示系统或平台的管理员或IT专业人员。该管理员一 般开启密钥/签名/加密功能,并且安装PK105。在一些系统中,平台管理员107 可在管理控制台处并且通过网络诸如通过英特尔主动管理技术(iAMT)连网 发送命令至UEFI机器来远程地安装和启动引导功能。对于蜂窝电话MID系统, 平台管理员可通过无线蜂窝通信或者通过因特网连接,采用至管理控制台的可 信信道(诸如TLS/SSL)或者使用其它技术诸如OMA( OpenMobileAlliance.org) 协议来开启密钥/签名。
远程服务器IIO可在活动目录111中保存诸如平台密钥113a或OS加载 程序密钥113b之类的公钥和证书和撤消列表。活动目录111是企业注册表。
该注册表可保存有关所管理的平台的信息。良好/有效的密钥列表可存储在活动 目录lll中。在其它系统中,可管理性引擎(ME)或英特尔主动管理技术(iAMT)
设备访问远程服务器110上的活动目录111来确定密钥是有效的还是已经被撤 消。在替换方案中,ME可访问其它远程服务器或者网络例如通过公共因特网 来检索良好或撤消的密钥列表。在本发明的实施例中,安全性处理器用于管理 密钥和证书。尽管证书列表可存储在安全性处理器可访问而主处理器不可访问 的非易失性存储器(NVM)中,但证书可用与上面所述的相同方式通过因特 网访问在运行时间中更新或撤消,或者通过平台管理员将新的证书集合通过无 线通信路径推压到MID来更新或撤消。
在实施例中,安全性处理器是MID上有源硬件片。UEFI安全引导增加用 于强制确认的可信根(RTE/RTV),尽管它支持"安全引导"。事实上,如果 软件状态不满足某种完整性度量诸如白名单中的散列或数字签名,则RTE和 "安全引导"可使引导中止。UEFI允许这两种情形但提倡后者,因为可能的散列列表是无限的,这会是一个管理恶梦;公钥允许一个间接的层来将密钥映 射到少量可信源,因而减轻了与布署相关联的管理问题。
本发明实施例所解决的问题包括(l)拥有单一策略机制来管理第三方 UEFI驱动程序、应用和OS加载程序的证明;以及(2)—旦平台所有者在OS前 或OS中取得系统所有权,就授权第三方UEFI驱动程序、应用和OS加载程序执行。
安全性处理器允许平台所有者、平台固件和第三方(即OSV、 OEM等) 之间的信任关系。可使用两种类型描述信任关系的凭证。首先,可使用平台凭 证来建立平台所有者与固件之间的信任关系。平台所有者创建平台凭证作为包 含不对称密钥对的根凭证,它用于取得所有权并登记所有其它凭证。其次,第 三方凭证可建立第三方销售商与固件之间的信任关系。平台所有者可登记可信 第三方销售商的凭证,它们可用于授权第三方可执行程序的执行。这种凭证可 包含销售商产生的公钥和销售商专用信息两者。
由于平台凭证包含公钥并且用于登记第三方凭证,因此本地机器要求明确 的私钥操纵(即签名有效负荷)。在MID中,难以像在台式系统或其它现有 系统中那样处理这两个问题。因而,本发明的实施例提供一种创新方法,它使 用安全性处理器作为存储的可信根(RTS)来产生平台凭证并且关于第一个问 题安全地存储私钥。对于后一问题,实施例使用安全性处理器在内部执行签名 操作,这将不暴露任何私钥。
在一实施例中,从平台所有者的角度定义两个操作模式建立(SETUP) 模式和用户(USER)模式。在后一模式中强制实施安全性策略。明确地,建立的 情况是,机器开放着以获得被提供的证书,而用户模式的情况是,UEFI固件 将变成验证可信根(RTV)并且仅调用经数字签名的且相关联的验证公钥在安 装在MID设备上的证书中的UEFI OS加载程序或驱动程序。
图2例示在平台所有者取得所有权并且借助于安全性处理器产生平台凭 证的流程。图2演示了示例性实现。建立模式201取得所有权并且登记平台凭 证,将控制传递给用户模式203。用户模式203登记第三方凭证。用户模式203 还放弃所有权还给建立模式201。
这后一操作可在MID系统已经受到恶意软件攻击且UEFI固件不再引导机器时发生,因而让机器保持着像制门器一样的用途。自然响应用于设备所有 者将它送回载体/厂商。回到工厂里,特定的硬件标记/刺激/或某种其它机制可 用于将机器从用户模式转移回建立模式以便重新提供凭证和/或软件加载到机 器上。
图3是例示根据本发明实施例取得所有权并且登记平台凭证的方法的流 程图。它例示一种产生或更新设备上的证书数据库的可能方法。在蜂窝电话情
形中的平台管理员310可以是蜂窝电话公司,它在框301确定所有权安装是否 必要。如果是,则管理员可在框303断言物理存在(physicalpresence)。这通常 在设备离开管理员的控制之前在制造期间完成。在一些实施例中,可使用带外 (out-of-band)存在而非物理存在来登记凭证。可发送SecProcForceClear命令到 安全性处理器以清除所有权。随后在框305用秘密的平台密钥(PK)清除所有 者。在安全性处理器上进入建立模式。当所有者已经安装并且在清除所有权之 后并进入建立模式时,可在框307设置管理口令。现在可在框309创建密钥对 作为平台凭证的一部分。在框311可产生密钥对340,具有平台公钥PKpub、 作为平台私钥(PKpri)的函数的加密操作(ESRK)。术语五^W尸^pJ表示在平 台私钥上的加密操作。在从不离开安全性处理器的私钥(尸《,)上的加密操作 因而解决了一个公钥密码学问题,即如果有人得到你的私钥,他们就拥有了机 器。安全性处理器代理在私钥上的这些操作,使得x86 UEFI代码从来不必处 理私钥本身。密钥对可存储在非易失性存储330中。可在安全性处理器320中 执行SecProcCreateKey命令以产生密钥对。 一旦创建了密钥对,安全性处理器 就进入用户模式。在框313中可登记其它凭证。
图4例示用于实现本发明实施例的示例性C代码。在允许加载和开始每 个映象之前,必须认证每个映象。在实施例中,UEFI映象通常是便携可执行 程序和共同目标文件格式(PE/COFF)可执行程序映象。每个PE/COFF映象 具有称为安全性目录的部分。安全性目录包含映象的数字签名和相关联的公 钥。PE/COFF映象的散列和相关联的公钥可传递给安全性处理器以确认映象。 安全性处理器可从证书数据库检索适当的证书并且使用芯片组上的密码硬件 功能来验证映象。参考图4,对于每个UEFI映象,执行函数 AuthenticatelmageW他SecProc() 401并且作出有关是否已经返回安全性违反(EFI—SECURITY—VIOLATION)的判断403 。如果是,则执行下一个映象
(NextImage()) 405函数来认证下一个映象。如果认证了引导或固件的映象, 则通过执行Launchlmage()函数407来开始它。用安全性处理器对映象进行认 证(AuthenticatelmageWithSecProc()) 401包括确定映象凭证(Image—Credential) 是否在第三方证书数据库409内以及映象凭证是否由第三方认证证书数据库 411验证过。如果是,则函数返回成功413。如果这些检査中任一失败,则函 数返回安全性违反(EFI_SECURITY—VIOLATION) 415。
这些凭证可存储为UEFIEFI证书数据库 (EFI—CERTIFICATE—DATABASE)类型440,后者存储在持久或非易失性的 存储中。本发明的实施例还可用于授权网络加载的预引导执行环境(PXE)映 象。安全性处理器可用所提供的NVM和认证访问来保护该存储的安全。
应当理解,各种操作系统和加载程序可使用不同的格式,即不总是 PE/COFF。安全性处理器可配置为接受所有允许的操作系统的格式。无论什么 格式,映象将包含与安全性处理器可访问的而设备上的主处理器不可访问的证 书数据库匹配的数字签名和公钥。
可用于证书数据库的数据结构的示例也在图4中示出。 EFI—CERTIFICATE—DATABASE 440可包含数据库大小、证书列表计数和证书 列表数据。证书列表(EFI_CERTIFICATE—LIST)数据结构450可包含证书列 表大小、证书计数、证书类型、证书头部大小、证书头部和证书。证书数据结 构可包含标识符和数据。标识符可以是全局唯一标识符(GUID)。证书数据 (EFI_CERTIFICATE—DATA)460可以是具有GUID和任何大小的文本字段的结 构。
图5更直观地例示根据本发明实施例的UEFI证书数据库500的结构。在 左边示出数据库的一般结构,它具有头部501和三个证书列表503a-c。在右边 示出证书列表510,它具有列表大小511、证书计数513、类型515、头部大小 517、证书大小519、证书头部520和具有标识符521a-n和数据523a-n的各个 证书530。
图6是例示根据本发明实施例平台所有者登记第三方认证凭证的方法的 流程图。该登记可用于相关联的第三方可执行程序集合的单一授权执行,例如用于认证由OEM提供的所有UEFI驱动程序的凭证。在框601,平台管理员 310开始检査以确定平台密钥(PK)是否已经产生。在框603通常要求口令询 问来认证管理员。在框605,管理员授权签名第三方凭证。该签名可开始在安 全性处理器320中执行创建密钥(SecProcCreateKey)、签名(SecProcSign)和卸 载密钥(SecProcUnloadKey)函数。合适的存储根密钥(ESRK) 640操作由安全性 处理器从非易失性存储330返回。随后在框607登记第三方凭证,并且在609 在数据库中登记签名;明确地,签名的登记是让证书连同其公钥存储在防篡改 的位置中,或者保存可执行程序的散列供在后续的映象验证中使用。
图7是例示根据本发明实施例平台所有者登记签名的方法的流程图。该登 记可用于与其它可执行程序无关地授权可执行程序的执行。在框701,平台管 理员301开始签名的登记。在框703,使用Security_Arch_Protocol (安全性架 构协议)认证签名。如果认证成功,如在框705确定的,则在框709可对管理 员实行口令询问。如果认证未成功,则在框707使用平台销售商专用的策略作 出有关是否无论如何应当添加签名的判断。如果否,则在框740在未完成的情 况下退出登记。如果无论如何要添加签名,则处理继续在框709进行口令询问。 一旦管理员输入了正确的口令,则在框711由安全性处理器320加载密钥 (SecProcLoadKey)、签名(SecProcSign)且随后卸载密钥(SecProcUnloadKey)。 随后在框713,通过设置变量(SetVariable函数)在NVM 330登记签名。过 程在框760完成。这是执行管理动作来添加其它签名至数据库的过程。这在设 备所有者希望开始新的操作系统加载程序或应用(其证书未在设备制造期间登 记)时发生。
图8是例示根据本发明实施例授权UEFI可执行程序的示例性方法的流程 图。在框801上电或复位MID。在框803存储初始密钥;这可以是工厂提供的 NVM/数据库。在框805如上所述,安全性处理器通过相对于公钥检查签名来 确定UEFI确认是否已经成功。如果确认失败,则在框809确定是否授权UEFI 可执行程序。被授权的应用是签名的应用,在平台中具有相关联的验证公钥, 并且UEFI映象中的数字签名通过验证测试。可稍后执行确认动作,例如在框 823,其中映象可能还没有在数据库中,但在OS运行时间期间,OS可与远程 权威通信并查询映象的状态或者査询用户以确定用户下次是否希望登记/运行该映象)。
如果UEFI可执行程序未授权,则在框813中可尝试下一个引导选项。在
一些情形中,该引导选项可以是完全失败的设备引导。在其它情形中,引导选
项可引导管理模式OS或者某种减少功能的0S。在框813尝试下一个引导选 项的情况下,引导可推迟直至在框815平台管理员将UEFI签名添加到系统配置表。
当确认成功时,随后在框807可启动UEFI可执行程序。当确认失败但准 予授权时,可在框807启动可执行程序之前,在框811将UEFI可执行程序签 名保存到数据库830。
一旦在框821中已经开始OS,则可在框823作出有关OS应用是否由UEFI 可执行程序确认的确定。如果否,则进程在框850结束。如果确认了,则在框 825更新UEFI可执行程序签名数据库且进程在850结束。
移动因特网设备架构可故意避开"PC兼容性"以便更紧密地将蜂窝市场 作为目标。这样做,他们省略/失去某些带内(in-band)处理器可信平台技术,诸 如类似SENTER的TXT GETSEC指令。代之以MID架构可选择专用集成的安 全性处理器,如上所述。这样做,MID与"OEM弓I导模块"有环境系统(eco-system) 缺口要填。该"缺口"是因为BIOS销售商习惯于构建用于PC/AT平台的引导 代码。通过与PC/AT分离,传统BIOS将不再在MID上工作。用于早期初始 化的UEFI平台初始化(PI)代码和用于OS加载的UEFI接口的模块化平台无 关设计在这里是有利的。可以将UEFI和PI代码的目标改为用于这个非传统(即 非PC/AT)平台。通过UEFI可添加更多的形式并且还使用UEFI安全引导的 所引入的安全性来联合安全性处理器一起亲密工作以将制造商信任保持到运 行时间环境中。明确地,可教导安全性处理器来理解签名的UEFIPI固件巻, 并且在DXE中的UEFI实现使用安全性处理器来存储证书(连同用于映象验证 的公钥)并认证(即运行类似SHA的单向散列功能和类似RSA的数字签名算 法)UEFIOS加载程序和驱动程序。
本发明的实施例使用安全性处理器作为存储可信根(RTS)来执行密钥管 理,诸如密钥产生和存储以及一些密码操作如有效负荷签名,而没有暴露私钥 的危险,如上所述。在现有系统中,使用认证变量必须让某种带内代码签名认证变量的Authlnfo(作者信息)字段,这在没有屏蔽位置时是危险的。安全性处 理器允许屏蔽位置并在平台本身签名认证变量;这与签名必须在脱离机器的远
程签名服务器上发生的一些方案形成对照。这后一种脱离机器的签名是不方便 的,因为这随后就必须每当更新或管理动作发生时就要将移动设备与远程服务 器同步。
本发明的实施例还通过以自顶向下方式布署不同的凭证来建立凭证分层 结构,换言之,从平台凭证到第三方认证凭证和第三方可执行程序凭证。这消 除了对单一凭证的依赖并且还区分凭证发行者。而且,本发明的实施例补充了
单点登录场景。例如,平台所有者可用相同的授权数据在OS和OS前两个阶 段中取得所有权。
另外,使用安全性处理器的本发明实施例可禁止未授权代码的执行以避免 运行恶意软件引起的损坏。
由于Itanium⑧平台和MID没有TXT或LT-SX,本发明实施例可用于确认 OS前可执行程序,包括OS加载程序,因此恶意软件不能利用OS前作为攻击
安全性处理器是供MID使用的基于硬件的安全性引擎,诸如用于数字权 利管理(DRM)、可信引导和安全存储。安全性处理器还为密码功能(对称、 PKI)、散列功能和证明提供硬件加速。安全性处理器解析DRM许可证/权利 对象(RO)(例如电影可以观看多久、歌曲可以播放多久等)并提取用于内 容解密的密钥,并且从不向系统存储器暴露密钥。安全性处理器还可使用从 DRM许可证/RO文件提取的密钥解密DRM内容。
本文描述的技术不限于任何特定的硬件或软件配置;它们可在任何计算、 消费电子产品或处理环境中发现应用性。这些技术可用硬件、软件或两者的组 合来实现。
对于仿真,程序代码可表示使用硬件描述语言或其它功能描述语言的硬 件,它实质上提供期望执行如何设计的硬件的模型。程序代码可以是汇编或机 器语言或者可编译的和/或解释的数据。此外,在本领域通常认为软件的一种或 另一种形式是采取动作或导致结果。这样的表达仅仅是陈述由处理系统开始对 程序代码的执行使处理器完成动作或产生结果的简略方式。每个程序可用用于与处理系统通信的高级过程或面向对象编程语言来实 现。然而需要的话,程序可以用汇编或机器语言来实现。在任一情况下,语言 可以是编译的或者是解释的。
程序指令可用于使得用这些指令编程的通用或专用处理系统完成本文描 述的操作。可替换地,这些操作可由包含用于执行这些操作的硬连线逻辑的特 定硬件组件来完成,或者由编程的计算机组件和定制的硬件组件的任何组合来 完成。本文描述的方法可作为计算机程序产品提供,其中可包括其上存储着用 于编程处理系统或其它电子设备执行这些方法的指令的机器可访问介质。
例如,程序代码或指令可存储在易失性和/或非易失性存储器中,诸如存 储设备和/或相关联的机器可读或机器可访问介质,其中包括固态存储器、硬驱 动器、软盘、光存储、带、闪存、存储棒、数字视频盘、数字通用盘(DVD) 等等,以及更不寻常的介质如机器可访问生物学状态保存存储。机器可读介质 可包括用于存储、发送或接收机器可读形式的信息的任何机制,并且介质可包 括有形介质诸如天线、光纤、通信接口等,编码了程序代码的电、光、声音或 其它形式的传播信号或载波可通过这些有形介质。程序代码可以分组、串行数 据、并行数据、传播信号等形式发送,并且可以用压縮或加密的格式来使用。
程序代码可实现为在可编程机器上执行的程序,可编程机器诸如移动或固
定计算机、个人数字助理、蜂窝电话和寻呼机、消费电子设备(包括DVD播
放器、个人录像机、个人视频播放器、卫星接收器、立体声接收器、有线电视 接收器)和其它电子设备,上述设备各自包括处理器、处理器可读的易失性和 /或非易失性存储器、至少一个输入设备和/或一或多个输出设备。程序代码可 应用于使用输入设备输入的数据,以执行所述实施例并产生输出信息。输出信 息可应用于一或多个输出设备。本领域技术人员可了解到,所揭示的主题的实 施例可由各种计算机系统配置来实践,包括多处理器或多核处理系统、小型计 算机以及可嵌入到实质上任何设备中的遍布或微型的计算机或处理器。所揭示 的主题的实施例还可在分布式计算环境中实践,其中其任务或部分任务可由通 过通信网络链接的远程处理设备来执行。
尽管作为有顺序的过程描述了操作,但一些操作实际上可并行地、同时和 /或在分布式环境中执行,并且存储在本地和/或远程的程序代码可由单一或多个处理器机器访问。另外,在一些实施例中,操作的顺序在不脱离所揭示的主 题的精神的情况下可重新排列。程序代码可由嵌入式控制器使用,或者结合嵌 入式控制器使用。
尽管已经参考例示实施例描述了本发明,但该描述不旨在以限制意义来解 释。例示实施例以及本发明的其它实施例的各种修改方案,对于本发明所属领 域的技术人员是显然的,并且应当落在本发明的精神和范围之内。
权利要求
1.一种用于在移动平台上安全引导的系统,包括配置为执行主机操作系统和主机应用的主机处理器;用于引导所述主机处理器的固件,所述固件配置为在引导期间使用一或多个签名密钥,每个签名密钥关联于要在引导期间加载到所述平台上的软件映象;以及在所述平台上的安全性处理器,所述安全性处理器以通信方式耦合至安全存储器存储,所述安全存储器存储对于所述固件和其它主机处理器应用是不可访问的;所述安全性处理器配置为管理所述一或多个签名密钥以在引导期间控制映象加载。
2. 如权利要求1所述的系统,其特征在于,所述安全存储器存储驻留在耦 合到所述安全性处理器的非易失性存储器(NVM)存储中。
3. 如权利要求1所述的系统,其特征在于,所述安全性处理器驻留在耦合 至密码核心的芯片组中,所述密码核心配置为协助验证数字签名。
4. 如权利要求3所述的系统,其特征在于,还包括 耦合至所述平台上的芯片组的公钥;以及存储在所述安全存储器存储中的证书数据库,其中所述证书数据库包括多 个证书,其中每个证书对应于多个能够由所述主机处理器执行的软件映象之 一,以及其中所述安全性处理器配置为针对所述证书数据库中所述相应的证书和嵌入在所述软件映象中的数字签名验证要加载到所述主机处理器上的每个 软件映象,所述验证使用耦合至所述芯片组的所述公钥。
5. 如权利要求4所述的系统,其特征在于,还包括 用于由平台管理员取得所述移动平台的所有权的装置;以及 用于在所述证书数据库中登记凭证的装置,其中凭证包括平台凭证和第三方凭证中的至少一个。
6. 如权利要求4所述的系统,其特征在于,所述软件映象兼容于统一可扩 展固件接口 (UEFI)架构。
7. 如权利要求1所述的系统,其特征在于,如果关联于所述软件映象的所述签名密钥未能确认,则所述固件将不加载或开始所述软件映象。
8. 如权利要求7所述的系统,其特征在于,确认失败是证书期满、证书缺 失或证书撤消中的至少之一。
9. 如权利要求1所述的系统,其特征在于,签名密钥包括平台密钥、受保 护变量密钥或公钥中的至少之一。
10. 如权利要求9所述的系统,其特征在于,所述一或多个签名密钥包括签名密钥的分层结构,其中较高层的密钥保护较低层的密钥。
11. 如权利要求10所述的系统,其特征在于,所述平台密钥的层次比受保护变量密钥高,受保护变量密钥的层次比公钥高,其中公钥与要在引导期间加 载的每个软件映象相关联。
12. 如权利要求1所述的系统,其特征在于,所述系统具有配置为允许远 程平台管理员更新耦合至所述安全性处理器的证书数据库的无线通信能力。
13. —种用于在移动平台上安全引导的方法,包括 开始在所述平台上的主机处理器的安全引导;由所述平台上的安全性处理器确定引导模块是否被数字签名并被授权加 载到所述主机处理器上;当所述引导模块被数字签名并且被授权时,则在所述主机处理器上加载并 执行所述引导模块,并且由所述安全性处理器确定在所述引导模块被授权在所 述主机处理器上加载之后是否要加载多个软件映象,以及在所述多个软件映象 之一被授权时在所述主机处理器加载所述多个软件映象之一用于执行;以及当所述数字签名的引导模块未被授权时,则执行平台管理员授权所述引导 映象或者不能引导所述平台这两者的至少之一,以及当多个软件映象之一未被 授权时,则不能在所述主机处理器上加载所述多个软件映象之一。
14. 如权利要求13所述的方法,其特征在于,所述安全性处理器具有无线 通信能力,所述方法还包括由所述安全性处理器通过与具有有关凭证的信息的 远程管理员无线通信来管理凭证,所述凭证存储在可由所述安全性处理器访问 的非易失性存储器中的证书数据库中,所述非易失性存储器对于所述主机处理 器是不可访问的。
15. 如权利要求13所述的方法,其特征在于,确定引导模块是否被数字签名并且是否被授权在所述主机处理器上加载还包括确定所述引导模块在所述证书数据库中是否具有映象凭证;以及 确定所述引导模块映象凭证针对所述证书数据库中的所述映象凭证是否得到验证。
16. 如权利要求15所述的方法,其特征在于,由所述安全性处理器确定在所述引导模块被授权在所述主机处理器上加载之后是否要加载多个软件映象包括确定所述软件映象的每一个是否具有在所述证书数据库中的相应的映象 凭证;以及确定所述软件映象凭证的每一个针对所述证书数据库中的所述映象凭证 是否得到验证。
17. 如权利要求13所述的方法,其特征在于,还包括由驻留在与所述安全性处理器相同的芯片组中的密码核心验证所述引导 模块和软件映象中的数字签名。
18. —种使用移动平台上的安全引导的装置,包括 用于开始所述平台上的主机处理器的安全引导的装置;用于由所述平台上的安全性处理器确定引导模块是否被数字签名并且被授权在所述主机处理器上加载的装置;当所述引导模块被数字签名和被授权时,用于在所述主机处理器上加载并 执行所述引导模块的装置,和用于由所述安全性处理器确定在所述引导模块被 授权在所述主机处理器上加载之后是否要加载多个软件映象的装置,以及用于 当所述多个软件映象之一被授权时,在所述主机处理器上加载所述多个软件映 象之一以供执行的装置;以及装置,用于当所述数字签名的引导模块未被授权时,有选择地执行由平台 管理员授权所述引导映象或者不能引导所述平台这两者至少之一以及当所述 多个软件映象之一未被授权时,则不能在所述主机处理器上加载所述多个软件 映象之一。
19. 如权利要求18所述的设备,其特征在于,所述安全性处理器具有无线 通信能力,还包括由所述安全性处理器通过与具有有关凭证的信息的远程管理员无线通信来管理证书数据库中的凭证的装置,所述证书数据库存储在所述安 全性处理器可访问的非易失性存储器中,所述非易失性存储器对于所述主机处 理器是不可访问的。
20. 如权利要求18所述的设备,其特征在于,确定引导模块是否被数字签名并且被授权在所述主机处理器上加载的装置还包括确定所述引导模块是否具有在所述证书数据库中的映象凭证的装置;以及确定所述引导模块映象凭证针对所述证书数据库中的所述映象凭证是否 得到验证的装置。
21. 如权利要求20所述的设备,其特征在于,由所述安全性处理器确定在 所述引导模块被授权在所述主机处理器上加载之后是否要加载多个软件映象 的装置还包括-确定所述软件映象的每一个是否具有在所述证书数据库中的相应的映象 凭证的装置;以及确定所述软件映象凭证的每一个针对所述证书数据库中的所述映象凭证 是否得到验证的装置。
22. 如权利要求18所述的装置,其特征在于,还包括 由驻留在与所述安全性处理器相同的芯片组上的密码核心验证所述引导模块和软件映象中的数字签名的装置。
全文摘要
本发明涉及在移动因特网设备上安全引导UEFI固件和UEFI感知操作系统的系统和方法,其中,在一些实施例中,本发明涉及增加平台所有者或管理员确保仅以所有者授权的方式执行固件的能力,诸如利用由安全性处理器所管理的签名组件。实施例通过在移动因特网设备(MID)中将耦合至安全性处理器的密码单元用作存储可信根(RTS)存储根密钥(SRK),将核心测量可信根(CRTM)扩展到统一可扩展固件接口(UEFI)平台初始化(PI)映象授权和引导管理器中。描述和要求保护其它实施例。
文档编号G06F21/00GK101630353SQ20091013955
公开日2010年1月20日 申请日期2009年6月30日 优先权日2008年6月30日
发明者M·A·罗斯曼, V·J·齐默 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1