首页> 中国专利> 虚拟化硬件单调计数器

虚拟化硬件单调计数器

摘要

公开了用于虚拟化硬件单调计数器的发明的各实施例。在一种实施例中,一种装置包括硬件单调计数器、虚拟化逻辑、第一非易失性存储位置和第二非易失性存储位置。虚拟化逻辑从硬件单调计数器创建虚拟单调计数器。第一非易失性存储位置存储硬件单调计数器的计数已经变化的指示器。第二非易失性存储位置存储虚拟单调计数器的计数已经变化的指示器。

著录项

  • 公开/公告号CN104756132A

    专利类型发明专利

  • 公开/公告日2015-07-01

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201380057240.9

  • 申请日2013-06-24

  • 分类号

  • 代理机构上海专利商标事务所有限公司;

  • 代理人高见

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 09:48:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-07-31

    授权

    授权

  • 2015-07-29

    实质审查的生效 IPC(主分类):G06F21/71 申请日:20130624

    实质审查的生效

  • 2015-07-01

    公开

    公开

说明书

背景

1.领域

本公开内容涉及信息处理的领域,且尤其涉及信息处理系统中的安全性的领 域。

2.相关领域的描述

在信息处理系统中,保护信息的安全性的技术可以包括使用单调计数器。例 如,可以在消息中包括单调计数器值,以便保护该消息免遭重放攻击。

附图简述

在附图中,作为示例而非限制阐释本发明。

图1阐释其中可以根据本发明的一个实施例虚拟硬件单调计数器的系统。

图2阐释的一种系统架构。

图3阐释根据本发明的一个实施例初始化虚拟单调计数器的方法。

图4阐释根据本发明的一个实施例使用虚拟单调计数器的方法。

详细描述

描述用于虚拟化硬件单调计数器的发明的各实施例。在这一描述中,可以陈 述诸如组件和系统配置之类的众多特定细节,以便提供对本发明的更透彻的理解。 然而,本领域中的技术人员应明白,无需这样的特定的细节就可以实践本发明。另 外,没有详细示出一些众所周知的结构、电路和其他特征,以免不必要地模糊本发 明。

在下列描述中,对“一种实施例”、“实施例”、“示例实施例”、“各种实施例”等 等的引用表示本发明的(多个)实施例可以包括具体的特征、结构或特性,但是多 于一种的实施例可以包括、且并非每一实施例必定包括这些具体的特征、结构或特 性。进一步,一些实施例可以拥有针对其他实施例所描述的特征中的一些、全部或 没有这些特征。

而且,可以使用术语“比特”、“标志”、“字段”、“条目”等等来描述寄存器、表、 数据库或其他数据结构中的任何类型的存储位置,无论是以硬件实现还是以软件实 现,但不预期把本发明的各实施例限制在任何具体存储位置内的任何具体类型的存 储位置或比特或其他元素的数量。可以使用术语“清除”来表示把逻辑值0存储在一 个存储位置中或以另外方式引起0逻辑值被存储在一个存储位置中,且可以使用术 语“设置(set)”来表示把逻辑值1、全部1或某种其他所指定的值存储在一个存储 位置中或以另外方式引起它们被存储在一个存储位置中;然而,这些术语不旨在把 本发明的各实施例限制在任何具体的逻辑约定,这是因为在本发明的各实施例内可 以使用任何逻辑约定。术语“递增”可以用来表示增加1,但其中“递增”可以表示增 加固定值的本发明的各实施例是可能的,且在其他实施例中可能的情况是递减或减 少而不是递增或增加。然而,不描述每一种这样的可能性。

如权利要求中所使用的,除非以另外方式指定,否则,使用序数形容词“第一”、 “第二”、“第三”等等来描述一个元素仅仅表示所提及的类似元素的不同实例,且不 旨在暗示所述的元素必须处于具体的序列,无论是时间上、空间上、排名上或任何 其他方式。

如背景部分中所描述的,信息处理系统中的单调计数器可以用于保护信息的 安全性的技术。然而,信息处理系统可以拥有有限数量的硬件单调计数器。因此, 可以期望本发明的各实施例通过虚拟化提供额外的单调计数器的使用。可以根据需 要增加可供使用的虚拟单调计数器的数量,即使在硬件单调计数器的数量受到限制 的时候也是如此,在这一意义上,本发明的各实施例是可扩展的。例如,通过即使 在掉电的时候也提供正确的操作,使得使用虚拟单调的计数器密封的信息的安全性 不受重置或断电攻击危害,本发明的各实施例也是稳健的。

图1阐释系统100,系统100是本发明的一种实施例可以在其中存在和/或操 作信息处理系统。系统100可以表示任何类型的信息处理系统,例如服务器、台式 计算机、便携式计算机、机顶盒、手持式设备或嵌入式控制系统。系统100包括处 理器110、控制中枢120、系统存储器130和信息存储设备140。实现本发明的系 统可以包括任何数量的这些组件中的每一个和任何其他组件或其他元件,例如外围 设备和/或输入/输出设备。任何系统实施例中的组件或其他元件中的任何或全部可 以通过任何数量的总线、对等或其他有线或无线连接相互连接、耦合或以另外方式 通信。

处理器110可以表示被集成在单个衬底上或被封装在单个封装内的一个或多 个处理器,其中的每一个都可以包括以任何组合的多个线程和/或多个执行核。被 表示为处理器110的每一处理器可以是任何类型的处理器,包括通用微处理器,例 如英特尔处理器系列、英特尔处理器系列或英特尔公司的其他处 理器系列中的处理器,或来自另一公司的另一处理器,或专用处理器或微控制器。 处理器110可以包括指令硬件111、执行硬件112、处理存储113、高速缓冲存储 器114、接口单元115和处理器控制逻辑116。处理器110也可以包括图1中未示 出的任何其他电路、结构或逻辑和/或图1中其他地方示出或描述的任何电路、结 构或逻辑。例如,系统存储器控制器117可以被集成在处理器110的衬底上或被封 装在处理器110的封装内。

指令硬件111可以表示用于提取、接收、解码和/或调度指令的任何电路、结 构或其他硬件,例如指令解码器。在本发明的范围内可以使用任何指令格式;例如, 指令可以包括操作码和一个或多个操作数,其中操作码可以被解码成供由执行硬件 112执行的一个或多个微指令或微操作。

执行硬件112可以包括用于处理数据和执行指令、微指令和/或微操作的任何 电路、结构或其他硬件,例如运算单元、逻辑单元、浮点单元、移位器等等。

处理存储113可以表示在处理器110内可用于任何目的任何类型的存储;例 如,它可以包括任何数量的数据寄存器、指令寄存器、状态寄存器、配置寄存器、 控制寄存器、其他可编程或硬编码寄存器或寄存器堆、或任何其他存储结构。

高速缓冲存储器114可以表示信息处理系统100中的存储器层次中的、以静 态随机存取存储器或任何其他存储器技术实现的任何一个或多个级别的高速缓冲 存储器。高速缓冲存储器114可以包括专用于在处理器110内的任何一个或多个执 行核心或处理器或在它们当中共享的、根据在信息处理系统中缓存的任何已知方法 的高速缓冲存储器的任何组合。

接口单元115可以表示任何电路、结构或其他硬件,例如总线单元、消息收 发单元或任何其他单元、端口或接口,以便允许处理器110通过任何类型的总线、 点对点或其他连接直接地与系统100中的其他组件通信,或通过诸如存储器控制器 或总线桥之类的任何其他组件与系统100中的其他组件通信。

处理器控制逻辑116可以包括任何逻辑、电路、硬件或其他结构,包括微代 码、状态机逻辑或可编程逻辑,以便控制处理器110的各单元和其他元件的操作以 及在处理器110内、进入到处理器110、离开处理器110的数据传输。例如通过引 起处理器110执行指令硬件111所接收的指令和从指令硬件111所接收的指令导出 的微指令或微操作,处理器控制逻辑116可以引起处理器110执行或参与本发明的 方法实施例(例如下面描述的方法实施例)的执行。

控制中枢120可以包括任何逻辑、电路或其他硬件,以便控制或促进在处理 器110、系统存储器130、信息存储设备140和信息处理系统100中的任何其他组 件之间、和/或信息处理系统100的任何其他操作或功能性之间的信息传输。控制 中枢120可以包括管理引擎150,管理引擎150可以表示处理器、控制器或任何其 他逻辑、电路或其他硬件,以便向独立于处理器110的信息处理系统的信息处理系 统100提供可管理性、维护、安全和/或虚拟化功能。例如,管理引擎150可以表 示支持英特尔主动管理技术的可管理性引擎。

管理引擎150可以包括管理引擎控制逻辑152、一个或多个硬件单调计数器 154,用户应用变化指示器156和服务应用变化指示器158。管理引擎控制逻辑152 可以包括任何逻辑、电路、硬件或其他结构,包括微代码、状态机逻辑、可编程逻 辑或固件,以便控制管理引擎150的操作并引起管理30引擎150执行或参与本发 明的方法实施例的执行。

硬件单调计数器(monotonic counter)154可以包括根据任何已知的方法实现 单调计数器的电路或其他硬件。在一种实施例中,硬件单调计数器154可以表示被 用于根据本发明的各实施例使用、指定或者保留以供使用的一组硬件单调计数器中 的一个;例如,它可以表示英特尔可管理性引擎的一组五个硬件单调计数器中的 一个。

用户应用变化指示器156和服务应用变化指示器158都可以是存储根据本发 明的方法实施例使用的诸如一比特之类的指示器的非易失性数据存储元件。在一种 实施例中,管理引擎控制逻辑152可以包括状态机153,状态机153可以使用用户 应用变化指示器156和服务应用变化指示器158的状态来确保稳健性,即使在掉电 时也是如此,如下面所描述。

系统存储器130可以包括动态随机存取存储器和/或可由处理器110访问的任 何其他类型的介质,且可以被用来存储由处理器110和/或任何其他组件使用或产 生的数据和/或指令。

信息存储设备140可以表示任何类型的非易失性信息存储设备,例如闪速存 储器或硬盘驱动器。

图2阐释根据本发明的一种实施例的系统架构200,示出执行、被加载到或以 另外方式出现在诸如信息处理系统100之类的信息处理系统内的服务应用261和用 户应用271。在图2中,服务应用261和用户应用271可以各自表示在诸如下面所 描述的安全飞地(enclave)之类的安全的、受保护的或隔离的环境内的应用。对 于本描述的目的,这样的环境的每一实例都可以被称为安全飞地,尽管本发明的各 实施例不限于把安全飞地用作服务应用261和用户应用271的环境的那些。在图2 中,服务应用261被示出为处于服务安全飞地260,且用户应用271被示出为处于 用户安全飞地270。

可以使用英特尔处理器系列或来自英特尔公司其他处理器系列中的 处理器的指令集中的指令来创建和维护安全飞地,其支持硬件由处理器210中的安 全飞地逻辑216表示,处理器210可以对应于图1中的处理器110。安全飞地逻辑 216可以被包括在处理器210的任何一个或多个单元内,例如对应于处理器110的 指令硬件111、执行硬件112和处理器控制逻辑116的那些单元。安全飞地逻辑216 可以包括加密单元212,加密单元212可以包括执行一种或多种加密算法和相应的 解密算法的任何逻辑、电路或其他硬件。

可以在系统存储器空间230内给在系统架构200内创建的每一安全飞地分配 安全的或受保护的空间。例如,可以把服务安全存储器空间262分配给用于服务应 用261的安全飞地,且可以把用户安全存储器空间272分配给用于用户应用271 的安全飞地。可以使用已知的虚拟存储器、安全飞地或其他系统存储器编址技术来 创建、分配和维护每一个这样的存储器空间,以使得可以在各个时刻把在每一这样 的存储器空间内的信息存储在信息存储设备140、系统存储器130、高速缓冲存储 器114和/或在信息处理系统100内任何其他存储器或存储区域的任何组合内。

在安全飞地的存储器空间内的信息仅可由在该安全飞地中运行的应用访问。 例如,分配给安全飞地的存储器页面上的信息在被存储在系统存储器130、存储设 备140或外置于处理器210的任何其他存储器或存储中之前,可以由加密单元212 来加密。尽管被存储在处理器210外,但这一信息受到加密和完整性检查技术的保 护。当这一存储器页面被在处理器210上、在分配给它的安全飞地内运行的应用或 进程加载到高速缓冲存储器114时,由加密单元212解密该存储器页面,然后,经 解密的信息仅可由在安全飞地内运行的应用或进程访问。由安全飞地逻辑216强加 这些加载和访问限制,出于这一目的,安全飞地逻辑216可以包括安全飞地范围寄 存器213、访问控制逻辑214和任何其他已知的逻辑、电路或其他硬件。

在图2中,用户应用271和服务应用261可以通过可信路径265相互通信, 且在管理引擎250上运行的服务应用261和会话管理器251可以通过可信路径255 相互通信。可信路径255和265可以各自表示根据确保通信的完整性和机密性的任 何已知方法实现的可信路径或信道。可信路径255的机制可以包括会话管理器251 和服务应用261的相互认证;可信路径265的机制可以包括服务应用261和用户应 用271的相互认证。可信信道255和265上的认证和/或通信协议可以使用密钥; 例如,每当服务应用261被重启时,会话管理器251和服务应用261可以使用主密 钥257来导出辅密钥259;服务应用261和用户应用271可以使用密钥267。

图3阐释根据本发明的一个实施例用于初始化虚拟单调计数器的方法300。尽 管本发明的方法实施例不限于这一方面,但可以参见图1和图2的元素来帮助描述 图3的方法实施例。

在方法300的框310中,可以清除用户应用变化指示器156和服务应用变化 指示器158,例如,作为管理引擎150的初始化序列或进程的一部分。

在框320中,可以创建安全飞地(例如,服务安全飞地260),用于运行服务 应用(例如,服务应用261)。运行服务应用261的一个目的可以是提供虚拟化硬 件单调计数器(例如,硬件单调计数器154)。在框322中,可以创建另一安全飞 地(例如,用户安全飞地270),用于运行用户应用(例如,用户应用271)。可 以出于任何目的运行用户应用271,且可以期望用户应用271把单调计数器用于任 何目的。

例如,可以期望用户应用271把单调计数器用于提供经密封的存储,其中可 保护信息(例如,数据二进制大对象或“团(blob)”295)免遭重放攻击。在本描 述中,对使用单调计数器来为信息提供密封存储的任何引用都可以包括把当前单调 计数器值附加到数据团,以使得在读取该数据团时,可以判断该数据是否已经被重 放(例如,如果所附加的单调计数器值比当时的单调计数器值旧)或被攻击(例如, 如果所附加的单调计数器值比当时的单调计数器值新),或任何其他这样的已知方 法。也可以把其他值(例如在单调计数器已被重置时产生的随机数)附加到数据团, 以使得在读取该数据团时,可以判断自从存储了该数据团之后该单调计数器是否已 被重置,以及/或者附加完整性检查值。任何这些方法可以包括使用防重放 (anti-replay)表,在防重放表中存储对应于数据团的单调计数器值、随机数和/或 完整性检查值。任何这样的已知方法可以用于本发明的各实施例,且本描述中对把 单调计数器值附加到数据团的任何引用也可以包括根据这些方法的技术。

在框324中,为在用户应用271和服务应用261之间的双向通信建立可信路 径(例如,可信路径265)。在框326中,为在服务应用261和会话管理器251之 间的双向通信建立可信路径(例如,可信路径255)。

在框330中,用户应用271通过可信路径265向服务应用261发送使用单调 计数器的请求。

在框340中,服务应用261创建用来提供单调计数器的虚拟化的数据结构(例 如,数据库280)。数据库280可以是包括任何数量的条目的数据表,且每一条目 (例如,条目281)可以包括用于存储用户应用的标识符的第一字段(例如,ID 字段282)和用于存储被分配给相应用户应用的虚拟单调计数器的当前计数值的第 二字段(例如,虚拟计数字段283)。在框342中,服务应用261把ID字段282 设置为用户应用271和/或用户安全飞地270的标识符;例如,它可以是对用户应 用271和/或用户安全飞地270来说唯一的值,该值从出于身份、完整性或任何其 他目的而做出的度量或其他报告导出。

在框350中,服务应用261通过可信路径255向会话管理器251发送对硬件 单调计数器154的当前计数值的请求。在框352中,服务应用261接收硬件单调计 数器154的当前计数值155。在框354中,服务应用261把硬件单调计数器154的 当前计数值155存储在服务安全存储器空间262中的硬件计数字段263中。

在框中354,可以把虚拟计数字段283初始化成例如预先确定的初始化值、硬 件单调计数器154的当前计数值或任何其他值。在框356中,可以把虚拟计数字段 283的值发送给用户应用271以便初始化用户安全存储器空间272中的用户计数字 段293,该字段表示由服务应用261提供给用户应用271的虚拟单调计数器(例如, 虚拟单调计数器294)的计数。

在框360中,服务应用261使用硬件计数字段263中的值来密封数据库280, 例如通过把硬件计数字段263中的值附加到表示数据库280的内容的数据团并将该 结果存储在服务安全存储器空间262中。

在框370中,服务应用261为递增虚拟单调计数器294的请求做好准备。数 据库280的条目281的ID字段282正在存储用户应用271和/或用户安全飞地270 的标识符。数据库280的条目281的虚拟计数字段283和用户安全存储器空间272 中的用户计数字段293存储相同的值。服务安全存储器空间262中的硬件计数字段 263存储硬件单调计数器154的当前计数值155。已经用硬件计数字段263中的值 密封服务安全存储器空间262中的数据库280。用户应用变化指示器156和服务应 用变化指示器158已经被初始化为零。

图4阐释根据本发明的一个实施例使用虚拟单调计数器的方法400。尽管本发 明的方法实施例不限于这一方面,但可以参见图1、图2和图3的元素来帮助描述 图4的方法实施例。该方法可以被描述为在电源失效的时候继续进行到特定的框; 在一些实施例中,电源故障也可以是指包括其他中断。

在方法400的框410中,服务应用261为递增虚拟单调计数器294的请求做 好准备,例如,方法400的框410可以对应于方法300的框370。数据库280的条 目281的ID字段282存储用户应用271和/或用户安全飞地270的标识符。数据库 280的条目281的虚拟计数字段283和用户安全存储器空间272中的用户计数字段 293存储相同的值。服务安全存储器空间262中的硬件计数字段263存储硬件单调 计数器154的当前计数值155。已经用硬件计数字段263中的值密封服务安全存储 器空间262中的数据库280。用户应用变化指示器156和服务应用变化指示器158 已经被初始化为零。

在框420中,用户应用271调用服务应用261以便递增虚拟单调计数器294。 在框422中,服务应用261调用会话管理器251以便递增硬件单调计数器154。

在框424中,会话管理器251递增硬件单调计数器154,且会话管理器251 把服务应用变化指示器158设置为指示对硬件单调计数器154的变化可能尚未传播 到服务应用261。在框中426,会话管理器251返回到服务应用261。

在框430中,服务应用261递增虚拟计数字段283并且把用户应用变化指示 器156设置为指示对虚拟计数字段283的变化可能尚未传播到用户应用271。在框 432中,服务应用261递增硬件计数字段263。在框434中,服务应用261使用硬 件计数字段263来密封数据库280。

在框440中,服务应用261调用会话管理器251以便清除服务应用变化指示 器158。在框中442,会话管理器251清除服务应用变化指示器158。在框中444, 会话管理器251返回到服务应用261。在框中446,服务应用261返回到用户应用 271。

在框中450,用户应用271递增用户计数字段293。在框中452,用户应用271 使用用户计数字段293来密封数据团295。在框中454,用户应用271调用服务应 用261来清除用户应用变化指示器156。在框中456,服务应用261调用会话管理 器251来清除用户应用变化指示器156。在框中458,会话管理器251清除用户应 用变化指示器156。

在框中460,会话管理器251返回到服务应用261。在框中462,服务应用261 返回到用户应用271。

服务应用变化指示器158和用户应用变化指示器156可以被用来在电源失效 的情况下提供稳健性。在电源失效来自框424或426中的任何的情况下,该流程可 以在框430中继续,这是因为可以检测到已经设置了服务应用变化指示器156但是 没有设置用户应用变化指示器158。在电源失效来自框430、432、434或440中的 任何的情况下,该流程可以在框432中继续,这是因为可以检测到已经设置了服务 应用变化指示器156和用户应用变化指示器158。在电源失效来自框442、444、446、 450、452、454或456中的任何的情况下,该流程可以在框450中继续,这是因为 可以检测到已经清除了服务应用变化指示器158但已经设置了用户应用变化指示 器156。

在本发明的各种实施例中,可以以不同的次序执行图3和4中所阐释的方法, 且可以组合或省略所阐释的框,且可以添加额外的框,或者带有重新排序的、组合 的、省略的或附加的框的组合。

如上所述,本发明的各实施例或各实施例的部分可以被存储在任何形式的机 器可读介质上。例如,可以以被存储在处理器110和/或管理引擎150可读的介质 上的软件或固件指令实现方法200的全部或部分,在由处理器110和/或管理引擎 150执行时,这些软件或固件指令引起处理器110和/或管理引擎150执行本发明的 一种实施例。而且,可以以被存储在机器可读介质上的数据实现本发明的各方面, 其中该数据表示设计或可用于制造处理器110和/或管理引擎150的全部或部分的 其他信息。

因而,已经描述了用于虚拟化硬件单调计数器的发明的各实施例。尽管已经 描述且在附图中示出了某些实施例,但应理解,这样的实施例仅仅是说明而非限制 广泛的发明,且本发明不限于所示出和描述的特定的构造和布置,这是由于本领域 中的普通技术人员在研读本公开内容后可以看出各种其他修改。在快速发展且不容 易预测进一步的进展的诸如本领域的技术领域中,可以容易地在排列和细节方面修 改所公开的各实施例,通过允许不偏离本公开内容的原理或所附权利要求的范围的 技术进步,可以促进这一点。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号