虚拟机保证的制作方法

文档序号:10475918阅读:319来源:国知局
虚拟机保证的制作方法
【专利摘要】简要地,本文描述的主题的方面涉及虚拟机。在各方面中,当主机被重置或通电时,执行所测量的启动。如果所测量的启动指示主机处于满足用于获得对加密密钥的访问的策略的状态中,则可以获取加密密钥。可以直接地或间接地使用加密密钥以解密虚拟存储设备的数据。这种经解密的数据然后可以用于实例化虚拟机。
【专利说明】虚拟机保证
【背景技术】
[0001] 随着计算设备已经变得更为强大,一个或多个虚拟环境在计算设备上的执行已经 变得更加实用。虚拟环境可W包括计算设备的硬件抽象使得在虚拟环境内执行的计算机可 执行指令不能告知它们不是在所抽象的硬件上直接执行。对于计算机安全性之上的顾虑而 言,虚拟机用户可能想要具有关于虚拟机和托管环境的整体性的保证。
[0002] 本文要求保护的主题不限于解决任何缺陷或者仅在诸如W上描述的那些之类的 环境中操作的实施例。相反,该【背景技术】仅提供用于说明本文描述的一些实施例可W在其 中实践的一个示例性技术领域。

【发明内容】

[0003] 简要地说,本文描述的主题的方面设及虚拟机。在各方面中,当主机重置或通电 时,执行所测量的启动。如果所测量的启动指示主机处于满足用于获取对加密密钥的访问 的策略的状态中,则可W获取加密密钥。可W直接地或者间接地使用加密密钥W对虚拟存 储设备的数据进行解密。运种经解密的数据然后可W用于实例化虚拟机。
[0004] 提供本
【发明内容】
W简要地标识W下在【具体实施方式】中进一步描述的主题的一些 方面。本
【发明内容】
不意图标识所要求保护的主题的关键或必要特征,也不意图用于限制所 要求保护的主题的范围。
[0005] 短语"本文描述的主题"是指在【具体实施方式】中描述的主题,除非上下文清楚地W 其它方式指示。术语"方面"应当解读为"至少一个方面"。标识在【具体实施方式】中描述的主 题的方面不意图标识所要求保护的主题的关键或必要特征。
[0006] W上描述的方面W及本文描述的主题的其它方面通过示例的方式说明并且不受 限于附图,其中相同的参考标号指示相似的元件,并且其中。
【附图说明】
[0007] 图1是表示本文描述的主题的方面可W并入其中的示例性计算环境的框图; 图2-5是大体表示依照本文描述的主题的方面配置的系统的示例性组件的框图; 图6是大体表示依照本文描述的主题的方面在准备密钥分发服务W分发密钥时可能发 生的动作的流程图; 图7是大体表示依照本文描述的主题的方面在实例化虚拟机时可能发生的示例性动作 的流程图;W及 图8是大体表示依照本文描述的主题的方面可能由密钥分发服务采取的示例性动作的 流程图。
【具体实施方式】 [000引 定义 如本^使用的,术语"包括"及其变形应解读为意指"包括但不限于"的开放式术语。 术语"或"应解读为"和/或",除非上下文清楚地w其它方式指示。术语"基于"应解读为"至 少部分地基于"。术语"一个实施例"和"一实施例"应解读为"至少一个实施例"。术语"另一 实施例"应解读为"至少一个其它实施例"。
[0009] 如本文中使用的,诸如"一"、"一个"和"运个"之类的术语包括所指示的项目或动 作中的一个或多个。特别地,在权利要求中,对项目的引用一般意指存在至少一个运样的项 目并且对动作的引用意指执行动作的至少一个实例。
[0010] 术语数据应宽泛地解读为包括可W由一个或多个计算机存储元件表示的任何事 物。逻辑上,数据可W表示为易失性或非易失性存储器中的一系列0和1。在具有非二进制存 储介质的计算机中,数据可W根据存储介质的能力来表示。数据可W组织到不同类型的数 据结构中,包括诸如数字、字母等的简单数据类型,分层、链接或其它相关数据类型,包括多 个其它数据结构或简单数据类型的数据结构,等等。数据的一些示例包括信息、程序状态、 程序数据、其它数据等等。
[0011] 标题仅用于方便起见;关于给定议题的信息可W在其标题指示该议题的章节之外 找到。
[0012] 其它明显和隐含的定义可W包括在下文中。
[001引示例性操作环境 图1图示了本文描述的主题的方面可W在其上实现的适当计算系统环境100的示例。计 算系统环境100仅为适当计算环境的一个示例并且不意图暗示关于本文描述的主题的方面 的功能性或用途的范围的任何限制。计算环境100也不应当解释为具有设及示例性操作环 境100中所图示的组件的组合或其中任何一个的任何依赖性或要求。
[0014] 本文描述的主题的方面与众多其它通用或专用计算系统环境或配置可操作。可W 适用于与本文描述的主题的方面一同使用的公知计算系统、环境或配置的示例包括个人计 算机、服务器计算机一-在裸金属上或者作为虚拟机一-手持式或膝上型设备、多处理器 系统、基于微控制器的系统、机顶盒、可编程和不可编程的消费电子、网络PC、小型计算机、 大型计算机、个人数字助手(PDA)、游戏设备、打印机、包括机顶、媒体中屯、或其它器具的器 具、嵌入或附连到机动车的计算设备、其它移动设备、包括手机、无线电话和有线电话的电 话设备、包括W上系统或设备中的任一个的分布式计算环境,等等。尽管各种实施例可能限 于W上设备中的一个或多个,但是术语计算机意图涵盖W上设备,除非W其它方式指示。
[0015] 可W在诸如程序模块之类的由计算机执行的计算机可执行指令的一般上下文中 描述本文描述的主题的方面。一般地,程序模块包括例程、程序、对象、组件、数据结构等,其 执行特定任务或者实现特定抽象数据类型。本文描述的主题的方面也可W在分布式计算环 境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序 模块可W位于本地和远程计算机存储媒体(包括存储器存储设备)二者上。
[0016] 可替换地或者此外,本文描述的功能性可W至少部分地由一个或多个硬件逻辑组 件执行。例如并且不作为限制,可W使用的说明性类型的硬件逻辑组件包括现场可编程口 阵列(FPGA)、程序特定集成电路(ASIC)、程序特定标准产品(ASSP)、片上系统(S0C)、复杂可 编程逻辑器件(CPLD)等。
[0017] 参照图1,用于实现本文描述的主题的方面的示例性系统包括W计算机110形式的 通用计算设备。计算机可W包括能够执行指令的任何电子设备。计算机110的组件可W包括 处理单元120、系统存储器130、W及将包括系统存储器的各种系统组件禪合到处理单元120 的一个或多个系统总线(由系统总线121表示)。系统总线121可W是若干类型总线结构中的 任一种,包括存储器总线或者存储器控制器、外围总线、W及使用各种总线架构中的任一种 的本地总线。作为示例而非限制,运样的架构包括工业标准架构(ISA)总线、微通道架构 (MCA)总线、增强ISA(EISA)总线、视频电子标准联盟(VESA)本地总线、还已知为夹层总线的 外围组件互连(PCI )总线、外围组件互连扩展(PCI-X)总线、高级图形端口( AGP)和PCI express(PCIe)。
[0018] 处理单元120可W连接到硬件安全设备122。安全设备122可W能够生成并且安全 地存储加密密钥,其可W用于保护计算机110的各种方面。在一个实施例中,安全设备122可 W包括受信平台模块(TPM)忍片、TPM安全设备等。
[0019] 计算机110典型地包括各种计算机可读媒体。计算机可读媒体可W是可W由计算 机110访问的任何可用媒体并且可W包括易失性和非易失性,W及可移除和不可移除媒体 二者。作为示例而非限制,计算机可读媒体可W包括计算机存储媒体和通信媒体。
[0020] 计算机存储媒体包括W任何方法或技术实现W用于存储诸如计算机可读指令、数 据结构、程序模块或其它数据之类的信息的易失性和非易失性、可移除和不可移除媒体二 者。计算机存储媒体包括341、1?01、66?1?01、固态存储装置、闪存或其它存储器技术^0-1?01、 数字多用盘(DVD)或其它光盘存储装置、盒式磁带、磁带、磁盘存储装置或其它磁性存储设 备、或者可W用于存储期望的信息并且可W由计算机110访问的任何其它介质。计算机存储 媒体不包括通信媒体。
[0021] 通信媒体典型地在诸如载波之类的调制数据信号或者其它传输机制中体现计算 机可读指令、数据结构、程序模块或者其它数据并且包括任何信息递送媒体。术语"调制数 据信号"意指使得其一个或多个特性W运种方式设定或改变W便于将信息编码在信号中的 信号。作为示例而非限制,通信媒体包括诸如有线网络或直接有线连接之类的有线媒体,W 及诸如声学、RF、红外和其它无线媒体之类的无线媒体。W上中的任一个的组合也应当包括 在计算机可读媒体的范围内。
[0022] 系统存储器130包括W易失性和/或非易失性存储器的形式的计算机存储媒体,诸 如只读存储器(R〇M)131和随机存取存储器(RAM)132。包含诸如在启动期间帮助在计算机 110内的元件之间传递信息的基本例程的基本输入/输出系统133 (BI0S )典型地存储在ROM 131中。RAM 132典型地包含处理单元120立即可访问和/或当前由处理单元120对其进行操 作的数据和/或程序模块。作为示例而非限制,图1图示了操作系统134、应用程序135、其它 程序模块136和程序数据137。
[0023] 计算机110还可W包括其它可移除/不可移除、易失性/非易失性计算机存储媒体。 仅作为示例,图1图示了从不可移除非易失性磁性媒体读取或向其写入的硬盘驱动141、从 可移除非易失性磁盘152读取或向其写入的磁盘驱动151、W及从可移除非易失性光盘156 (诸如CD R0M、DVD或其它光学媒体)读取或向其写入的光盘驱动155。可W在示例性操作环 境中使用的其它可移除/不可移除、易失性/非易失性计算机存储媒体包括盒式磁带、闪存 卡W及其它固态存储设备、数字多用盘、其它光盘、数字视频带、固态RAM、固态ROM等。硬盘 驱动141可W通过接口 140连接到系统总线121,并且磁盘驱动151和光盘驱动155可W通过 用于可移除非易失性存储器的接口(诸如接口 150)而连接到系统总线121。
[0024] W上讨论并且在图1中图示的驱动及其相关联的计算机存储媒体为计算机110提 供计算机可读指令、数据结构、程序模块和其它数据的存储。在图1中,例如,硬盘驱动141被 图示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。要指出的是,运 些组件可W与操作系统134、应用程序135、其它程序模块136和程序数据137相同或者不同。 操作系统144、应用程序145、其它程序模块146和程序数据147在本文中被给予不同标号W 在最低限度上说明它们是不同副本。
[0025] 用户可W通过诸如键盘162和定点设备161(通常称为鼠标、追踪球或触摸板)之类 的输入设备将命令和信息录入到计算机110中。其它输入设备(未示出)可W包括麦克风(例 如用于语音或其他音频)、操纵杆、游戏垫、盘式卫星天线、扫描仪、触敏屏、手写板、相机(例 如用于输入手势或其它视觉输入)等。运些和其它输入设备通常通过禪合于系统总线的用 户输入接口 160而连接到处理单元120,但是可W通过诸如并行端口、游戏端口或通用串行 总线(USB)之类的其它接口和总线结构进行连接。
[00%]通过使用W上标识的输入设备中的一个或多个,可W建立自然用户接口(NUI)。 NUI可W依赖于语音识别、触摸和触笔识别、屏幕上和屏幕附近两者的手势识别、空中手势、 头部和眼睛追踪、话音和语音、视觉、触摸、手势、机器智能等。可W用来与用户交互的一些 示例性NUI技术包括触敏显示、话音和语音识别、意图和目标理解、使用深度相机(诸如立体 相机系统、红外相机系统、RGB相机系统及其组合)的运动手势检测、使用加速度计/巧螺仪 的运动手势检测、面部识别、3D显示、头部、眼睛和凝视追踪、沉浸式增强现实和虚拟现实系 统、W及用于使用电场感测电极感测脑部活动的技术(EEG及相关方法)。
[0027]监控器191或其它类型的显示设备也经由诸如视频接口 190之类的接口连接到系 统总线121。除监控器之外,计算机还可W包括诸如扬声器197和打印机196之类的其它外围 输出设备,其可W通过输出外围接口 195连接。
[00%]计算机110可W使用到诸如远程计算机180之类的一个或多个远程计算机的逻辑 连接而操作在联网环境中。远程计算机180可W是个人计算机、服务器、路由器、网络PC、对 等设备或者其它常见网络节点,并且典型地包括W上相对于计算机110描述的元件中的许 多或全部,尽管已经仅在图1中图示存储器存储设备181。图1中描绘的逻辑连接包括局域网 (LAN)171和广域网(WANH73,但是也可W包括电话网络、近场网络和其它网络。运样的联网 环境在办公室、企业范围的计算机网络、内联网和因特网中很常见。
[0029] 当使用在LAN联网环境中时,计算机110通过网络接口或适配器170连接到LAN 171。当使用在WAN联网环境中时,计算机110可W包括调制解调器172、网卡、或者用于通过 诸如因特网之类的WAN 173建立通信的其它构件。可W在内部或外部的调制解调器172可W 经由用户输入接口 160或其它适当机制而连接到系统总线121。在联网环境中,相对于计算 机110描绘的程序模块或其部分可W存储在远程存储器存储设备中。作为示例而非限制,图 1图示了如驻留在存储器设备181上的远程应用程序185。将领会到,所示出的网络连接是示 例性的并且可W使用建立计算机之间的通信的其它措施。
[0030] 保证 如之前提及的,对于虚拟机,用户可能想要具有关于虚拟机和主机环境的整体性的保 证。图2是大体表示依照本文描述的主题的方面配置的系统的示例性组件的框图。在图2中 图示的组件是示例性的并且不意为全部包括可能需要或包含的组件。此外,组件的数目可 w在其它实施例中不同而不脱离本文描述的主题的方面的精神或范围。在一些实施例中, 结合图2描述的组件可W包括在其它组件(示出或未示出)中或者放置在子组件中而不脱离 本文描述的主题的方面的精神或范围。在一些实施例中,结合图2描述的组件和/或功能可 W跨多个设备分布。
[0031] 如本文中使用的术语"功能"可W被认为是执行一个或多个任务的代码的部分。尽 管功能可W包括返回数据的代码块,但是其不限于返回数据的代码块。功能也可W执行特 定任务而不返回任何数据。此外,功能可W或者可W不具有输入参数。功能可W包括子例 程、子程序、过程、方法、例程等。
[0032] 如本文中使用的,术语组件可W在可替换实施方式中解读为包括诸如全部或部分 的设备、一个或多个软件模块或其部分的集合、一个或多个软件模块或其部分与一个或多 个设备或其部分的某种组合等。在一种实现方式中,组件可W通过结构化(例如编程)处理 器(例如图1的处理单元120)W执行一个或多个动作而实现。
[0033] 例如,在图2中图示的组件可W使用一个或多个计算设备实现。运样的设备可W包 括例如个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微控制器的 系统、机顶盒、可编程消费电子、网络PC、小型计算机、大型计算机、个人数字助手(PDA)、游 戏设备、打印机、包括机顶、媒体中屯、或其它器具的器具、嵌入或附连到机动车的计算设备、 其它移动设备、包括W上系统或设备中的任一个的分布式计算环境,等等。
[0034] 可W配置成实现图2的组件中的一个或多个的示例性设备包括图1的计算机110。
[0035] 在一种实现方式中,组件还可W包括代码或者由代码表示。代码包括指示计算机 要采取的动作的指令。代码也可W包括数据、资源、变量、定义、关系、关联等,其包括除计算 机要采取的动作之外的信息。例如,代码可W包括图像、网页、HTMUXML、其它内容等。
[0036] 代码可W由计算机执行。当代码由计算机执行时,运可W称为进程。如本文中使用 的术语"进程"及其变形可W包括一个或多个传统进程、线程、组件、库、执行任务的对象等。 进程可W实现在硬件、软件或者硬件和软件的组合中。在实施例中,进程是能够执行动作或 者用于执行动作的不管如何称呼的任何机制。进程可W分布在多个设备或单个设备之上。 代码可W在用户模式、内核模式、某种其它模式、W上的组合等中执行。
[0037] 尽管在本文中有时候使用术语"客户端"和"服务器",但是要理解到,客户端可W 实现在具有典型地与服务器相关联的硬件和/或软件的机器上,并且同样地,服务器可W实 现在具有典型地与台式、个人或移动计算机相关联的硬件和/或软件的机器上。此外,客户 端有时可W充当服务器并且反之亦然。有时,更频繁地充当客户端或服务器的两个或多个 实体可W同时为对等体、服务器或客户端。在实施例中,客户端和服务器可W实现在相同物 理机器上。
[0038] 为了解释简单起见,W某种顺序描述W下描述的一些动作。尽管顺序可能遵循一 些实现方式,但是不意图将其它实现方式限于特定顺序。实际上,在一些实现方式中,本文 描述的动作可任何方式排序并且可W彼此并行地进行。
[0039] 如本文中描述的术语"虚拟硬驱动"仅为示例性的。在其它可替换方案中,可W替 换其它虚拟存储设备,诸如虚拟软盘、虚拟固态存储装置或者其它虚拟读写媒体、虚拟CD R0M、DVD、或者其它虚拟只读媒体,而不脱离本文描述的主题的方面的精神或范围。术语虚 拟存储设备意图涵盖任何类型的虚拟存储设备,包括例如W上提到的那些。
[0040] 虚拟存储设备可w包括意为供管理程序使用的元数据或者与其相关联。在一些实 现方式(在下文更详细描述)中,该元数据可W隐藏并且不被管理程序所托管的虚拟机可看 到。例如,在具有虚拟受信平台模块(νΤΡΜ)的实现方式中,虚拟机可W仅具有如由管理程序 所给予的虚拟存储设备的视图。该视图排除意为供管理程序使用的元数据。在运些实现方 式中,使用^ΡΜ的虚拟机可能仅对视图中的内容进行加密或解密。
[0041] 在其中不存在^ΡΜ的其它实现方式(在下文更详细地描述)中,包括意为供管理程 序使用的元数据的整个虚拟存储设备可W被加密。在运些实现方式中,在从密钥分发服务 获取密钥之后,管理程序可W对包括意为供管理程序使用的元数据的整个虚拟存储设备进 行解密。
[0042] 转向图2,系统200可W包括主机230、密钥分发服务235和其它组件(未示出)。主机 230可W适用于托管可能与虚拟硬驱动205-207相关联的一个或多个虚拟机208-210。主机 230可W托管一个或多个虚拟机(例如虚拟机208-210)。虚拟机可W与一个或多个虚拟硬驱 动(例如虚拟硬驱动205-207中的一个或多个)相关联。主机230可W包括管理程序215和分 立的受信平台模块225或其它安全设备。
[0043] 管理程序215是创建虚拟机208-210可W在其中操作的虚拟环境的组件。管理程序 215可W实现在硬件、固件、软件、W上中的两个或更多的组合等中。管理程序215可W直接 在主机230的硬件上执行或者可W在托管于主机230上的操作系统环境内执行。
[0044] 贯穿本文献,频繁地使用术语受信平台模块(TPM)dTPM是本领域技术人员很好理 解的。然而,术语TPM的使用不意图将本文描述的主题的方面单单限于遵守用于实现TPM的 标准的一个或多个版本的设备。相反,该术语被用作可W依照本文描述的主题的方面使用 的安全组件的一个示例。
[0045] 在其它实现方式中,也可W使用提供安全功能性的其它安全组件,而不脱离本文 描述的主题的方面的精神或范围。例如,安全设备可W具有包括至少W下各项的特性: 1.受保护的存储器。安全设备可W包括仅安全设备可W向其写入的存储器。该存储器 可W用于存储测量,W密封和解封,W及用于其它加密功能。
[0046] 2.用于标识安全设备的措施。例如,安全设备可W包括仅设备知晓并且将设备与 其它设备进行区分的秘密。
[0047] 3.用于执行认证的措施。安全设备可W具有可W用于创建关于由安全设备控制 的任何资产的受信消息的处理器或其它电路。由安全设备控制的一些示例性资产可W包括 加密对象、密封团块、安全设备与其相关联的平台的状态等。
[004引尽管安全设备通常被认为是分离的分立组件,但是并不要求运样。例如,在一种实 现方式中,与处理器禪合的固件可W用作安全设备。
[0049] 当在本文中使用术语TPM时,要理解到,在可替换实现方式中,可W使用其它安全 设备(包括本文提及的那些)而不脱离本文描述的主题的方面的精神或范围。
[0050] 为了帮助理解,在下文描述TPM的一些特征,但是不意图详述TPM的所有特征。此 夕h通过在本文中描述TPM的一些特征,不意图将可W使用的安全设备的类型限于具有所述 特征的那些。
[0051] 除其它之外,TPM可W还包括它可W在其中存储数据的一个或多个寄存器的集合。 寄存器可W是易失性的使得它们在主机通电时维持数据并且可W在主机断电或重置时重 置。寄存器可W用于存储可W用于确保托管TPM的主机处于某一状态的测量。
[0052] 测量由数据表示。在一种实现方式中,测量对应于代码散列和/或配置数据。在另 一实现方式中,测量可W包括诸如代码的签名之类的代码特性。在另一实现方式中,测量可 W包括批准代码的权威机构的身份。W上示例性实现方式不意图是穷举性的或包括全部 的。基于本文中的教导,本领域技术人员可W认识到可W使用的其它测量而不脱离本文描 述的主题的方面的精神或范围。
[0053] 测量可W在各种时间取得。例如,在执行固件之前,可W计算固件的散列并且将其 作为测量提供给TPM。在执行操作系统启动加载器之前,可W计算启动加载代码的散列并且 将其作为测量提供给TPM。在执行操作系统的一个或多个组件之前,可W计算组件的代码的 散列并且将其作为测量提供给TPM。所测量的启动可W包括在从加电起的启动链路中的某 些点处取得测量(例如在执行代码之前)并且包括操作系统内核、管理程序和/或启动必要 驱动器的发起。
[0054] 当需要测量时,TPM内部的组件可W完成测量所必要的任何计算并且然后将表示 测量的数据提供给TPM,要求TPM更新所指示的寄存器。计算可W设及例如将代码读入到存 储器中并且执行代码上的散列W获得测量。
[00对结合向TPM提供测量,也可W传递TPM寄存器的指示。当TPM与所指示的寄存器一起 接收到测量时,TPM可便于维持关于已经将什么测量到寄存器中的历史的运种方式来 更新寄存器。运样做的一种方式是将所接收的测量连结与当前处于寄存器中的内容并且执 行结果上的加密散列。加密散列的输出然后可W写回到寄存器。
[0056]尽管组件可W提供测量并且指示TPM寄存器,但是不允许组件直接向寄存器写入。 换言之,TPM的寄存器不能由TPM外部的组件写入。
[0化7] 在一种实现方式中,管理程序215可W管理一个或多个虚拟TPM(vTPM)220-222。每 一个^PM可W与虚拟机(例如虚拟机205-207中的一个或多个)相关联。在该实现方式中,管 理程序215可W在不可用于管理程序215外部的组件的管理程序215的安全存储器中存储表 示乃?1的数据。为了获得对^PM的访问,可能要求攻击者获得对管理程序215本身的控制。 [0化引在另一实现方式中,主机230可W管理^PM 220-222。在该实现方式中。具有管理 员特权的用户和进程可W能够访问^PM 220-222。该实现方式在图3中图示。如图3中所图 示的,系统300具有在管理程序215外部受管理的^PM 220-222。
[0059] 在又一种实现方式中,主机230外部的服务可W管理^PM 220-222。该实现方式在 图4中图示。如在图4中图示的,系统400具有由主机230内部的^PM服务405管理的^PM 220-222。
[0060] 在一种实现方式中,密钥分发服务235可W在主机230外部托管。在另一种实现方 式中,密钥分发服务235可W托管在主机230上,如在图5中图示的。如在图5中图示的,系统 500具有托管在主机230上的密钥分发服务235。
[0061] 返回到图2,系统200可W托管在公共或私用云中。云是通常用作暗喻因特网的术 语。其带来W下构思:计算、软件、数据访问、存储和其它资源可W由连接到因特网(或其它 网络)的实体提供而不要求用户知晓关于递送那些资源的计算基础设施的位置或其它细 下。
[0062] 虚拟机208-210可^经由云提供给一个或多个租户。租户可^与虚拟机208-210中 的一个或多个相关联。租户可w包括有权利访问虚拟机中的一个或多个的用户、公司或其 它实体。租户可能不想要其它租户、云托管运营商、攻击者或者其它实体获得对租户的虚拟 机的访问。租户还可能想要来自云托管运营商的W下保证:托管租户的虚拟机的主机满足 某些策略(例如主机的配置处于由租户限定的一个或多个状态的集合中)。
[0063] 为了确保满足策略,在一种实现方式中,租户可W要求与虚拟机相关联的虚拟硬 驱动的部分或全部利用秘密密钥来加密。经加密的虚拟硬驱动可W仅在知晓秘密密钥的情 况下被解密。在没有其相关联的虚拟硬驱动的情况下,虚拟机可能不能够执行。
[0064] 尽管在本文中有时候引用单数形式的策略,但是要理解到,本文中的操作也可W 应用于多个策略。例如,如果主机遵守可接受的策略的集合中的任一个,则经密封的密钥可 W解封。同样地,如果管理程序提供主机状态满足可接受的策略的集合中的任一个的证据, 则密钥分发服务可W提供用于访问^PM的密钥。例如,管理程序可W通过提供由主机的TPM 对主机状态的认证来提供该证据。
[0065] 在一种实现方案中,可W用于解密虚拟硬驱动的秘密密钥可W是与密钥分发服务 235所提供的相同密钥。在该实现方式中,可能不需要^PM 220-222。一旦从密钥分发服务 235获得秘密密钥,则该密钥可W用于解密虚拟硬驱动。
[0066] 在另一实现方式中,可W解密虚拟机的虚拟硬驱动的秘密密钥可W密封到与虚拟 机相关联的^PM。密封可W设及^PM的一个或多个寄存器。寄存器的集合可W选取成W便 实施租户选择的策略。当经由^PM密封密钥时,密钥仅可W在用于密封密钥的(多个)寄存 器包括它们在密钥被密封时进行的相同数据的情况下从^PM获取。
[0067] 此外,^PM可W W使得仅占有针对乃口1的正确密钥k的主机将能够访问它的运种 方式得到保护。实现运一点的一种示例性方式如下:
其中indices是TPM寄存器的所选集合,k是用于加密虚拟硬驱动的密钥,C是由密封操 作生成的密码文本,MAKsrk是用于创建使用dTPM 225的存储根密钥(SRK)的C的算法,或者在 可替换实现方式中,密钥分发服务235的密钥,并且PCRindex山是由index[i]指示的dTPM 225 的寄存器。在一种实现方式中,仅SRK的公共部分需要用于密封操作。使所得密码文本C可用 于主机230。密封操作可W例如通过密钥分发服务235来进行。
[0068] 在通电时,主机230进行所测量的启动。主机230然后可W尝试经由如下解封操作 来解封密码文本C:
解封操作可W由密钥分发服务235或者由主机230基于如下文描述的密钥分发来执行。 如果解封操作由分发服务235执行,则主机可W在由dTPM签署的分组中向密钥分发服务235 传递由dTPM 225测量的数据。如果由主机230执行解封操作,则主机可W使用之前分发的密 钥,其可W仅在主机230上解封,如果主机230处于满足策略的状态中(如由dTPM 225所测 量)。
[0069] 如果所有寄存器处于正确状态中(意味着主机230处于与策略相容的状态中),则 解封将继续并且主机230将提供有解密虚拟机的乃?1的密钥或者直接解密(多个)V皿的密 钥(如在下文更详细描述的)。此时,虚拟机可W启动,因为^PM可用于解封对虚拟机的(多 个)V皿进行解密所必要的密钥。如果^PM状态在启动之后依照租户的策略,则解锁将发生。 当虚拟机解锁时,其还可能试图基于其当前^PM状态而进行认证。该认证允许虚拟机向其 它租户资源证实其与租户策略相容。
[0070] 此时,已经实现W下目标: 1. 借助通过执行虚拟机而完成的认证,向租户保证虚拟机与租户设定的虚拟机策略 相容; 2. 由于对虚拟机的(多个)V皿加密的密钥的密封,向租户保证V皿内容尚未修改;W及 3. 由于^PM密封,向租户保证虚拟机运行于与用于主机的设定策略相容的主机上。
[0071] 为了还进行保护W防VHD的内容在运行时间期间的修改,代码整体性策略可W在 主机上实现。
[0072] 在可替换的实现方式中,作为密钥分发服务235执行解封操作的替代方案,密钥分 发服务235可W简单地提供密钥W解密虚拟硬驱动。例如,主机230可W在由dTPM签署的分 组中向密钥分发服务235传递由dTPM 225测量的数据,并且密钥分发服务235可W通过为主 机提供密钥W解密虚拟硬驱动而做出响应。
[0073] 在一种实现方式中,密钥k保护的^PM数据是^PM的认可主要种子和存储主要种 子,因为其它任何事物要么是短暂、公共的,或者是可W导出的。在另一实现方式中,密钥k 可W保护除主要种子和存储主要种子之外的数据。
[0074] 在一种实现方式中,密钥分发服务235可W受租户的控制。在另一实现方式中,密 钥分发服务235可W受主机的控制(例如操作主机230的云运营商)。在第一种实现方式中, 租户维持解密^PM所必要的密钥之上的完全控制(并且通过它,虚拟机),但是可能需要承 受维持到托管方的连接W便允许虚拟机启动的负担。在第二种实现方式中,租户可W让托 管方(例如托管方的组织的分离部分)运行密钥分发服务235。在一种实现方式中,运可W完 成使得要求托管方的组织中的至少两个实体协作W便访问租户^PM密钥k。
[0075] 可用于解密^PM的密钥W各种方式分发。例如,在一种实现方式中,密钥可W在已 知主机的(多个)什么状态满足策略之后的任何时间分发。例如,在配置满足策略的状态中 的主机230之后,dTPM的一个或多个寄存器的状态可W由dTPM 225签署并且发送给密钥分 发服务235。在接收到此之后,密钥分发服务235可W立即或者在此之后的任何时间向主机 230发送密钥,该密钥W使得主机230可W仅在主机230处于满足策略的状态中时解密密钥 的运种方式进行加密或包装。W运种方式加密密钥可W设及利用主机的TPM的公共密钥W 及满足策略的状态(由主机的TPM测量的)对密钥进行加密。
[0076] 在另一实现方式中,密钥分发服务235可W等待直到在提供密钥之前请求密钥。在 该实现方式中,密钥分发服务235可W在提供密钥之前核验请求机器的状态。如果密钥满足 策略,则可W由密钥分发服务235提供密钥;否则,密钥分发服务235可W从请求者扣留密 钥。
[0077] W上密钥分发的示例仅为示例性的。基于本文的教导,本领域技术人员可W认识 到还可W使用的分发密钥的其它方式而不脱离本文描述的主题的方面的精神或范围。
[0078] W上教导可W应用于不具有安全设备或者具有安全设备的较旧版本的安全机器。 例如,一些机器可能根本就不具有TPM。其它机器可W具有TPM,但是TPM可能根据陈旧的TPM 标准来实现。一些操作系统可w不执行,除非它们能够访问根据某一版本或更大版本所实 现的TPM。
[0079] 为了补救W上描述的那些之类的运种平台,平台可W配置有管理程序。管理程序 然后可W用于在虚拟环境中执行操作系统。当操作系统请求访问TPM时,管理程序可W提供 适当版本的虚拟TPM。管理程序可W保护虚拟TPM,因此仅管理程序可W改变虚拟TPM的受保 护存储器。就操作系统而言,虚拟TPM看起来就像是分立的物理TPM。
[0080] 此外,用于创建虚拟TPM的播种(seeding)秘密可W经由键盘或其它输入设备而录 入,从USB或在使用播种秘密之后断开的其它外部存储设备来读取等等。
[0081] 用于保护机器的W上方法的一个缺点在于,机器的快速硬件(例如CPU)可W用于 执行^PM的功能。运可W极大地加速机器的加密功能。
[0082] 在较旧版本的TPM可用于机器上时,该较旧版本的TPM可W用于提供W下证据:机 器处于其中允许机器获取对^PM密钥的访问的状态中。尽管运可能不像具有机器上的新版 本TPM并且使用该新版本TPM获取对^PM密钥的访问那样理想,但是其可能比非TPM解决方 案更好。
[0083] 图6-9是大体表示依照本文描述的主题的方面可能发生的示例性动作的流程图。 出于解释简单起见,结合图6-9描述的方法被描绘和描述为一系列动作。要理解和领会到, 本文描述的主题的方面不受所图示的动作和/或动作的次序所限制。在一个实施例中,动作 可如下文描述的次序而发生。然而,在其它实施例中,动作中的两个或更多可W并行地 或者W另一次序而发生。在其它实施例中,动作中的一个或多个可W与本文没有呈现和描 述的其它动作一同发生。此外,可能并非要求所图示的全部动作W实现依照本文描述的主 题的方面的方法。另外,本领域技术人员将理解和领会到,方法可W可替换地表示为经由状 态图的一系列相关状态或者事件。
[0084] 图6是大体表示依照本文描述的主题的方面在准备密钥分发服务W分发密钥时可 能发生的动作的流程图。在块605处,动作开始。
[00化]在块610处,获取满足策略的测量。例如,参照图2,主机230可W启动并且与将主机 230配置到满足策略的状态中相结合地在预限定的状态下取得测量。
[0086] 在块615处,可W将测量的证据提供给密钥分发服务。例如,参照图2,dTPM 225可 W用于获取安全数据,其包括已经由dTPM 225签署的测量的散列。该安全数据指示满足策 略的主机的状态。安全数据从测量经由散列而导出。该安全数据然后可W提供给密钥分发 服务235。
[0087] 在块620处,可W存储证据。例如,参照图2,密钥分发服务235可W将证据存储在密 钥分发服务235可访问的存储装置(未示出)中。密钥分发服务235可W使证据与特定^PM、 管理程序、主机、虚拟机等的(多个)标识符相关联,使得例如证据可W与随后提供的证据在 提供密钥之前进行比较。在可替换方案中,证据可W由密钥分发服务235丢弃并且可W依赖 于密封/解封操作来保护密钥。
[0088] 在块625处,分发密钥W用于解密虚拟安全设备。如之前提及的,运可W响应于针 对密钥的请求或者在运样的请求之前而完成。例如,参照图2,在一种实现方式中,管理程序 215可W从密钥分发服务235请求密钥并且可W将与策略相容的证据提供给密钥分发服务 235。作为响应,密钥分发服务235可W核验证据事实上是否满足策略,并且如果是,则将加 密密钥提供给管理程序215。
[0089] 在另一实现方式中,密钥分发服务235可W在接收到W上提及的安全数据之后的 任何时间处将经密封的密钥提供给主机230。密钥可W密封成使得主机230可W不解封密 钥,除非主机处于满足策略的状态中。
[0090] 在块630处,可W执行其它动作,如果有的话。
[0091] 图7是大体表示依照本文描述的主题的方面在实例化虚拟机时可能发生的示例性 动作的流程图。在块705处,动作开始。
[0092] 在块710处,主机通电。例如,参照图2,主机230可W通过激活开启开关而通电。除 物理地使主机通电之外,在可替换方案中,术语通电还可W是指使主机230重启而没有物理 地接通或断开向主机230的电力。
[0093] 在块715处,执行启动进程。启动进程包括准备主机W执行虚拟机所需要的动作。 运些动作包括实例化适用于托管主机的虚拟环境。启动进程可W包括例如: 1. 加载和执行固件; 2. 加载和执行启动加载器; 3. 加载和执行管理程序、操作系统或其它代码的组件;W及 4. 准备主机W执行虚拟机所需要的其它动作。
[0094] 在块720处,在启动进程期间的预限定状态下,将主机的测量提供给主机安全组 件。预限定的状态可W包括例如在执行新代码之前每一次将新代码加载到存储器中、在加 载新代码之前将新代码加载到存储器中的次数的子集、在执行一个或多个代码片段之后或 者其它状态。例如,按照图2,主机可W执行所测量的启动并且将测量提供给dPTM 225。
[0095] 在块725处,如测量到主机安全组件中的测量可W用于获取加密密钥。测量可W指 示主机处于满足用于托管某一虚拟机的策略的状态中。在一种实现方式中,获取加密密钥 可W包括: 1. 从密钥分发服务,获取密封到主机的状态的密封数据(要指出的是,一旦该密钥可 用,就可W分发该密钥);W及 2. 经由主机安全组件对密封数据解封。主机安全组件可W配置成仅在测量指示主机 处于满足用于托管虚拟机的策略的状态中的情况下才对密封数据进行解封。
[0096] 例如,参照图2,密钥分发服务235可W向主机230提供密钥,其密封到满足策略的 主机230的状态。仅在主机230处于满足策略的状态中的情况下,主机230才可W使用dTPM 225解封密钥。
[0097] 在另一实现方式中,获取加密密钥可W包括: 1. 在实例化虚拟环境之后,发送针对加密密钥的请求并且提供测量满足用于获取加 密密钥的策略的证据;W及 2. 仅在证据事实上满足策略的情况下才接收加密密钥。
[0098] 例如,参照图2,在实例化虚拟环境之后,管理程序215可W将针对^PM 220的加密 密钥的请求发送给密钥分发服务235并且可W提供证据(例如由dTPM 225生成的安全数据) W指示主机230处于满足用于获取针对乃?1 220的加密密钥的策略的状态中。密钥分发服 务235可W经由证据核验主机处于该状态中并且如果证据事实上满足策略则可W提供加密 密钥。
[0099] 在块730处,加密密钥用于对表示虚拟安全设备的数据解密。例如,参照图2,管理 程序215可W使用从密钥分发服务235所获取的加密密钥来解密^PM 220。在解密^PM 220 之后,管理程序215可W开始执行虚拟机并且向虚拟机提供^PM 220的服务。
[0100] 在块735处,可W从经解密的虚拟安全设备获取存储密钥。例如,参照图2,虚拟机 208可W在启动过程中从乃?1 220获取存储密钥。该存储密钥可W用于解密虚拟硬驱动 205。在可替换方案中,管理程序215可W使用来自密钥分发服务235的密钥(或者从该密钥 导出的密钥)直接解密虚拟硬驱动205。
[0101] 在块740处,虚拟机可W经由虚拟存储设备的经解密的数据而实例化。例如,参照 图2,管理程序可W利用虚拟硬驱动205的经解密的数据来实例化虚拟机208。
[0102] 在块745处,可W执行其它动作(如果有的话)。例如,虚拟机、管理程序、主机或另 一组件可W从安全组件获取认证并且将该认证提供给另一实体W向其他实体保证环境处 于与其他实体的策略相容的状态中。认证可W基于在启动进程期间的预限定状态处所获得 的测量并且可W由安全组件的私用密钥签署。
[0103] 图8是大体表示依照本文描述的主题的方面可能由密钥分发服务采取的示例性动 作的流程图。在块805处,动作开始。
[0104] 在块810处,接收针对密钥的请求。例如,参照图2,密钥分发服务235可W接收针对 ^PM 220的密钥的请求。请求可W从主机的组件(例如管理程序、操作系统或其它组件)接 收。密钥可W与测量满足用于获取密钥的策略运一证据一起传送。密钥可W是用于与虚拟 机相关联的虚拟安全设备(例如^PM)的加密密钥。加密密钥提供用于直接地或间接地解密 与虚拟机相关联的虚拟存储设备的解密数据。此处的直接地意指解密数据可W用作密钥。 间接地意指解密数据可W用于解密其它数据(例如^PM),所述其它数据可W用于解密其它 数据等等(1-n次)W便最终获取解密虚拟存储设备的密钥。
[0105] 在块815处,响应于请求,可W核验证据W确定其是否满足策略。例如,参照图2,密 钥分发服务235可W核验证据是否满足允许请求者获取密钥的策略。
[0106] 在块820处,如果证据满足策略,则提供密钥。例如,参照图2,密钥分发服务可W将 密钥提供给主机230的请求组件。对于附加的安全性,密钥可接收组件(如果可信的话) 可W解密密钥的方式而加密。
[0107] 在块825处,可W执行其它动作,如果有的话。在之前提及的密钥分发服务235的另 一实现方式中,密钥分发服务235可W分发密封到满足租户策略的主机的状态的密钥。密钥 分发服务235可W在知晓状态之后的任何时间完成此。
[0108] 如可W从前面的详细描述看到的,已经描述了设及虚拟机保证的方面。尽管本文 描述的主题的方面易受各种修改和可替换构造的影响,但是在图中示出并且在上文已经详 细描述了其某些所图示的实施例。然而,应当理解的是,不意图将所要求保护的主题的方面 限于所公开的具体形式,而是相反,意图是涵盖落入本文描述的主题的各种方面的精神和 范围内的所有修改、可替换构造和等同方案。
【主权项】
1. 一种至少部分地由计算机实现的方法,该方法包括: 使具有用于创建虚拟环境的组件的主机通电或重置,虚拟环境适用于托管虚拟机,虚 拟环境包括虚拟安全组件; 执行使用组件实例化虚拟环境的启动进程; 在启动进程期间的预限定的状态下,向主机安全组件提供主机的测量; 使用测量到主机安全组件中的测量来获取加密密钥,测量指示主机处于满足用于托管 虚拟机的策略的状态中; 经由加密密钥,对虚拟安全组件解密; 从经解密的虚拟安全组件,获取与虚拟机相关联的虚拟存储设备的存储密钥;以及 经由经解密的虚拟安全组件和存储密钥实例化虚拟机。2. 权利要求1的方法,其中使用测量到主机安全组件中的测量来获取加密密钥包括: 从密钥分发服务,获取密封到主机的状态的密封数据;以及 经由主机安全组件,解封密封数据,主机安全组件配置成仅在测量指示主机处于满足 用于托管虚拟机的策略的状态中的情况下才解封密封数据。3. 权利要求1的方法,其中使用测量到主机安全组件中的测量来获取加密密钥包括: 在实例化虚拟环境之后,发送针对加密密钥的请求并且提供测量满足用于获取加密密 钥的策略的证据;以及 仅在证据事实上满足策略的情况下才接收加密密钥。4. 权利要求3的方法,还包括从主机安全组件获取证据,主机安全组件实现为与主机集 成并且具有受保护的存储器的分立硬件设备,仅允许主机安全组件向所述受保护的存储器 写入。5. 权利要求3的方法,还包括在使主机通电之前: 在先前将主机配置到满足策略的状态中; 与配置主机相结合地,将主机的其它测量提供给主机安全组件; 从安全组件获取安全数据,安全数据指示主机的状态,安全数据从所述其它测量导出; 将安全数据提供给密钥分发服务以用于随后用来确定证据是否事实上满足策略。6. -种系统,在计算环境中,包括: 用于存储主机的数据的存储器; 结构化成接收指示用于在主机上执行的代码的测量的主机安全设备;以及 耦合到存储器和主机安全设备的一个或多个处理器,所述一个或多个处理器结构化成 执行动作,所述动作包括: 在使主机通电或重置之后,执行启动进程以实例化管理程序,该管理程序结构化用于 建立主机上的虚拟环境并且执行其中的虚拟机, 在启动进程期间的预限定的状态下,将主机的测量提供给主机安全组件, 使用测量到主机安全组件中的测量来获取加密密钥,测量指示主机处于满足用于托管 虚拟机的策略的状态中, 经由加密密钥,直接地或间接地解密虚拟存储设备,直接地解密虚拟存储设备包括使 用加密密钥解密虚拟存储设备,间接地解密虚拟存储设备包括解密与虚拟机相关联的虚拟 安全设备,从中获取存储密钥并且使用存储密钥解密虚拟存储设备。7. 权利要求6的系统,还包括密钥分发器,其结构化成在密封到满足用于托管虚拟机的 策略的状态的密封数据中提供加密密钥,密封数据仅在主机处于满足用于托管虚拟机的策 略的状态中的情况下才由主机安全设备不可解封。8. 权利要求6的系统,其中管理程序还结构化成保护用于存储表示虚拟安全设备的数 据的存储器使得仅管理程序具有对存储器的写入访问。9. 权利要求6的系统,其中虚拟安全设备由主机外部的服务所托管,该服务响应于管理 程序向该服务提供加密密钥而执行虚拟安全设备的功能。10. -种具有计算机可执行指令的计算机存储介质,所述计算机可执行指令在执行时 实施动作,包括: 从主机的组件,与测量满足用于获取加密密钥的策略的证据相结合地,接收针对加密 密钥的请求,加密密钥用于与虚拟机相关联的虚拟安全设备,加密密钥提供用于直接地或 间接地解密虚拟存储设备的解密数据,测量之前在主机上执行并且测量到主机安全组件 中,证据由主机安全组件产生,主机安全组件具有受保护以用于仅由主机安全组件至少写 入使用的存储器; 响应于请求,利用证据核验证据是否事实上满足策略;以及 如果证据事实上满足策略,则向主机的组件提供加密密钥。
【文档编号】G06F9/455GK105830082SQ201480070923
【公开日】2016年8月3日
【申请日】2014年12月22日
【发明人】M.尼斯特罗姆, S.索姆
【申请人】微软技术许可有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1