在管理器控制的系统中处理客户事件的制作方法_3

文档序号:9693200阅读:来源:国知局
客户20。在云环境中,客户虚拟机20是由客户端或客户操作,而管理器30是由云提供方操作,其对客户端可能是不可信的。固件70,以及硬件72,是由硬件供应方生产,其可能被认为是值得信赖的。本发明的目的是提供一种在云环境中安全处理客户虚拟机20的方法,其中云供应方可能不被信任。
[0049]总之,根据本发明的用于在管理器控制的系统10中处理客户事件的方法包括步骤:(i)客户事件触发固件70中专用于客户事件的第一固件服务,所述客户事件与客户20、使用客户密钥24加密的客户状态52和客户存储器22相关联;(ii)所述固件70处理与所述客户事件相关联的信息,包括所述客户状态52和所述客户存储器22的信息,并且向管理器30只展示以加密形式的所述客户状态52和所述客户存储器22的信息的子集,其中所述信息的子集被选择以满足所述管理器30处理所述客户事件的需要;(iii)所述固件70保留所述客户状态52和所述客户存储器22的没有发送给所述管理器30的部分信息;(iv)所述管理器30基于所述接收到的所述客户状态52和所述客户存储器22的信息的子集处理所述客户事件,并且向所述固件发送处理结果70,所述固件70触发专用于所述客户事件的第二固件服务;(V)所述固件70处理所述接收到的处理结果以及没有被发送给所述管理器30的所述客户状态52和所述客户存储器22的部分信息,生成状态和/或存储器的修改;(vi)所述固件70在以加密形式的所述客户存储器(22)上执行与所述客户事件相关的所述状态和/或存储器的修改。在下面的附图中的实施例的描述中引用这些步骤。
[0050]在一个实施例中,第一固件服务优选地可以包括上述描述的步骤(ii)和(iii)的至少一个步骤,其中在步骤(ii)固件70信息处理与客户事件相关的信息,包括客户的状态52和客户存储器22的信息,并向管理器30只展示以加密形式的客户的状态52和客户存储器22的信息的子集,其中选择信息的子集来满足管理器30处理客户事件的需求。步骤(iii)包括固件70保留客户状态52和客户存储器22的部分信息,该部分信息没有被发送到管理器30 ο
[0051]在一个实施例中,第二固件服务优选地可以包括以上描述的步骤(V)及(vi)中的至少一个步骤,其中步骤(V)包括固件70处理接收的处理结果以及没有被发送给所述管理器的所述客户状态和所述客户存储器的部分信息,生成状态和/或存储器的修改;其中在步骤(vi)固件70在以加密形式的所述客户存储器上执行与所述客户事件相关的所述状态和/或存储器的修改。
[0052]图2给出根据本发明的一个实施例,在管理器控制的系统10中的不安全的环境中用于客户的安全执行的方法的一般概述。这可能类似于安全套接字层实现,其中安全操作(即消息)也通过不安全的介质实现。被认为是不可信的管理器30,在同一时间和同一系统可以控制安全客户20和不安全的客户40。运行管理器30和客户20,40的CPU216分别为每个安全客户20维护特定的语境42,为每个不安全的客户40维护特定的语境44、为管理器30维护语境46。安全客户20的每个语境42包含根据安全客户20相关的客户密钥24。每个安全客户20的存储器被使用根据安全客户20的客户密钥24加密。这些客户20,40以及管理器30可以运行在CPU 216上在自己的语境中42,44,46中。同样在CPU 216有管理器30运行在它自己的语境46中。当CPU216运行在一个语境中时,它无法访问另一个语境维护的信息。当CPU216运行在安全客户20的客户语境42中时,它可以访问该客户20的客户密钥24,以对该客户20的数据加密和解密。进一步只有处理客户20、40、或管理器30的代码,CPU 216才分别进入客户20、40、管理器30的语境中。
[0053]图3示出了根据本发明的实施例的在不安全的环境中用于客户20的安全执行的管理器控制的系统10的系统框图。在下面的描述中引用的数字,在图3、图1和图2的参考对象中没有显示。
[0054]根据本发明的一个实施例,在讨论用于处理由于客户事件的中断或拦截的管理器控制的系统的行为之前,将使用图3中的框图解释在不安全的环境中客户20的加密执行的第一通用功能。
[0055]图3的框图显示一个或多个客户20,称为客户1到客户η(由管理器30控制),所有的组件运行在连接到存储器230的CPU 216上。CPU216包括访问装置50用于访问CPU的虚拟化功能34客户语境的状态,其中访问是基于CPU216所在的语境而被控制的。这些访问装置50可以从存储的客户状态52读客户状态52和/或虚拟CPU状态,存储的客户状态包含可以对管理器30隐藏的语境信息和/或控制块。存储的客户状态52包含来自虚拟化功能34的执行的客户状态52。指令执行单元54从存储器230获取代码到高速缓存器56中并执行代码。结果是可能触发通过指令执行单元54执行存储器取出和存储。当高速缓存器56处理这些存储器取出和存储请求时,在这些取出和存储请求中涉及的数据,是以纯文本展示的。为了使存储器取出送到存储器230中加密的客户存储器区域22,当虚拟化功能34正运行在使用客户钥匙24的对应的客户20的语境中时,数据在传输到高速缓存器56时会被加密单元58加密。当高速缓存行被推到存储器230时,加密单元58将对要传输出存储器230的高速缓存行使用正由虚拟化功能34执行的对应客户20的客户密钥24加密。
[0056]加密单元58位于高速缓存56和连接到存储器230的CPU216的存储器接口 60之间。如果CPU216运行在安全客户20的语境中,虚拟化功能34控制64加密单元58,并从客户密钥存储器28提供加密单元58安全客户20的加密的客户密钥24XPU216有私钥26用于解密加密的客户密钥24,其存储在密钥存储器28中并被送入加密单元58。客户密钥存储器28可以包含用于传输到CPU 216的加密的客户密钥24以及用于指令执行的解密客户钥匙。高速缓存56可以包含纯文本数据,但是不在客户语境下运行的进程,可能无法访问这些纯文本数据。因此,高速缓存器56可以将数据与数据属于的客户语境相关联。存储器230可以包含加密的客户存储区域22、以及用于通过I/O与外部系统通信客户数据的纯文本区域、以及属于管理器30和不安全的客户的存储器区域。
[0057]因为存在使用客户密钥加密的范围以及其他对管理器30可见的范围,管理器30在存储器230中对数据和/或代码只有有限的访问。
[0058]以下解释了根据本发明的实施例的作为服务在固件70中实现的由固件服务装置处理中断或拦截的实现。在简短的描述中,在管理器控制的系统10中处理客户事件包括步骤:(i)触发第一固件服务;(ii)固件70处理与客户的事件相关联的信息,向管理器30只展示以解密形式的信息的子集;(III)固件保留不被发送到管理器30的部分信息;(iv)管理器30触发第二固件服务;(V)固件产生客户状态52和/或客户存储器22的修改;(vi)固件执行客户状态52和/或客户存储器22的修改。
[0059]以下更详细地描述这种通用方法的具体特征。
[0060]如果发生与客户20、使用客户密钥24加密的客户状态52和客户存储器22相关的中断或指令截取,与该中断或该指令截取相关的第一和第二固件服务,将访问二者均使用客户密钥24加密并且在高速缓存器56中解密的客户状态52和客户存储器22,以及(未加密)的管理器存储器。两个服务都能够通过使该存储器22传输到高速缓存器56从而使用客户钥匙24解密存储器22来读取客户20的客户存储器22。固件服务可以从高速缓存器56将未加密的数据传输到固件服务私有的存储器或到管理器30。当使用客户密钥24加密高速存储区域的内容时,第二固件服务能够从其私有存储器或管理器的存储器将未加密的数据传输到与加密的客户存储器22相关的高速缓存区域,然后传输高速存储区域的内容到加密的客户存储器22。
[0061 ] 如果CPU 216运行在客户20的语境中,CPU 216的虚拟化环境被CPU216扩展到解密或加密客户存储器22,允许客户20通过非加密的存储器范围与外部通信;通过管理器30对客户存储器22的加密页分页。
[0062]客户20的安全的部署和执行包括为客户20提供使用与CPU216的私钥26相关的公钥32加密的客户密钥24,以传输到CPU216的密钥存储器28,为CPU216提供私钥26,其存储在CPU216中并被用于解密加密的客户密钥24,客户密钥当由CPU216在客户20的语境中运行客户或者固件代码时,被用于加密和解密客户存储器22。
[0063]引导映像生成和部署过程包括由客户20的客户端或客户生成引导映像;使用客户钥匙24加密引导映像;将加密的引导映像传输到引导盘;由管理器30加载客户20的加密的引导映像到客户存储器22;启动作为在CPU216的级别的虚拟机的客户20的执行。
[0064]引导映像的引导过程包括:当CPU216在客户20的语境中时,在执行在客户存储器22上的虚拟机中执行的线程,被解密为明文。当CPU 216在客户20语境中时,客户存储器22和客户状态52两者被解密,客户存储器22和客户状态52被保护防止被管理器30或者其他客户访问。
[0065]客户20进一步的执行包括扩展CPU216的虚拟化功能34以当客户存储器22的加密区域被写入到客户20的语境中时加密客户存储器22;当客户存储器22的加密区域是从客户20的语境中读取的时,解密客户存储器22;对管理器30来说只以加密的形式访问客户存储器22和客户寄存器的加密区域。
[0066]客户20和管理器30之间的交互进一步包括与客户事件相关的、对管理器30来说以加密的形式不能访问的客户存储器22或寄存器的加密范围;通过对与客户事件相关的特定客户数据的访问方法扩展CPU216的虚拟化功能34。
[0067]客户20的I/O过程进一步包括在客户存储器22加密区域以外为客户20的I/O缓冲区和I/O控制结构定义非加密存
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1