CN102103552A - 安全高速缓存存储器架构 - Google Patents
安全高速缓存存储器架构 Download PDFInfo
- Publication number
- CN102103552A CN102103552A CN2010106008494A CN201010600849A CN102103552A CN 102103552 A CN102103552 A CN 102103552A CN 2010106008494 A CN2010106008494 A CN 2010106008494A CN 201010600849 A CN201010600849 A CN 201010600849A CN 102103552 A CN102103552 A CN 102103552A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- data set
- cache
- cache memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
- G06F2212/2515—Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2147—Locking files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
实现用于在计算系统中安全存储敏感数据的多种电路、方法和设备。访问存储在主存储器中的第一数据集,并且高速缓存存储器被配置为保持主存储器和高速缓存间的逻辑一致。响应于确定第二数据集是敏感数据集,指示高速缓存存储器将第二数据集存储在高速缓存存储器的存储位置,而不保持与数据集和主存储器的逻辑一致。
Description
技术领域
本发明总体涉及计算架构中的存储器存储,更具体地,涉及高速缓存存储器。
背景技术
密码方法和算法已用于保护敏感数据免受非授权访问。存在大量此类密码的不同实现。例如,某些密码方法使用一个或多个密钥对数据进行加密和解密,以及用于完整性保护和认证。
一般地,数字权限管理(DRM)用于描述安全度量,所述安全度量可用于对硬件、受版权保护的内容的使用以及对数字设备和内容的各种其他使用施加限制。DRM可用于防止对文件或设备的非授权修改和/或访问。有时这是使用序号或密钥文件来实现的。通常,密码方法的安全性依赖于使这样的密钥文件保持私密。
数字加密技术包括数据加密标准(DES)。然而,DES已被广泛视为不安全的,这部分是由于处理能力的快速提高使蛮力(brute force)方法能够破解加密代码。DES的示例后继技术是高级加密标准(AES),AES包括多个不同安全级别,包括AES-128、AES-192和AES-256。AES提供复杂的密码,并且由于用以确定密钥的纯随机尝试导致过长的处理时间,对蛮力攻击的抵抗性远远强得多;然而更智能的方法显示出AES以及其它密码学密码的某些实现中的潜在弱点。例如,某些攻击利用通过监控实现密码技术的系统而搜集的信息(如旁道攻击)来获得密码学密钥的信息从而破解密码。
发明内容
本发明示例于多个实现和应用中,以下概括了其中的某些。
根据本发明的示例实施例,提供了一种用于在计算系统中安全存储敏感数据的方法,所述计算系统具有处理器和存储器系统,所述存储器系统包括主存储器和高速缓存存储器。访问存储在主存储器中的第一数据集,并且高速缓存存储器被配置为保持主存储器和高速缓存之间的逻辑一致。响应于确定第二数据集是敏感数据集,指示高速缓存存储器将第二数据集存储在高速缓存存储器的存储位置,而不保持与数据集和主存储器的逻辑一致。
在另一示例实施例中,提供了一种计算机处理系统。该系统的特征在于:至少一个中央处理器及包括多个存储器电路的存储器架构。存储器架构被配置为高速缓存存储在较低分层级别的存储器电路中的数据。最低分层级别的存储器电路被配置为操作为非高速缓存存储器。响应于要存储安全数据集,控制电路将存储器架构配置为,使多个存储器电路的第一存储器电路操作为最低分层级别。响应于要存储非安全数据集,控制电路将存储器架构配置为,使第一存储器电路操作为最低级别以上的分层级别,使多个存储器电路的第二存储器电路操作为最低级存储器电路。
在又一示例实施例中,提供了用于访问计算系统的存储器的方法。将高速缓存存储器的高速缓存控制策略配置为启用写出和逐出(eviction)。从存储在主存储器的目标位置的第一数据集产生第一校验和值。在计算系统的高速缓存存储器中存储第一校验和值。将高速缓存存储器的高速缓存控制策略配置为禁用对第一校验和值的写出和逐出。取得存储在主存储器的目标位置的第二数据集,并且从第二数据集产生第二校验和值。从高速缓存存储器取得第一校验和,并将第一校验和与第二校验和比较。响应于第一校验和等于第二校验和,验证(validate)第二数据集。
以上概括并非意在描述本公开的每个实施例或每个实现。以下附图和详细描述更具体地示例了各种实施例。
附图说明
考虑以下结合附图对本发明的各种实施例的详细描述,可以更加充分地理解本发明,附图中:
图1示出了根据本发明实施例的具有两级高速缓存存储器的高速缓存-存储器架构的框图;
图2示出了根据本发明实施例的配置高速缓存存储器以安全存储敏感数据的过程的流程图;
图3示出了可以根据本发明的各种实施例来配置的浏览(look-through)高速缓存布置的框图;
图4示出了根据本发明实施例的配置了用于防止敏感数据被写至数据总线的硬件的浏览高速缓存布置的框图;以及
图5示出了根据本发明各种实施例的用于认证所存储的数据的过程的流程图。
具体实施方式
虽然本发明具有各种修改和替换变型,但在附图中以示例示出了并将详细描述其特定形式。然而,应当理解的是,其目的不是将本发明限于所描述的特定实施例。相反,其目的是覆盖属于包括由所附权利要求限定的方面在内的本发明的范围内的所有修改、等效和替换。
应当相信,本发明适用于实现高速缓存存储器的各种不同类型的过程、设备和布置。虽然不一定如此对本发明进行限定,但通过使用该上下文对示例进行讨论,可以理解本发明的各方面。
本发明的各种实施例使用包括在计算架构中的高速缓存存储器来动态实现安全存储器。向高速缓存存储器呈现要存储在高速缓存中的数据集。响应于确定该数据集包含敏感数据,对于存储在高速缓存存储器中的数据集,高速缓存存储器作为非高速缓存存储器操作。当作为非高速缓存存储器操作时,敏感数据存储在高速缓存中,就好像该敏感数据存储在主存储器中一样。例如,在操作期间,高速缓存存储器中的数据可以被写出至主存储器,而存储在被配置为作为非高速缓存存储器操作的高速缓存存储器中的数据不被写出至主存储器。这样,防止将敏感数据写至不安全的主存储器。
由于CPU和存储器的不同速度改进,存储器访问已成为了现代计算的主要瓶颈。结果,许多现代处理器架构支持实现于CPU附近或CPU内的一级或多级高速缓存存储器。本发明的方面认识到,高速缓存存储器与处理器的紧密集成使高速缓存存储器相对于主存储器实质上更难以物理访问。由于无法像监控被访问数据一样容易地对高速缓存存储器和处理器间的信号线进行物理探查,所以这提供了一定程度的入侵保护。
本发明的多个实施例提供了配置高速缓存存储器策略以在高速缓存存储器内安全存储敏感数据的方法。为了实现高速缓存存储器中的安全存储,高速缓存存储器被配置为防止敏感数据被写出至主存储器。许多计算架构包括确定各种高速缓存存储器策略和选项的控制逻辑,如写策略或逐出策略,被实现为确定当高速缓存存储器充满时从高速缓存存储器逐出哪些高速缓存的数据集。控制逻辑可以被配置为以多种不同方式实现安全的高速缓存存储器。如以下在各种实施例的描述和示例中讨论的,可以多种方式相对于非敏感数据来标识敏感数据,所述方式包括但不限于使用特殊的写指令、状态字段、不存在的地址、保留的地址、状态消息收发等。如果状态指示数据集是敏感的,数据集可以存储在高速缓存中,并且高速缓存可以被配置为防止数据集被写出至主存储器。
在具体实例中,敏感数据无需局限于本身是秘密的数据。例如,许多加密器(cipher)(例如AES)使用公知的表的集合(例如AES规范的一部分),因此,表的内容本身是敏感的。然而,攻击者可以监控对表的访问,并使用该信息来导出加密器使用的密钥。因此,查看表的访问模式是敏感的,因此当表正在被活跃地使用时也被指示为敏感的。
在一实施例中,所实现的高速缓存存储器策略被配置为,响应于确定数据是敏感数据,将数据存储为“高速缓存专用(cache only)”。在这样的实施例中,当高速缓存控制器接收敏感数据时,数据集被存储在高速缓存存储器,并且高速缓存存储器被配置为针对所存储的数据集作为非高速缓存存储器操作。指示数据集的状态的数据位(bit)被设置为“高速缓存专用”。在将高速缓存存储器配置为作为数据集的非可高速缓存存储器操作,高速缓存控制器被配置为,针对存储在高速缓存存储器中的敏感数据集,禁用直写(write-through)和回写(write-back)。在某些实施例中,针对数据集,还禁用数据集逐出。
许多计算机架构包括在物理上与处理器接近的高速缓存存储器(高速缓存)。高速缓存存储器存储主存储器中存在的数据项的子集的复制值。虽然复制值可以暂时不同,但整体系统效果是,对于对数据集的访问保持值间的一致性。在这种意义下,存储在高速缓存存储器中的数据与较低级存储器内的对应位置在逻辑上一致。如本文所使用的,当数据被写入至其它存储器以保持一致性时,认为驻留在存储器中的数据与其他存储器在逻辑上一致。相反,尽管可能已经对驻留在第一存储器中的数据做出了改变,但在数据未被写入其它存储器的情况下,驻留在第一存储器中的数据与其他存储器在逻辑上不一致。
本发明的方面涉及(例如对于非敏感数据)将高速缓存存储器既用作与主存储器在逻辑上一致的存储器,又(例如对于敏感数据)用作与主存储器在逻辑上不一致的存储器。例如,通过防止敏感数据被写入主存储器,从而针对该敏感数据破坏从高速缓存到主存储器的逻辑一致性。这样,高速缓存存储器可以被动态配置为操作于不同模式。
将高速缓存存储器包括在处理器更紧密的附近的结果是,减少处理器和高速缓存存储器间的信号传播时间,可以使用更快速的存储器。因此,同原始数据存储在主存储器的情况相比,可以由处理器单元更快速地访问高速缓存的拷贝。对于处理器频繁访问的数据,使用高速缓存存储器可以带来计算架构的巨大的时间节省。本发明的方面认识到这样的高速缓存存储器的其他方面在存储如与密码和/或DRM相关联的数据等敏感数据方面十分有用。例如,本发明的实施例涉及动态配置高速缓存存储器于两种模式之一。在第一/高速缓存模式下,高速缓存存储器存储数据,供处理器访问。如果相对于主存储器和/或较低级高速缓存修改了数据,高速缓存存储器通过最终在各级存储器间同步/写已修改的数据,来保持数据完整性。在安全模式下,高速缓存存储器以类似于高速缓存模式的方式存储安全数据,供处理器访问。然而,在安全模式下,高速缓存存储器不将已修改的数据同步/写至主存储器或较低级的高速缓存。如此处所讨论的,有时,主存储器和/或较低级的高速缓存存储器可能易于受到恶意访问的攻击。因此,对于存储可能破坏密码技术的数据(如中间密钥和这些密钥的未加密版本或其他数据),这样的实现特别有用。
由于高速缓存存储器所提供的益处,许多处理器架构支持多级高速缓存存储器,其中,第一级被认为在逻辑上接近处理器,随后级别被认为在逻辑上距处理器更远。高速缓存存储器中的某些可以在物理上与处理器接近,或者甚至在处理器芯片封装或管芯内。本发明的方面认识到,对于存储敏感数据,实现于处理器附近的高速缓存存储器的逻辑和物理属性可能特别有用。
本发明的实施例自身可应用于各种存储器和处理器架构。在一个这样的架构中,系统通过检查目标地址以确定目标数据集的拷贝当前是否存储在第一级高速缓存中,来对执行存储器读或写指令的处理器做出响应。当目标数据存在于高速缓存中时,称其为高速缓存命中。系统使用高速缓存存储器来访问目标地址,从而减少访问较低级存储器的需要。当目标数据集不存在于高速缓存中时,称其为高速缓存未命中。此时,可以从较低级存储器获取目标数据集。如果修改了目标数据集,数据将最总被回写至较低级存储器。本发明的方面修改了高速缓存存储器的这种操作,使得较低级存储器无法访问存储在较高级高速缓存存储器中的安全数据。
在具体实现中,可以通过检查目标存储器地址的地址是否被列在存储在高速缓存级别的高速缓存存储器的一部分中的存储器映射表中,来确定高速缓存命中或未命中。该映射表(又称标签存储器)指示后续较低级存储器单元中存储高速缓存的数据的原始拷贝的存储器地址。例如,具体系统架构包括级1(L1)高速缓存存储器和级2(L2)高速缓存存储器。当在L1高速缓存存储器中发生高速缓存未命中时,从L2高速缓存存储器获取数据集以供处理器使用,并且也将数据集存储在L1高速缓存中。如果在L2高速缓存存储器发生高速缓存未命中,从主存储器或较低级高速缓存存储器获取数据集。本发明的方面修改了这种不同级别存储器间的交互,以防止敏感数据被存储在较低级存储器中。
在该上下文中,本发明的实施例涉及如下实现:可以实现任意数量的高速缓存级别,高速缓存未命中递归地从后续较低级获取目标数据集,直到定位到数据集为止。可以按照系统设计约束所确定的,以所期望的级别在高速缓存存储器内存储安全数据。例如,在某些计算架构配置中,一级或多级高速缓存存储器可以在物理上位于处理器封装和/或管芯内。本发明的方面认识到,高速缓存存储器的这种物理位置对于阻挠硬件访问尝试(例如使用前端总线分析器)可能特别有用。为了易于说明,参照具有一级高速缓存存储器和主存储器单元的高速缓存架构,对高速缓存行为的各种细节进行了解释。然而,本发明的实施例不一定局限于此。
处理高速缓存未命中的两个示例机制是:旁视(look-aside)高速缓存和浏览(look-through)高速缓存。在旁视高速缓存配置中,处理器、高速缓存存储器和主存储器耦接至公共总线。当处理器发送存储器访问请求时,该存储器访问请求被高速缓存存储器和主存储器接收。当出现高速缓存命中时,高速缓存存储器以对所请求的数据的肯定应答(acknowledge)进行响应,使得主存储器忽略该请求。当出现读未命中时,由于高速缓存存储器未发送肯定应答,主存储器对访问请求进行肯定应答。本发明的方面涉及识别存储器访问请求的系统,存储器访问请求是被标识为针对敏感数据的。对于这样的访问请求,系统终止/防止对主存储器的存储器写请求,同时允许高速缓存存储器肯定应答该请求。因此,可以防止安全数据被存储在较低级存储器中。
在浏览高速缓存中,高速缓存存储器连接至第一数据总线上的处理器,并且连接至第二数据总线上的主存储器。如果出现高速缓存未命中,高速缓存存储器将存储器访问请求转发至第二总线上的主存储器。本发明的方面涉及对于被标识为针对敏感数据的访问,禁止将写访问转发至主存储器的系统。
典型地,高速缓存存储器小于外部主存储器的尺寸,这是由于紧靠处理器附近的面积是有限的。此外,较小的高速缓存存储器尺寸具有更快的索引(indexing)和获取(retrieval)时间。由于高速缓存存储器一般无法存储主存储器的所有数据集,所以高速缓存的数据集通常必须被换出,以为要高速缓存的新数据集腾出空间。将高速缓存的值从高速缓存存储器移除被称为逐出。当新数据集要高速缓存至已满的高速缓存时,高速缓存控制器必须选择要逐出的高速缓存的数据集。可以使用各种算法来选择要逐出的数据集。这些算法可能相对复杂,由于不必要的逐出可能导致与主存储器访问时间相关联的延迟增加。一种具体的逐出算法被称为最近最少使用(LRU)。LRU通过逐出自上一次访问起时间最长的数据集来工作。本发明的方面涉及禁止针对被标识为安全数据的数据集进行数据逐出。例如,可以通过周期性访问安全数据,在基于LRU的逐出方案中保持安全数据。这样一来,可以在高速缓存中有效地保持安全数据。在具体实现中,可以根据针对整个高速缓存的逐出的最差情形,设置对安全数据的周期访问的定时(timing)。可以通过计算一系列访问所必需的时间来设置该定时,所述一系列访问共同地导致逐出高速缓存存储器中的全部(或所设置的百分比)内容。在另一实现中,系统监控存储器访问,以确定何时/是否希望对安全数据进行访问。例如,系统基于高速缓存逐出策略,确定安全数据何时处于被逐出的危险之中,并且通过访问安全数据进行响应。
各种计算架构利用处理器和/或具有多个核的处理器。每个处理器/核可以具有单独的、无法被其他处理器看到的高速缓存存储器。备选地或附加地,一个或多个高速缓存存储器可以在处理器间共享。主存储器还可由外部设备访问,外部设备无法访问高速缓存存储器。由于多个源可以更新存储在主存储器中的数据集,所以高速缓存存储器系统执行策略,以确保在主存储器中更新被写至高速缓存存储器的值,并且反之亦然。这保持了处理器间的数据完整性。这种在共享存储器资源的高速缓存拷贝之间以及在多个总线主控之间保持一致性被称为高速缓存一致。本发明的方面涉及多处理器/多核架构内使用高速缓存存储器存储安全数据。
当修改高速缓存中的数据时,使用已修改的高速缓存值更新存储在主存储器中的数据的值。从高速缓存写至主存储器被称为写出(write-out)。可以使用各种写策略来确定如何处理写入至高速缓存存储器的数据,包括但不限于回写和直写。在直写高速缓存中,立即将写至高速缓存存储器的数据集写出以更新主存储器。本发明的方面禁止针对安全数据的这样的写操作。例如,负责写数据以更新主存储器的高速缓存/总线控制器被配置为:通过阻塞、终止或以其他方式防止这样的写操作来响应于安全数据指示。
在回写高速缓存中,高速缓存存储器充当缓冲器。当处理器发起写周期时,高速缓存存储器接收数据并终止该周期。稍后,当总线可用时(典型地,当数据被从存储器逐出时),将数据从高速缓存存储器写至主存储器。本发明的方面禁止针对安全数据的这样的写操作。例如,回写高速缓存有时包含用于区分已修改数据和未修改的数据的机制。这样一来,系统可以避免不必要地将未修改的数据写至主存储器。本发明的方面控制针对安全数据的这种区分机制,从而阻塞、终止或以其他方式防止将安全数据写至较低级存储器。
更具体的回写策略变型是修改排他共享无效(Modified ExclusiveShared Invalid,MESI),这是针对为高速缓存的数据集使用的四种状态而命名的。该值存储在2位(bit)条目的表中。该表可以存储在标签存储器(例如图2的210)中,或高速缓存存储器的一部分(例如图2的206)中。修改状态指示相对于主存储器中的值,高速缓存存储器已发生了改变。修改状态又称“脏状态”。排他指示数据集仅存在于当前高速缓存存储器中,并且尚未修改。共享指示如果该值尚未修改,可以将该高速缓存的数据集存储在其他高速缓存存储器中。无效指示该高速缓存行无效。本发明的方面涉及响应于特定数据被认为安全的指示,来清除或防止对脏位的设置。
在某些实现中,持有修改状态的行的高速缓存存储器监控或窥探数据总线,以发现来自系统中所有其他高速缓存的对相应主存储位置的所有尝试读取。当高速缓存存储器看到针对高速缓存的已修改的数据集的读请求时,高速缓存存储器强迫该读取后退(back off)。已修改的高速缓存的值被写至主存储器,并且数据的状态被改为共享状态。本发明的方面涉及控制对安全数据的共享访问。例如,不同存储器级别上对安全数据的尝试访问不会导致安全数据被写。例如,可以中断尝试访问,不随后写入较低存储器级别。
存在许多实例,在这些实例中,运行在处理系统上的一个或多个应用所使用的数据项包含不应由其他执行的应用或与系统的数据总线相连的硬件访问的敏感数据项。安全和加密应用经常使用敏感数据(例如安全密钥值)来执行验证、认证、解密等。由于操作系统的复杂性、以及直接存储器访问(DMA)和联合测试行为组(JTAG)接口所强制的访问要求,难以确保在操作系统本身内对安全数据的排他性访问。例如,为了加速与外围设备的通信,许多架构和操作系统允许外部硬件(例如硬盘)与主存储器直接通信,而根本不涉及处理器。调试接口允许针对其他目的进行相同的访问,并且通常不在端设备中禁用。可以使用与标准I/O端口(如火线、通用串行总线(USB)等)连接的外部硬件,利用这样的访问来获得对存储在主存储器中的安全数据的访问,包括完全的存储器转储(memory dump)。此外,操作系统无法确保对数据的安全保护。例如许多操作系统具有大量安全弱点,因此即使不存在基于硬件的攻击也无法被信任能够保护密码密钥。
在存储敏感数据时,不依赖于操作系统来限制对授权应用的访问的安全存储器提供对抗入侵的附加保护。然而,将安全存储器实现为额外的硬件可能是昂贵的。例如,对于对存储器的直接访问以及对于拦截存储器和处理器间的通信,可能难以实现安全的存储器。这样的实现可能难以在未被设计为支持该概念的处理器架构中实现。例如,对于处理器,可能不存在简单的指示处理器特定数据集要被存储为安全数据的机制。
在计算架构中,高速缓存存储器(高速缓存)通常在物理上与处理器紧密接近,以减少数据获取时间。该高速缓存存储器用于存储存在于主存储器中的数据项的子集的复制值。本发明的方面认识到,高速缓存存储器与处理器紧密集成确保了相对于主存储器高速缓存存储器实质上更难于物理访问。由于无法像监控被访问数据一样容易地对高速缓存存储器和处理器间的信号线进行物理探查,这提供了一定程度的入侵保护。
下面转向附图,图1示出了针对安全存储配置的具有两级高速缓存的示例计算架构的框图。该架构包括处理器102以及多个存储器单元104、106和108。存储器单元被组织成分层结构,每个单元被配置为高速缓存来自较低分层级别的存储器单元的数据。在示例实现中,存储器单元104作为级1(L1)高速缓存存储器,被配置为高速缓存来自存储器单元106的数据。存储器单元106作为级2(L2)高速缓存,并且被配置为高速缓存来自存储器单元108的数据。存储器单元108位于最低分层级别,因此被配置为作为非高速缓存存储器操作,如主存储器。在该示例中,高速缓存控制器110控制数据何时被写至或从L1和L2高速缓存移除。
标签存储器114和116存储与各高速缓存的数据集相对应的主存储器的地址。当高速缓存控制器110确定敏感数据集被写至高速缓存时,高速缓存控制器110将高速缓存配置为对于敏感数据集而言作为非高速缓存存储器操作。在所示示例中,敏感数据112已被写至L2高速缓存106的一部分。作为响应,高速缓存控制器110通过在标签存储器116中存储数据连同相应的存储器地址,将部分112配置为非高速缓存。所存储的数据指示针对敏感数据112禁用直写和回写。在高速缓存中的任意数据集被写出至主存储器108之前,高速缓存控制器110首先检查存储在标签存储器114和116中的数据集的状态。如果敏感数据112要被逐出,高速缓存控制器将检查标签存储器116并确定112是敏感数据。作为响应,高速缓存控制器可以通过清除与敏感数据112相关联的标签存储器116条目,来逐出敏感数据,而不将数据写至主存储器。稍后,可以由其他高速缓存的数据盖写敏感数据112。在备选实现中,系统可以通过将伪数据集(dummy dataset)写至安全数据的地址位置来显式地盖写高速缓存的数据。
根据图1的存储器分层结构,本发明的实施例针对在具有以分层结构组织的多个存储器单元的计算机系统中安全存储敏感数据。存储器单元被配置为高速缓存来自较低分层级别的存储器单元的数据,最低分层级别的存储器单元被配置为充当非高速缓存的存储器。当将数据集提供给位于最低层以上的层级级别的存储器单元之一以在其中存储该数据集时,确定数据集是否为敏感数据集。响应于确定数据集是敏感数据集,该存储器单元之一被配置为对于该数据集,作为最低级存储器单元操作。
在另一实施例中,高速缓存策略可以被配置为,通过将高速缓存设置为对于敏感数据操作于回写模式,并在敏感数据被修改时防止设置与敏感数据相对应的脏位,来防止敏感数据被写至主存储器。在另一实施例中,可以在敏感数据被写之后清除脏位。如果稍后将敏感数据从高速缓存存储器逐出,则脏位将指示敏感数据集尚未被修改,并且较低级(主)存储器将不以敏感数据集进行更新。这样一来,可以将敏感数据排他地保持在所期望的存储器级别,从而防止其被写至主存储器。
图2示出了在高速缓存存储器中安全存储数据集的示例过程的流程图。在步骤204,向高速缓存发送要存储在安全高速缓存中的数据集202。在步骤206,确定数据集的安全类型。在步骤208,选择存储数据集的高速缓存存储位置。如果高速缓存已满,选择并逐出非安全数据集。如果数据集202被确定为非敏感数据,在步骤212,在所选择的存储位置中存储数据集。如果数据集被确定为敏感数据,在步骤220,高速缓存被配置为针对所选择的存储器地址禁用直写。在步骤222,在高速缓存中所选择的地址中存储数据集202。在该示例中,通过在步骤224清除已修改/脏位来禁用回写。在该示例中,在步骤226,还针对所选择的存储器地址禁用逐出。
在其他实施例中,软件接口将读/写指令配置为在不存在的(non-existent)或保留的(reserved)存储位置处存储敏感数据。软件应用可以包括向从主数据总线可访问的特定存储器地址进行读或写的指令。对于敏感数据,这些指令被设置为写至不存在的位置。当处理器执行初始写指令时,如在高速缓存的常规操作下一样,敏感数据集被写至高速缓存存储器。并且不存在的地址被存储在高速缓存的标签存储器中。如果高速缓存的写策略稍后触发将数据集写出至主存储器,由于该存储位置无效的缘故,写失败。
图3示出了示例浏览高速缓存计算架构的框图。计算架构包括与高速缓存304耦接的处理器302。高速缓存包括:高速缓存控制器308、高速缓存静态随机存取存储器(SRAM)306和标签存储器单元310,标签存储器单元310用于存储高速缓存条目的控制,如地址映射信息。高速缓存304经由数据总线314和数据总线接口312从和向主存储器316接收和发送数据。当安全数据被逐出或从高速缓存写出时,由高速缓存产生存储器访问请求,并且该存储器访问请求被发送至数据总线接口。如果使用不存在的地址来防止数据被写出至主存储器,则数据总线接口将地址认作无效,并防止数据集被写至该位置,且可以以信号通知高速缓存该差错。这样一来,防止敏感数据被写至不安全的主存储器。
可以使用多种不同的地址来防止安全存储器被写至主存储器中的目标地址。除了不与连接至数据总线的任何硬件相对应的不存在的地址以外,还可以使用保留地址来防止写出。地址空间的一些部分可以被保留以供特定硬件使用。例如,在某些系统中,可以保留用于访问视频卡的帧缓冲器的地址,作为只读存储器地址。类似地,被配置为输入专用(input only)的I/O信号线的地址可以保留存储器缓冲器地址,以存储在每个信号线上接收的输入。对这些地址的写请求被认作无效,并且可用于防止敏感数据被写至主存储器。返回参照图3所示的示例,可由数据总线接口312防止写至保留的存储位置。为了确定保留哪些地址,数据总线接口312在存储器地址表(未示出)中查找每个地址的状态。如果地址被指示为保留,由数据总线接口丢弃对该地址的存储器访问请求。
在某些实施例中,特定的存储器地址尽管是有效和未保留的,但是也可用于以信号通知数据集是敏感数据。例如,地址总线上的最高或最后的地址线可用于以信号通知正在执行非授权写操作;则该线上的任何信号将告知总线控制器停止将任何数据放在总线上。可选地,可以为软件应用提供指令,以定义要用于指示敏感数据的存储器地址。在其他实施例中,存储器写指令可以包括指示是要将数据集写至安全存储器还是非安全存储器的数据位。例如,写指令可以包括:指示保持待写数据集的寄存器的字段、指示目标地址的字段、和指示数据集的状态的字段。如果状态指示数据集是敏感的,数据集可以被存储在高速缓存中,并且高速缓存可以被配置为防止数据集被写出至主存储器。
在本发明的其他实施例中,可以在高速缓存和数据总线间包括硬件,以过滤敏感数据避免其被写至总线上,同时转发非敏感数据。该硬件可以执行多种其它安全功能,如存储器加密和认证。该硬件还防止存储在安全高速缓存中的数据集被写至主存储器。对于控制与系统架构相关联的成本(例如物理空间成本、功率成本、晶体管成本和/或货币成本)而言,将多个功能集成至硬件可能特别有用。
图4示出了添加了策略执行硬件以防止安全数据集被写至数据总线的示例浏览高速缓存计算架构。计算架构包括与高速缓存404耦接的处理器402。高速缓存包括:高速缓存控制器408、高速缓存SRAM 406和用于存储地址映射、状态和脏位信息的标签存储器单元410。示例架构包括:与数据总线416耦接的主存储器418、以及从总线发送和接收数据的数据总线接口414。在高速缓存404和数据总线接口414间添加策略执行过滤器412。策略执行过滤器被配置为识别并防止安全数据被传递至数据总线接口。从高速缓存404接收的非安全数据由策略执行过滤器转发至数据总线接口414。本发明的一实施例可以备选地将数据总线接口414配置为执行由策略执行过滤器提供的功能。如以上所讨论的,可以使用多种方法向策略执行过滤器412指示哪些数据集包含敏感数据,包括但不限于:不存在的地址、保留地址、带有状态字段的写指令等。
虽然在浏览高速缓存的情况下描述了示例实现,本发明的各种实施例还同样适用于各种旁视高速缓存配置。如上所述,在旁视高速缓存架构中,高速缓存和处理器均连接至数据总线。数据集经由数据总线从处理器写至高速缓存。由于数据集通过总线传递,所以数据无法受到保护免受对总线进行物理探查以监控数据。然而,通过给予高速缓存受限地址(restricted address),限制对高速缓存的访问。由于地址受限,非授权硬件无法经由直接存储器访问(DMA)写至高速缓存或从高速缓存读取。因此,通过根据各种实施例防止敏感数据被写至主存储器,可以防止对存储在高速缓存中的敏感数据的DMA访问。
对于某些不可能或不期望对数据进行重新计算的应用,防止逐出存储在高速缓存中的敏感数据可能是有益的。根据本发明的多个实施例,可以防止或禁用逐出,以防止敏感数据被丢弃。在一实施例中,所实现的高速缓存策略被配置为:响应于确定数据为敏感数据,存储指示该敏感数据集是非可逐出的数据。在这样的实施例中,高速缓存控制器的逐出策略被配置为,当要求逐出时从非敏感数据集选择。可以以类似于存储脏位的方式针对每个数据集存储非逐出数据。该信息可以存储在标签存储器中或者高速缓存存储器的一部分中。在一可能实现中,非逐出状态可以是在指示敏感数据集的另一状态中为隐式的。例如,高速缓存控制器可以响应于确定数据为敏感数据,存储指示数据集是“仅高速缓存”的信息。高速缓存策略可以被实现为除了禁用回写以外还禁用逐出“仅高速缓存”的数据集。
在另一实施例中,处理器或软件可以通过周期性发送针对敏感数据集的读请求来防止敏感数据集被从高速缓存逐出。对于实现最近最少使用(LRU)逐出策略的高速缓存,这尤其有用。在LRU策略中,每次高速缓存的数据集被访问时,存储信息来指示该时间。当要求逐出时,LRU逐出策略选择自上一次访问起具有最长时间的数据集。通过周期性发送读请求,可以重置自上一次存储器访问起的时间,将敏感数据集以较高优先级置于高速缓存中。读请求之间所需的时间长度取决于高速缓存控制器所采用的逐出算法以及其他高速缓存的数据集被访问的频率。
在本发明的多个实施例中,对存储在高速缓存存储器中的敏感数据的访问可以局限于特权用户的集合。特权用户可以包括但不限于:特定的处理器或硬件、操作于特定模式下的处理器、特定的计算机进程等。特权状态可以针对特定用户指示,或者可以使用一个或多个安全级别来实现。例如,处理器可以被分配安全级别3,并且在处理器上执行的一个计算机进程可以被分配安全级别1。如果敏感数据集指示其要求安全级别2,则处理器可以被允许访问敏感数据集,而计算机进程不可访问。
在本发明的多个实施例中,提供了使用高速缓存存储器中的安全数据存储来认证数据的方法。可以通过在安全高速缓存中存储数据集的校验和哈希值,来认证计算机程序的主存储器的临界段(criticalsection)。稍后可以重新计算校验和,并将其与存储在高速缓存中的校验和进行比较,以验证数据集未被改变。可以使用大量适当的校验和以及哈希函数来进行认证,包括但不限于循环冗余校验(CRC)、弗莱彻(Fletcher)、伯恩斯坦(Bernstein)、消息摘要(MD)、安全哈希(SH)、Tiger、Whirlpool、基于哈希的消息认证码(HMAC)等。
图5示出了根据本发明各种实施例的用于认证所存储的数据的示例过程的流程图。在步骤504,针对数据集502计算校验和哈希值。在步骤506,在主存储器中存储数据集502,并且在步骤508,在高速缓存中存储所计算的哈希值。在步骤510,高速缓存被配置为防止回写和逐出数据集。在步骤512,从主存储器获取数据集。在步骤514,针对数据集重新计算校验和哈希值。在步骤516,获取存储在高速缓存中的哈希值,并将其与重新计算的哈希值进行比较。如果在判决步骤518所比较的值之间不存在差异,在步骤512认证所获取的数据集。
在某些认证方案中,系统可用的存储空间越为可信,认证方案能够运行得越快。例如,认证树(又称哈希树或默克尔树(Merkele tree))是哈希函数的树,其中,叶是数据集的哈希值。为了相对所计算的哈希树认证数据集,计算每个数据集哈希值。将所计算的兄弟的哈希值进行拼接和重新哈希,来确定父辈的哈希值。在树中的每一级重新计算哈希值,直到到达顶级根节点。将所计算的根节点的哈希值与存储在安全存储器中的根哈希值进行比较,以认证整个数据集。不幸的是,这可能导致对性能具有巨大影响的级联。读取和认证一个存储器块要求对认证树进行遍历直至认证树的根,这可能涉及更多的必须被认证的存储器访问。如果安全存储器有足够的尺寸可用,可以使用多个根,从而将树的深度减少若干层。因此,大量的高速安全存储器的可用性对于性能可能是关键的。然而,提供和实现真正的可信存储是昂贵的。这样,对于高效实现哈希树认证,配置高速缓存以安全存储多个哈希值可能特别有用。
如以上所讨论的,在许多计算架构中实现多级高速缓存。本发明的各种实施例可以被实现为在任意级高速缓存存储器中实现安全存储。可以在确定将哪个(些)级高速缓存用于安全存储中考虑多种因素。L1高速缓存在物理上与处理器最接近,并且提供对抗物理监控的最有力的保护。然而,较低级高速缓存可能能够高速缓存更多的数据集。对于较大量的数据,可以使用较低级高速缓存进行安全存储。
除了以上讨论的那些高速缓存架构和策略,还存在多种高速缓存架构和策略。上述架构和策略是为示例性目的而提供的,并非意在重新定义在本领域中已知的高速缓存存储器的一般理解或范围。
虽然以上描述以及在以下的权利要求中描述了本发明,但所属领域技术人员将认识到,可以在不背离本发明的精神的范围的前提下对本发明做出许多改变。
Claims (20)
1.一种在计算系统中安全存储敏感数据的方法,所述计算系统具有处理器和存储器系统,所述存储器系统包括主存储器和高速缓存存储器,所述方法包括:
访问存储在主存储器中的第一数据集,并且高速缓存存储器被配置为保持主存储器和高速缓存存储器之间在逻辑上一致;
响应于确定第二数据集是敏感数据集,指示高速缓存存储器将第二数据集存储在高速缓存存储器的存储位置,而不保持与数据集和主存储器的逻辑一致。
2.根据权利要求1所述的方法,其中:
所述高速缓存存储器能够被配置为操作于回写模式和直写模式;
所述高速缓存存储器具有表示了第二数据集是否被修改的一个或多个状态位;并且
指示所述高速缓存存储器保留存储位置包括:
将高速缓存存储器配置为操作于回写模式,以及
清除状态位以表示第二数据集未被修改。
3.根据权利要求1所述的方法,其中,指示高速缓存存储器将第二数据集存储在高速缓存存储器的存储位置包括:指示高速缓存存储器第二数据集要被逻辑映射至不存在的存储位置。
4.根据权利要求1所述的方法,其中,指示高速缓存存储器将第二数据集存储在高速缓存存储器的存储位置包括:指示高速缓存存储器第二数据集要被逻辑映射至写保护的地址。
5.根据权利要求1所述的方法,还包括:响应于确定第二数据集是敏感数据集,指示高速缓存存储器禁用对第二数据集的逐出。
6.根据权利要求5所述的方法,其中,指示高速缓存存储器禁用对第二数据集的逐出包括:存储表示了第二数据集不可逐出的数据。
7.根据权利要求1所述的方法,还包括:响应于确定第二数据集是敏感数据集,指示以足以防止从高速缓存存储器逐出第二数据集的频率,向高速缓存存储器发送针对第二数据集的周期性存储器读请求。
8.根据权利要求1所述的方法,其中,敏感数据集由包含在存储器写指令中的一个或多个状态位表示。
9.根据权利要求1所述的方法,其中,敏感数据集是通过识别包含不存在的存储器地址的存储器写指令来确定的。
10.根据权利要求1所述的方法,其中,敏感数据集是通过识别包含表示敏感数据的存储器地址的存储器写指令来确定的。
11.根据权利要求1所述的方法,其中,确定第二数据集是敏感数据集包括:确定第二数据集是否被表示为敏感数据集。
12.根据权利要求1所述的方法,还包括:
确定第二数据集的安全级别;
响应于来自请求方的对第二数据集的存储器访问请求,确定请求方的安全级别;以及
响应于请求方的安全级别低于数据集的安全级别,丢弃存储器访问请求。
13.根据权利要求12所述的方法,还包括:
确定第二数据集的一个或多个授权用户;
响应于来自请求方的对第二数据集的存储器访问请求,确定请求方是否所述一个或多个授权用户之一;以及
响应于确定请求方是未授权的,丢弃存储器访问请求。
14.根据权利要求12所述的方法,其中,所述一个或多个授权用户包括计算机进程。
15.根据权利要求12所述的方法,其中,所述一个或多个授权用户包括处理器。
16.一种计算机处理系统,包括:
至少一个中央处理器;
存储器架构,包括多个存储器电路,所述存储器架构被配置为将存储在较低分层级别的存储器电路中的数据高速缓存,最低分层级别的存储器电路被配置为作为非高速缓存存储器操作;
控制电路,被配置和布置为,响应于安全数据集并且针对安全数据集的存储,
将存储器架构配置为使所述多个存储器电路的第一存储器电路作为最低分层级别操作,以及
响应于非安全数据集的数据集并且针对非安全数据集的数据集的存储,
使第一存储器电路作为最低级别以上的分层级别操作,以及
使所述多个存储器电路的第二存储器电路作为最低级别存储器电路操作。
17.根据权利要求16所述的计算机处理系统,还包括:策略执行电路,耦接在第一和第二存储器电路之间,用于将从第一存储器电路写出的数据通信至第二存储器电路;并且
其中,所述控制电路还被配置和布置为:通过指示策略执行电路丢弃从第一存储器电路写出的数据,将存储器架构配置为,使所述多个存储器电路的第一存储器电路作为最低分层级别操作。
18.根据权利要求16所述的计算机处理系统,其中,所述策略执行电路实现在数据总线控制器电路内。
19.根据权利要求16所述的计算机处理系统,其中,所述策略执行电路实现在所述控制电路内。
20.一种访问计算系统的存储器的方法,包括:
将高速缓存存储器的高速缓存控制策略配置为启用写出和逐出;
从存储在主存储器的目标位置的第一数据集产生第一校验和值;
在计算系统的高速缓存存储器中存储第一校验和值;
将高速缓存存储器的高速缓存控制策略配置为禁用第一校验和值的写出和逐出;
取得存储在主存储器的目标位置的第二数据集;
从第二数据集产生第二校验和值;
从高速缓存存储器取得第一校验和;
将第一校验和与第二校验和比较;以及
响应于第一校验和等于第二校验和,验证第二数据集。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/645,190 US20110153944A1 (en) | 2009-12-22 | 2009-12-22 | Secure Cache Memory Architecture |
US12/645,190 | 2009-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102103552A true CN102103552A (zh) | 2011-06-22 |
Family
ID=44010108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010106008494A Pending CN102103552A (zh) | 2009-12-22 | 2010-12-20 | 安全高速缓存存储器架构 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110153944A1 (zh) |
EP (1) | EP2357587A3 (zh) |
CN (1) | CN102103552A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015014302A1 (zh) * | 2013-07-31 | 2015-02-05 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机系统 |
CN106233266A (zh) * | 2014-04-16 | 2016-12-14 | 新思公司 | 安全的存储器系统及其方法 |
CN106775502A (zh) * | 2017-02-16 | 2017-05-31 | 上海新储集成电路有限公司 | 一种基于数据更新频率的写入方法 |
CN107111581A (zh) * | 2015-01-19 | 2017-08-29 | 微软技术许可有限责任公司 | 存储器描述符列表高速缓存和管道处理 |
CN107209722A (zh) * | 2015-02-23 | 2017-09-26 | 英特尔公司 | 用于在安全飞地页面高速缓存中使安全飞地的进程分叉和建立子飞地的指令和逻辑 |
CN107438837A (zh) * | 2015-04-29 | 2017-12-05 | 谷歌公司 | 数据高速缓存 |
CN108292260A (zh) * | 2016-08-25 | 2018-07-17 | 华为技术有限公司 | 用于软件自测试的装置和方法 |
CN108520050A (zh) * | 2018-03-30 | 2018-09-11 | 北京邮电大学 | 一种基于二维定位的Merkle树缓存装置及其对Merkle树的操作方法 |
CN109997117A (zh) * | 2016-12-28 | 2019-07-09 | 英特尔公司 | 用于将门铃合并在请求消息中的技术 |
CN110210232A (zh) * | 2019-06-06 | 2019-09-06 | 成都海光集成电路设计有限公司 | 数据存储方法与装置 |
CN110210214A (zh) * | 2019-06-03 | 2019-09-06 | 成都海光集成电路设计有限公司 | 处理器核心隔离方法及装置 |
CN112068983A (zh) * | 2019-06-10 | 2020-12-11 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
US11068310B2 (en) | 2019-03-08 | 2021-07-20 | International Business Machines Corporation | Secure storage query and donation |
CN113297605A (zh) * | 2021-06-24 | 2021-08-24 | 建信金融科技有限责任公司 | 复制数据管理方法、装置、电子设备及计算机可读介质 |
US11176054B2 (en) | 2019-03-08 | 2021-11-16 | International Business Machines Corporation | Host virtual address space for secure interface control storage |
US11182192B2 (en) | 2019-03-08 | 2021-11-23 | International Business Machines Corporation | Controlling access to secure storage of a virtual machine |
TWI752412B (zh) * | 2019-03-08 | 2022-01-11 | 美商萬國商業機器公司 | 用於安全介面控制安全儲存硬體標記之電腦實施的方法、電腦系統及電腦程式產品 |
CN114385067A (zh) * | 2020-10-19 | 2022-04-22 | 澜起科技股份有限公司 | 用于存储器系统的数据更新方法和存储器控制器 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012014015A2 (en) * | 2010-07-27 | 2012-02-02 | Freescale Semiconductor, Inc. | Apparatus and method for reducing processor latency |
US9275238B2 (en) * | 2011-04-29 | 2016-03-01 | Antaios (Beijing) Information Technology Co., Ltd. | Method and apparatus for data security reading |
JP5879527B2 (ja) * | 2011-05-25 | 2016-03-08 | パナソニックIpマネジメント株式会社 | 情報処理装置および情報処理方法 |
US9229879B2 (en) * | 2011-07-11 | 2016-01-05 | Intel Corporation | Power reduction using unmodified information in evicted cache lines |
US8793506B2 (en) * | 2012-08-31 | 2014-07-29 | Intel Corporation | Mechanism for facilitating encryption-free integrity protection of storage data at computing systems |
US9075904B2 (en) | 2013-03-13 | 2015-07-07 | Intel Corporation | Vulnerability estimation for cache memory |
US9471511B2 (en) | 2013-11-24 | 2016-10-18 | Truly Protect Oy | System and methods for CPU copy protection of a computing device |
CN103942499B (zh) * | 2014-03-04 | 2017-01-11 | 中天安泰(北京)信息技术有限公司 | 基于移动存储器的数据黑洞处理方法及移动存储器 |
JP5936152B2 (ja) * | 2014-05-17 | 2016-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | メモリアクセストレース方法 |
US10387668B2 (en) * | 2014-07-08 | 2019-08-20 | International Business Machines Corporation | Data protected process cores |
US10805337B2 (en) * | 2014-12-19 | 2020-10-13 | The Boeing Company | Policy-based network security |
TWI566229B (zh) * | 2015-06-03 | 2017-01-11 | 友達光電股份有限公司 | 顯示裝置之時序控制器及其操作方法 |
CN106326148B (zh) | 2015-07-01 | 2020-06-23 | 三星电子株式会社 | 数据处理系统及其操作方法 |
CN107526688B (zh) * | 2017-09-12 | 2020-05-29 | 上海兆芯集成电路有限公司 | 储存装置以及配置方法 |
US10255199B1 (en) * | 2017-09-22 | 2019-04-09 | Intel Corporation | Evicting clean secure pages without encryption |
US11082231B2 (en) * | 2017-12-29 | 2021-08-03 | Intel Corporation | Indirection directories for cryptographic memory protection |
US11055226B2 (en) * | 2018-06-29 | 2021-07-06 | Intel Corporation | Mitigation of cache-latency based side-channel attacks |
US11281545B2 (en) * | 2018-09-07 | 2022-03-22 | University Of Central Florida Research Foundation, Inc. | Methods of crash recovery for data stored in non-volatile main memory |
US11455398B2 (en) | 2019-03-08 | 2022-09-27 | International Business Machines Corporation | Testing storage protection hardware in a secure virtual machine environment |
US11088846B2 (en) * | 2019-03-28 | 2021-08-10 | Intel Corporation | Key rotating trees with split counters for efficient hardware replay protection |
NL2022902B1 (en) | 2019-04-09 | 2020-10-20 | Univ Delft Tech | Integrated circuit device for loT applications |
CN117375792B (zh) * | 2023-02-24 | 2024-07-19 | 华为技术有限公司 | 侧信道检测的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060218199A1 (en) * | 2005-03-22 | 2006-09-28 | International Business Machines Corporation | Method and system for scrubbing data within a data storage subsystem |
US20080133842A1 (en) * | 2006-12-05 | 2008-06-05 | Shlomo Raikin | Protected cache architecture and secure programming paradigm to protect applications |
US20080147992A1 (en) * | 2006-12-05 | 2008-06-19 | Shlomo Raikin | Protecting Private Data from Cache Attacks |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591347B2 (en) * | 1998-10-09 | 2003-07-08 | National Semiconductor Corporation | Dynamic replacement technique in a shared cache |
US6397301B1 (en) * | 1999-12-29 | 2002-05-28 | Intel Corporation | Preventing access to secure area of a cache |
US6848024B1 (en) * | 2000-08-07 | 2005-01-25 | Broadcom Corporation | Programmably disabling one or more cache entries |
US7039814B2 (en) * | 2001-03-07 | 2006-05-02 | Sony Corporation | Method for securing software via late stage processor instruction decryption |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US20030196096A1 (en) * | 2002-04-12 | 2003-10-16 | Sutton James A. | Microcode patch authentication |
US7149862B2 (en) * | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
US7657756B2 (en) * | 2004-10-08 | 2010-02-02 | International Business Machines Corporaiton | Secure memory caching structures for data, integrity and version values |
IL187040A0 (en) * | 2007-10-30 | 2008-02-09 | Sandisk Il Ltd | Caching for structural integrity schemes |
US8738926B2 (en) * | 2008-01-10 | 2014-05-27 | Intel Mobile Communications GmbH | Data processing system, method for executing a cryptographic algorithm and method for preparing execution of a cryptographic algorithm |
-
2009
- 2009-12-22 US US12/645,190 patent/US20110153944A1/en not_active Abandoned
-
2010
- 2010-12-20 CN CN2010106008494A patent/CN102103552A/zh active Pending
- 2010-12-21 EP EP10196101A patent/EP2357587A3/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060218199A1 (en) * | 2005-03-22 | 2006-09-28 | International Business Machines Corporation | Method and system for scrubbing data within a data storage subsystem |
US20080133842A1 (en) * | 2006-12-05 | 2008-06-05 | Shlomo Raikin | Protected cache architecture and secure programming paradigm to protect applications |
US20080147992A1 (en) * | 2006-12-05 | 2008-06-19 | Shlomo Raikin | Protecting Private Data from Cache Attacks |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9864696B2 (en) | 2013-07-31 | 2018-01-09 | Huawei Technologies Co., Ltd. | Multilevel cache-based data read/write method and apparatus, and computer system |
WO2015014302A1 (zh) * | 2013-07-31 | 2015-02-05 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机系统 |
CN106233266A (zh) * | 2014-04-16 | 2016-12-14 | 新思公司 | 安全的存储器系统及其方法 |
CN107111581B (zh) * | 2015-01-19 | 2020-06-05 | 微软技术许可有限责任公司 | 存储器描述符列表高速缓存和管道处理 |
CN107111581A (zh) * | 2015-01-19 | 2017-08-29 | 微软技术许可有限责任公司 | 存储器描述符列表高速缓存和管道处理 |
US10452581B2 (en) | 2015-01-19 | 2019-10-22 | Microsoft Technology Licensing, Llc | Memory descriptor list caching and pipeline processing |
CN107209722A (zh) * | 2015-02-23 | 2017-09-26 | 英特尔公司 | 用于在安全飞地页面高速缓存中使安全飞地的进程分叉和建立子飞地的指令和逻辑 |
CN107209722B (zh) * | 2015-02-23 | 2021-06-22 | 英特尔公司 | 处理器、处理系统和用于指令执行的方法 |
CN107438837A (zh) * | 2015-04-29 | 2017-12-05 | 谷歌公司 | 数据高速缓存 |
CN112905501B (zh) * | 2015-04-29 | 2022-08-12 | 谷歌有限责任公司 | 数据高速缓存 |
CN107438837B (zh) * | 2015-04-29 | 2021-03-12 | 谷歌有限责任公司 | 数据高速缓存 |
CN112905501A (zh) * | 2015-04-29 | 2021-06-04 | 谷歌有限责任公司 | 数据高速缓存 |
CN108292260A (zh) * | 2016-08-25 | 2018-07-17 | 华为技术有限公司 | 用于软件自测试的装置和方法 |
US10691586B2 (en) | 2016-08-25 | 2020-06-23 | Huawei Technologies Co., Ltd. | Apparatus and method for software self-test |
CN108292260B (zh) * | 2016-08-25 | 2021-01-05 | 华为技术有限公司 | 用于软件自测试的装置和方法 |
CN109997117B (zh) * | 2016-12-28 | 2023-09-05 | 英特尔公司 | 用于将门铃合并在请求消息中的技术 |
CN109997117A (zh) * | 2016-12-28 | 2019-07-09 | 英特尔公司 | 用于将门铃合并在请求消息中的技术 |
CN106775502A (zh) * | 2017-02-16 | 2017-05-31 | 上海新储集成电路有限公司 | 一种基于数据更新频率的写入方法 |
CN106775502B (zh) * | 2017-02-16 | 2020-06-19 | 上海新储集成电路有限公司 | 一种基于数据更新频率的写入方法 |
CN108520050A (zh) * | 2018-03-30 | 2018-09-11 | 北京邮电大学 | 一种基于二维定位的Merkle树缓存装置及其对Merkle树的操作方法 |
CN108520050B (zh) * | 2018-03-30 | 2019-01-25 | 北京邮电大学 | 一种基于二维定位的Merkle树缓存装置及其对Merkle树的操作方法 |
US11635991B2 (en) | 2019-03-08 | 2023-04-25 | International Business Machines Corporation | Secure storage query and donation |
US11068310B2 (en) | 2019-03-08 | 2021-07-20 | International Business Machines Corporation | Secure storage query and donation |
US11176054B2 (en) | 2019-03-08 | 2021-11-16 | International Business Machines Corporation | Host virtual address space for secure interface control storage |
US11182192B2 (en) | 2019-03-08 | 2021-11-23 | International Business Machines Corporation | Controlling access to secure storage of a virtual machine |
TWI752412B (zh) * | 2019-03-08 | 2022-01-11 | 美商萬國商業機器公司 | 用於安全介面控制安全儲存硬體標記之電腦實施的方法、電腦系統及電腦程式產品 |
US11283800B2 (en) | 2019-03-08 | 2022-03-22 | International Business Machines Corporation | Secure interface control secure storage hardware tagging |
US11669462B2 (en) | 2019-03-08 | 2023-06-06 | International Business Machines Corporation | Host virtual address space for secure interface control storage |
CN110210214A (zh) * | 2019-06-03 | 2019-09-06 | 成都海光集成电路设计有限公司 | 处理器核心隔离方法及装置 |
CN110210232A (zh) * | 2019-06-06 | 2019-09-06 | 成都海光集成电路设计有限公司 | 数据存储方法与装置 |
CN112068983A (zh) * | 2019-06-10 | 2020-12-11 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN114385067A (zh) * | 2020-10-19 | 2022-04-22 | 澜起科技股份有限公司 | 用于存储器系统的数据更新方法和存储器控制器 |
CN114385067B (zh) * | 2020-10-19 | 2023-07-18 | 澜起科技股份有限公司 | 用于存储器系统的数据更新方法和存储器控制器 |
CN113297605A (zh) * | 2021-06-24 | 2021-08-24 | 建信金融科技有限责任公司 | 复制数据管理方法、装置、电子设备及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2357587A3 (en) | 2011-11-30 |
EP2357587A2 (en) | 2011-08-17 |
US20110153944A1 (en) | 2011-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102103552A (zh) | 安全高速缓存存储器架构 | |
US9639482B2 (en) | Software cryptoprocessor | |
US7657756B2 (en) | Secure memory caching structures for data, integrity and version values | |
US9141558B2 (en) | Secure memory control parameters in table look aside buffer data fields and support memory array | |
US8341356B2 (en) | Protected cache architecture and secure programming paradigm to protect applications | |
US9753868B2 (en) | Memory management device and non-transitory computer readable storage medium | |
US7650479B2 (en) | Maintaining cache coherency for secure and non-secure data access requests | |
US9773431B2 (en) | Block encryption security for integrated microcontroller and external memory system | |
JP5581403B2 (ja) | メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納 | |
US6397301B1 (en) | Preventing access to secure area of a cache | |
CN101311913B (zh) | 高速缓冲存储器内的控制数据修改 | |
JP4876053B2 (ja) | トラステッド・デバイス集積回路 | |
CN109002706A (zh) | 一种基于用户级页表的进程内数据隔离保护方法和系统 | |
US20090292879A1 (en) | Nodma cache | |
CN101231621A (zh) | 隐藏存储器访问模式 | |
CN113934656A (zh) | 使用密码保护的主机物理地址的安全地址转换服务 | |
Saileshwar et al. | Lookout for zombies: Mitigating flush+ reload attack on shared caches by monitoring invalidated lines | |
Lipp | Cache attacks on arm | |
US20240184714A1 (en) | CryptoMMU for Enabling Scalable and Secure Access Control of Third-Party Accelerators | |
Zhang | Software-only Rowhammer Attacks and Countermeasures | |
Jaamoum | Strategies for securing cache memories against software side-channel attacks | |
Taassori | Low Overhead Secure Systems | |
CN106233266A (zh) | 安全的存储器系统及其方法 | |
Mangard | Cache Attacks and Rowhammer on ARM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110622 |
|
WD01 | Invention patent application deemed withdrawn after publication |