CN105339912A - 测量安全区域 - Google Patents

测量安全区域 Download PDF

Info

Publication number
CN105339912A
CN105339912A CN201480035803.9A CN201480035803A CN105339912A CN 105339912 A CN105339912 A CN 105339912A CN 201480035803 A CN201480035803 A CN 201480035803A CN 105339912 A CN105339912 A CN 105339912A
Authority
CN
China
Prior art keywords
instruction
processor
subarea
district
safety zone
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
CN201480035803.9A
Other languages
English (en)
Other versions
CN105339912B (zh
Inventor
C·V·罗扎斯
I·阿纳蒂
G·盖尔宗
S·格伦
S·P·约翰逊
F·X·麦基恩
U·R·萨瓦冈卡尔
V·R·斯卡拉塔
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 CN105339912A publication Critical patent/CN105339912A/zh
Application granted granted Critical
Publication of CN105339912B publication Critical patent/CN105339912B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/2111Location-sensitive, e.g. geographical location, GPS

Landscapes

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

Abstract

公开了用于测量安全区域的本发明的实施例。在一个实施例中,处理器包括指令单元和执行单元。所述指令单元用于接收第一指令、第二指令以及第三指令。所述执行单元用于执行所述第一指令、第二指令以及第三指令。执行所述第一指令包括以初始值初始化在安全区域的控制结构中的测量字段。执行所述第二指令包括将区添加到所述安全区域。执行所述第三指令包括测量所述区的子区。

Description

测量安全区域
技术领域
本公开涉及信息处理领域,更具体地,涉及信息处理系统中的安全性的领域。
背景技术
机密信息被多个信息处理系统所存储、传送和使用。因此,已经开发了用于提供安全处理和存储机密信息的技术。这些技术包括用于创建和维持在信息处理系统中的安全的、受保护的、或隔离的容器、分区或环境的各种方法。
附图说明
在附图中通过例子而非限制图示了本发明。
图1示出了根据本发明的实施例的提供用于测量安全区域(enclave)的系统。
图2示出了根据本发明的实施例的提供用于测量安全区域的处理器。
图3示出了根据本发明的实施例的区域页面高速缓存。
图4示出了根据本发明的实施例的用于测量安全区域的方法。
具体实施方式
描述了用于测量安全区域的本发明的实施例。在该描述中,阐述了多个具体细节,例如部件和系统配置,以便提供对本发明的更透彻的理解。然而,本领域技术人员可以理解的是,可以在没有这些具体细节的情况下实践本发明。另外,没有详细示出一些已知的结构、电路和其它特征,以免不必要地模糊本发明。
在后续描述中,提及“一个实施例”、“实施例”、“示例性实施例”、“各种实施例”等表示这样描述的本发明的实施例可以包括特定特征、结构或特性,但是多于一个实施例可以包括所述特定特征、结构或特性但不必每个实施例都包括。此外,一些实施例可以具有针对其它实施例描述的一些、全部特征或没有所述特征。
如权利要求中所使用的,除非另外指明,否则使用序数形容词“第一”、“第二”、“第三”等来描述元件仅表示引用元件的特定实例或者类似元件的不同实例,而不意图暗示这样描述的元件必须在排列上或以任何其它方式,时间地、空间地处于特定序列。
另外,术语“位”、“标志”、“字段”、“条目”等可以用于描述寄存器、表、数据库或其它数据结构中的任意类型的存储位置,无论其是实现于硬件还是软件中,但是不意味着将本发明的实施例限制到任意特定类型的存储位置或任意特定存储位置内的位或其它元件的数量。术语“清除”可以用于表示存储或者使得逻辑值零存储于存储位置,并且术语“设置”可以用于表示存储或者使得逻辑值一、全一或一些其它指定值存储于存储位置;然而,这些术语并不意味将本发明的实施例限制为任意特定的逻辑约定,任意逻辑约定都可以在本发明的实施例中使用。
如背景技术中所描述的,已经开发了在信息处理系统中创建和维持安全的、受保护的、或隔离的容器、分区或环境的各种方法。一种这样的方法涉及安全区域,如2012年6月19日提交的、序列号为13/527,547的、题目为“MethodandApparatustoProvideSecureApplicationExecution”的共同未决的美国专利申请中所描述的,其通过引用并入本文,以提供关于安全的、受保护的、或隔离的容器、分区或环境的至少一个实施例的信息。然而,并入的参考文献并不打算以任何方式限制本发明的实施例的范围,并且可以在保留在本发明的精神和范围内的同时使用其它实施例。因此,在本发明的任意实施例中使用的任意安全的、受保护的、或隔离的容器、分区或环境的任何实例在本文中可以被称作安全区域或区域。
图1示出了系统100,其是根据本发明的实施例的提供用于测量安全区域的信息处理系统。系统100可以代表任何类型的信息处理系统,例如服务器、台式计算机、便携式计算机、机顶盒、诸如平板或智能电话的手持式设备、或者嵌入式控制系统。系统100包括处理器110、系统存储器120以及信息存储设备130。具体实现本发明的系统可以包括任意数量的这些部件中的每一个,以及任意其它部件或其它元件,例如外围设备和输入/输出设备。在该系统实施例或任意系统实施例中的任意或所有部件或其它元件可以通过任意数量的总线、点对点或者其它有线或无线接口或连接来彼此连接、耦合或通信,除非另外说明。系统100的任意部件或其它部分,无论在图1中示出或未示出,都可以集成或者包含于单个芯片(片上系统或SOC)、管芯、基板或封装上或其内。
系统存储器120可以是动态随机存取存储器或者处理器110可读的任意其它类型的介质。信息存储设备130可以包括任意类型的持续或非易失性存储器或存储设备,例如闪速存储器和/或固态、磁或光盘驱动器。
处理器110可以代表集成到单个基板上或封装到单个封装中的一个或多个处理器,其每一个可以以任意组合包括多个线程和/或多个执行核心。表示为处理器110或在处理器110中的每个处理器可以是任意类型的处理器,包括通用微处理器,例如处理器家族、处理器家族或者来自公司的其它处理器家族中的处理器,或者来自其它公司的其它处理器,或者专用处理器或微控制器。
处理器110可以根据指令集架构操作,所述指令集架构包括创建安全区域的第一指令,将内容添加到安全区域的第二指令,测量安全区域的内容的第三指令,以及初始化安全区域的第四指令。虽然以具有任意指令集架构的处理器实践了本发明的实施例,而不限于来自公司的处理器家族的架构,但是指令可以是现有架构的软件保护延伸的集合的一部分,并在本文中可以分别称作ECREATE指令、EADD指令、EEXTEND指令以及EINIT指令。对于这些指令的支持可以实现于处理器中,利用嵌入到硬件中的电路和/或逻辑、微代码、固件和/或按如下描述布置的或根据任意其它方法的其它结构的任意组合,并且在图1中表示为ECREATE硬件112、EADD硬件114、EEXTEND硬件116以及EINIT硬件118。
图2示出了处理器200,其实施例可以用作系统100中的处理器110。处理器200可以包括核心210、核心220以及非核心(uncore)230。核心210可以包括存储单元212、指令单元214、执行单元216以及控制单元218。核心220可以包括存储单元222、指令单元224、执行单元226以及控制单元228。非核心230可以包括高速缓存单元232、接口单元234以及加密单元236。处理器200还可以包括任意其它未在图2中示出的电路、结构或逻辑。如上文引入且将在下文进一步描述的,ECREATE硬件112、EADD硬件114、EEXTEND硬件116以及EINIT硬件118的功能可以分布在处理器200中的任意标记单元中或他处。
存储单元212和222可以包括可用于任何目的而分别在核心210和220中的任意类型的存储设备的任意组合;例如,它们可以包括任意数量的可读、可写和/或可读-写寄存器、缓冲器和/或高速缓存,其被利用任意存储器或存储技术实现,用于存储容量信息、配置信息、控制信息、状态信息、性能信息、指令、数据以及分别可用于核心210和220的操作的任意其它信息,以及可用于访问这种存储设备的电路。
指令单元214和224可以包括任意电路、逻辑、结构和/或其它硬件,用于取得、接收、解码、解释和/或调度将分别由核心210和220执行的指令。在本发明的范围内可以使用任意指令格式;例如,指令可以包括操作码和一个或多个操作数,其中操作码可以解码为一个或多个微指令或微操作,用于分别由执行单元216和226执行。诸如ECREATE、EADD、EEXTEND和EINIT指令的指令可以是单个操作码的叶子,例如,特许安全区域操作码(例如,ENCLS),其中叶子指令由处理器寄存器(例如,EAX)中的值指定。可以含蓄地、直接地、间接地或根据任意其它方法将操作数或其它参数与指令相关联。
执行单元216和226可以包括任意电路、逻辑、结构和/或其它硬件,例如运算单元、逻辑单元、浮点单元、移位器等,用于处理数据并执行指令、微指令和/或微操作。执行单元216和226可以包括专用电路、逻辑、结构和/或根据本发明的实施例用于测量数据的其它硬件,包括实现安全散列算法(例如,SHA-256、SHA-512、SHA-3或SM3)的电路,或者这种测量可以用共享电路、逻辑、结构和/或执行单元216和226中的和/或处理器200中别处的其它硬件来执行。
控制单元218和228可以包括任意微代码、固件、电路、逻辑、结构和/或其它硬件,用于分别控制核心210和220的单元和其它元件的操作,并控制在核心210和220内转移数据、转移数据到核心210和220中、以及将数据转移出核心210和220。控制单元218和228可以使得核心210和220以及处理器200执行或参与执行本发明的方法实施例,例如下文所描述的方法实施例,例如通过使得核心210和220执行由指令单元214和224接收到的指令以及从指令单元214和224接收的指令导出的微指令或微操作。
高速缓存单元232可以包括在信息处理系统100的存储器层级中的高速缓存存储器的一个或多个级别中的任意数量的高速缓存阵列和高速缓存控制器,其实现于静态随机存取存储器或任意其它存储器技术中。高速缓存单元232可以在任意数量的核心和/或根据在信息处理系统中缓存的任意方法的处理器200内的逻辑处理器中共享。高速缓存单元232还可以包括一个或多个存储器阵列,用作区域页面高速缓存(EPC)240,如下文所述。
接口单元234可以表示任意的电路、逻辑、结构和/或其它硬件,例如链接单元、总线单元或消息收发单元,以允许处理器200与诸如系统200的系统中的其它部件通过任意类型的总线、点对点或其它连接直接地或通过任意其它部件(例如,桥、中心或芯片组)进行通信。接口单元234可以包括一个或多个集成存储器控制器,用于与系统存储器(例如,系统存储器120)进行通信,或者可以与系统存储器通过处理器200外部的一个或多个存储器控制器进行通信。
加密单元236可以包括任意电路、逻辑、结构和/或其它硬件,用于执行任意一个或多个加密算法和对应的解密算法。
图2还示出了处理器200内的处理器保留存储器范围寄存器(PRMRR)250和存储器访问控制单元260。PRMRR250可以表示存储单元212和222、处理器200中的别处的任意一个或多个存储位置,和/或非核心230中的其副本。PRMRR250例如可以由诸如基本输入/输出系统的配置固件使用,以保留被称作处理器保留存储器(PRM)的一个或多个物理连续范围的存储器。存储器访问控制单元260可以表示可以控制对PRM的访问的任意电路、结构、逻辑和/或处理器200中任意地方的其它硬件,从而可以在定义为PRM的系统存储器空间内创建EPC240。
在实施例中,PRM的大小是2的整数幂,例如32MB、64MB或128MB,并与该大小的倍数的存储器地址对准。PRMRR250可以包括只读PRMMR有效配置寄存器252的一个或多个实例以表明PRM可以配置的有效大小,PRMMR基址寄存器254和PRMMR掩码寄存器256的一个或多个实例,以定义一个或多个基地址和PRM的范围。
EPC240是安全存储区域,其中可以保护软件免受在任意特权级别操作的恶意软件的攻击。可以创建一个或多个安全区域,从而每个区域可以包括一个或多个页面或EPC240的其它区(region),其中存储代码、数据或其它信息(以其仅可由在该区域内部运行的软件访问的方式)。例如,安全区域可以由软件应用使用,从而只有所述软件应用在所述区域内部运行时可以访问所述区域的内容。其它软件(甚至操作系统或虚拟机监视器)都不能读取所述区域的未加密内容,不能修改所述区域的内容,或者当内容被加载到EPC时不能篡改所述区域的内容(假设所述区域是例如与调试区域相对的生产区域)。然而,区域的内容可以由在系统100中的任意处理器上的所述区域内执行的软件进行访问。通过根据安全区域架构操作的存储器访问控制单元260实现这一保护。
在图2中,EPC240示出在高速缓存单元232中,其中其可以是共享高速缓存或专用存储器的隐退(sequestered)部分。在与处理器200相同的管芯内或在其上,EPC240可以实现于静态随机存取存储器、嵌入式动态随机存取存储器、或者任意其它存储器技术中。EPC240还可以或额外实现在处理器200外部,例如在系统存储器120的安全区内。当没有存储在管芯上时为了保护安全区域的内容,可以使用加密单元236来在内容被转移到离开管芯之前对内容进行加密,并且对转移回管芯上的EPC240的内容进行解密。也可以应用其它保护机制来保护内容免于重放和其它攻击。
本发明的实施例提供用于测量安全区域,从而所述测量可以用于一个或多个安全区域保护机制中。测量安全区域可以包括计算、生成、或导出密码散列、日志或基于区域内容的其它值、存储器的量(例如EPC页面的数量)、每个页面的相对位置、和/或区域或其内容的任意其它属性。测量还可以用于:在生成一个或多个密码密钥来加密和/或密封区域数据时,在生成数字签名或证书来证明在区域内部运行的应用的身份和/或完整性时,或为任意其它目的,来提供区域的身份和正确结构的保证。
为了说明,图3示出了EPC300,其实施例用作图2中的EPC240,且图4示出了用于测量安全区域的方法400。虽然本发明的方法实施例并不局限于该方面,对图1、2和3的元件可以做出引用以帮助描述图4的方法实施例。
在图3中,EPC300包括安全区域的控制结构(SECS)310、线程控制结构(TCS)区320以及数据区330。虽然图3示出了EPC300划分成三个单独的区,但是EPC300可以划分成任意数量的块、区或页面,其每一个可以用于任意类型的内容。在一个实施例中,将其划分为4千字节(KB)页面,并与是4KB的倍数的系统存储器120中的地址对准,SECS310可以是EPC300中的4KB页面中的任一个,TCS区320可以是任意数量的连续或非连续4KB页面,并且数据区330可以是任意数量的连续或非连续4KB页面。此外,虽然图3示出了一个SECS、一个TCS区以及对应于一个安全区域的一个数据区,但是EPC可以包括任意数量的SECS和任意数量的TCS以及数据区,只要每个区域具有一个且仅一个SECS,每个有效TCS和有效数据区(例如,页面)属于一个且仅一个区域,并且所有的SECS、TCS和数据页面适合在EPC内(或者可以换页(page)出EPC和返回进EPC)。
通过执行ECREATE指令来创建SECS,以包含将由硬件使用且仅可由硬件访问的元数据(即,无论在区域内部或外部运行,软件都不能读取、写入或访问),以定义、维护以及保护区域。例如,SECS310包括测量寄存器(MR)312,其可以是SECS310内的任意大小的字段;在一个实施例中,MR312可以是32字节。MR312用于存储所述区域的建立测量值,其由ECREATE指令初始化,由与区域相关联的每个EADD和EEXTEND指令更新,并由与区域相关联的EINIT指令锁定。
一个或多个TCS也可以与安全区域相关联。TCS包括由硬件使用的元数据,以在进入和离开区域时保存和恢复线程专用信息。
每个页面的安全属性存储于被称作区域页面高速缓存映射(EPCM)的微架构数据结构中,其由存储器访问控制单元260用于实施安全区域架构所提供的保护。EPCM为EPC中的每个页面存储一个条目。每个条目包括页面所属的SECS(即,区域)的标识符(例如,64位字段)。这些标识符可以由安全区域指令引用,例如EADD、EEXTEND以及EINIT,以提供将会由硬件读取的SECS以便执行指令。
图4示出了用于测量安全区域以及创建、添加页面到区域和初始化区域的方法400。方法400包括执行ECREATE、EADD、EEXTEND以及EINIT指令;然而本发明的实施例并不局限于这些特别命名的指令。在方法400中,这些指令可以由特权系统软件(例如操作系统或虚拟机监视器)发布、调用或使用。本发明的实施例(诸如方法400)可能是期望的,因为它们允许安全测量将由不信任软件执行的应用。
在框420中,例如通过指令单元214接收ECREATE指令。在一个实施例中,ECREATE是EAX寄存器中具有值0x0的ENCLS的叶子。在框422中,例如由执行单元218执行ECREATE指令。在一个实施例中,执行ECREATE指令包括在框424中,分配供安全区域使用的地址范围。在一个实施例中,所述地址可以是第一类型地址,例如虚拟或线性地址,其将会被转换为第二类型地址,例如诸如系统存储器120的系统存储器中的物理地址。与ECREATE指令相关联的第一参数可以指定地址范围的基地址,并且第二参数可以指定地址范围的大小。
执行ECREATE指令还可以包括:在框426中,将MR312的值初始化为初始值;在一个实施例中,所述初始值可以是联邦信息处理标准(FIPS)针对诸如SHA-256的安全散列算法(SHA)指定的值。执行ECREATE指令还可以包括:在框428中,建立区域的其它属性,以及在框430中,在SECS中存储区域属性。用于SECS的EPC页面可以由与ECREATE指令相关联的第三参数指定。
在框432中,例如由指令单元214接收EADD指令。在一个实施例中,EADD是EAX寄存器中具有值0x1的ENCLS的叶子。在框434中,例如由执行单元218执行EADD指令。在一个实施例中,执行EADD指令包括,在框436中,添加或提交地址范围内的存储器区到所述区域;在一个实施例中,第一区的大小可以是4KB页面。添加或提交页面到区域可以包括从系统存储器复制源页面到EPC,并将EPC页面与EPC中的SECS相关联。源页面可以是常规页面,其包括未加密的代码、数据、或用于区域的数据区的其它信息,或者源页面可以是TCS页面,其包括用于TCS区的数据。与EADD指令相关联的第一参数可以指定页面的基地址,并且第二参数可以指定将会添加页面的区域的SECS。
执行EADD指令还可以包括:在框438中,以页面的属性初始化EPCM条目,包括页面类型(例如,常规或TCS),在区域内部运行的软件将访问页面所用的线性地址,在区域内部运行的软件的访问许可,用于页面的任意安全标志,以及区域的SECS标识符。在框440中,MR312的内容被密码地扩展以反应页面的EPCM条目的内容;例如,借助表示执行EADD操作的串,通过递增地更新MR312中的中间散列值,可以计算MR312的新内容,其中所述串基于EPCM条目的所有或一些内容。在一个实施例中,所使用的密码散列是SHA-256。
在框442中,例如由创建区域的软件确定在框436中添加的区是否将被测量。如果是,则方法400继续到框444。如果否,则方法400继续到框454。可以希望本发明的实施例通过向区域添加区或页面而提供降低区域建设延迟,例如堆栈和/或堆(heap)的在使用前已经初始化的部分,而不用在建设时测量它们。
在框444中,例如由指令单元214接收EEXTEND指令。在一个实施例中,EEXTEND是EAX寄存器中具有值0x6的ENCLS的叶子。在框446中,例如由执行单元218执行EEXTEND指令。在一个实施例中,执行EEXTEND指令包括:在框448中,测量在框436中提交的存储器区的子区的内容,其中子区的大小小于区的大小。在一个实施例中,子区的大小是128字节。与EEXTEND指令相关联的第一参数(例如,PCX寄存器的内容)可以指定子区的基地址。在框450中,MR312的内容被密码地扩展以反映子区的位置和内容;例如,借助基于128字节子区的头部和内容的串,通过递增地更新MR312中的中间散列值,可以计算MR312的新内容,其中所述头部表示128字节子区的相对地址(例如,相对于区域的基地址)并且所述扩展与EEXTEND操作相关。在一个实施例中,所使用的密码散列是SHA-256。
本发明的实施例可以提供EEXTEND指令失败(例如,用信号表示错误、故障或其它这种条件)(如果子区的有效地址不与指令相关联);例如,如果RCX寄存器的内容参考未被添加到区域或SECS的页面。另外,如果具有包括子区(例如,256字节)的区(例如,页面)的区域的SECS被另一线程锁定或者区域已经被初始化,则EEXTEND指令可能失败。
在一个实施例中,EEXTEND指令的单次执行可以递增地扩展MR312中的测量;例如,在子区是256字节的实施例中,单次调用EEXTEND可以以最低64字节的子区(即,[63:0B])扩展MR312中的测量,然后以第二最低64字节(即,[127:64B]),然后以第三最低64字节(例如,[191:128B]),然后以最高64字节(例如,[255:192B])。
在框452中,例如由创建区域的软件确定在框436中添加的整个区是否已经被测量。如果否,则方法400返回到框444用于所述区的不同子区。如果是,则方法400继续到框454。在涉及4KB页面和256字节子区的一个实施例中,调用EEXTEND16次以递增地测量整个页面。可能期望本发明的实施例提供递增地测量安全区域,从而测量应用不需要由软件使用现有指令来执行,所述指令可能是不安全的并可能阻止中断的服务且引起诸如音频流的特定应用中的毛刺(glitch)。
在框454中,例如由创建区域的软件确定是否将更多区添加到区域。如果是,则方法400返回到框432以向区域添加不同的区。如果否,则方法400继续到框460。
在框460中,例如由指令单元214接收EINIT指令。在一个实施例中EINIT是EAX寄存器中具有值0x2的ENCLS的叶子。在框462中,例如由执行单元218执行EINIT指令。在一个实施例中,执行EEINIT指令可以包括:在框464中,检查许可令牌以确保对应的区域有效;在框466中,锁定测量寄存器,从而其内容保持未变化,即使通过后续执行EADD或EEXTEND指令;以及在框468中,设置SECS中的属性指示符,以防止任意更多区或页面被添加到区域。在框464中使用的许可令牌可以由创建安全区域的软件提供作为与EINIT指令相关联的且对于区域唯一的第一参数。第二参数可以指定被初始化的区域的SECS。在框464中确保区域有效可以包括比较MR312的最终值与区域的期望测量,其中在一个实施例中,MR312的最终值是唯一的SHA-256摘要(digest),其密码地识别放置在区域内部的代码和数据、区域内部的页面的位置和放置次序以及每个页面的安全属性。
在本发明的各个实施例中,图4示出的方法可以以不同次序执行,所示出的框可以组合或省略,可以添加额外的框,或者可以组合重新排序的、组合的、省略的或添加的框。例如,可以在测量先前以EEXTEND指令添加的页面之前、期间或之后的任意时间,使用EADD指令将页面添加到安全区域中。例如,可以在添加下一页面之前测量每个页面,或者可以在测量任意页面之前添加所有页面。注意,可以由EADD和EEXTEND指令的不同序列生成不同的测量。在一个实施例中,微架构锁定阻止EADD、EEXTEND和EINIT指令并行地在相同SECS上操作。此外,在本发明的范围内,多种其它方法实施例是可能的。
如上所述,本发明的实施例或实施例的部分可以存储于任意形式的机器可读介质上。例如,所有或部分方法400可以实现在软件或固件指令中,其可以存储于处理器110可读的介质上,所述指令当由处理器110执行时,使得处理器110执行本发明的实施例。另外,本发明的方面可以具体实现在存储于机器可读介质上的数据中,其中数据表示可以用于制造所有或部分处理器110的设计或其它信息。
因此,已经描述了用于测量安全区域的本发明的实施例。虽然已经描述并在附图中示出了某些实施例,但是可以理解的是,这种实施例仅仅是说明性的,并不限制广泛的发明,并且本发明并不限于所示和所描述的具体构造和布置,因为本领域普通技术人员在研究本公开时会想到各种其它修改。在例如这个技术的快速增长且不容易预见进一步发展的技术的领域中,如通过启用技术进步而促进的布置和细节中,可以容易地修改所公开的实施例,而不背离本公开的原理或随附权利要求的范围。

Claims (20)

1.一种处理器,包括:
指令单元,用于接收第一指令、第二指令、以及第三指令;以及
执行单元,用于执行所述第一指令、所述第二指令、以及所述第三指令,其中执行所述第一指令包括以初始值来初始化在安全区域的控制结构中的测量字段,执行所述第二指令包括将区添加到所述安全区域,执行所述第三指令包括测量所述区的子区。
2.如权利要求1所述的处理器,其中,执行所述第二指令还包括:扩展所述初始值以生成第一扩展值,其中所述第一扩展值基于所述区的属性。
3.如权利要求2所述的处理器,其中,执行所述第二指令还包括:以所述第一扩展值代替在所述安全区域的控制结构中的所述初始值。
4.如权利要求3所述的处理器,其中,执行所述第三指令包括:扩展所述第一扩展值以生成第二扩展值,其中所述第二扩展值基于所述子区的测量。
5.如权利要求4所述的处理器,其中,所述子区的测量基于所述子区的内容。
6.如权利要求5所述的处理器,其中,所述子区的测量还基于所述区内的所述子区的位置。
7.如权利要求4所述的处理器,其中,所述子区的测量是由密码散列运算生成的。
8.如权利要求7所述的处理器,其中,所述密码散列是SHA-256。
9.如权利要求7所述的处理器,其中,所述第二扩展值是通过递增地更新所述第一扩展值而生成的。
10.如权利要求4所述的处理器,其中,执行所述第三指令还包括:以所述第二扩展值代替在所述安全区域的控制结构中的所述第一扩展值。
11.如权利要求10所述的处理器,其中,所述指令单元还用于接收第四指令,所述执行单元还用于执行第四指令,执行所述第四指令包括锁定在所述安全区域的控制结构中的所述测量字段。
12.如权利要求11所述的处理器,其中,执行所述第四指令还包括:比较所述测量字段的内容与预期值。
13.如权利要求1所述的处理器,还包括区域页面高速缓存,在所述区域页面高速缓存中存储所述安全区域的控制结构。
14.如权利要求1所述的处理器,其中,所述区的大小是4千字节。
15.如权利要求14所述的处理器,其中,所述子区的大小是256字节。
16.如权利要求1所述的处理器,其中,所述第三指令具有相关联的参数以指示所述子区的位置。
17.一种方法,包括
调用第一指令以创建安全区域;
调用第二指令以将区添加到所述安全区域;以及
调用第三指令以测量所述区的第一子区。
18.如权利要求17所述的方法,还包括调用所述第三指令以测量所述区的第二子区。
19.如权利要求17所述的方法,还包括:重新调用所述第三指令直到测量完整个区。
20.一种系统,包括:
系统存储器;以及
处理器,包括:
指令单元,用于接收第一指令、第二指令、以及第三指令;以及
执行单元,用于执行所述第一指令、所述第二指令、以及所述第三指令,其中执行所述第一指令包括以初始值来初始化在安全区域的控制结构中的测量字段,执行所述第二指令包括从所述系统存储器将区添加到所述安全区域,执行所述第三指令包括测量所述区的子区。
CN201480035803.9A 2013-07-23 2014-07-15 测量安全区域 Active CN105339912B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/949,110 2013-07-23
US13/949,110 US20150033034A1 (en) 2013-07-23 2013-07-23 Measuring a secure enclave
PCT/US2014/046667 WO2015013062A1 (en) 2013-07-23 2014-07-15 Measuring a secure enclave

Publications (2)

Publication Number Publication Date
CN105339912A true CN105339912A (zh) 2016-02-17
CN105339912B CN105339912B (zh) 2018-10-12

Family

ID=52391520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480035803.9A Active CN105339912B (zh) 2013-07-23 2014-07-15 测量安全区域

Country Status (4)

Country Link
US (1) US20150033034A1 (zh)
EP (1) EP3025266B1 (zh)
CN (1) CN105339912B (zh)
WO (1) WO2015013062A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703715B2 (en) * 2013-12-28 2017-07-11 Intel Corporation Shared memory in a secure processing environment
US9864861B2 (en) * 2014-03-27 2018-01-09 Intel Corporation Object oriented marshaling scheme for calls to a secure region
US10181027B2 (en) * 2014-10-17 2019-01-15 Intel Corporation Interface between a device and a secure processing environment
US9710622B2 (en) * 2015-02-23 2017-07-18 Intel Corporation Instructions and logic to fork processes of secure enclaves and establish child enclaves in a secure enclave page cache
US9606940B2 (en) 2015-03-27 2017-03-28 Intel Corporation Methods and apparatus to utilize a trusted loader in a trusted computing environment
US9870467B2 (en) * 2015-03-27 2018-01-16 Intel Corporation Apparatus and method for implementing a forked system call in a system with a protected region
US20160378686A1 (en) * 2015-06-24 2016-12-29 Intel Corporation Memory encryption exclusion method and apparatus
US9710401B2 (en) 2015-06-26 2017-07-18 Intel Corporation Processors, methods, systems, and instructions to support live migration of protected containers
US10664179B2 (en) 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
EP3279464B1 (en) * 2016-08-04 2023-07-12 Vitesco Technologies GmbH A fuel injection assembly for an internal combustion engine
US10346641B2 (en) 2016-09-23 2019-07-09 Intel Corporation Processors, methods, systems, and instructions to determine whether to load encrypted copies of protected container pages into protected container memory
US11693952B2 (en) * 2018-10-31 2023-07-04 Vmware, Inc. System and method for providing secure execution environments using virtualization technology

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1364034A (zh) * 2001-01-08 2002-08-14 Lg电子株式会社 用于补偿投影式显示器的图像质量的方法和装置
US20030211501A1 (en) * 2001-04-18 2003-11-13 Stephens J. Claiborne Method and system for determining haplotypes from a collection of polymorphisms
JP2007174534A (ja) * 2005-12-26 2007-07-05 Casio Comput Co Ltd 撮影装置及びプログラム
US20090125248A1 (en) * 2007-11-09 2009-05-14 Soheil Shams System, Method and computer program product for integrated analysis and visualization of genomic data
WO2011078855A1 (en) * 2009-12-22 2011-06-30 Intel Corporation Method and apparatus to provide secure application execution
JP2012033142A (ja) * 2010-02-18 2012-02-16 Nippon Telegr & Teleph Corp <Ntt> 人数計測装置、人数計測方法、プログラム
US20120163589A1 (en) * 2010-12-22 2012-06-28 Johnson Simon P System and method for implementing a trusted dynamic launch and trusted platform module (tpm) using secure enclaves
CN103155619A (zh) * 2010-10-07 2013-06-12 京瓷株式会社 无线测量收集方法和无线终端

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234638B2 (en) * 2004-12-28 2012-07-31 Hercules Software, Llc Creating a relatively unique environment for computing platforms
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
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
US9087196B2 (en) * 2010-12-24 2015-07-21 Intel Corporation Secure application attestation using dynamic measurement kernels
JP5700481B2 (ja) * 2011-06-29 2015-04-15 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
CN103946806B (zh) * 2011-09-29 2017-06-16 英特尔公司 用于提供存储器访问控制的装置、系统和方法
US9276750B2 (en) * 2013-07-23 2016-03-01 Intel Corporation Secure processing environment measurement and attestation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1364034A (zh) * 2001-01-08 2002-08-14 Lg电子株式会社 用于补偿投影式显示器的图像质量的方法和装置
US20030211501A1 (en) * 2001-04-18 2003-11-13 Stephens J. Claiborne Method and system for determining haplotypes from a collection of polymorphisms
JP2007174534A (ja) * 2005-12-26 2007-07-05 Casio Comput Co Ltd 撮影装置及びプログラム
US20090125248A1 (en) * 2007-11-09 2009-05-14 Soheil Shams System, Method and computer program product for integrated analysis and visualization of genomic data
WO2011078855A1 (en) * 2009-12-22 2011-06-30 Intel Corporation Method and apparatus to provide secure application execution
JP2012033142A (ja) * 2010-02-18 2012-02-16 Nippon Telegr & Teleph Corp <Ntt> 人数計測装置、人数計測方法、プログラム
CN103155619A (zh) * 2010-10-07 2013-06-12 京瓷株式会社 无线测量收集方法和无线终端
US20120163589A1 (en) * 2010-12-22 2012-06-28 Johnson Simon P System and method for implementing a trusted dynamic launch and trusted platform module (tpm) using secure enclaves

Also Published As

Publication number Publication date
EP3025266A4 (en) 2017-03-01
EP3025266A1 (en) 2016-06-01
CN105339912B (zh) 2018-10-12
EP3025266B1 (en) 2019-09-11
US20150033034A1 (en) 2015-01-29
WO2015013062A1 (en) 2015-01-29

Similar Documents

Publication Publication Date Title
CN105339912A (zh) 测量安全区域
US11630920B2 (en) Memory tagging for side-channel defense, memory safety, and sandboxing
US11625337B2 (en) Encoded pointer based data encryption
US10216648B2 (en) Maintaining a secure processing environment across power cycles
CN112149143A (zh) 用于存储器标记的低存储器开销堆管理
US9690704B2 (en) Paging in secure enclaves
CN109690552B (zh) 用于加载受保护容器页的处理器、方法、系统和指令
EP3025268B1 (en) Feature licensing in a secure processing environment
CN104813330A (zh) 在运行时测量在安全区域内加载的应用
KR101653193B1 (ko) 보안 처리 환경으로부터의 기능의 오프로딩
TWI608378B (zh) 裝置與安全處理環境之間的介面
US11836094B2 (en) Cryptographic data objects page conversion
US20220114285A1 (en) Data oblivious cryptographic computing

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