CN105095772B - 用于安全地保存并恢复计算平台状态的方法和装置 - Google Patents

用于安全地保存并恢复计算平台状态的方法和装置 Download PDF

Info

Publication number
CN105095772B
CN105095772B CN201510186144.5A CN201510186144A CN105095772B CN 105095772 B CN105095772 B CN 105095772B CN 201510186144 A CN201510186144 A CN 201510186144A CN 105095772 B CN105095772 B CN 105095772B
Authority
CN
China
Prior art keywords
processor
key
mac
data structure
counter value
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.)
Expired - Fee Related
Application number
CN201510186144.5A
Other languages
English (en)
Other versions
CN105095772A (zh
Inventor
V·R·斯卡拉塔
S·P·约翰逊
C·V·罗扎斯
F·X·麦克金
I·安奈蒂
I·埃里克山德洛维奇
R·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 CN105095772A publication Critical patent/CN105095772A/zh
Application granted granted Critical
Publication of CN105095772B publication Critical patent/CN105095772B/zh
Expired - Fee Related 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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/81Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Advance Control (AREA)
  • Power Sources (AREA)
  • Storage Device Security (AREA)
  • Power Engineering (AREA)

Abstract

本申请公开了一种用于安全地保存并恢复计算平台状态的装置和方法。一种用于安全地挂起并恢复处理器状态的装置和方法。例如,方法的一个实施例包括:生成数据结构,该数据结构至少包括单调计数器值;使用第一密钥生成对该数据结构的消息认证码(MAC);向在处理器上被执行的模块安全地提供数据结构和MAC;该模块验证该MAC,将该单调计数器值与在前一个挂起操作期间被存储的计数器值作比较,并且如果这两个计数器值匹配,则加载完成恢复操作所要求的处理器状态。方法的另一实施例包括:由处理器生成第一密钥;安全地与处理器外组件共享该第一密钥;并且使用该第一密钥生成可用于标识该处理器和处理器外组件之间的配对的配对ID。

Description

用于安全地保存并恢复计算平台状态的方法和装置
背景技术
技术领域
本发明总体涉及计算机处理器领域。更具体地说,本发明涉及用于安全地存储并恢复计算平台状态的装置和方法。
相关技术描述
许多现代处理器不具有处理器上的、在其中存储必须保持最新且不被复用的状态数据的永久存储设备。这尤其与诸如软件防护扩展(SGX)之类的安全技术有关,在SGX中,当挂起并恢复平台时需要将内部密钥和配置数据存储在处理器外部,以便节能。
对该问题先前的解决方案需要从处理器直接去往仅由该处理器拥有的、受信任的存储设备的硬件接口。确保该通道的安全要求保护在受信任的生产设施中的密钥交换以免受对该密钥的恶意观察。这需要通常不能在个人计算设备中找到的特殊硬件。此外,伴随着外包、离岸生产的增加,要获取该信任如果不是不可能的,也是非常困难的。此外,可将闪存添加到处理器自身中以确保在挂起操作期间所存储的数据的安全,再次导致了显著的额外生产成本。
附图说明
结合以下附图,从以下具体实施方式中可获得对本发明更好的理解,其中:
图1A是示出根据本发明的多个实施例的示例性有序流水线以及示例性寄存器重命名的无序发布/执行流水线两者的框图;
图1B是示出根据本发明的多个实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图;
图2是根据本发明的多个实施例的具有集成的存储器控制器和图形器件的单核处理器和多核处理器的框图;
图3示出本发明的一个实施例的系统的框图;
图4示出根据本发明的实施例的第二系统的框图;
图5示出根据本发明的实施例的第三系统的框图;
图6示出根据本发明的实施例的芯片上系统(SoC)的框图;
图7示出根据本发明的多个实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图;
图8示出用于将处理器与一个或多个其他计算组件配对的本发明的一个实施例;
图9示出收集配对数据并将其存储在数据库中的一个实施例;
图10示出用于生成消息认证码(MAC)密钥的方法的一个实施例;
图11示出用于生成配对数据的方法的一个实施例;
图12示出用于使用计数器值安全地恢复处理器状态的技术;
图13示出用于使用计数器值安全地挂起处理器状态的技术;
图14示出根据本发明的一个实施例可如何将配对ID注入到现有密钥中。
具体实施方式
在下面的描述中,为了进行解释,阐述了众多具体细节以便提供对以下描述的本发明的各实施例的全面理解。然而,对本领域技术人员显而易见的是,可以在没有这些具体细节中的一些细节的情况下实施本发明的各实施例。在其他实例中,公知的结构和设备以框图形式示出,以避免使本发明的实施例的基本原理模糊。
示例性处理器架构和数据类型
图1A是示出根据本发明的多个实施例的示例性有序流水线和示例性的寄存器重命名的无序发布/执行流水线的框图。图1B是示出根据本发明的多个实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。图1A-B中的实线框示出有序流水线和有序核,而可选增加的虚线框示出寄存器重命名的、无序发布/执行流水线和核。考虑到有序方面是无序方面的子集,将描述无序方面。
在图1A中,处理器流水线100包括取出级102、长度解码级104、解码级106、分配级108、重命名级110、调度(也称为分派或发布)级112、寄存器读取/存储器读取级114、执行级116、写回/存储器写入级118、异常处理级 122和提交级124。
图1B示出了包括耦合到执行引擎单元150的前端单元130的处理器核190,且执行引擎单元和前端单元两者都耦合到存储器单元170。核190可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW) 核或混合或替代核类型。作为又一选项,核190可以是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图形处理单元(GPGPU)核、或图形核等等。
前端单元130包括耦合到指令高速缓存单元134的分支预测单元132,该指令高速缓存单元耦合到指令转换后备缓冲器(TLB)136,该指令转换后备缓冲器耦合到指令取出单元138,该指令取出单元耦合到解码单元140。解码单元140(或解码器)可解码指令,并生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元140可使用各种不同的机制来实现。合适机制的示例包括但不限于,查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核190包括微代码ROM或存储用于某些宏指令的微代码的其他介质(例如,在解码单元140中或以其他方式在前端单元130内)。解码单元140耦合至执行引擎单元150中的重命名/分配器单元152。
执行引擎单元150包括重命名/分配器单元152,该重命名/分配器单元耦合至引退单元154和一个或多个调度器单元156的集合。调度器单元156表示任意数量的不同调度器,包括预留站、中央指令窗等。调度器单元156耦合到物理寄存器组单元158。物理寄存器组单元158中的每一个表示一个或多个物理寄存器组,其中不同的物理寄存器组存储一个或多个不同的数据类型,诸如,标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点、状态(诸如,作为要被执行的下一条指令的地址的指令指针)等。在一个实施例中,物理寄存器组单元158包括向量寄存器单元、写掩码寄存器单元和标量寄存器单元。这些寄存器单元可以提供架构向量寄存器、向量掩码寄存器、和通用寄存器。物理寄存器组单元158被引退单元154覆盖,以示出可实现寄存器重命名和无序执行的多种方式(例如,使用重排序缓冲器和引退寄存器组;使用未来文件(future file)、历史缓冲器和引退寄存器组;使用寄存器映射和寄存器池等)。引退单元154和物理寄存器组单元158耦合到执行群集160。执行群集 160包括一个或多个执行单元162的集合和一个或多个存储器访问单元164的集合。执行单元162可对各种类型的数据(例如,标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点)执行各种操作(例如,移位、加法、减法、乘法)。尽管一些实施例可包括专用于特定功能或功能集的多个执行单元,但其他实施例可包括全部执行所有功能的仅一个执行单元或多个执行单元。调度器单元 156、物理寄存器组单元158和执行群集160被示出为可能有多个,因为某些实施例为某些类型的数据/操作创建分开的流水线(例如,标量整数流水线、标量浮点/紧缩整数/紧缩浮点/向量整数/向量浮点流水线,和/或各自具有其自身的调度器单元、物理寄存器组单元和/或执行群集的存储器访问流水线——以及在分开的存储器访问流水线的情况下,实现其中仅该流水线的执行群集具有存储器访问单元164的某些实施例)。还应当理解,在使用分开的流水线的情况下,这些流水线中的一个或多个可以是无序发布/执行,并且其余流水线可以是有序的。
存储器访问单元164的集合耦合至存储器单元170,该存储器单元包括数据TLB单元172,该数据TLB单元耦合至高速缓存单元174,该高速缓存单元耦合至第二级(L2)高速缓存单元176。在一个示例性实施例中,存储器访问单元164可包括加载单元、存储地址单元和存储数据单元,其中的每一个均耦合至存储器单元170中的数据TLB单元172。指令高速缓存单元134还耦合到存储器单元170中的第二级(L2)高速缓存单元176。L2高速缓存单元176耦合到一个或多个其他级的高速缓存,并最终耦合到主存储器。
作为示例,示例性寄存器重命名的、无序发布/执行核架构按如下方式实现流水线100:1)指令取出器138执行取出和长度解码级102和104;2)解码单元140执行解码级106;3)重命名/分配器单元152执行分配级108和重命名级110;4)调度器单元156执行调度级112;5)物理寄存器组单元158和存储器单元170执行寄存器读取/存储器读取级114;执行群集160实现执行级116; 6)存储器单元170和物理寄存器组单元158执行写回/存储器写入级118;7)多个单元可被牵涉在异常处理级122中;以及8)引退单元154和物理寄存器组单元158执行提交级124。
核190可支持一个或多个指令集(例如,x86指令集(具有与较新版本一起添加的一些扩展);加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集;加利福尼州桑尼维尔市的ARM控股的ARM指令集(具有诸如NEON 等可选附加扩展)),其中包括本文中描述的各指令。在一个实施例中,核190 包括用于支持紧缩数据指令集扩展(例如,AVX1、AVX2和/或下文描述的一些形式的通用向量友好指令格式(U=0和/或U=1))的逻辑,从而实用紧缩数据来执行由许多多媒体应用使用的操作。
应当理解,核可支持多线程化(执行两个或更多并行的操作或线程的集合),并且可以按各种方式来完成该多线程化,包括,时分多线程化、同步多线程化(其中单个物理核为物理核正在同步进行多线程化的多个线程中的每一个线程提供逻辑核)、或其组合(例如,时分取出和解码以及此后诸如用超线程化技术进行的同步多线程化)。
尽管在无序执行的上情境中描述了寄存器重命名,但应当理解,可以在有序架构中使用寄存器重命名。尽管所示出的处理器的实施例还包括分开的指令和数据高速缓存单元134/174以及共享L2高速缓存单元176,但替代实施例可以具有用于指令和数据两者的单个内部高速缓存,诸如例如一级(L1)内部高速缓存或多个级别的内部高速缓存。在一些实施例中,该系统可包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。或者,所有高速缓存都可以在核和/或处理器的外部。
图2是根据本发明的多个实施例可能具有多余一个的核、可能具有集成存储器控制器、以及可能具有集成图形器件的处理器200的框图。图2中的实线框示出具有单个核202A、系统代理210、一个或多个总线控制器单元216的集合的处理器200,而虚线框的可选附加示出具有多个核202A-N、系统代理单元 210中的一个或多个集成存储器控制器单元214的集合以及专用逻辑208的替代处理器200。
因此,处理器200的不同实现可包括:1)CPU,其中专用逻辑208是集成图形和/或科学(吞吐量)逻辑(其可包括一个或多个核),并且核202A-N是一个或多个通用核(例如,通用的有序核、通用的无序核、这两者的组合); 2)协处理器,其中核202A-N是旨在主要用于图形和/或科学(吞吐量)的大量的专用核;以及3)协处理器,其中核202A-N是大量的通用有序核。因此,处理器200可以是通用处理器、协处理器或专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量的集成众核(MIC)协处理器(包括30个或更多核)、或嵌入式处理器等。该处理器可以被实现在一个或多个芯片上。处理器200可以是一个或多个衬底的一部分,和/或可以使用诸如例如BiCMOS、CMOS或NMOS等的多个加工技术中的任何一个技术将该处理器实现在一个或多个衬底上。
存储器层次结构包括在各核内的一个或多个级别的高速缓存、一个或多个共享高速缓存单元206的集合、以及耦合至集成存储器控制器单元214的集合的外部存储器(未示出)。该共享高速缓存单元206的集合可以包括一个或多个中间级高速缓存,诸如二级(L2)、三级(L3)、四级(L4)或其他级别的高速缓存、末级高速缓存(LLC)、和/或其组合。尽管在一个实施例中,基于环的互连单元212将集成图形逻辑208、共享高速缓存单元206的集合以及系统代理单元210/集成存储器控制器单元214互连,但替代实施例可使用任何数量的公知技术来将这些单元互连。在一个实施例中,可以维护一个或多个高速缓存单元206和核202A-N之间的一致性(coherency)。
在一些实施例中,一个或多个核202A-N能够实现多线程。系统代理210 包括协调和操作核202A-N的那些组件。系统代理单元210可包括例如功率控制单元(PCU)和显示单元。PCU可以是或包括用于调整核202A-N和集成图形逻辑208的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
核202A-N在架构指令集方面可以是同构的或异构的;即,这些核202A-N 中的两个或更多个核可能能够执行相同的指令集,而其他核可能能够执行该指令集的仅仅子集或不同的指令集。在一个实施例中,核202A-N是异构的并且包括下述“小型”核和“大型”核。
图3-6是示例性计算机架构的框图。本领域已知的对膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备的其他系统设计和配置也是合适的。一般地,能够包含本文中所公开的处理器和/或其他执行逻辑的多种系统和电子设备通常是合适的。
现在参考图3,所示出的是根据本发明一个实施例的系统300的框图。系统300可以包括一个或多个处理器310、315,这些处理器耦合到控制器中枢 320。在一个实施例中,控制器中枢320包括图形存储器控制器中枢(GMCH) 390和输入/输出中枢(IOH)350(其可以在分开的芯片上);GMCH 390包括存储器和图形控制器,存储器340和协处理器345耦合到该存储器和图形控制器;IOH 350将输入/输出(I/O)设备360耦合到GMCH 390。或者,存储器和图形控制器中的一个或两者可以被集成在处理器内(如本文中所描述的),存储器340和协处理器345直接耦合到处理器310以及控制器中枢320,控制器中枢320与IOH 350处于单个芯片中。
附加的处理器315的可选性质在图3中通过虚线来表示。每一处理器310、 315可包括本文中描述的处理核中的一个或多个,并且可以是处理器200的某一版本。
存储器340可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM) 或这两者的组合。对于至少一个实施例,控制器中枢320经由诸如前端总线 (FSB)之类的多分支总线、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接395与处理器310、315进行通信。
在一个实施例中,协处理器345是专用处理器,诸如例如高吞吐量MIC 处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。在一个实施例中,控制器中枢320可以包括集成图形加速器。
在物理资源310和315之间可以存在包括架构、微架构、热、和功耗特征等的一系列品质度量方面的各种差异。
在一个实施例中,处理器310执行控制一般类型的数据处理操作的指令。协处理器指令可嵌入在这些指令中。处理器310将这些协处理器指令识别为应当由附连的协处理器345执行的类型。因此,处理器310在协处理器总线或者其他互连上将这些协处理器指令(或者表示协处理器指令的控制信号)发布到协处理器345。协处理器345接受并执行所接收的协处理器指令。
现在参考图4,所示为根据本发明的实施例的更具体的第一示例性系统 400的框图。如图4所示,多处理器系统400是点对点互连系统,且包括经由点对点互连450耦合的第一处理器470和第二处理器480。处理器470和480 中的每一个都可以是处理器200的某一版本。在本发明的一个实施例中,处理器470和480分别是处理器310和315,而协处理器438是协处理器345。在另一实施例中,处理器470和480分别是处理器310和协处理器345。
处理器470和480被示出为分别包括集成存储器控制器(IMC)单元472 和482。处理器470还包括作为其总线控制器单元的一部分的点对点(P-P)接口476和478;类似地,第二处理器480包括P-P接口486和488。处理器470、 480可以经由使用点对点(P-P)接口电路478、488的P-P接口450来交换信息。如图4所示,IMC 472和482将处理器耦合到相应的存储器(即存储器432 和存储器434),这些存储器可以是本地附连到相应处理器的主存储器的部分。
处理器470、480可各自经由使用点对点接口电路476、494、486、498 的各个P-P接口452、454与芯片组490交换信息。芯片组490可以可选地经由高性能接口439与协处理器438交换信息。在一个实施例中,协处理器438 是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。
共享高速缓存(未示出)可被包括在任一处理器中,或在两个处理器的外部但经由P-P互连与这些处理器连接,使得如果处理器被置于低功率模式,则任一个或这两个处理器的本地高速缓存信息可被存储在该共享的高速缓存中。
芯片组490可经由接口496耦合至第一总线416。在一个实施例中,第一总线416可以是外围组件互连(PCI)总线或诸如PCI高速总线或另一第三代 I/O互连总线之类的总线,但是本发明的范围不限于此。
如图4所示,各种I/O设备414可连同总线桥418一起耦合到第一总线416,总线桥418将第一总线416耦合到第二总线420。在一个实施例中,诸如协处理器、高吞吐量MIC处理器、GPGPU的处理器、加速器(诸如例如图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或任何其他处理器的一个或多个附加处理器415耦合到第一总线416。在一个实施例中,第二总线420 可以是低引脚计数(LPC)总线。各种设备可以被耦合至第二总线420,在一个实施例中这些设备包括例如键盘和/或鼠标422、通信设备427以及诸如可包括指令/代码和数据430的盘驱动器或其他大容量存储设备的存储单元428。此外,音频I/O 424可以被耦合至第二总线420。注意,其他架构是可能的。例如,代替图4的点对点架构,系统可以实现多分支总线或其他此类架构。
现在参考图5,所示为根据本发明的实施例的更具体的第二示例性系统 500的框图。图4和图5中的相同部件用相同的附图标记表示,并从图5中省去了图4中的某些方面,以避免使图5的其他方面变得模糊。
图5示出处理器470、480可分别包括集成存储器和I/O控制逻辑(“CL”) 472和482。因此,CL 472、482包括集成存储器控制器单元并包括I/O控制逻辑。图5示出不仅存储器432、434耦合至CL 472、482,而且I/O设备514也耦合至控制逻辑472、482。传统I/O设备515被耦合至芯片组490。
现在参照图6,所示出的是根据本发明的实施例的SoC 600的框图。与图 2中相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC上的可选特征。在图6中,互连单元602被耦合至:应用处理器610,该应用处理器包括一个或多个核5 02A-N的集合以及共享高速缓存单元5 06;系统代理单元5 10;总线控制器单元5 16;集成存储器控制器单元514;一组或一个或多个协处理器620,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元630;直接存储器存取(DMA)单元632;以及用于耦合至一个或多个外部显示器的显示单元640。在一个实施例中,协处理器 620包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
本文公开的机制的多个实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本发明的多个实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码(诸如图4中示出的代码430)应用于输入指令,以执行本文描述的多个功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制不限于任何特定编程语言的范围。在任何情况下,该语言可以是编译语言或解释语言。
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令来实现,指令表示处理器中的各种逻辑,指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的机器可读介质上,并被提供给各种客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
此类机器可读存储介质可以包括但不限于通过机器或设备制造或形成的制品的非瞬态的有形安排,其包括存储介质,诸如:硬盘;任何其他类型的盘,包括软盘、光盘、紧致盘只读存储器(CD-ROM)、紧致盘可重写(CD-RW)以及磁光盘;半导体器件,例如只读存储器(ROM)、诸如动态随机存取存储器(DRAM) 和静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM);相变存储器(PCM);磁卡或光卡;或适于存储电子指令的任何其他类型的介质。
因此,本发明的多个实施例还包括非瞬态的有形机器可读介质,该介质包含指令或包含设计数据,诸如硬件描述语言(HDL),它定义本文中描述的结构、电路、装置、处理器和/或系统特征。也可将此类实施例称为程序产品。
在一些情况下,指令转换器可用来将指令从源指令集转换至目标指令集。例如,指令转换器可以变换(例如使用静态二进制变换、包括动态编译的动态二进制变换)、变形、仿真或以其他方式将指令转换成将由核来处理的一条或多条其他指令。指令转换器可在软件、硬件、固件、或其组合中实现。指令转换器可以在处理器上、在处理器外、或者部分在处理器上且部分在处理器外。
图7是根据本发明的多个实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。在所示的实施例中,指令转换器是软件指令转换器,但替代地,可在软件、固件、硬件或其各种组合中实现该指令转换器。图7示出可使用x86编译器704来编译利用高级语言702的程序,以生成可由具有至少一个x86指令集核的处理器716原生执行的x86二进制代码706。具有至少一个x86指令集核的处理器716表示能够通过兼容地执行或以其他方式处理下列各项来执行与具有至少一个x86指令集核的英特尔处理器基本相同的功能的任何处理器:1)英特尔x86指令集核的指令集的本质部分,或2)目标为在具有至少一个x86指令集核的英特尔处理器上运行以取得与具有至少一个x86指令集核的英特尔处理器基本相同的结果的应用或其他软件的目标代码版本。x86编译器704表示可用于生成x86二进制代码706(例如目标代码)的编译器,该x86二进制代码706能够通过附加的链接处理或无需附加的链接处理而在具有至少一个x86指令集核的处理器716上被执行。类似地,图7示出可以使用替代的指令集编译器708来编译利用高级语言702的程序,以生成可以由不具有至少一个x86指令集核的处理器714(例如,具有执行加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集、和/ 或执行加利福尼亚州桑尼维尔市的ARM控股公司的ARM指令集的核的处理器)原生执行的替代指令集二进制代码710。该指令转换器712被用于将x86 二进制代码706转换为可由不具有x86指令集核的处理器714原生执行的代码。该转换后的代码不大可能与替代性指令集二进制代码710相同,因为能够这样做的指令转换器难以制造;然而,转换后的代码将完成一般操作并由来自替代指令集的指令构成。因此,指令转换器712通过仿真、模拟或任何其他过程来表示允许不具有x86指令集处理器或核的处理器或其他电子设备执行x86二进制代码706的软件、固件、硬件或其组合。
用于安全地保存并恢复计算平台状态的装置和方法
本发明的一个实施例在生产期间使用受信任的软件,以便在处理器和控制单调递增计数器的处理器外组件(例如,微控制器)之间建立安全通道。该安全通道使得可由上述两个设备加密并存储认证密钥。在一个实施例中,将该单调计数器用作用于挂起/恢复操作的版本计数器,其中,包括当前计数器的结构必须是最新的(表示最近的挂起操作),并且每一个被输出的处理器状态包括当前计数器的指示。
在一个实施例中,向处理器和处理器外组件之间的配对操作分配唯一的ID,在数据库(例如,由原始设备制造商(OEM)维护的数据库)中注册该唯一的ID。可使用由被配对的设备生成并维护的认证密钥来生成该唯一的ID。此外,可将该唯一的ID用于支持现有的计算平台中附加的安全层级。例如,在软件防护扩展(SGX)实现中,可将该唯一的ID注入系统中所使用的所有的SGX密钥中。因此,如果发生未经授权的配对,则旧SGX 密钥将变得不可访问,并且OEM将不向该未经授权的配对供应新密钥。
在一个实施例中,在部署之后,当恢复被输出的状态时,处理器验证来自经密钥认证的处理器外组件(如,微控制器)的消息,并且确保该状态包括最新的计数器。如果该计数器得到认证,并且该状态匹配,则恢复该状态。当要挂起机器时,操作系统(OS)(或其他软件组件)可调用机器状态寄存器(MSR)以输出当前状态以及(来自引导程序(boot))的当前计数器。禁用该SGX实现,并且随后可关闭该OS。
图8示出系统架构的一个实施例,该系统架构包括一起操作以安全地共享计数器消息认证码(MAC)密钥822的配对飞地(enclave)805和芯片组可管理性引擎(CSME)813,该配对飞地在处理器801上被执行。在一个实施例中,配对飞地805中的计数器MAC密钥生成逻辑802随机地生成计数器 MAC密钥822。例如,该计数器MAC密钥生成逻辑802使用由处理器801提供的数字随机数生成器(DRNG)来生成该计数器MAC密钥822。然而,本发明的基本原理不限于随机生成的密钥或用于生成随机数的任何特定机制。这些原理也不限于在计算平台上生成该计数器MAC密钥。例如,在一个实施例中,在别处(例如,在服务器上)生成该计数器MAC密钥,然后,将其递送到配对飞地805。
在一个实施例中,密封该计数器MAC密钥822(例如,使用仅为该处理器801所知的机密进行加密),然后,将该被密封的计数器MAC密钥825 存储在可由该处理器801访问的安全存储设备820中。此外,在一个实施例中,在总线840上将该计数器MAC密钥822的副本传送到CSME 813。在一个实施例中,分别在配对飞地805和CSME 813中的加密认证协议模块804和 806在总线840(如所指示的那样,该总线可以是诸如主机嵌入式控制器接口(HECI)总线之类的不安全总线)上建立安全通信通道。在一个实施例中,该加密认证协议包括基于增强型隐私ID(EPID)的密钥交换协议,例如,(ISO 20009-2所指定的)直接匿名证实(DAA)SIGMA协议。然而,本发明的基本原理不限于任何特定的加密认证协议。在一个实施例中,一旦接收到该计数器MAC密钥822的副本,CSME中的加密逻辑808就对该计数器MAC密钥822进行加密,并且将经加密的计数器MAC密钥835存储在安全存储设备830中。
在一个实施例中,使用单个物理安全存储设备实现图8中所示的安全存储设备830和安全存储设备820两者。例如,可由集成在计算平台上的,可用于存储诸如计算系统BIOS、芯片组镜像等之类的其他信息的闪存来实现安全存储设备820和830两者。在该实施例中,可在总线840上将被密封的计数器MAC密钥825安全地传送到CSME 813,然后,该CSME 813可将该被密封的计数器MAC密钥825存储在代表处理器801的安全存储设备830中。本发明的基本原理不限于用于存储被密封的计数器MAC密钥825和经加密的计数器MAC密钥835的任何特定类型的存储设备或机制。
图8示出配对飞地805和CSME 813之间的直接连接。在替代实施例中,可使用一个或多个中间模块在总线840上建立该安全连接。例如,在一个实施例中,CSME与平台服务飞地(PSE)(未示出)建立第一安全连接,然后该PSE与该配对飞地805(以及潜在的一个或多个其他安全飞地)建立第二安全连接。在一个实施例中,PSE和CSME使用上文所讨论的基于EPID的配对(例如,使用DAA SIGMA协议)建立安全连接,并且PSE和配对飞地使用基于EREPORT的认证来建立安全连接。具体而言,该配对飞地可执行 SGX指令ERPORT以创建加密报告,然后传送该加密报告以与该PSE进行验证。然而,如先前所述,本发明的基本原理不限于用于建立配对飞地和CSME 之间的安全连接的任何特定技术。
在一个实施例中,CSME 813包括对重放保护单调计数器(RPMC)810 的安全访问,或向该CSME 813提供对重放保护单调计数器(RPMC)810 的安全访问。在一个实施例中,该RPMC 810充当版本计数器,在该版本计数器中,当处理器(或在该处理器上执行的软件)进入恢复(或挂起)状态时,该处理器(或在该处理器上执行的软件)向CSME 813发送使该计数器增长的INCREMENT(增长)命令。当在恢复操作期间恢复被挂起的处理器状态时,将与被挂起的处理器状态(其可以与当前的处理器状态不同) 一起存储的计数器值与从CSME 813中提供的(从RPMC 810中检索到的) 当前的计数器值进行比较。如果值匹配(假定也通过了下文所讨论的其他安全校验),则成功地恢复被挂起的处理器状态。在一个实施例中,在安全闪存中实现RPMC 810,该安全闪存可以是(或可以不是)与用于安全存储设备820和830的闪存相同的闪存。下文提供与RPMC 810有关的附加细节。
如上所述,在一个实施例中,向处理器和其他系统组件中的每一个配对提供以加密方式绑定到这些设备的标识。本文中将该标识称为“配对ID”, 将其计算为MAC密钥822的加密散列或MAC。在生产期间,可在数据库中注册每个平台中的配对ID。仅具有经注册配对的平台受认可,并且被供应证实密钥。
图9示出在其中配对飞地805中的配对ID生成逻辑902使用计数器MAC 密钥822生成配对ID 904的一个实施例。在一个实施例中,这是通过使用私有密钥生成对计数器MAC密钥822的散列或MAC来实现。所得到的配对ID 904包括计数器MAC密钥822的非敏感版本。也就是说,该配对ID 904是基于唯一的计数器MAC密钥822的唯一码,但是,该计数器MAC密钥822是保密的,并且不能够从该配对ID 904中导出。
在一个实施例中,可由该配对飞地收集附加的配对数据,并将这些附加的配对数据用于注册。这可包括例如与CSME 813有关的证实数据(如,被分配给CSME的增强型隐私ID(EPID))。EPID是数字签名方案,其中,一组公钥对应多个私钥,可将这些私钥中的一个分配到该CSMA中。可使用每一个唯一的EPID私钥生成签名,然后,可使用组公钥来验证该签名。因此,如果使用EPID,则可收集EPID信息并且将其用于注册。可将诸如配对飞地805的度量(例如,该配对飞地805唯一的配置数据或标识数据)之类的各种附加数据用于注册。
在一个实施例中,配对飞地805中的注册逻辑905在生产平台数据库950 中注册配对ID和任何其他配对数据906(例如,上文所述的EPID信息)。然后,可访问该生产平台数据库950以确保处理器和其他组件之间的配对保持一致。如果检测到变化(例如,将新的/未配对的组件引入了该系统),则在一个实施例中,将不供应证实密钥(例如,SGX密钥)并且/或者使证实密钥不可用。
图10示出用于对计算系统的多个组件进行配对和注册的方法的一个实施例。可在图8-9中所示系统的情境中实现该方法,但是该方法不限于任何特定的系统实现。
在1001处,安全模块(例如,一个实施例中的配对飞地805)生成计数器MAC密钥(在本文中有时被简单地称为“MAC密钥”)。例如,如所指出的那样,该安全模块可使用该计算平台上所提供的数字随机数生成器 (DRNG)来生成该计数器MAC密钥822。
在1002处,该安全模块密封该计数器MAC密钥,并将被密封的MAC密钥存储在安全存储设备中。在一个实施例中,“密封”的意思是使用仅为执行该密封操作的实体(例如,处理器)所知的机密密钥、并且以仅能由该实体解密的方式来对该MAC密钥进行加密。
在1003处,该安全模块实现加密认证协议以建立与处理器外组件之间的安全通信通道。在本文中所讨论的某些实施例中,该处理器外组件是芯片组可管理性引擎(CSME)。可使用任何安全通信协议来建立该安全连接。例如,如所指出的那样,该加密认证协议可包括基于增强型隐私ID(EPID) 的密钥交换协议,例如,(ISO 20009-2所指定的)直接匿名证实(DAA) SIGMA协议。然而,本发明的基本原理不限于任何特定的加密认证协议。
在1004处,一旦建立了安全通道,该安全模块将该计数器MAC密钥发送到处理器外组件(OPC)中,并且在1005处,该OPC对该计数器MAC密钥的副本进行加密。在1006处,将经OPC加密的和经处理器密封的、该计数器MAC密钥的副本存储在安全的非易失性存储设备中,用于将来的挂起/ 恢复操作。如所指出的那样,该处理器可利用与处理器外组件分开的安全存储设备,或者处理器和处理器外组件两者都可使用同一个安全存储设备 (例如,安全闪存)。在后一种情况下,该处理器将其计数器MAC密钥的被密封的副本发送到该处理器外组件中,该处理器外组件执行存储操作。在前一种情况下,该处理器将其计数器MAC密钥的副本保存到其安全存储设备中。
图11示出用于注册计算系统的多个组件的一个实施例。可在图8-9中所示系统的情境中实现该方法,但是该方法不限于任何特定的系统实现。
在1101处,可使用计数器MAC密钥来生成配对ID。例如,在一个实施例中,由安全模块来实现,该安全模块(例如,使用机密密钥)执行计数器MAC密钥的加密散列或MAC。
在1102处,可选地收集其他配对信息。该信息可包括例如与处理器外组件有关的证实数据(例如,增强型隐私ID(EPID))。此外,如所指出的那样,也可将与安全模块有关的信息用于注册。
在1103处,在生产平台数据库中注册该配对ID(以及潜在的其他配对)。然后,可访问该生产平台数据库以确保处理器和其他组件之间的配对保持一致。如果检测到变化(例如,将新的/未配对的组件引入了该系统),则在一个实施例中,将不供应证实密钥(例如,SGX密钥),并且/或者使证实密钥不可用。
图12示出在本发明的一个实施例中、在恢复操作(例如,当系统从被挂起的状态苏醒时)期间所采用的操作序列和架构。在图12中所示的特定实施例中,安全挂起/恢复(SSR)模块1200使处理器(未示出)结合芯片组可管理性引擎(CSME)813执行一系列操作,从而确保加载了有效的处理器状态。
执行现时数(nonce)生成器1201(其可包括GETSNONCE(获取现时数)指令)以生成加密现时数1202。如本领域技术人员所理解的那样,加密现时数是在加密通信期间仅能被使用一次的随机数。然后,该SSR模块1200将该现时数1202和INCREMENT命令传送到CSME813。在一个实施例中,在不安全总线(如,HECI总线)上传送该INCREMENT命令和现时数。在另一实施例中,该SSR 1200可实现与CSME 813之间的加密认证协议以在该总线上建立安全的通信通道。
响应于该INCREMENT指令,该CSME使RPMC 810递增。在一个实施例中,计数器结构生成器1205生成COUNTER_STRUCTURE(计数器结构) 1206,该COUNTER_STRUCTURE包括现时数和从RPMC 810中读取的当前计数器值。在一个实施例中,MAC生成模块1210使用MAC密钥822,生成对该COUNTER_STRUCTURE的MAC(或其他散列操作)。然后,如所示出的那样,将所得到的COUNTER_STRUCTURE和MAC 1212传回到SSR模块1200中。
然后,该SSR 1200执行LOADSTATE(加载状态)指令1220,该指令包括指针,该指针指向:(1)由配对飞地(见图8和10以及相关联的文本) 创建的SEALED_COUNTER_MAC_KEY(被密封的计数器MAC密钥)结构 825;(2)由CSME 813返回的COUNTER_STATE(计数器状态)1206;以及(3)PROCESSOR_STATE 1225,其包括先前的(在挂起操作之前的)内部处理器状态值以及正确的计数器。
在一个实施例中,该LOADSTATE指令对计数器MAC密钥825进行解密,从而验证在处理器上创建了该计数器MAC密钥825。该LOADSTATE指令使用计数器MAC密钥825验证由CSME813在COUNTER_STRUCTURE 上生成的MAC。该LOADSTATE指令验证COUNTER_STRUCTURE中的现时数与先前由现时数生成器1201提供的现时数相同。然后,该LOADSTATE 指令对PROCESSOR_STATE 1225进行解密并校验其完整性。最后,该 LOADSTATE指令通过验证COUNTER_STRUCTURE 1206中的当前计数器与PROCESSOR_STATE 1225中的计数器相同来验证PROCESSOR_STATE 1225是最新的状态。如果COUNTER_STRUCTURE 1206中的当前计数器与PROCESSOR_STATE 1225中的计数器匹配,则PROCESSOR_STATE 1225 是最新的状态。如果所有的安全校验都通过了,则加载并执行 PROCESSOR_STATE。
图13示出可在处理器挂起时(例如,处理器进入高级配置和电源接口 (ACPI)规范所定义的S3或S4状态)由SSR模块1200执行的操作序列。响应于挂起指示1301,执行EXPORT_PROCESSOR_STATE(输出处理器状态) 指令1302。在一个实施例中,该EXPORT_PROCESSOR_STATE指令1302 输出包含当前处理器状态和下一计数器值1304(其是下一次引导将预期的计数器)的新的PROCESSOR_STATE结构1225。当前的处理器状态可包括诸如处理器架构状态和软件防护扩展(SGX)所使用的分页密钥数据(例如,分页加密元数据(PCMD))、或成功地恢复计算系统的操作所需的任何其他数据之类的任何状态信息。如果执行了附加的恢复和挂起,则该计数器将小于当前计数器,并且将被检测为旧的PROCESSOR_STATE。在一个实施例中,在输出该PROCESSOR_STATE结构1225之后,该操作系统关闭,并且该系统进入被挂起的状态(如,S3或S4状态)。
在一个实施例中,可将由该系统使用的所有密钥绑定到系统组件的配对中,并且在任何重新配对事件之后必须改变所有这些密钥。这对于防止将这些密钥暴露给可使用不受信任硬件的恶意发起的配对而言是重要的。为了实现所有密钥之间的绑定以及实现配对,在一个实施例中,将配对ID 904注入到所有的密钥中。
如果配对环境比运行时引导环境更安全,则可在诸如通过使用下列方法导出安全密钥之后添加配对ID 904:
SuspendableKey=CMAC(PairingEnvironmentKey,PairingID)(可挂起密钥=CMAC(配对环境密钥,配对ID))
图14示出在其中密钥注入模块1401将配对ID 904注入到一组现有密钥 1401-1403中的每一个密钥中以形成PID注入密钥1411-1413的一个实施例。在一个实施例中,该密钥注入模块1401通过生成对密钥1401-1403的散列以及使用计数器MAC密钥822的配对ID904来计算运行时PID注入密钥 1411-1413。在一个实施例中,在配对环境期间执行该密钥注入模块1401,并且该密钥注入模块1401具有其在运行时环境中可用的数据。该密钥注入模块1401使用GETKEY(获取密钥)指令来获取密钥1401-1403(例如,获取每一个安全PairingEnvironmentKey)。然后,该密钥注入模块1401通过对由指令和配对ID 904返回的密钥执行计数器MAC密钥操作来计算可挂起环境中可用的运行时密钥1411-1413。
通过使用上述受信任的软件,可在计算系统中的多个组件之间执行经安全认证的密钥交换(其过于复杂而不能由处理器逻辑自身来支持)。这允许配对操作发生在不安全的生产设施中。此外,该系统能够不需要处理器上的任何存储而重新使用现有的多功能总线(如,HECI总线),从而安全地从CSME 813中读取计数器的值。该系统支持不损害安全性而进行翻新,因为与恶意硬件的重新配对会破坏全部这些密钥。当在经授权环境中完成时,该环境可注册新的配对与供应(provisioning)服务以获取供应给该平台的新密钥,从而将该平台恢复到受信任状态。
本发明的多个实施例可以包括上述各个步骤。可在可被用于使通用或专用处理器执行这些步骤的机器可执行指令中使这些步骤具体化。或者,可由包含用于执行这些步骤的硬连线逻辑的专用硬件组件,或可由被编程的计算机组件和自定义硬件组件的任何组合来执行这些步骤。如本文中所述,指令可以指硬件的具体配置,例如,被配置成执行某些操作或具有预定功能的专用集成电路(ASIC),或者被存储在被具体化在非瞬态计算机可读介质中的存储器中的软件指令。因此,可使用被存储在一个或多个电子设备(例如,终端站、网络元件等)上并在其上被执行的代码和数据来执行附图中所示的技术。此类电子设备使用诸如非瞬态计算机机器可读存储介质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪存设备;相变存储器)之类的计算机机器可读介质和瞬态计算机机器可读通信介质(例如,电、光、声或其他形式的传播信号——诸如载波、红外信号、数字信号等)来(内部地和/或在网络上与其他电子设备之间进行) 存储和传递代码和数据。另外,此类电子设备一般包括耦合至一个或多个其他组件的一个或多个处理器的集合,所述一个或多个其他组件例如是一个或多个存储设备(非瞬态机器可读存储介质)、用户输入/输出设备(例如,键盘、触摸屏和/或显示器)以及网络连接。该组处理器和其他组件的耦合一般是通过一个或多个总线和桥(也称为总线控制器)实现的。存储设备和携带网络话务的信号分别表示一个或多个机器可读存储介质和机器可读通信介质。因此,给定电子设备的存储设备通常存储用于在该电子设备的一个或多个处理器的集合上执行的代码和/或数据。当然,本发明的实施例的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。贯穿此具体实施方式,为了进行解释,陈述了众多具体细节以提供对本发明的透彻理解。然而,对本领域技术人员显而易见的是,没有这些具体细节中的一些细节也可实施本发明。在某些实例中,并不详细描述公知的结构和功能以免使本发明的主题模糊。因此,本发明的范围和精神应根据所附权利要求书来判断。

Claims (43)

1.一种用于处理器的方法,包括:
响应于检测到处理器恢复操作而读取单调计数器值;
生成至少包括所述单调计数器值的数据结构;
使用第一密钥生成对所述数据结构的消息认证码MAC;
安全地将所述数据结构和所述MAC提供给在所述处理器上被执行的模块;
所述模块验证所述MAC,将所述单调计数器值与在前一挂起操作期间被存储的计数器值作比较,并且如果所述单调计数器值与所述在前一挂起操作期间被存储的计数器值匹配,则加载完成所述恢复操作所要求的处理器状态。
2.如权利要求1所述的方法,其特征在于,验证所述MAC包括:使用所述第一密钥生成对所述数据结构的MAC;以及确认所生成的MAC与所提供的MAC相同。
3.如权利要求1所述的方法,其特征在于,进一步包括:
传送来自所述模块的递增命令,以使所述单调计数器响应于挂起或恢复操作而递增。
4.如权利要求3所述的方法,其特征在于,进一步包括:
由所述模块生成现时数,并且将所述现时数传送到处理器外组件;
所述处理器外组件使用所述单调计数器值和所述现时数两者生成所述数据结构;
其中,所述模块将所生成的现时数与所述数据结构中接收到的现时数进行比较,其中,仅在所述所生成的现时数与所述数据结构中接收到的现时数匹配的时候加载用于恢复操作的所述处理器状态。
5.如权利要求4所述的方法,其特征在于,所述模块在加载所述处理器状态之前进一步解密所述处理器状态并校验所述处理器状态的完整性。
6.如权利要求4所述的方法,其特征在于,所述处理器外组件包括芯片组可管理性引擎CSME,并且其中,所述模块包括由所述处理器执行的挂起/恢复程序代码。
7.如权利要求4所述的方法,其特征在于,进一步包括:
实现加密协议以在所述处理器和所述处理器外组件之间建立安全连接;
由所述处理器生成所述第一密钥;以及
在所述安全连接上将所述第一密钥从所述处理器传送到所述处理器外组件。
8.如权利要求7所述的方法,其特征在于,所述加密协议包括基于增强型隐私ID EPID的密钥交换协议。
9.如权利要求7所述的方法,其特征在于,生成所述第一密钥包括:使用数字随机数生成器DRNG生成将用于所述第一密钥的随机数。
10.如权利要求7所述的方法,其特征在于,所述处理器和所述处理器外组件两者都对所述第一密钥的多个副本进行加密,并将所述第一密钥存储在安全存储设备中。
11.一种用于处理器的方法,包括:
生成第一密钥,其中,所述第一密钥包括消息认证码MAC密钥;
安全地与处理器外组件共享所述第一密钥,其中,所述处理器外组件包括微控制器;
使用所述第一密钥以生成配对标识ID;以及
使用所述配对标识ID来标识所述处理器和所述处理器外组件之间的配对。
12.如权利要求11所述的方法,其特征在于,进一步包括:
将所述配对标识ID存储在平台数据库中;并且
随后查询所述平台数据库以确定是否向包含所述配对的计算机系统供应证实密钥。
13.如权利要求11所述的方法,其特征在于,进一步包括:
将所述配对标识ID注入包含所述配对的计算机系统中所使用的一个或多个其他MAC密钥中。
14.如权利要求13所述的方法,其特征在于,所述一个或多个其他MAC密钥包括用于在所述计算机系统上建立安全飞地的安全密钥。
15.如权利要求11所述的方法,其特征在于,生成所述第一密钥包括:使用数字随机数生成器DRNG生成将用于所述第一密钥的随机数。
16.如权利要求13所述的方法,其特征在于,注入操作包括:使用第二密钥生成对所述配对标识ID和所述一个或多个其他MAC密钥的消息认证码。
17.一种处理器,包括:
第一逻辑,所述第一逻辑用于执行至少一条指令,所述至少一条指令用于在挂起操作之后的恢复操作时加载处理器状态;
所述至少一条指令用于使所述处理器验证利用第一密钥对数据结构生成的消息认证码MAC,所述数据结构包含第一单调计数器值,所述至少一条指令使所述处理器将所述第一单调计数器值与在所述挂起操作期间被存储的第二计数器值作比较,并且在所述第一单调计数器值匹配所述第二计数器值的时候加载所述恢复操作所要求的处理器状态。
18.如权利要求17所述的处理器,其特征在于,为了验证所述MAC,所述处理器用于:使用所述第一密钥生成对所述数据结构的MAC,并且确认所生成的MAC与所提供的MAC相同。
19.如权利要求17所述的处理器,其特征在于,所述处理器用于:将递增命令传送到处理器外组件,以使所述单调计数器响应于挂起或恢复操作而递增。
20.如权利要求19所述的处理器,其特征在于,所述处理器用于生成现时数,并且将所述现时数传送到所述处理器外组件;所述处理器外组件使用所述单调计数器值和所述现时数两者生成所述数据结构;其中,所述处理器用于将所生成的现时数和所述数据结构中接收到的现时数作比较,其中,仅在所述所生成的现时数和所述数据结构中接收到的现时数匹配的时候才加载所述处理器状态。
21.如权利要求20所述的处理器,其特征在于,所述处理器在加载所述处理器状态之前进一步解密所述处理器状态并校验所述处理器状态的完整性。
22.如权利要求20所述的处理器,其特征在于,所述处理器外组件包括芯片组可管理性引擎CSME。
23.如权利要求20所述的处理器,其特征在于,所述处理器用于:实现加密协议以在所述处理器和所述处理器外组件之间建立安全连接;生成所述第一密钥;并且在所述安全连接上将所述第一密钥从所述处理器传送到所述处理器外组件。
24.如权利要求23所述的处理器,其特征在于,所述加密协议包括基于增强型隐私IDEPID的密钥交换协议。
25.如权利要求23所述的处理器,其特征在于,生成所述第一密钥包括:使用数字随机数生成器DRNG生成将用于所述第一密钥的随机数。
26.如权利要求23所述的处理器,其特征在于,所述处理器和所述处理器外组件两者都对所述第一密钥的多个副本进行加密,并将所述第一密钥存储在安全存储设备中。
27.一种机器可读介质,包括存储于其上的多条指令,所述多条指令当被执行时使计算设备执行如权利要求1-16中任一项所述的方法。
28.一种用于处理器的设备,包括:
用于响应于检测到处理器恢复操作而读取单调计数器值的装置;
用于生成至少包括所述单调计数器值的数据结构的装置;
用于使用第一密钥生成对所述数据结构的消息认证码MAC的装置;
用于安全地将所述数据结构和所述MAC提供给在所述处理器上被执行的模块的装置;
用于所述模块执行以下操作的装置;验证所述MAC,将所述单调计数器值与在前一挂起操作期间被存储的计数器值作比较,并且如果所述单调计数器值与所述在前一挂起操作期间被存储的计数器值匹配,则加载完成所述恢复操作所要求的处理器状态。
29.如权利要求28所述的设备,其特征在于,用于验证所述MAC的装置包括:用于使用所述第一密钥生成对所述数据结构的MAC的装置;以及用于确认所生成的MAC与所提供的MAC相同的装置。
30.如权利要求28所述的设备,其特征在于,进一步包括:
用于传送来自所述模块的递增命令以使所述单调计数器响应于挂起或恢复操作而递增的装置。
31.如权利要求30所述的设备,其特征在于,进一步包括:
用于由所述模块生成现时数并且将所述现时数传送到处理器外组件的装置;
用于由所述处理器外组件使用所述单调计数器值和所述现时数两者生成所述数据结构的装置;
其中,所述模块将所生成的现时数与所述数据结构中接收到的现时数进行比较,其中,仅在所述所生成的现时数与所述数据结构中接收到的现时数匹配的时候加载用于恢复操作的所述处理器状态。
32.如权利要求31所述的设备,其特征在于,所述模块在加载所述处理器状态之前进一步解密所述处理器状态并校验所述处理器状态的完整性。
33.如权利要求31所述的设备,其特征在于,所述处理器外组件包括芯片组可管理性引擎CSME,并且其中,所述模块包括由所述处理器执行的挂起/恢复程序代码。
34.如权利要求31所述的设备,其特征在于,进一步包括:
用于实现加密协议以在所述处理器和所述处理器外组件之间建立安全连接的装置;
用于由所述处理器生成所述第一密钥的装置;以及
用于在所述安全连接上将所述第一密钥从所述处理器传送到所述处理器外组件的装置。
35.如权利要求34所述的设备,其特征在于,所述加密协议包括基于增强型隐私IDEPID的密钥交换协议。
36.如权利要求34所述的设备,其特征在于,用于生成所述第一密钥的装置包括:用于使用数字随机数生成器DRNG生成将用于所述第一密钥的随机数的装置。
37.如权利要求34所述的设备,其特征在于,所述处理器和所述处理器外组件两者都对所述第一密钥的多个副本进行加密,并将所述第一密钥存储在安全存储设备中。
38.一种用于处理器的设备,包括:
用于生成第一密钥的装置,其中,所述第一密钥包括消息认证码MAC密钥;
用于安全地与处理器外组件共享所述第一密钥的装置,其中,所述处理器外组件包括微控制器;
用于使用所述第一密钥以生成配对标识ID的装置;以及
用于使用所述配对标识ID来标识所述处理器和所述处理器外组件之间的配对的装置。
39.如权利要求38所述的设备,其特征在于,进一步包括:
用于将所述配对标识ID存储在平台数据库中的装置;以及
用于随后查询所述平台数据库以确定是否向包含所述配对的计算机系统供应证实密钥的装置。
40.如权利要求38所述的设备,其特征在于,进一步包括:
用于将所述配对标识ID注入包含所述配对的计算机系统中所使用的一个或多个其他MAC密钥中的装置。
41.如权利要求40所述的设备,其特征在于,所述一个或多个其他MAC密钥包括用于在所述计算机系统上建立安全飞地的安全密钥。
42.如权利要求38所述的设备,其特征在于,用于生成所述第一密钥的装置包括:用于使用数字随机数生成器DRNG生成将用于所述第一密钥的随机数的装置。
43.如权利要求40所述的设备,其特征在于,用于注入的装置包括:用于使用第二密钥生成对所述配对标识ID和所述一个或多个其他MAC密钥的消息认证码的装置。
CN201510186144.5A 2014-05-19 2015-04-17 用于安全地保存并恢复计算平台状态的方法和装置 Expired - Fee Related CN105095772B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/281,651 US9407636B2 (en) 2014-05-19 2014-05-19 Method and apparatus for securely saving and restoring the state of a computing platform
US14/281,651 2014-05-19

Publications (2)

Publication Number Publication Date
CN105095772A CN105095772A (zh) 2015-11-25
CN105095772B true CN105095772B (zh) 2019-06-14

Family

ID=54539480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510186144.5A Expired - Fee Related CN105095772B (zh) 2014-05-19 2015-04-17 用于安全地保存并恢复计算平台状态的方法和装置

Country Status (2)

Country Link
US (2) US9407636B2 (zh)
CN (1) CN105095772B (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846438B2 (en) * 2014-07-24 2020-11-24 Nuvoton Technology Corporation RPMC flash emulation
US10534724B2 (en) * 2015-12-24 2020-01-14 Intel Corporation Instructions and logic to suspend/resume migration of enclaves in a secure enclave page cache
US10382210B2 (en) * 2016-01-10 2019-08-13 Apple Inc. Secure device pairing
JP6260064B2 (ja) 2016-03-14 2018-01-17 Kddi株式会社 通信ネットワークシステム及び車両
US10469265B2 (en) * 2016-03-31 2019-11-05 Intel Corporation Technologies for secure inter-enclave communications
US10135622B2 (en) * 2016-06-03 2018-11-20 Intel Corporation Flexible provisioning of attestation keys in secure enclaves
US10708067B2 (en) * 2016-06-18 2020-07-07 Intel Corporation Platform attestation and registration for servers
US10592435B2 (en) * 2016-07-14 2020-03-17 Intel Corporation System, apparatus and method for secure monotonic counter operations in a processor
US10243990B1 (en) 2016-09-23 2019-03-26 Apple Inc. Systems and methods for detecting replay attacks on security space
US20180097839A1 (en) * 2016-10-01 2018-04-05 Neeraj S. Upasani Systems, apparatuses, and methods for platform security
US10482034B2 (en) * 2016-11-29 2019-11-19 Microsoft Technology Licensing, Llc Remote attestation model for secure memory applications
US10911451B2 (en) * 2017-01-24 2021-02-02 Microsoft Technology Licensing, Llc Cross-platform enclave data sealing
US10747905B2 (en) 2017-05-11 2020-08-18 Microsoft Technology Licensing, Llc Enclave ring and pair topologies
US10528722B2 (en) * 2017-05-11 2020-01-07 Microsoft Technology Licensing, Llc Enclave pool shared key
US11488121B2 (en) 2017-05-11 2022-11-01 Microsoft Technology Licensing, Llc Cryptlet smart contract
US10637645B2 (en) 2017-05-11 2020-04-28 Microsoft Technology Licensing, Llc Cryptlet identity
US10740455B2 (en) 2017-05-11 2020-08-11 Microsoft Technology Licensing, Llc Encave pool management
US10833858B2 (en) 2017-05-11 2020-11-10 Microsoft Technology Licensing, Llc Secure cryptlet tunnel
US10664591B2 (en) 2017-05-11 2020-05-26 Microsoft Technology Licensing, Llc Enclave pools
CN107544918B (zh) * 2017-08-17 2021-01-15 海光信息技术股份有限公司 一种内存页共享方法
EP3676685A4 (en) * 2018-01-05 2021-04-28 Hewlett-Packard Development Company, L.P. DETECTIONS OF SLEEP STATES
US10659054B2 (en) * 2018-02-23 2020-05-19 Nxp B.V. Trusted monotonic counter using internal and external non-volatile memory
US11436883B2 (en) * 2018-07-09 2022-09-06 Hampton Products International Corporation Secured tethering process between devices
TWI728572B (zh) * 2019-07-04 2021-05-21 新唐科技股份有限公司 具有快閃記憶體仿真功能之控制器及其控制方法
CN111261214B (zh) * 2020-04-30 2020-08-07 深圳市芯天下技术有限公司 应答保护单调计数器及管理其计数值的方法
TWI724930B (zh) * 2020-06-22 2021-04-11 華邦電子股份有限公司 記憶體裝置以及用於控制非揮發性記憶體的操作方法
US11829612B2 (en) * 2020-08-20 2023-11-28 Micron Technology, Inc. Security techniques for low power mode of memory device
US11294582B2 (en) * 2020-09-08 2022-04-05 Micron Technology, Inc. Customer-specific activation of functionality in a semiconductor device
US11444771B2 (en) * 2020-09-08 2022-09-13 Micron Technology, Inc. Leveraging a trusted party third-party HSM and database to securely share a key
US20220207155A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Instruction support for saving and restoring key information
CN113904789B (zh) * 2021-08-17 2024-03-29 卡斯柯信号有限公司 一种铁路安全通信协议的加密方法、设备以及存储介质
CN114329640B (zh) * 2021-12-31 2022-12-06 上海芯存天下电子科技有限公司 计数值读取方法、计数方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169811A (zh) * 2006-10-23 2008-04-30 郑保夏 非接触式数字安全系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2417939A1 (en) 2000-08-09 2002-02-14 California Institute Of Technology Active nems arrays for biochemical analyses
US7165135B1 (en) * 2002-04-18 2007-01-16 Advanced Micro Devices, Inc. Method and apparatus for controlling interrupts in a secure execution mode-capable processor
US7681247B2 (en) * 2003-02-27 2010-03-16 Sun Microsystems, Inc. Anti-theft system and method for semiconductor devices and other electronic components
US20060198515A1 (en) * 2005-03-03 2006-09-07 Seagate Technology Llc Secure disc drive electronics implementation
US20060271796A1 (en) * 2005-05-25 2006-11-30 Kaimal Biju R Method and system for protecting information stored in an electronic device against backup and restore attack
US7930728B2 (en) * 2006-01-06 2011-04-19 Intel Corporation Mechanism to support rights management in a pre-operating system environment
US7444670B2 (en) * 2006-03-21 2008-10-28 International Business Machines Corporation Method and apparatus for migrating a virtual TPM instance and preserving uniqueness and completeness of the instance
US20080320263A1 (en) * 2007-06-20 2008-12-25 Daniel Nemiroff Method, system, and apparatus for encrypting, integrity, and anti-replay protecting data in non-volatile memory in a fault tolerant manner
KR100911556B1 (ko) * 2007-08-06 2009-08-10 현대자동차주식회사 디알엠 콘텐츠의 전송방법
TWI341095B (en) * 2007-12-12 2011-04-21 Nat Univ Tsing Hua Light-overhead and flexible wireless sensor message authentication method
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
US20110099507A1 (en) * 2009-10-28 2011-04-28 Google Inc. Displaying a collection of interactive elements that trigger actions directed to an item
US8171529B2 (en) * 2009-12-17 2012-05-01 Intel Corporation Secure subscriber identity module service
US9087200B2 (en) 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
US8972746B2 (en) 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
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
EP2895935A4 (en) * 2012-09-14 2016-05-11 Intel Corp METHOD AND DEVICE FOR PROTECTING MEMORY AREAS DURING LOW-POWER CONDITIONS
US9189411B2 (en) 2012-12-28 2015-11-17 Intel Corporation Logging in secure enclaves
US20140298061A1 (en) * 2013-04-01 2014-10-02 Cleversafe, Inc. Power control in a dispersed storage network
US9276750B2 (en) 2013-07-23 2016-03-01 Intel Corporation Secure processing environment measurement and attestation
US9584327B2 (en) * 2013-07-31 2017-02-28 Arista Networks, Inc. System and method for authentication for transceivers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169811A (zh) * 2006-10-23 2008-04-30 郑保夏 非接触式数字安全系统

Also Published As

Publication number Publication date
US20150334114A1 (en) 2015-11-19
US20160203340A1 (en) 2016-07-14
US10019601B2 (en) 2018-07-10
CN105095772A (zh) 2015-11-25
US9407636B2 (en) 2016-08-02

Similar Documents

Publication Publication Date Title
CN105095772B (zh) 用于安全地保存并恢复计算平台状态的方法和装置
US10671740B2 (en) Supporting configurable security levels for memory address ranges
US11664994B2 (en) Secure unlock systems for locked devices
US11316661B2 (en) Encryption interface
CN107667499B (zh) 带密钥散列消息认证码处理器、方法、系统和指令
US9893881B2 (en) Efficient sharing of hardware encryption pipeline for multiple security solutions
RU2599340C2 (ru) Использование аутентифицированных манифестов для обеспечения внешней сертификации многопроцессорных платформ
US11392703B2 (en) Systems, apparatuses, and methods for platform security
CN106575215B (zh) 处理指令的系统、设备、方法、处理器、介质和电子设备
US10031861B2 (en) Protect non-memory encryption engine (non-mee) metadata in trusted execution environment
US20160180095A1 (en) Measured boot capability
US10270598B2 (en) Secure elliptic curve cryptography instructions
US20180097839A1 (en) Systems, apparatuses, and methods for platform security
US10140458B2 (en) Parallelized authentication encoding
TW201723804A (zh) 安全模指數處理器、方法、系統、及指令
JP2021057879A (ja) プライベートパイプラインを持つプロセッサ
US20220417005A1 (en) Methods and apparatuses to provide chiplet binding to a system on a chip platform having a disaggregated architecture

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190614