CN111903103A - 使用加密存储器技术的安全虚拟机迁移 - Google Patents

使用加密存储器技术的安全虚拟机迁移 Download PDF

Info

Publication number
CN111903103A
CN111903103A CN201880091748.3A CN201880091748A CN111903103A CN 111903103 A CN111903103 A CN 111903103A CN 201880091748 A CN201880091748 A CN 201880091748A CN 111903103 A CN111903103 A CN 111903103A
Authority
CN
China
Prior art keywords
host system
virtual machine
memory
cryptographic
data item
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
Application number
CN201880091748.3A
Other languages
English (en)
Inventor
拜朱·V·帕特尔
卡皮尔·苏德
李微刚
虞平
魏长征
王俊元
曾欣
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 CN111903103A publication Critical patent/CN111903103A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2149Restricted operating environment

Landscapes

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

Abstract

可以经由第一安全通信信道从第一主机系统接收被用于导出第一密码密钥的密码数据项,该第一密码密钥被第一存储器控制器用来实现用于存储与虚拟机相关联的存储器页的第一受密码保护执行环境。可以经由第二安全通信信道将密码数据项传输到第二主机系统,以实现第二主机系统上的第二受密码保护环境。可以使第一主机系统经由不安全通信信道将虚拟机的存储器页迁移到第二主机系统,以存储在第二受密码保护执行环境中。

Description

使用加密存储器技术的安全虚拟机迁移
技术领域
本发明的实施例总的来说涉及计算系统,尤其涉及虚拟机迁移。
附图说明
根据下面给出的详细描述和本发明的各种实施例的附图,将更充分地理解本公开。然而,附图不应被用于将本公开限制于具体的实施例,而仅是为了解释和理解。
图1示出了根据一个实施例的多节点系统。
图2示出了根据一个实施例的允许实现安全虚拟机(VM)迁移的系统的框图。
图3是根据一个实施例的执行VM从第一主机系统到第二主机系统的安全迁移的方法的流程图。
图4是根据另一实施例的执行从第一主机系统到第二主机系统的安全VM迁移的另一方法的流程图。
图5是根据另一实施例的主机系统将VM放置于受密码保护的执行环境中并执行对VM的安全迁移的另一方法的流程图。
图6是根据另一实施例的接收与迁移的VM相关联的密码数据项和存储器页的另一方法的流程图。
图7示出了根据一个实施例的具有利用中速接口的多个互连的计算系统。
图8示出了根据一个实施例的片上系统(SOC)设计。
具体实施方式
实现方式描述了用于使用加密存储器技术进行安全虚拟机(VM)迁移的技术。本发明的实施例处理当在第一主机系统和第二主机系统之间迁移VM时VM的存储器迁移。本发明的实施例被用于经由不安全的通信信道来执行对与VM相关联的加密存储器页的迁移。
当VM由第一主机系统执行时,VM可以驻留在受密码保护的执行环境中。受密码保护的执行环境可以是第一主机系统的处理设备上受隔离的执行环境。与VM相关联的代码和数据可以被写入第一主机系统上受密码保护的执行环境的受保护存储器区域并在其中被执行。与VM相关联的代码可以在受保护的执行环境中被执行,并且被写入到受密码保护执行环境的存储器区域的与VM相关联的数据被加密。例如,第一主机系统的存储器控制器通过以下方式来维护受密码保护的执行环境,所述方式是在存储器页被存储在受密码保护的执行环境的存储器区域中时对与VM相关联的存储器页进行加密以及在存储器页被从受密码保护的执行环境中读取时对存储器页进行解密。
每个受密码保护的执行环境是使用用于对与该受密码保护的执行环境相关联的(保存代码和/或数据的)存储器进行加密的至少一个独占(例如,特定于执行环境的)加密密钥而在存储器中受密码隔离的。处理设备利用加密引擎来对在受密码保护执行环境工作负载的执行期间使用的存储器进行加密和解密。例如,受密码保护的执行环境架构使用加密引擎来将每个VM的一个或多个密钥用于对与该VM相关联的存储器页进行加密和解密。
受密码保护的执行环境所使用的加密的一个示例是全存储器加密(Total MemoryEncryption,TME)。通过使用TME,主机系统的处理设备生成密码密钥,该密码密钥被用于对存储在受密码保护的执行环境处的全部数据进行加密和解密。受密码保护的执行环境的另一示例是多密钥全存储器加密(MKTME)环境。通过使用MKTME,主机系统的处理设备生成用于对存储在受密码保护的执行环境处的全部数据进行加密和解密的多个密码密钥,这允许实现页粒度的存储器加密。可以在受密码保护的执行环境的实施例中使用的存储器加密的其他示例可以包括但不限于:可信任域扩展(TDX)、安全存储器加密(SME)和安全加密虚拟化(SEV)。
在常规的系统中,当VM被从第一主机系统迁移到第二主机系统时,与该VM相关联的存储器页以解密状态被从第一主机系统传输到第二主机系统。然而,由于与VM相关联的存储器页是以解密状态被从第一主机系统传输到第二主机系统的,所以在存储器页被从第一主机系统传输到第二主机系统时,存储器页的安全性可能受到损害。例如,经解密的存储器页可能被第三方拦截和访问,因为在存储器页被从第一主机系统传输到第二主机系统时,存储器页未被加密。
用于安全VM迁移的一种常规解决方案使用主机系统的互联网协议(IP)来将安全通信协议用于保护存储器页。互联网协议安全性(IPSec)可以被嵌入在主机系统的IP栈中。在与目的地主机系统建立通信信道时,源主机系统可以对要经由该通信信道传输的存储器页进行加密。这种用于安全VM迁移的常规解决方案可能具有缺点。例如,IPSec的实施例可能会使用源主机系统的大量计算资源,因为存储器页首先在存储器页被从受密码保护的执行环境中读取时被存储器控制器解密,并且然后存储器页通过IPSec再次被加密以用于存储器页到第二主机系统的安全迁移。在接收到存储器页时,目的地主机系统然后可以对接收到的存储器页进行解密,并随后对存储器页进行加密以存储在第二主机系统的受密码保护的执行环境中。这可能具有负面的性能和服务质量(QoS)影响。
为了避免这些缺点,在本文描述的实施例中,与要迁移的VM相关联的经加密存储器页被从第一主机系统的第一受密码保护执行环境传输到第二主机系统的第二受密码保护执行环境。当存储器页被从与受密码保护的执行环境相关联的存储器区域中读取时,第一主机系统的存储器控制器可以不解密存储器页。因此,当存储器页经由通信信道被传输到第二主机系统时,存储器页将保持安全、加密的状态。当存储器页被第二主机系统接收时,第二主机系统的存储器控制器使用与第一主机计算机系统的第一受密码保护执行环境已使用的密码密钥相同的密码密钥来将存储器页存储在受密码保护的执行环境中。
用于导出密码密钥的密码数据项经由第一安全通信信道被从第一主机系统传输到迁移管理器。密码数据项被迁移管理器经由第二安全通信信道传输到第二主机系统。在一个实施例中,第一和第二安全通信信道可以利用IPSec。在接收到用于导出第一主机系统处的密码密钥的密码数据项时,第二主机系统随后对被存储在第二主机系统的受密码保护执行环境处的与VM相关联的存储器页进行加密/解密。因此,通过使用安全通信信道将密码数据项从第一主机系统提供到第二主机系统并同时经由不安全通信信道迁移与VM相关联的经加密存储器页,正在经由安全通信信道传输的数据量被减少,从而导致对系统性能和QoS的改善。
图1示出了示例的经虚拟化的执行环境100,本文描述的系统和方法可以在该执行环境中被实现。经虚拟化的执行环境100可以包括两个或更多个主机系统120a、120b和迁移管理器140。
在一个实施例中,主机系统120a、120b可以包括相应的存储器102a、102b,其可以被VM 128经由存储器控制器130a、130b来访问。存储器102a、102b可以包括任何类型的存储器或存储技术,例如,随机存取存储器(RAM)、闪存存储器、或任何其他合适的存储器系统。例如,存储器102a和/或存储器102b可以包括动态随机存取存储器(DRAM)。
存储器102a、102b可以是物理存储器,例如,硬驱动器、光学驱动器、拇指驱动器、驱动器阵列、或其任何组合。
存储器102a、102b通过存储器控制器130a、130b被访问。尽管一个存储器控制器130a、130b被示出,但是系统可以具有任何数目的驻留在主机系统120a、120b上的存储器控制器130a、130b。存储器控制器130a、130b可以支持双倍数据速率(DDR)总线、事务性DDR(DDR-T)总线、和使得能够与可以被包括在存储器102a、102b中的各种存储器进行连接的其他链路/总线,该各种存储器包括DRAM和非易失性DIMM(NVDIMM)。在实施例中,存储器102a、102b还可以通过托管“远存储器”来支持不同的存储器层次结构(例如,两级存储器(2LM)),这假设在每个节点上存储器侧缓存能力被包括在处理器的集成存储器控制器(iMC)134a、134b中。
另外,主机系统120a、120b可以包括网络连接块105a、105b。在一些实施例中,网络连接块105a、105b是网络接口控制器(NIC),其可以被配置为将主机系统120a、120b以及每个存储器控制器130a、130b连接到网络115。网络115可以是有线网络、无线网络、或蜂窝网络。网络115可以是任何广域网(WAN)、任何局域网(LAN)、或互联网等等。例如,网络115可以是3GPP LTE网络或WiFi网络。因此,主机系统120a、120b不限于一种连接类型。而是,主机系统120a、120b可以使用多个链路来链接到各种资源。在一些情况下,对网络115的访问提供对附加存储器设备和存储驱动器的访问,并且存储器控制器130a、130b可以使用网络115来分配附加存储器设备和存储驱动器。
主机系统120a、120b和迁移管理器140包括执行所存储的指令的CPU 122a-c。CPU122a-c可以是单核处理器(也被称为“处理设备”)、多核处理器、计算集群。在一些情况下,主机系统120a、120b和迁移管理器140的CPU 122a-c和其他组件可以被实现为片上系统(SoC)。此外,主机系统120a、120b和迁移管理器140可以包括一个以上的CPU 122a-c。
CPU 122a、122b(例如,经由总线)连接到I/O接口设备124a、124b。I/O接口设备124a、124b被用于将主机系统120a、120b连接到一个或多个I/O设备(未示出)。I/O设备可以包括但不限于键盘和指示设备,其中指示设备可以包括触摸板或其他触摸屏等等。I/O设备可以是主机系统120a、120b的内置组件,或者可以是从外部连接到主机系统120a、120b的设备。主机系统120a、120b可以包括在图1中未示出的任何数目的附加组件,这取决于具体实施例的细节。此外,主机系统120a、120b可以包括比图1所示的那些组件更少的组件。
在一个实施例中,CPU 122a、122b执行虚拟化系统,该虚拟化系统管理主机系统120a、120b的硬件资源,以允许一个或多个操作系统的多个实例在主机系统120a、120b上执行。虚拟化系统可以用硬件实现(也被称为硬件辅助的虚拟化)。CPU 122a、122b的指令集被扩展为包括用于启动(launch)VM 128的指令,使得主机系统120a、120b的虚拟化系统以硬件辅助的方式被实现。在硬件辅助的虚拟化中,被称为虚拟机管理器(VMM)126a、126b的软件模块(也被称为管理程序)被用于创建和管理一个或多个VM 128(也被称为访客机)。VMM126a、126b向每个VM 128展现访客操作系统,并管理访客操作系统的执行。应用软件(也被称为访客软件)在VM 128上被执行。因此,可以通过如下操作来在VM 128上执行应用软件的多个实例:通过由主机系统120a、120b提供的虚拟化系统共享主机系统120a、120b的硬件资源。
VMM 126a、126b可以通过控制主机系统120a、120b的硬件组件来直接在主机系统120a、120b的硬件上运行,并管理VM 128的访客操作系统。这通常被称为I型VMM。可选地,VMM 126a、126b可以在主机系统120a、120b的操作系统(也被称为主机操作系统)内运行。这通常被称为II型VMM。在任一种类型的VMM 126a、126b之下,访客操作系统和访客应用软件的指令在VM 128上执行。
在一些实施例中,VM 128被从一个主机系统120a(源主机系统)迁移到另一主机系统120b(目的地主机系统)。VM 128的迁移可能出于各种原因而发生,包括例如负载平衡。在一些实施例中,VM 128可以被从源主机系统120a实时(live)迁移到目的地主机系统120b。VM 128的实时迁移是指在主机系统之间移动正在运行的VM 128而不将客户(VM的用户)与VM 128会话断开连接的过程。作为VM 128(实时或以其他方式的)迁移的一部分,VM 128的存储器、存储装置、和网络连接性被从源主机系统转移到目的地主机系统。
本发明的实施例处理在主机系统120a、120b之间迁移VM 128时对VM 128的安全存储器迁移。更具体地,本发明的实施例包括存储器控制器,用于经由不安全的信道将与VM128相关联的经加密存储器页从主机系统120a传输到主机系统120b。将存储器页从主机系统120a提供到主机系统120b包括:从主机系统120a的存储器读取存储器页,以及经由不安全的信道将存储器页传输到主机系统120b。用于导出密码密钥的密码数据项经由安全通信信道被从主机系统120a传输到主机系统120b。在一个实施例中,密码数据项可以包括接收自外部源的密钥材料,该密钥材料可以与本地存储的密码密钥组合。本发明的实施例还可以用于出于虚拟化以外的目的而迁移存储器,例如,将数据集从一个主机系统120a移动到另一主机系统120b。
在实施例中,VM 128驻留在受密码保护的执行环境中,在该执行环境中,存储器控制器130a、130b的加密引擎132a、132b对与VM 128相关联的存储器页进行加密和解密。在利用全存储器加密(TME)的情况下,由在主机系统120a、120b上执行的软件进行的任何存储器访问都用加密密钥来在存储器中被加密。多密钥全存储器加密(MKTME)是对TME的增强,它允许将多个加密密钥(所支持密钥的数目取决于实施例)用于VM 128的不同存储器页。CPU122a、122b利用加密引擎132a、132b来使得不同的存储器页使用不同的MKTME密钥被加密。存储器控制器130a、130b的加密引擎132a、132b可以在本文描述的受密码保护的执行环境中被使用,以支持每个受密码保护执行环境的一个或多个加密密钥,从而帮助实现不同VM工作负载之间的密码隔离。
迁移管理器140可以由(下面参考图5和图6更详细地描述的)计算机系统托管,并且包括由计算机系统执行的用于管理虚拟化执行环境100的一个或多个程序。在一个实施例中,迁移管理器140可以包括各种接口,包括用于与虚拟化执行环境100的主机系统120a和120b通信的管理接口、报告接口、和/或应用编程接口(API)。
迁移管理器140可以包括安全VM迁移功能,其将活动的VM从一个主机系统迁移到另一主机系统。在一个示例中,迁移管理器140可以包括安全迁移组件143。安全迁移组件143可以由硬件(例如,电路系统、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理器、通用计算机系统、或专用机器上运行的指令)、固件、微代码、或其组合来实现。安全迁移组件143从主机系统接收将VM迁移到另一主机系统的请求。安全迁移组件143经由第一安全通信信道从该主机系统接收包括密码密钥的密码数据项。安全迁移组件143还经由第二安全通信信道将包括密码密钥的密码数据项传输到该另一主机系统。下面描述关于安全迁移组件143以及相应功能的更多细节。
图2示出了根据一个实施例的使能安全VM迁移的系统200的框图。系统200包括:在主机系统120a和迁移管理器140之间的安全通信信道215a、在主机系统120b和迁移管理器140之间的安全通信信道215b以及在主机系统120a和120b之间的不安全通信信道210。系统200的安全通信信道215a、215b表示在主机系统120和迁移管理器140之间的通信信道的抽象,而非系统200组件。迁移管理器140包括关于图1描述的安全迁移组件143。在一个实施例中,诸如关于图1描述的VM 128a之类的VM被从使用由源存储器控制器130a管理的存储器的主机系统120a迁移到使用由目的地存储器控制器130b管理的存储器的主机系统120b。通过将与VM 128a相关联的存储器页230从主机系统120a迁移到主机系统120b,来将VM 128a从主机系统120a迁移到主机系统120b。
如上所讨论的,VM 128a和与VM 128a相关联的存储器页230驻留在主机系统120a上的受密码保护执行环境中。存储器控制器130a使用密码数据项220来导出密码密钥,以用于实现受密码保护的执行环境。当存储器页230被存储在主机系统120a的存储器(例如,图1的存储器102a)中时,密码密钥被用于加密与VM 128a相关联的存储器页230。类似地,当存储器页230被从主机系统120a的存储器读取时,密码密钥被用于解密存储器页230。
驻留在受密码保护执行环境中的存储器页230经由不安全通信信道210被从主机系统120a安全地迁移到主机系统120b。为了安全地迁移存储器页230,存储器控制器130a从受密码保护执行环境的存储器区域读取存储器页230而在VM 128a的安全迁移期间不解密存储器页230。在一个实施例中,存储器控制器130a从迁移管理器140接收通知。该通知向存储器控制器130a指示与VM 128a相关联的存储器页230将被安全地迁移到目的地主机系统。当存储器页230被从与受密码保护执行环境相关联的存储器区域读取时,该通知使存储器控制器130a阻止对存储器页230的解密。在实施例中,该通知可以使存储器页230的物理地址中的标志比特指示存储器页230将不被解密。例如,存储器页的物理地址中的标志比特可以被设置为值0,以指示该存储器页将不被存储器控制器130a解密。存储器控制器130a、130b包括这样的硬件:该硬件用于支持对存储器页的物理地址中的标志比特的标识并基于所标识的标志比特来执行动作(例如,不对存储器页进行加密/解密)。这导致经加密存储器页230经由不安全通信信道210被从主机系统120a安全地迁移到主机系统120b。与VM 128a相关联的存储器页230可以使用与主机系统120a上的第一受密码保护执行环境已使用的密码密钥相同的密码密钥来驻留在主机系统120b处的另一受密码保护执行环境中。
密码数据项220被从主机系统120a传输到主机系统120b,以允许主机系统120b的存储器控制器130a对已经由不安全通信信道210被迁移到主机系统120b的经加密存储器页230进行解密。密码数据项220可以被用于导出要由受密码保护执行环境使用的密码密钥,其中,接收到的存储器页将被存储在该受密码保护执行环境中。在一个实施例中,主机系统120b可以通过将预定义的变换应用于密码数据项220(例如,将比特填充到密码数据项220,从密码数据项220中移除某些比特,将密码函数应用于密码数据项220等)来产生密码密钥。在另一实施例中,主机系统120b可以通过将密码数据项220与本地生成的第二密码数据项组合来产生密码密钥。在另一实施例中,主机系统120b可以通过将密码数据项220与本地生成的第二密码数据项组合并且然后将预定义的变换应用于这两个密码数据项的组合来产生密码密钥。在另一实施例中,主机系统120b可以将密码数据项220用作密码密钥。
在一个实施例中,密码数据项220可以包括存储器页230的物理地址信息,该信息被用于导出密码密钥。物理地址信息可以包括与密码密钥相关联的密钥标识符(KeyID),其中该KeyID可以被传输到主机系统120a的存储器控制器130a的加密引擎。KeyID是到由存储器控制器130a维护的表的索引,该表本地存储一个或多个密码密钥以及每个密码密钥的关联加密模式。存储器控制器130a使用KeyID来识别索引表中的本地存储的密码密钥和关联加密模式,并将本地存储的密码密钥与密码数据项220组合以导出密码密钥。存储器页230和密码密钥可以使用各种方法来被加密和导出。示例可以包括但不限于TME、MKTME、TDX、SME、和SEV。
密码数据项220经由安全通信信道215a被从主机系统120a传输到迁移管理器140。在一个实施例中,安全通信信道215a、215b可以是在主机系统120a与迁移管理器140之间建立的利用IPSec的通信信道,如先前所描述的。密码数据项220被主机系统120a的存储器控制器130a加密。在一个实施例中,可以计算密码数据项220的密码散列以验证(validate)密码数据项220的真实性。经加密的密码数据项220和密码散列经由安全通信信道215a被传输到迁移管理器140。在接收到经加密的密码数据项220和密码散列时,迁移管理器140使用密码散列来验证密码数据项220。
然后,迁移管理器140对密码数据项220进行加密以经由安全通信信道215b与密码散列一起传输到主机系统120b。在接收到经加密的密码数据项220和另一密码散列时,主机系统120b的存储器控制器130b使用该另一密码散列来验证密码数据项220的真实性。然后,主机系统120b可以利用密码数据项来导出密码密钥,以用于实现主机系统120b上的受密码保护执行环境,在该执行环境中,VM 128a的存储器页230被使用该密码密钥来加密和解密。尽管先前的图示描述了使用密码数据项来导出单个密码密钥,但是在其他实施例中,任何数目的密码密钥可以被从密码数据项中导出。
图3是根据另一实施例的执行VM从第一主机系统到第二主机系统的安全迁移的方法300的流程图。方法300可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路系统、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理器、通用计算机系统、或专用机器上运行的指令)、固件、微代码、或其组合。在一个实施例中,方法300可以部分地由在图1和图2的安全迁移组件143中实现的处理逻辑来执行。
为了简化说明,方法300被描绘和描述为一系列动作。然而,根据本公开的动作可以以各种顺序发生和/或同时发生,以及与本文未展现和描述的其他动作一起发生。此外,根据所公开的主题,可以执行所有示出的动作的一部分来实现方法300。另外,本领域技术人员将理解和明白,方法300可以可选地经由状态图或事件被表示为一系列相关的状态。
参考图3,在框302处,处理逻辑经由第一安全通信信道(例如,图2的安全通信信道215a)从第一主机系统接收用于导出密码密钥的密码数据项。密码数据项可以被用来导出密码密钥,该密码密钥被第一主机系统上的受密码保护执行环境采用。由第一主机系统执行的要迁移到第二主机系统的VM驻留在受密码保护执行环境中。当与虚拟机相关联的存储器页被存储在与受密码保护执行环境相关联的存储器区域处时,第一主机系统的存储器控制器对这些存储器页进行加密。类似地,当与虚拟机相关联的存储器页被从与受密码保护执行环境相关联的存储器区域读取时,存储器控制器对这些存储器页进行解密。在一个实施例中,密码数据项可以包括用于导出密码密钥的密钥材料,例如,与VM的存储器页相关联的物理地址信息。
在框304处,处理逻辑经由第二安全通信信道(例如,图2的安全通信信道215b)将接收到的密码数据项传输到第二主机系统。密码数据项可以被第二主机系统上的第二受密码保护执行环境采用,其中,一旦VM被迁移到该第二受密码保护执行环境中,就可以驻留在其中。第二受密码保护执行环境使用与第一主机系统的第一受密码保护执行环境已使用的密码密钥相同的密码密钥。
在框306处,处理逻辑使第一主机系统经由不安全的信道(例如,图2的不安全通信信道210)将驻留在受密码保护执行环境中的VM的存储器页迁移到第二主机系统。VM的存储器页可以被存储在第二主机系统上的第二受密码保护执行环境中。在VM被从第一主机系统迁移到第二主机系统之前,第一主机系统的VMM可以暂停第一主机系统对VM的执行。在VM被迁移到第二主机系统时,第二主机系统的VMM可以继续对VM的执行。
在实施例中,处理逻辑可以响应于从第一主机系统的VMM接收到迁移VM的请求而引起VM从第一主机系统到第二主机系统的迁移。在实施例中,该VMM可以响应于从VM的用户接收到将VM迁移到另一主机系统的请求而将迁移VM的请求传输到迁移管理器。在一些实施例中,该VMM可以响应于第一主机系统上可用于执行VM的计算资源的短缺而传输将VM迁移到另一主机系统的请求。在实施例中,VMM可以响应于检测到第一主机系统的硬件故障而传输将VM迁移到另一主机系统的请求。
在实施例中,由第一主机系统执行的VM可以被放置在受密码保护的执行环境中,以促进VM的安全迁移。例如,由第一主机系统执行的VM可能是不受保护运行的。在确定不受保护运行的VM要被迁移到第二主机系统时,VM可以被在第一主机系统上执行的VMM放置在受密码保护的执行环境中。随后,与VM相关联的存储器页可以被迁移到第二主机系统上的受密码保护的执行环境,如先前所描述的。在一个实施例中,VM可以在迁移之后保持在第二主机系统上的受密码保护执行环境中。在实施例中,VM可以在迁移之后被从第二主机系统上的受密码保护执行环境中移除。
图4是根据另一实施例的执行从第一主机系统到第二主机系统的安全VM迁移的方法400的流程图。方法400可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路系统、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理器、通用计算机系统、或专用机器上运行的指令)、固件、微代码、或其组合。在一个实施例中,方法400可以部分地由在图1和图2的迁移管理器140中实现的处理逻辑来执行。
为了简化说明,方法400被描绘和描述为一系列动作。然而,根据本公开的动作可以以各种顺序发生和/或同时发生,以及与本文未展现和描述的其他动作一起发生。此外,根据所公开的主题,可以执行所有示出的动作的一部分来实现方法400。另外,本领域技术人员将理解和明白,方法400可以可选地经由状态图或事件被表示为一系列相关的状态。
参考图4,在框402处,迁移管理器接收将VM从第一主机系统迁移到第二主机系统的请求。
在框404处,迁移管理器建立到第一主机系统的第一安全通信信道和到第二主机系统的第二安全通信信道。
在框406处,迁移管理器向第一主机系统的存储器控制器传输第一通知,该第一通知标识要迁移的VM。该通知使第一主机系统的存储器控制器阻止在迁移期间对VM的存储器页进行解密。如先前所讨论的,因为VM驻留在第一主机系统上的受密码保护执行环境中,所以第一主机系统的存储器控制器在存储器页被从第一主机系统的存储器读取时通常会对VM的存储器页进行解密。因此,为了阻止存储器控制器对存储在受密码保护执行环境中的存储器页进行解密,处理逻辑可以传输这样的通知:该通知使存储器控制器阻止迁移期间存储器控制器对VM的存储器页进行解密。
在框408处,迁移管理器经由第一安全通信信道从第一主机系统接收密码数据项和密码散列。
在框410处,迁移管理器使用在框408处从第一主机系统接收的密码散列来验证密码数据项。
在框412处,迁移管理器经由第二安全通信信道将密码数据项传输到第二主机系统。第二主机系统可以使用接收到的密码数据项来导出用于对与VM相关联的存储器页进行解密的密码密钥。
在框414处,迁移管理器向第二主机系统的存储器控制器传输第二通知,该第二通知使第二主机系统的存储器控制器在将接收到的存储器页存储在受密码保护的执行环境中时避免对它们进行加密。在没有这种通知的情况下,存储器控制器可能会对正被存储在受密码保护执行环境中的任何数据项进行加密。
图5是根据另一实施例的主机系统将VM放置在受密码保护的执行环境中并执行VM的安全迁移的方法500的流程图。方法500可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路系统、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理器、通用计算机系统、或专用机器上运行的指令)、固件、微代码、或其组合。在一个实施例中,方法500可以部分地由在图1和图2的VMM 122a中实现的处理逻辑来执行。
为了简化说明,方法500被描绘和描述为一系列动作。然而,根据本公开的动作可以以各种顺序发生和/或同时发生,以及与本文未展现和描述的其他动作一起发生。此外,根据所公开的主题,可以执行所有示出的动作中的一部分来实现方法500。另外,本领域技术人员将理解和明白,方法500可以可选地经由状态图或事件被表示为一系列相关的状态。
在框502处,主机系统上的VMM从迁移管理器接收安全迁移在该主机系统上执行的VM的请求。在实施例中,该请求可以包括这样的通知:该通知使主机系统的存储器控制器阻止迁移期间对VM的存储器页的解密。
在框504处,在接收到安全迁移VM的请求时,主机系统的VMM将VM放置在主机系统上的受密码保护执行环境中。当驻留在受密码保护的执行环境中时,与VM相关联的存储器页在它们被存储在主机系统的存储器中时被加密并且在这些存储器页被从存储器取回时被解密。
在框506处,VMM从迁移管理器接收将VM迁移到目的地主机系统的请求。
在框508处,VMM经由安全的通信信道将密码数据项传输到迁移管理器。该密码数据项被用于导出密码密钥,该密码密钥用于对驻留在主机系统上的受密码保护执行环境中的VM的存储器页进行加密和解密。
在框510处,VMM经由不安全的通信信道将与VM相关联的存储器页迁移到第二主机系统。
图6是根据另一实施例的、接收与迁移的VM相关联的密码数据项和存储器页的方法600的流程图。方法600可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路系统、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理器、通用计算机系统、或专用机器上运行的指令)、固件、微代码、或其组合。在一个实施例中,方法600可以部分地由在图1和图2的VMM 122b中实现的处理逻辑来执行。
为了简化说明,方法600被描绘和描述为一系列动作。然而,根据本公开的动作可以以各种顺序发生和/或同时发生,以及与本文未展现和描述的其他动作一起发生。此外,根据所公开的主题,可以执行所有示出的动作的一部分来实现方法600。另外,本领域技术人员将理解和明白,方法600可以可选地经由状态图或事件被表示为一系列相关的状态。
在框602处,VMM从迁移管理器接收通知。接收到的通知使主机系统的存储器控制器阻止对将被主机系统接收的与VM相关联的VM存储器页进行加密。
在框604处,VMM经由安全通信信道从迁移管理器接收密码数据项,该密码数据项被用于导出密码密钥以对与VM相关联的存储器页进行加密和解密。
在框606处,VMM经由不安全的通信信道从源主机系统接收与VM相关联的存储器页。
在框608处,主机系统的存储器控制器使用在框604处接收的密码数据项来导出密码密钥。
在框610处,主机系统的存储器控制器使用在框608处导出的密码密钥来对与VM相关联的存储器页进行解密。
参考图7,具有利用中速接口的多个互连的计算机系统700的实施例被示出。系统700包括耦合到控制器集线器715的系统存储器710和处理器705。处理器705包括任何处理元件,例如,微处理器、主机处理器、嵌入式处理器、协处理器、或其他处理器。处理器705通过接口706(例如,前端总线(front-side bus,FSB)等)耦合到控制器集线器715。在一个实施例中,接口706是串行点对点互连,如下所描述的。在另一实施例中,接口706包括符合不同互连标准的串行差分互连架构。
系统存储器710包括任何存储器设备,例如,随机存取存储器(RAM)、非易失性(NV)存储器、或系统700中的设备可访问的其他存储器。在一个实施例中,处理器705直接接口连接到系统存储器710。在另一实施例中,处理器705通过控制器集线器715耦合到系统存储器710。系统存储器710可以通过存储器接口716耦合到控制器集线器715。存储器接口的示例包括:双倍数据速率(DDR)存储器接口、双信道DDR存储器接口、和动态RAM(DRAM)存储器接口。
在一个实施例中,控制器集线器715是互连层次结构中的根集线器、根联合体、或根控制器。控制器集线器715的示例包括:芯片组、存储器控制器集线器(MCH)、北桥(northbridge)、互连控制器集线器(ICH)、南桥(southbridge)、和根控制器/集线器。术语芯片组通常是指两个物理上分开的控制器集线器,即,耦合到互连控制器集线器(ICH)的存储器控制器集线器(MCH)。注意,当前系统通常包括与处理器705集成的MCH,而控制器715将以如下所描述的类似方式与I/O设备通信。在一些实施例中,对等路由可选择地通过根联合体715被支持。
在此,控制器集线器715通过串行链路719耦合到交换机/桥接器720。输入/输出模块717和721(其也可以被称为接口/端口717和721)包括/实现分层协议栈,以提供控制器集线器715和交换机720之间的通信。在一个实施例中,多个设备能够耦合到交换机720。
交换机/桥接器720将来自设备725的分组/消息向上游(即,朝着根联合体沿层次结构向上)路由到控制器集线器715并将来自处理器705或系统存储器710的分组/消息向下游(即,远离根控制器沿层次结构向下)路由到设备725。在一个实施例中,交换机720被称为多个虚拟桥接器设备的逻辑组装件。设备725包括要耦合到电子系统的任何内部或外部设备或组件,例如,I/O设备、网络接口控制器(NIC)、附加卡(add-in card)、音频处理器、网络处理器、硬驱动器、存储设备、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、Firewire设备、通用串行总线(USB)设备、扫描仪、摄像头、RF组件、和其他输入/输出设备。这样的设备可以被称为端点。尽管未具体示出,但是设备725可以包括用于支持其他设备的桥接器。
图形加速器730也通过串行链路732耦合到控制器集线器715。在一个实施例中,图形加速器730耦合到MCH,该MCH耦合到ICH。然后,交换机720耦合到ICH,并且因此I/O设备725耦合到ICH。I/O模块731和718还用于实现分层协议栈,以在图形加速器730和控制器集线器715之间进行通信。类似于上面的MCH讨论,图形控制器或图形加速器730可以被集成在处理器705中。
I/O设备725包括接口726,并且交换机/桥接器720包括接口722。接口726经由串行链路723耦合到接口722。接口722可以以时钟速率向接口726发送第一多个分组,接口722可以向接口726发送速度切换分组,并且接口722可以以PLL速率向接口726发送第二多个分组。
接下来转到图8,根据本公开的片上系统(SOC)设计的实施例被描绘。作为特定的说明性示例,SOC 800被包括在用户设备(UE)中。在一个实施例中,UE是指要由端用户用来进行通信的任何设备,例如,手持电话、智能手机、平板电脑、超薄笔记本、具有宽带适配器的笔记本、或任何其他类似的通信设备。UE通常连接到基站或节点,该基站或节点潜在地在本质上对应于GSM网络中的移动站(MS)。
在此,SOC 800包括2个核心-806和807。类似于上面的讨论,核心806和807可以符合指令集架构,例如,基于
Figure BDA0002698899320000161
Architecture CoreTM的处理器、Advanced Micro Devices(AMD)公司的处理器、基于MIPS的处理器、基于ARM的处理器设计、或其客户以及它们的被许可方或采用方。核心806和807耦合到与总线接口单元809和L2缓存804相关联的缓存控制808,以与系统800的其他部分通信。互连810包括片上互连(例如,IOSF、AMBA、或上面讨论的其他互连),其潜在地实现所描述的本公开的一个或多个方面。
接口810提供到其他组件的通信信道,这些其他组件例如是,用于与SIM卡接口连接的订户身份模块(SIM)830、用于保存引导代码(boot code)以供核心806和807执行来初始化和引导SOC 800的引导ROM 835、用于与外部存储器(例如,DRAM 860)接口连接的SDRAM控制器840、用于与非易失性存储器(例如,闪存865)接口连接的闪存控制器845、用于与外围设备接口连接的外围控制Q1650(例如,串行外围接口)、用于显示和接收输入(例如,启用触摸的输入)的视频接口825和视频编解码器820、用于执行与图形有关的计算的GPU 815等。这些接口中的任一者都可以结合本文描述的本公开的各方面。
互连810可以经由中速接口115(例如,片上互连、IOSF、AMBA、或其他互连)与另一组件连接。
此外,系统示出了用于通信的外围设备,例如,
Figure BDA0002698899320000172
模块870、3G调制解调器875、GPS 880、和
Figure BDA0002698899320000171
885。如上所陈述的,注意,UE包括用于通信的无线电。作为结果,这些外围通信模块不是全部都需要的。然而,某种形式的用于外部通信的无线电要被包括在UE中。
以下示例涉及进一步的实施例。示例1是一种虚拟机迁移方法,该方法包括:由迁移管理器经由第一安全通信信道从第一主机系统接收被用于导出密码密钥的密码数据项,该密码密钥被第一存储器控制器用来实现用于存储与虚拟机相关联的存储器页的第一受密码保护执行环境;经由第二安全通信信道将密码数据项传输到第二主机系统,以实现第二主机系统上的用于存储与虚拟机相关联的存储器页的第二受密码保护执行环境;以及使第一主机系统经由不安全通信信道将虚拟机的存储器页迁移到第二主机系统,以存储在第二受密码保护执行环境中。
在示例2中,示例1的主题,其中,接收密码数据项还包括:从第一主机系统接收密码数据项和密码散列;以及在接收到密码数据项和密码散列时,使用密码散列来验证密码数据项。
在示例3中,示例1-2中任一项的主题,还包括:从第一主机系统接收将虚拟机迁移到第二主机系统的请求;以及使虚拟机被放置在第一受密码保护执行环境中。
在示例4中,示例1-3中任一项的主题,还包括:向与第一主机系统相关联的第一存储器控制器传输通知,该通知用于使第一存储器控制器阻止对与虚拟机相关联的存储器页的解密。
在示例5中,示例1-4中任一项的主题,其中,密码数据项包括与虚拟机相关联的存储器页的物理地址信息。
在示例6中,示例1-5中任一项的主题,其中,物理地址信息包括与密码密钥相关联的密钥标识符。
在示例7中,示例1-6中任一项的主题,其中,第二主机系统的第二存储器控制器用于利用第二密码密钥来对与虚拟机相关联的存储器页进行加密和解密。
示例8是一种虚拟机迁移系统,包括:存储器;以及可操作地耦合到该存储器的处理设备,该处理设备用于进行以下操作:经由第一安全通信信道从第一主机系统接收被用于导出密码密钥的密码数据项,该密码密钥被第一存储器控制器用来实现用于存储与虚拟机相关联的存储器页的第一受密码保护执行环境;经由第二安全通信信道将密码数据项传输到第二主机系统,以实现第二主机系统上的用于存储与虚拟机相关联的存储器页的第二受密码保护执行环境;以及使第一主机系统经由不安全通信信道将虚拟机的存储器页迁移到第二主机系统,以存储在第二受密码保护执行环境中。
在示例9中,示例8的主题,其中,为了接收密码数据项,处理设备还用于:从第一主机系统接收密码数据项和密码散列,其中密码数据项是经加密的;以及在接收到密码数据项和密码散列时,使用密码散列来验证密码数据项。
在示例10中,示例8-9中任一项的主题,其中,处理设备还用于:从第一主机系统接收将虚拟机迁移到第二主机系统的请求;以及使虚拟机被放置在第一受密码保护执行环境中。
在示例11中,示例8-10中任一项的主题,其中,处理设备还用于:向与第一主机系统相关联的第一存储器控制器传输第一通知,该第一通知用于使第一存储器控制器阻止对与虚拟机相关联的存储器页的解密。
在示例12中,示例8-11中任一项的主题,其中,密码数据项包括与虚拟机相关联的存储器页的物理地址信息。
在示例13中,示例8-12中任一项的主题,其中,物理地址信息包括与密码密钥相关联的密钥标识符。
在示例14中,示例8-13中任一项的主题,其中,第二主机系统的第二存储器控制器用于利用第二密码密钥来对与虚拟机相关联的存储器页进行加密和解密。
示例15是一种包括指令的非暂时性计算机可读存储介质,这些指令在被处理设备执行时使该处理设备进行以下操作:经由第一安全通信信道从第一主机系统接收被用于导出第一密码密钥的密码数据项,该第一密码密钥被第一存储器控制器用来实现用于存储与虚拟机相关联的存储器页的第一受密码保护执行环境;经由第二安全通信信道将密码数据项传输到第二主机系统,以实现第二主机系统上的用于存储与虚拟机相关联的存储器页的第二受密码保护执行环境;以及使第一主机系统经由不安全通信信道将虚拟机的存储器页迁移到第二主机系统,以存储在第二受密码保护执行环境中。
在示例16中,示例15的主题,其中,为了接收包括密码密钥的密码数据项,处理设备还用于:从第一主机系统接收密码数据项和密码散列,其中密码数据项是经加密的;以及在接收到密码数据项和密码散列时,使用密码散列来验证密码数据项。
在示例17中,示例15-16中任一项的主题,其中,处理设备还用于:向与第一主机系统相关联的第一存储器控制器传输通知,该通知用于使第一存储器控制器阻止对与虚拟机相关联的存储器页的解密。
在示例18中,示例15-17中任一项的主题,其中,密码数据项包括与虚拟机相关联的存储器页的物理地址信息。
在示例19中,示例15-18中任一项的主题,其中,物理地址信息包括与密码密钥相关联的密钥标识符。
在示例20中,示例15-19中任一项的主题,其中,第二主机系统的第二存储器控制器用于利用第二密码密钥来对与虚拟机相关联的存储器页进行加密和解密。
各种实施例可以具有以上描述的结构特征的不同组合。例如,以上描述的方法的全部可选特征也可以针对SOC应用中的各种用途来被实现并且可以针对本文描述的接口来被实现,并且示例中的细节可以在一个或多个实施例中的任何地方被使用。
虽然已经针对有限数目的实施例描述了本公开,但是本领域技术人员将理解源于这些实施例的许多修改和变化。意图是,所附权利要求覆盖落入本公开的真实精神和范围内的全部这样的修改和变化。
在本文的描述中,为了提供对本公开的透彻理解,阐述了许多具体的细节,例如以下各项的示例:特定类型的处理器及系统配置、特定的硬件结构、特定的架构及微架构细节、特定的寄存器配置、特定的指令类型、特定的系统组件、特定的度量/高度、特定的处理器流水线阶段及操作等。然而,对于本领域技术人员将显而易见的是,不需要采用这些具体的细节来实践本公开。在其他情况下,为了避免不必要地使本公开不清楚,未详细描述众所周知的组件或方法,例如,特定和替代的处理器架构、用于所描述算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术及材料、特定编译器实施例、算法在代码中的特定表达、特定的掉电及闸控技术/逻辑以及计算机系统的其他特定操作细节。
实施例可以参考(例如,计算平台或微处理器中的)特定集成电路中的固态存储器设备中的组件的时间戳验证来被描述。实施例还可以适用于其他类型的集成电路和可编程逻辑器件。例如,所公开的实施例不限于台式计算机系统或便携式计算机(例如,
Figure BDA0002698899320000201
UltrabooksTM计算机),并且还可以被用在其他设备中,例如,手持式设备、平板电脑、其他轻薄笔记本电脑、片上系统(SoC)设备、和嵌入式应用。手持式设备的一些示例包括蜂窝电话、互联网协议设备、数码相机、个人数字助理(PDA)、和手持式PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或可以执行下面教导的功能和操作的任何其他系统。描述了系统可以是任何种类的计算机或嵌入式系统。所公开的实施例可以特别地被用于低端(low-end)设备,像可穿戴设备(例如、手表)、电子植入物、感测及控制基础设施设备、控制器、监督控制及数据采集(supervisory control and data acquisition,SCADA)系统等。此外,本文描述的装置、方法、和系统不限于物理计算设备,而是还可以涉及针对能量节约和效率的软件优化。如在下面的描述中将变得显而易见的,本文(无论是参考硬件、固件、软件、还是其组合)描述的方法、装置、和系统的实施例对于与性能考虑相平衡的“绿色技术”未来是至关重要的。
尽管本文的实施例是参考处理器来描述的,但是其他实施例可适用于其他类型的集成电路和逻辑器件。本公开的类似技术和教导可以被应用于其他类型的电路或半导体器件,这些电路或半导体器件可以受益于较高的流水线吞吐量和改善的性能。本发明的实施例的教导可适用于执行数据操纵的任何处理器或机器。然而,本公开不限于执行512比特、256比特、128比特、64比特、32比特、或16比特数据操作的处理器或机器,并且可以被应用于其中对数据的操纵或管理被执行的任何处理器和机器。另外,出于说明的目的,本文的描述提供了示例,并且附图示出了各种示例。然而,这些示例不应以限制性的意义被解释,因为它们仅旨在提供本发明的实施例的示例,而不是提供本发明的实施例的全部可能实现方式的详尽无遗的列表。
尽管下面的示例描述了在执行单元和逻辑电路的情境中的指令处理及分发,但是本发明的其他实施例可以通过被存储在机器可读有形介质上的数据或指令来被实现,该数据或指令在被机器执行时使该机器执行与本发明的至少一个实施例一致的功能。在一个实施例中,与本发明的实施例相关联的功能被体现在机器可执行指令中。这些指令可以被用于使得用这些指令编程的通用或专用处理器执行本公开的步骤。本发明的实施例可以被提供作为计算机程序产品或软件,其可以包括其上存储有指令的机器或计算机可读介质,这些指令可以被用于对计算机(或其他电子设备)进行编程以执行根据本发明的实施例的一个或多个操作。可选地,本发明的实施例的操作可以由包含用于执行这些操作的固定功能逻辑的特定硬件组件来执行,或者由经编程的计算机组件与固定功能硬件组件的任何组合来执行。
可以将被用于对逻辑进行编程以执行本发明的实施例的指令存储在系统中的存储器内,例如,DRAM、缓存、闪存存储器、或其他存储装置。此外,指令可以经由网络或通过其他计算机可读介质被分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机构,但不限于:软盘、光盘、紧凑盘只读存储器(CD-ROM)、和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存存储器、或被用在经由电的,光的,声的或其他形式的传播信号(例如、载波、红外信号、数字信号等)在互联网上对信息的传输中的有形机器可读存储装置。因此,计算机可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的有形机器可读介质。
设计可能会经过从创建到仿真再到制造的各个阶段。表示设计的数据可以以多种方式来表示设计。首先,如在仿真中有用的,可以使用硬件描述语言或另一种功能描述语言来表示硬件。另外,可以在设计过程的某些阶段处产生具有逻辑和/或晶体管门的电路级模型。此外,大多数设计在某阶段达到表示各种设备在硬件模型中的物理放置的数据的级别。在使用常规的半导体制造技术的情况下,表示硬件模型的数据可以是指定如下内容的数据:各种特征在针对用于产生集成电路的掩膜(mask)的不同掩膜层上的存在或不存在。在设计的任何表示中,数据可以被存储在任何形式的机器可读介质中。诸如盘之类的磁或光存储装置或者存储器可以是机器可读介质,用于存储经由光波或电波调制来传输的或以其他方式生成的信息以传输这种信息。当指示或承载代码或设计的电载波被传输时,就对电信号的复制、缓冲或重新传输被执行而言,新的复制被进行。因此,通信提供商或网络提供商可以至少暂时地在有形的机器可读介质上存储物品,例如,被编码到载波中的体现本发明的实施例的技术的信息。
如本文所使用的模块是指硬件、软件、和/或固件的任何组合。作为示例,模块包括与非暂时性介质相关联的硬件(例如,微控制器),该非暂时性介质用于存储被适配为由微控制器执行的代码。因此,在一个实施例中对模块的引用指的是被专门配置为识别和/或执行要保存在非暂时性介质上的代码的硬件。此外,在另一实施例中,对模块的使用指的是包括代码的非暂时性介质,该代码被具体适配为由微控制器执行以执行预定的操作。并且如可以被推断的,在又一实施例中,术语模块(在该示例中)可以指代微控制器与非暂时性介质的组合。通常,被示出为分开的模块边界通常会变化并潜在地重叠。例如,第一和第二模块可以共享硬件、软件、固件、或其组合,同时潜在地保留某独立的硬件、软件、或固件。在一个实施例中,对术语逻辑的使用包括诸如晶体管、寄存器之类的硬件或诸如可编程逻辑器件之类的其他硬件。
在一个实施例中,对短语“被配置为”的使用指的是布置,合并,制造,提供以销售,导入和/或设计装置、硬件、逻辑、或元件以执行指派或确定的任务。在该示例中,不是正在工作的装置或其元件仍“被配置为”执行指派的任务,如果其被设计、耦合、和/或互连以执行所述指派的任务的话。仅作为说明性示例,逻辑门可以在操作期间提供0或1。但是“被配置为”向时钟提供使能信号的逻辑门不包括可以提供1或0的每个潜在逻辑门。替代地,该逻辑门是以某种方式耦合的使得在操作期间1或0输出将用于使能时钟的一种逻辑门。再次注意,对术语“被配置为”的使用不要求操作,而是专注于装置、硬件、和/或元件的潜在状态,其中在潜在状态下,该装置、硬件、和/或元件被设计为在该装置、硬件、和/或元件正在工作时执行特定的任务。
此外,在一个实施例中对短语“用于”、“能够/有能力”、和/或“可操作以”的使用指的是被以如下方式设计的某装置、逻辑、硬件、和/或元件:使得能够以指定的方式来使用该装置、逻辑、硬件、和/或元件。如上所述,在一个实施例中,对用于,有能力,或可操作以的使用指的是装置、逻辑、硬件、和/或元件的潜在状态,其中该装置、逻辑、硬件、和/或元件不是正在工作的但以这样的方式被设计:使得能够以指定的方式来使用装置。
如本文所使用的,值包括数字、状态、逻辑状态、或二进制逻辑状态的任何已知表示。通常,对逻辑电平、逻辑值、或逻辑的值的使用也被称为1和0,其仅表示二进制逻辑状态。例如,1指代高逻辑电平并且0指代低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元可以能够保存单个逻辑值或多个逻辑值。但是,已经使用了计算机系统中值的其他表示。例如,十进制数字十也可以被表示为二进制值1010和十六进制字母A。因此,值包括能够被保存在计算机系统中的信息的任何表示。
此外,状态可以由值或值的一部分表示。作为示例,第一值(例如,逻辑1)可以表示默认或初始状态,而第二值(例如,逻辑0)可以表示非默认状态。另外,在一个实施例中,术语重置和设置分别指的是默认的和更新后的值或状态。例如,默认值潜在地包括高逻辑值(即,重置),而更新后的值潜在地包括低逻辑值(即,设置)。注意,值的任何组合可以被用于表示任何数目的状态。
以上阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在机器可访问的,机器可读的,计算机可访问的,或计算机可读的介质上的可由处理元件执行的指令或代码被实现。非暂时性机器可访问/可读介质包括以诸如计算机或电子系统之类的机器可读的形式提供(即,存储和/或传输)信息的任何机构。例如,非暂时性机器可访问介质包括:随机存取存储器(RAM),例如,静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪存存储器设备;电存储设备;光存储设备;声存储设备;用于保存接收自暂时性(传播的)信号(例如,载波、红外信号、数字信号)的信息的其他形式的存储设备;等等,它们要被与可以从中接收信息的非暂时性介质区分开。
可以将被用于对逻辑进行编程以执行本发明的实施例的指令存储在系统中的存储器内,例如,DRAM、缓存、闪存存储器、或其他存储装置。此外,指令可以经由网络或通过其他计算机可读介质被分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机构,但不限于:软盘、光盘、紧凑盘只读存储器(CD-ROM)、和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存存储器、或被用在经由电的,光的,声的或其他形式的传播信号(例如、载波、红外信号、数字信号等)在互联网上对信息的传输中的有形机器可读存储装置。因此,计算机可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的有形机器可读介质。
在整个说明书中,对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定的特征、结构、或特性被包括在本发明的至少一个实施例中。因此,短语“在一个实施例中”或“在实施例中”在整个说明书中各个地方的出现不一定全部指代同一实施例。此外,特定的特征、结构、或特性可以以任何合适的方式被组合在一个或多个实施例中。
在前述说明书中,已经参考特定示例性实施例给出了详细描述。然而,将显而易见的是,在不脱离所附权利要求书中阐述的本公开的较广泛精神和范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图要被看作是以说明性意义的而非限制性意义的。此外,对实施例和其他示例性语言的前述使用不一定指代同一实施例或同一示例,而是可以指代不同且有区别的实施例,以及潜在地同一实施例。
详细描述的一些部分在对计算机存储器内的数据比特的操作的算法和符号表示方面被展现。这些算法描述和表示是数据处理领域的技术人员用来最有效地向本领域的其他技术人员传达其工作实质的手段。这里并且通常将算法构想为导致期望结果的操作的自洽序列。这些操作是需要物理量的物理操纵的那些操作。通常,不过不一定,这些量采取能够被存储,被转移,被组合,被比较和以其他方式被操纵的电或磁信号的形式。已经证明,有时主要出于一般用法的原因,将这些信号称为比特、值、元素、符号、字符、项、数字等是方便的。本文描述的块可以是硬件、软件、固件、或其组合。
但是,应该记住,全部这些和类似的术语要与适当的物理量相关联,并且仅仅是被应用于这些量的方便标签。除非另外被具体陈述或从以上讨论显而易见的,否则将理解的是,在整个描述中,使用了诸如“定义”、“确定”、“发出”、“链接”、“关联”、“获得”、“认证”、“禁止”、“实行”、“请求”、“通信”、“设置”、“接收”、“生成”、“传输”、“改变”、“放置”、“检测”、“自重置”、“重置”、“建立”、“执行”、“输出”等之类的术语的讨论指的是计算系统或类似的电子计算设备的动作和过程,该计算系统或类似的电子计算设备将被表示为在该计算系统的寄存器和存储器内的物理(电子)量的数据操纵和变换为被类似地表示为在计算系统存储器或寄存器或其他这种信息存储,传输或显示设备内的物理量的其他数据。
词语“示例”或“示例性”在本文中被用来表示充当示例、实例、或说明。本文中被描述为“示例”或“示例性”的任何方面或设计不一定被解释为比其他方面或设计优选或有利。而是,对词语“示例”或“示例性”的使用旨在以具体的方式展现概念。如在本申请中所使用的,术语“或”旨在表示包括性的“或”而非排他性的“或”。也就是说,除非另有说明或从上下文清楚的,否则“X包括A或B”旨在表示任何自然的包括性排列。也就是说,如果X包括A;X包括B;或X包括A和B两者,则在任何前述情况下“X包括A或B”都被满足。另外,如在本申请和所附权利要求中使用的冠词“一”和“一种”通常应被解释为表示“一个或多个”,除非另有说明或从上下文清楚的要被指向单数形式。此外,贯穿全文对术语“实施例”或“一个实施例”或“实现方式”或“一个实现方式”的使用不旨在表示同一实施例或实现方式,除非被如此描述。同样,如本文所使用的术语“第一”、“第二”、“第三”、“第四”等是意为作为在不同元素之间进行区分的标签并且可能不一定根据其数字名称而具有顺序含义。

Claims (20)

1.一种虚拟机迁移方法,包括:
由迁移管理器经由第一安全通信信道从第一主机系统接收被用于导出密码密钥的密码数据项,该密码密钥被第一存储器控制器用来实现第一受密码保护执行环境,该第一受密码保护执行环境用于存储与虚拟机相关联的存储器页;
经由第二安全通信信道将所述密码数据项传输到第二主机系统,以实现所述第二主机系统上的第二受密码保护执行环境,该第二受密码保护执行环境用于存储与所述虚拟机相关联的存储器页;以及
使所述第一主机系统经由不安全通信信道将所述虚拟机的所述存储器页迁移到所述第二主机系统,以存储在所述第二受密码保护执行环境中。
2.根据权利要求1所述的虚拟机迁移方法,其中,接收所述密码数据项还包括:
从所述第一主机系统接收所述密码数据项和密码散列;以及
在接收到所述密码数据项和所述密码散列时,使用所述密码散列来验证所述密码数据项。
3.根据权利要求1所述的虚拟机迁移方法,还包括:
从所述第一主机系统接收将所述虚拟机迁移到所述第二主机系统的请求;以及
使所述虚拟机被放置在所述第一受密码保护执行环境中。
4.根据权利要求1所述的虚拟机迁移方法,还包括:
向与所述第一主机系统相关联的所述第一存储器控制器传输通知,该通知用于使所述第一存储器控制器阻止对与所述虚拟机相关联的所述存储器页的解密。
5.根据权利要求1所述的虚拟机迁移方法,其中,所述密码数据项包括与所述虚拟机相关联的所述存储器页的物理地址信息。
6.根据权利要求5所述的虚拟机迁移方法,其中,所述物理地址信息包括与所述密码密钥相关联的密钥标识符。
7.根据权利要求1所述的虚拟机迁移方法,其中,所述第二主机系统的第二存储器控制器用于利用第二密码密钥来对与所述虚拟机相关联的所述存储器页进行加密和解密。
8.一种虚拟机迁移系统,包括:
存储器;以及
可操作地耦合到所述存储器的处理设备,该处理设备用于:
经由第一安全通信信道从第一主机系统接收被用于导出密码密钥的密码数据项,该密码密钥被第一存储器控制器用来实现第一受密码保护执行环境,该第一受密码保护执行环境用于存储与虚拟机相关联的存储器页;
经由第二安全通信信道将所述密码数据项传输到第二主机系统,以实现所述第二主机系统上的第二受密码保护执行环境,该第二受密码保护执行环境用于存储与所述虚拟机相关联的存储器页;以及
使所述第一主机系统经由不安全通信信道将所述虚拟机的所述存储器页迁移到所述第二主机系统,以存储在所述第二受密码保护执行环境中。
9.根据权利要求8所述的虚拟机迁移系统,其中,为了接收所述密码数据项,所述处理设备还用于:
从所述第一主机系统接收所述密码数据项和密码散列,其中所述密码数据项是经加密的;以及
在接收到所述密码数据项和所述密码散列时,使用所述密码散列来验证所述密码数据项。
10.根据权利要求8所述的虚拟机迁移系统,其中,所述处理设备还用于:
从所述第一主机系统接收将所述虚拟机迁移到所述第二主机系统的请求;以及
使所述虚拟机被放置在所述第一受密码保护执行环境中。
11.根据权利要求8所述的虚拟机迁移系统,其中,所述处理设备还用于:
向与所述第一主机系统相关联的所述第一存储器控制器传输第一通知,该第一通知用于使所述第一存储器控制器阻止对与所述虚拟机相关联的所述存储器页的解密。
12.根据权利要求8所述的虚拟机迁移系统,其中,所述密码数据项包括与所述虚拟机相关联的所述存储器页的物理地址信息。
13.根据权利要求12所述的虚拟机迁移系统,其中,所述物理地址信息包括与所述密码密钥相关联的密钥标识符。
14.根据权利要求8所述的虚拟机迁移系统,其中,所述第二主机系统的第二存储器控制器用于利用第二密码密钥来对与所述虚拟机相关联的所述存储器页进行加密和解密。
15.一种包括指令的非暂时性计算机可读存储介质,所述指令在被处理设备执行时使所述处理设备进行以下操作:
经由第一安全通信信道从第一主机系统接收被用于导出第一密码密钥的密码数据项,该第一密码密钥被第一存储器控制器用来实现第一受密码保护执行环境,该第一受密码保护执行环境用于存储与虚拟机相关联的存储器页;
经由第二安全通信信道将所述密码数据项传输到第二主机系统,以实现所述第二主机系统上的第二受密码保护执行环境,该第二受密码保护执行环境用于存储与所述虚拟机相关联的存储器页;以及
使所述第一主机系统经由不安全通信信道将所述虚拟机的所述存储器页迁移到所述第二主机系统,以存储在所述第二受密码保护执行环境中。
16.根据权利要求15所述的非暂时性计算机可读存储介质,其中,为了接收包括所述密码密钥的所述密码数据项,所述处理设备还用于:
从所述第一主机系统接收所述密码数据项和密码散列,其中所述密码数据项是经加密的;以及
在接收到所述密码数据项和所述密码散列时,使用所述密码散列来验证所述密码数据项。
17.根据权利要求15所述的非暂时性计算机可读存储介质,其中,所述处理设备还用于:
向与所述第一主机系统相关联的所述第一存储器控制器传输通知,该通知用于使所述第一存储器控制器阻止对与所述虚拟机相关联的所述存储器页的解密。
18.根据权利要求15所述的非暂时性计算机可读存储介质,其中,所述密码数据项包括与所述虚拟机相关联的所述存储器页的物理地址信息。
19.根据权利要求18所述的非暂时性计算机可读存储介质,其中,所述物理地址信息包括与所述密码密钥相关联的密钥标识符。
20.根据权利要求15所述的非暂时性计算机可读存储介质,其中,所述第二主机系统的第二存储器控制器用于利用第二密码密钥来对与所述虚拟机相关联的所述存储器页进行加密和解密。
CN201880091748.3A 2018-06-28 2018-06-28 使用加密存储器技术的安全虚拟机迁移 Pending CN111903103A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/093232 WO2020000285A1 (en) 2018-06-28 2018-06-28 Secure virtual machine migration using encrypted memory technologies

Publications (1)

Publication Number Publication Date
CN111903103A true CN111903103A (zh) 2020-11-06

Family

ID=68985599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880091748.3A Pending CN111903103A (zh) 2018-06-28 2018-06-28 使用加密存储器技术的安全虚拟机迁移

Country Status (4)

Country Link
US (1) US20210019172A1 (zh)
EP (1) EP3815323B1 (zh)
CN (1) CN111903103A (zh)
WO (1) WO2020000285A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520709B2 (en) * 2020-01-15 2022-12-06 International Business Machines Corporation Memory based encryption using an encryption key based on a physical address
US11763008B2 (en) 2020-01-15 2023-09-19 International Business Machines Corporation Encrypting data using an encryption path and a bypass path

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11720392B2 (en) * 2021-03-01 2023-08-08 International Business Machines Corporation Live virtual machine relocation to accommodate reversible relocations in a heterogeneous cluster of hypervisor versions
CN113485790B (zh) * 2021-06-30 2024-01-23 海光信息技术股份有限公司 一种虚拟机的重启方法、迁移方法和相关设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080127182A1 (en) * 2006-11-29 2008-05-29 Newport William T Managing Memory Pages During Virtual Machine Migration
US8208637B2 (en) * 2007-12-17 2012-06-26 Microsoft Corporation Migration of computer secrets
CN101984631A (zh) * 2010-11-05 2011-03-09 北京世纪互联工程技术服务有限公司 一种Xen虚拟机安全动态迁移方法
WO2013112538A1 (en) * 2012-01-23 2013-08-01 Citrix Systems, Inc. Storage encryption
GB2500219A (en) * 2012-03-14 2013-09-18 Ibm Managing encryption keys in a computer system
US9928107B1 (en) * 2012-03-30 2018-03-27 Amazon Technologies, Inc. Fast IP migration in a hybrid network environment
US9769123B2 (en) * 2012-09-06 2017-09-19 Intel Corporation Mitigating unauthorized access to data traffic
CN103139221B (zh) * 2013-03-07 2016-07-06 中国科学院软件研究所 一种可信虚拟平台及其构建方法、平台之间数据迁移方法
US9317326B2 (en) * 2013-11-27 2016-04-19 Vmware, Inc. Consistent migration of a group of virtual machines using source and destination group messaging
WO2015165060A1 (en) * 2014-04-30 2015-11-05 Dalian University Of Technology Virtual machine migration
US9712503B1 (en) 2015-03-23 2017-07-18 Amazon Technologies, Inc. Computing instance migration
US10152612B2 (en) * 2015-09-25 2018-12-11 Intel Corporation Cryptographic operations for secure page mapping in a virtual machine environment
US10275962B2 (en) * 2015-12-14 2019-04-30 Afero, Inc. Apparatus and method for internet of things (IOT) security lock and notification device
US20170277898A1 (en) * 2016-03-25 2017-09-28 Advanced Micro Devices, Inc. Key management for secure memory address spaces
US10860359B2 (en) * 2018-02-28 2020-12-08 Red Hat, Inc. Key management for encrypted virtual machines

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520709B2 (en) * 2020-01-15 2022-12-06 International Business Machines Corporation Memory based encryption using an encryption key based on a physical address
US11763008B2 (en) 2020-01-15 2023-09-19 International Business Machines Corporation Encrypting data using an encryption path and a bypass path

Also Published As

Publication number Publication date
US20210019172A1 (en) 2021-01-21
EP3815323B1 (en) 2024-04-24
EP3815323A1 (en) 2021-05-05
EP3815323A4 (en) 2022-01-26
WO2020000285A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
US11316661B2 (en) Encryption interface
US11765239B2 (en) Secure reporting of platform state information to a remote server
US11809545B2 (en) Flexible container attestation
US20210004483A1 (en) Secure Public Cloud
US11755500B2 (en) Cryptographic computing with disaggregated memory
US11669335B2 (en) Secure arbitration mode to build and operate within trust domain extensions
EP3326107B1 (en) Supporting configurable security levels for memory address ranges
US9893881B2 (en) Efficient sharing of hardware encryption pipeline for multiple security solutions
CN111353158A (zh) 信任域架构与多密钥总存储器加密技术在服务器中的共存
EP3815323B1 (en) Secure virtual machine migration using encrypted memory technologies
US10270598B2 (en) Secure elliptic curve cryptography instructions
US11360910B2 (en) Prevention of trust domain access using memory ownership bits in relation to cache lines
US11171955B2 (en) Link protection for trusted input/output devices
US20160110540A1 (en) Interface between a device and a secure processing environment
US20180004931A1 (en) Process management
US20230273808A1 (en) Confidential offloading of persistent storage operations in confidential computing environments

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