CN109558372B - 用于安全处理器的设备和方法 - Google Patents

用于安全处理器的设备和方法 Download PDF

Info

Publication number
CN109558372B
CN109558372B CN201811121820.0A CN201811121820A CN109558372B CN 109558372 B CN109558372 B CN 109558372B CN 201811121820 A CN201811121820 A CN 201811121820A CN 109558372 B CN109558372 B CN 109558372B
Authority
CN
China
Prior art keywords
processor
instructions
metadata
memory
computing device
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
CN201811121820.0A
Other languages
English (en)
Other versions
CN109558372A (zh
Inventor
M·坦贝尔
S·吉耶
A·法孔
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.)
Secure IC SAS
Original Assignee
Secure IC SAS
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 Secure IC SAS filed Critical Secure IC SAS
Publication of CN109558372A publication Critical patent/CN109558372A/zh
Application granted granted Critical
Publication of CN109558372B publication Critical patent/CN109558372B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • 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/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data

Abstract

本发明的实施例提供了一种包括一个或多个处理器的计算设备,每个处理器包括一个或多个处理单元,所述一个或多个处理单元被配置为执行至少一个程序,每个程序包括数据和/或指令,该计算设备进一步包括用于处理器中的至少一些的,与每个处理器相关联的处理器高速缓存,处理器高速缓存被配置为存取由处理器执行的程序中包括的数据和/或指令,该计算设备包括:‑辅助高速缓存,被配置为存取与所述程序中包括的数据和/或指令相关联的元数据;‑安全验证单元,被配置为从辅助高速缓存取回与对应于由处理器(11)发送到处理器高速缓存(117)的存储器存取请求的数据和/或指令相关联的元数据的至少一部分。

Description

用于安全处理器的设备和方法
技术领域
本发明一般涉及数字数据处理,尤其涉及安全处理器领域。
背景技术
计算设备(也称为计算机或计算机器)执行称为程序的算术或逻辑运算的任意集合或序列。
计算设备通常包括至少一个处理元件,通常是中央处理单元(CPU),以及一些相关联形式的存储器。处理元件的基本操作,无论其采用何种物理形式,都是通过执行由指令指定的算术、逻辑、控制和输入/输出操作来执行程序的指令。
要执行的程序包括存储在存储器中的数据和指令。任何程序实现都转录为低级机器语言,以便由硬件设备处理。在由处理元件处理之前,数据和指令经由总线从不同的存储器移动。在编译过程期间,数据与操作数相关联,而指令与操作符相关联。
现代计算设备使用以纳秒级时间尺度处理的快速计算单元。这使得对于给定的程序,可以在不到一秒的时间内执行数亿次操作。因此,存储器单元必须足够快以向处理元件提供这样的带宽并避免瓶颈。更重要的是,由于存储器单元存储个人和敏感数据(例如诸如安全嵌入式系统之类的安全计算设备中的加密密钥),因此必须强制移动数据和/或指令的安全性并确保由处理元件良好和正确的执行程序。
计算设备易受针对在处理器上执行软件代码/程序时的行为并且建立在利用处理元件执行机器代码以存取和获得对受害者主机的控制的基础上的网络攻击。特别是,对硬件/软件设计的基于存储器的攻击依赖于破坏存储器地址(位置)来劫持控制流。例如,可以通过破坏代码/程序存储器位置(例如返回地址)来实现任意程序执行。
存在用于确保针对一般的网络攻击和特别是基于存储器的攻击的保护和/或安全性的一些解决方案。
现有的软件保护政策包括:
-用于检测/识别恶意软件代码存在的防病毒程序;
-使用金丝雀(canaries)来检测溢出;
-动态信息流跟踪,用于识别和跟踪不安全的数据;
-使用虚拟存储器地址而不是物理地址结合部署非可执行堆栈和堆、地址空间布局随机化和堆栈金丝雀。这些保护措施提供了存储器存取限制,并防止攻击者注入和/或执行代码,以及
-基于对流控制的任何修改的检测来控制流完整性。
可以使用标记的硬件架构来实施存储器安全策略。通过使用标记的存储器保护来限制对存储器位置的写入/读取,可以防止劫持控制流的攻击。标记的存储器将元数据与每个存储器位置相关联,并且可用于实现细粒度的存储器存取限制。标记的架构可以实现物理存储器而不是虚拟存储器的标签以维护整个计算设备的单个表。
标记架构是一种硬件架构,其中每个存储器字/块被分成“数据”部分和“标签”部分。数据部分足够大以包含存储器地址,而标签部分包含与存储在数据部分中的数据相关联的元数据,标签部分用于描述如何解释数据部分(即,它如何对数据类型编码)。因此,标记的架构极大地简化了存储器管理器的实现,因为存储器的每个字都是自描述/自识别的。最近有关存储器标记架构的工作可以在以下文献中找到:“J.Woodruff等人,“The CHERICapability model:Revisiting RISC in an age of risk”,载于第41届InternationalSymposium on Computer Architecture,第457-468页,美国,2014年。
现有的软件保护实现了对计算设备的部分保护,并且通常提供有限的软件分析(例如,通过部分地保护敏感数据,并且不提供运行时保护),并且通常在存储器和处理资源方面要求很高。硬件保护是昂贵的,具有有限的演进能力并且通常需要修改处理器架构。
因此,需要用于保护计算设备免受网络攻击,特别是针对基于存储器的攻击的方法和系统。
发明内容
为了解决这些和其他问题,提供了一种包括一个或多个处理器的计算设备,每个处理器包括一个或多个处理单元。一个或多个处理单元被配置为执行至少一个程序,每个程序包括数据和/或指令。对于处理器中的至少一些,计算设备还包括与每个处理器相关联的处理器高速缓存,处理器高速缓存被配置为存取由处理器执行的程序中包括的数据和/或指令。该计算设备包括:
-辅助高速缓存,被配置为对与程序中包括的数据和/或指令相关联的元数据进行存取;
-安全验证单元,被配置为从辅助高速缓存取回与对应于由处理器发送到处理器高速缓存的存储器存取请求的数据和/或指令相关联的元数据的至少一部分。
根据一些实施例,处理器高速缓存和辅助高速缓存可以在不同的硬件实体上实现。
在一些实施例中,辅助高速缓存可以包括在安全验证单元中。
根据一些实施例,处理器高速缓存和辅助高速缓存可以在同一硬件实体上实现。
根据一些实施例,计算设备可以包括存储器单元,辅助高速缓存被配置为从包括在所述存储器单元中的元数据存储器中取回元数据。
根据一些实施例,每个安全验证单元可以与单个处理器相关联。
在其他实施例中,每个安全验证单元可以与一个或多个处理器相关联。
根据一些实施例,元数据存储器、辅助高速缓存和安全验证单元可以在同一硬件实体上实现。
根据一些实施例,计算设备可以包括安全验证单元,其被配置为在时间上连续地或以预定义的时间间隔取回元数据。
根据一些实施例,存储器存取请求可以对应于用于对数据和/或指令进行存取的请求。在这样的实施例中,计算设备可以包括安全验证单元,其被配置为取决于所请求的数据和/或指令的量来取回元数据。
在一些实施例中,安全验证单元还可以被配置为验证由一个或多个处理器执行的程序的正确执行和/或取决于取回的元数据在一个或多个处理器上执行一个或多个控制动作。
根据一些实施例,至少一个处理器可以是被配置为执行一个或多个密码操作的安全密码处理器。
在一些实施例中,可以使用实现以下中的一个或多个的一个或多个加密机制来加密数据和/或指令和/或元数据中的至少一些:基于纠错码的密码算法、基于散列函数的密码算法、基于秘密密钥的密码算法。
还提供了一种用于执行程序的方法,每个程序包括数据和/或指令,该方法包括存储正在执行的执行程序中包括的数据和/或指令以及与所述数据和/或指令相关联的元数据。该方法包括以下步骤:
-存取与程序中包括的数据和/或指令相关联的元数据;以及
-响应于针对数据和/或指令的存储器存取请求,取回与正在执行的程序的数据和/或指令相关联的元数据的至少一部分。
有利地,本发明的各种实施例提供用于保护处理器的非侵入式解决方案,其不需要对中央处理单元核心进行任何修改并且能够防止网络攻击和物理攻击。
有利地,本发明的各种实施例提供有效的硬件实现,其提供针对例如由故障或类锤状攻击引起的代码修改和损坏的细粒度的控制流完整性验证和完全代码完整性保护。此外,所提供的实现是灵活的并且可以适应各种所需的安全级别。
根据本发明的各种实施例使用高速缓冲存储器进行元数据取回能够有利地加速在代码执行期间的元数据提取。
在研究附图和详细描述时,本领域技术人员将清楚本发明的其它优点,这些附图仅用于说明目的。
附图说明
包含在本说明书中并构成其一部分的附图以及上面给出的本发明的一般描述和下面给出的实施例的详细描述示出了本发明的各种实施例。
图1是示出了根据本发明的一些实施例的安全计算设备的结构的框图;
图2是示出了根据本发明的一些实施例的执行计算机程序的方法的流程图。
具体实施方式
本发明的实施例提供用于保护在计算设备中实现的处理器的设备和方法。
根据本发明的各种实施例的安全计算设备、方法和计算机程序产品可以在许多应用中使用的各种工业、信息和消费者设备和系统中实现。
参考图1,示出了系统100中的安全计算设备10的实现方式的示例。
计算设备10可以用于各种应用领域中,包括但不限于数字电子设备、通信(例如数字、有线、无线、蜂窝、光学、卫星、声学和分子通信)、计算网络/系统、数据中心互连、数字数据存储、记录(例如磁和光记录)、数据和信息处理(例如数据库、在线销售系统、金融系统)、定位系统、数字电视和视频广播、身份(例如电子护照系统、银行业务)等。
系统100可以是例如任何信息系统、数据存储和/或处理系统、计算系统和/或通信系统。
计算设备10可以是被编程和/或可编程为执行程序(也称为“计算机程序”)的任何设备、计算机、计算机器或嵌入式系统。示例性计算设备10包括但不限于电气和数字电子设备、计算机(例如台式计算机和膝上型计算机)、平板计算机、路由器、交换机、打印机、移动电话、基站、中继站、卫星、物联网(IoT)设备、机器人、无人机、智能卡、自动柜员机(ATM)、录音机、微波炉等。
在本发明对于通信系统的应用中,计算设备10可以是固定的或移动的,被配置为在有线、无线或基于光纤的通信网络中操作。
此外,计算设备10可以是独立设备,或者可以连接到例如计算机网络系统(例如,小区域或大区域有线或无线接入网络)的外部设备、机器或系统。
根据一些实施例,计算设备10可以是密码设备,其被配置为实现用于确保数据或信号安全、认证、保护和/或隐私的密码机制。
无论计算设备10的应用和类型如何,计算设备10的主要任务可以是由一个或多个处理器执行存储在存储器单元(也称为存储器存储装置)中的计算机程序,所述存储器单元例如非易失性存储器、随机存取存储器(RAM)、闪存、诸如硬盘等大容量存储装置等。
如这里所使用的,计算机程序指的是在由处理器执行时执行特定任务的指令集合(诸如添加、移动数据和分支)。指令的格式和语义由ISA(指令集架构)定义。
执行明确定义的任务的计算机程序的一部分或全部称为算法。计算机程序、库和相关数据的集合称为软件。计算机程序可以沿着功能线分类,例如应用软件或系统软件。
计算机程序通常由计算机程序员以编程语言直接或经由专用工具编写。从程序中,在其人类可读形式的源代码中,编译器可以导出计算设备可以直接执行的机器代码(由指令组成的形式)。可替代地,可以借助于解释器来执行计算机程序。
由处理器执行以执行指令的基本操作过程被称为“指令周期”(也称为“取指-解码-执行周期”)。该过程定义处理器根据该方式从存储器单元取回指令和/或确定由指令指示的动作和/或执行那些动作的方式。
计算设备10可以基于不同的指令集而具有不同的周期。基本上,指令周期可以包括以下三个步骤:
1.取得指令:从存储器单元中取得指令;
2.解码指令:解释/解码所取得的指令;
3.执行指令:执行指令所需的操作。
存储器单元被配置为存储程序以及数据。因此,程序和数据可以从存储器单元转移到可以执行它们的处理器。计算机程序可以使用存储器地址来执行机器代码,在存储器单元中存储和取回数据。存储器存取请求可以对应于指令请求或数据请求。
如图1所示,计算设备10可以包括至少一个处理器11(也称为“中央处理单元(CPU)”)和存储器单元15(以下也称为“主存储器”),处理器11被配置为使用一个或多个处理单元113(也称为“核心”)执行存储在存储器单元15中的计算机程序。计算设备10可以包括存储器总线17,其被配置为在存储器单元15和处理器11之间直接或间接(例如经由高速缓冲存储器)路由数据和/或指令和/或存储器地址。
在一些实施例中,处理器11可以被配置为顺序地执行指令周期,即,每个指令在下一个指令被启动之前处理。
可替代地,在一些实施例中,处理器11可以被配置为同时或并行地执行指令周期,指令周期例如使用指令流水线来调度。
根据一些实施例,存储器单元15可以包括:
-数据存储器151,被配置为存储数据;
-指令存储器153,被配置为存储计算机程序的指令,以及
-元数据存储器155,被配置为存储与每个存储器位置相关联的元数据(对应于数据或指令存储器位置)。更具体地,元数据存储器155可以被配置为存储与分别存储在数据存储器151和指令存储器153中的数据和指令的每个存储位置相关联的元数据。
根据一些实施例,元数据存储器155可以在物理上独立于数据存储器151和指令存储器153,元数据存储器155然后不可由处理器11直接或间接(例如经由高速缓冲存储器)存取。
为了加速程序的处理并降低从存储器单元15存取数据的平均成本(时间或能量),可以使用更小和更快的高速缓冲存储器。
因此,计算设备10可以包括处理器11可存取的更靠近处理器核心113的处理器高速缓存117,处理器高速缓存117被配置为存取将由处理器11执行的程序中包括的数据和/或指令。处理器高速缓存117可以存储来自在存储器单元15中频繁请求的位置的数据和/或指令的副本,使得它们在需要时立即可供处理器11使用。特别地,存储在处理器高速缓存117中的数据可以是先前计算的结果,或者是存储在别处(例如,在存储器单元15中)的数据的副本。
在一些实施例中,处理器高速缓存117以及因此处理器11可以存取存储在存储器单元15中的数据和/或指令,但是不可以存取与可存取的数据和/或指令相关联的元数据。参考图1,处理器高速缓存117(因此处理器11)可以被配置为存取数据存储器151和指令存储器153但不存取元数据存储器155。
本发明的实施例可以提供用于控制/监视/保护处理器11执行的程序的设备和方法。
更具体地,本发明的实施例可以提供用于响应于由处理器11传送的存储器存取请求来控制移动(分别取出)到(分别由)处理器11的数据和/或指令的设备和方法。存储器存取请求对应于数据请求和/或指令请求。
根据本发明的一些实施例,可以通过控制与处理器11请求的数据和/或指令相关联的元数据来执行处理器11对数据和/或指令的存取的监视。
在一些实施例中,计算设备10可以包括:
-存储器单元131(也称为“辅助高速缓存”或“安全验证单元高速缓存”),被配置为存取与由一个或多个处理器11的一个或多个处理单元113执行的程序中包括的数据和/或指令相关联的元数据,以及
-安全验证单元13,被配置为从辅助高速缓存131并且响应于由至少一个处理器11发送到处理器高速缓存117的存储器存取请求来取回;与对应于所请求的存储器存取的数据和/或指令相关联的元数据的至少一部分。
在一个实施例中,处理器11和安全验证单元13可以被设计(或布置)为同一制品的一部分。因此,安全验证单元13可以作为附加或外部硬件连接或可连接到处理器11。安全验证单元13和处理器11之间的连接可以是可逆的或不可逆的;因此,在尝试将其与处理器11分离的情况下,安全验证单元13和/或存储器单元131可以被自动销毁。
根据一些实施例,计算设备10可以是多处理器,包括至少两个处理器11。
在一些实施例中,处理器11可以是单核处理器,包括单个处理单元113。
在其他实施例中,处理器11可以是多核处理器,包括多个处理单元113,处理单元113被配置为在给定时间执行任务(例如在嵌入式系统、数字信号处理或图形处理单元中使用)。任务可以是由操作系统调度的软件进程或/和线程。
在这样的实施例中,处理器11可以是单个计算组件,其被配置为同时在单独的核上运行多个指令,从而提高了适合于并行计算的程序执行的总体速度。不同的核113可以集成到单个集成电路管芯(也称为芯片多处理器)上,或集成到单个芯片封装中的多个管芯上。
此外,多核处理器11中的核113可以共享或不共享存储器单元(例如高速缓冲存储器)。在一些实施例中,核113可以被配置为实现消息传递或共享存储器核间通信方法。
在计算设备10是多处理器的实施例中,计算设备10可以包括一个或多个单核处理器和一个或多个多核处理器。
此外,在计算设备10包括多个处理器11的一些实施例中,处理器11可以集中在空间中或分布在空间中,所述空间例如服务器的集群和服务器群。
根据一些实施例,存储器单元131可以被配置为预先存储与处理器11请求的存储器位置相关联的元数据的至少一部分。可替代地,存储器单元131可以从存储器单元15(例如来自主存储器)的元数据存储器155中取回所需的元数据。更具体地,存储器单元131可以被配置为与程序执行并行地取得所需元数据,并将取回的元数据提供给安全验证单元13。
在一些实施例中,存储器单元131和处理器高速缓存117可以在同一硬件实体上实现。
在一个实施例中,存储器单元131可以是物理上独立于处理器高速缓存117的高速缓冲存储器(也称为“安全验证单元高速缓存”)。换句话说,处理器高速缓存117和安全验证单元高速缓存131可以在芯片上单独实现。
在特定实施例中,存储器单元131可以在安全验证单元13内实现。
根据计算设备10包括多个处理器的一些实施例,计算设备10可以包括与每个处理器11相关联的安全验证单元13,即计算设备10可以包括与处理器11一样多的安全验证单元13。然后,每个安全验证单元13可以被配置为监视/控制给定单个处理器执行程序指令。因此,每个安全验证单元13可以被配置为从至少一个安全验证单元高速缓存131中取回与由单个处理器11(安全验证单元13所关联的处理器)执行的程序中包括的数据和/或指令相关联的元数据。
可替代地,在一些实施例中,多处理器计算设备10可以包括与处理器中的至少一些相关联的单个安全验证单元13。换句话说,计算设备10可以包括两个或更多个处理器11和安全验证单元13,安全验证单元13被配置为从安全验证单元高速缓存131中取回与由两个或更多个处理器11中的至少一些执行的数据/指令相关联的元数据的至少一部分。在这样的实施例中,安全验证单元13可以被配置为并行地或者通过在处理器11中的至少一些之间交替(例如,通过周期性地在处理器之间交替)来控制由各种处理器11执行的程序。
在元数据存储器155物理地在存储器单元15外部以分布式方式实现的一些实施例中,安全验证单元13、存储器单元131和元数据存储器155可以在芯片上的相同硬件实体上实现。
根据一些实施例,可以激活安全验证单元13以控制处理器11的安全性,例如连续地或周期性地或者当触发特定的预定义事件时。在这样的实施例中,由安全验证单元13执行的元数据取回的频率和/或持续时间可以是时间触发的和/或事件触发的和/或取决于所请求的数据和/或指令的量。
在一些实施例中,计算设备10可以包括安全验证单元13,其被配置为连续地(即,响应于由处理器11发送的每个存储器存取请求),或周期性地(例如,以预定义的时间间隔,例如可以是固定的、循环的或者随机的)取回与由处理器11执行的数据和/或指令相关联的元数据。在这样的实施例中,处理器11的时钟频率可以用作用于确定元数据取回的频率的基础。
在一些实施例中,计算设备10可以包括安全验证单元13,其被配置为取决于所请求的数据或指令的量来取回与由处理器11执行的数据和/或指令相关联的元数据。例如,安全验证单元13可以被配置为应预定义的存储器位置块的每个请求(例如,应也被称为“基本块”的指令块的每个请求)或者在超过数据/指令量的预定义阈值的情况下执行元数据取回。
在计算设备10包括两个或更多个处理器或两个或更多个核的一些实施例中,安全验证单元13可以被配置为取回与由两个或更多个处理器或两个或更多个核并行或顺序地执行的数据和/或指令相关联的元数据,例如通过在两个或更多个处理器或两个或更多个核中的至少一些之间交替。交替可以例如周期性地执行或者取决于所请求的数据和/或指令的量来执行。
根据一些实施例,计算设备10可以包括安全验证单元13,其被配置为在特定/预定义指令的存储器存取请求时取回与由处理器11执行的数据和/或指令相关联的元数据。
在一些实施例中,元数据取回的持续时间和/或频率可以是可配置的,以满足所需的性能/安全权衡。
在一些实施例中,元数据取回可以通过前述特征中的至少一些的组合来执行。
根据一些实施例,安全验证单元13还可以被配置为验证由一个或多个处理器11执行的程序的正确执行和/或取决于取回的元数据的内容和/或量在一个或多个处理器11上执行一个或多个控制动作。在一些实施例中,可以在包括被动动作(诸如什么都不做)和/或主动动作(校正和/或先发制人)的组中选择控制动作,主动动作包括:
-在检测到计算机程序的执行异常时(例如,在取回预定义/特定元数据时或在取回与预定义/特定数据和/或指令相关联的元数据时)和/或在检测到一个或多个处理器11上的硬件和/或软件攻击时触发安全警;
-停止(永久或暂时)、重新引导、重启一个或多个处理器11的一个或多个部分和/或停止在一个或多个处理器11处执行一个或多个指令/程序,以及
-在元数据取回取决于所请求的数据和/或指令的量的实施例中,修改用于配置元数据取回的频率的数据和/或指令量阈值中的一个或多个。
根据一些实施例,计算设备10可以包括至少一个虚拟处理器11,虚拟处理器是分配给虚拟机的物理中央处理单元(例如,在云计算应用、云服务器等中)。
根据一些实施例,计算设备10可以包括安全密码处理器11,其专用于执行密码操作以保护存储器中的敏感数据免受硬件和/或软件攻击。密码处理器11可以被配置为执行用于加密、完整性和重放保护的密码机制。有利地,存储器加密使得能够保护存储器驻留数据的机密性,完整性保护使得能够防止攻击者对存储在存储器中的加密数据进行隐藏修改,并且重放保护使得能够消除加密数据的未检测到的时间替换。示例性密码处理器包括用于例如金融交易、受限存取、电信、军事应用、安全通信设备、自动柜员机、电视机顶盒等的智能卡。
根据一些实施例,存储器加密可用于保护不同存储单元之间(例如,存储器单元15和处理器高速缓存117之间和/或处理器高速缓存117与处理器11之间)传输的数据和/或指令,和/或保护与数据和/或指令相关联的元数据。在这样的实施例中,可以对数据和/或指令和/或元数据加密。
存储器加密可以使用一个或多个加密机制,其实现基于纠错码(例如汉明码、BCH码)的密码算法、基于散列函数的密码算法和基于秘密密钥的密码算法(使用对称或非对称密钥)中的一个或多个。可以在包括DES、3DES、AES和RC4的组中选择对称加密算法。
可以在包括RSA和ECDSA的组中选择非对称加密算法。
在存储器加密使用一个或多个秘密密钥的一些实施例中,秘密密钥可以预先存储在计算设备10中(以集中式或分布式方式存储在例如存储器单元15中)或者可以通过随机数发生器和/或通过物理不可克隆函数(PUF)生成(在线或离线)。在一些实施例中,可以在包括伪随机数发生器和真随机数发生器的组中选择随机数发生器。
在一些实施例中,可以在重新引导时和/或在关闭时销毁秘密密钥,并且在处理器11的初始化时初始化(以确定性或随机方式)。
在这样的实施例中,可以基于应用和/或定义的用户所需的性能、存储器和安全级别之间的权衡来选择加密和解密算法。
根据一些实施例,与数据和/或指令相关联的元数据可以指示数据和/或指令的统计使用(例如,时间和频率)。系统可以使用这种类型的元数据来根据数据和/或指令迁移策略确定哪些数据可以由处理器高速缓存117从存储器单元15加载和/或哪些元数据可以由安全验证单元高速缓存131从存储器单元15,更具体地从元数据存储器155预先加载。
在一些实施例中,元数据可以包括确保控制流完整性验证所需的信息。特别地,存储的信息可以取决于所需的安全级别。例如,在需要帧间和帧内过程安全性的实施例中,与每个指令块相关联的元数据可以包括在所述指令块之后允许的目的地地址。
根据一些实施例,每个指令块可以与元数据块相关联,与指令相关联的元数据存储在块中。
有利地,与指令块相关联的元数据块可以具有相同的大小和/或可以以与所述指令块相同的顺序存储,使得能够快速取回与特定指令块相关联的元数据以及CPU指令高速缓存1173和安全验证单元高速缓存131之间的同步。
根据一些实施例,存储器单元131可以被配置为在给定所述基本块的地址的情况下存取与每个基本块(即,指令块)相关联的元数据。更具体地,对于位于地址@BB的给定基本块,存储器单元131可以被配置为从存储器单元15中(更确切地说,在元数据存储器155中)的位置@Meta=@BB+Offset取得元数据,Offset表示给定的偏移值。因此,指令块的偏移值和存储器地址(物理或虚拟)的认知可足以加载与每个所请求的存储器位置相关联的元数据,元数据的地址的计算是偏移量和处理器11取得的指令地址的相加。
在一些实施例中,给定的偏移值对于每个指令块(对于一个程序执行)可以是相同的。
在一些实施例中,给定的偏移值对于每个程序执行可以是不同的。
根据一些实施例,可以在更新与其相关联的数据和/或指令时更新元数据。
根据使用标记存储器的一些实施例,与数据相关联的元数据可以包括用于定义/描述/确定所述数据的类型的标记位。
根据一些实施例,存储器单元15可以对应于计算设备10的主存储器。
根据一些实施例,可以在包括易失性存储器、非易失性存储器、易失性和非易失性存储器单元的组合的组中选择存储器单元15。
在一些实施例中,易失性存储器可以使用RAM、DRAM(例如,DDR、SDRAM)SRAM、T-RAM和Z-RAM中的一个或多个。就改进读/写性能而言,易失性存储器通常是有利的,与非易失性可写存储器相比具有更低的成本/占用面积。
在一些实施例中,非易失性存储器可以使用掩模ROM、PROM、EPROM、EEPROM、NVRAM、闪存固态存储器、nvSRAM、FeRAM(铁电RAM)、MRAM(磁RAM)、PRAM中的一个或多个。就重启和/或电源循环时提供对先前存储的信息的存取而言,非易失性存储器通常是有利的。
根据一些实施例,存储器位置可以对应于物理地址。
在一些实施例中,存储器位置可以对应于虚拟/逻辑地址,计算机程序不知道物理地址。在这样的实施例中,计算设备10可以包括存储器管理单元(图1中未示出),其被配置为存储用于虚拟存储器管理的所有存储器引用。存储器管理单元可以被配置为执行虚拟存储器地址到物理地址的转换。存储器管理单元可以被配置为同时处理存储器保护、高速缓存控制和总线仲裁。此外,存储器管理单元可以实现为处理器11的一部分或者实现为处理器11外部的单独的集成电路。
处理器高速缓存117可以被配置为取决于在计算系统级别定义的数据迁移策略来从存储器单元15加载数据。可以设置数据迁移策略,使得减少数据迁移开销(例如带宽、能量、计算处理及其组合)。因此,可以预先定制数据量以满足处理器、应用或其组合的需要。
根据一些实施例,数据可以以固定大小的块存储在存储器中。因此,存储器单元15和高速缓冲存储器(例如处理器高速缓存117)可以被分成相同长度/大小的页/行/块。可替代地,存储器单元15和高速缓冲存储器可以被分成具有不同大小的块。
根据一些实施例,处理器高速缓存117可以被配置为在高速缓存行块(也称为高速缓存块)中从/向存储器单元15取回/发送数据给存储器单元15。当高速缓存行从存储器单元15复制到处理器高速缓存117中时,创建高速缓存条目。高速缓存条目将包括复制的数据以及请求的存储器位置。
当处理器11需要读取或写入存储器单元15中的位置时(例如在主存储器中),处理器可首先检查处理器高速缓存117中的相对应条目。处理器高速缓存117可检查可能包含该地址的任何缓存行中的所请求存储器位置的内容。如果处理器11发现存储器位置在处理器高速缓存117中,则发生高速缓存命中。然而,如果处理器未在高速缓存117中找到存储器位置,则发生高速缓存未命中。在高速缓存命中的情况下,处理器11可以立即在高速缓存行中读取或写入数据。对于高速缓存未命中,处理器高速缓存117可以从存储器单元15分配新条目和复制数据,然后根据处理器高速缓存117的内容实现该请求。
根据一些实施例,处理器高速缓存117可以包括不同的独立高速缓存,包括数据高速缓存1171和/或指令高速缓存1171。
在一些实施例中,处理器高速缓存117可以被组织为高速缓存级别的层次结构。
根据一些实施例,处理器高速缓存117可以位于处理器11芯片(内部高速缓存)内。
在图1中描绘的其他实施例中,处理器高速缓存117可以位于处理器11芯片外部(外部高速缓存)。
此外,根据一些实施例,可以使用标记的高速缓冲存储器。因此,存储在处理器高速缓存117中的高速缓存行可以被分成包含从存储器单元15取出的数据的数据部分和可以包括从存储器单元15取出的实际数据的地址的标记部分。高速缓存标记可以使用物理地址或虚拟地址。
如图1所示,在一些实施例中,处理器11可以包括:
-处理单元113,其被配置为执行程序指令;处理单元113可以包括:算术和逻辑单元1133(ALU),被配置为执行算术和逻辑运算;以及处理器寄存器1131,被配置为向ALU1133提供操作数并存储ALU操作的结果,以及
-控制单元115,被配置为解码程序指令并通过引导ALU 1133、寄存器1131和计算设备10的其他组件(例如外围设备19)的协调操作来编排/协调指令的提取(从存储器单元或存储设备)和执行。
处理器寄存器1131可以形成小而快速的存储器单元(与较慢的RAM主存储器不同),其用于通过提供对常用值的快速存取来加速程序的执行。处理器寄存器1131尤其可以包括特定的内部寄存器-寄存器,这些寄存器不能被指令存取并且仅在内部用于处理器操作,包括:
-程序计数器,也称为“指令寄存器”(图1中未示出):程序计数器可以指示处理器11在其指令序列中的位置。程序计数器可以被配置为取决于特定系统保持正在执行的指令的地址或要执行的下一个指令的地址;
-存储器地址寄存器(图1中未示出),被配置为存储将从其取得数据到处理器11的存储器地址(即,要从存储器单元加载到处理器11的数据的存储器位置)或数据将被发送以用于存储的地址(即,将存储数据的存储器位置),以及
-存储器数据寄存器(图1中未示出),被配置为存储从存储器单元取出/取回的(从处理器高速缓存117或从存储器单元15取回)并准备好处理的数据或等待存储在其他存储器单元(例如在主存储器15中)中的数据。
存储器地址寄存器和存储器数据寄存器可以与从其他存储器单元(例如从主存储器15)取得信息有关。当从存储器单元读取时,其存储器地址由存储器地址寄存器指示的所请求的数据可以被馈送到存储器数据寄存器,然后由处理器11使用。当写入存储器时,处理器11可以将数据从存储器数据寄存器写入到其地址存储在存储器地址寄存器中的存储器位置。
根据一些实施例,存储器总线17可以被配置为在存储器单元15和存储器单元(安全验证单元高速缓存)131之间路由元数据。
根据一些实施例,计算设备10还可以包括内部和/或外部外围设备19,其包括输入设备、输出设备和输入/输出。
许多现代设备,例如数字手表、智能手机和平板计算机,具有允许它们被台式计算机用作外围设备的接口,尽管它们不以与其他外围设备相同的方式依赖于主机。
输入设备可以被配置为与用户交互或将数据从用户发送到计算机。示例性输入设备包括键盘、计算机鼠标、图形输入板、条形码读取器、图像扫描仪、麦克风、网络摄像头、游戏控制器、光笔和数码相机。
输出设备可以被配置为从计算机将输出提供给用户。示例性输出设备包括计算机显示器、打印机、投影仪、计算机扬声器、网络摄像头。
输入/输出设备可以配置为执行两种功能。示例性输入/输出设备包括触摸屏。
本发明的实施例还提供了一种用于安全地执行由一个或多个处理器的一个或多个核执行的程序的方法,该程序包括数据和/或指令。该方法包括独立地存储包括在要执行的程序中的数据和/或指令以及与数据和/或指令相关联的元数据,即数据和/或指令可以存储在独立于包含与该数据和/或指令相关联的元数据的存储单元的存储单元中。
图2是描绘了根据一些实施例的用于安全执行计算机程序的方法的流程图。
可以执行步骤201以开始执行一个或多个程序,执行程序包括执行一个或多个指令以及使用数据来执行由指令指示的动作。
在一些实施例中,包括在计算机程序中的指令的执行可以遵循取指-解码-执行指令周期。因此,指令的执行可以包括用于从存储器/存储单元取得指令的步骤,用于解码指令的步骤,以及用于执行指令的步骤。
在一些实施例中,可以顺序地执行指令周期。
在其他实施例中,指令周期可以同时或并行执行。
取得数据和/或指令可以使用存储器地址,该存储器地址确定存储单元中的数据和指令的位置。存储器存取/位置请求可以对应于指令请求或数据请求。
本发明的各种实施例通过控制与在执行计算机程序期间请求的数据和/或指令相关联的元数据,来提供对计算机程序中包括的数据和/或指令的安全控制/监视。
在步骤203,可以存取与正在执行的程序中包括的数据和/或指令相关联的元数据。
在步骤205,响应于存储器存取请求,可以取回与对应于在执行程序期间所请求的存储器存取的数据和/或指令相关联的元数据的至少一部分。
根据一些实施例,在步骤205处执行的元数据取回的频率和/或持续时间可以是时间触发的和/或事件触发的和/或取决于所请求的数据和/或指令的量。
在元数据取回是时间触发的实施例中,可以连续地(即,响应于每个存储器存取请求)或周期性地(例如以预定义的时间间隔)执行步骤205。
在元数据取回是事件触发的实施例中,可以响应于对应于特定/预定义指令的存储器存取请求来执行步骤205。
在元数据取回取决于所请求的数据和/或指令的量的实施例中,可以应存储器位置的预定义的块的每个请求或在超过数据和/或指令量的预定义阈值时执行步骤205。
在一些实施例中,元数据取回的持续时间和/或频率可以是可配置的,满足所需的性能/安全权衡。
在一些实施例中,元数据取回可以通过前述方面的组合来执行。
在步骤207,可以取决于取回的元数据的内容和/或量来执行一个或多个控制动作。
根据一些实施例,可以在包括被动动作(诸如什么都不做)和/或主动动作(矫正和/或先发制人)的组中选择控制动作,主动动作包括:
-在检测到计算机程序的执行异常时(例如,在取回预定义/特定元数据时或在取回与预定义/特定数据和/或指令相关联的元数据时)和/或在检测到硬件和/或软件攻击时触发安全警报。
-停止(永久或暂时)一个或多个指令/程序的执行,以及
-在元数据取回取决于所请求的数据和/或指令的量的实施例中,修改用于配置元数据取回的频率和/或持续时间的数据和/或指令量阈值中的一个或多个。
根据一些实施例,存储器加密可用于保护在不同存储单元之间存储和传送的数据和/或指令和/或元数据。
根据一些实施例,存储器加密可以使用实现以下中的一个或多个的一个或多个加密机制:基于纠错码(例如汉明码、BCH码)的密码算法、基于散列函数的密码算法和基于秘密密钥的密码算法(使用对称或非对称密钥)。可以在包括DES、3DES、AES和RC4的组中选择对称加密算法。可以在包括RSA和ECDSA的组中选择非对称加密算法。
在一些实施例中,其中存储器加密使用一个或多个秘密密钥,可以使用随机数发生器和/或通过物理不可克隆功能预先存储或者可以生成(在线或离线)秘密密钥。在一些实施例中,可以在包括伪随机数发生器和真随机数发生器的组中选择随机数发生器。
在一些实施例中,可以基于用户所需的性能、存储器和安全级别之间的权衡来选择加密和解密算法。
根据一些实施例,与数据和/或指令相关联的元数据可以指示数据和/或指令的统计使用(例如,时间和频率)。
根据一些实施例,可以在更新与其相关联的数据和/或指令时更新元数据。
根据使用标记的存储器的一些实施例,与数据相关联的元数据可以包括用于定义/描述/确定所述数据的类型的标记位。
根据一些实施例,存储器地址可以对应于物理地址。
在其他实施例中,存储器地址可以对应于虚拟地址。因此,步骤203可以包括将虚拟存储器地址转换为物理地址的步骤。
本文描述的方法可以通过计算机程序指令来实现,所述计算机程序指令提供给任何类型的计算机的处理器,以产生具有处理器的机器,该处理器执行指令以实现这里指定的功能/动作。这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指示计算机以特定方式工作。为此,可以将计算机程序指令加载到计算机上以使得执行一系列操作步骤,并且从而产生计算机实现的过程,使得执行的指令提供用于实现本文指定的功能的过程。
虽然已经通过各种示例的描述说明了本发明的实施例,并且虽然已经相当详细地描述了这些实施例,但是申请人的意图不是将所附权利要求的范围限定或以任何方式限制于这些实施例。在适当时,可以有利地组合这些实施例中的一些。本领域技术人员容易想到其他优点和修改。因此,本发明在其更广泛的方面不限于所示出和描述的具体细节、代表性方法和说明性示例。

Claims (12)

1.一种计算设备(10),包括一个或多个处理器(11),每个处理器包括一个或多个处理单元(113),所述一个或多个处理单元(113)被配置为执行至少一个程序,所述至少一个程序中的每个程序包括指令,所述计算设备(10)还包括用于所述处理器中的至少一些的、与每个处理器(11)相关联的处理器高速缓存(117),
所述处理器高速缓存(117)被配置为存取由所述处理器(11)执行的程序中包括的数据和/或指令,其中,所述计算设备(10)包括:
指令存储器,其被配置为存储计算机程序的指令,所述处理器高速缓存被配置为存取所述指令存储器中包括的指令;
元数据存储器,其被配置为存储与存储在所述指令存储器中的指令相关联的元数据,所述元数据包括确保控制流完整性验证所需要的信息;
-至少一个安全验证单元(13),其被配置为,在所述至少一个程序的执行期间,响应于由处理器发送到所述处理器高速缓存的存储器存取请求,从辅助高速缓存(131)取回与指令相关联的元数据的至少一部分,所述存储器存取请求与用于存取所述指令的请求相对应,所述至少一个安全验证单元被配置为取决于所请求的指令来取回所述元数据,所述安全验证单元被配置为验证对由所述一个或多个处理器执行的所述至少一个程序的执行和/或取决于所取回的元数据的内容和/或量来对所述一个或多个处理器执行一个或多个控制动作。
2.如权利要求1所述的计算设备(10),所述辅助高速缓存被配置为在所述至少一个程序的执行期间存取与所述至少一个程序中包括的指令相关联的元数据,并且将取回的元数据提供给所述安全验证单元。
3.如权利要求2所述的计算设备(10),其中,所述处理器高速缓存(117)和所述辅助高速缓存(131)在不同的硬件实体上实现。
4.如权利要求2或3所述的计算设备(10),其中,所述辅助高速缓存(131)包括在所述安全验证单元(13)中。
5.如权利要求2所述的计算设备(10),其中,所述处理器高速缓存(117)和所述辅助高速缓存(131)在同一硬件实体上实现。
6.如权利要求1所述的计算设备(10),其中,每个安全验证单元(13)与单个处理器相关联。
7.如权利要求1所述的计算设备(10),其中,每个安全验证单元(13)与两个或更多个处理器(11)相关联。
8.如权利要求2所述的计算设备(10),其中,所述元数据存储器(155)、所述辅助高速缓存(131)和所述安全验证单元(13)在同一硬件实体上实现。
9.如权利要求1所述的计算设备(10),其中,所述计算设备(10)包括安全验证单元(13),其被配置为在时间上连续地或以预定义的时间间隔取回所述元数据。
10.如权利要求1所述的计算设备(10),其中,至少一个处理器(11)是被配置为执行一个或多个密码操作的安全密码处理器。
11.如权利要求1所述的计算设备(10),其中,所述指令和/或所述元数据中的至少一些是使用实现以下中的一个或多个的一个或多个加密机制来进行加密的:基于纠错码的密码算法、基于散列函数的密码算法、基于秘密密钥的密码算法。
12.一种用于在包括一个或多个处理器的计算设备中执行至少一个程序的方法,所述至少一个程序中的每个程序包括程序的指令,所述程序被存储在所述计算设备的指令存储器中,其中,所述方法包括将与所述指令相关联的元数据存储在元数据存储器中,所述元数据包括确保控制流完整性验证所需要的信息,其中,所述方法包括以下步骤:
-在所述至少一个程序的执行期间,存取(203)与所述至少一个程序中包括的指令相关联的元数据;以及
-在所述至少一个程序的执行期间,响应于针对指令的存储器存取请求,从辅助高速缓存中取回(205)与正在被执行的所述至少一个程序的指令相关联的元数据的至少一部分,所述存储器存取请求与用于存取所述指令的请求相对应,取回所述元数据的至少一部分的至少一个步骤是取决于所请求的指令的,并且包括验证对由所述一个或多个处理器执行的所述至少一个程序的执行和/或取决于所取回的元数据的内容和/或量来对所述一个或多个处理器执行一个或多个控制动作。
CN201811121820.0A 2017-09-26 2018-09-26 用于安全处理器的设备和方法 Active CN109558372B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17306273.8 2017-09-26
EP17306273.8A EP3460709B1 (en) 2017-09-26 2017-09-26 Devices and methods for secured processors

Publications (2)

Publication Number Publication Date
CN109558372A CN109558372A (zh) 2019-04-02
CN109558372B true CN109558372B (zh) 2023-05-26

Family

ID=60574491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811121820.0A Active CN109558372B (zh) 2017-09-26 2018-09-26 用于安全处理器的设备和方法

Country Status (3)

Country Link
US (1) US11226906B2 (zh)
EP (1) EP3460709B1 (zh)
CN (1) CN109558372B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10185584B2 (en) * 2013-08-20 2019-01-22 Teleputers, Llc System and method for self-protecting data
EP3739396A1 (de) * 2019-05-15 2020-11-18 Siemens Aktiengesellschaft System zur bewegungsführung eines manipulators aufweisend einen ersten und einen zweiten prozessor
US11868273B2 (en) * 2019-06-29 2024-01-09 Intel Corporation Memory protection with hidden inline metadata to indicate data type
CN111159097A (zh) * 2019-12-09 2020-05-15 中山大学 一种片上访存保护系统及方法
CN112287408B (zh) * 2020-12-28 2021-03-30 九州华兴集成电路设计(北京)有限公司 Rsa单核数据系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8181035B1 (en) * 2011-06-22 2012-05-15 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
EP2860660A1 (fr) * 2013-10-11 2015-04-15 Nagravision S.A. Système et méthode de chargement sécurisé de données dans une mémoire cache associée à un processeur sécurisé

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678707B1 (en) * 2000-10-30 2004-01-13 Hewlett-Packard Development Company, L.P. Generation of cryptographically strong random numbers using MISRs
US7734932B2 (en) * 2003-11-10 2010-06-08 Broadcom Corporation System and method for securing executable code
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US7657756B2 (en) * 2004-10-08 2010-02-02 International Business Machines Corporaiton Secure memory caching structures for data, integrity and version values
US8225297B2 (en) * 2005-12-07 2012-07-17 Microsoft Corporation Cache metadata identifiers for isolation and sharing
US8700919B2 (en) * 2010-05-25 2014-04-15 Via Technologies, Inc. Switch key instruction in a microprocessor that fetches and decrypts encrypted instructions
US20120331308A1 (en) * 2011-06-22 2012-12-27 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
EP2756438B1 (en) * 2011-09-13 2020-11-11 Facebook, Inc. Software cryptoprocessor
US9268652B1 (en) * 2012-10-31 2016-02-23 Amazon Technologies, Inc. Cached volumes at storage gateways
US9280490B2 (en) * 2013-04-17 2016-03-08 Laurence H. Cooke Secure computing
US10108557B2 (en) * 2015-06-25 2018-10-23 Intel Corporation Technologies for memory confidentiality, integrity, and replay protection
US9904805B2 (en) * 2015-09-23 2018-02-27 Intel Corporation Cryptographic cache lines for a trusted execution environment
US9612967B1 (en) * 2015-09-25 2017-04-04 Dell Products, L.P. Cache load balancing by reclaimable block migration
US10235176B2 (en) * 2015-12-17 2019-03-19 The Charles Stark Draper Laboratory, Inc. Techniques for metadata processing
US10528486B2 (en) * 2017-06-30 2020-01-07 Intel Corporation Techniques for crypto-aware cache partitioning

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8181035B1 (en) * 2011-06-22 2012-05-15 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
EP2860660A1 (fr) * 2013-10-11 2015-04-15 Nagravision S.A. Système et méthode de chargement sécurisé de données dans une mémoire cache associée à un processeur sécurisé

Also Published As

Publication number Publication date
EP3460709B1 (en) 2022-02-09
US20190095355A1 (en) 2019-03-28
CN109558372A (zh) 2019-04-02
EP3460709A1 (en) 2019-03-27
US11226906B2 (en) 2022-01-18

Similar Documents

Publication Publication Date Title
CN109558372B (zh) 用于安全处理器的设备和方法
EP3757850B1 (en) Low memory overhead heap management for memory tagging
US11784786B2 (en) Mitigating security vulnerabilities with memory allocation markers in cryptographic computing systems
US11777705B2 (en) Techniques for preventing memory timing attacks
TWI697805B (zh) 載入和虛擬化密碼金鑰
US20200257827A1 (en) Memory write for ownership access in a core
US20120084573A1 (en) Security protection for memory content of processor main memory
KR20170033891A (ko) 보호 영역에서의 메모리 초기화
CN112639778A (zh) 指针认证及指针认证方案之间的动态切换
US10565130B2 (en) Technologies for a memory encryption engine for multiple processor usages
WO2011009738A1 (en) Encrypting data in volatile memory
CN106716435B (zh) 设备与安全处理环境之间的接口
US20220121447A1 (en) Hardening cpu predictors with cryptographic computing context information
US11641272B2 (en) Seamless one-way access to protected memory using accessor key identifier
EP4156008A1 (en) Seamless access to trusted domain protected memory by virtual machine manager using transformer key identifier
US20140344947A1 (en) Method and apparatus for handling storage of context information
US20220100907A1 (en) Cryptographic computing with context information for transient side channel security
US11604651B2 (en) Methods and devices for hardware characterization of computing devices
CN116157795A (zh) 分层保护域中的安全性增强
US20240054071A1 (en) Hardware mechanism to extend mktme protections to sgx data outside epc
US11539503B2 (en) Container management for cryptanalysis attack protection
d'Auriol et al. Embedded Processor Security.

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