CN109643344B - 用于共享安全性元数据存储器空间的方法和装置 - Google Patents

用于共享安全性元数据存储器空间的方法和装置 Download PDF

Info

Publication number
CN109643344B
CN109643344B CN201780053586.XA CN201780053586A CN109643344B CN 109643344 B CN109643344 B CN 109643344B CN 201780053586 A CN201780053586 A CN 201780053586A CN 109643344 B CN109643344 B CN 109643344B
Authority
CN
China
Prior art keywords
memory
security metadata
tmei
mee
encryption
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.)
Active
Application number
CN201780053586.XA
Other languages
English (en)
Other versions
CN109643344A (zh
Inventor
S·查伯拉
D·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 CN109643344A publication Critical patent/CN109643344A/zh
Application granted granted Critical
Publication of CN109643344B publication Critical patent/CN109643344B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

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

Abstract

当前公开的用于共享安全性元数据存储器空间的方法和装置提出了允许元数据共享两种不同的加密技术的技术。使用第一种类型的加密进行加密并且具有与其相关联的第一安全性元数据的存储器的区段被转换为使用第二种类型的加密进行加密并且具有与其相关联的第二安全性元数据的存储器的区段。对于存储器的相同区段,所述第一安全性元数据的至少一部分与所述第二安全性元数据的至少一部分共享存储器空间。

Description

用于共享安全性元数据存储器空间的方法和装置
技术领域
本公开涉及允许在存储器加密引擎(MEE)与具有完整性的总存储器加密(TMEi)之间进行元数据共享的机制,用于为TMEi提供零存储开销完整性保护。
背景技术
对计算机系统中的存储器的保护至关重要。可以加密存储器以保护存储器数据的机密性、完整性和重放。可以使用不同类型的加密对存储器的区段进行加密。每种类型的加密包括其自己的相应安全性元数据。例如,存储器的区段(例如,存储器的页面)可以使用第一种类型的加密进行加密,并且具有与其相关联且存储在存储器中的第一安全性元数据。存储器的相同区段可以使用第二种类型的加密进行加密,具有与其相关联且存储在存储器中的第二种类型的安全性元数据。就安全性元数据而言提供这种存储器保护所要求的存储器的量导致保护机制占用大量存储器。
通过示例的方式,一种加密模式被称为具有完整性的总存储器加密(TMEi),其目标是保护整个平台存储器的机密性和完整性。TMEi还用于防止软件数据损坏。为了使TMEi提供完整性保护,要求将安全性元数据存储在存储器中。
通过示例的方式,另一种加密模式被称为软件保护扩展(SGX),并且使用存储器加密引擎(MEE)来保护存储器的固定区域。虽然可以使用其他类型的加密,但以下示例用于解释目的。在SGX和TMEi在平台上共存的情况下,假设没有优化来减少MEE的存储开销,当前平台将为安全性元数据保留大块的系统存储器,这是用于安全性的重大开销。
附图说明
所要求保护的主题的特征和优点根据与其一致的实施例的以下详细描述将变得显而易见,该描述应参考附图来考虑,其中:
图1示出了与本公开的若干实施例一致的用于共享安全性元数据存储器空间的当前公开的方法和装置的元数据开销的框图;
图2是用于共享安全性元数据存储器空间的方法的流程图;
图3是用于共享安全性元数据存储器空间的另一方法的流程图;
图4是与本公开的若干实施例一致的存储器布局的图;
图5是与本公开的若干实施例一致的受页面转换为EPC影响的存储器布局的图;以及
图6是根据本公开的各种实施例的受页面转换为非EPC影响的存储器布局的图。
图7是根据本公开的各种实施例的处理模块的框图。
图8示出了用于根据本公开的各种实施例的设备的示例配置。
虽然以下具体实施方式将对说明性实施例进行参考,但是其许多替换、修改和变化对于本领域技术人员将是显而易见的。
具体实施方式
本公开针对用于共享安全性元数据存储器空间的方法和/或装置。在一个实施例中,一种方法被配置为执行指令,该指令用于将已经使用第一种类型的加密进行加密并且具有与其相关联的第一安全性元数据的存储器的区段转换为使用第二种类型的加密进行加密并且具有与其相关联的第二种类型的安全性元数据的存储器的区段。该方法还被配置为,其中,对于存储器的相同页面第一安全性元数据的至少一部分与第二安全性元数据的至少一部分共享存储器空间。
在另一实施例中,一种计算机系统被配置为执行指令,该指令用于将已经使用第一种类型的加密进行加密并且具有与其相关联的第一安全性元数据的存储器的区段转换为使用第二种类型的加密进行加密并且具有与其相关联的第二种类型的安全性元数据的存储器的区段。该计算机系统还被配置为执行指令,其中,对于存储器的相同页面第一安全性元数据的至少一部分与第二安全性元数据的至少一部分共享存储器空间。
在另一实施例中,一种计算机可读存储设备上存储有指令,该指令当由一个或多个处理器执行时导致以下操作。该指令导致将已经使用第一种类型的加密进行加密并且具有与其相关联的第一安全性元数据的存储器的区段转换为使用第二种类型的加密进行加密并且具有与其相关联的第二种类型的安全性元数据的存储器的区段的操作。该计算机可读存储设备还包括用于使一个或多个处理器执行指令的指令,其中,对于存储器的相同页面第一安全性元数据的至少一部分与第二安全性元数据的至少一部分共享存储器空间。
如本文使用的“SGX”指代软件保护扩展(SGX),并且用于在核心中提供保护,以隔离SGX飞地(应用的SGX保护的部分),以及在非核心中提供保护以在飞地数据位于平台存储器中时保护飞地数据的机密性、完整性和重放。SGX保护被称为飞地页面高速缓存(EPC)的存储器的固定区域,其是从操作系统(OS)窃取以供常规使用专用SGX存储器。系统存储器中的飞地数据保护由存储器加密引擎(MEE)提供,存储器加密引擎(MEE)在飞地数据离开处理器芯片时将飞地数据加密和完整性保护到EPC。由MEE在存储器中维护以用于向飞地数据提供安全性的安全性元数据在引导时被保留并且从OS窃取。
如本文使用的“MEE”指代使用计数器模式加密和基于计数器的消息认证码(MAC)的加密技术,其形成存储在存储器中的安全性元数据的一部分。国家标准与技术研究院(NIST)指定了两种类型的计数器。第一种类型的计数器是由一次使用随机数(nonce)和计数器组成的计数器。一次使用随机数是随机的,并且其余字节是计数器字节(其是递增的)。第二种类型的计数器是计数器块,其中所有字节都是计数器字节,并且可以在生成进位时递增。
如本文使用的“XEX”指代使用块密码操作模式的异或-加密-异或加密技术。如本文使用的“XTS”指代使用密码模式加密技术的利用密文窃取的基于XEX的调整码本模式。
如本文使用的“TMEi”指代使用基于XTS的加密和与XTS兼容的MAC算法的加密技术。MAC存储在存储器中。具有完整性的总存储器加密(TMEi)是另一安全性特征,其目标为保护整个平台存储器的机密性和完整性。TMEi还用于防止软件数据损坏。为了使TMEi提供完整性保护,要求将安全性元数据存储在存储器中。当使用32位MAC时,TMEi要求保留整个存储器的6.25%用于存储安全性元数据。存储开销将基于使用的MAC大小而变化,并且安全性强度也是如此。在该示例中,56b MAC用作用于匹配MEE MAC大小和强度的示例匹配大小。在这种情况下,用于TMEi的MAC的存储器开销替代地将为12.5%。
在未来,灵活的EPC保护和TMEi保护将是共存的,并且希望使与这些技术相关联的系统开销最小化。
如本文使用的,“灵活的EPC”指代用于控制在常规与安全之间进行的页面转换的指令,并且如果需要的话,允许整个存储器用作SGX存储器。
如本文使用的“电路”可以例如单独地或以任何组合地包括硬连线电路、可编程电路(例如,包括一个或多个单独指令处理核心的计算机处理器)、状态机电路和/或存储由可编程电路执行的指令的固件。逻辑可以共同地或单独地体现为形成诸如集成电路(IC)、专用集成电路(ASIC)、片上系统(SoC)、台式计算机、膝上型计算机、平板计算机、服务器、智能电话等之类的更大系统的一部分的电路。
以下描述仅出于解释目的使用两种示例类型的加密(TMEi和MEE)。应当理解,可以使用其他类型的加密,并且本公开不一定仅限于用作示例的加密类型。
图1示出了存储器中的安全性元数据开销。在图1中,示出了存储器100。在该实例中的安全性元数据包括第一加密类型MAC和第二加密类型MAC 102以及第二加密类型计数器104。例如,第一加密类型可以是TMEi,并且第一加密类型MAC是TMEi MAC。同样通过示例的方式,第二加密类型是MEE,并且安全性元数据包括MEE MAC和MEE计数器。
图1和图2中描绘了当前公开的方法的流程图。矩形元素在本文中表示为“处理框”,并且表示计算机软件指令或指令组。可替代地,处理框表示由诸如数字信号处理器电路或专用集成电路(ASIC)之类的功能等效的电路执行的步骤。流程图没有描绘任何特定编程语言的语法。而是,流程图示出了本领域普通技术人员要求的功能信息,用于制造电路或生成计算机软件以执行根据本发明所要求的处理。应该注意,没有示出许多例程程序元素,例如,循环和变量的初始化以及临时变量的使用。本领域普通技术人员将认识到,除非本文另外指示,否则所描述的特定步骤顺序仅是说明性的,并且可以在不脱离本发明的精神的情况下进行改变。因此,除非另外阐述,否则下面描述的步骤是无序的,意味着在可能的情况下,步骤可以以任何方便或期望的顺序执行。
现在参考图2,示出了共享安全性元数据存储器空间200的方法的流程图。方法200开始于处理框202,其公开了将使用第一种类型的加密进行加密并且具有与其相关联的第一安全性元数据的存储器的区段转换为使用第二种类型的加密进行加密并且具有与其相关联的第二安全性元数据的存储器的区段。如处理框204所示,在特定实施例中,第一种类型的加密包括具有完整性的总存储器加密(TMEi)加密,并且其中第一安全性元数据包括TMEi消息认证码(MAC)。如处理框206所示,在特定示例中,第二种类型的加密包括存储器加密引擎(MEE)加密,并且其中第二安全性元数据包括MEE计数器和MEE消息认证码(MAC)。
处理框208阐述了其中对存储器的区段进行转换包括对存储器的页面进行转换。在一些实施例中,处理存储器的页面更高效。存储器的页面是固定长度的连续存储器块。
处理框210陈述了对存储器的区段进行转换包括使用地址映射,该地址映射将数据行地址映射到需要被提取以验证数据行的完整性的所有安全性元数据行的地址。
处理框212公开了对于存储器的相同区段,针对第一安全性元数据的至少一部分与第二安全性元数据的至少一部分共享存储器空间。如在处理框214中进一步示出的,在特定示例中,对于存储器的相同区段使第一安全性元数据的至少一部分与第二安全性元数据的至少一部分进行共享包括TMEi MAC与MEE Mac共享存储器空间。
处理框216阐述了其中在系统重置时,将所有存储器转换为使用所述第一种类型的加密进行加密并且具有与其相关联的所述第一种类型的安全性元数据的存储器。
图3公开了用于共享安全性元数据存储器空间300的另一种方法。方法300开始于处理框302,其公开了将使用第一种类型的加密进行加密并且具有与其相关联的第一安全性元数据的存储器的区段转换为使用第二种类型的加密进行加密并且具有与其相关联的第二安全性元数据的存储器的区段。如处理框304所示,在特定实施例中,第一种类型的加密包括存储器加密引擎(MEE)加密,并且其中第一安全性元数据包括MEE计数器和MEE消息认证码(MAC)。如处理框306所示,在特定实施例中,第二种类型的加密包括具有完整性的总存储器加密(TMEi)加密,并且其中第一安全性元数据包括TMEi消息认证码(MAC)。
处理框308阐述了其中对存储器的区段进行转换包括对存储器的页面进行转换。处理框310陈述了对存储器的区段进行转换包括使用地址映射,该地址映射将数据行地址映射到需要被提取以验证数据行的完整性的所有安全性元数据行的地址。
处理框312公开了对于存储器的相同区段,针对第一安全性元数据的至少一部分与第二安全性元数据的至少一部分共享存储器空间。如在处理框314中进一步示出的,在特定示例中,对于存储器的相同区段使第一安全性元数据的至少一部分与第二安全性元数据的至少一部分进行共享包括TMEi MAC与MEE Mac共享存储器空间。
处理框316阐述了其中在系统重置时,将所有存储器转换为使用第二种类型的加密进行加密并且具有与其相关联的第二种类型的安全性元数据的存储器。
通过加载数据行以及与数据行相关联的安全性元数据,并且在行位于存储器中时验证从存储器加载的安全性元数据以验证该行的完整性,由MEE或TMEi提供的安全性保护起作用。系统以所有存储器作为常规存储器来启动,自然地受TMEi保护。在系统的生命周期期间,使用利用灵活的EPC、EMKEPC提供的指令将页面转换为EPC以供飞地使用。类似地,使用灵活的EPC指令EMKNONEPC将页面转换回常规的。在执行EMKEPC时,EPC页面变为处于MEE的保护下,并且在执行EMKNONEPC时,页面被移出MEE保护,并且替代地由TMEi引擎保护。
在任何时间点,存储器页面可以获得MEE或TMEi引擎的保护,但不会获得两者的保护。本公开涉及用于针对MEE和TMEi共享元数据区域的方法和/或装置。更具体地,MAC区域在MEE与TMEi之间共享。利用灵活的EPC,在将页面转换为常规存储器(MEE到TMEi)时,重置与页面相关联的计数器以防止页面上的完整性故障,下次将该页面转换回EPC(TMEi到MEE),并且通过飞地读取(MEE使用重置计数器作为跳过完整性验证的指示)。为了允许元数据共享,除了重置与页面上的数据行相关联的计数器之外,用于转换为非EPC页面的灵活的EPC指令还初始化与页面相关联的MAC行。一旦页面被转换为非EPC并且变为处于TMEi的保护下,这防止任何错误的完整性故障。所提出的发明以零存储开销实现TMEi保护,使得TMEi对OSV更具吸引力。
MEE在受保护的存储器上构建计数器和MAC值的树。该树在SGX数据位于存储器中时向SGX数据提供完整性和重放保护。通过针对加载的数据行遍历树分支直到达到(存储在管芯上的)根(或者在内部元数据高速缓存中存在针对元数据高速缓存行的命中)来进行验证。MEE树是自初始化的。在系统启动时,在可以对MEE进行任何访问之前,树的顶层计数器被初始化为零。在首次访问时,受保护区域中的任何数据行将攀爬到树上,并且在找到处于初始化状态下的任何计数器行时,将跳过认证,并且替代地以特殊初始化模式将在树中的顶层计数器之前的中间元数据行填充到MEE高速缓存。从此处开始,对数据行的写入沿树分支向上到根使计数器递增,并且读取使用嵌入在计数器高速缓存行中的MAC来验证计数器。在树中的最低层级处,每个数据行与MAC和计数器值相关联,该计数器值也称为高速缓存行的版本。从数据行到在MEE内部实现的树节点存在固定的映射,以便在需要时加载和验证节点。MAC长度为56b,允许8个数据行MAC存储在一个MAC行中。
图4示出了MEE元数据映射400。MEE映射示出了数据行及其与存储器中的安全性元数据行的关系。元数据映射示出了数据402和安全性元数据404。安全性元数据包括MEE MAC406和MEE计数器106。为了简单起见,在图中未示出到树中的较高层级(L0-LN)的映射。
TMEi使用数据相关的加密模式(例如,XTS),并且同样地,没有与高速缓存行相关联的任何计数器。受TMEi保护的每个高速缓存行具有与其相关联的MAC。为了维护与MEE相同的安全性强度MAC,对于本发明的第一实施例,MAC长度保持在56b。
与MEE类似,TMEi也需要对MAC值的初始化,以确保对以前从未写入的数据行的读取不会导致完整性故障。在系统重置时,可以通过多种方式初始化MAC区域。作为示例,BIOS可以将具有零MAC值(被视为MAC的初始值)的MAC行置零。在提取出具有零值的MAC行时,跳过MAC验证。
在任何时间点,使用MEE(即,EPC页面)或使用TMEi来保护存储器页面,因此不要求单独存储安全性元数据(更具体地MAC)。然而,由于在将页面从EPC转换为非EPC时,页面内容和对应的MAC不再有效,并且由于TMEi和MEE使用不同的密码算法这一事实,页面转换还不仅负责对由MEE用作针对未初始化的存储器的指示的计数器进行重置,而且负责对MAC进行重置以确保TMEi引擎将行视为未初始化的。在从EPC转换为非EPC时,TMEi MAC被初始化为零。从安全性角度来看,这可以使得不受信任的软件能够控制页面转换,然后将任意数据注入应用。这是可能的,因为MAC的重置将导致TMEi引擎跳过MAC验证。为了抵御这种攻击,TMEi引擎在提取出处于初始化状态的MAC时将返回全零,而不管存储器返回了什么内容。这确保攻击者无法通过控制页面转换而将期望数据注入应用。
图4示出了存储器在重置时的存储器布局。整个数据区域受TMEi保护,并且平台上不存在SGX存储器。存储器布局400示出了数据402和相关联的安全性元数据404。安全性元数据区域404包括两个区域:由MEE和TMEi共享的MAC区域406,以及由MEE排他性地使用的计数器408(版本和L0-LN)。在存储器布局400中,由于数据行是全部受TMEi保护的,因此MAC行对应于TMEi MAC元数据并且计数器未被使用。
图5示出了在将受TMEi保护的页面转换为利用MEE进行保护的页面以供SGX/飞地使用之后的更新的存储器布局。在转换之后,属于包括行504的页面的数据行502变为处于MEE的保护下,并且对应的元数据行被更新。现在将由MEE使用针对页面506的MAC行,并且现在还将使用针对页面的版本行508来存储针对页面上的数据行的版本计数器。应当注意,在图5中,版本行的置零仅为了清楚,因为该步骤在将页面转换为常规的时执行。对于重置后的系统,存储在管芯上的顶层计数器将指示未初始化的存储器。图5中所示的场景反映了这样的系统:其中页面已经被用于供飞地使用,被转换为常规的,并且被重新转换为EPC以供飞地使用。在这种情况下,管芯上计数器具有通过向页面的先前飞地写入而更新的有效值,并且不将版本计数器置零将导致完整性故障。
图6示出了在通过OS将页面转换为常规的时更新的布局和动作。对于使用灵活的EPC ISA将页面转换为非EPC,使用灵活的EPC ISA、EMKNONEPC将在图5中转换的页面转换回常规的。在这种情况下,如上面描述的,数据被示出为602并且包括区域606。除了将与页面相关联的版本计数器610置零(在稍后的时间点页面被转换为EPC页面时要求的)之外,MAC值608也被置零以向TMEi引擎指示这些数据行是未初始化的,并且它可以跳过对这些行的完整性检查,从而避免错误的完整性故障。
如图7所示,处理电路702可以包括例如至少一个处理核心706(例如,核心706A、核心706B……核心706n,统称为“核心706A……n”)、核心高速缓存708、存储器控制器710和MEE 712。核心706……n可以执行可以利用存储在核心高速缓存708中的数据的各种数据处理操作。如本文中引用的,“高速缓存”可以包括本地易失性存储器,用于保存在数据处理操作期间可以使用的数据。在至少一个实施例中,核心高速缓存708可以包括多个单独的存储器区域,这些存储器区域按级别组织,其中最外层的级别(例如,可以从其向TMEi/MEE电路714发送和从TMEi/MEE电路714接收数据)作为最后一级高速缓存(LLC)。通过避免必须从存储器电路704重复取回在数据处理操作期间可能不止一次地使用的数据,核心高速缓存708有助于加快数据处理。存储器控制器710可以控制处理电路702如何可以访问存储器电路704,包括从存储器电路704读取数据以及将数据写入存储器电路704。
MEE 712可以包括例如用于执行存储器保护操作的TMEi/MEE电路714,用于保存顶层计数器数据的MEE Ln计数器存储器716,以及用于至少在存储器保护操作期间保存安全性元数据的MEE高速缓存718。通常,安全性元数据可以包括用于支持存储器保护操作的数据。例如,与本公开一致,核心706A可以执行要求由诸如SGX之类的保护系统对数据进行保护的数据处理操作。存储器模块704中的受保护数据(例如,加密的数据行720A、加密的数据行720B、加密的数据行720C和加密的数据行720D(统称为“加密的数据行720A……D”))可以由TMEi/MEE逻辑714取回,并且在提供给核心706A之前解密。虽然仅示出了对应于单个数据行728中的VER和MAC数据的四个加密的数据行520A……D,但是存储器模块704中的加密的数据行720A……D的实际数量可以取决于多种因素,例如,存储器模块704中的受MEE保护的区域的大小。在至少一个示例实现方式中,每个数据行可以包括64B(字节)的数据,其可以存储在包括128MB(兆字节)的存储器模块704的受保护区域中。同样地,由核心706A生成的数据(其可以是敏感的、机密的等)可以在存储在存储器模块704中之前提供给TMEi/MEE逻辑714以进行加密。以这种方式,可以防止对在处理模块702与存储器模块704之间交换的数据进行监视的攻击者确定可能是敏感的、机密的等的特定数据的内容。
图8示出了根据本公开的至少一个实施例可用的设备800'的示例配置。在本公开中在项目编号之后包括撇号(例如,800')可以指示正在示出特定项目的示例实施例。例如,设备800'能够执行图7中公开的活动中的任何活动或所有活动。然而,本文中仅将设备800'作为在与本公开一致的实施例中可用的装置的示例而呈现,并且不旨在将各种实施例中的任一个限制为任何特定方式的实现。
设备800'可以包括例如系统电路804,用于管理设备的操作。系统模块800'可以包括例如处理电路814'、存储器电路824'、电源电路826、用户接口电路806和通信接口电路808。设备800'还可以包括通信电路802。虽然通信电路802被示为与系统电路804分开,但是图8中所示的示例配置仅出于解释的目的提供。与通信电路802相关联功能中的一些功能或所有功能也可以并入系统电路804中。
在设备800'中,处理电路814'可以包括位于单独组件中的一个或多个处理器,或者可替代地包括单个组件中的一个或多个核心806A……n(例如,在片上系统(SoC)配置中),以及与处理器相关的支持电路(例如,桥接接口等)。如图7所示,处理电路814'可以至少包括核心706A……n、核心高速缓存708、存储器控制器710和MEE 712。
处理电路814'可以被配置为在设备800'中执行各种指令。指令可以包括程序代码,该程序代码被配置为使处理电路814'执行与读取数据、写入数据、处理数据、制定数据、转换数据、变换数据等相关的活动。信息(例如,指令、数据等)可以存储在存储器电路824'中。存储器电路824'可以包括固定形式或可移除形式的随机存取存储器(RAM)和/或只读存储器(ROM)。RAM可以包括被配置为在设备800'的操作期间保存信息的易失性存储器,例如,静态RAM(SRAM)或动态RAM(DRAM)。ROM可以包括基于BIOS、UEFI等配置的非易失性(NV)存储器模块,用于在设备800'被激活时提供指令,还包括诸如电子可编程ROM(EPROM)、闪存等之类的可编程存储器。其他固定/可移除存储器可以包括但不限于诸如软盘、硬盘驱动器等之类的磁性存储器,诸如固态闪速存储器(例如,嵌入式多媒体卡(eMMC)等)之类的电子存储器,可移除存储器卡或棒(例如,微存储设备(uSD)、USB等),诸如基于压缩盘的ROM(CD-ROM)、数字视频盘(DVD)、蓝光盘等之类的光学存储器。如图7所示,存储器电路704可以至少包括加密的数据行720A……D和安全性元数据(例如,MEE/TMEi MAC数据724和MEE计数器726)。
电源电路826可以包括内部电源(例如,电池、燃料电池等)和/或外部电源(例如,机电或太阳能发电机、电网、外部燃料电池等),以及被配置为向设备500'供应进行操作所需的电力的相关电路。用户接口电路806可以包括用于允许用户与设备800'交互的硬件和/或软件,例如,各种输入机构(例如,麦克风,开关,按钮,旋钮,键盘,扬声器,触敏表面,被配置为捕获图像和/或感测接近度、距离、运动、手势、方向、生物计量数据等的一个或更多传感器)和各种输出机构(例如,扬声器,显示器,发光/闪烁指示器,用于振动、运动的机电组件等)。用户接口电路806中的硬件可以并入设备800'内和/或可以经由有线通信介质或无线通信介质耦合到设备800'。用户接口电路806在特定情形中可以是可选的,例如,其中设备800'是不包括用户接口电路806的服务器(例如,机架服务器、刀片服务器等)并且替代地依赖于另一设备(例如,管理终端)来得到用户接口功能的情况。
通信接口电路808可以被配置为管理分组路由和针对通信电路802的其他控制功能,其可以包括被配置为支持有线通信和/或无线通信的资源。在一些实例中,设备800'可以包括由集中式通信接口电路806管理的多于一个通信电路802(例如,包括用于有线协议和/或无线的无线电的单独物理接口电路)。有线通信可以包括串行有线介质和并行有线介质,例如,以太网、USB、Firewire、Thunderbolt、数字视频接口(DVI)、高清晰度多媒体接口(HDMI)等。无线通信可以包括例如紧密接近度无线介质(例如,射频(RF),例如基于RF识别(RFID)或近场通信(NFC)标准、红外(IR)等),短程无线介质(例如,蓝牙、WLAN、Wi-Fi等),远程无线介质(例如,蜂窝广域无线电通信技术、基于卫星的通信等),经由声波的电子通信等。在一个实施例中,通信接口电路808可以被配置为防止在通信电路608中活动的无线通信彼此干扰。在执行该功能时,通信接口电路808可以基于例如等待传输的消息的相对优先级来调度通信电路802的活动。虽然在图8中公开的实施例示出了通信接口电路808与通信电路802分开,但是通信接口电路808和通信电路802的功能并入同一电路中也是可能的。
以上描述已经示出了本公开如何可以用于在MEE与TMEi之间共享MAC元数据区域而不会导致完整性故障。通过简单地搭载在针对MEE元数据保留的存储上,本公开导致针对TMEi的零存储开销。
存在用于减少MEE元数据的存储开销的附加优化。一个优化涉及MAC/计数器大小减小。利用该优化,可以减小MAC和计数器的大小,从而降低元数据所需的总体存储,同时维持安全性属性。利用该优化,本公开使用与MEE使用的相同大小的MAC来未修改地起作用以实现与SGX相同的密码强度。
另一优化涉及密码高速缓存行。利用该优化,多个数据行与单个MAC和计数器值相关联,高效地减少了总体元数据开销,这取决于在其上共享元数据的行的数量。在实现该优化的情况下,本公开可以以两种方式之一起作用。
第一种方式是针对TMEi使用相同的元数据粒度。这转化为即使在数据受TMEi保护时也实质上将一个MAC与多个行进行关联。该选项可能会有性能影响,因为现在对于处理器请求的每个数据行,可能需要加载多个行以验证与请求的行相关联的MAC。
第二种方式是使用为MEE分配的MAC区域并且分配与MEE分开的较小元数据区域。在该选项中,TMEi引擎使用为MEE分配的MAC空间,但是还需要附加的专用空间用于其余行的MAC。作为示例,在针对该优化粒度为2的情况下,2个系统高速缓存行将与一个MAC值相关联,并且同样地,如果存在与每个数据行相关联的MAC值,则MAC存储将是所需的存储的一半。在这种情况下,受TMEi保护的存储器的一半将使用针对MAC的MEE分配的区域,并且其余一半将使用用于TMEi的专用存储。该专用存储可以由BIOS分配,并且由BIOS编程到TMEi引擎中。该选项避免针对非SGX数据行需要多次行加载,但面临针对TMEi的附加系统存储成本。然而,即使在这种情况下,它也可以将TMEi所要求的存储开销减少到不利用本发明的情况下所需的存储开销的50%。
当前公开的方法允许在第一加密类型与第二加密类型之间进行元数据共享。该技术基于以下事实:在任何时间点,存储器页面可以受第一加密类型保护或者利用第二加密类型进行保护。因此,页面要求的元数据是针对MEE或针对TMEi的,而不会是针对两者的。
以下示例涉及另外的实施例。本公开的以下示例可以包括主题材料,例如,设备,方法,用于存储指令的至少一种机器可读介质(该指令在被执行时使机器基于该方法执行动作),用于基于该方法执行动作的单元和/或可重新配置的中继器系统,如下面提供的。
根据示例1,提供了一种计算机系统。该计算机系统可以包括:处理器,与处理器通信的存储器,以及存储在存储器中的应用。应用使处理器执行以下操作:将使用第一种类型的加密进行加密并且具有与其相关联的第一安全性元数据的存储器的区段转换为使用第二种类型的加密进行加密、具有与其相关联的第二安全性元数据的所述存储器的区段;并且其中,对于存储器的相同区段所述第一安全性元数据的至少一部分与所述第二安全性元数据的至少一部分共享存储器空间。
示例2可以包括示例1的元素,其中,使用第一种类型的加密进行加密的所述存储器的区段包括使用具有完整性的总存储器加密(TMEi)加密进行加密的存储器的区段。
示例3可以包括示例1和示例2的元素,其中,第一安全性元数据包括TMEi消息认证码(MAC)。
示例4可以包括示例1的元素,其中,使用第二种类型的加密对存储器的区段进行转换包括使用存储器加密引擎(MEE)加密对存储器的区段进行加密。
示例5可以包括示例1和示例4的元素,其中,使用第二种类型的加密对存储器的区段进行转换包括对存储器的区段进行加密,其中,第二安全性元数据包括MEE计数器和MEE消息认证码(MAC)。
示例6可以包括示例1的元素,其中,使用第一种类型的加密进行加密的所述存储器的区段包括使用以下进行加密的存储器的区段:使用存储器加密引擎(MEE)加密进行加密。
示例7可以包括示例1和示例6的元素,其中,第一安全性元数据包括MEE计数器和MEE消息认证码(MAC)。
示例8可以包括示例1的元素,其中,使用第二种类型的加密对存储器的区段进行转换包括使用具有完整性的总存储器加密(TMEi)加密对存储器的区段进行加密。
示例9可以包括示例1和示例8的元素,其中,使用第二种类型的加密对存储器的区段进行转换包括对存储器的区段进行加密,其中,第二安全性元数据包括TMEi消息认证码(MAC)。
示例10可以包括示例1的元素,其中,对存储器的区段进行转换包括对存储器的页面进行转换。
示例11可以包括示例1的元素,其中,对存储器的区段进行转换包括使用地址映射。
示例12可以包括示例1和示例11的元素,其中,地址映射将数据行地址映射到需要被提取以验证数据行的完整性的所有安全性元数据行的地址。
示例13可以包括示例1的元素,其中,在系统重置时,所有存储器被转换为使用第一种类型的加密进行加密的存储器。
示例14可以包括示例1和示例13的元素,其中,在系统重置时,所有存储器被转换为使用第一种类型的加密进行加密并且具有与其相关联的第一种类型的安全性元数据的存储器。
示例15可以包括示例1和示例3的元素,其中,对于存储器的相同区段所述第一安全性元数据的至少一部分与第二安全性元数据的至少一部分共享存储器空间包括:TMEiMAC与MEE Mac共享存储器空间。
示例16可以包括示例1和示例5的元素,其中,对于存储器的相同区段第一安全性元数据的至少一部分与第二安全性元数据的至少一部分共享存储器空间包括:TMEi MAC与MEE Mac共享所述存储器空间。
根据示例17,提供了一种用于共享安全性元数据存储器空间的方法。该方法可以包括执行用于以下操作的指令:将使用第一种类型的加密进行加密并且具有与其相关联的第一安全性元数据的存储器的区段转换为使用第二种类型的加密进行加密、具有与其相关联的第二安全性元数据的所述存储器的区段;并且其中,对于存储器的相同区段所述第一安全性元数据的至少一部分与所述第二安全性元数据的至少一部分共享存储器空间。
示例18可以包括示例17的元素,其中,使用第一种类型的加密进行加密的所述存储器的区段包括使用具有完整性的总存储器加密(TMEi)加密进行加密的存储器的区段。
示例19可以包括示例17和示例18的元素,其中,第一安全性元数据包括TMEi消息认证码(MAC)。
示例20可以包括示例17的元素,其中,使用第二种类型的加密对存储器的区段进行转换包括使用存储器加密引擎(MEE)加密对存储器的区段进行加密。
示例21可以包括示例17和示例20的元素,其中,使用第二种类型的加密对存储器的区段进行转换包括对存储器的区段进行加密,其中,第二安全性元数据包括MEE计数器和MEE消息认证码(MAC)。
示例22可以包括示例17的元素,其中,使用第一种类型的加密进行加密的所述存储器的区段包括使用以下进行加密的存储器的区段:使用存储器加密引擎(MEE)加密进行加密。
示例23可以包括示例17和示例22的元素,其中,第一安全性元数据包括MEE计数器和MEE消息认证码(MAC)。
示例24可以包括示例17的元素,其中,使用第二种类型的加密对存储器的区段进行转换包括使用具有完整性的总存储器加密(TMEi)加密对存储器的区段进行加密。
示例25可以包括示例17和示例24的元素,其中,使用第二种类型的加密对存储器的区段进行转换包括对存储器的区段进行加密,其中,第二安全性元数据包括TMEi消息认证码(MAC)。
示例26可以包括示例17的元素,其中,对存储器的区段进行转换包括对存储器的页面进行转换。
示例27可以包括示例17的元素,其中,对存储器的区段进行转换包括使用地址映射。
示例28可以包括示例17和示例27的元素,其中,地址映射将数据行地址映射到需要被提取以验证数据行的完整性的所有安全性元数据行的地址。
示例29可以包括示例17的元素,其中,在系统重置时,所有存储器被转换为使用第一种类型的加密进行加密的存储器。
示例30可以包括示例17和示例29的元素,其中,在系统重置时,所有存储器被转换为使用第一种类型的加密进行加密并且具有与其相关联的第一种类型的安全性元数据的存储器。
示例31可以包括示例17和示例19的元素,其中,对于存储器的相同区段所述第一安全性元数据的至少一部分与第二安全性元数据的至少一部分共享存储器空间包括:TMEiMAC与MEE Mac共享存储器空间。
示例32可以包括示例17和示例31的元素,其中,对于存储器的相同区段第一安全性元数据的至少一部分与第二安全性元数据的至少一部分共享存储器空间包括:TMEi MAC与MEE Mac共享所述存储器空间。
根据示例33,提供了一种计算机可读存储设备,其上存储有指令,该指令当由一个或多个处理器执行时导致以下操作:将使用第一种类型的加密进行加密并且具有与其相关联的第一安全性元数据的存储器的区段转换为使用第二种类型的加密进行加密、具有与其相关联的第二安全性元数据的所述存储器的区段;以及对于存储器的相同区段,针对所述第一安全性元数据的至少一部分与所述第二安全性元数据的至少一部分共享来共享存储器空间。
示例34可以包括示例33的元素,其中,使用第一种类型的加密进行加密的所述存储器的区段包括使用具有完整性的总存储器加密(TMEi)加密进行加密的存储器的区段。
示例35可以包括示例33和示例34的元素,其中,第一安全性元数据包括TMEi消息认证码(MAC)。
示例36可以包括示例33的元素,其中,使用第二种类型的加密对存储器的区段进行转换包括使用存储器加密引擎(MEE)加密对存储器的区段进行加密。
示例37可以包括示例33和示例36的元素,其中,使用第二种类型的加密对存储器的区段进行转换包括对存储器的区段进行加密,其中,第二安全性元数据包括MEE计数器和MEE消息认证码(MAC)。
示例38可以包括示例33的元素,其中,使用第一种类型的加密进行加密的所述存储器的区段包括使用以下进行加密的存储器的区段:使用存储器加密引擎(MEE)加密进行加密。
示例39可以包括示例33和示例38的元素,其中,第一安全性元数据包括MEE计数器和MEE消息认证码(MAC)。
示例40可以包括示例33的元素,其中,使用第二种类型的加密对存储器的区段进行转换包括使用具有完整性的总存储器加密(TMEi)加密对存储器的区段进行加密。
示例41可以包括示例33和示例40的元素,其中,使用第二种类型的加密对存储器的区段进行转换包括对存储器的区段进行加密,其中,第二安全性元数据包括TMEi消息认证码(MAC)。
示例42可以包括示例33的元素,其中,对存储器的区段进行转换包括对存储器的页面进行转换。
示例43可以包括示例33的元素,其中,对存储器的区段进行转换包括使用地址映射。
示例44可以包括示例33和示例43的元素,其中,地址映射将数据行地址映射到需要被提取以验证数据行的完整性的所有安全性元数据行的地址。
示例45可以包括示例33的元素,其中,在系统重置时,所有存储器被转换为使用第一种类型的加密进行加密的存储器。
示例46可以包括示例33和示例45的元素,其中,在系统重置时,所有存储器被转换为使用第一种类型的加密进行加密并且具有与其相关联的第一种类型的安全性元数据的存储器。
示例47可以包括示例33和示例35的元素,其中,对于存储器的相同区段所述第一安全性元数据的至少一部分与第二安全性元数据的至少一部分共享存储器空间包括:TMEiMAC与MEE Mac共享存储器空间。
示例48可以包括示例33和示例37的元素,其中,对于存储器的相同区段第一安全性元数据的至少一部分与第二安全性元数据的至少一部分共享存储器空间包括:TMEi MAC与MEE Mac共享所述存储器空间。
本文中采用的术语和表达用作描述而非限制术语,并且在使用这些术语和表达时,不旨在排除所示出和所描述的特征(或其部分)的任何等同物,并且应该意识到,在权利要求的范围内可以进行各种修改。因此,权利要求旨在涵盖所有这样的等同物。

Claims (24)

1.一种计算机系统,包括:
处理器;
与所述处理器通信的存储器;
存储在存储器中的应用,其中,所述应用使所述处理器执行以下操作:
在使用具有完整性的总存储器加密(TMEi)加密进行加密并且具有与其相关联的TMEi安全性元数据的存储器的区段与使用存储器加密引擎(MEE)加密进行加密并且具有与其相关联的MEE安全性元数据的所述存储器的区段之间进行转换;并且
其中,对于存储器的相同区段所述TMEi安全性元数据的至少一部分与所述MEE安全性元数据的至少一部分共享存储器空间。
2.根据权利要求1所述的计算机系统,其中,所述TMEi安全性元数据包括TMEi消息认证码(MAC)。
3.根据权利要求2所述的计算机系统,其中,所述MEE安全性元数据包括MEE安全性元数据计数器和MEE安全性元数据消息认证码(MAC)。
4.根据权利要求1所述的计算机系统,其中,对存储器的区段进行所述转换包括对存储器的页面进行转换。
5.根据权利要求1所述的计算机系统,其中,对存储器的区段进行所述转换包括使用地址映射,所述地址映射将数据行地址映射到需要被提取以验证数据行的完整性的所有安全性元数据行的地址。
6.根据权利要求1所述的计算机系统,其中,在系统重置时,所有存储器被转换为使用所述TMEi进行加密并且具有与其相关联的所述TMEi安全性元数据的存储器。
7.根据权利要求3所述的计算机系统,其中,对于存储器的相同区段所述TMEi安全性元数据的所述至少一部分与所述MEE安全性元数据的至少一部分共享存储器空间包括:TMEiMAC与MEE MAC共享所述存储器空间。
8.一种方法,包括:
在使用具有完整性的总存储器加密(TMEi)加密进行加密并且具有与其相关联的TMEi安全性元数据的存储器的区段与使用存储器加密引擎(MEE)加密进行加密并且具有与其相关联的MEE安全性元数据的存储器的区段之间进行转换;以及
对于存储器的相同区段,针对所述TMEi安全性元数据的至少一部分与所述MEE安全性元数据的至少一部分共享存储器空间。
9.根据权利要求8所述的方法,其中,所述TMEi安全性元数据包括TMEi消息认证码(MAC)。
10.根据权利要求9所述的方法,其中,所述MEE安全性元数据包括MEE安全性元数据计数器和MEE安全性元数据消息认证码(MAC)。
11.根据权利要求8所述的方法,其中,对存储器的区段进行所述转换包括对存储器的页面进行转换。
12.根据权利要求8所述的方法,其中,对存储器的区段进行所述转换包括使用地址映射,所述地址映射将数据行地址映射到需要被提取以验证数据行的完整性的所有安全性元数据行的地址。
13.根据权利要求8所述的方法,其中,在系统重置时,将所有存储器转换为使用所述TMEi进行加密并且具有与其相关联的所述TMEi安全性元数据的存储器。
14.根据权利要求10所述的方法,其中,对于存储器的相同区段使所述TMEi安全性元数据的至少一部分与MEE安全性元数据的至少一部分进行所述共享包括:TMEi MAC与MEE MAC共享所述存储器空间。
15.一种计算机可读存储设备,其上存储有指令,所述指令当由一个或多个处理器执行时导致以下操作,所述操作包括:
在使用具有完整性的总存储器加密(TMEi)加密进行加密并且具有与其相关联的TMEi安全性元数据的存储器的区段与使用存储器加密引擎(MEE)加密进行加密并且具有与其相关联的MEE安全性元数据的所述存储器的区段之间进行转换;以及
对于存储器的相同区段,针对所述TMEi安全性元数据的至少一部分与所述MEE安全性元数据的至少一部分共享存储器空间。
16.根据权利要求15所述的计算机可读存储设备,其中,所述TMEi安全性元数据包括TMEi消息认证码(MAC)。
17.根据权利要求16所述的计算机可读存储设备,其中,所述MEE安全性元数据包括MEE安全性元数据计数器和MEE安全性元数据消息认证码(MAC)。
18.根据权利要求15所述的计算机可读存储设备,其中,用于对存储器的区段进行转换的所述指令包括:用于对存储器的页面进行转换的指令。
19.根据权利要求15所述的计算机可读存储设备,其中,用于对存储器的区段进行转换的所述指令包括:用于使用地址映射的指令,所述地址映射将数据行地址映射到需要被提取以验证数据行的完整性的所有安全性元数据行的地址。
20.根据权利要求15所述的计算机可读存储设备,还包括指令,其中,在系统重置时,将所有存储器转换为使用所述TMEi进行加密并且具有与其相关联的所述TMEi安全性元数据的存储器。
21.根据权利要求17所述的计算机可读存储设备,其中,用于对于存储器的相同区段使所述TMEi安全性元数据的至少一部分与所述MEE安全性元数据的至少一部分进行共享的所述指令包括:用于TMEi MAC与MEE MAC共享所述存储器空间的指令。
22.一种系统,包括被布置为执行权利要求8至14中任一项所述的方法的至少一个设备。
23.一种设备,包括用于执行权利要求8至14中任一项所述的方法的单元。
24.一种计算机可读存储设备,其上存储有指令,所述指令当由一个或多个处理器执行时导致以下操作,所述操作包括:根据权利要求8至14中任一项所述的方法。
CN201780053586.XA 2016-09-30 2017-08-30 用于共享安全性元数据存储器空间的方法和装置 Active CN109643344B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/282,575 US10528485B2 (en) 2016-09-30 2016-09-30 Method and apparatus for sharing security metadata memory space
US15/282,575 2016-09-30
PCT/US2017/049468 WO2018063724A1 (en) 2016-09-30 2017-08-30 Method and apparatus for sharing security metadata memory space

Publications (2)

Publication Number Publication Date
CN109643344A CN109643344A (zh) 2019-04-16
CN109643344B true CN109643344B (zh) 2023-09-05

Family

ID=61760093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780053586.XA Active CN109643344B (zh) 2016-09-30 2017-08-30 用于共享安全性元数据存储器空间的方法和装置

Country Status (4)

Country Link
US (2) US10528485B2 (zh)
CN (1) CN109643344B (zh)
DE (1) DE112017004995T5 (zh)
WO (1) WO2018063724A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798900B2 (en) 2015-03-26 2017-10-24 Intel Corporation Flexible counter system for memory protection
KR102557993B1 (ko) 2018-10-02 2023-07-20 삼성전자주식회사 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법
US11714725B2 (en) * 2019-06-03 2023-08-01 University Of Central Florida Research Foundation, Inc. System and method for ultra-low overhead and recovery time for secure non-volatile memories
US11743241B2 (en) 2020-12-30 2023-08-29 International Business Machines Corporation Secure data movement
US11991293B2 (en) 2021-08-17 2024-05-21 International Business Machines Corporation Authorized secure data movement

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1451117A (zh) * 2000-06-30 2003-10-22 英特尔公司 采用安全存储器分区来实现安全执行的方法和装置
CN103914389A (zh) * 2012-12-31 2014-07-09 伊姆西公司 用于管理存储器空间的方法和装置

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138230A (en) 1993-10-18 2000-10-24 Via-Cyrix, Inc. Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline
JP2002333978A (ja) 2001-05-08 2002-11-22 Nec Corp Vliw型プロセッサ
US7403615B2 (en) 2001-08-24 2008-07-22 Broadcom Corporation Methods and apparatus for accelerating ARC4 processing
US20040034785A1 (en) * 2002-08-15 2004-02-19 Horng-Ming Tai Hardware and firmware encryption mechanism using unique chip die identification
US6944256B2 (en) 2003-04-25 2005-09-13 Alcatel Ip Networks, Inc. Optimizing use of statistics counters
US7360021B2 (en) 2004-04-15 2008-04-15 International Business Machines Corporation System and method for completing updates to entire cache lines with address-only bus operations
US20060005047A1 (en) 2004-06-16 2006-01-05 Nec Laboratories America, Inc. Memory encryption architecture
FR2872357A1 (fr) 2004-06-24 2005-12-30 St Microelectronics Sa Verification d'un flux de bits
JP4569921B2 (ja) * 2004-08-04 2010-10-27 パナソニック株式会社 省電力メモリアクセス制御装置
GB2434673B (en) 2004-11-12 2009-10-14 Discretix Technologies Ltd Method, device, and system of securely storing data
KR100670005B1 (ko) * 2005-02-23 2007-01-19 삼성전자주식회사 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법
US20060277395A1 (en) 2005-06-06 2006-12-07 Fowles Richard G Processor performance monitoring
US8010764B2 (en) 2005-07-07 2011-08-30 International Business Machines Corporation Method and system for decreasing power consumption in memory arrays having usage-driven power management
CA2837984C (en) * 2005-11-28 2021-11-16 Commvault Systems, Inc. Systems and methods for classifying and transferring information in a storage network
US7681050B2 (en) * 2005-12-01 2010-03-16 Telefonaktiebolaget L M Ericsson (Publ) Secure and replay protected memory storage
GB2435333B (en) 2006-02-01 2010-07-14 Hewlett Packard Development Co Data transfer device
US8095802B2 (en) * 2006-09-12 2012-01-10 International Business Machines Corporation System and method for securely saving a program context to a shared memory
US8306060B2 (en) * 2006-11-07 2012-11-06 Samsung Electronics Co., Ltd. System and method for wireless communication of uncompressed video having a composite frame format
US8200961B2 (en) 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
US8261091B2 (en) 2006-12-21 2012-09-04 Spansion Llc Solid-state memory-based generation and handling of security authentication tokens
JP4956292B2 (ja) 2007-06-25 2012-06-20 パナソニック株式会社 情報セキュリティ装置およびカウンタ制御方法
US7895421B2 (en) 2007-07-12 2011-02-22 Globalfoundries Inc. Mechanism for using performance counters to identify reasons and delay times for instructions that are stalled during retirement
KR100929843B1 (ko) 2007-09-28 2009-12-04 주식회사 하이닉스반도체 오버플로우하지 않는 카운터
US8555081B2 (en) * 2007-10-30 2013-10-08 Vmware, Inc. Cryptographic multi-shadowing with integrity verification
US8171309B1 (en) 2007-11-16 2012-05-01 Marvell International Ltd. Secure memory controlled access
JPWO2009087972A1 (ja) * 2008-01-09 2011-05-26 日本電気株式会社 データ送信装置、データ受信装置、これらの方法、コンピュータプログラム、そのデータ通信システム
US7987343B2 (en) 2008-03-19 2011-07-26 International Business Machines Corporation Processor and method for synchronous load multiple fetching sequence and pipeline stage result tracking to facilitate early address generation interlock bypass
US8099636B2 (en) 2008-07-15 2012-01-17 Caterpillar Inc. System and method for protecting memory stacks using a debug unit
US8572271B2 (en) 2009-01-29 2013-10-29 Qualcomm Incorporated Multimedia management system for seamless multimedia content mobility
US20100250965A1 (en) 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US8370577B2 (en) * 2009-06-26 2013-02-05 Microsoft Corporation Metaphysically addressed cache metadata
US8521962B2 (en) 2009-09-01 2013-08-27 Qualcomm Incorporated Managing counter saturation in a filter
TWI414994B (zh) 2009-09-24 2013-11-11 Ind Tech Res Inst 可重組態處理裝置及其系統
TWI437567B (zh) 2009-12-11 2014-05-11 Phison Electronics Corp 快閃記憶體區塊管理方法及其控制器與儲存裝置
US8856534B2 (en) * 2010-05-21 2014-10-07 Intel Corporation Method and apparatus for secure scan of data storage device from remote server
JP5159849B2 (ja) 2010-09-24 2013-03-13 株式会社東芝 メモリ管理装置及びメモリ管理方法
US8751828B1 (en) 2010-12-23 2014-06-10 Emc Corporation Sharing encryption-related metadata between multiple layers in a storage I/O stack
US8862902B2 (en) 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
US9076019B2 (en) * 2011-06-29 2015-07-07 Intel Corporation Method and apparatus for memory encryption with integrity check and protection against replay attacks
WO2013100964A1 (en) 2011-12-28 2013-07-04 Intel Corporation Method and system for protecting memory information in a platform
WO2013100965A1 (en) 2011-12-28 2013-07-04 Intel Corporation A low-overhead cryptographic method and apparatus for providing memory confidentiality, integrity and replay protection
US8819455B2 (en) 2012-10-05 2014-08-26 Intel Corporation Parallelized counter tree walk for low overhead memory replay protection
US9442864B2 (en) 2013-12-27 2016-09-13 Intel Corporation Bridging circuitry between a memory controller and request agents in a system having multiple system memory protection schemes
US9792063B2 (en) 2014-01-15 2017-10-17 Intel Corporation Deduplication-based data security
US9513805B2 (en) 2014-04-15 2016-12-06 International Business Machines Corporation Page table including data fetch width indicator
US10019603B2 (en) 2014-04-16 2018-07-10 Synopsys, Inc. Secured memory system and method therefor
US9497027B2 (en) 2014-06-02 2016-11-15 GlobalFoundries, Inc. Encryption engine with twin cell memory array
US9413357B2 (en) 2014-06-11 2016-08-09 Cavium, Inc. Hierarchical statistically multiplexed counters and a method thereof
JP6162652B2 (ja) 2014-06-20 2017-07-12 株式会社東芝 メモリ管理装置、プログラム、及び方法
US9423971B2 (en) 2014-10-03 2016-08-23 Sandisk Technologies Llc Method and system for adaptively assigning logical block address read counters using a tree structure
US10956617B2 (en) 2014-12-12 2021-03-23 Coresecure Technologies, Llc Systems and methods for random fill caching and prefetching for secure cache memories
US9524249B2 (en) 2014-12-23 2016-12-20 Intel Corporation Memory encryption engine integration
US10185842B2 (en) 2015-03-18 2019-01-22 Intel Corporation Cache and data organization for memory protection
US9798900B2 (en) 2015-03-26 2017-10-24 Intel Corporation Flexible counter system for memory protection
US9904805B2 (en) * 2015-09-23 2018-02-27 Intel Corporation Cryptographic cache lines for a trusted execution environment
US9432183B1 (en) 2015-12-08 2016-08-30 International Business Machines Corporation Encrypted data exchange between computer systems
US10228852B1 (en) 2016-03-25 2019-03-12 Amazon Technologies, Inc. Multi-stage counters
US10261919B2 (en) * 2016-07-08 2019-04-16 Hewlett Packard Enterprise Development Lp Selective memory encryption

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1451117A (zh) * 2000-06-30 2003-10-22 英特尔公司 采用安全存储器分区来实现安全执行的方法和装置
CN103914389A (zh) * 2012-12-31 2014-07-09 伊姆西公司 用于管理存储器空间的方法和装置

Also Published As

Publication number Publication date
US20190213143A1 (en) 2019-07-11
US11126566B2 (en) 2021-09-21
US10528485B2 (en) 2020-01-07
US20200183861A1 (en) 2020-06-11
DE112017004995T5 (de) 2019-06-27
WO2018063724A1 (en) 2018-04-05
CN109643344A (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
CN109643344B (zh) 用于共享安全性元数据存储器空间的方法和装置
US10546157B2 (en) Flexible counter system for memory protection
US9483664B2 (en) Address dependent data encryption
CN104995629B (zh) 用于平台引导固件的信任继续的方法、设备和系统
US8286004B2 (en) Saving encryption keys in one-time programmable memory
CN107408081B (zh) 提供对存储器的加强重放保护
US10536274B2 (en) Cryptographic protection for trusted operating systems
EP3271828B1 (en) Cache and data organization for memory protection
JP2016512407A (ja) トラステッドサービスマネージャデータの保護および秘密性のためのトラステッドセキュリティゾーンコンテナ
US10037426B2 (en) Method of loading files into random access memory in an electronic device and associated electronic device
US10565130B2 (en) Technologies for a memory encryption engine for multiple processor usages
CN105612715A (zh) 具有可配置访问控制的安全处理单元
US20170039397A1 (en) Encryption/decryption apparatus, controller and encryption key protection method
US20150261975A1 (en) Data integrity protection from rollback attacks for use with systems employing message authentication code tags
US10783089B2 (en) Securing data direct I/O for a secure accelerator interface
CN107667346A (zh) 基于熔断的固件块分派
JP2020021385A (ja) メモリシステム
US10860707B2 (en) Systems and methods for obfuscation of password key and dynamic key pool management
CN107533516B (zh) 用于管理对在装置的芯片上的系统的安全模块的多次访问的设备
US20220398349A1 (en) System on chip including secure processor and semiconductor system including the same
KR101617089B1 (ko) 인증을 이용하여 보안을 강화하는 비휘발성 메모리 칩 및 이를 이용한 데이터 보안 방법
US9311256B2 (en) Storage device
KR20150080458A (ko) Nfc 보안 모듈을 갖는 usb 저장 장치

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