CN106462708A - 认证变量的管理 - Google Patents

认证变量的管理 Download PDF

Info

Publication number
CN106462708A
CN106462708A CN201580028293.7A CN201580028293A CN106462708A CN 106462708 A CN106462708 A CN 106462708A CN 201580028293 A CN201580028293 A CN 201580028293A CN 106462708 A CN106462708 A CN 106462708A
Authority
CN
China
Prior art keywords
firmware
variable
stored
processor
key
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
CN201580028293.7A
Other languages
English (en)
Other versions
CN106462708B (zh
Inventor
V·J·齐默
N·J·亚当斯
G·P·姆督苏鲁
L·G·罗森鲍姆
M·A·罗斯曼
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
Priority to CN201910277013.6A priority Critical patent/CN109918919B/zh
Publication of CN106462708A publication Critical patent/CN106462708A/zh
Application granted granted Critical
Publication of CN106462708B publication Critical patent/CN106462708B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

实施例包括一种装置,所述装置包括:耦合至安全非易失性存储设备的带外密码处理器;以及其上存储有固件指令的至少一个存储介质,所述固件指令用于在运行时期间且在所述装置的操作系统已经引导之后使得所述密码处理器:(a)将密钥存储在所述安全非易失性存储设备内,(b)当所述密钥在所述密码处理器内时用所述密钥对对象进行签名以产生签名,并且(c)验证所述签名。在此对其他实施例进行描述。

Description

认证变量的管理
技术领域
实施例解决了可信计算。
背景技术
基本输入/输出系统(BIOS)软件是用于引导(即,执行引导操作,如加载并启动操作系统(OS)、测试硬件等)并在计算机系统中执行低层操作的低层软件。可以使用统一可扩展固件接口(UEFI)开源标准(例如,在www**uefi**org/specs/处可获得的UEFI规范版本2.4)实现BIOS(或模拟低层软件),所述开源标准是定义了操作系统(OS)和平台固件(持久性存储器与存储在所述持久性存储器中的程序代码和数据的组合)之间的软件接口的规范。UEFI包括被称为UEFI变量的成分,这些成分用于UEFI安全引导技术中。UEFI变量用于保存MRC(存储器参考代码)配置数据、PCH(平台控制中枢)配置数据、SA(系统代理)配置数据、密钥等。UEFI安全引导技术是标准化的(例如,UEFI2.3.1c规范),并且一些UEFI技术用开源安排(例如,edk2**sourceforge**net)来实现。
可信平台模块(TPM)是硬件设备,所述硬件设备是添加有密码功能的安全微控制器/密码处理器。它与用于防止对计算节点的未授权访问的支持软件和固件一起工作。TPM包含用于执行加密/解密的硬件引擎。在数字签名和密钥包装操作期间,TPM使用其内置的加密引擎。
尽管高级引导软件协议(例如,UEFI安全引导)和安全密码处理器(例如,TPM)可用,但是恶意软件等仍然对真正的可信计算造成了威胁。
附图说明
从所附权利要求书、对一个或多个示例实施例的以下详细说明、以及相应附图中,本发明实施例的特征和优点将变得显而易见,在附图中:
图1包括本发明关于使能/禁用安全区域(Secure Enclave)的实施例的过程。
图2包括本发明关于变量(UEFI变量)存储的反回退的实施例的过程。
图3包括本发明关于在多个OS之间进行安全切换的实施例的过程。
图4包括本发明用于当固件正试图访问安全密码处理器时避免OS与固件之间冲突的实施例的过程。
图5包括用于本发明实施例的系统。
具体实施方式
在以下说明中,提出了许多特定细节,但是可以在没有这些特定细节的情况下实践本发明的实施例。未详细示出公知的电路、结构和技术,以避免模糊对本说明书的理解。“一个实施例”、“各实施例”等指示这样描述的一个或多个实施例可以包括具体特征、结构、或特性,但并不是每个实施例必定包括这些具体特征、结构、或特性。某些实施例可具有针对其他实施例所描述的特征的一部分、全部、或不具有任何这些特征。“第一”、“第二”、“第三”等描述了共同对象并指示正提及的相似对象的不同实例。此类形容词并不暗示这样描述的对象在或者时间上、空间上、排名上、或以其他方式必须按照给定的顺序。
实施例提供了对密码处理器(例如,TPM 2.0)和密码处理器的签名服务的运行时访问,因此固件可以使用密码处理器创建在密码处理器内部的密钥,使用所述密钥对对象(例如,UEFI变量)进行签名,并且然后验证这个签名。这使能了至少三种使用情况。首先,使用情况包括使能/禁用可信执行环境的能力,比如但不限于:安全区域(有时称为软件防护扩展(SGX))、管理引擎(ME)等。第二,另一种使用情况包括变量回退保护。这通过将所述一个或多个变量以密码方式绑定(例如,使用密码散列)至密码处理器(例如,绑定至位于密码处理器内的安全存储器,从而使得当SMM中的UEFI代码无法担当内容的保护者或防护时,密码处理器在电力循环期间可以充当对正在被掺杂的SPI闪存的完整性检查),可以有助于制止对某些存储器区域(例如,存储在串行外围接口(SPI)闪存存储器中的UEFI变量)上的离线攻击。在美国专利号6,848,046(已转让给美国加利福尼亚州圣克拉拉市的英特尔公司)中可以找到关于SMM的UEFI/PI使用的更多信息。第三,又另一种使用情况包括在运行时期间访问密码处理器使得密码处理器操纵(例如,切换)变量的固件,所述固件在针对另一操作系统进行交换时使能/禁用一个操作系统(OS)(例如,在运行于单个平台上的两个OS之间切换)。这种实施例可以进一步包括在运行时期间访问密码处理器使得密码处理器为第一OS分配第一数量的存储器并为第二OS分配第二数量的存储器的固件。现在接下来是对关于各实施例的更加详细的讨论。
对由密码处理器签名的变量的运行时访问和/或操纵
上文提到了UEFI变量。UEFI变量易受恶意活动的影响。确切地,原始设备制造商(OEM)/独立BIOS销售商(IBV)将变量数据存储在闪存区域中并使用系统管理模式(SMM)维持变量数据的完整性(即,不存在保密性控制,因此任何人都可以读取,但只有可信实体可以写入)。从而,这些变量易受恶意活动影响,如“Shack攻击”,这是一种低预算硬件攻击,其中攻击者对设备进行物理访问,但没有足够的设备或专家在集成电路封装的内部进行攻击。这些攻击者试图使用JTAG调试、边界扫描I/O、和内置自测试设施连接至所述设备。他们可使用逻辑探头和网络分析仪来探听总线线路、引脚和系统信号来被动地监视所述系统。攻击者还可能能够进行简单的主动硬件攻击,如强迫引脚和总线线路处于高电压或低电压,对存储器设备进行重新编程,并用恶意替代物来代替硬件部件。其他威胁包括“ROMswipe”/“replacement”类型攻击等,如例如黄欣国(Bunnie Huang)的XBOX1攻击(例如,见http://***.uefidk.com/sites/default/files/resources/Platform_Security_Review_Intel_Cisco_White_Paper.pdf的第18页)中所描述的。
为了更好地保护这些变量,实施例通过使用密码处理器进行签名并验证那些变量或保持密码校验和(如TPM NVData中变量的SHA256散列)来将UEFI变量(和用于存储配置信息等的模拟容器或机制)以密码方式绑定至平台。这是可能的,因为例如TPM标准版本2.0支持平台层级结构,并且结果是,平台固件(如半导体集成代码(SIC))和OS都可以使用TPM,这与之前的TPM标准(例如,只有OS可以使用TPM的TPM标准1.2)的情况不同。结果是,(固件需要访问的)UEFI变量可以由TPM在运行时期间进行签名和/或由UEFI PI SMM代码进行散列,并且随后的散列值存储在TPM中(以便进行后续的与在重新引导时生成的散列进行比较,从而观察TPM中的值和从SPI闪存导出的值是否“相同”)。TPM还具有用于管理对已签名变量的访问/操纵的机制。例如,TPM具有较强的访问控制(例如,用于防止读取变量的读锁定以及用于防止向变量写入的写锁定)。从而,TPM可以例如对变量实现READ_LOCK保护(为了保密性)和WRITE_LOCK保护(为了完整性)。
如下面将进一步阐述的,实施例包括将私钥存储于TPM中。所述密钥可以用于对UEFI变量(或任何其他数据)进行签名。结果是,不需要保密性声明,并且只需要完整性保护。这提升了在目标平台上针对可信实体对数据进行安全签名的能力。在实施例中,可信实体是SMM。在这种实施例中,SMM(在运行时)与其他可以要求SMM作为其代表执行动作的实体建立信任。要注意的是,虽然在某些实施例中UEFI变量使用可能仅需要完整性保护,这种“签名”能力可以用于对变量存储进行“加密”,因此可以适当地为信息如用户密码或其他个人可标识信息(PII)阻挡不受信任的环0OS代码。
换言之,实现前述三种使用情况中的任何一种或全部的能力对于早期的TPM方案(如TPM规范版本1.2)是不可能的,因为一旦OS获得TPM的所有权固件就不能访问TPM。然而,TPM 2.0“平台层级结构”允许固件在运行时继续访问TPM 2.0资源,由此允许固件来对所存储的变量进行安全操纵,从而允许对安全区域的安全使能/禁用,防止回退,更好地实现双OS场景,和/或操纵任何其他引导或安全性关键的设置。
可以将固件用来在运行时期间(和/或在预引导操作期间)访问TPM/与其进行交互的指令设置在SIC或别处。所述固件可以包括如PEI(预EFI初始化)和DXE(驱动程序执行环境)指令等代码(例如,驱动程序)或者其他主机执行的固件部件。通过在安全密码处理器(如TPM)内对可能需要被SIC访问的各个成分(如UEFI变量)进行签名或对其进行散列并将相关散列存储在TPM中以便后续跨越预引导进行检测,可以对所述需要被SIC访问的各个部件进行完整性保护。UEFI规范定义了用于变量访问(例如,用于写/删除变量的SetVariable,用于读取变量的GetVariable)的应用编程接口(API),所述应用编程接口可以被实施例用来操纵经密码处理器签名的变量。在实施例中,UEFI变量在SMM运行时内以及在引导时间内是可访问的。在运行时期间,这些变量可以是OS、SMM、和/或固件(例如,SIC)可访问的。
如下面进一步讨论的,实施例提供了一种装置,主机固件通过这种装置可以利用TPM 2.0签名能力。确切地,在一个实施例中,TPM 2.0的平台层级结构可以用于给OEM PI代码提供预OS和运行时访问TPM 2.0设备,不管这个设备是‘分离式TPM’dTPM20(即,TPM 2.0设备)还是基于固件的(例如,ARM(ARM)、英特尔公司平台信任技术(PTT))密码处理器实现方式。有时,在此参照了UEFI特定术语(例如,PEI等),但实施例不限于此并且与任何基于主机的固件执行方案(例如,基于开源环保系统的固件,如***.coreboot.org,及其运行时操作的SMM模型)相关。
常规地,使用OS特定工具(例如,受保护签名服务器(HSM))“离开平台”地创建认证UEFI变量并对其进行签名。所述OS然后调用SetVariable运行时服务将认证变量登记在固件中(例如,使用被传递给UEFI客户端以进行实际SetVariable()动作的已签名blob)。一旦相关联的公钥被登记在固件的存储变量中,当GetVariable运行时变量被调用时,可以对认证变量的签名进行验证。例如,这是如何使用UEFI安全引导PK、KEK、DB、DBK变量的方式。然而,固件无法出于其自己的目的创建并使用认证变量。如下面进一步阐述的,实施例允许在密码处理器内(或被密码处理器安全地控制的区域内)“在平台上”创建UEFI变量和/或对其进行签名。
用于运行时访问的部件
如上所述,实施例可以使用TPM 2.0执行各种任务。例如,实施例包括命令库(例如,Tpm2CommandLib),所述命令库提供用于在TPM内创建密钥(例如,TPM2_CreatePrimary)、用密钥对对象进行签名(例如,TPM2_Sign)、以及稍后验证已签名对象(例如,TPM2_VerifySignature)的命令的实现方式。SMM驱动程序可以调用这些命令,连同SetVariable和GetVariable UEFI运行时服务。SMM驱动程序可以是使用TPM 2.0对数据对象进行签名并且还对这个签名进行验证的“SMM认证变量签名驱动程序”。为了将完整性值(例如,每次写之后的整个变量存储的散列)存储在TPM 2.0NVData中,可以在运行时在SMM中的平台层级结构的权限下使用命令(如TPM2_NVWrite)并且然后在重新引导时通过TPM2_NVRead相对TPM NVData对其进行校验,从而保证上一运行时会话与随后的重新引导(其中,所述固件将由如引导防护等平台元件安全地认证)之间,这些值是相同的。在美国专利号7,984,286(已转让给美国加利福尼亚州圣克拉拉市的英特尔公司)中可以找到对硬件安全引导的更加一般的描述。
利用认证值来控制使用平台层级结构对TPM 2.0的访问。最初,这是个已知值。在执行第三方代码之前,固件将这个认证值改为秘密值。这个新的秘密值必须被传递至SMM中并存储在SMRAM中以便由SMM驱动程序在运行时使用。例如,由于BIOS在重置时运行,BIOS是第一个能够通过平台层级结构访问TPM 2.0的部件。为了防止潜在恶意第三方代码(例如,恶意选项ROM)使用平台层级结构来访问TPM,将平台层级结构的认证值改为新的秘密值,并将这个值保存在SMM中以供稍后使用。这样做防止了第三方代码访问TPM,因为第三方代码并不知道这个新的认证值。
通过固件来创建UEFI认证变量
使用上述框架,固件可以创建并操纵UEFI认证变量供自己使用。在实施例中,为了创建UEFI认证变量,调用了SMM认证变量签名驱动程序签名方法,所述签名方法将生成SMI,并且SMM处置器将进行接下来的操作。首先,SMM处置器将保证没有来自OS对TPM 2.0的显著动作(如果在运行时的话),下面更加详细地阐述(见图4)。第二,SMM处置器将主张平台层级结构使用TPM2_CreatePrimary命令创建密钥,如果尚未存在命令的话。要注意的是,在实施例中,TPM 2.0主密钥的私有成分存储在TPM 2.0内受保护位置并且从不离开设备。只有公共成分(与TPM 2.0中保留的私钥相对应的公钥)是固件可用的。第三,SMM处置器将使用TPM2_Sign命令进行对象的实际签名。第四,SMM处置器将使用SetVariable UEFI运行时服务把已签名对象(例如,UEFI认证变量)存储在平台的变量存储(例如,位于平台上的闪存存储器)中。
对固件创建的UEFI认证变量进行验证
为了对固件创建的UEFI认证变量进行验证,调用SMM认证变量签名驱动程序的验证方法,所述验证方法将生成SMI,并且SMM处置器将(1)保证不会存在来自OS对TPM 2.0的显著动作(如果在运行时的话),(2)主张平台层级结构使用TPM2_CreatePrimary命令创建密钥,如果尚未存在命令的话,并且(3)调用GetVariable UEFI运行时服务基于TPM 2.0所生成并存储在闪存中的公钥检索变量数据并且然后对变量数据进行认证。
使能和禁用安全区域
实施例使用安全区域来提供可信执行环境。安全区域是防止在所述区域外部执行的软件访问在所述区域内部的软件和数据的可信软件执行环境。
在下述文件中描述了安全区域的各个实施例:例如2009年11月13日提交的题为“Method and Apparatus to Provide Secure Application Execution(用于提供安全应用执行的方法和装置)”的美国专利申请(序列号12/590,767);2009年12月22日提交的题为“Method and Apparatus to Provide Secure Application Execution(用于提供安全应用执行的方法和装置)”的PCT专利申请(专利号PCT/US2009/069212);2010年12月22日提交的题为“System and Method for Implementing a Trusted Dynamic Launch andTrusted Platform Module(TPM)Using Secure Enclaves(用于使用安全区域实现可信动态发射和可信平台模块(TPM)的系统和方法)”的美国专利申请(序列号12/976,831);2013年6月4日提交的题为“Technologies For Hardening The Security Of DigitalInformation On Client Platforms(用于强化客户端平台上的数字信息的安全性的技术)”的PCT专利申请(申请号PCT/US2013/44158);“Using Innovative Instructions toCreate Trustworthy Solutions(使用创新指令来创建可信方案)”(马修胡克斯特拉(Matthew Hoekstra)等人)、“Innovative Instructions and Software Model forIsolated Execution(用于隔离执行的创新指令和软件模型)”(弗兰克麦基等人)、以及2013年6月24日在以色列特拉维夫市联合ISCA 40举行的The Second Workshop onHardware and Architectural Support for Security and Privacy(关于安全和隐私的硬件和体系结构支持的第二届研讨会)上介绍的其他论文。因此,在此未完全地阐述关于安全区域的操作的细节。这些申请和论文在此统称为“安全区域材料”。
如安全区域材料中所描述的,在其包含进程的虚拟地址空间外部开拓了安全区域。依据虚拟地址执行对区域的存储器管理。在实施例中,区域存储器管理被划分成两部分:地址空间分配和存储器承诺。地址空间分配是对所述区域可以使用的最大地址范围的规范。没有实际资源被承诺这个区域。存储器承诺是对所分配的地址空间内的存储器资源(作为页面)的分派。这种两阶段的技术允许区域灵活地控制器存储器使用,并且在区域需要较低时允许在不过度使用存储器资源的情况下增长。承诺向所述区域增加了虚拟页面。
这种差别反映在两条指令ECREATE和EADD中。ECREATE分配供所述区域使用的地址范围。EADD将这个范围内的虚拟存储器页面承诺给所述区域。操作系统可以支持分离的分配和承诺操作。例如,Windows API VirtualAlloc采取标志变量MEM_RESERVE(分配)或MEM_COMMIT(承诺)。不要求OS支持这种分离,但其存在可以使得区域内的存储器管理更加灵活和高效。
在一个实施例中,使用ECREATE指令创建安全区域,限定了所述区域将被建立在的虚拟地址空间范围的基和大小。存储器在密封之前被添加至安全区域。例如通过使用Windows API最佳地展示了区域创建和承诺过程,并且所述过程如下进行:(1)在所述过程中使用VirtualAlloc保留地址空间区域,从而进入MEM_RESERVE标志(所述标志在不实际承诺任何物理存储器或页面文件存储的情况下保留存储器的区域);(2)通过再次调用VirtualAlloc承诺所述区域的第一页,这次用MEM_COMMIT标志;(3)使用ECREATE指令建立初始环境,从而限定与上述相同的地址范围(即,ECREATE分配应用中的虚拟存储器的区域用于宿存安全代码和数据);以及(4)对于每个有待添加至所述区域的附加页面:对区域页面进行VirtualAlloc,使用EADD将新页面添加至区域,使用EEXTEND添加对128字节页面的测量结果(EEXTEND更新区域的测量结果从而包括EADD中添加的代码或数据),并调用这条指令直到整个区域被测量(例如,测量结果可以包括区域中的代码和数据在其被初始化时的密码散列)。如果要一次添加区域页面的连续集,可以记录并优化上述步骤从而使系统调用的次数最小化。在不支持分离保留和承诺操作的操作系统上,可以例如用简单的malloc代替上述VirtualAlloc,并且消除对VirtualAlloc的剩余调用。
由于ECREATE和EADD指令使能所添加的页面的加密和完整性,非区域软件不可能在此存储器已经被添加至区域之后其进行初始化。运行时系统必须对它所负责的任何存储器在对其进行EADD之前完全地将其初始化这一般要求运行时系统在适当的地方建立区域图像,甚至在调用ECREATE之前(因为在ECREATE之后软件不能对SECS进行修改)。一旦存储器已经被初始化,经ECREATE的区域以及其经EADD的存储器,可以如在此所述的对其进行密封和测量。
在一个实施例中,在区域内部存在两种数据结构,安全区域控制存储(SECS)和线程控制结构(TCS)。SECS和TCS包括体系结构信息以及运行时软件所使用的非体系结构方便性字段。一旦SECS、一个或多个TCS、和代码与数据已经被EADD,由EINIT指令完成区域创建。这条指令停止进一步的测量结果信息被写入测量结果寄存器(MR)(在共同未决申请中有时称为“IR0”)。换言之,EINIT将区域的内容锁定,并保证只有区域中的代码可以访问同一区域中的数据区域。在EINIT之后,没有进一步页面可以被添加至区域。
不可信代码使用EENTER指令调用到区域中,并且区域通过EEXIT返回不可信调用方。在区域表项上,控制被传递至将堆栈指针切换至区域内部的指针的代码。当返回时,软件再次交换堆栈指针,然后执行EEXIT指令。
从而,一旦已经创建了区域并用EINIT对其进行初始化,防止从未授权软件(甚至入虚拟机器监测器的软件、BIOS、或以比区域本身更高特权等级运行的操作系统功能)对区域的存储器的试图访问。从物理观点看,虽然区域数据驻留在寄存器、缓存器、或处理器包的其他逻辑块中,CPU逻辑防止通过软件进行未授权访问。不管区域数据何时离开有待被写入平台存储器的封装上缓存,数据被自动地加密并且其完整性得到保护。这防止恶意个人使用存储器探头或其他技术浏览、修改、或重放区域内所包含的数据或代码。
紧前面的描述讨论了各种用于将安全区域实例化的各种机构。通过禁用在接下来引导期间建立安全区域所必须的存储器配置,禁用安全区域可能以类似的方式发生。
实施例改进了安全区域的使能/禁用。例如,可以在引导过程期间为安全区域建立存储器。使用UEFI认证变量可以允许可信实体使能/禁用用于建立安全区域的存储器。通过改变UEFI认证变量的状态,BIOS能够安全地禁用或扩展在接下来引导期间建立安全区域所必须的存储器配置。例如,OEM签名的OS驻留驱动程序可以向SMM驱动程序下发使能/禁用请求,不论是通过ACPI Comm缓存还是通过直接0xB2端口访问。SMM代码将或者在首次使能时创建Enable/Disable变量,或者在于调用方建立信任关系时更新现有变量使用。
关于安全区域使能/禁用正阐述的问题是期望安全装置允许开启或关闭安全区域特征,尤其是对于对存储器用途(即,放弃安全区域存储器分配从而不违反存储器要求)敏感的客户端系统,加上需要跨电力循环保证机器不让变量存储损坏。
正受信任的SMM驱动程序帮助防止TPM变成对任何调用方响应的“混淆代理人(Confused Deputy)”(见例如http***www.cis.upenn.edu/~KeyKOS/ConfusedDeputy***html)。
计算节点(例如,智能电话、平板、笔记本、膝上计算机、超级笔记本、汽车、航空无人机、戴在手腕/身体上用来监测生物数据的健身环、提供互联网访问的眼镜、其组合如混合平板和智能电话等等)可以包括多个可以独立于彼此被使能/禁用的安全存储器区域。
图1包括本发明实施例的过程100。
方框101是可选的,并且包括:判定带外密码处理器是否正基于来自OS的命令进行操作,并且如果否,则使得固件访问所述密码处理器。下面关于图4阐述了用于进行这个判断的示例方法。
方框105包括:固件在运行时期间内使得密码处理器(例如,TPM 2.0)创建密钥(例如,私钥)。每个引导周期或TPM 2.0启动会话可以完成一次创建密钥。一旦所述密钥已经被创建(例如,使用TPM2_CreatePrimary命令),所述密钥存在直到下一个电力循环、OS引导、和/或TPM 2.0启动会话。在某些具有有限存储的密码处理器中,在用完存储器资源之前,处理器可能仅能创建有限数量的密钥(例如,三个密钥)。一旦被创建,所述密钥可以通过其句柄被重新使用。可以在稍后时间(例如,下一个电力循环、OS引导、和/或TPM 2.0启动会话)借助用于创建之前版本密钥的同一种子来重新创建所述密钥。
方框110包括:固件在运行时期间使得密码处理器将密钥存储在耦合至密码处理器的安全非易失性存储设备内(TPM 2.0保护的存储器区域内)。从而,(直接或间接)调用TPM2_CreatePrimary命令的固件(直接或间接)使得所述密钥被创建并被存储。
方框115包括:固件在运行时期间内使得密码处理器在密码处理器内创建对象。方框120包括:固件在运行时期间内使得密码处理器在当所述密钥在密码处理器内时使用密钥对对象(例如,固件变量如UEFI变量)进行签名,以产生签名。然而,在另一实施例中,不在密码处理器中创建有待签名的对象。相反,所述对象被作为用于TPM2_Sign命令的参数之一传递给密码处理器(例如,TPM 2.0)。所述经签名对象被返回密码处理器外部并且不被存储在TPM 2.0中。然后,所述经签名对象被作为UEFI已认证变量(例如,使用UEFI SetVariable(SGX使能值)命令)存储,从而指示安全区域被使能还是被禁用。
方框125包括:固件在运行时期间内使得密码处理器对经签名对象上的签名进行验证。然而,在另一实施例中,不需要在过程100的这一点对经签名对象进行验证。例如,(由密码处理器)对经签名对象的验证可能发生于当使用UEFI GetVariable(SGX使能值/对象)命令访问安全区域(例如, SGX)使能值变量/对象时。由密码处理器进行验证将是可选的(例如,可以使用公钥进行验证,所述公钥对应于在方框105生成的密钥)。
方框130包括:在运行时期间,基于经验证的已签名对象(例如,用于使能安全区域的认证UEFI变量)来初始化安全区域(所述安全区域包括可信软件执行环境,所述可信软件执行环境防止在安全区域外部的软件执行访问在安全区域内部的软件和数据)。方框135包括:在运行时期间,基于所述验证的已签名对象来禁用所述安全区域。在实施例中,密码处理器不负责使能/禁用所述安全区域。相反,BIOS(通过主机处理器)这样做。例如,如果BIOS确定禁用安全区域的认证变量存在于存储器(例如,闪存存储器)中,BIOS将不会建立有待用于所述区域的存储器,并且将不会使能建立区域所必须的处理器特征。在实施例中,所述变量可以受到完整性保护(例如,写保护)但不受保密性保护(例如,读保护)。
防止回退
实施例保护平台免受UEFI变量存储(即,变量被存储在的存储器)上的离线攻击,其中,此类攻击实现了将UEFI变量回退至之前的非安全值。一旦安全配置被另外“回退”至非安全配置,所述平台受到损害。确切地,实施例防止企图回退至在其“dbx”UEFI安全引导变量被更新以限制受损证书之前的变量存储。实施例通过将SPI闪存中的UEFI变量存储以密码方式绑定至平台来完成这一点。在每次变量更新时(即,每次调用SetVariable时),计算变量存储的散列,并且然后将所述散列存储在受保护的TPM 2.0NV闪存位置可以用TPM2.0访问策略保护这个NV索引,这样使得例如仅可以通过平台层级结构对其进行读或写。然后,在引导周期的前期并在第一次访问变量存储之前,对变量存储散列进行计算并将其与TPM 2.0NV闪存中的存储值进行比较,从而评估在上一次变量“写”或更新之后被UEFI代码写的散列是否与变量存储的当前状态一致。
图2包括本发明实施例的过程200。
方框201是可选的,并且包括:判定带外密码处理器是否正基于来自OS的命令进行操作,并且如果否,则使得固件访问所述密码处理器。下面关于图4阐述了用于进行这个判断的示例方法。
可选元件包括在运行时期间内使得密码处理器(例如,TPM 2.0)创建和存储密钥(例如,私钥)的固件。然而,在其他实施例中,当在某些实施例中未对散列(下文所描述的)进行签名时,不需要创建并存储密钥。方框210包括:在运行时期间,固件(BIOS)对在不包括在密码处理器内的存储器中所存储的至少一个变量进行测量。方框215包括:固件在运行时期间将测量结果存储在包括在密码处理器中的安全非易失性存储设备内。例如,在实施例中,当UEFI SetVariable()变量被调用时,所述命令改变变量存储。结果是,对变量存储的新散列进行计算。然后将这个散列(即,对象)存储在之前规定的TPM NV反回退位置。在实施例中,不对所述散列进行签名。以这种方式,NV位置总是包括当前变量存储的散列。
方框220包括:在预引导操作期间,将所述测量结果与在不包括在所述密码处理器内的所述存储器中所存储的至少一个变量的第二测量结果进行比较。例如,当系统重新引导时,在第一次SetVariable调用之前,固件(例如,BIOS)对变量存储进行散列并将所述散列与密码处理器的安全存储器(例如,TPM2NV位置)中的值进行比较。如果这些散列不同,这是变量存储被修改过的证据。例如,这种修改可能发生在系统断电时(即,包含变量存储的闪存存储器被使用闪存编程器或某种这种设备修改至包括被撤回的密钥的旧值)。
容纳多个OS
图3包括本发明实施例的过程300。
方框301是可选的,并且包括:判定带外密码处理器是否正基于来自OS的命令进行操作,并且如果否,则使得固件访问所述密码处理器。下面关于图4阐述了用于进行这个判断的示例方法。
方框305包括:固件在运行时期间内使得密码处理器(例如,TPM 2.0)创建密钥(例如,私钥)。方框310包括:固件在运行时期间内使得密码处理器将密钥存储在耦合至密码处理器的安全非易失性存储设备内(例如,包括在密码处理器内)。方框315是可选的,并且包括:固件在运行时期间使得密码处理器在密码处理器内创建对象(或通过例如接收作为TPM2_Sign命令的参数的对象来访问之前创建的对象)。方框320包括:固件在运行时期间内使得密码处理器在当所述密钥在密码处理器内时使用密钥对对象(例如,固件变量如UEFI变量)进行签名,以产生签名。所述经签名对象可以被返回密码处理器外部并且不被存储在密码处理器中。方框325包括:固件使得在运行时期间内密码处理器对经签名对象上的签名进行验证(虽然固件可以发生在稍后的时间,如当变量被访问时)。
方框330包括:固件在运行时期间使得包括在装置中的主机处理器基于经验证的已签名对象在OS(例如,微软(Microsoft)与附加OS(例如,安卓(AndroidTM))之间进行切换控制。方框335包括:固件在运行时期间使得处理器(例如,主机处理器)基于经验证的已签名对象在OS与附加OS之间分配存储器。
在访问TPM时的OS与固件冲突
图4包括本发明实施例的过程。
图4包括本发明实施例中用于访问TPM的OS和SMM操作的过程。存在若干种方式用于允许SMM/OS TPM访问。SMM驱动程序可以防止固件与OS之间的竞争,两者都在运行时使用TPM 2.0高级配置和电源接口(ACPI)表尝试访问TPM 2.0。例如,TPM 2.0请求可以从BIOS或OS(通过TPM2 ACPI表)来到TPM 2.0SMM访问驱动程序。通过获知当新的请求从任一来源进来时之前的请求是否在进行中,TPM 2.0访问驱动程序防止固件与OS之间的竞争。ACPI(***.uefi.org)是用于OS与固件之间通信的标准。固件/BIOS创建ACPI表,所述ACPI表向OS提供对平台的描述。这些表包括OS可以用来对bios进行请求的方法(即,OS可以通过调用TPM2ACPI表上的方法对TPM 2.0做出请求)。TPM 2.0是存储器中由BIOS在引导期间创建供OS使用的数据结构。
关于图4,所述过程开始于方框505,并且在SMM中的方框510,系统检查TPM.STATUS位。如果已经存在OS TPM命令(方框515),则系统等待OS TPM命令结束(方框530)。在超时时,系统取消命令(方框540)或继续等待OS命令结束(方框535)。在方框535、540之后,已知与OS命令不再存在冲突的情况下,系统发送SMM、TPM命令(方框520)。然后可以获得响应(方框525)。在方框515,如果不存在OS TPM命令,过程可以前进至方框520。
在其他实施例中,SMM TPM命令可以置于队列中,并且可以使用周期性系统管理中断(SMI)来检查周期性SMI处置器中的TPM状态(例如,是否存在OS命令?)。另一实施例捕陷所有TPM访问(例如,OS TPM访问),并且总是访问SMM中的TPM硬件(因此,与SIC或OS TPM访问不存在冲突)。
实施例使用安全控制(像read_only和write_only)来保护UEFI变量。
虽然在此针对这些实施例中的许多实施例阐述了UEFI变量和TPM,这是为了解释方便和简洁而做出的并且不暗示所有的实施例都限于UEFI变量或TPM变量。其他实施例可以用于其他预引导代码、引导代码、初始化代码、和/或BIOS代码以及用于其他安全密码处理器和/或安全存储机制。而且,出于简洁的目的提到零特定的标准,但实施例并不限于任何一种BIOS或TPM标准或任何其他标准。
据上文所述,变量被存储在密码处理器NV存储中。然而,在各实施例中,此类变量可以包括变量的散列(或其他节省空间的缩略语或派生词)。所述散列/派生词可以是NV中所存储的,其中存储空间可以是有限的。这种安排允许将大很多的变量集映射至可能较小的密码处理器NV存储器集。
在此所讨论的实施例可以利用系统,如下文所讨论的图5的系统。事实上,各实施例可以用于多个不同类型的系统中。例如,在一个实施例中,通信设备可被安排成用于执行在此描述的所述各种方法和技术。当然,本发明的范围并不限于通信设备,并且相反其他实施例可以针对其他类型的用于处理指令的装置。
程序指令可以用于使编程有指令的通用或专用处理系统执行在此描述的操作。可替代地,这些操作可以由含有用于执行这些操作的硬件连线的逻辑的特定硬件部件执行,或者由程序计算机部件和自定义硬件部件的任意组合执行。在此描述的这些方法可以作为(a)计算机程序产品来提供,所述计算机程序产品可以包括一个或多个机器可读介质,所述一个或多个介质具有存储在其上的指令,所述指令可以用于编程处理系统或其他电子设备以便执行这些方法,或作为(b)至少一种存储介质来提供,所述至少一个存储介质上存储有使得系统执行这些方法的指令。在此使用的术语“机器可读介质”或“存储介质”应当包括能够存储或编码指令序列的任何介质(瞬态介质,包括信号;或非瞬态介质),所述指令序列用于由机器执行并且使机器执行在此描述的任一种方法。术语“机器可读介质”或“存储介质”将相应地包括但不限于存储器,如固态存储器、光盘盒磁盘、只读存储器(ROM)、可编程ROM(PROM)、可擦出PROM(EPROM)、电EPROM(EEPROM)、磁盘驱动、软盘、高密度磁盘ROM(CD-ROM)、数字多功能盘(DVD)、闪存存储器、磁光盘、以及更多的外来介质如机器可访问的生物状态保留或信号保留存储。介质可以包括任何用于以机器可读的形式存储、传输、或接收信息的机制,并且所述介质可以包括程序代码可穿过的介质,如天线、光纤、通信接口等。程序代码可以以数据包、序列号、并行数据的形式传输,并且可以以压缩或加密的格式被使用。此外,在本领域中常常将呈一种或另一种形式(例如,程序、规程、过程、应用、模块、逻辑等)说成采取行动或造成结果。这类表述仅是陈述由处理系统对软件的执行使处理器执行行动或产生结果的简写方式。
现在参考图5,示出了根据本发明的实施例的系统实施例1000的框图。系统1000可以包括在例如移动计算节点中,如蜂窝电话、智能电话、平板、超级笔记本、笔记本、膝上计算机、私人数字助手、和基于移动处理器的平台。
示出了多处理器系统1000,所述多处理器系统包括第一处理元件1070和第二处理元件1080。虽然示出了两个处理元件1070和1080,应当理解的是,系统1000的实施例还可以包括仅一个此类的处理元件。系统1000被展示为点对点互连系统,其中,第一处理元件1070和第二处理元件1080经由点对点互连件1050联接。应当理解的是,所展示的任何或所有互连件可以被实现为多站式总线而不是点对点互连件。如所示,处理元件1070和1080中的每一个可以是多核处理器,包括第一处理器核和第二处理器核(即,处理器核1074a和1074b以及处理器核1084a和1084b)。这类核1074、1074b、1084a、1084b可以被配置成用于以与在此讨论的方法类似的方式执行指令码。
每个处理元件1070、1080可以包括至少一个共享高速缓存。共享高速缓存可以存储分别由处理器的一个或多个部件(诸如核1074a、1074b以及1084a、1084b)利用的数据(例如,指令)。例如,共享高速缓存可以本地高速缓存存储在存储器1032、1034中的数据,以便由处理器的部件更快地访问。在一个或多个实施例中,共享高速缓存可以包括一个或多个中间级高速缓存(诸如2级(L2)、3级(L3)、4级(L4)、或其他级高速缓存)、最后一级高速缓存(LLC)、和/或其组合
虽然仅示出了两个处理元件1070、1080,应当理解的是,本发明的范围不限于此。在其他实施例中,给定处理器中可以存在一个或多个另外的处理元件。可替代地,处理元件1070、1080中的一个或多个可以是处理器之外的元件,诸如加速度计或现场可编程门阵列。例如,(多个)另外的处理元件可以包括与第一处理器1070相同的(多个)另外的处理器、与第一处理器1070异构或不对称的(多个)另外的处理器、加速器(例如像图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列、或任何其他处理元件。就一系列品质量度(包括体系结构、微体系结构、热、功耗特性等)而言,处理元件1070、1080之间存在多种差异。这些差异可以有效地表明它们是处理元件1070、1080之间的不对称性和异构性。对于至少一个实施例,不同处理元件1070、1080可以驻留在同一管芯封装中。
第一处理元件1070可以进一步包括存储器控制器逻辑(MC)1072以及点对点(P-P)接口1076和1078。类似地,第二处理元件1080可以包括MC 1082以及P-P接口1086和1088。MC1072和1082将处理器联接到对应存储器、即存储器1032和存储器1034上,所述存储器可以是主存储器的本地附接到对应处理器上的部分。虽然MC逻辑1072和1082被展示为集成到处理元件1070、1080中,但对于替代性实施例,MC逻辑可以是位于处理元件1070、1080外部而不是集成在其中的离散逻辑。
第一处理元件1070和第二处理元件1080可以对应地经由P-P互连件1062、10104通过P-P接口1076、1086而联接到I/O子系统1090上。如所示,I/O子系统1090包括P-P接口1094和1098。而且,I/O子系统1090包括接口1092以便将I/O子系统1090与高性能图形引擎1038耦合。在一个实施例中,总线可以用于将图形引擎1038耦合至I/O子系统1090。可替代地,点对点互连件1039可以联接这些部件。
I/O子系统1090进而可以经由接口1096联接到第一总线10110上。在一个实施例中,第一总线10110可以是外围部件互连(PCI)总线,或诸如PCI Express总线或另一种第三代I/O互连总线的总线,尽管本发明的范围不限于此。
如所示的,不同I/O设备1014、1024可以连同总线桥1018联接到第一总线10110上,所述总线桥可以将第一总线10110联接到第二总线1020上。在一个实施例中,第二总线1020可以是低引脚数(LPC)总线。不同设备可以联接到第二总线1020上,所述不同设备包括例如:键盘/鼠标1022、(多个)通信设备1026(所述通信设备进而可以与计算机网络通信)、以及数据存储单元1028(诸如磁盘驱动程序或其他大容量存储设备),在一个实施例中,所述数据存储单元可以包括代码1030。代码1030可以包括用于执行以上所描述方法中的一种或多种的实施例的指令。另外,音频I/O 1024可以联接到第二总线1020上。
应当注意:考虑到其他实施例。例如,替代所示的点对点体系结构,系统可以实现多站式总线或另一种这样的通信拓扑结构。另外,图5元件可以可替代地使用比图5所示多或少的集成芯片来进行分区。
示例1包括一种装置,所述装置包括:耦合至安全非易失性存储设备的带外密码处理器;以及其上存储有固件指令的至少一个存储介质,所述固件指令用于在运行时期间且在所述装置的操作系统已经引导之后使得所述密码处理器:(a)将密钥存储在所述安全非易失性存储设备内,(b)当所述密钥在所述密码处理器内时用所述密钥对对象进行签名以产生签名,并且(c)验证所述签名。
在示例2中,如示例1所述的主题可以可选地包括:其中,所述对象包括统一可扩展固件接口(UEFI)变量,所述固件包括平台初始化(PI)固件,所述密码处理器是用固件和硬件中的至少一项实现的可信产品模块(TPM),并且所述TPM在所述处理器带外。
在示例3中,如示例1-2所述的主题可以可选地包括:其中,所述对象包括固件变量。
在示例4中,如示例1-3所述主题可以可选地包括:其中,所述密钥是私钥,并且所述密码处理器包括所述安全非易失性存储设备;其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于使得所述密码处理器在所述密码处理器的外部传达对应于所述私钥的公钥同时将所述私钥留存在所述密码处理器内。
在示例5中,如示例1-4所述主题可以可选地包括:其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于使得所述密码处理器执行以下各项中的至少一项:(a)在所述密码处理器内创建所述对象;以及(b)创建所述密钥。
在示例6中,如示例1-5所述主题可以可选地包括:其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于:初始化包括可信软件执行环境的安全区域,所述可信软件执行环境防止在所述安全区域外部执行的软件访问在所述安全区域内部的软件和数据。
在示例7中,如示例1-6所述主题可以可选地包括:其中,初始化所述安全区域基于使能所述对象,所述对象包括固件变量。
在示例8中,如示例1-7所述主题可以可选地包括:其中,所述至少一个存储介质上存储有用于禁用所述安全区域的固件指令。
在示例9中,如示例1-8所述主题可以可选地包括:其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于在运行时期间确定在不包括在所述密码处理器内的存储器中所存储的至少一个变量的测量结果。
在示例10中,如示例1-9所述主题可以可选地包括:其中,所述至少一个存储介质上存储有用于将所述测量结果存储在所述安全非易失性存储设备内的固件指令。
在示例11中,如示例1-10所述主题可以可选地包括:其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于:在预引导操作期间且在运行时之前,将所述测量结果与在不包括在所述密码处理器内的所述存储器中所存储的所述至少一个变量的第二测量结果进行比较。
在示例12中,如示例1-11所述主题可以可选地包括:其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于在系统管理模式(SMM)运行时期间使得所述密码处理器:(a)将所述密钥存储在所述安全非易失性存储设备中,(b)用所述密钥对所述对象进行签名,并且(c)验证所述签名。
在示例13中,如示例1-12所述主题可以可选地包括:其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于在预引导操作期间使得在所述密码处理器内执行指令。
在示例14中,如示例13所述主题可以可选地包括处理器,其中,所述变量使能在所述操作系统与附加操作系统之间切换对所述处理器的控制。
在示例15中,如示例1-14所述主题可以可选地包括:其中,所述变量使能在所述操作系统与附加操作系统之间进行存储器分配。
在示例16中,如示例1-15所述主题可以可选地包括:其中,所述密码处理器包括所述安全非易失性存储设备,所述固件包括不包括在所述操作系统中的指令,并且所述至少一种存储介质所非瞬态的。
在示例17中,如示例1-16所述主题可以可选地包括:其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于:确定所述操作系统并未正在访问所述密码处理器,并且响应于所述确定而使得所述固件指令访问所述密码处理器。
示例18包括耦合至安全非易失性存储设备的带外密码处理器;以及其上存储有固件指令的至少一个存储介质,所述固件指令用于:(a)在运行时期间确定在不包括在所述密码处理器内的存储器中所存储的至少一个变量的测量结果,(b)在运行时期间,将所述测量结果存储在所述安全非易失性存储设备内,并且(c)在预引导操作期间且在运行时期间之前,将所述测量结果与在不包括在所述密码处理器内的所述存储器中所存储的所述至少一个变量的第二测量结果进行比较。
在示例19中,如示例18所述主题可以可选地包括处理器,其中,所述至少一个变量包括统一可扩展固件接口(UEFI)变量,所述密码处理器是用固件和硬件中的至少一项实现的可信产品模块(TPM),并且所述TPM在所述处理器带外。
在示例20中,如示例18-19所述主题可以可选地包括:其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于在运行时期间且在所述装置的操作系统已经引导之后使得所述密码处理器:(a)将密钥存储在所述安全非易失性存储设备内,(b)当所述密钥在所述密码处理器内时用所述密钥对所述至少一个变量进行签名以产生签名,并且(c)验证所述签名。
在示例21中,如示例18-20所述主题可以可选地包括:其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于初始化可信软件执行环境,所述可信软件执行环境防止在所述安全区域外部执行的软件访问在所述安全区域内部的数据。
在示例22中,如示例18-21所述主题可以可选地包括:其中,初始化所述安全区域基于使能所述至少一个变量。
示例23包括其上存储有固件指令的至少一种存储介质,所述固件指令用于使得系统:在运行时期间且在所述装置的操作系统已经引导之后,(a)将密钥存储在带外密码处理器中所包括的安全非易失性存储设备内,(b)当所述密钥在所述密码处理器内时用所述密钥对对象进行签名以产生签名,并且(c)验证所述签名。密码处理器,包括。
在示例24中,如示例23所述主题可以可选地包括其中,所述对象包括固件变量。
在示例25中,如示例23-24所述主题可以可选地包括:在使能所述固件变量的基础上初始化包括可信软件执行环境的安全区域,所述可信软件执行环境防止在所述安全区域外部执行的软件访问在所述安全区域内部的软件和数据。
示例1a包括一种由至少一个处理器执行的方法,所述至少一个处理器包括:固件,所述固件用于使得在运行时期间且在装置的操作系统已经引导之后密码处理器:(a)将密钥存储在安全非易失性存储设备内,(b)当所述密钥在所述密码处理器内时用所述密钥对对象进行签名以产生签名,并且(c)验证所述签名,其中,所述密码处理器包括在所述装置中,是带外的,并且耦合至所述安全非易失性存储设备。
在示例2a中,如示例1a所述的主题可以可选地包括:其中,所述对象包括统一可扩展固件接口(UEFI)变量,所述固件包括平台初始化(PI)固件,所述密码处理器是用固件和硬件中的至少一项实现的可信产品模块(TPM),并且所述TPM在所述处理器带外。
在示例3a中,如示例1a-2a所述的主题可以可选地包括:其中,所述对象包括固件变量。
在示例4a中,如示例1a-3a所述主题可以可选地包括:其中,所述密钥是私钥,并且所述密码处理器包括所述安全非易失性存储设备;所述方法包括使得所述密码处理器在所述密码处理器的外部传达对应于所述私钥的公钥同时将所述私钥留存在所述密码处理器内的固件。
在示例5a中,如示例1a-4a所述主题可以可选地包括使得所述密码处理器执行以下各项中的至少一项的固件:(a)在所述密码处理器内创建所述对象;以及(b)创建所述密钥
在示例6a中,如示例1a-5a所述主题可以可选地包括初始化包括可信软件执行环境的安全区域的固件,所述可信软件执行环境防止在所述安全区域外部执行的软件访问在所述安全区域内部的软件和数据。
在示例7a中,如示例1a-6a所述主题可以可选地包括:其中,初始化所述安全区域基于使能所述对象,所述对象包括固件变量。
在示例8a中,如示例1a-7a所述主题可以可选地包括禁用所述安全区域的固件。
在示例9a中,如示例1a-8a所述主题可以可选地包括在运行时期间确定在不包括在所述密码处理器内的存储器中所存储的至少一个变量的测量结果的固件。
在示例10a中,如示例1a-9a所述主题可以可选地包括:将所述测量结果存储在所述安全非易失性存储设备内的固件。
在示例11a中,如示例1a-10a所述主题可以可选地包括在预引导操作期间且在运行时之前将所述测量结果与在不包括在所述密码处理器内的所述存储器中所存储的所述至少一个变量的第二测量结果进行比较的固件。
在示例12a中,如示例1a-11a所述主题可以可选地包括使得在系统管理模式(SMM)运行时期间所述密码处理器进行以下各项的固件:(a)将所述密钥存储在所述安全非易失性存储设备中,(b)用所述密钥对所述对象进行签名,并且(c)验证所述签名。
在示例13a中,如示例1a-12a所述主题可以可选地包括使得在预引导操作期间在所述密码处理器内执行指令的固件。
在示例14a中,如示例1a-13a所述主题可以可选地包括:其中,所述变量使能在所述操作系统与附加操作系统之间切换对所述处理器的控制。
在示例15a中,如示例1a-14a所述主题可以可选地包括:其中,所述变量使能在所述操作系统与附加操作系统之间进行存储器分配。
在示例16a中,如示例1a-15a所述主题可以可选地包括:其中,所述密码处理器包括所述安全非易失性存储设备
在示例17a中,如示例1a-16a所述主题可以可选地包括确定所述操作系统并未正在访问所述密码处理器并且响应于所述确定使得所述固件指令访问所述密码处理器的固件。
示例18a包括由至少一个处理器执行的方法,所述至少一个处理器包括:固件,所述固件:(a)在运行时期间确定在不包括在密码处理器内的存储器中所存储的至少一个变量的测量结果,(b)在运行时期间,将所述测量结果存储在安全非易失性存储设备内,并且(c)在预引导操作期间且在运行时期间之前,将所述测量结果与所述存储器中所存储的不包括在所述密码处理器内的所述至少一个变量的第二测量结果进行比较;其中,所述密码处理器在所述安全非易失性存储设备带外并且耦合至其上。
在示例19a中,如示例18a所述的主题可以可选地包括:其中,所述至少一个变量包括统一可扩展固件接口(UEFI)变量,并且所述密码处理器是用固件和硬件中的至少一项实现的可信产品模块(TPM)。
在示例20a中,如示例18a-19a所述主题可以可选地包括在运行时期间且在所述装置的操作系统已经引导之后使得所述密码处理器执行以下各项的固件:(a)将密钥存储在所述安全非易失性存储设备内,(b)当所述密钥在所述密码处理器内时用所述密钥对所述至少一个变量进行签名以产生签名,并且(c)验证所述签名。
在示例21a中,如示例18a-20a所述主题可以可选地包括初始化可信软件执行环境的固件,所述可信软件执行环境防止在所述安全区域外部执行的软件访问在所述安全区域内部的数据。
在示例22a中,如示例18a-21a所述主题可以可选地包括:其中,初始化所述安全区域基于使能所述至少一个变量。
示例23a包括处理装置,所述处理装置包括用于在运行时期间且在所述装置的操作系统已经引导之后执行以下各项的装置:(a)将密钥存储在带外密码处理器中所包括的安全非易失性存储设备内,(b)当所述密钥在所述密码处理器内时用所述密钥对对象进行签名以产生签名,以及(c)验证所述签名。
在示例24a中,如示例23a所述的主题可以可选地包括:其中,所述对象包括固件变量。
在示例25a中,如示例23a-24a所述主题可以可选地包括:用于在使能所述固件变量的基础上初始化包括可信软件执行环境的安全区域的装置,所述可信软件执行环境防止在所述安全区域外部执行的软件访问在所述安全区域内部的软件和数据。
虽然已经参照了有限个数的实施例对本发明进行了描述,本领域技术人员将从中理解许多修改和变体。旨在使得所附权利要求书覆盖所有此类落在本发明的真实精神和范围内的修改和改变。

Claims (25)

1.一种装置,包括:
耦合至安全非易失性存储设备的带外密码处理器;以及
其上存储有固件指令的至少一个存储介质,所述固件指令用于在运行时期间且在所述装置的操作系统已经引导之后使得所述密码处理器:(a)将密钥存储在所述安全非易失性存储设备内,(b)当所述密钥在所述密码处理器内时用所述密钥对对象进行签名以产生签名,并且(c)验证所述签名。
2.如权利要求1所述的装置,包括处理器,其中,所述对象包括统一可扩展固件接口(UEFI)变量,所述固件包括平台初始化(PI)固件,所述密码处理器是用固件和硬件中的至少一项实现的可信产品模块(TPM),并且所述TPM在所述处理器带外。
3.如权利要求1所述的装置,其中,所述对象包括固件变量。
4.如权利要求3所述的装置,
其中,所述密钥是私钥,并且所述密码处理器包括所述安全非易失性存储设备;
其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于使得所述密码处理器向所述密码处理器的外部传达对应于所述私钥的公钥同时将所述私钥留存在所述密码处理器内。
5.如权利要求1所述的装置,其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于使得所述密码处理器执行以下各项中的至少一项:(a)在所述密码处理器内创建所述对象;以及(b)创建所述密钥。
6.如权利要求1所述的装置,其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于:初始化包括可信软件执行环境的安全区域,所述可信软件执行环境防止在所述安全区域外部执行的软件访问在所述安全区域内部的软件和数据。
7.如权利要求6所述的装置,其中,初始化所述安全区域基于使能所述对象,所述对象包括固件变量。
8.如权利要求1所述的装置,其中,所述至少一个存储介质上存储有用于禁用所述安全区域的固件指令。
9.如权利要求1所述的装置,其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于在运行时期间确定在不包括在所述密码处理器内的存储器中所存储的至少一个变量的测量结果。
10.如权利要求9所述的装置,其中,所述至少一个存储介质上存储有用于将所述测量结果存储在所述安全非易失性存储设备内的固件指令。
11.如权利要求10所述的装置,其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于:在预引导操作期间且在运行时之前,将所述测量结果与在不包括在所述密码处理器内的所述存储器中所存储的所述至少一个变量的第二测量结果进行比较。
12.如权利要求1所述的装置,其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于在系统管理模式(SMM)运行时期间使得所述密码处理器:(a)将所述密钥存储在所述安全非易失性存储设备中,(b)用所述密钥对所述对象进行签名,并且(c)验证所述签名。
13.如权利要求1所述的装置,其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于在预引导操作期间使得在所述密码处理器内执行指令。
14.如权利要求3所述的装置,包括处理器,其中,所述变量使能在所述操作系统与附加操作系统之间切换对所述处理器的控制。
15.如权利要求3所述的装置,其中,所述变量使能在所述操作系统与附加操作系统之间进行存储器分配。
16.如权利要求3所述的装置,其中,所述密码处理器包括所述安全非易失性存储设备,所述固件包括不包括在所述操作系统中的指令,并且所述至少一个存储介质所非瞬态的。
17.如权利要求1所述的装置,其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于:确定所述操作系统并未正在访问所述密码处理器,并且响应于所述确定而使得所述固件指令访问所述密码处理器。
18.一种装置,包括:
耦合至安全非易失性存储设备的带外密码处理器;以及
其上存储有固件指令的至少一个存储介质,所述固件指令用于:(a)在运行时期间确定在不包括在所述密码处理器内的存储器中所存储的至少一个变量的测量结果,(b)在运行时期间,将所述测量结果存储在所述安全非易失性存储设备内,并且(c)在预引导操作期间且在运行时期间之前,将所述测量结果与在不包括在所述密码处理器内的所述存储器中所存储的所述至少一个变量的第二测量结果进行比较。
19.如权利要求18所述的装置,包括处理器,其中,所述至少一个变量包括统一可扩展固件接口(UEFI)变量,所述密码处理器是用固件和硬件中的至少一项实现的可信产品模块(TPM),并且所述TPM在所述处理器带外。
20.如权利要求18所述的装置,其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于在运行时期间且在所述装置的操作系统已经引导之后所述密码处理器:(a)将密钥存储在所述安全非易失性存储设备内,(b)当所述密钥在所述密码处理器内时用所述密钥对所述至少一个变量进行签名以产生签名,并且(c)验证所述签名。
21.如权利要求18所述的装置,其中,所述至少一个存储介质上存储有固件指令,所述固件指令用于初始化可信软件执行环境,所述可信软件执行环境防止在所述安全区域外部执行的软件访问在所述安全区域内部的数据。
22.如权利要求21所述的装置,其中,初始化所述安全区域基于使能所述至少一个变量。
23.至少一种存储介质,其上存储有固件指令,所述固件指令用于使得系统:
在运行时期间且在所述装置的操作系统已经引导之后,(a)将密钥存储在带外密码处理器中所包括的安全非易失性存储设备内,(b)当所述密钥在所述密码处理器内时用所述密钥对对象进行签名以产生签名,并且(c)验证所述签名。
24.如权利要求23所述的至少一种介质,其中,所述对象包括固件变量。
25.如权利要求24所述的至少一种介质,所述至少一种存储介质上存储有固件指令,所述固件指令用于在使能所述固件变量的基础上初始化包括可信软件执行环境的安全区域,所述可信软件执行环境防止在所述安全区域外部执行的软件访问在所述安全区域内部的软件和数据。
CN201580028293.7A 2014-06-27 2015-06-25 认证变量的管理方法和装置 Active CN106462708B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910277013.6A CN109918919B (zh) 2014-06-27 2015-06-25 认证变量的管理

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/317,909 2014-06-27
US14/317,909 US9785801B2 (en) 2014-06-27 2014-06-27 Management of authenticated variables
PCT/US2015/037600 WO2015200581A1 (en) 2014-06-27 2015-06-25 Management of authenticated variables

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910277013.6A Division CN109918919B (zh) 2014-06-27 2015-06-25 认证变量的管理

Publications (2)

Publication Number Publication Date
CN106462708A true CN106462708A (zh) 2017-02-22
CN106462708B CN106462708B (zh) 2019-05-14

Family

ID=54930873

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201580028293.7A Active CN106462708B (zh) 2014-06-27 2015-06-25 认证变量的管理方法和装置
CN201910277013.6A Active CN109918919B (zh) 2014-06-27 2015-06-25 认证变量的管理

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910277013.6A Active CN109918919B (zh) 2014-06-27 2015-06-25 认证变量的管理

Country Status (6)

Country Link
US (2) US9785801B2 (zh)
EP (2) EP4064089A1 (zh)
KR (1) KR102244645B1 (zh)
CN (2) CN106462708B (zh)
TW (1) TWI570589B (zh)
WO (1) WO2015200581A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109683972A (zh) * 2018-12-25 2019-04-26 联想(北京)有限公司 信息控制方法及装置
CN111373404A (zh) * 2017-09-19 2020-07-03 惠普发展公司,有限责任合伙企业 密码密钥安全
CN111414607A (zh) * 2019-01-08 2020-07-14 意法半导体(鲁塞)公司 具有可个性化功能的安全元件与对应的管理方法
CN111901105A (zh) * 2020-07-20 2020-11-06 上海龙旗科技股份有限公司 一种基于UEFI架构EDK2支持Openssl算法的方法与设备

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160036826A1 (en) * 2014-07-29 2016-02-04 Mcafee, Inc. Secure content packaging using multiple trusted execution environments
US10044695B1 (en) * 2014-09-02 2018-08-07 Amazon Technologies, Inc. Application instances authenticated by secure measurements
US9491111B1 (en) * 2014-09-03 2016-11-08 Amazon Technologies, Inc. Securing service control on third party hardware
US10061915B1 (en) 2014-09-03 2018-08-28 Amazon Technologies, Inc. Posture assessment in a secure execution environment
US10079681B1 (en) 2014-09-03 2018-09-18 Amazon Technologies, Inc. Securing service layer on third party hardware
EP3234852B1 (en) * 2014-12-19 2020-01-15 Private Machines Inc. Systems and methods for using extended hardware security modules
CN107292176B (zh) * 2016-04-05 2021-01-15 联想企业解决方案(新加坡)有限公司 用于访问计算设备的可信平台模块的方法和系统
JP2019518642A (ja) 2016-04-14 2019-07-04 ロンバス システムズ グループ, インコーポレイテッドRhombus Systems Group, Inc. 無人航空機の完全性を検証するためのシステム
US10592670B2 (en) * 2016-06-28 2020-03-17 Intel Corporation Technologies for provisioning and managing secure launch enclave with platform firmware
US10042693B2 (en) * 2016-07-12 2018-08-07 Infineon Technologies Ag Diverse integrated processing using processors and diverse firmware
US10148444B2 (en) * 2016-08-04 2018-12-04 Dell Products L.P. Systems and methods for storing administrator secrets in management controller-owned cryptoprocessor
EP3485416B1 (en) * 2016-10-21 2020-11-25 Hewlett-Packard Development Company, L.P. Bios security
KR102130999B1 (ko) 2016-11-04 2020-07-09 주식회사 케이티 무선 통신에서 멀티 빔 기반 스케줄링 요청을 수행하는 방법 및 장치
US10831897B2 (en) 2017-07-14 2020-11-10 Dell Products, L.P. Selective enforcement of secure boot database entries in an information handling system
US10754955B2 (en) 2017-08-04 2020-08-25 Dell Products, L.P. Authenticating a boot path update
WO2019032095A1 (en) * 2017-08-08 2019-02-14 Hewlett-Packard Development Company L.P. BASIC INPUT / OUTPUT SYSTEM UPDATES
US11455394B2 (en) 2017-09-06 2022-09-27 Absolute Software Corporation Secure firmware interface
WO2019177563A1 (en) * 2018-03-12 2019-09-19 Hewlett-Packard Development Company, L.P. Hardware security
WO2019219181A1 (en) * 2018-05-16 2019-11-21 Telefonaktiebolaget Lm Ericsson (Publ) Enclave population
US10802834B2 (en) 2018-06-11 2020-10-13 Google Llc Enabling multiple secure boot paths on a hardware platform
US11012241B2 (en) 2018-09-10 2021-05-18 Dell Products L.P. Information handling system entitlement validation
CN109922056B (zh) 2019-02-26 2021-09-10 创新先进技术有限公司 数据安全处理方法及其终端、服务器
US10970100B2 (en) * 2019-03-08 2021-04-06 International Business Machines Corporation Starting a secure guest using an initial program load mechanism
US11171786B1 (en) * 2019-03-21 2021-11-09 Cisco Technology, Inc. Chained trusted platform modules (TPMs) as a secure bus for pre-placement of device capabilities
WO2022019910A1 (en) * 2020-07-23 2022-01-27 Hewlett-Packard Development Company, L.P. Read protection for uefi variables
WO2022093254A1 (en) * 2020-10-30 2022-05-05 Hewlett-Packard Development Company, L.P. Hashed function point identifiers for data processing security
KR20220091955A (ko) * 2020-12-24 2022-07-01 에스케이하이닉스 주식회사 메모리 시스템 폐기 방법 및 그 메모리 시스템
US11989300B2 (en) * 2021-07-19 2024-05-21 Dell Products L.P. Firmware secure boot customization extensions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169633A1 (en) * 2008-12-31 2010-07-01 Vincent Zimmer System and method to secure boot both uefi and legacy option rom's with common policy engine
CN102063593A (zh) * 2011-01-07 2011-05-18 北京工业大学 主动控制功能的可信设备及其认证方法
US20130067245A1 (en) * 2011-09-13 2013-03-14 Oded Horovitz Software cryptoprocessor

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2069090A (en) * 1935-02-11 1937-01-26 Paul E Hawkinson Tire retread and process of producing and applying the same
US6339824B1 (en) * 1997-06-30 2002-01-15 International Business Machines Corporation Method and apparatus for providing public key security control for a cryptographic processor
US6871278B1 (en) * 2000-07-06 2005-03-22 Lasercard Corporation Secure transactions with passive storage media
US6792505B2 (en) * 2001-04-16 2004-09-14 International Business Machines Corporation System apparatus and method for storage device controller-based message passing having effective data channel bandwidth and controller cache memory increase
US6848046B2 (en) 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
US20040078483A1 (en) * 2002-10-16 2004-04-22 Raymond Simila System and method for implementing virtual loopbacks in ethernet switching elements
US7974416B2 (en) * 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
US8613387B1 (en) * 2002-12-26 2013-12-24 Diebold Self-Service Systems, Division Of Diebold, Incorporated Banking system controlled reponsive to data bearing records
US20050195975A1 (en) * 2003-01-21 2005-09-08 Kevin Kawakita Digital media distribution cryptography using media ticket smart cards
US7320052B2 (en) * 2003-02-10 2008-01-15 Intel Corporation Methods and apparatus for providing seamless file system encryption and redundant array of independent disks from a pre-boot environment into a firmware interface aware operating system
CN1553315A (zh) * 2003-06-06 2004-12-08 微软公司 在安全引导装载程序中使用散列技术
US20050039016A1 (en) * 2003-08-12 2005-02-17 Selim Aissi Method for using trusted, hardware-based identity credentials in runtime package signature to secure mobile communications and high-value transaction execution
US7263608B2 (en) * 2003-12-12 2007-08-28 Lenovo (Singapore) Pte. Ltd. System and method for providing endorsement certificate
US7181293B2 (en) * 2004-12-27 2007-02-20 Intel Corporation System and method for enabling home power management
US8090919B2 (en) * 2007-12-31 2012-01-03 Intel Corporation System and method for high performance secure access to a trusted platform module on a hardware virtualization platform
US8209542B2 (en) * 2006-12-29 2012-06-26 Intel Corporation Methods and apparatus for authenticating components of processing systems
KR100807939B1 (ko) * 2007-03-08 2008-02-28 박경진 안구내렌즈 조립체
US8984265B2 (en) * 2007-03-30 2015-03-17 Intel Corporation Server active management technology (AMT) assisted secure boot
US9158920B2 (en) 2007-06-28 2015-10-13 Intel Corporation System and method for out-of-band assisted biometric secure boot
US20090204823A1 (en) * 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
CN101983375A (zh) * 2008-04-02 2011-03-02 惠普开发有限公司 将密码模块绑定到平台
US7984286B2 (en) 2008-06-25 2011-07-19 Intel Corporation Apparatus and method for secure boot environment
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)
US8103909B2 (en) * 2008-09-15 2012-01-24 Juniper Networks, Inc. Automatic hardware-based recovery of a compromised computer
US20100082960A1 (en) * 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
US9077654B2 (en) * 2009-10-30 2015-07-07 Iii Holdings 2, Llc System and method for data center security enhancements leveraging managed server SOCs
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
GB201000288D0 (en) * 2010-01-11 2010-02-24 Scentrics Information Security System and method of enforcing a computer policy
US8312296B2 (en) 2010-03-10 2012-11-13 Dell Products L.P. System and method for recovering from an interrupted encryption and decryption operation performed on a volume
US8375220B2 (en) * 2010-04-02 2013-02-12 Intel Corporation Methods and systems for secure remote wake, boot, and login to a computer from a mobile device
US9721101B2 (en) * 2013-06-24 2017-08-01 Red Hat, Inc. System wide root of trust chaining via signed applications
US8607040B2 (en) * 2010-11-16 2013-12-10 Intel Corporation Method of provisioning firmware in an operating system (OS) absent services environment
US8590040B2 (en) 2010-12-22 2013-11-19 Intel Corporation Runtime platform firmware verification
US8832452B2 (en) * 2010-12-22 2014-09-09 Intel Corporation System and method for implementing a trusted dynamic launch and trusted platform module (TPM) using secure enclaves
US8918907B2 (en) * 2011-04-13 2014-12-23 Phoenix Technologies Ltd. Approaches for firmware to trust an application
CN102801525A (zh) 2012-06-29 2012-11-28 鸿富锦精密工业(深圳)有限公司 电子设备、签名认证系统及其签名认证方法
US20140010365A1 (en) * 2012-07-06 2014-01-09 Vincent Von Bokern Replaceable encryption key provisioning
US8904162B2 (en) 2012-08-01 2014-12-02 Intel Corporation Methods and apparatus for performing secure BIOS upgrade
US9384352B2 (en) * 2013-10-02 2016-07-05 Intel Corporation Trusted boot and runtime operation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169633A1 (en) * 2008-12-31 2010-07-01 Vincent Zimmer System and method to secure boot both uefi and legacy option rom's with common policy engine
CN102063593A (zh) * 2011-01-07 2011-05-18 北京工业大学 主动控制功能的可信设备及其认证方法
US20130067245A1 (en) * 2011-09-13 2013-03-14 Oded Horovitz Software cryptoprocessor

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111373404A (zh) * 2017-09-19 2020-07-03 惠普发展公司,有限责任合伙企业 密码密钥安全
CN111373404B (zh) * 2017-09-19 2024-03-22 惠普发展公司,有限责任合伙企业 密码密钥安全
CN109683972A (zh) * 2018-12-25 2019-04-26 联想(北京)有限公司 信息控制方法及装置
CN109683972B (zh) * 2018-12-25 2021-07-16 联想(北京)有限公司 信息控制方法及装置
CN111414607A (zh) * 2019-01-08 2020-07-14 意法半导体(鲁塞)公司 具有可个性化功能的安全元件与对应的管理方法
CN111414607B (zh) * 2019-01-08 2023-07-11 意法半导体(鲁塞)公司 具有可个性化功能的安全元件与对应的管理方法
CN111901105A (zh) * 2020-07-20 2020-11-06 上海龙旗科技股份有限公司 一种基于UEFI架构EDK2支持Openssl算法的方法与设备
CN111901105B (zh) * 2020-07-20 2022-11-01 上海龙旗科技股份有限公司 一种基于UEFI架构EDK2支持Openssl算法的方法与设备

Also Published As

Publication number Publication date
TW201617957A (zh) 2016-05-16
WO2015200581A1 (en) 2015-12-30
US9785801B2 (en) 2017-10-10
US20150379306A1 (en) 2015-12-31
EP4064089A1 (en) 2022-09-28
TWI570589B (zh) 2017-02-11
US10831934B2 (en) 2020-11-10
CN106462708B (zh) 2019-05-14
CN109918919A (zh) 2019-06-21
EP3161716A1 (en) 2017-05-03
KR102244645B1 (ko) 2021-04-23
US20180025183A1 (en) 2018-01-25
CN109918919B (zh) 2023-06-20
EP3161716A4 (en) 2018-03-21
EP3161716B1 (en) 2023-08-30
KR20160146955A (ko) 2016-12-21

Similar Documents

Publication Publication Date Title
CN106462708B (zh) 认证变量的管理方法和装置
US20230128711A1 (en) Technologies for trusted i/o with a channel identifier filter and processor-based cryptographic engine
JP5443599B2 (ja) セキュアなアプリケーションの実行を提供する方法および装置
CN103038745B (zh) 扩展完整性测量
JP4940460B2 (ja) 処理システム、方法およびデバイス
US8694781B1 (en) Techniques for providing hardware security module operability
US10318765B2 (en) Protecting critical data structures in an embedded hypervisor system
WO2019104988A1 (zh) Plc的安全处理单元及其总线仲裁方法
CN110321715A (zh) 可信度量方法、装置及处理器
CN110334521A (zh) 可信计算系统构建方法、装置、可信计算系统及处理器
CN105389513A (zh) 一种虚拟可信平台模块vTPM的可信执行方法和装置
Park et al. Toward live migration of SGX-enabled virtual machines
Coppola et al. Automation for industry 4.0 by using secure lorawan edge gateways
Zhou et al. Smile: Secure memory introspection for live enclave
Zhao et al. Hypnoguard: Protecting secrets across sleep-wake cycles
JP6068325B2 (ja) セキュアなアプリケーションの実行を提供するプロセッサ
Kim et al. hTPM: Hybrid implementation of trusted platform module
JP2019109910A (ja) プロセッサ
CN110334532A (zh) 文件的加密、解密处理方法及加解密系统
US20240187231A1 (en) Forensics Module and Integrated System
JP6480403B2 (ja) 装置
LaSota The Present and Potential Future of Mac Hardware Implants
JP6085320B2 (ja) プロセッサ、プログラム、システム及び方法
Schneider Trusted Computing on Modern Platforms: Analysis, Challenges, and Implications
Zhang Comparison of prominent trusted execution environments

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