CN118228248A - 维护共享计算环境中的数据保密性 - Google Patents
维护共享计算环境中的数据保密性 Download PDFInfo
- Publication number
- CN118228248A CN118228248A CN202311722901.7A CN202311722901A CN118228248A CN 118228248 A CN118228248 A CN 118228248A CN 202311722901 A CN202311722901 A CN 202311722901A CN 118228248 A CN118228248 A CN 118228248A
- Authority
- CN
- China
- Prior art keywords
- memory
- execution context
- memory region
- identifier
- current execution
- 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
- 230000015654 memory Effects 0.000 claims abstract description 205
- 238000000034 method Methods 0.000 claims abstract description 81
- 238000012545 processing Methods 0.000 claims abstract description 81
- 230000004044 response Effects 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims description 42
- 238000010926 purge Methods 0.000 abstract description 7
- 230000002085 persistent effect Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 238000013500 data storage Methods 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000004374 forensic analysis Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了维护共享计算环境中的数据保密性,本文公开的技术使得能够在上下文切换时选择性地清除存储器区域。示例方法包括以下操作:接收引用存储器区域的存储器访问请求;确定与该存储器区域相关联的当前执行上下文的标识符;确定由与该存储器区域相关联的元数据指定的先前执行上下文的标识符;响应于确定当前执行上下文的标识符与先前执行上下文的标识符不匹配,更新与该存储器区域相关联的元数据以存储当前执行上下文的标识符;清除该存储器区域的至少一部分;以及处理关于该存储器区域的存储器访问请求。
Description
技术领域
本公开总体上涉及共享计算环境,并且更具体地涉及维护共享计算环境中的数据保密性。
背景技术
各个共享计算环境(例如,虚拟化执行环境)可以用于运行彼此隔离以及与相应主机环境隔离的保密计算工作负载。
附图说明
本公开是通过举例而非限制的方式示出的,并且当结合附图考虑时可以参考以下详细描述来更全面地理解,在附图中:
图1描绘了根据本公开的一个或更多个方面操作的示例计算环境的高级架构;
图2描绘了图1的示例计算环境的一个或更多个组件的示例高级架构;
图3示意性地示出了根据本公开的一个或更多个方面的由本公开的系统和方法实现的利用选择性清除存储器区域的动态重新分配;
图4是根据本公开的一个或更多个方面的选择性地清除重新分配的存储器区域的方法的流程图;以及
图5描绘了根据本公开的示例操作的示例计算系统的框图。
具体实施方式
受信执行环境(TEE)被广泛用于通过将保密计算(CC)工作负载彼此隔离并且与托管环境隔离来托管它们。在说明性示例中,TEE可以由软件防护扩展(SGX)安全enclave实现,所述SGX安全enclave是加密存储器的私有区域,所述私有区域的内容将仅被解密以供在enclave内运行的进程访问。在另一说明性示例中,TEE可以由/>安全加密虚拟化(SEV)实现,该SEV使用其他虚拟机不可访问的相应加密密钥对每个虚拟机的存储器状态进行加密。用于上述提及的和/或其他处理器架构的各个其他TEE实现方式可以与本公开的系统和方法兼容。
TEE可以由主数据处理设备来实现,诸如中央处理单元(CPU)。CPU可提供保护进程的数据不被管理进程的操作系统访问的硬件级加密。在使用硬件虚拟化的计算机系统中,整个虚拟机(VM)可以在TEE内执行,并且可以保持管理虚拟机的管理程序和主机操作系统不可访问存储在主机存储器中的虚拟机的数据。由于某些数据处理任务(诸如输入-输出(I/O)和相关处理操作)可以从中央处理单元(CPU)卸载至各个外围设备(诸如网络接口控制器(NIC)),因此主机实现的TEE被期望扩展到这样的设备。
由于计算机系统可以同时维护多个租户执行上下文,包括线程、进程、VM、应用容器和/或其他执行流,一旦至少一些主机存储器区域已经被当前所有者执行上下文释放,它们就可以被重新分配给其他执行上下文。例如,终止进程涉及终止它的所有线程,这进而导致它们的所有资源(诸如栈和其他进程存储器)已经被释放。因此,为了保持工作负载保密性,由给定执行上下文释放的存储器区域应在已被分配给新执行上下文之前被清除。然而,清除存储器区域涉及用预定义的(例如,全零)或随机数据模式覆写它,这可能为管理进程(例如,操作系统调度器)产生显著的开销。
本公开的各个方面通过提供仅选择性地清除已经被重新分配给新的执行上下文的那些存储器区域的技术来解决以上和其他缺陷。相反,将存储器区域重新分配给其先前租户不会危害数据保密性,并且因此在这样的重新分配之前存储器区域不需要被清除。为了实现存储器区域的这种选择性清除,调度器通过关联的元数据跟踪向存储器区域的执行上下文分配,如下文更详细描述的。
本文所描述的技术通过使得保密计算环境(例如,受信计算环境)中的计算设备能够提供更好的性能和安全性来改进计算机安全领域。具体地,所公开的技术的各方面可以通过提高主机实现的TEE可以扩展到的各个辅助设备(诸如,数据处理单元(DPU)、外围设备控制器(例如,网络接口控制器(NIC)、盘控制器、和/或基础设施处理单元(IPU))的效率来改进计算设备的性能。
以上引用的方法和系统的各个方面在下文中通过举例而非限制的方式进行详细描述。以下提供的示例讨论了使用保密计算和硬件级虚拟化的组合并执行TEE中的虚拟机的计算环境。在其他示例中,保密计算特征可以用不同的技术来代替以增强保密性或完整性验证,并且计算环境可以包括TEE的替代物。在又一示例中,主机设备可以不存在虚拟化或包括不同的或附加的虚拟化执行环境,诸如基于容器的虚拟化(例如,操作系统级虚拟化)。
图1描绘了根据本公开的一个或更多个方面操作的示例计算环境100的高级架构。利用本公开的实施例的计算环境的实现方式不必限于所描绘的特定架构。计算环境100可被配置为在不由消费者直接管理的情况下将计算资源的按需可用性提供给消费者。在一个示例中,计算环境100可以是云计算环境(例如,公共云、私有云、混合云),因为用户设备和主机设备可以与不同实体(例如,云消费者或云提供者)相关联。在另一示例中,计算环境100可以是场所内计算环境,其中用户设备和主机设备与同一实体(例如,同一公司或企业)相关联。在图1的简化示例中,计算环境100可以包括用户设备110、主机设备120A、辅助设备120Z、受信计算基础130、持久存储设备140和网络150。
用户设备110可以是消耗主机设备120A的计算资源并且可以提供使得主机设备120A能够代表用户设备110执行计算任务的输入数据(例如,代码或配置)的任何计算设备。用户设备110可以包括一个或更多个服务器、工作站、台式计算机、膝上型计算机、平板计算机、移动电话、机器人设备(例如,无人机、自主车辆)、个人数字助理(PDA)、智能手表、其他设备或其组合。
主机设备120A可以是单个主机或布置在异构或同构组(例如,集群)中的多个主机。在一个示例中,主机设备120A可以是或包括一个或更多个服务器、工作站、个人计算机(例如,台式计算机、膝上型计算机)、移动计算机(例如,移动电话、掌上计算设备、平板计算机、个人数字助理(PDA))、网络设备(例如,路由器、交换机、接入点)、数据存储设备(例如,USB驱动器、网络附加存储(NAS)、存储区域网络(SAN))、其他设备或其组合。
主机设备120A可以包括一个或更多个主设备,该一个或更多个主设备包括一个或更多个处理器122A和存储器124A。处理器122A可以是或包括中央处理单元(CPU),并且可以被称为主处理器、主机处理器、主要处理器、其他术语、或其组合。处理器122A可具有指令集架构(ISA),其与x86、ARM、Power ISA、RISC-V、SPARC、MIPS、其他架构或其组合相同或相似。处理器122A可以耦合到存储器124A,并且存储器124A可以由主机设备120A的一个或更多个装置共享,并且可以被称为主要存储器、主机存储器、主存储器、其他术语或其组合。主机设备120A可以包括一个或更多个辅助设备120Z或与一个或更多个辅助设备120Z相关联。
辅助设备120Z可以是与主机设备120A可通信地耦合的并且可以为主机设备120A执行一个或更多个数据处理任务的计算设备。辅助设备120Z可以在主机设备120A内部或外部,并且可以被实现为物理适配器、卡、组件、模块、或物理地与主机设备120A位于相同的底架(例如,相同的板、壳体、塔、机架、机柜、房间、建筑物)上或在不同的底架(chassis)上的其他设备。辅助设备120Z可以执行与处理器122A执行的数据处理任务相同或相似的数据处理任务,或者可以执行未由处理器122A执行的数据处理任务。由辅助设备120Z执行的数据处理任务可以涉及或关于数据传输(例如,通过网络)、数据加密(例如,加密或解密)、数据验证(例如,完整性验证、检错)、数据存储(例如,存储或访问)、数据压缩(例如,压缩或解压缩)、数据传输(例如,发送或接收)、数据格式化(例如,编码或解码)、数据分析(例如,取证分析)、其他数据处理任务或其组合。辅助设备120Z可以使用处理器122Z和存储器124Z执行数据处理任务。
处理器122Z可以补充主处理器122A的数据处理功能,并且可以被称为辅助处理器、协处理器、其他术语或其组合。在一个示例中,处理器122Z可以类似于处理器122A,并且可以作为辅助设备120Z的中央处理单元(CPU)来操作。处理器122Z的指令集架构可以与处理器122A的指令集架构相同或不同,并且可以与ARM、RISC-V、Power ISA、x86、其他标准化或专有ISA或其组合相同或相似。在另一示例中,处理器122Z可以是或包括一个或更多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)、微处理器、总线控制器、外围设备控制器或其他处理设备。在任一示例中,处理器122Z可包括或管理一个或更多个硬件加速器并使用存储器124Z来存储数据。
存储器124Z可以与辅助设备120Z的处理器122Z耦合,并且可以被称为辅助存储器、设备存储器、其他术语、或其组合。在一个示例中,存储器124Z可以与存储器124A分开,并且可以由辅助设备120Z独用(例如,分立式存储器)。在另一示例中,存储器124Z可以是存储器124A的一部分(例如,与主存储器集成)。
辅助设备120Z可以由数据处理单元(DPU)表示。数据处理单元可以包含一个或更多个中央处理单元(例如,CPU、ASIC、FPGA)、网络控制器(例如,NIC)、可编程数据加速引擎(例如,加密引擎、压缩引擎或其他引擎)、其他计算资源、或其组合。该数据处理单元可以具有更传统的CPU的通用性和可编程性,同时被专用于针对涉及密码操作(例如,加密、散列)、存储操作(例如,写/读请求)、联网操作(例如,网络请求)、存储器操作(例如,存储/访问请求)或其组合的数据处理任务更高效地操作。
在一个示例中,数据处理单元可以使用多指令多数据(MIMD)架构而不是单指令/多数据(SIMD)架构。MIMD架构可以是提供异步且独立地运行的处理核集合的硬件架构。在任何时间,不同的处理核可以对不同的数据段执行不同的指令。处理核可以使用总线、网格、超立方体或分级访问技术来访问存储器。
在其他实施例中,辅助设备120Z可以是或包括一个或更多个基础设施处理单元(IPU)、智能网络接口控制器(NIC)、存储控制器(例如,硬盘驱动器(HDD)控制器或固态存储驱动器(SSD)控制器)、张量处理单元(TPU)、图形处理单元(GPU)、其他数据处理设备、或其组合。辅助设备120Z和主机设备120A的硬件和编程可以支持保密计算并且可以用于建立受信计算库130。
受信计算基础(TCB)130可以是计算环境100的由特定计算资源信任的部分。特定计算资源可以是在计算环境100内部或在计算环境100外部的程序或设备,并且可以被称为信任(trusting)资源,因为它信任受信(trusted)资源。信任资源可以通过验证受信资源来与受信资源建立信任关系。
受信资源可以是主机设备120A、辅助设备120Z、持久存储设备140、其他设备或其组合的计算资源集合。该计算资源集合可包括硬件资源的部分(例如,硬件接口、处理器、互连、存储器或其他集成电路)、软件资源的部分(例如,编程接口、可执行代码、固件、驱动程序、服务、内核、操作系统、应用程序或其他程序)或其组合。在受信计算基础被建立之后,其可被修改以延伸(例如,扩展)或收回(例如,缩减)该受信计算资源集合。在图1所示的示例中,受信计算基础130初始可以包括受信执行环境132A(例如,主处理器和主要存储器)的计算资源,并且受信计算基础130可以被扩展为包括受信通信链路134和受信执行环境132Z(例如,辅助处理器和存储器)。
受信执行环境132A-Z(TEE)可以各自通过包括被配置为使用增强数据保密性、数据完整性或其组合的技术来保护数据的计算资源集合来实现保密计算。受信执行环境132A-Z可使用将一个或更多个计算进程(例如,应用程序、容器、VM)的数据与在同一计算设备上运行的其他进程隔离的基于硬件的加密来保护数据。在一个示例中,可以使用计算设备的硬件处理器可访问但在计算设备上运行的所有进程不可访问的密码密钥对在受信执行环境中执行的进程的数据进行加密(例如,硬件级加密)。当进程将该数据存储在存储器中或访问存储器中的数据时,硬件处理器可以对在受信执行环境中执行的进程的数据进行加密或解密。这使得受信执行环境能够隔离在受信执行环境内执行的较低特权进程(例如,虚拟机进程)的数据不被较高特权进程(例如,管理程序或主机OS)访问,即使该较高特权进程负责管理该较低特权进程。受信执行环境可以在实施数据完整性和保密性的同时提供代码执行。
受信执行环境132A和132Z可以各自对应于不同的计算资源集合(例如,受信计算基础130的子集)。在图1所示的示例中,受信执行环境132A可以具有包括主机设备120A的主设备且包括处理器122A(例如,主机处理器)的一部分和存储器124A(例如,主要存储器)的一部分的计算资源集合,并且可以被描述为主TEE、主机TEE、主要TEE、CPU-TEE、其他术语或其组合。受信执行环境132Z可以包括辅助设备120Z的计算资源并且包括处理器122Z(例如,辅助处理器)的一部分和存储器124Z(例如,辅助存储器)的一部分,并且可以被描述为辅助TEE、设备TEE、DPU-TEE、其他术语、或其组合。在一些实现方式中,存储器124A-124Z可存储相应元数据125A-125Z,所述元数据125A-125Z可用于跟踪向执行上下文的存储器帧分配,如下文参照图2-4更详细地描述的。
受信通信链路134可以使得受信执行环境的数据能够以安全增强方式在受信执行环境之间传输。例如,受信通信链路134可以使得受信执行环境132A的数据136A能够被受信执行环境132Z访问并且作为数据136Z存储在受信执行环境132Z内。受信通信链路134可以包括或遍历一个或更多个互连、总线、网络、其他通信链路、或其组合。通过受信通信链路134传输的数据在传输期间可被加密或部分被加密。这可以是有利的,因为以加密形式发送数据136A可限制数据136A在不同受信执行环境的计算资源之间(例如,在处理器122A与处理器122Z之间)传输时被监听的能力。
在受信执行环境132A与132Z之间传输数据可以涉及对正在使用的数据加密的一个或更多个改变。在一个示例中,当存储在存储器124A中时可以使用第一密码技术(例如,第一密钥)、当通过受信通信链路134传输时可以使用第二密码技术(例如,第二密钥)以及当存储在存储器124Z中时可以使用第三密码技术(例如,第三密钥)对数据进行加密。当在密码技术之间切换时,可以对数据进行解密并且然后进行加密。在另一示例中,存储在存储器124A中的数据可以使用两个受信执行环境都可用的密码技术来加密,并且可以在无需改变加密的情况下被访问。
受信执行环境132A-Z可以是使用非持久数据存储资源存储数据的短暂(ephemeral)执行环境。非持久数据存储可以包括响应于中断而丢失数据的数据存储设备,并且可以包括易失性存储器(例如,主要存储器)、处理器高速缓存(例如,CPU高速缓存)、处理器寄存器(例如,CPU寄存器)、其他非持久高速缓存、或其组合。本文公开的技术可以使得第一受信执行环境(例如,主TEE 132A)能够使用第二受信执行环境(例如,辅助TEE 132Z)来将数据(例如,数据136A)存储在持久存储设备140上。
持久存储设备140可以包括不响应于电力周期而丢失数据的持久数据存储,并且可以包括一个或更多个硬盘存储设备(例如,硬盘驱动器(HDD))、固态存储设备(例如,固态驱动器(SSD))、磁带驱动器存储设备、网络存储设备、其他持久数据存储介质、或其组合。持久存储设备140可以位于主机设备120A内部并且可以通过设备总线访问,或者可以位于主机设备120A外部并且可以通过网络连接(例如,通信链路)访问。持久存储设备140可以包括一个或更多个基于块的存储设备、基于文件的存储设备或它们的组合。基于块的存储设备可以提供对合并的基于块(例如,块级)的数据存储的访问。基于文件的存储设备可以提供对合并的基于文件(例如,文件级)的数据存储的访问。在任一示例中,受信执行环境(例如,受信VM)的数据可以被传输至持久存储设备140并且由其存储。
受信执行环境132A-Z可以各自具有相同级别或不同级别的粒度并且保护相应的计算上下文133A-Z。TEE的粒度级别可以取决于正被保护的计算上下文,其可以是虚拟机(VM)、容器、进程、线程、其他执行流、或其组合。用于执行和保护VM的受信执行环境可以被称为受信虚拟机(TVM)。用于执行和保护容器的受信执行环境可以被称为受信容器(TC)。用于执行和保护应用程序进程的受信执行环境可以被称为受信应用程序(TA)或受信进程(TP)。在一个示例中,受信执行环境132A可以由主机处理器122A建立并且包括虚拟机或容器,并且受信执行环境132Z可以由辅助处理器122Z建立并且可以是用于一个或更多个进程(例如,管理加密和持久存储的进程)的TEE。
计算环境100可以包括支持一个或更多个虚拟化级别的设备。虚拟化级别可以包括硬件级虚拟化(例如,VM)、操作系统级虚拟化(例如,容器)、其他虚拟化或其组合。硬件级虚拟化可以涉及运行支持管理程序(例如,虚拟机监视器(VMM))的操作系统(例如,120A、120Z)的计算设备(例如,120A、120Z)。管理程序可以提供并管理硬件资源以供一个或更多个虚拟机使用。管理程序可以是任何程序或者程序的组合,并且可以在主机操作系统上运行或者可以直接在硬件(例如,裸机管理程序)上运行。管理程序可以管理并监控计算设备的操作的各个方面,包括存储、存储器和网络接口。管理程序可以抽象诸如处理器、存储器和I/O设备之类的物理层特征,并且将该抽象作为虚拟设备呈现给虚拟机。
网络150可以包括一个或更多个公共网络(例如,互联网)、私有网络(例如,局域网(LAN)、广域网(WAN))或其组合。在一个示例中,网络150可包括有线或无线基础设施,该基础设施可由一个或更多个无线通信系统提供,诸如与计算机网络150连接的无线保真(WiFi)热点和/或可使用各种数据处理设备、通信塔等实现的无线运营商系统。
图2描绘了图1的示例计算环境的一个或更多个组件的示例高级架构200。在一些实现方式中,高级架构对应于图1的主机设备120A和/或辅助设备120Z。本文描述的计算环境的其他架构是可能的,并且利用本公开的实施例的计算环境的实现方式不必限于所描绘的特定架构。架构200的一个或更多个组件可以例如由配备有一个或更多个处理器210A-210N的计算设备(范围从可穿戴设备到硬件服务器)来实现,所述一个或更多个处理器可以包括中央处理单元(CPU)、图形处理单元(GPU)、数据处理单元(DPU)和专用处理单元(诸如外围设备控制器(例如,网络接口控制器(NIC)、盘控制器和/或基础设施处理单元(IPU))的任何组合。处理器210A-210N可以由合适架构的一个或更多个通信总线220耦合到系统存储器230,系统存储器230可以由一个或更多个存储器设备(例如,随机存取存储器(RAM)设备)来实现。在一些实现方式中,架构200的组件可以进一步包括一个或更多个存储设备和/或一个或更多个外围设备(为了清楚和简明,从图2中省略)。
每个处理器210可以实现一个或更多个执行上下文260。本文中的“执行上下文”将指代通过至少部分共享的执行状态(包括处理器状态、存储器状态和输入/输出(I/O)控制器状态)分组在一起的可执行指令的一个或更多个可运行序列。因此,在各个实现方式中,执行上下文260可以由线程、进程、虚拟机(VM)、应用程序容器或其他可运行的可执行指令序列来表示。
在说明性示例中,执行上下文260可以由单个执行线程表示,该单个执行线程是具有其自己的执行状态并且可以被调度(例如,由操作系统的调度器)以与其他线程分开地在计算机系统上运行的可执行指令序列。在一些实现方式中,两个或更多个线程可以结合在一起以形成可执行进程。因此,在另一说明性示例中,执行上下文260可以由可执行进程表示。可执行线程和/或进程可以由操作系统(OS)的特权组件进行管理。
在又一说明性示例中,执行上下文260可以由在主机计算机系统上运行的管理程序管理的VM表示,所述主机计算机系统实现示例架构200的一个或更多个元件。管理程序可以例如由促进一个或更多个VM的执行的虚拟机监视器(VMM)来表示,每个VM可以运行管理一个或更多个应用程序的访客OS。管理程序可以向一个或更多个VM提供到底层硬件平台的无缝接口,底层硬件平台包括处理器、存储器和外围设备(诸如,网络接口控制器、硬盘控制器等)。例如,虚拟机的虚拟处理器可以由被调度为在主机计算机系统的对应处理器210上运行的执行线程来实现。在一些实现方式中,可以在与VM的特权级别相比升高的特权级别处执行管理程序,从而保留对硬件平台资源的控制。
在另一说明性示例中,执行上下文260可以由应用程序容器表示,该应用程序容器是在主机操作系统的用户空间中运行并且与运行在同一主机上的其他容器共享内核的隔离的进程。每个容器可被约束为仅使用定义的计算资源集合(例如,CPU、存储器、I/O)。在一些实现方式中,容器化应用程序可被打包在完整的文件系统中,该文件系统包含可执行代码和运行时依赖关系,包括例如中间件和系统库。
架构200的一个或更多个组件可以实现一个或更多个TEE(TEE)290,使得每个TEE290可以包括一个或更多个执行上下文260。在图2的说明性示例中,TEE 290A包括执行上下文260D,并且TEE 290B包括执行上下文260B-260C。每个TEE 290可以使得能够在相应的执行上下文260内运行保密计算(CC)工作负载,同时提供数据完整性和保密性。在一些实现方式中,TEE 290可以采用基于硬件的加密来用密码保护其执行上下文260的状态。由处理器210实施以用密码保护对应执行上下文260的状态的基于硬件的加密技术可利用架构200的任何其他组件不可访问的密码密钥。在说明性示例中,TEE可以由软件防护扩展(SGX)安全enclave实现,所述SGX安全enclave是加密存储器的私有区域,该私有区域的内容将仅被解密以供在该enclave内运行的进程访问。在另一说明性示例中,TEE可以由安全加密虚拟化(SEV)实现,其使用其他虚拟机不可访问的相应加密密钥对每个虚拟机的存储器状态进行加密。用于上述提及的处理器架构和/或其他处理器架构的各个其他TEE实现可以与本公开的系统和方法兼容。
由于多个执行上下文260A-260K可以在相应的处理器210A-210N上同时运行,因此它们可以同时访问存储器230。每个执行上下文260A-260K可在任何给定时间利用一个或更多个存储器区域,使得每个存储器区域270被分配给租户执行上下文260。由承载保密计算工作负载的执行上下文利用的存储器区域270应当与其他执行上下文(包括特权执行上下文)隔离(例如,与不被视为TEE的一部分的虚拟机管理器隔离)。
在各个说明性示例中,存储器区域270可以例如由高速缓存行、栈帧(frame)、堆帧、视频存储器帧、外围设备存储器帧等表示。本文中的“存储器帧”将指代某大小的存储器区域。在一些实现方式中,可以选择存储器帧的大小以匹配高速缓存行的大小,从而允许存储器区域到执行上下文分配元数据标签(memory region to execution contextassignment metadata tags)与相应的高速缓存行元数据一起被存储。
值得注意的是,一旦给定执行上下文260的至少一些存储器区域270已被所有者执行上下文260释放,它们就可被分配给其他执行上下文。例如,终止进程涉及终止它的所有线程,这进而导致它们的所有资源(诸如栈和其他进程存储器)已经被释放。因而,为了保持工作负载保密性,由给定执行上下文释放的存储器区域应在已被分配给新的执行上下文之前被清除,从而防止存储器区域的内容暴露给存储器区域最终可被重新分配给的任何执行上下文。
如本文以上指出的,清除存储器区域涉及用预定义的(例如,全零)或随机数据模式覆写它,这可能发生调度器的显著开销。为了减少这样的开销,存储器区域可仅在被重新分配给新的执行上下文(即,不同于曾是存储器区域的紧接的先前租户的执行上下文的执行上下文)时被清除。相反,将存储器区域重新分配给其先前租户(即,曾是该存储器区域的紧接的先前租户的执行上下文)不会危害保密性,并且因此该存储器区域在这样的重新分配之前不需要被清除。
在一些实现方式中,所选择的清除操作可以在存储器访问请求到达处理器或主要存储器之前例如由总线控制器或网格控制器来执行,该总线控制器或网格控制器可以拦截该请求并基于该请求类型发起选择性清除操作。
为了实现存储器区域的这种选择性清除,相关处理设备(例如,处理器、总线控制器或网格控制器)可以针对每个存储器区域跟踪排他地与该存储器区域相关联的当前执行上下文。在一些实现方式中,跟踪向执行上下文的存储器帧分配可以通过存储器区域到执行上下文分配元数据280来促进,如下文参见图3更详细描述的。
图3示意性地示出了根据本公开的一个或更多个方面的由本公开的系统和方法实现的采用选择性清除存储器区域的动态重新分配。图3示出了在重新分配存储器区域320A-320N之前和之后的部分存储器状态310A和310B。每个存储器区域320A-320N与相应存储器区域到执行上下文分配元数据标签330A-330N相关联,该标签存储存储器区域当前被分配给的执行上下文的标识符。
如由图3示意性地示出的,存储器区域320A-320N可以初始地(如由部分存储器状态310A所反映的)与相应的执行上下文相关联,这些执行上下文的标识符被存储为存储器区域到执行上下文分配元数据标签330A-330N。存储器区域320A-320N随后可以(如由部分存储器状态310B反映的)被重新分配给新的相应执行上下文。因此,存储器区域到执行上下文分配元数据标签330A-330N可以被更新以存储新的执行上下文的标识符。
已经被重新分配给新的执行上下文(即,不同于曾是该存储器区域的紧接的先前租户的执行上下文的执行上下文)的每个存储器区域可以在重新分配之前立即被清除。这适用于例如存储器区域320B和320C。
相反,已经被重新分配给其先前租户(即,曾是该存储器区域的紧接的先前独占租户的执行上下文)的每个存储器区域在这种重新分配之前可能不需要被清除。这适用于例如存储器区域330A和330N。
因此,一旦新的执行上下文被调度以在特定硬件线程(例如,处理器核)上执行,就可以基于针对每个存储器区域将新调度的执行上下文的标识符与先前已经与该存储器区域相关联的执行上下文的标识符(即,由对应的存储器区域到执行上下文分配元数据标签存储的标识符)进行比较的结果来选择性地清除其对应的存储器区域。如果两个标识符匹配,那么可在无需介入的清除操作的情况下重新分配存储器区域,因为允许相同的执行上下文访问其先前计算的数据。相反,如果两个标识符不同,则可以在完成新的存储器区域的重新分配之前清除该存储器区域。
在一些实现方式中,可以仅针对新存储器区域的读取或部分写入存储器访问请求执行清除,因为对于影响整个区域的写入访问请求,将通过执行该请求来重写该区域的内容。
图4是根据本公开的一些实施例的选择性地清除重新分配的存储器区域的方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微代码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。尽管以特定的序列或顺序示出,但是除非另外指定,否则过程的顺序可以被修改。因此,所示出的实施例应该仅被理解为示例,并且所示出的过程可以以不同的顺序执行,并且一些过程可以并行地执行。此外,在不同实施例中,可以省略一个或更多个过程。因此,并非在每个实施例中都需要所有的过程。方法400可以由辅助设备120Z、主机设备120A、其他设备或其组合的处理逻辑来执行。
在操作410处,实现该方法的处理逻辑接收存储器访问请求,该存储器访问请求指定所请求的存储器访问操作的类型(例如,读、写)并引用存储器区域。在说明性示例中,存储器访问请求可以指定请求者的虚拟地址空间中的存储器区域的虚拟地址。因此,处理逻辑可以将虚拟地址转换成对应的物理地址(例如,使用地址转换表,其每个记录将虚拟地址映射到对应的物理地址)。
在操作420处,处理逻辑确定请求者执行上下文的标识符,该请求者执行上下文是与存储器区域相关联的当前执行上下文。在说明性示例中,处理逻辑可以通过地址映射表识别与所请求的物理地址相关联的当前线程。可以利用识别当前线程的其他平台特定技术和操作系统特定技术。
在操作430处,处理逻辑确定与存储器区域相关联的先前执行上下文的标识符。处理逻辑可以使用该存储器区域到执行上下文分配元数据,其存储存储器区域当前被分配给的执行上下文的标识符,如上文中更详细描述的。
响应于在操作440处确定当前执行上下文的标识符与先前执行上下文的标识符不匹配,处理逻辑在操作450处更新与该存储器区域相关联的存储器区域到执行上下文分配元数据,以存储当前执行上下文的标识符,如上文中更详细地描述的。
在操作460处,处理逻辑清除存储器区域的至少一部分。在说明性示例中,响应于确定所请求的存储器访问操作是读取操作,处理逻辑清除整个存储器区域。在另一说明性示例中,响应于确定所请求的存储器访问操作是部分写入操作(即,关于存储器区域的一部分执行的写入操作),处理逻辑清除存储器区域的受影响部分。在又一说明性示例中,响应于确定将关于整个存储器区域执行所请求的存储器访问操作,处理逻辑跳过清除操作,并且处理在操作470处继续。
在操作470处,处理逻辑处理关于存储器区域的存储器访问请求。在不同说明性示例中,处理逻辑执行关于存储器区域的所请求的读或写操作。响应于完成在上文中参考操作480描述的操作,所述方法可终止。
图5示出了计算机系统500的示例机器,在该机器内可以执行用于使该机器执行本文讨论的任何一个或更多个方法的一组指令。在一些实施例中,计算机系统500可以是包括具有高速缓存控制器、存储器控制器或其组合的处理器的计算设备。在替代实施例中,机器可以连接(例如,联网)到LAN、内联网、外联网和/或互联网中的其他机器。该机器可在客户端-服务器网络环境中以服务器或客户端机器的能力操作,作为对等(或分布式)网络环境中的对等机器操作,或者作为云计算基础设施或环境中的服务器或客户端机器操作。
该机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器、或能够(顺序地或以其他方式)执行指定该机器将采取的动作的一组指令的任何机器。进一步地,尽管示出了单个机器,术语“机器”还应被视为包括单独地或联合地执行一组(或多组)指令以执行本文讨论的任何一种或更多种方法的机器的任何集合。
示例计算机系统500包括处理设备502(例如,处理器122)、主要存储器504(例如,只读存储器(ROM)、闪存、诸如同步DRAM(SDRAM)之类的动态随机存取存储器(DRAM)等)、静态存储器505(例如,闪存、静态随机存取存储器(SRAM)等)、以及数据存储系统518,它们经由总线530彼此通信。
处理设备502可以表示一个或更多个通用处理设备,诸如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其他指令集的处理器、或实施指令集的组合的处理器。处理设备502还可以是一个或更多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、总线控制器、外围设备控制器等。处理设备502被配置为执行用于执行本文所讨论的操作和步骤的指令525。计算机系统500可进一步包括网络接口设备508以通过网络520进行通信。
数据存储系统518可以包括机器可读存储介质524(也称为非暂时性计算机可读介质),在该机器可读存储介质上存储有体现本文所描述的方法或功能中的任何一个或更多个的一个或更多个指令集525或软件。在由计算机系统500执行指令525期间,指令525还可完全地或至少部分地驻留在主要存储器504内和/或处理设备502内,主要存储器504和处理设备502还构成机器可读存储介质。机器可读存储介质524、数据存储系统518和/或主要存储器504可对应于图1的存储器124A。
在一个实施例中,指令525包括用于选择性清除重新分配的存储器区域的方法400的指令,如由图4示意性地示出的。虽然机器可读存储介质524在示例实施例中被示出为单个介质,但是术语“非暂时性机器可读存储介质”应当被认为包括存储一个或更多个指令集的单个介质或多个介质。术语“机器可读存储介质”还应被视为包括能够存储或编码指令集以供机器执行并且使得机器执行本公开的方法中的任何一个或更多个的任何介质。因此,术语“机器可读存储介质”应被视为包括但不限于固态存储器、光学介质和磁性介质。
已经就对计算机存储器内的数据位的操作的算法和符号表示方面呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来将他们的工作的实质最有效地传达给本领域的其他技术人员的方式。算法在这里并且一般而言被设想为导致期望结果的自恰的操作序列。这些操作是需要对物理量的物理操纵的那些操作。通常,尽管不是必须的,这些量采取能够被存储、组合、比较和以其他方式操纵的电或磁信号的形式。主要出于通用的原因,已经证明有时将这些信号称为位、值、元素、符号、字符、项、数字等是方便的。
然而,应当牢记的是,所有这些和类似的术语都与适当的物理量相关联并且仅仅是应用于这些量的方便标签。本公开可以指计算机系统或类似电子计算设备的动作和处理,所述计算机系统或类似电子计算设备将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和转换为类似地表示为计算机系统存储器或寄存器或其他此类信息存储系统内的物理量的其他数据。
本公开还涉及一种用于执行本文的操作的装置。该装置可以出于预期目的而专门构造,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储介质中,诸如但不限于包括软盘、光盘、CD-ROM和磁-光盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或适于存储电子指令的任何类型的介质,每个介质耦合至计算机系统总线。
本文提出的算法和显示并不固有地与任何特定的计算机或其他装置相关。根据本文的教导,各种通用系统可以与程序一起使用,或者可以证明构造更专用的装置来执行该方法是方便的。用于各种这些系统的结构将如以下描述中阐述的出现。此外,本公开不参考任何特定编程语言进行描述。应当理解,可以使用各种编程语言来实现如本文所描述的本公开的教导。
本公开可以被提供为计算机程序产品或软件,该计算机程序产品或软件可以包括具有存储在其上的指令的机器可读介质,这些指令可以用于对计算机系统(或其他电子设备)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,非暂时性计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存组件等。
在前述说明书中,已经参照其具体示例实施例描述了本公开的实施例。将显而易见的是,在不背离如在所附权利要求书中阐述的本公开的实施例的更宽泛的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图被视为具有说明性意义而非限制性意义。
Claims (20)
1.一种系统,包括:
存储器;
处理设备,所述处理设备通信地耦接到所述存储器,所述处理设备用于执行操作,所述操作包括:
接收引用存储器区域的存储器访问请求;
确定与所述存储器区域相关联的当前执行上下文的标识符;
确定由与所述存储器区域相关联的元数据指定的先前执行上下文的标识符;
响应于确定所述当前执行上下文的所述标识符与所述先前执行上下文的所述标识符不匹配,更新与所述存储器区域相关联的所述元数据以存储所述当前执行上下文的所述标识符;
清除所述存储器区域的至少一部分;以及
处理关于所述存储器区域的所述存储器访问请求。
2.如权利要求1所述的系统,其中清除所述存储器区域的至少一部分是响应于确定所述存储器访问请求的类型是以下各项中的一项而被执行:读请求或部分写请求。
3.如权利要求1所述的系统,其中所述存储器区域由以下各项中的一项表示:高速缓存行、存储器页、主存储器的帧、栈的帧或堆的帧。
4.如权利要求1所述的系统,其中所述当前执行上下文是线程或进程之一。
5.如权利要求1所述的系统,其中所述当前执行上下文是虚拟机或容器之一。
6.如权利要求1所述的系统,其中所述当前执行上下文是受信执行环境。
7.如权利要求1所述的系统,其中所述处理设备是以下各项中的一项:中央处理单元CPU、网络接口控制器NIC、数据处理单元DPU或图形处理单元GPU。
8.一种方法,包括:
由处理设备接收引用存储器区域的存储器访问请求;
确定与所述存储器区域相关联的当前执行上下文的标识符;
确定由与所述存储器区域相关联的元数据指定的先前执行上下文的标识符;
响应于确定所述当前执行上下文的所述标识符与所述先前执行上下文的所述标识符不匹配,更新与所述存储器区域相关联的所述元数据以存储所述当前执行上下文的所述标识符;
清除所述存储器区域的至少一部分;以及
处理关于所述存储器区域的所述存储器访问请求。
9.如权利要求8所述的方法,其中清除所述存储器区域的至少一部分是响应于确定所述存储器访问请求的类型是以下各项中的一项而被执行:读请求或部分写请求。
10.如权利要求8所述的方法,其中所述存储器区域由以下各项中的一项表示:高速缓存行、存储器页、主存储器的帧、栈的帧或堆的帧。
11.如权利要求8所述的方法,其中所述当前执行上下文是线程或进程之一。
12.如权利要求8所述的方法,其中所述当前执行上下文是虚拟机或容器之一。
13.如权利要求8所述的方法,其中所述当前执行上下文是受信执行环境。
14.如权利要求8所述的方法,其中所述处理设备是以下各项中的一项:中央处理单元CPU、网络接口控制器NIC、数据处理单元DPU或图形处理单元GPU。
15.一种非暂时性机器可读存储介质,其存储指令,所述指令在被执行时使处理设备执行操作,所述操作包括:
由处理设备接收引用存储器区域的存储器访问请求;
确定与所述存储器区域相关联的当前执行上下文的标识符;
确定由与所述存储器区域相关联的元数据指定的先前执行上下文的标识符;
响应于确定所述当前执行上下文的所述标识符与所述先前执行上下文的所述标识符不匹配,更新与所述存储器区域相关联的所述元数据以存储所述当前执行上下文的所述标识符;
清除所述存储器区域的至少一部分;以及
处理关于所述存储器区域的所述存储器访问请求。
16.如权利要求15所述的非暂时性机器可读存储介质,其中清除所述存储器区域的至少一部分是响应于确定所述存储器访问请求的类型是以下各项中的一项而被执行:读请求或部分写请求。
17.如权利要求15所述的非暂时性机器可读存储介质,其中所述存储器区域由以下各项中的一项表示:高速缓存行、存储器页、主存储器的帧、栈的帧或堆帧。
18.如权利要求15所述的非暂时性机器可读存储介质,其中所述当前执行上下文是线程或进程之一。
19.如权利要求15所述的非暂时性机器可读存储介质,其中所述当前执行上下文是虚拟机或容器之一。
20.如权利要求15所述的非暂时性机器可读存储介质,其中所述当前执行上下文是受信执行环境。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/084,964 US20240202315A1 (en) | 2022-12-20 | 2022-12-20 | Maintaining data confidentiality in shared computing environments |
US18/084,964 | 2022-12-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118228248A true CN118228248A (zh) | 2024-06-21 |
Family
ID=91279037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311722901.7A Pending CN118228248A (zh) | 2022-12-20 | 2023-12-14 | 维护共享计算环境中的数据保密性 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240202315A1 (zh) |
CN (1) | CN118228248A (zh) |
DE (1) | DE102023213049A1 (zh) |
-
2022
- 2022-12-20 US US18/084,964 patent/US20240202315A1/en active Pending
-
2023
- 2023-12-14 CN CN202311722901.7A patent/CN118228248A/zh active Pending
- 2023-12-20 DE DE102023213049.1A patent/DE102023213049A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240202315A1 (en) | 2024-06-20 |
DE102023213049A1 (de) | 2024-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10969976B2 (en) | Fast virtual machine storage allocation with encrypted storage | |
US10686605B2 (en) | Technologies for implementing mutually distrusting domains | |
US9619270B2 (en) | Remote-direct-memory-access-based virtual machine live migration | |
US10983926B2 (en) | Efficient userspace driver isolation for virtual machines | |
US12032680B2 (en) | Preserving confidentiality of tenants in cloud environment when deploying security services | |
US11221868B2 (en) | Security enhanced hypervisor userspace notifications | |
US20130326179A1 (en) | Host memory locking in virtualized systems with memory overcommit | |
US20210382747A1 (en) | Efficient userspace driver isolation by shallow virtual machines | |
US10754796B2 (en) | Efficient user space driver isolation by CPU page table switching | |
US11748140B2 (en) | Virtual machine security policy implementation | |
US20230273808A1 (en) | Confidential offloading of persistent storage operations in confidential computing environments | |
US20230018412A1 (en) | Reverse shadow page tables for nested virtual machines | |
US11748135B2 (en) | Utilizing virtual input/output memory management units (IOMMU) for tracking encryption status of memory pages | |
US11900142B2 (en) | Improving memory access handling for nested virtual machines | |
US11449434B2 (en) | Reverse shadow page tables for firewalled nested encrypted virtual machines | |
US20230185593A1 (en) | Virtual device translation for nested virtual machines | |
US11604673B2 (en) | Memory encryption for virtual machines by hypervisor-controlled firmware | |
US11243801B2 (en) | Transparent huge pages support for encrypted virtual machines | |
US20240202315A1 (en) | Maintaining data confidentiality in shared computing environments | |
Kolhe et al. | Comparative study on Virtual Machine Monitors for cloud | |
US11748136B2 (en) | Event notification support for nested virtual machines | |
US11449601B2 (en) | Proof of code compliance and protected integrity using a trusted execution environment | |
Mahar et al. | Telepathic Datacenters: Fast RPCs using Shared CXL Memory | |
US20240193281A1 (en) | Unified encryption across multi-vendor graphics processing units | |
US20230132905A1 (en) | Binary execuction by a virtual device |
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 |