CN103069428B - 不可信云基础设施中的安全虚拟机引导 - Google Patents

不可信云基础设施中的安全虚拟机引导 Download PDF

Info

Publication number
CN103069428B
CN103069428B CN201180038880.6A CN201180038880A CN103069428B CN 103069428 B CN103069428 B CN 103069428B CN 201180038880 A CN201180038880 A CN 201180038880A CN 103069428 B CN103069428 B CN 103069428B
Authority
CN
China
Prior art keywords
mirror image
encrypt
key
storer
buffer memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201180038880.6A
Other languages
English (en)
Other versions
CN103069428A (zh
Inventor
法彼奥·R·麦诺
皮瑞·曼克鲁斯
大卫·A·麦格鲁
罗伯特·T·贝尔
史蒂芬·约瑟夫·里奇
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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN103069428A publication Critical patent/CN103069428A/zh
Application granted granted Critical
Publication of CN103069428B publication Critical patent/CN103069428B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB

Abstract

描述了用于在不可信云基础设施中安全地启动和执行虚拟机(VM)镜像的技术。多核处理器可以配置有附加的硬件组件(被称为信任锚)。所述信任锚可以配备有私有/公共密钥对,其允许所述多核CPU当能够在不可信云基础设施中安全地启动和执行虚拟机(VM)镜像时进行自身认证。

Description

不可信云基础设施中的安全虚拟机引导
技术领域
本公开中所提出的实施例一般地涉及用于为虚拟化服务器提供计算基础设施的技术,并且更特别地,涉及一种用于在不可信云基础设施(untrusted cloud infrastructure)中安全地启动虚拟机(VM)的方法和装置。
背景技术
服务器虚拟化技术允许多个虚拟机在单个物理计算系统上同时运行。目前,数据中心环境被用来创建这样的物理计算系统(通常被称为服务器)的大集群,其中,每个服务器都运行多个虚拟机(VM)。该方法已经导致了能够供应大量计算能力的数据中心。若干供应商目前允许用户供应虚拟机实例以在由数据中心的运营商所提供的虚拟化服务器上运行。在各种形式下,这个通用计算模型逐渐被称为“云计算”或“基础设施即服务”(IaaS),因为用户在抽象硬件平台上简单地运行他们的虚拟机实例,而不必拥有或者管理该硬件平台。若非成百上千的虚拟机,该方法允许给定用户快速地扩增几十倍以响应对于计算资源的需求变化。
同时,云计算和IaaS供应商所面对的主要障碍是需要用户信任云供应商和管理在服务器上运行的多个VM的管理程序(hypervisor)(或虚拟机管理器,(VMM))的实施。目前,这个通过云供应商针对安全性定制的操作流程的检查和理解来完成。这导致信任感,但没有强大的机制来保证在相同的中央处理单元(CPU)套接字服务器中执行的VM之间的有效分离。
属于不同企业的VM被并置在相同的服务器中的事实能够导致侧面攻击和安全问题。例如,当属于不同企业的VM被在相同CPU的不同核中执行时,它们经由L3缓存共享对存储器的访问(或者绕过由管理程序所设置的存储器保护)。在技术人员的手中,这能够导致信息从一个VM泄漏到另一个VM。也就是说,来自一个企业的恶意VM能够设法获得对代表另一个企业运行的VM的存储器的访问。
另一个问题是管理程序本身。即使管理程序被设计为执行不同VM之间的分离,由于管理程序漏洞或由于直接针对管理程序本身的显式攻击,数据也仍然能够从一个VM泄漏到另一个VM。而且,作为云供应商人员的一部分的恶意管理员能够发起另一组攻击。
附图说明
所以,以可以详细理解本公开的上述特征的方式,可以参照实施例对以上概述的本公开进行更为具体的描述,其中一些实施例在附图中示出。然而,要注意的是,附图仅举例说明了本公开的典型实施例并且因此将不认为限制其范围,因为本公开可以许可其他同等有效的实施例。
图1A至图1B是图示了根据本公开的某些实施例的用于基础设施即服务(IaaS)云环境中的可信执行的不同安全模型的框图。
图2是图示了根据本公开的某些实施例的被配置成在IaaS环境中提供多个VM的可信执行的虚拟化服务器的组件的框图。
图3是图示了根据本公开的某些实施例的被配置成在IaaS环境中提供可信虚拟机执行的处理器架构的示例的框图。
图4进一步图示了根据本公开的某些实施例的图3中首先示出的CPU架构的方面。
图5图示了根据本公开的某些实施例的用于安全地启动VM实例的方法。
图6图示了根据本公开的某些实施例的用于不可信云基础设施中的安全虚拟机引导的方法。
图7图示了根据本公开的某些实施例的用于从储存器中提取VM镜像的加密部分的方法。
图8A至图8E描绘了根据本公开的某些实施例的用来使用图6和图7的方法在不可信云基础设施中安全地启动虚拟机的处理器架构的示例。
具体实施方式
概述
本文所述的一个实施例包括一种方法。所述方法一般地可以包括通过具有多个处理核的中央处理单元(CPU)上的信任锚接收虚拟机(VM)镜像。当接收到VM镜像时,使用VM镜像加密密钥对所述VM镜像进行加密。所述方法还可以包括获得VM镜像加密密钥并且用该VM镜像加密密钥来配置第一加密/解密块。所述方法还可以包括生成存储器会话密钥并且用该存储器会话密钥来配置第二加密/解密块。所述方法还可以包括将所述VM镜像的一个或多个页提取到可被多个处理核访问的存储器中。每个提取的页都可以由第一加密/解密块使用VM镜像加密密钥来解密,并且随后由第二加密/解密块使用存储器会话密钥来加密。
在一个具体实施例中,所述方法还可以包括:获得VM镜像加密密钥可以包括用嵌入在信任锚中的私有密钥来对该VM镜像加密密钥的第一加密拷贝进行签名;将经签名的、加密的VM镜像加密密钥的拷贝传送到密钥服务,以便认证信任锚在CPU上的存在;以及响应于所述认证,接收VM镜像加密密钥的第二加密拷贝,其中,VM镜像加密密钥的第二加密拷贝使用信任锚的公共密钥来加密。
本文所述的另一个实施例包括一种计算系统。所述系统可以包括具有多个处理核的CPU、可被所述多个处理核访问的存储器以及信任锚。所述信任锚一般地可以被配置成:获得VM镜像加密密钥,用该VM镜像加密密钥来配置第一加密/解密块,生成存储器会话密钥,以及用该存储器会话密钥来配置第二加密/解密块。所述计算系统还可以包括存储器控制器,所述存储器控制器被配置成将所述VM镜像的一个或多个页提取到存储器中。每个提取的页可以由第一加密/解密块使用VM镜像加密密钥来解密,并且随后当被写入到存储器时,由第二加密/解密块使用存储器会话密钥来加密。
本文所述的又一个实施例包括一种计算机可读存储介质,所述计算机可读存储介质存储由具有多个处理核的中央处理单元(CPU)上的信任锚执行的代码。当被信任锚执行时,所述代码可以执行操作。并且所述操作本身一般地可以包括接收已经使用VM镜像加密密钥加密的虚拟机(VM)镜像。所述操作还可以包括:获得VM镜像加密密钥;用该VM镜像加密密钥来配置第一加密/解密块;生成存储器会话密钥;用该存储器会话密钥来配置第二加密/解密块。一旦所述加密/解密块由信任锚配置,VM镜像的页就被提取到可被所述多个处理核访问的存储器中,并且其中,每个提取的页由第一加密/解密块使用VM镜像加密密钥来解密,并且随后当被写入到存储器时,由第二加密/解密块使用存储器会话密钥来加密。
示例实施例的描述
本文所述的实施例提供了用于在不可信云基础设施中安全地启动和执行虚拟机(VM)镜像的技术。例如,本文所述的一个实施例提供了用来启动和执行VM镜像的计算架构。所述计算架构可以是具有附加的硬件组件(被称为信任锚)的多核处理器。所述信任锚可以被配置成管理由本文所述的安全引导过程所使用的加密密钥。
在一个实施例中,信任锚与多核处理器嵌入在一起并且可以在制造时配备有私有/公共密钥对和公共密钥基础设施(PKI)证书,所述证书将信任锚标识绑定到在该证书中所列出的公共密钥。CPU模型和制造商可以被列出为该证书的属性。有利地,将信任锚嵌入CPU内允许企业在不用信任BIOS载入器/BIOS/OS载入器/管理程序链的元件中的任何一个的情况下安全地引导VM。
在启动加密VM镜像之前,信任锚从事安全协议以向企业进行自身认证并且获得用来对加密VM镜像进行解密的VM镜像加密密钥。如在本文中更详细地描述的那样,信任锚用该VM镜像加密密钥配置磁盘控制块。信任锚还生成存储器会话密钥,所述存储器会话密钥被用来配置在每个处理核上的L3缓存与存储器之间和在L3缓存与L2缓存之间的缓存线中的加密/解密块。一旦CPU上的加密/解密块被配置,VM镜像就可以被从储存器中提取并且启动。
当加密VM镜像的元素被从储存器中提取时,磁盘控制块使用VM镜像加密密钥来解密它们。当它们被写入到L3缓存时,存储器会话密钥然后被用来重新加密这样的元素。当需要给定存储器地址的数据时,处理核的L2缓存与共享L3缓存之间的高速缓存线路中的存储器会话密钥被用来解密从L3缓存中读取(和写入到L3缓存)的数据。因此,L3缓存(在多个处理核之间共享)中的数据保持加密直到被提取到L2缓存(对于处理核而言是本地的)中为止。
例如,在一个实施例中,信任锚可以使用高级加密标准(AES)计数器模式(AES-CTR)来加密/解密写入到L3缓存和从L3缓存读取的数据。使用AES-CTR可以提供足以加密/解密在核上的L2缓存与在多核架构内的多个处理核之间共享的L3缓存之间移动的数据的加密速度。当然,可以使用具有充分性能特性的其他流密码。更一般地,任何带密钥的伪随机函数能够被用在计数器模式中,并且AES是常用的伪随机函数,用于在描述实施例方面的具体化。使用AES-CTR,实际加密可以通过在将明文在写入到L3缓存中时以通过使用与给定VM的执行上下文相关联的密钥加密计数器的递增值所生成的密钥流(即,以存储器会话密钥)对明文进行异或来执行。在一个实施例中,用来生成用于对L3缓存线进行加密/解密的密钥流的计数器通过将与具体读取/写入操作相关联的存储器地址与随机数(nonce)值相连结而构成。
当出现异常时(例如,计时器中断、硬件访问等),信任锚换出与运行VM实例相关联的VM镜像加密密钥,并且为新的执行上下文选择适当的密钥(例如,与另一个VM镜像或管理程序相关联的密钥)。在一个实施例中,CPU可以被配置成用信号向所述信任锚通知关于被调度来执行的下一个VM实例(或管理程序)的执行上下文。例如,由VT-x技术和AMD-V技术所提供的虚拟化扩展。而且,用于切换密钥并且初始化所述信任锚中所包括的加密引擎的过程可能要求比上下文切换本身要求更少的时钟周期。
呈现以下描述来使得本领域的普通技术人员能够做出和使用所提出的技术。具体实施例和应用的描述仅仅被提供为示例,并且各种修改对于本领域的技术人员而言将是显而易见的。在不背离本公开的范围的情况下,本文所述的一般原理可以被应用于其他实施例和应用。因此,本公开将不限于所示出的实施例,但应符合与本文描述的原理和特征一致的最广范围。出于清楚的目的,不对与所提出的概念的相关技术领域中已知的技术材料相关的特征进行详细描述。
图1A至图1B是图示了根据本公开的某些实施例的用于基础设施即服务(Infrastructure as a Service,IaaS)云环境中的可信VM执行的不同模型的框图。如图1A中所示,堆栈模型105可以用来提供用于执行一个或多个虚拟机125的可信环境。特别地,硬件锚芯片(例如,可信平台模块(TPM)110)或等效物可以用来执行以下任务:安全密钥存储、签名征收/检验、以及密钥的安全导出等。TPM 110形成信任在堆栈模型105中的第一环节。一旦TPM 110对其进行确认,安全BIOS 115可以依次确认管理程序120是未被修改的。这样做将信任链从TPM 110扩展到安全BIOS115,并且随后,扩展到管理程序120。一旦被启动,管理程序120就遵循相同的程序以初启虚拟机125。也就是说,一旦被安全BIOS 115确认,管理程序120就作为可信行动者以确认并且启动虚拟机实例125。其后,每个虚拟机125上的操作系统130做相同的事情以启动应用135。更简单地,TPM 110确认BIOS 115,所述BIOS115确认管理程序120,所述管理程序120反过来确认在管理程序120上启动的每个VM 125。因此,堆栈模型105依赖信任其前趋的链中的每个元素。
在堆栈模型105中,上层依靠下层以获得信任。如果在链上存在任何中断,则系统是不安全的。进一步地,链上的下层可以仍对上层可以执行的内容具有可见性。更进一步地,即使管理程序确认并且启动了给定虚拟机125,其也不限制由可信OS 130和可信应用135所执行的动作。因此,堆栈模型105不阻止以其他方式确认的应用135(或VM 125)访问属于由管理程序120所执行的另一个VM的数据,例如,在L3缓存中存储的数据。
图1B示出了根据在本公开中呈现的一个实施例的可替代信任模型。如图所示,信任模型150提供了一种星形模型,其中信任锚(trustanchor)165位于中间而不是在底部。这样做允许信任锚165直接地确认虚拟化服务器上的BIOS 175和管理程序170。但进一步,这样做还允许信任锚165确认传递到管理程序170以便执行的每个VM镜像(例如,VM1155和VM2 160),以及确认用于应用108载入VM 155、160并在其上执行的代码。也就是说,与堆栈模型105不同,星形模型150提供了被配置成提供信任锚165的信任锚165。为了阻止执行上下文之间的未经授权的访问,星形模型150针对虚拟化服务器内的每个相关操作程序从完整性保护(在堆栈模型中)向机密性转移。这样做可以用来为VM 155、160提供安全的计算环境。例如,与堆栈模型105不同,星形模型150阻止具有更高特权的操作程序(例如,管理程序170)访问其他操作程序(例如,VM155、160)的数据,以及阻止一个VM访问属于另一个VM的数据,即使这些VM同时在多核处理器上的不同核中执行并且共享L3缓存和存储器。下文讨论的图2至图4提供了在具有多核CPU的虚拟化服务器上实施图1B中所示出的星形模型150的示例架构。
图2是图示了根据本公开的某些实施例的被配置成在IaaS环境中提供多个VM的可信执行的虚拟化服务器200的组件的框图。虚拟化服务器200通常可以包括由一个或多个互连250连接的硬件计算组件的集合。用作说明地,虚拟化服务器200包括网络接口卡(NIC)251、存储器252、(一个或多个)CPU 253以及存储设备254(例如,本地附接的磁盘驱动器、固态设备(SSD)或与诸如SAN的远程储存器的连接)。
虚拟化服务器200允许多个虚拟机(VM)2301-3同时在服务器200上执行,共享存在于虚拟化服务器200上的计算硬件。然而,虚拟机2301-3通常不直接地知道虚拟化服务器200上的计算硬件。相反,管理程序240可以被配置成为每个虚拟机2301-3提供虚拟化硬件元件。注意,虽然虚拟硬件分配似乎与在每个虚拟机2301-3上运行的OS和应用136不同,但它们在虚拟化层下面被共享。也就是说,虚拟资源提供了下层物理资源的抽象概念,并且下层物理资源在虚拟机2301-3之间共享。
用作说明地,存储器252包括管理三个虚拟机实例(VM)2301-3的管理程序240。每个VM2301-3提供具有虚拟CPU、存储器、存储器和网络接口的虚拟化计算平台。操作系统在每个VM2301-3上被启动并且用来载入和执行应用2321-3。在一个实施例中,管理程序240可以被实施为在虚拟化服务器200的计算硬件上直接地运行的软件层。在这样的情况下,管理程序240可以被配置成拦截由在VM 230上运行的OS所进行的一些(或全部)操作系统调用。
更一般地,管理程序240运行在系统硬件之上并且允许虚拟化服务器200伺服VM 2301-3。在一个实施例中,信任锚258可以用来确认管理程序240。也就是说,管理程序240(即,管理程序240在存储盘上的镜像)可以由加密密钥签名,并且信任锚258可以被配置成获得在载入管理程序240之前验证管理程序240未被修改所需要的密钥。例如,给定IaaS供应商(或管理程序厂商)可以使用私有/公共密钥对的私有密钥来对管理程序代码进行签名。在一些情况下,公共密钥还可以通过证书授权来签名(并且提供为PKI证书的一部分)。接下来,信任锚258可以从PKI证书中获得公共密钥并且确认与管理程序240相关联的数字签名。
一旦被确认,管理程序240就可以启动和执行VM 2301-3。进一步地,每个VM 230还可以是被签名和/或加密的对象。例如,企业可以将使用VM镜像加密密钥加密的VM镜像传送到虚拟化服务器200。如在下面更详细地描述的那样,在一个实施例中,信任锚258向企业进行自身认证,以便在虚拟化服务器230上执行给定VM 230之前,获得与该VM 230相关联的VM镜像加密密钥。VM镜像加密密钥可以用来加密提交到虚拟化服务器200的加密VM镜像。
进一步地,信任锚258可以获得(或者生成)针对每个给定VM 230的存储器会话,并且当VM在执行核256中的一个上执行时,使用所述存储器会话来加密/解密从缓存255中读取和写入到缓存255的信息。如在下面更详细地描述的那样,信任锚258可以将存储器会话密钥作为载入给定VM实例的一部分来生成。信任锚258可以被配置成在CPU 253上的执行核256之一的执行上下文改变的任何时候交换存储器会话密钥,例如,不同VM 2301-3之间的上下文切换或VM 2301-3与管理程序240自身之间的上下文切换。
缓存255提供了由CPU 253上的执行核256访问的高速存储器。虽然存储器252能够横跨虚拟机230被分段,但是缓存255常常被不同的VM2301-3共享。例如,如图所示,CPU 253可以包括一个或多个执行核256。当在不同的执行核256上执行不同的VM 2301-3时,VM 2301-3可以共享对缓存255的访问。在一个实施例中,信任锚258可以针对每个VM 230使用不同的存储器会话密钥来对缓存255加密/解密每个读取/写入。这样做阻止了在一个执行核256上执行的VM 230访问属于在不同的执行核256上执行的另一个VM 230的缓存255中的数据。进一步地,这样做还阻止管理程序240访问属于给定VM 2301-3的缓存255中的数据,尽管管理程序240具有一般更高的特权级别。
图3是图示了根据本公开的某些实施例的被配置成在IaaS环境中提供可信虚拟机执行的处理器架构的示例的框图。如图所示,CPU 300包括两个不同的处理核305、310。而每个CPU核305包括第一层(L1)指令和数据缓存以及L2缓存。CPU 300还包括信任锚315,并且处理核305、310各自具有相关联的密钥生成组件3201-2和加密/解密块3251-2。用作说明地,将处理核305、310连接到共享L3缓存330的缓存线各自包括加密/解密块3251-2中的一个。L3缓存330被连接到存储器控制器335,所述存储器控制器335又连接到存储器340。
尽管CPU 300图示了具有两个处理核305、310的示例实施例,但是本领域的普通技术人员将认识到,本文所述的实施例能够被容易地适配以用于具有更多处理核的CPU。在这样的情况下,每个额外的CPU核都将包括到信任锚315的连接以及密钥生成组件320和与加密/解密块连接的共享L3缓存330。
在一个实施例中,信任锚315可以被配置成管理处理核305、310上的多租户执行上下文(即,多个虚拟机镜像的执行)以及管理与外界的通信。例如,信任锚315可以被配置成:提供用于载入和启动VM实例的安全启动过程;在VM实例之间提供安全的上下文切换;基于执行上下文交换存储器会话密钥;以及在VM执行期间提供安全的密钥存储。在一个实施例中,与CPU 300嵌入在一起的信任锚315可以在制造时配备有公共/私有密钥对和由证书授权机构(CA)颁发的证书,所述证书将信任锚165标识绑定到公共密钥。CPU模型和制造商名称可以被包括为该证书的属性。如在下面更详细地描述的那样,信任锚315可以使用公共/私有密钥对来证明虚拟化服务器具有配置有信任锚的多核CPU,并且因此,能够在以其他方式不可信云环境中启动和执行VM镜像。
信任锚315可以在发生上下文切换的任何时候从处理核305、310接收指示。这样的指示可以为输入的执行上下文提供标识符。如上文中所提及的那样,某些多核处理器提供了允许执行上下文从CPU上的处理核导中的扩展指令集。例如,由VT-x技术所提供的虚拟化扩展和VMX指令集提供了用来用信号通知处理核上的执行上下文中的改变的指令(例如,VMEXIT和VMRESUME指令)。
响应于指示执行上下文中的改变的来自核305、310中的一个的信号,信任锚315可以针对新的执行上下文配置与处理核305、310相关联的加密/解密块3251-2和密钥生成组件3201-2。当发生上下文切换时,信任锚换出与处理核305、310上的当前执行上下文相关联的密钥,并且将其替代为与输入执行上下文相关联的密钥。如已知的那样,VM实例之间(或VM实例与管理程序之间)的多核处理器上的上下文切换需要在CPU核上的寄存器(例如,状态寄存器、IR寄存器、通用寄存器、计数寄存器)恢复(或初始化)以用于输入执行上下文。在一个实施例中,信任锚315可以被配置成交换适当的加密密钥并且使用比执行上下文切换本身(当前,过程通常需要约20至30个时钟周期)所需要更少的时钟周期来初始化加密/解密块3251-2。这样做允许信任锚在不用引入任何附加等待时间的情况下为输入VM实例(或管理程序)提供安全的执行上下文。
一旦被初始化,加密/解密块325在数据在处理核305、310与L3缓存255之间的缓存线上移动时对数据进行加密/解密。在一个实施例中,加密/解密块3251-2提供了基于硬件的流密码的实施。如已知的那样,流密码是对称密钥密码,其中明文与密钥流相结合以加密小单位的数据(例如,每次一位或单字节)。在具体实施例中,解密/解密块可以被配置成将AES-CTR(高级加密标准-计数器模式)用作为流密码。使用流密码允许数据在无需额外的时钟周期的情况下在处理核305、310与L3缓存330之间移动时被加密/解密。相反,一旦被初始化,加密/解密块3251-2可以使用所述密钥流对移动到特定核305、310/从特定核305、310移动的每个位进行异或。因此,由信任锚所提供的功能性定位在与每个处理核305、310邻近,并且确保由VM共享的任何元件在不同的核(在这种情况下为L3缓存330和存储器340)上运行。在一个实施例中,密钥生成组件3201-2可以被配置成使用VM密钥、存储器地址以及随机数(nonce)来生成加密/解密块3251-2所使用的密钥流。
存储器控制器335可以被配置成在存储器340与L3缓存之间移动数据。例如,存储器控制器335可以选择来将数据从L3缓存330刷新到存储器340。在一个实施例中,当这样做时,存储器控制器335还将用来在数据被写入到L3缓存330中时对数据进行加密的随机数值写入到存储器340中。同样地,存储器控制器335可以在从存储器340中读取加密数据时检索适当的随机数值。
图4进一步图示了根据本公开的某些实施例的图3中首先示出的处理器架构的方面。特别地,图4示出了用来执行到L3缓存433的安全写入操作401并且用来执行从L3缓存443的安全读取操作402的图3的处理器架构。
如图所示,写入操作401在明文数据4051从处理核本地的L2缓存移动到由多个处理核共享的L3缓存433时对所述明文数据4051进行加密。用作说明地,加密/解密块4101包括密钥4151、AES引擎4201、存储器地址4251以及随机数4301。密钥4151通过信任锚而被提供给加密/解密块4101。如上文中所提及的那样,密钥4151对应于在多核CPU(例如,图3中所示出的处理器架构)的处理核中的一个上执行的VM(或管理程序)。存储器地址4251对应于从L2缓存写入到L3缓存433的明文4051的存储器地址。随机数4301提供了用于给定写入操作的一次值。典型地,随机数4301可以是针对共享L3缓存433的每次写入(和读取)增量的计数器值。然而,可替代地,随机数4301可以从随机或伪随机噪声源生成。
在一个实施例中,AES引擎420提供了AES-CTR流密码的硬件实施,并且被配置成从密钥材料(即,从密钥4151、存储器地址4251以及随机数4301)生成密钥流。所得的密钥流在明文4051从处理核上的L2缓存被推送到共享的L3缓存433中时与明文4051进行异或,产生密文4351。除将所得的加密数据写入到L3缓存433之外,加密/解密块4101中的随机数值也被写入到L3缓存433(在图4中示出为随机数4401)。更一般地,加密/解密块可以将任何带密钥的伪随机函数应用到计数器,以便生成与明文4051异或的密钥流。
在一个实施例中,加密/解密块4101可以包括到L3缓存433的单独缓存线,其允许随机数4301与明文4051并行存储在L3缓存433中(作为随机数4401),明文4051使用密钥流来加密并且作为密文4351存储在L3缓存433中。可替代地,随机数3401可以使用用来写入密文4351的相同缓存线写入到缓存433。
读取操作402与写入操作401类似,但是方向相反。为了从L3缓存433中读取加密数据4352,存储器地址4252和随机数4402被读取到加密/解密块4102中。再者,密钥4152是与在多核处理器的处理核上执行的VM(或管理程序)相关联的会话密钥,并且在处理核上的上下文切换之间保持不变。存储器地址4252对应于被拉到L2缓存中的数据的存储器地址,并且随机数4302是用来当数据被写入到L3缓存433时对数据进行加密的随机数值。也就是说,由写入操作401用来生成用来加密明文4051的密钥流的相同密钥材料被用来重新生成相同的密钥流以解密来自L3缓存433的加密数据4352。因此,在一个实施例中,使用AES-CTR来从用于读取操作402的密钥材料生成所述密钥流。当然,可以使用其他带密钥的伪随机函数。所得的密钥流然后与来自L3缓存433的加密数据4352进行异或,并且作为明文4052写入在L2缓存中。
图5图示了根据本公开的某些实施例的用于安全地启动VM实例的方法500。如图所示,方法500在步骤505处开始,其中,管理程序接收虚拟机的启动镜像以在虚拟化服务器上启动和执行。例如,在一个实施例中,用户可以将VM启动镜像连同针对在其上用于执行VM实例的虚拟化硬件系统的一组需求(例如,处理器速度、存储器需求等)一起传送到云供应商。VM启动镜像可以使用由用户所生成的VM镜像加密密钥来加密。在一个实施例中,每4kb数据块被独立地加密,使得块可以在不用解密整个镜像的情况下进入虚拟化服务器上的存储器或从虚拟化服务器上的存储器出来时被解密和分页。
在步骤510处,管理程序尝试启动VM启动镜像。在步骤515处,管理程序确定该VM启动镜像是否被加密。如果是,则管理程序触发信任锚与提交VM启动镜像以便执行的用户(或相关联的密钥服务)之间的协商,以获得用来加密VM启动镜像的VM镜像加密密钥。一旦获得,信任锚就用该密钥来配置磁盘控制块(步骤520)。VM镜像加密密钥用来在从存储器提取加密VM启动镜像的存储器页并将其存储在存储器中时解密该存储器页(或者加密从存储器刷新到存储器的页)。信任锚将与VM镜像相关联的VM镜像加密密钥存储在安全密钥存储中。在步骤525处,信任锚还生成存储器会话密钥,所述存储器会话密钥被用来在每个处理核上的L3缓存与存储器之间和在L3缓存与L2缓存之间的缓存线中配置加密/解密块。一旦CPU上的密钥加密/解密块被配置,则可以从储存器中提取VM镜像并且将其启动。管理程序然后可以启动VM镜像并且对其进行调度以便执行(步骤530)。
在步骤535处,管理程序在处理核中的一个上执行该VM镜像。当加密VM镜像的一部分从储存器中提取时,磁盘控制块使用VM镜像加密密钥来对其进行解密(步骤540)。存储器会话密钥然后被用来在这些元素被写入到L3缓存中时对其进行重新加密。当需要给定存储器地址的数据时,处理器核的L2缓存与L3缓存之间的缓存线中的存储器会话密钥被用来解密从L3缓存读取(和写入到L3缓存)的数据。因此,L3缓存(在多个处理核之间共享)中的数据保持加密,直到被提取到L2缓存(对于处理核而言是本地的)中。
如果VM启动镜像未被加密(步骤515),则信任锚仍然可以生成存储器会话密钥,以便在处理核上执行的同时,加密/解密由VM进行的对L3缓存的所有写入/读取(步骤525)。在任一情况下,管理程序可以开始调度VM以在多处理器CPU的处理核之一上执行(步骤530)。此外,当管理程序发起上下文切换时,信任锚用适当的VM镜像加密密钥和用于输入VM的存储器会话密钥来配置该CPU上的加密/解密块。
图6图示了根据本公开的某些实施例的用于不可信云基础设施中的安全虚拟机引导的方法600。方法600的元素与图8A至图8C相结合地描述,图8A至图8C描绘了根据本公开的某些实施例的可以被用来在不可信云基础设施中安全地启动虚拟机的示例处理器架构。
如图所示,方法600在步骤605处开始,其中,用户生成VM镜像加密密钥(KS)并且使用其来加密VM镜像。在一个实施例中,用户用对应于由用户或企业所持有的密钥对(表示为E-Pub-K)的公共密钥来加密VM镜像加密密钥(KS)。注意,如本文所用,使用给定密钥加密的对象被表示为{加密对象}密钥。因此,使用加密密钥(KS)加密的VM镜像被表示为{VM镜像}KS
在一个实施例中,在RFC 3852中定义的IETF加密消息语法(CMS)能够被用来包装密钥。RFC 3852中的封装数据内容类型支持此密钥包装;KS被称作内容加密密钥。镜像加密方法能够使用任何方便的密码,其包括AES-CBC(密码块链接)、AES-GCM(伽罗瓦计数器模式)、或诸如AES-XCB(扩展码本)的存储友好模式。此外,被选择来加密VM镜像的加密方法可以是非延展性的;这意味着攻击者不能够改变密文以使后解密明文为任何特定值。相反,后解密密文随机出现。这样做确保了能够改变密文的攻击者仍然不能够操纵后解密明文的值。AES-XCB是适合于VM镜像加密的非延展性密码。
在一个实施例中,密钥服务还可以对VM进行签名。而企业也可以在将VM镜像发送到虚拟化服务器之前对该VM镜像进行签名。也就是说,除信任锚向企业进行自身认证之外,企业可以向信任锚进行自身认证。
在步骤610处,企业将加密VM镜像和加密会话密钥上载到虚拟化服务器。也就是说,企业将{VM镜像}KS和{KS}E-PubK上载到虚拟化服务器。一旦接收到,管理程序就将该VM镜像加密密钥(KS)(即,{KS}E-Pub- K)传递到多核CPU上的信任锚。
例如,图8A图示了具有加密VM镜像815、密钥服务820以及加密会话密钥{KS}E-Pub-K825的企业810。企业810通常表示期望以根据本文提出的实施例中的任何一个的安全方式在不可信云基础设施中启动和执行VM镜像的任何用户和组织。密钥服务820提供了企业所使用的公共/私有密钥对。注意,尽管被示出为企业810的一部分,但是密钥服务820能够由在企业810外部的可信第三方提供,例如由用来对由证书授权机构颁发的PKI证书中命名的公共密钥(E-PubK)进行签名的证书授权机构来提供。
用作说明地,箭头830表示加密VM镜像815(即,{VM镜像}KS)和VM镜像加密密钥825(即,{KS}E-PubK)正被上载到虚拟化服务器800上的存储库840。一旦被虚拟化服务器800接收到,{KS}E-PubK就被传递到CPU 805上的信任锚835。在一个实施例中,信任锚835触发用于向企业进行自身认证的过程,以便获得VM镜像加密密钥的明文拷贝(即,以获得KS)。返回到方法600,在步骤615处,信任锚使用嵌入在该信任锚中的私有密钥对{KS}E-PubK进行签名。这样做产生了{{KS}E-PubK}TA-PrivK。所得的加密数据被往回发送到用户或企业以便进行认证。例如,如图8B中所示,箭头845表示{KSE-PubK}TA-PrivK850正被往回发送到密钥服务820。
在步骤620处,密钥服务用信任锚的公共密钥(即,用TA-PubK)和企业私有密钥(即,用E-Priv-K)解开VM镜像加密密钥(KS)。所得的KS明文拷贝与发送到信任锚的KS的原始版本相比较。如果从信任锚接收到的KS的拷贝(在解密操作后)和发送到信任锚的KS的版本匹配,则虚拟化服务器被视为认证有效,即是,被视为具有多核CPU的虚拟化服务器配置有根据本文所述的实施例配置的信任锚。一旦认证有效,密钥服务然后就用该信任锚的公共密钥(即,用TA-PubK)来加密KS,并且将其往回传送到虚拟化服务器。
在步骤625处,信任锚接收用信任锚的公共密钥加密的KS的拷贝,即,信任锚接收{KS}TA-PubK。一旦接收到,信任锚就可以使用在该信任锚上嵌入的私有密钥来解密{KS}TA-PubK。因此,一旦信任锚被认证有效,企业然后就发送该信任锚能够解密的VM镜像加密密钥(KS)的加密拷贝。信任锚可以将KS的明文拷贝存储在私有密钥存储器中。此外,信任锚可以生成存储器会话密钥(KM)并且将其存储在私有密钥存储器中。在步骤630处,信任锚配置多核CPU以启动加密VM镜像。例如,信任锚可以用VM镜像加密密钥(KS)来配置存储库与存储器之间的加密/解密块,并且用存储器会话密钥(KM)来配置存储器与L3缓存之间的缓存线中的加密/解密块。
图8C图示了步骤620、625以及630的示例。如图所示,密钥服务820使用信任锚的公共密钥来加密VM镜像加密密钥(KS),产生{KS}TA- PubK855。箭头860表示{KS}TA-PubK855正被传送到信任锚835。如所描述的那样,解密{KS}TA-PubK给信任锚835提供了VM镜像加密密钥(KS)的非加密拷贝874,所述非加密拷贝874然后被存储在密钥存储器870中。进一步地,信任锚还生成了同样地存储在密钥存储器870中的存储器会话密钥(KM)872。
为了允许管理程序启动存储库840中的加密VM镜像842,信任锚835用VM镜像加密密钥(KS)874来配置加密/解密块865。在CPU 805的示例架构中,加密/解密块865提供了加密/解密引擎,所述加密/解密引擎被配置成对加密VM镜像842的4K字节数据块进行操作。更一般地,加密/解密块865在数据被写入到磁盘时对数据进行加密并且在数据被从磁盘(即,从存储库840)读取时对数据进行解密。加密/解密块865还能够使用与缓存加密/解密块876和878相比不同的AES操作模式,诸如AES-XBC,其不易受到剪切和粘贴攻击。当然,还可以使用其他的密码。重要的是,当企业810将VM镜像加密密钥(KS)提供给虚拟化服务器800时,写入到存储库的数据被使用由企业810所持有的密钥进行加密。
加密/解密块876提供了用来加密/解密被写入到DRAM 878和从DRAM 878读取的数据的加密/解密引擎。加密/解密块876可以被配置成在64字节缓存线上工作,例如如相对于图3和图4在上文所讨论的加密/解密块878(包括随机数管理)。因此,加密/解密块876和878可以使用AES-CTR模式操作以使用存储器地址和随机数值生成密钥流,以便加密/解密在L2缓存880与L3缓存882之间(针对块878)和在DRAM 878与L3缓存328(针对块876)的数据。
在一个实施例中,加密/解密块865和876以I/O速度(~6Gbps)而不是以加密/解密块878的缓存速度操作,并且能够选择门有效实施。该架构使被用于磁盘加密的密钥(即,KS 874)与用于缓存加密的密钥(即,KM 872)分离。这样做确保了存储器会话密钥(KM)872永远不离开CPU边界或信任锚835的直接控制。
I/O通过从存储库840读取加密VM镜像842的nKB的数据块而开始。数据块的读取用KS进行解密并且当被写入到DRAM 848时用KM进行重新加密。一旦针对L3缓存882的给定缓存线的数据被拷贝到L2缓存880,所述数据就将被解密并且可用于引导VM镜像,即,L2缓存880中的明文指令和数据可用于处理核885上的L1指令和数据缓存。例如,图7图示了根据本公开的某些实施例的用于从储存器中提取加密VM镜像的部分的方法700。
如图所示,方法700在步骤705处开始,其中从储存器中提取的一个或多个页被标识。当存储器控制器指向将页写入DRAM时,由信任锚用VM镜像加密密钥(KS)所配置的第一加密/解密块当从储存器中提取页时对页进行解密(步骤710)。第一加密/解密块的输出可以传递到第二加密/解密块,其中,信任锚已经用存储器会话密钥(KM)配置了第二加密/解密块。当页被写入到存储器时,第二加密/解密块使用存储器会话密钥(KM)来对页进行加密(步骤715和720)。
例如,图8D示出了VM镜像842的加密页{P}KS849正被写入到虚拟化服务器800上的DRAM 848。箭头885表示当加密页{P}KS849正被写入到DRAM 848时该页849正被传递到加密/解密块865和876。加密/解密块865使用KS 874解密{P}KS。随后,加密/解密块876使用KM加密P,产生正被写入到DRAM 848的{P}KM849’。一旦在DRAM 848中,存储器控制器890能够将页P拉到由虚拟化服务器800的CPU 805上的处理核所共享的L3缓存中。例如,图8E示出了加密页{P}KM849’正被写入到虚拟化服务器800的CPU 805上的L3缓存882。如图所示,箭头892表示加密页{P}KM849’正被写入到L3缓存882,并且当其正被写入L2缓存880时使用加密/解密块878对其进行解密(例如,使用相对于图3和图4上文中所描述的方法)。加密/解密块878解密{P}KM849’,并且将解密页P 895写入到处理核885上的L2缓存880。
因此,能够访问VM镜像842的非加密页的CPU 805的架构中的唯一实体是L2缓存880和在其上执行VM镜像842的处理核885。进一步地,存储器会话密钥(KM)872永远不离开CPU 805的边界,并且仅仅被用来当CPU用信号向信任锚835通知VM镜像842将在处理核885上被执行时,由信任锚835来配置加密/解密块878。进一步地,尽管在从储存器840中读取页P 895方面示出,但是本领域的普通技术人员将容易地认识到,当将到L3缓存的数据往回写入到DRAM 848和储存器840时所述过程以类似方式起作用。当加密数据从L3缓存882刷新时,该数据首先被传递到加密/解密块876,所述加密/解密块876使用存储器会话密钥KM来解密该数据。然后,该数据被传递到加密/解密块865,所述加密/解密块865在页数据被写入到储存器840时使用VM镜像加密密钥(KS)来加密该页数据。
总而言之,本文所述的实施例提供了用于在不可信云基础设施中安全地启动和执行虚拟机(VM)镜像的技术。例如,本文所述的一个实施例提供了一种包括配置有附加的硬件组件(被称为信任锚)的多核处理器的计算架构。如所描述的那样,该信任锚可以配备有私有/公共密钥对,从而允许多核CPU当能够在不可信云基础设施中安全地启动和执行虚拟机(VM)镜像时进行自身认证。
例如,在启动加密VM镜像之前,所述信任锚从事安全协议以向企业进行自身认证,并且获得用来对加密VM镜像进行解密的VM镜像加密密钥。如上所述,所述信任锚用VM镜像加密密钥来配置磁盘控制块。所述信任锚还生成存储器会话密钥,所述存储器会话密钥被用来配置在每个处理核上的L3缓存与存储器之间和在L3缓存与L2缓存之间的每个缓存线中的加密/解密块。一旦CPU上的加密/解密块使用所述密钥配置,VM镜像就可以被从储存器中提取并且启动。
当加密VM镜像的元素被从储存器中提取时,磁盘控制块使用VM镜像加密密钥来解密它们。当它们被写入到L3缓存时,存储器会话密钥然后被用来重新加密这样的元素。当需要给定存储器地址的数据时,处理核的L2缓存与共享L3缓存之间的缓存线中的存储器会话密钥被用来解密从L3缓存读取(和写入到L3缓存)的数掘。因此,L3缓存(在多个处理核之间共享)中的数据保持加密直到被提取到L2缓存(对于处理核而言是本地的)中为止。
虽然前文涉及了本公开的实施例,但是在不背离其基本范围的情况下,可以设计本公开的其他和进一步的实施例,并且其范围由如下的权利要求确定。

Claims (12)

1.一种安全启动虚拟机的方法,包括:
通过具有多个处理核的中央处理单元(CPU)上的信任锚接收虚拟机(VM)镜像,其中,所述VM镜像使用VM镜像加密密钥来加密;
获得所述VM镜像加密密钥;
用所述VM镜像加密密钥来配置第一加密/解密块;
生成存储器会话密钥;
用所述存储器会话密钥来配置第二加密/解密块;
将所述VM镜像的一个或多个页提取到可由所述多个处理核访问的存储器中,其中,每个提取的页由所述第一加密/解密块使用所述VM镜像加密密钥来解密,并且随后由所述第二加密/解密块使用所述存储器会话密钥的来加密;
用所述存储器会话密钥来配置第三加密/解密块,其中,所述第三加密/解密块存在于所述CPU上的第一缓存与第二缓存之间,并且其中,所述第一缓存对于所述CPU上的所述处理核中的一个而言是本地的,而所述第二缓存由所述CPU上的所述多个处理核共享;
标识数据的存储器地址以从所述存储器读取到所述第一缓存中;
从所述存储器将与所述存储器地址相关联的数据写入到所述第二缓存中;以及
从所述存储器将与所述存储器地址相关联的随机数写入到所述第二缓存中。
2.如权利要求1所述的方法,其中,获得所述VM镜像加密密钥包括:
用嵌入在所述信任锚中的私有密钥来对所述VM镜像加密密钥的第一加密拷贝进行签名;
将经签名的、加密的所述VM镜像加密密钥的拷贝传送到密钥服务,以便认证所述信任锚在所述CPU上的存在;以及
响应于所述认证,接收所述VM镜像加密密钥的第二加密拷贝,其中,所述VM镜像加密密钥的第二加密拷贝使用所述信任锚的公共密钥来加密。
3.如权利要求2所述的方法,其中,所述VM镜像加密密钥的第一加密拷贝使用与所述密钥服务相关联的公共密钥来加密。
4.如权利要求1所述的方法,其中,所述页被从磁盘存储库中提取,并且其中,所述第一加密/解密块和所述第二加密/解密块被布置在可由所述多个处理核访问的所述磁盘存储库与所述存储器之间的I/O路径中。
5.如权利要求1所述的方法,还包括:
至少使用所述存储器会话密钥、所述随机数以及所述存储器地址来生成密钥流,以及
使用所生成的密钥流来解密与所述存储器地址相关联同时正被从所述第二缓存读取到所述第一缓存的所述数据。
6.如权利要求1所述的方法,其中,所述VM镜像的一个或多个页通过在所述处理核中的一个上执行的管理程序而被提取到所述存储器中以便启动所述VM镜像。
7.一种安全启动虚拟机的计算系统,包括:
CPU,其具有多个处理核;
存储器,可由所述多个处理核访问;
信任锚,其中,所述信任锚被配置成:
获得VM镜像加密密钥,
用所述VM镜像加密密钥来配置第一加密/解密块;生成存储器会
话密钥,
用所述存储器会话密钥来配置第二加密/解密块,以及
用所述存储器会话密钥来配置第三加密/解密块,其中,所述第三加密/解密块存在于所述CPU上的第一缓存与第二缓存之间,并且其中,所述第一缓存对于所述CPU上的所述处理核中的一个而言是本地的,而所述第二缓存由所述CPU上的所述多个处理核共享;以及
存储器控制器,其中,所述存储器控制器被配置成:
将所述VM镜像的一个或多个页提取到所述存储器中,其中,每个提取的页都由所述第一加密/加密块使用所述VM镜像加密密钥来解密,并且随后当被写入到所述存储器时,由所述第二加密/解密块使用所述存储器会话密钥的来加密;
从所述存储器将与存储器地址相关联的数据写入到所述第二缓存中;以及
从所述存储器将与所述存储器地址相关联的随机数写入到所述第二缓存中。
8.如权利要求7所述的计算系统,其中,所述信任锚被配置成通过以下操作获得所述VM镜像加密密钥:
用嵌入在所述信任锚中的私有密钥来对所述VM镜像加密密钥的第一加密拷贝进行签名;
将经签名的、加密的所述VM镜像加密密钥的拷贝传送到密钥服务,以便认证所述信任锚在所述CPU上的存在;以及
响应于所述认证,接收所述VM镜像加密密钥的第二加密拷贝,其中,所述VM镜像加密密钥的第二加密拷贝使用所述信任锚的公共密钥来加密。
9.如权利要求8所述的计算系统,其中,所述VM镜像加密密钥的第一加密拷贝使用与所述密钥服务相关联的公共密钥来加密。
10.如权利要求7所述的计算系统,其中,所述页通过所述存储器控制器从磁盘存储库中提取,并且其中,所述第一加密/解密块和所述第二加密/解密块被布置在可由所述多个处理核访问的所述磁盘存储库与所述存储器之间的I/O路径中。
11.如权利要求7所述的计算系统,其中,所述第三加密/解密块被配置成:
至少使用所述存储器会话密钥、所述随机数以及所述存储器地址来生成密钥流;以及
使用所生成的密钥流来解密与所述存储器地址相关联同时正被从所述第二缓存读取到所述第一缓存的所述数据。
12.如权利要求7所述的计算系统,其中,所述VM镜像的一个或多个页被提取到所述存储器中,以便管理程序启动所述VM镜像。
CN201180038880.6A 2010-06-07 2011-06-06 不可信云基础设施中的安全虚拟机引导 Expired - Fee Related CN103069428B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/795,466 2010-06-07
US12/795,466 US8856504B2 (en) 2010-06-07 2010-06-07 Secure virtual machine bootstrap in untrusted cloud infrastructures
PCT/US2011/039246 WO2011156261A1 (en) 2010-06-07 2011-06-06 Secure virtual machine bootstrap in untrusted cloud infrastructures

Publications (2)

Publication Number Publication Date
CN103069428A CN103069428A (zh) 2013-04-24
CN103069428B true CN103069428B (zh) 2015-09-09

Family

ID=44262894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180038880.6A Expired - Fee Related CN103069428B (zh) 2010-06-07 2011-06-06 不可信云基础设施中的安全虚拟机引导

Country Status (4)

Country Link
US (1) US8856504B2 (zh)
EP (1) EP2577543B1 (zh)
CN (1) CN103069428B (zh)
WO (1) WO2011156261A1 (zh)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694777B2 (en) * 2010-08-13 2014-04-08 International Business Machines Corporation Securely identifying host systems
TW201241662A (en) * 2010-12-21 2012-10-16 Ibm Virtual machine validation
US9544137B1 (en) 2010-12-29 2017-01-10 Amazon Technologies, Inc. Encrypted boot volume access in resource-on-demand environments
US9509503B1 (en) * 2010-12-29 2016-11-29 Amazon Technologies, Inc. Encrypted boot volume access in resource-on-demand environments
US8495356B2 (en) * 2010-12-31 2013-07-23 International Business Machines Corporation System for securing virtual machine disks on a remote shared storage subsystem
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US9135037B1 (en) 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
US9237087B1 (en) 2011-03-16 2016-01-12 Google Inc. Virtual machine name resolution
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US8966581B1 (en) * 2011-04-07 2015-02-24 Vmware, Inc. Decrypting an encrypted virtual machine using asymmetric key encryption
US8875240B2 (en) 2011-04-18 2014-10-28 Bank Of America Corporation Tenant data center for establishing a virtual machine in a cloud environment
EP2702724B1 (en) * 2011-04-26 2017-03-29 Telefonaktiebolaget LM Ericsson (publ) Secure virtual machine provisioning
US8850593B2 (en) * 2011-05-12 2014-09-30 Hewlett-Packard Development Company, L.P. Data management using a virtual machine-data image
US8943564B2 (en) * 2011-07-21 2015-01-27 International Business Machines Corporation Virtual computer and service
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
US9219752B2 (en) * 2011-08-26 2015-12-22 Hewlett-Packard Development Company, L.P. Data leak prevention systems and methods
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
WO2013093209A1 (en) 2011-12-21 2013-06-27 Ssh Communications Security Oyj Automated access, key, certificate, and credential management
US10003458B2 (en) * 2011-12-21 2018-06-19 Ssh Communications Security Corp. User key management for the secure shell (SSH)
WO2013097117A1 (zh) * 2011-12-28 2013-07-04 华为技术有限公司 虚拟机全盘加密下预启动时的密钥传输方法和设备
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US9338008B1 (en) 2012-04-02 2016-05-10 Cloudera, Inc. System and method for secure release of secret information over a network
US8839004B1 (en) * 2012-04-16 2014-09-16 Ionu Security, Inc. Secure cloud computing infrastructure
US20150134965A1 (en) * 2012-05-24 2015-05-14 Telefonaktiebolaget L M Ericsson (Publ) Enhanced Secure Virtual Machine Provisioning
US9471355B2 (en) * 2012-07-31 2016-10-18 Hewlett-Packard Development Company, L.P. Secure operations for virtual machines
US8726044B2 (en) * 2012-07-31 2014-05-13 Hewlett-Packard Development Company, L.P. Encrypting data on primary storage device and on cache storage device
US8924720B2 (en) * 2012-09-27 2014-12-30 Intel Corporation Method and system to securely migrate and provision virtual machine images and content
US20140189235A1 (en) * 2012-12-31 2014-07-03 Unisys Corporation Stealth appliance between a storage controller and a disk array
US9253185B2 (en) * 2012-12-12 2016-02-02 Nokia Technologies Oy Cloud centric application trust validation
JP5945512B2 (ja) * 2013-02-13 2016-07-05 株式会社日立製作所 計算機システム、及び仮想計算機管理方法
US10230738B2 (en) 2013-05-13 2019-03-12 Telefonaktiebolaget Lm Ericsson (Publ) Procedure for platform enforced secure storage in infrastructure clouds
EP3661159A1 (en) 2013-07-08 2020-06-03 SSH Communications Security Oyj Trust relationships in a computerized system
FR3011654B1 (fr) * 2013-10-08 2016-12-23 Commissariat Energie Atomique Procede et dispositif d'authentification et d'execution securisee de programmes
CN103516728B (zh) * 2013-10-14 2016-08-31 武汉大学 一种防止云平台虚拟机非法启动的镜像加解密方法
US9934382B2 (en) * 2013-10-28 2018-04-03 Cloudera, Inc. Virtual machine image encryption
DE102013018596A1 (de) 2013-11-07 2015-05-07 Phoenix Contact Gmbh & Co. Kg Netzwerksystem, Koppeleinheit und Verfahren zum Betreiben eines Netzwerksystems
MY177609A (en) 2013-12-04 2020-09-22 Mimos Berhad A system and method to secure virtual machine images in cloud computing
WO2015092130A1 (en) 2013-12-20 2015-06-25 Nokia Technologies Oy Push-based trust model for public cloud applications
US9792448B2 (en) 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
US9147075B1 (en) * 2014-03-20 2015-09-29 Juniper Networks, Inc. Apparatus and method for securely logging boot-tampering actions
US9652631B2 (en) * 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US9509720B2 (en) 2014-06-12 2016-11-29 Cisco Technology, Inc. Techniques for improved run time trustworthiness
US9202058B1 (en) * 2014-07-07 2015-12-01 Trend Micro Inc. Root volume encryption mechanism in para-virtualized virtual machine
US9491198B2 (en) * 2014-07-10 2016-11-08 Sap Se Obligation enforcement for resource access control
US20160019555A1 (en) * 2014-07-15 2016-01-21 Boles Thomas Automated system for rating employee screening practices and corporate management
US10057218B2 (en) * 2014-07-28 2018-08-21 The Boeing Company Network address-based encryption
WO2016027121A1 (en) * 2014-08-20 2016-02-25 Intel Corporation Encrypted code execution
US9652276B2 (en) 2014-09-17 2017-05-16 International Business Machines Corporation Hypervisor and virtual machine protection
GB2532415A (en) 2014-11-11 2016-05-25 Ibm Processing a guest event in a hypervisor-controlled system
US10068092B2 (en) 2015-01-21 2018-09-04 Microsoft Technology Licensing, Llc Upgrading a secure boot policy on a virtual machine
US9722775B2 (en) * 2015-02-27 2017-08-01 Verizon Patent And Licensing Inc. Network services via trusted execution environment
US9722987B2 (en) 2015-03-13 2017-08-01 Ssh Communications Security Oyj Access relationships in a computer system
US9578008B2 (en) * 2015-05-11 2017-02-21 Intel Corporation Technologies for secure bootstrapping of virtual network functions
US20170024224A1 (en) * 2015-07-22 2017-01-26 Cisco Technology, Inc. Dynamic snapshots for sharing network boot volumes
US10230529B2 (en) * 2015-07-31 2019-03-12 Microsft Technology Licensing, LLC Techniques to secure computation data in a computing environment
US9767318B1 (en) * 2015-08-28 2017-09-19 Frank Dropps Secure controller systems and associated methods thereof
US9894061B2 (en) 2015-10-16 2018-02-13 International Business Machines Corporation Method for booting and dumping a confidential image on a trusted computer system
CN105487898A (zh) * 2015-11-27 2016-04-13 国云科技股份有限公司 一种提高虚拟机批量开机关机速度的方法
US9882901B2 (en) 2015-12-14 2018-01-30 International Business Machines Corporation End-to-end protection for shrouded virtual servers
US9894051B2 (en) 2015-12-14 2018-02-13 International Business Machines Corporation Extending shrouding capability of hosting system
US9841987B2 (en) 2015-12-17 2017-12-12 International Business Machines Corporation Transparent secure interception handling
US10019279B2 (en) 2015-12-17 2018-07-10 International Business Machines Corporation Transparent secure interception handling
CN107533594B (zh) 2016-01-21 2021-01-26 慧与发展有限责任合伙企业 验证软件的方法、安全软件系统及可读存储介质
GB2546803B (en) * 2016-01-29 2018-05-23 British Telecomm Disk encryption
GB2546802B (en) * 2016-01-29 2018-05-30 British Telecomm Disk encryption
US10425229B2 (en) * 2016-02-12 2019-09-24 Microsoft Technology Licensing, Llc Secure provisioning of operating systems
US10069626B2 (en) 2016-02-23 2018-09-04 Red Hat, Inc. Multiple encryption keys for a virtual machine
US20170277903A1 (en) * 2016-03-22 2017-09-28 Qualcomm Incorporated Data Protection Using Virtual Resource Views
US10237245B2 (en) 2016-07-15 2019-03-19 International Business Machines Corporation Restricting guest instances in a shared environment
US10303899B2 (en) 2016-08-11 2019-05-28 Intel Corporation Secure public cloud with protected guest-verified host control
US10810321B2 (en) * 2016-08-11 2020-10-20 Intel Corporation Secure public cloud
US10691482B2 (en) 2016-08-11 2020-06-23 Intel Corporation Systems, methods, and apparatus for securing virtual machine control structures
US9921888B1 (en) * 2016-08-23 2018-03-20 General Electric Company Mixed criticality control system
US10270596B2 (en) * 2016-09-16 2019-04-23 International Business Machnines Corporation Generating memory dumps
US10417433B2 (en) * 2017-01-24 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Encryption and decryption of data owned by a guest operating system
US10423791B2 (en) * 2017-04-27 2019-09-24 Microsoft Technology Licensing, Llc Enabling offline restart of shielded virtual machines using key caching
US11107068B2 (en) 2017-08-31 2021-08-31 Bank Of America Corporation Inline authorization structuring for activity data transmission
US10686605B2 (en) 2017-09-29 2020-06-16 Intel Corporation Technologies for implementing mutually distrusting domains
US10860359B2 (en) 2018-02-28 2020-12-08 Red Hat, Inc. Key management for encrypted virtual machines
US10735472B2 (en) 2018-07-10 2020-08-04 Cisco Technology, Inc. Container authorization policies for network trust
CN109508224B (zh) * 2018-11-15 2022-07-05 中国电子科技网络信息安全有限公司 一种基于kvm虚拟机的用户数据隔离防护系统及方法
US10956188B2 (en) 2019-03-08 2021-03-23 International Business Machines Corporation Transparent interpretation of guest instructions in secure virtual machine environment
US11354418B2 (en) * 2019-03-08 2022-06-07 International Business Machines Corporation Incremental decryption and integrity verification of a secure operating system image
US11029967B2 (en) * 2019-03-08 2021-06-08 International Business Machines Corporation Secure boot of a virtual machine
US11347529B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Inject interrupts and exceptions into secure virtual machine
US11308215B2 (en) 2019-03-08 2022-04-19 International Business Machines Corporation Secure interface control high-level instruction interception for interruption enablement
US10970100B2 (en) 2019-03-08 2021-04-06 International Business Machines Corporation Starting a secure guest using an initial program load mechanism
CN113614722A (zh) * 2019-04-19 2021-11-05 英特尔公司 网络功能虚拟化基础设施中的进程到进程安全数据移动
US11537421B1 (en) 2019-06-07 2022-12-27 Amazon Technologies, Inc. Virtual machine monitor providing secure cryptographic operations
CN110740036A (zh) * 2019-10-31 2020-01-31 广州知弘科技有限公司 基于云计算的防攻击数据保密方法
US11614956B2 (en) 2019-12-06 2023-03-28 Red Hat, Inc. Multicast live migration for encrypted virtual machines
US11533174B2 (en) * 2020-01-29 2022-12-20 International Business Machines Corporation Binding secure objects of a security module to a secure guest
CN111741068B (zh) * 2020-05-20 2022-03-18 中国电子科技网络信息安全有限公司 一种数据加密密钥传输方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098056A (en) 1997-11-24 2000-08-01 International Business Machines Corporation System and method for controlling access rights to and security of digital content in a distributed information system, e.g., Internet
WO2004006075A1 (ja) * 2002-07-09 2004-01-15 Fujitsu Limited 開放型汎用耐攻撃cpu及びその応用システム
JP4263976B2 (ja) * 2003-09-24 2009-05-13 株式会社東芝 オンチップマルチコア型耐タンパプロセッサ
US7734932B2 (en) 2003-11-10 2010-06-08 Broadcom Corporation System and method for securing executable code
US20080059556A1 (en) * 2006-08-31 2008-03-06 Egenera, Inc. Providing virtual machine technology as an embedded layer within a processing platform
US20090240953A1 (en) * 2008-03-19 2009-09-24 Safenet, Inc. On-disk software image encryption
US20090259855A1 (en) 2008-04-15 2009-10-15 Apple Inc. Code Image Personalization For A Computing Device
US8607034B2 (en) 2008-05-24 2013-12-10 Via Technologies, Inc. Apparatus and method for disabling a microprocessor that provides for a secure execution mode

Also Published As

Publication number Publication date
EP2577543A1 (en) 2013-04-10
US8856504B2 (en) 2014-10-07
US20110302400A1 (en) 2011-12-08
CN103069428A (zh) 2013-04-24
WO2011156261A1 (en) 2011-12-15
EP2577543B1 (en) 2019-02-20

Similar Documents

Publication Publication Date Title
CN103069428B (zh) 不可信云基础设施中的安全虚拟机引导
EP2577474B1 (en) Virtual machine memory compartmentalization in multi-core architectures
US8812871B2 (en) Method and apparatus for trusted execution in infrastructure as a service cloud environments
JP5537742B2 (ja) 多ユーザ機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置
US9674153B2 (en) Secure data processing
CN109756492B (zh) 基于sgx的云平台可信执行方法、装置、设备及介质
CN101441601B (zh) 一种硬盘ata指令的加密传输的方法及系统
CN105453034A (zh) 在管理器控制的系统中处理客户事件
CN102609643A (zh) 一种对虚拟机作动态密码学保护与所需的密钥管理方法
KR20210021285A (ko) 안전한 컴퓨터 시스템
Coughlin et al. Breaking the trust dependence on third party processes for reconfigurable secure hardware
Chu et al. Secure cryptography infrastructures in the cloud
US20230267214A1 (en) Virtual trusted platform module implementation method and related apparatus
CN113591098B (zh) 一种基于sgx的远程安全异构计算方法和系统
EP4174694A1 (en) Method for securely executing an application
US20240037217A1 (en) Digital content management through on-die cryptography and remote attestation
CN115081000A (zh) 保护远程目标程序源码的方法、系统、设备和存储介质
Hong et al. FASTEN: An FPGA

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150909

Termination date: 20210606

CF01 Termination of patent right due to non-payment of annual fee