CN108959932A - 用于可信执行环境的安全芯片存储器的技术 - Google Patents
用于可信执行环境的安全芯片存储器的技术 Download PDFInfo
- Publication number
- CN108959932A CN108959932A CN201810394386.7A CN201810394386A CN108959932A CN 108959932 A CN108959932 A CN 108959932A CN 201810394386 A CN201810394386 A CN 201810394386A CN 108959932 A CN108959932 A CN 108959932A
- Authority
- CN
- China
- Prior art keywords
- performing environment
- memory
- credible performing
- credible
- subregion
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 163
- 238000005516 engineering process Methods 0.000 title abstract description 26
- 238000003860 storage Methods 0.000 claims description 88
- 238000000034 method Methods 0.000 claims description 63
- 238000011084 recovery Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 52
- 238000012545 processing Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 9
- 230000003068 static effect Effects 0.000 description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 6
- 230000005291 magnetic effect Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000005611 electricity Effects 0.000 description 5
- 230000006855 networking Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 238000004321 preservation Methods 0.000 description 3
- 238000011217 control strategy Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000002045 lasting effect Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003340 mental effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 231100000279 safety data Toxicity 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6281—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
描述了用于可信执行环境的安全芯片存储器的技术。处理器可以包括被配置为与可信执行环境相接合的存储器。处理器可以被配置为向可信执行环境指示存储器支持对可信执行环境的专门访问。处理器可以接收来自可信执行环境的指令。处理器可以实施接口插件的访问控制策略,以将由可信执行环境进行的对存储器的访问限制为存储器的与可信执行环境相关联的分区。描述并要求保护其它实施例。
Description
技术领域
本公开总体上涉及提供用于可信执行环境的安全芯片存储器的技术。
背景技术
在利用可信执行环境(TEE)的一些设备中,可以在称为飞地(enclave)的安全环境中执行和/或存储应用的敏感部分,以保护代码和数据免于损害。然而,不同于常规的应用环境,在设备已经进入某些睡眠状态之后,飞地可能不保留数据。虽然许多机器可以包括能够由飞地使用的片外持久存储装置,但是其不提供维持飞地的安全环境必要的安全级别。因此,用于可信执行环境的安全芯片存储器的改进的技术是期望的。
发明内容
下面呈现了简要发明内容以便提供对本文描述的一些新颖实施例的基本理解。该发明内容不是全面概括,并且不旨在识别重要/关键元素或划定其范围。其唯一目的是以简要形式呈现一些概念作为后面呈现的更详细的描述的前序。
描述了用于可信执行环境的安全芯片存储器的技术。处理器可以包括被配置为与可信执行环境相接合的存储器。处理器可以被配置为向可信执行环境指示存储器支持对可信执行环境的专门访问。处理器可以接收来自可信执行环境的指令。处理器可以实施接口插件的访问控制策略,以将由可信执行环境进行的对存储器的访问限制为存储器的与可信执行环境相关联的分区。描述并要求保护其它实施例。
为了实现前述目的和相关目的,在本文中结合下面的说明书和附图描述了某些说明性方面。这些方面指示本文公开的原理能够实践的各种方式并且所有方面及其等同物旨在处于要求保护的主题的范围内。在结合附图考虑时,其它优点和新颖特征将从下面的具体实施方式中变得显而易见。
附图说明
图1示出了操作环境的实施例。
图2示出了可信执行环境的实施例。
图3示出了可信执行环境的架构。
图4示出了系统的实施例。
图5示出了根据实施例的存储器系统。
图6示出了系统的实施例。
图7示出了系统的实施例。
图8示出了根据实施例的逻辑流程。
图9示出了根据实施例的制品。
图10示出了集中式系统的实施例。
图11示出了分布式系统的实施例。
图12示出了计算架构的实施例。
图13示出了通信架构的实施例。
具体实施方式
描述了用于可信执行环境的安全芯片存储器的技术。处理器可以包括被配置为与可信执行环境相接合的存储器。处理器可以被配置为向可信执行环境指示存储器支持对可信执行环境的专门访问。处理器可以接收来自可信执行环境的指令。处理器可以实施接口插件的访问控制策略,以将由可信执行环境进行的对存储器的访问限制为存储器的与可信执行环境相关联的分区。描述并要求保护其它实施例。
一般地参考本文所使用的记号和命名法,下面的具体实施方式可以从在计算机或计算机网络上执行的程序过程方面来呈现。本领域技术人员使用这些过程描述和表示来最有效地向本领域其它技术人员传达其工作的实质内容。
过程在此处并且一般地被认为是导致期望结果的自一致的操作序列。这些操作是要求对物理量进行物理操纵的操作。通常,但非必要地,这些量采取能够被存储、传送、组合、比较以及以其它方式操纵的电、磁或光学信号的形式。主要出于惯常使用的原因,证实有时方便的是将这些信号称为位、值、元素、符号、字符、项、数字等。然而,应当注意,所有这些以及类似的术语应与适当的物理量相关联并且仅仅是应用于这些量的便利标记。
此外,所执行的操纵经常以诸如添加或比较的术语来称谓,其常常与人类操作者执行的心理操作相关联。在本文描述的形成一个或多个实施例的部分的操作中的任何操作中,人类操作者的这种能力在大多数情况下不是必要或期望的。相反,操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机或类似设备。
各种实施例还涉及用于执行这些操作的装置或系统。该装置可以特殊地构造成用于所要求的目的,或者其可以包括如由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。本文呈现的过程本质上与特定计算机或其它装置无关。各种通用机器可以与根据本文的教导编写的程序一起使用,或者构造更专门的装置来执行所要求的方法步骤可以证明是方便的。各种这些机器的所要求的结构将从给出的描述中出现。
图1示出了例如可以表示一些实施例的操作环境100的示例。在可以包括用于可信执行环境的安全芯片存储器的操作环境100中,系统102可以包括经由网络140耦合的服务器110和处理设备105。服务器110和处理设备105可以经由网络140交换数据130,并且数据130可以包括用于在处理设备105内执行的可执行指令132。在一些实施例中,数据130可以包括数据值、可执行指令和/或其组合。网络140可以基于可以通过其来交换信号的各种通信技术(或其组合)中的任一种,包括但不限于采用电和/或光传导线缆的有线技术,以及采用红外、射频和/或其它形式的无线传输的无线技术。
在各种实施例中,处理设备105可以包含处理器组件150、存储装置160、控件125(例如,可手动操作的控件)、显示器135和/或将处理设备105与网络140耦合的网络接口115。处理器组件150可以包含安全凭证180、安全微代码178、存储元数据136的元数据存储装置135、安全子系统174、一个或多个处理器核心170、一个或多个高速缓存172和/或图形控制器176。存储装置160可以包括易失性存储装置164、非易失性存储装置162和/或一个或多个存储控制器165。处理设备105可以包括控制器120(例如,安全控制器),控制器120可以包括安全凭证180。控制器120还可以包括本文所描述的用于散列函数的统一硬件加速的实施例中的一个或多个。
易失性存储装置164可以包括这样的一个或多个存储设备:该一个或多个存储设备是与其要求连续电力供给以保留存储在其中的信息同等程度地易失性的。易失性存储装置164的(多个)存储设备的操作可以由存储控制器165来控制,存储控制器165可以接收来自处理器组件150和/或处理设备105的其它组件的命令以在其中存储和/或取回信息,并且可以将这些命令在接收命令的总线协议和/或定时与易失性存储装置164的(多个)存储设备耦合到存储控制器165的其它总线协议和/或定时之间进行变换。通过示例的方式,易失性存储装置164的一个或多个存储设备可以由经由接口耦合到存储控制器165的动态随机存取存储器(DRAM)设备构成,例如,其中采用行地址和列地址连同字节使能信号来选择存储位置,同时由存储控制器165接收的命令可以沿一对或多对数字串行传输线向其传送。
非易失性存储装置162可以由这样的一个或多个存储设备构成:该一个或多个存储设备是与其在没有连续电力供给的情况下能够保留存储在其中的信息同等程度地非易失性的。非易失性存储装置162的(多个)存储设备的操作可以由存储控制器165(例如,与用于操作易失性存储装置164的不同的存储控制器)来控制,存储控制器165可以接收来自处理器组件150和/或处理设备105的其它组件的命令以在其中存储和/或取回信息,并且可以将这些命令在接收命令的总线协议和/或定时与非易失性存储装置162的(多个)存储设备耦合到存储控制器165的其它总线协议和/或定时之间进行变换。通过示例的方式,非易失性存储装置162的一个或多个存储设备可以由经由数字串行接口可操作地耦合到存储控制器165的基于铁磁盘的驱动器(硬盘驱动器)构成,例如,其中每个这样的存储设备内的存储空间的部分通过引用磁道和扇区进行寻址。相反,由存储控制器165接收的命令可以沿传送读取命令和写入命令的一对或多对数字串行传输线向其传送,其中每个这样的存储设备内的存储空间的这些相同部分以完全不同的方式进行寻址。
处理器组件150可以包括至少一个处理器核心170,其执行至少一个执行线程中的可执行例程的指令。然而,处理器组件150可以包含处理器核心170中的多于一个和/或可以采用其它处理架构技术来支持可以并行地执行多于一个可执行例程的指令的多个执行线程。(多个)高速缓存172可以包括多层高速缓存集合,其可以包括用于每个处理器核心170的单独的第一级(L1)高速缓存和/或用于处理器核心170中的多个处理器核心的较大的第二级(L2)高速缓存。
在处理设备105包括显示器135和/或图形控制器176的一些实施例中,由于执行一个或多个例程的可执行指令,一个或多个核心170可以操作控件125和/或显示器135以提供用户接口和/或执行其它图形相关的功能。图形控制器176可以包括图形处理器核心(例如,图形处理单元(GPU))和/或执行图形相关的操作的组件(未示出),包括但不限于,对动作视频进行解压缩和呈现、渲染三维(3D)模型的一个或多个对象的2D图像等。
非易失性存储装置162可以存储数据130,包括可执行指令132。在前述对处理设备105与服务器110之间的数据130的交换中,处理设备105可以维持数据130的副本,例如,用于在非易失性存储装置162内长期存储。易失性存储装置164可以存储已加密数据134和/或元数据136。根据本文所描述的一些实施例,已加密数据134可以由数据130的以加密和/或压缩形式存储在易失性存储装置164内的至少一部分构成。可执行指令132可以由诸如待由处理器组件150的一个或多个处理器核心170执行的操作系统(OS)、设备驱动器和/或一个或多个应用例程之类的一个或多个可执行例程构成。数据130的其它部分可以包括由一个或多个处理器核心170用作执行各种任务的输入的数据值,其中通过执行可执行指令132而使得一个或多个处理器核心170执行该各种任务。
作为执行可执行指令132的部分,一个或多个处理器核心170可以取回可执行指令132的部分并且将这些部分以更易于可执行的形式存储在易失性存储装置164内,其中在经常称为加载的过程中地址被导出、间接引用被解析和/或链接在这些部分中更充分地定义。如本领域技术人员所熟知的,这样的加载可能在可以处于可执行指令132之中的OS的加载例程和/或页管理例程的控制下发生。由于数据130的部分(包括可执行指令132的部分)如此在非易失性存储装置162与易失性存储装置164之间交换,所以安全子系统174可以将数据130的这些部分在可能如存储在非易失性存储装置162内的其原始未压缩和未加密形式与至少已加密并且可以作为元数据136伴随的已加密数据134存储在易失性存储装置164内的形式之间进行变换。
安全子系统174可以包括硬件逻辑,该硬件逻辑被配置或以其它方式由安全微代码178控制以实现在处理设备105的正常操作期间执行这样的变换的逻辑。安全微代码178可以包括在安全子系统174内的逻辑电路之间进行连接以形成这样的逻辑的指示。可替代地或另外地,安全微代码178可以包括当如此执行时形成这样的逻辑的可执行指令。任一安全子系统174可以执行安全微代码178的这样的指令,或者安全子系统174可以由执行这些指令的至少一个处理器核心170来控制。安全子系统174和/或至少一个处理器核心170可以设置有处理设备105的初始化期间(包括处理器组件150的初始化期间)对安全微代码178的访问权。此外,安全子系统174可以包括本文描述的用于散列函数的统一硬件加速的实施例中的一个或多个。
安全凭证180可以包括一个或多个值,该一个或多个值由安全子系统174用作其作为在处理设备105的正常操作期间执行其之间的变换的部分而执行数据130的加密和/或已加密数据134的解密的输入。更具体地,安全凭证180可以包括各种类型的安全凭证中的任一个,包括但不限于公共密钥和/或私有密钥、生成随机数的种子、生成随机数的指令、证书、签名、密码等。安全子系统174可以设置有在处理设备105的初始化期间对安全凭证180的访问权。
图2示出了可以在本文描述的一些实施例中使用的可信飞地系统200的实施例。可信飞地系统200可以包括应用201,应用201可以包括在软件和/或硬件平台上执行的一个或多个应用。可以包括需要保护的秘密数据的应用的几个非限制性示例是金融应用、电子银行应用和健康或医疗应用。在一些实施例中,应用201可以包括不可信分区202,该不可信分区202可以是应用201的包括一般不受保护以免于攻击的指令和数据的分区。特权代码206可以包括对在平台上运行的应用内的数据具有特殊访问权或特权的平台的代码。特权代码可以包括例如操作系统、虚拟机管理器、系统BIOS、或系统管理模式。虽然这些示例性类型的特权代码可以在此使用,但是可以意识到其它类型的代码可以永久地或临时地包括特权。
如果恶意代码要侵染特权系统代码206,则其可以对不可信分区202进行访问,因为特权系统代码206一般对应用201具有访问权。然而,使用可信飞地系统,某些数据可能保持秘密且安全,甚至免于源自特权系统代码206的攻击。在示例中,应用201可以在201处创建可信飞地204以保护秘密数据和安全数据216。可信飞地204的创建可以生成使用本文描述的技术能够访问的安全存储器位置(有时在平台的处理器内)。可信飞地204可以被配置为支持可以对安全数据216执行的某些可信功能。不可信分区202可以在212处使用调用门214来调用可信功能,调用门214可以是被配置为在可信飞地204处接受某些可信功能调用的软件和硬件的组合。可信功能调用的结果可以从可信飞地204返回到不可信分区202,同时安全数据216保持在可信飞地204内被保护。以此方式,可以使用有限的可信功能集合来访问安全数据216,安全数据216可以仍在应用201内使用,然而,如封锁208所示,可以防止特权系统代码208访问安全数据216。在本文描述的一些实施例中,安全数据216可以存储在片上持久存储器(例如,NVRAM)内,并且可以被划分为使得每个分区与特定的可信执行环境相关联。
可信飞地系统200允许在平台上运行的每个应用使用安全飞地来保卫其自己的秘密数据,显著地降低了恶意代码可用的攻击面,特别是具有已渗入的特权系统代码206的恶意代码。虽然图2所描述的实施例示出了单个平台,但是可信飞地系统可以在诸如IoT的联网分布式系统内使用。在这些系统中,如后面所描述的,可以使用集中式可信机构来认证安全飞地。
图3示出了可信飞地系统300的架构。可信飞地系统300可以包括应用环境301、特权环境302和暴露的硬件304,现在各自依次讨论。应用环境301可以包括一个或多个飞地306、308,每个飞地使用一个或多个SGX用户运行时模块310、312来访问。以此方式,每个飞地306、308可以由特权环境302以安全的方式进行访问。特权环境302可以包括SGX模块314以及页表316。SGX模块314可以包括软件和硬件的组合,并且可以被配置为经由SGX用户运行时310、312从飞地306、308请求秘密信息,或者对秘密信息执行可信功能。页表316可以存储针对例如存储在暴露的硬件304内的秘密数据的一个或多个存储器位置。暴露的硬件304可以包括计算平台318,如本文所描述的,并且可以包括被配置为执行其中阐述的技术的一个或多个处理器。
平台318可以包括存储设备NVRAM 324,其存储飞地页高速缓存(EPC)320以及飞地页高速缓存图(EPCM)322。EPC 320可以是包括用于将一组访问许可与飞地进行关联的结构EPCM 322的存储器。EPC 320可以在页中包含受保护的代码和数据,在非限制性示例中,页可以是4KB页。EPC 320可以存储飞地页和SGX结构,并且EPC页可以是有效的或无效的。有效的EPC页可以包含飞地页或SGX结构。每个EPC页的安全属性可以保留在下面讨论的被称为EPCM的内部微架构结构中。
EPCM 322可以包含飞地页的元数据并且可以是处理器用来跟踪EPC320的内容的受保护结构。EPCM 322可以由一系列条目构成,其中恰好一个条目针对EPC 320中的每个页。可以意识到,替代实施例可以不要求1:1相关。EPCM 322可以作为各种SGX指令的部分由处理器管理并且可以不是软件或设备可直接访问的。EPCM 322的格式可以是微架构的并且是实现方式相关的。然而,逻辑上,每个EPCM条目可以保留以下中的一个或多个:EPC页是有效还是无效;拥有页的飞地实例;页的类型(REG、TCS、VA、SECS);飞地能够通过其来访问页的虚拟地址;该页上的飞地指定的读取/写入/执行许可;和/或页是否是可访问的(阻止的(BLOCKED)或未阻止的(UNBLOCKED))。EPCM结构可以由处理器在地址转换流中使用以对加载到EPC中的飞地页实施访问控制。逻辑上,除了“传统”分段、分页表和扩展分页表机制之外,还可以提供附加的访问控制的安全层。
图4示出了系统400的框图。在一个实施例中,系统400可以包括一个或多个组件。虽然图4所示的系统400在某个拓扑结构中具有有限数量的元件,但是可以意识到,根据给定实现方式的需要,系统400可以在替代拓扑结构中包括更多或更少的元件。系统400可以包括多个模块,每个模块可以包括一个或多个处理单元、存储单元、网络接口或本文更详细描述的其它硬件元件和软件元件。在一些实施例中,这些模块可以包括在单个设备内。在其它实施例中,一个或多个模块可以是分布式架构的部分,其示例关于图11进行描述。
在实施例中,系统400的每个模块可以包括但不限于,移动计算设备、智能电话、蜂窝电话、与物联网(IoT)连接的设备、手持机、个人数字助理、单向寻呼机、双向寻呼机、消息传送设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、手持式计算机、平板式计算机或诸如智能手表的可穿戴计算设备。此外,模块可以包括服务器,服务器可以包括但不限于单个服务器、服务器阵列或服务器群、web服务器、网络服务器、互联网服务器、工作站、微型计算机、大型计算机、超级计算机、网络器具、web器具、多处理器系统、基于处理器的系统或其任何组合。
在各种实施例中,系统400可以包括或实现多个组件或模块。如本文使用的术语“组件”和“模块”旨在指代计算机相关的实体,包括硬件、硬件和软件的组合、软件或执行中的软件。例如,组件和/或模块可以实现为在处理器上运行的进程、硬盘驱动器、(光和/或磁存储介质的)多个存储驱动器、对象、可执行文件、执行线程、程序和/或计算机。通过说明的方式,在服务器上运行的应用和服务器两者都可以是组件和/或模块。一个或多个组件和/或模块可以驻留在进程和/或执行线程内,并且根据给定实现方式的需要,组件和/或模块可以位于一台计算机上和/或分布在两台或更多台计算机之间。实施例不限于该上下文。
系统400内的各种设备以及系统400的设备内的组件和/或模块可以经由各种类型的通信介质可通信地耦合,如各种线或箭头所指示的。设备、组件和/或模块可以在彼此之间协调操作。协调可以涉及单向或双向信息交换。例如,设备、组件和/或模块可以以通过通信介质传送的信号的形式来传送信息。信息可以实现为分配给各种信号线的信号。在这种分配中,每个消息是信号。然而,另外的实施例可以可替代地采用数据消息。这样的数据消息可以跨各种连接发送。设备内的示例性连接包括并行接口、串行接口以及总线接口。设备之间的示例性连接可以包括通过有线或无线通信网络的网络连接。
在各种实施例中,系统400的各种模块和存储装置可以被组织为分布式系统。分布式系统典型地包括通过计算机网络进行通信的多个自主计算机。计算机可以彼此交互以便于实现共同目标,例如,解决计算问题。例如,计算问题可以划分成多个任务,其中每个任务由一台计算机来解决。在分布式系统中运行的计算机程序称为分布式程序,并且分布式编程是编写这些程序的过程。分布式系统的示例可以包括但不限于,客户端-服务器架构、3层架构、N层架构、紧密耦合或集群式架构、对等架构、主-从架构、共享数据库架构以及其它类型的分布式系统。值得注意的是,虽然在描述用于数据取回的各种增强技术时一些实施例可以利用分布式系统,但是可以意识到,用于数据取回的增强技术也可以由单个计算设备来实现。实施例不限于该上下文。
本文所描述的实施例描述了用于可信执行环境(作为一个示例,SGX)以访问专门的片上存储器(例如,NVRAM)的技术,以便提供具有性能益处的改进的安全保证。虽然诸如SGX和NVRAM的示例在本文中可以用来描述某些实施例,但是可以意识到,在一些实施例中可以使用其它可信执行环境和存储设备。示例性益处可以包括安全飞地的状态可恢复能力,其部分地通过以安全和持久方式存储安全敏感数据(例如,密钥)来实现。另外,由于包括片上存储,可以改进可信执行环境的性能。此外,安全且持久地维持TEE相关的数据可以允许针对诸如单调计数器的服务的状态保存,例如,这跨复位周期提供对持久存储装置的重放保护以实现诸如数字权利管理(DRM)的应用。单调计数器服务可以作为SGX平台服务的一部分提供,并且可能要求受重放保护的持久存储装置来存储与单调计数器相关联的根散列。利用所提出的公开的技术,片上NVRAM可以用作持久存储装置。
作为益处的另一示例,片上NVRAM可以用于存储密钥打包密钥(KWK),其由飞地经由EBIND指令用于生成打包的二进制大对象(blob),该打包的二进制大对象继而可以由飞地用于与平台上的各种设备安全地通信。这可以允许跨睡眠状态保存和恢复二进制大对象。另外,存储装置还可以通过提供用于平台服务元数据的存储装置来帮助减少SGX TEE的TCB。
转到图4所示的元件,系统400可以包括位于系统400的软件侧的可信执行环境特定的软件模块402。TEE 402可以包括虚拟存储器管理应用(SGX)或其它类型的TEE。在实施例中,TEE 402可以包括客户端应用,客户端应用可以在如本文描述的客户端设备上运行,可以使用安全飞地(例如,SGX飞地)来执行和/或存储数据。在一些实施例中,SGX飞地可以驻留在客户端设备的一个或多个处理器上。虽然通篇使用了特定的示例,但是所描述的技术可以与任何处理器一起在各种类型的可信执行环境内使用。
在一些实施例中,相同类型或各种类型的多个TEE可以与本文所描述的技术一起使用。例如,利用本文详细描述的一个或多个指令集架构(ISA)扩展,技术可以提供对用于多个不可信TEE(例如,SGX、VMM)的片上NVRAM 408的排他性访问403。所提出的片上NVRAM408可以作为平台制造过程的一部分通过系统BIOS绑定到特定的TEE 402,以针对TEE 402提供排他性访问以将秘密或安全敏感数据存储为跨较深睡眠状态(例如,S3/S4)是持久的。TEE 402可能要求针对其操作跨睡眠状态进行安全状态保留。作为示例,跨S3/S4睡眠状态保存或恢复密钥和其它秘密数据可以允许在TEE 402内运行的应用跨睡眠状态无缝地操作。
NVRAM 408可以存在于系统400的硬件侧上,并且在一些实施例中可以存在于系统400的处理器内。虽然NVRAM用作示例性实施例,但是在其它实施例中可以使用其它类型的存储设备。在一些实施例中,NVRAM408可以配置为与图5一致。特别地,NVRAM 408可以针对一个或多个TEE进行划分,其中每个分区提供用于相关联的TEE的静态存储器范围。以此方式,多个TEE可以具有对NVRAM 408的访问权,而不提供对其它应用或其它TEE的访问权。
可以通过NVRAM控制器406来提供每个NVRAM分区的管理以及访问控制,NVRAM控制器406可以被配置为经由接口插件404对存储在NVRAM 408内的数据进行控制访问403。本文所描述的利用ISA扩展的技术可以允许可信执行环境特定的软件模块402访问片上NVRAM408,否则片上NVRAM 408从其它系统软件和操作系统进行隐藏。虽然本文所描述的一些实施例利用用于某些TEE的特定指令,但是可以意识到,在某些实现方式中单个指令集可以用于多种类型的TEE。NVRAM控制器406可以被配置为向TEE发送指示其支持对TEE的专门片上存储器访问的指示。例如,可以发送CPUID,或者经由CPUID中的特征标志使得CPUID可用,以允许TEE发现对本文所描述的技术的支持。
接口插件404可以被配置为从TEE 402接收指令并且可以针对指令的执行来检查操作模式,以确保哪个TEE正在访问NVRAM 408。例如,如果指令在运行于飞地内的同时被执行,则接口插件404可以检查飞地指令,并且如果指令在运行于VMX模式的同时被执行,则接口插件404可以核对VMM指令。在实施例中,接口插件404可以被配置为将指令的执行限制到一个特定的飞地或飞地的子集(使用SGX作为示例)。在这种情况下,可以通过预先供应被允许执行指令的飞地的测量来配置接口插件404,并且可以将指令配置为验证调用飞地的测量与预先供应的测量相同。
在实施例中,片上NVRAM 408可以是uCode排他性的,并且可以被视为具有配置为NVRAM控制器406的看门者的接口插件404的RAM模块。当然,并非在所有实施例中都要求uCode排他性。在要求时,uCode可以是NVRAM控制器406信任的唯一代理,并且因此,可能要求TEE 402调用uCode,以便经由附着到接口插件404中配置的访问控制策略的定向指令来访问NVRAM 408。
接口插件404可以负责实施经由如特定指令的定向入口点访问的、在硬件上关联于特定TEE的访问控制策略。访问控制策略可以与NVRAM 408中的分区相关联以允许不同的TEE控制不同的分区。接口插件404的访问控制策略可以包括要针对所有读取/写入事务进行检查的静态读取和写入策略,其可以由BIOS在启动时间期间进行设定。在一些实施例中,这些策略可能不在运行时执行期间动态地重新配置。
对于每个TEE,访问控制策略可以使用以下信息:
TEE-ID:接口插件404用于实施访问控制策略并且检查允许TEE-NVRAM访问的标识符。
TEE-INSTRUCTIONS:仅由该TEE执行的一组指令。
TEE-RANGE:用于定义用于TEE的NVRAM中的存储器范围的范围寄存器。
接口插件404可以至少使用以上信息来实施针对请求访问NVRAM 408的分区的特定TEE的访问策略。例如,接口插件404可以被配置为检查NVRAM地址是否属于生成请求的TEE。如果接口插件404检测到访问错误,则其可以丢弃该请求并且将错误响应发回TEE。
图5示出了根据实施例的存储器系统500。在该示例中,存储器系统包括片上NVRAM,其可以被划分成静态存储器范围,每个静态存储器范围与TEE相关联。在实施例中,系统BIOS可以经由TEE特定的基础/掩码存储器划分服务(例如,MSR)将可用的NVRAM划分成针对每个已知TEE的所支持的存储器范围。在实施例中,可以执行划分,使得划分的存储器范围是非重叠的范围,以实施隔离和安全性。一个或多个范围寄存器可以具有锁定位,并且一旦置位,该锁定位不会改变。在由BIOS进行划分期间,存储器划分流程可以被配置为检查锁定位,并且如果锁定位被置位,则给出GP错误。如果锁定位未置位,则可以被配置为检查其它范围寄存器,以确保其它范围被锁定。存储器划分流程可以被配置为确定编程到用于TEE的片上NVRAM 500的范围值与其它范围中的锁定值不重叠。当BIOS完成划分时,片上NVRAM 500可以被锁定并且每个相应的分区可以由对应的TEE访问。
在非限制性示例中,图5示出了包括256MB片上NVRAM 500的硬件,该256MB片上NVRAM 500被配置为支持TEE-A掩码502与TEE-基础504之间的第一TEE-A(64MB)以及TEE-B基础506与TEE-B基础508之间的第二TEE-B(64MB)。使用本文所描述的技术,接口插件可以被配置为检查对片上NVRAM 500的每个事务访问的属性。
NVRAM 500可以作为平台制造过程的一部分进行配置。因此,对NVRAM 500的访问可以限制到特定的代理,例如,uCode。如根据本文所描述的技术配置的,每个TEE可能仅知悉与其相关联的NVRAM寄存器,并且可能不具有关于完整NVRAM配置的信息。因此,每个TEE可能不能够恶意地或意外地访问另一TEE的NVRAM区域。
图6示出了根据实施例的系统600。系统600可以包括位于系统600的软件侧的SGX飞地602。SGX飞地602可以被配置为经由接口插件604和NVRAM控制器606来在系统600的硬件侧访问603NVRAM 608的特定SGX-TEE存储器范围610。系统600主要根据上文关于4所描述的技术来运作。
本文所描述的技术可以包括用于不同类型的TEE的指令。图6内所示的实施例特别地涉及SGX和飞地602。在示例性实施例中,可以仅通过所允许的飞地来执行两个指令。在该示例中,指令ENVRAM_RD(读取)和ENVRAM_WR(写入)可以特别地由SGX使用。在示例中,使用这些指令,诸如启动飞地功能的其它功能可以使用片上存储器来保存对所有飞地进行保存-恢复所需的关键信息。
ENVRAM_WR指令可以是环3指令(ENCLU的叶子)并且可以允许特定的飞地执行到NVRAM 608的特定存储器范围的写入。在示例中,写入可以限于64MB。ENVRAM_WR指令可以包括以下参数,具有示例性的值:
DS:EAX:wr_addr<32b地址>
DS:EBX:wr_data0<32b写入值>
DS:ECX:wr_data1<32b写入值>
ENVRAM_RD指令可以是环3指令(ENCLU的叶子)并且可以允许特定的飞地执行到NVRAM 608的特定存储器范围的读取。在示例中,读取可以限于64MB。ENVRAM_RD指令可以包括以下参数,具有示例性的值:
DS:EAX:rd_addr<32b读取地址>
DS:EBX:rd_data0<32b读取返回值>
DS:ECX:rd_data1<32b读取返回值>
图7示出了根据实施例的系统700。系统700可以包括与位于系统700的软件侧的多个VMM 702和704相对应的VMM 706。虽然示出了两个VMM 702和704,但是可以意识到,可以使用更多或更少的VMM。此外,虽然图6示出了SGX并且图7示出了VMM,但是可以意识到,SGX、VMM和其它类型的TEE可以在某些实施例中共存。
VMM 706可以被配置为经由接口插件708和NVRAM控制器710在系统700的硬件侧访问703NVRAM 712的特定SGX-TEE存储器范围714。系统700主要根据上文关于图4所描述的技术来运作。
本文所描述的技术可以包括用于不同类型的TEE的指令。图7内所示的实施例特别地涉及VMM 706。在示例性实施例中,可以仅通过所允许的VMM来执行两个指令。在该示例中,指令VMVRAM_RD(读取)和VMVRAM_WR(写入)可以特别地由VMM 706使用,并且在一些实施例中,可以仅在VM<M根模式下使用。在示例中,使用这些指令,诸如启动飞地指令的其它功能可以使用片上存储器来保存对所有飞地进行保存-恢复所需的关键信息。
第一指令VMRAM_WR可以是用于在硬件中写入VMM特定的NVRAM范围的VMM根指令。该指令的属性可以包括写入地址和写入数据。如果指令在VMX非根操作模式下执行,则可能发生GP错误。第二指令VMRAM_RD可以是用于在硬件中读取VMM特定的NVRAM范围的VMX根指令。该指令的属性可以包括取出读取值的读取地址。如果指令在VMX非根操作模式下执行,则可能发生GP错误。
本文包括表示用于执行所公开的架构的新颖方面的示例性方法的一组流程图。虽然为了简化说明的目的,例如本文以流程图或流图的形式示出的一个或多个方法被示出和描述为一系列动作,但是应当理解并意识到,方法不受动作的顺序限制,因为一些动作可以据此以不同的顺序发生和/或与本文所示出和描述的其它动作同时发生。例如,本领域技术人员将理解并意识到,方法可以可替代地表示为例如状态图中的一系列相关的状态或事件。此外,新颖的实现方式不一定要求在方法中示出的所有动作。
图8示出了根据实施例的逻辑流程800。在802处,处理器可以向可信执行环境指示诸如片上NVRAM的存储器支持对可信执行环境的专门访问。如本文所描述的,TEE可以是SGX系统或VMM系统,或其它已知的TEE。在一些实施例中,VMM系统可以实现虚拟安全模式(VSM)。该指示可以经由CPUID,CPUID可以是可以从控制器发到TEE的、与CPU相关联的标识符,或者可以具有指示可以由TEE经由读取适当的标志来发现的能力的一个或多个标志。
在实施例中,存储器可以包括多个分区,多个分区中的每个分区静态地与特定TEE相关联,并且可以由系统BIOS创建。以此方式,可以防止第一TEE意外地或恶意地访问或破坏来自共同位于同一片上NVRAM内的另一TEE的秘密数据。在单个片上NVRAM内,存储器范围可以分配给特定的TEE,并且NVRAM控制器的接口插件可以负责接收来自一个或多个TEE的指令并且实施访问控制策略。
在804处,处理器可以接收来自可信执行环境的指令。指令可以特定于特定的TEE,例如上文关于图6和图7所描述的。在一些实施例中,公共指令集可以跨不同类型的TEE可用。在任何事件中,指令可以包括与访问控制策略相关联的信息,例如,以下中的一个或多个:可信执行环境标识符、可信执行环境指令以及与可信执行环境相关联的存储器位置范围。
接下来,在806处,NVRAM控制器的接口插件可以实施接口插件的访问控制策略,以将由可信执行环境进行的对存储器的访问限制为存储器的与可信执行环境相关联的分区。接口插件可以实施访问控制策略,以将TEE的读取和写入访问限制到片上NVRAM内的特定存储器范围。在一些实施例中,每个TEE和相关联的存储器分区可以具有相关联的访问控制策略,并且可以具有相关联的指令集。同样,在其它实施例中,多个TEE、或多种类型的TEE可以共享访问控制策略和/或指令集。
图9示出了根据实施例的制品。存储介质900可以包括任何计算机可读存储介质或机器可读存储介质,例如,光、磁或半导体存储器介质。在一些实施例中,存储介质900可以包括非暂时性存储介质。在各种实施例中,存储介质900可以包括制品。在一些实施例中,存储介质900可以存储计算机可执行指令,例如,用于实现例如逻辑流程800的计算机可执行指令。计算机可读存储介质或机器可读存储介质的示例可以包括能够存储电子数据的任何有形的介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写或可重写存储器等。计算机可执行指令的示例可以包括任何合适类型的代码,例如,源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等。实施例不限于这些示例。
图10示出了集中式系统1000的框图。集中式系统1000可以在单个计算实体中(例如,完全在单个设备1010内)实现用于web服务系统1020的结构和/或操作中的一些或全部。
设备1010可以包括能够接收、处理和发送用于web服务系统1020的信息的任何电子设备。电子设备的示例可以包括但不限于客户端设备、个人数字助理(PDA)、移动计算设备、智能手机、蜂窝电话、电子书阅读器、消息传送设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、手持式计算机、平板式计算机、服务器、服务器阵列或服务器群、web服务器、网络服务器、互联网服务器、工作站、网络器具、web器具、分布式计算系统、多处理器系统、基于处理器的系统、消费者电子设备、可编程消费者电子设备、游戏设备、电视机、机顶盒、无线接入点、基站、订户站、移动订户中心、无线电网络控制器、路由器、集线器、网关、桥接器、交换机、机器或其组合。实施例不限于该上下文。
设备1010可以使用处理组件1030来执行用于web服务系统1020的处理操作或逻辑。处理组件1030可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括设备、逻辑设备、组件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定实施例是使用硬件元件还是软件元件来实现可以根据任何数量的因素而变化,例如,期望的计算速率、功率电平、热容性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束,如给定的实现方式所期望的。
设备1010可以使用通信组件1040来执行用于web服务系统1020的通信操作或逻辑。通信组件1040可以实现任何公知的通信技术和协议,例如,适合与分组交换网络(例如,诸如互联网的公网、诸如企业内联网的私网,等)、电路交换网络(例如,公共交换电话网络)或分组交换网络和电路交换网络的组合(利用合适的网关和转换器)一起使用的技术。通信组件1040可以包括各种类型的标准通信元件,例如,一个或多个通信接口、网络接口、网络接口卡(NIC)、无线电、无线发射机/接收机(收发机)、有线和/或无线通信介质、物理连接器等。通过示例而非限制的方式,通信介质1009、1049包括有线通信介质和无线通信介质。有线通信介质的示例可以包括电线、电缆、金属导线、印刷电路板(PCB)、底板、交换结构、半导体材料、双绞线、同轴电缆、光纤、传播信号等。无线通信介质的示例可以包括声学、射频(RF)频谱、红外和其它无线介质。
设备1010可以经由通信组件1040分别利用通信信号1007、1047分别通过通信介质1009、1049与其它设备1005、1045进行通信。如给定实现方式期望的,设备1005、1045可以在设备1010的内部或外部。
例如,设备1005可以对应于诸如由用户使用的电话之类的客户端设备。通过介质1009发送的信号1007因此可以包括电话与web服务系统1020之间的通信,其中电话发送请求并且作为响应接收web页或其它数据。
设备1045可以对应于由与上面描述的第一用户不同的用户使用的第二用户设备。在一个实施例中,设备1045可以使用通过介质1049发送的信号1047将信息提交给web服务系统1020,以构建针对第一用户的加入web服务系统1020提供的服务的邀请。例如,如果web服务系统1020包括社交联网服务,则作为信号1047发送的信息可以包括第一用户的姓名和联系信息,该联系信息包括web服务系统1020稍后用于识别来自用户的传入请求的电话号码或其它信息。在其它实施例中,设备1045可以对应于由作为第一用户在社交联网服务上的朋友的不同用户使用的设备,信号1047包括作为web服务系统1020的社交联网功能的一部分最终发送到设备1005以供第一用户查看的状态信息、新闻、图像、联系信息或其它社交联网信息。
图11示出了分布式系统1100的框图。该分布式系统1100可以跨多个计算实体分布用于所公开的实施例的结构和/或操作的部分。分布式系统1100的示例可以包括但不限于客户端-服务器架构、3层架构、N层架构、紧密耦合或集群式架构、对等架构、主-从架构、共享数据库架构以及其它类型的分布式系统。实施例不限于该上下文。
分布式系统1100可以包括客户端设备1110和服务器设备1140。一般地,客户端设备1110和服务器设备1140可以与如上文参考图10所描述的客户端设备1010相同或相似。例如,客户端设备1110和服务器系统1140可以各自包括处理组件1120、1150以及通信组件1130、1160,其分别与如参考图10所描述的处理组件1030和通信组件1040相同或相似。在另一示例中,设备1110、1140可以经由通信组件1130、1160使用通信信号1107通过通信介质1105进行通信。
客户端设备1110可以包括或采用进行操作以执行根据所描述的实施例的各种方法的一个或多个客户端程序。在一个实施例中,例如,客户端设备1110可以实现关于图8所描述的一些步骤。
服务器设备1140可以包括或采用进行操作以执行根据所描述的实施例的各种方法的一个或多个服务器程序。在一个实施例中,例如,服务器设备1140可以实现关于图8所描述的一些步骤。
图12示出了适合于实现如先前描述的各种实施例的示例性计算架构1200的实施例。在一个实施例中,计算架构1200可以包括或实现为电子设备的一部分。电子设备的示例可以包括本文所描述的那些。实施例不限于该上下文。
如本申请所使用的,术语“系统”和“组件”旨在指代计算机相关实体,其为硬件、硬件和软件的组合、软件或执行软件,其示例由示例性计算架构1200提供。例如,组件可以是但不限于在处理器上运行的进程、处理器、硬盘驱动器、(光和/或磁存储介质的)多个存储驱动器、对象、可执行文件、执行线程、程序和/或计算机。通过说明的方式,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以位于一台计算机上和/或分布式在两台或更多台计算机之间。此外,组件可以通过各种类型的通信介质彼此可通信地耦合来协调操作。协调可能涉及单向或双向信息交换。例如,组件可以以通过通信介质传送的信号的形式来传送信息。信息可以实现为分配给各种信号线的信号。在这样的分配中,每条消息是信号。然而,另外的实施例可以可替代地采用数据消息。这样的数据消息可以跨各种连接发送。示例性连接包括并行接口、串行接口和总线接口。
计算架构1200包括各种常见的计算元件,例如,一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。然而,实施例不限于由计算架构1200来实现。
如图12所示,计算架构1200包括处理单元1204、系统存储器1206和系统总线1208。处理单元1204可以是各种商业可用处理器中的任一种,包括但不限于和处理器;应用、嵌入式和安全处理器;和和处理器;IBM和 Cell处理器;Core(2) 和处理器;以及类似的处理器。双微处理器、多核处理器以及其它多处理器架构也可以用作处理单元1204。
系统总线1208提供了用于包括但不限于系统存储器1206的系统组件与处理单元1204的接口。系统总线1208可以是多种类型的总线结构中的任一种,其可以使用多种商业可用的总线架构中的任一种进一步互连到存储器总线(具有或不具有存储器控制器)、外围设备总线和本地总线。接口适配器可以经由插槽架构连接到系统总线1208。示例插槽架构可以包括但不限于加速图形端口(AGP)、卡总线、(扩展)工业标准架构((E)ISA)、微通道架构(MCA)、NuBus、外围组件互连(扩展)(PCI(X))、快速PCI、个人计算机存储器卡国际协会(PCMCIA)等。
计算架构1200可以包括或实现各种制品。制品可以包括存储逻辑的计算机可读存储介质。计算机可读存储介质的示例可以包括能够存储电子数据的任何有形的介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的示例可以包括使用任何合适类型的代码实现的可执行计算机程序指令,例如,源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等。实施例还可以至少部分地实现为包含在非暂时性计算机可读介质中或其上的指令,该指令可以由一个或多个处理器读取并执行以使得能够执行本文所描述的操作。
系统存储器1206可以包括以一个或多个较高速存储器单元形式的各种类型的计算机可读存储介质,例如,只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、诸如铁电聚合物存储器的聚合物存储器、双向存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、诸如独立磁盘冗余阵列(RAID)驱动器的器件阵列、固态存储器设备(例如,USB存储器、固态驱动器(SSD))以及适合存储信息的任何其它类型的存储介质。在图12所示的说明性实施例中,系统存储器1206可以包括非易失性存储器1210和/或易失性存储器1213。基本输入/输出系统(BIOS)可以存储在非易失性存储器1210中。
计算机1202可以包括以一个或多个较低速存储器单元形式的各种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)1214、从可移除磁盘1018读取或写入可移除磁盘1018的磁软盘驱动器(FDD)1216以及从可移除光盘1222(例如,CD-ROM、DVD或蓝光盘)读取或写入可移除光盘1222的光盘驱动器1220。HDD 1214、FDD 1216和光盘驱动器1220可以分别通过HDD接口1224、FDD接口1226和光驱接口1228连接到系统总线1208。用于外部驱动实现方式的HDD接口1224可以包括通用串行总线(USB)和IEEE 1394接口技术中的至少一者或两者。
驱动器和相关联的计算机可读介质提供了对数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,若干程序模块可以存储在驱动器和存储器单元1210、1213中,包括操作系统1230、一个或多个应用程序1232、其它程序模块1234和程序数据1236。在一个实施例中,一个或多个应用程序1232、其它程序模块1234和程序数据1236可以包括例如用于实现所公开的实施例的各种应用和/或组件。
用户可以通过一个或多个有线/无线输入设备(例如,键盘1238)和定点设备(例如,鼠标1240)将命令和信息输入到计算机1202中。其它输入设备可以包括麦克风、红外(IR)远程控件、射频(RF)远程控件、游戏板、触笔、读卡器、电子狗、指纹读取器、手套、图形平板设备、操纵杆、键盘、视网膜读取器、触摸屏(例如,电容式的、电阻式的等)、跟踪球、跟踪板、传感器、触针等。这些和其它的输入设备通常通过与系统总线1208耦合的输入设备接口1242连接到处理单元1204,但是可以通过诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等其它接口来进行连接。
显示器1244还经由诸如视频适配器1246的接口连接到系统总线1208。显示器1244可以在计算机1202的内部或外部。除了显示器1244之外,计算机典型地包括其它外围输出设备,例如,扬声器、打印机等。
计算机1202可以使用逻辑连接经由与一个或多个远程计算机(例如,远程计算机1248)的有线和/或无线通信在联网环境中进行操作。远程计算机1248可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐器具、对等设备或其它公共网络节点,并且典型地包括关于计算机1202所描述的元件中的许多或全部元件,但是出于简化的目的,仅示出了存储器/存储设备1250。所描绘的逻辑连接包括到局域网(LAN)1252和/或诸如广域网(WAN)1254的较大型网络的有线/无线连接。这样的LAN和WAN联网环境常见于办公室和公司,并且促进诸如内联网的企业范围的计算机网络,其全部可以连接到诸如互联网的全球通信网络。
当在LAN联网环境中使用时,计算机1002通过有线和/或无线通信网络接口或适配器1256连接到LAN 1252。适配器1256可以促进到LAN 1252的有线和/或无线通信,LAN 1252还可以包括布置在其上用于与适配器1256的无线功能进行通信的无线接入点。
当在WAN联网环境中使用时,计算机1202可以包括调制解调器1258,或者连接到WAN 1254上的通信服务器,或者具有用于通过WAN 1254建立通信的其它手段(例如,通过互联网的方式)。可以在内部或外部并且可以是有线和/或无线设备的调制解调器1258经由输入设备接口1242连接到系统总线1208。在联网环境中,关于计算机1202描绘的程序模块或其部分可以存储在远程存储器/存储设备1250中。将意识到,所示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它手段。
计算机1202可操作以使用IEEE 802标准系列与有线和无线的设备或实体进行通信,例如,以无线通信(例如,IEEE 802.11空中调制技术)可操作地布置的无线设备。这至少包括Wi-Fi(或无线保真)、WiMax和BluetoothTM无线技术以及其它。因此,通信可以是在至少两个设备之间具有常规网络或仅具有自组织通信的预定义结构。Wi-Fi网络使用称为IEEE802.11x(a、b、g、n等)无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络能够用于将计算机彼此连接,将计算机连接到互联网,以及将计算机连接到有线网络(其使用IEEE 802.3相关的介质和功能)。
图13示出了适用于实现如先前描述的各种实施例的示例性通信架构1300的框图。通信架构1300包括各种常见的通信元件,例如,发射机、接收机、收发机、无线电、网络接口、基带处理器、天线、放大器、滤波器、电源等。然而,实施例不限于由通信架构1300来实现。
如图13所示,通信架构1300包括一个或多个客户端1310和服务器1340。客户端1310可以实现例如客户端设备1310。服务器1340可以实现例如服务器设备1340。客户端1310和服务器1340可操作地连接到能够用于存储在相应的客户端1310和服务器1340本地的信息(例如,cookies和/或相关联的上下文信息)的一个或多个相应的客户端数据存储库1320和服务器数据存储库1350。
客户端1310和服务器1340可以使用通信构架1330在彼此之间传送信息。通信构架1330可以实现任何公知的通信技术和协议。通信构架1330可以实现为分组交换网络(例如,诸如互联网的公网、诸如企业内联网的私网等)、电路交换网络(例如,公共交换电话网络)或分组交换网络和电路交换网络的组合(利用合适的网关和转换器)。
通信构架1330可以实现被布置为接受、传送并连接到通信网络的各种网络接口。网络接口可以被视为特殊形式的输入输出接口。网络接口可以采用包括但不限于直接连接、以太网(例如,粗、细、双绞线10/100/1000基础T等)、令牌环、无线网络接口、蜂窝网络接口、IEEE 802.11a-x网络接口、IEEE 802.16网络接口、IEEE 802.20网络接口等的连接协议。此外,多个网络接口可以用于参与各种通信网络类型。例如,多个网络接口可以用于允许通过广播、多播和单播网络进行的通信。如果处理要求规定了更大量的速度和容量,则分布式网络控制器架构可以类似地用于池化、负载平衡以及以其它方式增加客户端1310和服务器1340所要求的通信带宽。通信网络可以是有线和/或无线网络中的任一个和组合,包括但不限于直接互连、安全自定义连接、私网(例如,企业内联网)、公网(例如,互联网)、个域网(PAN)、局域网(LAN)、城域网(MAN)、作为互联网上节点操作任务(OMNI)、广域网(WAN)、无线网、蜂窝网以及其它通信网络。
一些实施例可以使用表达方式“一个实施例”或“实施例”及其衍生词来进行描述。这些术语意指结合实施例描述的特定特征、结构或特性包括在至少一个实施例中。在说明书各处出现的短语“在一个实施例中”不一定全部指代同一实施例。此外,一些实施例可以使用表达方式“耦合”和“连接”及其衍生词来描述。这些术语不一定意在彼此同义。例如,一些实施例可以使用术语“连接”和/或“耦合”来描述以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦合”还可以意指两个或更多个元件彼此不直接接触,而仍然彼此协作或交互。
一般地参考本文所使用的记号和命名法,此处的具体实施方式可以从在计算机或计算机网络上执行的程序过程方面来呈现。本领域技术人员使用这些过程描述和表示来向本领域其它技术人员最有效地传达其工作的实质内容。
过程在此处并且一般地被认为是导致期望结果的自一致的操作序列。这些操作是要求对物理量进行物理操纵的操作。通常,但非必要地,这些量采取能够被存储、传送、组合、比较以及以其它方式操纵的电、磁或光学信号的形式。主要出于惯常使用的原因,证实有时方便的是将这些信号称为位、值、元素、符号、字符、项、数字等。然而,应当注意,所有这些以及类似的术语应与适当的物理量相关联并且仅仅是应用于这些量的便利标记。
此外,所执行的操纵经常以诸如添加或比较的术语来称谓,其常常与人类操作者执行的心理操作相关联。在本文描述的形成一个或多个实施例的部分的操作中的任何操作中,人类操作者的这种能力在大多数情况下不是必要或期望的。相反,操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机或类似设备。
各种实施例还涉及用于执行这些操作的装置或系统。该装置可以特殊地构造成用于所要求的目的,或者其可以包括如由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。本文呈现的过程本质上与特定计算机或其它装置无关。各种通用机器可以与根据本文的教导编写的程序一起使用,或者构造更专门的装置来执行所要求的方法步骤可以证明是方便的。各种这些机器的所要求的结构将从给出的描述中出现。
在前述具体实施方式中,能够看出出于使得公开内容流畅的目的,各种特征在单个实施例中组合在一起。该公开内容的方法不应解释为反映要求保护的实施例要求比在每项权利要求中明确引述的特征更多的特征的意图。相反,如随附的权利要求反映的,发明主题在于比单个公开的实施例的全部特征少。因此,随附的权利要求特此并入具体实施方式中,其中每项权利要求独立地作为单独的实施例。在随附的权利要求中,术语“包括(including)”和“其中(in which)”分别用作相应术语“包括(comprising)”和“其中(wherein)”的通俗英语等同词。此外,术语“第一”、“第二”、“第三”等仅用作标签,而不旨在对它们的对象施加数字要求。
上文所描述的内容包括所公开的架构的示例。当然,不可能描述每个可设想的组件和方法的组合,但是本领域普通技术人员可以认识到许多另外的组合和置换是可能的。
示例1.一种用于将可信执行环境与存储器相接合的系统,包括:处理器,其包括被配置为与可信执行环境相接合的存储器,处理器被配置为:向可信执行环境指示存储器支持对可信执行环境的专门访问;接收来自可信执行环境的指令;以及实施接口插件的访问控制策略,以将由可信执行环境进行的对存储器的访问限制为存储器的与可信执行环境相关联的分区。
示例2.示例1的系统,其中,存储器是非易失性随机存取存储器(NVRAM)。
示例3.示例1的系统,其中,存储器的与可信执行环境相关联的分区是由系统BIOS创建的。
示例4.示例1的系统,其中,可信执行环境是软件防护扩展(SGX)系统。
示例5.示例1的系统,其中,可信执行环境是虚拟机管理器(VMM)系统。
示例6.示例1的系统,其中,存储器包括多个分区,多个分区中的每个分区静态地与可信执行环境相关联。
示例7.示例1的系统,其中,存储器的与可信执行环境相关联的分区包括用于一个或多个飞地的保存-恢复信息。
示例8.示例1的系统,其中,访问控制策略特别地与可信执行环境相关联。
示例9.示例1的系统,其中,访问控制策略特别地与存储器的与可信执行环境相关联的分区相关联。
示例10.示例1的系统,其中,访问控制策略包括用于读取存储在存储器的与可信执行环境相关联的分区内的数据的读取指令。
示例11.示例1的系统,其中,访问控制策略包括用于将数据写入存储器的与可信执行环境相关联的分区的写入指令。
示例12.示例1的系统,其中,访问控制策略包括以下中的一个或多个:可信执行环境标识符、可信执行环境指令以及与可信执行环境相关联的存储器位置的范围。
示例13.一种用于将可信执行环境与存储器相接合的计算机实现的方法,包括:由处理器向可信执行环境指示处理器的存储器支持对可信执行环境的专门访问;接收来自可信执行环境的指令;以及实施接口插件的访问控制策略,以将由可信执行环境进行的对存储器的访问限制为存储器的与可信执行环境相关联的分区。
示例14.示例13的计算机实现的方法,其中,存储器是非易失性随机存取存储器(NVRAM)。
示例15.示例13的计算机实现的方法,其中,存储器的与可信执行环境相关联的分区是由系统BIOS创建的。
示例16.示例13的计算机实现的方法,其中,可信执行环境是软件防护扩展(SGX)系统。
示例17.示例13的计算机实现的方法,其中,可信执行环境是虚拟机管理器(VMM)系统。
示例18.示例13的计算机实现的方法,其中,存储器包括多个分区,多个分区中的每个分区静态地与可信执行环境相关联。
示例19.示例13的计算机实现的方法,其中,存储器的与可信执行环境相关联的分区包括用于一个或多个飞地的保存-恢复信息。
示例20.示例13的计算机实现的方法,其中,访问控制策略特别地与可信执行环境相关联。
示例21.示例13的计算机实现的方法,其中,访问控制策略特别地与存储器的与可信执行环境相关联的分区相关联。
示例22.示例13的计算机实现的方法,其中,访问控制策略包括用于读取存储在存储器的与可信执行环境相关联的分区内的数据的读取指令。
示例23.示例13的计算机实现的方法,其中,访问控制策略包括用于将数据写入存储器的与可信执行环境相关联的分区的写入指令。
示例24.示例13的计算机实现的方法,其中,访问控制策略包括以下中的一个或多个:可信执行环境标识符、可信执行环境指令以及与可信执行环境相关联的存储器位置的范围。
示例25.一种包括非暂时性计算机可读存储介质的物品,非暂时性计算机可读存储介质存储指令,该指令用于由计算设备的处理电路执行以用于将可信执行环境与存储器相接合,指令使得计算设备:由处理器向可信执行环境指示处理器的存储器支持对可信执行环境的专门访问;接收来自可信执行环境的指令;以及实施接口插件的访问控制策略,以将由可信执行环境进行的对存储器的访问限制为存储器的与可信执行环境相关联的分区。
示例26.示例25的物品,其中,存储器是非易失性随机存取存储器(NVRAM)。
示例27.示例25的物品,其中,存储器的与可信执行环境相关联的分区是由系统BIOS创建的。
示例28.示例13的计算机实现的方法,其中,可信执行环境是软件防护扩展(SGX)系统。
示例29.示例13的计算机实现的方法,其中,可信执行环境是虚拟机管理器(VMM)系统。
示例30.示例25的物品,其中,存储器包括多个分区,多个分区中的每个分区静态地与可信执行环境相关联。
示例31.示例25的物品,其中,存储器的与可信执行环境相关联的分区包括用于一个或多个飞地的保存-恢复信息。
示例32.示例25的物品,其中,访问控制策略特别地与可信执行环境相关联。
示例33.示例25的物品,其中,访问控制策略特别地与存储器的与可信执行环境相关联的分区相关联。
示例34.示例25的物品,其中,访问控制策略包括用于读取存储在存储器的与可信执行环境相关联的分区内的数据的读取指令。
示例35.示例25的物品,其中,访问控制策略包括用于将数据写入存储器的与可信执行环境相关联的分区的写入指令。
示例36.示例25的物品,其中,访问控制策略包括以下中的一个或多个:可信执行环境标识符、可信执行环境指令以及与可信执行环境相关联的存储器位置的范围。
示例37.一种用于将可信执行环境与存储器相接合的计算设备,包括:用于向可信执行环境指示处理器的存储器支持对可信执行环境的专门访问的单元;用于接收来自可信执行环境的指令的单元;以及用于实施接口插件的访问控制策略以将可信执行环境对存储器的访问限制到存储器的与可信执行环境相关联的分区的单元。
示例38.示例37的计算设备,其中,存储器是非易失性随机存取存储器(NVRAM)。
示例39.示例37的计算设备,其中,存储器的与可信执行环境相关联的分区是由系统BIOS创建的。
示例40.示例37的计算设备,其中,可信执行环境是软件防护扩展(SGX)系统。
示例41.示例37的计算设备,其中,可信执行环境是虚拟机管理器(VMM)系统。
示例42.示例37的计算设备,其中,存储器包括多个分区,多个分区中的每个分区静态地与可信执行环境相关联。
示例43.示例37的计算设备,其中,存储器的与可信执行环境相关联的分区包括用于一个或多个飞地的保存-恢复信息。
示例44.示例37的计算设备,其中,访问控制策略特别地与可信执行环境相关联。
示例45.示例37的计算设备,其中,访问控制策略特别地与存储器的与可信执行环境相关联的分区相关联。
示例46.示例37的计算设备,其中,访问控制策略包括用于读取存储在存储器的与可信执行环境相关联的分区内的数据的读取指令。
示例47.示例37的计算设备,其中,访问控制策略包括用于将数据写入存储器的与可信执行环境相关联的分区的写入指令。
示例48.示例37的计算设备,其中,访问控制策略包括以下中的一个或多个:可信执行环境标识符、可信执行环境指令以及与可信执行环境相关联的存储器位置的范围。
示例49.一种用于将可信执行环境与存储器相接合的装置,包括:至少一个存储器;至少一个处理器;以及被配置为将可信执行环境与存储器相接合的逻辑,逻辑的至少一部分包括在硬件中并且由至少一个处理器执行,逻辑用于:向可信执行环境指示处理器的存储器支持对可信执行环境的专门访问;接收来自可信执行环境的指令;以及实施接口插件的访问控制策略,以将由可信执行环境进行的对存储器的访问限制为存储器的与可信执行环境相关联的分区。
示例50.示例49的装置,其中,存储器是非易失性随机存取存储器(NVRAM)。
示例51.示例49的装置,其中,存储器的与可信执行环境相关联的分区是由系统BIOS创建的。
示例52.示例49的装置,其中,可信执行环境是软件防护扩展(SGX)系统。
示例53.示例49的装置,其中,可信执行环境是虚拟机管理器(VMM)系统。
示例54.示例49的装置,其中,存储器包括多个分区,多个分区中的每个分区静态地与可信执行环境相关联。
示例55.示例49的装置,其中,存储器的与可信执行环境相关联的分区包括用于一个或多个飞地的保存-恢复信息。
示例56.示例49的装置,其中,访问控制策略特别地与可信执行环境相关联。
示例57.示例的装置,其中,访问控制策略特别地与存储器的与可信执行环境相关联的分区相关联。
示例58.示例49的装置,其中,访问控制策略包括用于读取存储在存储器的与可信执行环境相关联的分区内的数据的读取指令。
示例59.示例49的装置,其中,访问控制策略包括用于将数据写入存储器的与可信执行环境相关联的分区的写入指令。
示例60.示例49的装置,其中,访问控制策略包括以下中的一个或多个:可信执行环境标识符、可信执行环境指令以及与可信执行环境相关联的存储器位置的范围。
Claims (25)
1.一种用于将可信执行环境与存储器相接合的系统,包括:
处理器,其包括被配置为与所述可信执行环境相接合的所述存储器,所述处理器被配置为:
向所述可信执行环境指示所述存储器支持对所述可信执行环境的专门访问;
接收来自所述可信执行环境的指令;以及
实施接口插件的访问控制策略,以将由所述可信执行环境进行的对所述存储器的访问限制为所述存储器的与所述可信执行环境相关联的分区。
2.根据权利要求1所述的系统,其中,所述存储器是非易失性随机存取存储器(NVRAM)。
3.根据权利要求1所述的系统,其中,所述存储器的与所述可信执行环境相关联的所述分区是由系统BIOS创建的。
4.根据权利要求1所述的系统,其中,所述可信执行环境是软件防护扩展(SGX)系统。
5.根据权利要求1所述的系统,其中,所述可信执行环境是虚拟机管理器(VMM)系统。
6.根据权利要求1所述的系统,其中,所述存储器包括多个分区,所述多个分区中的每个分区静态地与可信执行环境相关联。
7.根据权利要求1所述的系统,其中,所述存储器的与所述可信执行环境相关联的所述分区包括用于一个或多个飞地的保存-恢复信息。
8.根据权利要求1所述的系统,其中,所述访问控制策略特别地与所述可信执行环境相关联。
9.根据权利要求1所述的系统,其中,所述访问控制策略特别地与所述存储器的与所述可信执行环境相关联的所述分区相关联。
10.根据权利要求1所述的系统,其中,所述访问控制策略包括用于读取存储在所述存储器的与所述可信执行环境相关联的所述分区内的数据的读取指令。
11.根据权利要求1所述的系统,其中,所述访问控制策略包括用于将数据写入所述存储器的与所述可信执行环境相关联的所述分区的写入指令。
12.根据权利要求1所述的系统,其中,所述访问控制策略包括以下中的一个或多个:可信执行环境标识符、可信执行环境指令以及与可信执行环境相关联的存储器位置的范围。
13.一种用于将可信执行环境与存储器相接合的计算机实现的方法,包括:
由处理器向所述可信执行环境指示所述处理器的存储器支持对所述可信执行环境的专门访问;
接收来自所述可信执行环境的指令;以及
实施接口插件的访问控制策略,以将由所述可信执行环境进行的对所述存储器的访问限制为所述存储器的与所述可信执行环境相关联的分区。
14.根据权利要求13所述的计算机实现的方法,其中,所述存储器是非易失性随机存取存储器(NVRAM)。
15.根据权利要求13所述的计算机实现的方法,其中,所述存储器的与所述可信执行环境相关联的所述分区是由系统BIOS创建的。
16.根据权利要求13所述的计算机实现的方法,其中,所述可信执行环境是软件防护扩展(SGX)系统。
17.根据权利要求13所述的计算机实现的方法,其中,所述可信执行环境是虚拟机管理器(VMM)系统。
18.根据权利要求13所述的计算机实现的方法,其中,所述存储器包括多个分区,所述多个分区中的每个分区静态地与可信执行环境相关联。
19.根据权利要求13所述的计算机实现的方法,其中,所述存储器的与所述可信执行环境相关联的所述分区包括用于一个或多个飞地的保存-恢复信息。
20.根据权利要求13所述的计算机实现的方法,其中,所述访问控制策略特别地与所述可信执行环境相关联。
21.根据权利要求13所述的计算机实现的方法,其中,所述访问控制策略特别地与所述存储器的与所述可信执行环境相关联的所述分区相关联。
22.根据权利要求13所述的计算机实现的方法,其中,所述访问控制策略包括用于读取存储在所述存储器的与所述可信执行环境相关联的所述分区内的数据的读取指令。
23.根据权利要求13所述的计算机实现的方法,其中,所述访问控制策略包括用于将数据写入所述存储器的与所述可信执行环境相关联的所述分区的写入指令。
24.根据权利要求13所述的计算机实现的方法,其中,所述访问控制策略包括以下中的一个或多个:可信执行环境标识符、可信执行环境指令以及与可信执行环境相关联的存储器位置的范围。
25.一种用于将可信执行环境与存储器相接合的装置,包括:
至少一个存储器;
至少一个处理器;以及
被配置为将所述可信执行环境与所述存储器相接合的逻辑,所述逻辑的至少一部分包括在硬件中并且由所述至少一个处理器执行,所述逻辑用于:
向所述可信执行环境指示所述处理器的所述存储器支持对所述可信执行环境的专门访问;
接收来自所述可信执行环境的指令;以及
实施接口插件的访问控制策略,以将由所述可信执行环境进行的对所述存储器的访问限制为所述存储器的与所述可信执行环境相关联的分区。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/600,666 | 2017-05-19 | ||
US15/600,666 US10706143B2 (en) | 2017-05-19 | 2017-05-19 | Techniques for secure-chip memory for trusted execution environments |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108959932A true CN108959932A (zh) | 2018-12-07 |
CN108959932B CN108959932B (zh) | 2024-10-18 |
Family
ID=64271755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810394386.7A Active CN108959932B (zh) | 2017-05-19 | 2018-04-27 | 用于可信执行环境的安全芯片存储器的技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10706143B2 (zh) |
CN (1) | CN108959932B (zh) |
DE (1) | DE102018109397A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726588A (zh) * | 2018-12-21 | 2019-05-07 | 上海邑游网络科技有限公司 | 基于信息隐藏的隐私保护方法和系统 |
CN110138799A (zh) * | 2019-05-30 | 2019-08-16 | 东北大学 | 一种基于sgx的安全云存储方法 |
CN110134545A (zh) * | 2019-04-03 | 2019-08-16 | 上海交通大学 | 基于可信执行环境的提供虚拟nvram的方法及系统 |
CN110417538A (zh) * | 2019-07-30 | 2019-11-05 | 广州小鹏汽车科技有限公司 | 车辆及其内部安全通信的方法和系统 |
WO2019120335A3 (en) * | 2019-04-19 | 2020-02-13 | Alibaba Group Holding Limited | Methods and devices for executing trusted applications on processor with support for protected execution environments |
CN113721919A (zh) * | 2021-08-09 | 2021-11-30 | 上海交通大学 | 基于Intel SGX可信执行环境的在线编译混淆实现方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10691837B1 (en) | 2017-06-02 | 2020-06-23 | Apple Inc. | Multi-user storage volume encryption via secure enclave |
US11388008B2 (en) * | 2019-07-16 | 2022-07-12 | International Business Machines Corporation | Trusted platform module swarm |
DE112020004561T5 (de) | 2019-09-27 | 2022-10-13 | Intel Corporation | Systeme, Verfahren und Einrichtungen für softwaredefinierte Siliziumsicherheit |
EP4035116A4 (en) | 2019-09-27 | 2023-10-04 | Intel Corporation | SOFTWARE DEFINED SILICON IMPLEMENTATION AND MANAGEMENT |
US11556654B2 (en) * | 2019-12-23 | 2023-01-17 | Mediatek Inc. | Security schemes for multiple trusted-execution-environments (TEEs) and multiple rich-execution-environments (REEs) |
US11546341B2 (en) * | 2020-02-14 | 2023-01-03 | Sap Se | Secure group file sharing |
US11977612B2 (en) | 2020-07-07 | 2024-05-07 | Intel Corporation | Software defined silicon guardianship |
US20210109870A1 (en) * | 2020-12-23 | 2021-04-15 | Ravi L. Sahita | Isolating memory within trusted execution environments |
CN113282946B (zh) * | 2021-07-20 | 2021-11-16 | 南湖实验室 | 基于高可信环境下数据访问过程的信息安全方法及系统 |
US20230185611A1 (en) * | 2021-12-03 | 2023-06-15 | Nvidia Corporation | Application programming interface to limit memory |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1496508A (zh) * | 2001-03-08 | 2004-05-12 | 国际商业机器公司 | 分区处理环境中的资源平衡 |
US20050081199A1 (en) * | 2003-10-14 | 2005-04-14 | Microsoft Corporation. | Systems and methods for using synthetic instructions in a virtual machine |
US20050125673A1 (en) * | 2003-12-08 | 2005-06-09 | International Business Machines Corporation | Method and system for managing the display of sensitive content in non-trusted environments |
CN1700136A (zh) * | 2004-05-20 | 2005-11-23 | 英特尔公司 | 处理器扩展和软件验证 |
US20080077993A1 (en) * | 2006-09-26 | 2008-03-27 | Zimmer Vincent J | Methods and arrangements to launch trusted, co-existing environments |
US20090300333A1 (en) * | 2008-06-03 | 2009-12-03 | Microsoft Corporation | Hardware support for work queue management |
US7986786B2 (en) * | 2006-11-30 | 2011-07-26 | Hewlett-Packard Development Company, L.P. | Methods and systems for utilizing cryptographic functions of a cryptographic co-processor |
US20120036347A1 (en) * | 2010-08-06 | 2012-02-09 | Swanson Robert C | Providing fast non-volatile storage in a secure environment |
CN103870398A (zh) * | 2012-12-11 | 2014-06-18 | 晨星软件研发(深圳)有限公司 | 存储器存取权限控制方法与相关存储器管理系统 |
CN104881596A (zh) * | 2013-12-27 | 2015-09-02 | 英特尔公司 | 在安全处理环境中修改存储器权限 |
US20160036826A1 (en) * | 2014-07-29 | 2016-02-04 | Mcafee, Inc. | Secure content packaging using multiple trusted execution environments |
US20160117519A1 (en) * | 2014-10-23 | 2016-04-28 | Northrop Grumman Systems Corporation | Multi-level security system for enabling secure file sharing across multiple security levels and method thereof |
WO2016149895A1 (en) * | 2015-03-23 | 2016-09-29 | Intel Corporation | Execution context migration method and apparatus |
CN106605233A (zh) * | 2014-09-10 | 2017-04-26 | 英特尔公司 | 使用处理器提供可信执行环境 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050080934A1 (en) * | 2003-09-30 | 2005-04-14 | Cota-Robles Erik C. | Invalidating translation lookaside buffer entries in a virtual machine (VM) system |
US8938606B2 (en) * | 2010-12-22 | 2015-01-20 | Intel Corporation | System, apparatus, and method for segment register read and write regardless of privilege level |
-
2017
- 2017-05-19 US US15/600,666 patent/US10706143B2/en active Active
-
2018
- 2018-04-19 DE DE102018109397.7A patent/DE102018109397A1/de active Pending
- 2018-04-27 CN CN201810394386.7A patent/CN108959932B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1496508A (zh) * | 2001-03-08 | 2004-05-12 | 国际商业机器公司 | 分区处理环境中的资源平衡 |
US20050081199A1 (en) * | 2003-10-14 | 2005-04-14 | Microsoft Corporation. | Systems and methods for using synthetic instructions in a virtual machine |
US20050125673A1 (en) * | 2003-12-08 | 2005-06-09 | International Business Machines Corporation | Method and system for managing the display of sensitive content in non-trusted environments |
CN1700136A (zh) * | 2004-05-20 | 2005-11-23 | 英特尔公司 | 处理器扩展和软件验证 |
US20080077993A1 (en) * | 2006-09-26 | 2008-03-27 | Zimmer Vincent J | Methods and arrangements to launch trusted, co-existing environments |
CN101154256A (zh) * | 2006-09-26 | 2008-04-02 | 英特尔公司 | 启动可信共存环境的方法和装置 |
US7986786B2 (en) * | 2006-11-30 | 2011-07-26 | Hewlett-Packard Development Company, L.P. | Methods and systems for utilizing cryptographic functions of a cryptographic co-processor |
US20090300333A1 (en) * | 2008-06-03 | 2009-12-03 | Microsoft Corporation | Hardware support for work queue management |
US20120036347A1 (en) * | 2010-08-06 | 2012-02-09 | Swanson Robert C | Providing fast non-volatile storage in a secure environment |
CN103119602A (zh) * | 2010-08-06 | 2013-05-22 | 英特尔公司 | 在安全环境中提供快速非易失性储存器 |
CN103870398A (zh) * | 2012-12-11 | 2014-06-18 | 晨星软件研发(深圳)有限公司 | 存储器存取权限控制方法与相关存储器管理系统 |
CN104881596A (zh) * | 2013-12-27 | 2015-09-02 | 英特尔公司 | 在安全处理环境中修改存储器权限 |
US20160036826A1 (en) * | 2014-07-29 | 2016-02-04 | Mcafee, Inc. | Secure content packaging using multiple trusted execution environments |
CN106605233A (zh) * | 2014-09-10 | 2017-04-26 | 英特尔公司 | 使用处理器提供可信执行环境 |
US20160117519A1 (en) * | 2014-10-23 | 2016-04-28 | Northrop Grumman Systems Corporation | Multi-level security system for enabling secure file sharing across multiple security levels and method thereof |
WO2016149895A1 (en) * | 2015-03-23 | 2016-09-29 | Intel Corporation | Execution context migration method and apparatus |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726588A (zh) * | 2018-12-21 | 2019-05-07 | 上海邑游网络科技有限公司 | 基于信息隐藏的隐私保护方法和系统 |
CN109726588B (zh) * | 2018-12-21 | 2021-04-06 | 上海邑游网络科技有限公司 | 基于信息隐藏的隐私保护方法和系统 |
CN110134545A (zh) * | 2019-04-03 | 2019-08-16 | 上海交通大学 | 基于可信执行环境的提供虚拟nvram的方法及系统 |
CN110134545B (zh) * | 2019-04-03 | 2020-12-22 | 上海交通大学 | 基于可信执行环境的提供虚拟nvram的方法及系统 |
WO2019120335A3 (en) * | 2019-04-19 | 2020-02-13 | Alibaba Group Holding Limited | Methods and devices for executing trusted applications on processor with support for protected execution environments |
US10733285B1 (en) | 2019-04-19 | 2020-08-04 | Alibaba Group Holding Limited | Methods and devices for executing trusted applications on processor with support for protected execution environments |
US10867030B2 (en) | 2019-04-19 | 2020-12-15 | Advanced New Technologies Co., Ltd. | Methods and devices for executing trusted applications on processor with support for protected execution environments |
CN110138799A (zh) * | 2019-05-30 | 2019-08-16 | 东北大学 | 一种基于sgx的安全云存储方法 |
CN110417538A (zh) * | 2019-07-30 | 2019-11-05 | 广州小鹏汽车科技有限公司 | 车辆及其内部安全通信的方法和系统 |
CN110417538B (zh) * | 2019-07-30 | 2022-10-14 | 广州小鹏汽车科技有限公司 | 车辆及其内部安全通信的方法和系统 |
CN113721919A (zh) * | 2021-08-09 | 2021-11-30 | 上海交通大学 | 基于Intel SGX可信执行环境的在线编译混淆实现方法 |
CN113721919B (zh) * | 2021-08-09 | 2024-03-12 | 上海交通大学 | 基于Intel SGX可信执行环境的在线编译混淆实现方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180336342A1 (en) | 2018-11-22 |
DE102018109397A1 (de) | 2018-11-22 |
US10706143B2 (en) | 2020-07-07 |
CN108959932B (zh) | 2024-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959932A (zh) | 用于可信执行环境的安全芯片存储器的技术 | |
US12041037B2 (en) | Techniques for shared private data objects in a trusted execution environment | |
Mahajan et al. | RETRACTED ARTICLE: Integration of Healthcare 4.0 and blockchain into secure cloud-based electronic health records systems | |
Miyachi et al. | hOCBS: A privacy-preserving blockchain framework for healthcare data leveraging an on-chain and off-chain system design | |
US10541804B2 (en) | Techniques for key provisioning in a trusted execution environment | |
CN104982005B (zh) | 实施虚拟化环境中的特权加密服务的计算装置及方法 | |
US8930714B2 (en) | Encrypted memory | |
CN104620254B (zh) | 用于低开销的存储器重播保护的并行化的计数器攀树 | |
US20230281604A1 (en) | Technologies for creating and transferring non-fungible token based identities | |
CN104067287B (zh) | 用于数据完整性保护的方法、装置、系统和机器可读介质 | |
US10372628B2 (en) | Cross-domain security in cryptographically partitioned cloud | |
DE202019005671U1 (de) | Koexistenz von Vertrauensdomänenarchitektur mitMehrschlüssel-Gesamtspeicherverschlüsselungstechnologieauf Servern | |
WO2022139850A1 (en) | Cryptographic computing including enhanced cryptographic addresses | |
DE102018005180A1 (de) | Flexible Bescheinigung von Containern | |
CN110022199A (zh) | 用于计数器模式存储器保护的间接目录 | |
CN106063185A (zh) | 用于安全地共享数据的方法和装置 | |
Banotra et al. | Use of blockchain and internet of things for securing data in healthcare systems | |
US20120173563A1 (en) | Tokenization of multiple-field records | |
CN102271153A (zh) | 用于虚拟化tpm访问的系统、方法以及装置 | |
JP2010517424A (ja) | Usbトークン上の暗号化キーコンテナ | |
CN107277023A (zh) | 一种基于Web的移动瘦终端访问控制方法、系统及瘦终端 | |
TW201633203A (zh) | 裝置與安全處理環境之間的介面 | |
US20180181764A1 (en) | System, apparatus and method for trusted channel creation using execute-only code | |
CN106030602B (zh) | 基于虚拟化的块内工作负荷隔离 | |
Abid et al. | A smart contract-based access control framework for smart healthcare systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |