用于创建和传送加密的虚拟盘的系统和方法

文档序号:6361123阅读:188来源:国知局
专利名称:用于创建和传送加密的虚拟盘的系统和方法
技术领域
本文所述的方法和系统总的涉及生成虚拟盘。该方法和系统尤其涉及创建和传送加密的虚拟盘。
背景技术
允许工作伙伴将他们的个人便携式电脑或计算机带入工作且将该便携式电脑用 作他们的公司计算机已受到很多公司的欢迎。在很多情况下,这些程序允许雇员使用他们的个人计算机代替公司机器。尽管该程序具有许多优点,然而让雇员将他们的个人计算机用于与工作相关的计算的其中一个很大缺陷在于雇员经常将敏感的公司文档和应用信息存储在他们的通常来说不安全的个人计算机上。个人便携式电脑上的存储器通常是不受管理的,并且当用户没有登入公司网时难以强制执行安全策略。因而,需要系统和方法来保护在用户计算装置上的公司信息的机密性,并且强制执行策略来保护该公司信息的机密性。在某些情况下,在客户计算机上提供安全存储库可能是很困难的。通常,在客户机上执行以便于显示远程应用的那些应用不能访问本地客户机的持久存储器,或者没有能力对该持久存储器进行分区或创建安全存储区域。尽管在客户机上可以手工地或自动地创建安全存储区域,然后可以手工地或自动地对该虚拟盘进行本地加密,但执行这个过程可能需要本地盘创建与加密软件,但该软件可能没有被预先安装。反之,如果安装了本地加密软件,它可能没有达到公司标准或要求(例如,本地加密软件仅能执行128位加密,而公司要求256位加密)。此外,本地加密软件通常加密整个硬盘或卷,所述本地加密软件例如由美国华盛顿州Redmond的Microsoft公司作为Microsoft Windows系列操作系统的部分发布的BitLocker、由美国加利福尼亚州Mountain View的Symantec公司出品的PGP WholeDisk Encryption (整盘加密)、由美国内华达州 Henderson 的 TrueCrypt Foundation 出品的TrueCrypt。因此,可能很难在用于公司数据的安全存储和用于用户个人数据的存储之间加以区别(由于整卷加密,用户的个人数据可能对于第三方是安全的,但不能与公司数据进行隔离)。而且,全盘加密不提供用于创建和分发加密盘的集中管理和配置的机制。此外,因为整个磁盘被加密,所以任何备份系统必须被本地执行。因此,需要从集中式服务器创建、加密并向一个或多个客户机传送虚拟盘的系统和方法。

发明内容
描述了用于提供集中服务的系统和方法的实施例,该集中服务可创建、加密、配置、分发、备份和删除虚拟盘,就像这些虚拟盘是物理硬盘一样,这允许集中管理这些盘的整个生命周期。管理员可以在中心位置创建加密的盘,并且使用诸如加密和哈希算法、标准密码、密钥文件和盘大小之类的公司特定标准对该盘进行定制。可以将加密的虚拟盘从中心服务器分发和下载到客户计算机,在客户计算机可以挂载这些加密的虚拟盘,就像它们是用于隔离的、加密的本地存储的物理硬盘一样。在一些实施例中,客户计算机可以被配置为定期地备份虚拟硬盘,以及可以被配置有备份位置,例如网络服务器。在一个实施例中,客户计算机的用户能够修改虚拟盘的属性,例如访问密码和大小。在另外的实施例中,响应于管理员指定的配置策略,策略引擎可以允许对虚拟盘的一个或多个属性进行修改。在一些实施例中,集中管理系统或客户计算机可以被配置为删除该加密的虚拟硬盘。例如当雇员被终止时可以响应于管理员命令来执行该操作,或者可以响应于来自客户计算机上的管理服务的命令来执行该操作。例如,客户计算机上的管理服务可以定期地尝试联系许可或授权服务器或集中管理系统。在预定的时间段内没有成功联系该服务器或系统可能指示该便携式电脑已经被偷窃或已经丢失或以其他方式被入侵,以及响应于预定时间段到期而没有成功联系,客户计算机上的管理服务可以删除该加密的虚拟盘。 在一些实施例中,虚拟盘创建和加密方法可以被用于使用由客户机请求识别的定制信息来创建定制的虚拟盘,所述定制信息例如盘大小、加密密码、加密密钥和存储类型。在其他实施例中,该方法和系统可包括用于存储加密的虚拟盘的加密恢复密钥的方法。在一些实施例中,在向客户机传送虚拟硬盘之前可以将该密钥存储在数据库或本地存储装置中。如果加密密码丢失或被盗,管理员可以使用该密钥来恢复该虚拟盘上加密的数据。在又一个实施例中,可以使用加密网络协议通过网络来向客户机传送加密的虚拟盘。在又一个实施例中,可以将对加密盘的请求进行排队,并在稍后的时间对其进行处理,以及可以根据盘创建计划表来调度执行本文所述方法的盘创建器。在一些实施例中,当另一个工作服务器变得可用时,可以处理排队的请求。可以对加密的盘进行本地备份或将其备份到中心位置。在一些实施例中,因为客户计算机操作系统可能难以备份加密的卷,所以可以将该加密的卷放置在第二虚拟硬盘内,该第二虚拟硬盘可以被备份。在一个方面,本公开涉及用于从服务器向客户机装置传送集中加密的虚拟盘的方法。该方法包括由在服务器上执行的虚拟盘创建器接收来自客户机装置的对虚拟盘的请求。该方法还包括由虚拟盘创建器响应于所述请求创建所述虚拟盘。该方法还包括由虚拟盘创建器基于所接收的请求使用加密密钥加密所生成的虚拟盘。该方法还包括由虚拟盘创建器将盘标识符和所述加密密钥存储到集中的数据库。该方法还包括由虚拟盘创建器向所述客户机装置传输该加密的虚拟盘。在该方法的一些实施例中,来自客户机装置的对虚拟盘的请求包括下列中的一个或多个所请求的虚拟盘的大小、要应用于该虚拟盘的加密类型、要应用的加密强度、要使用的加密密码、要使用的加密密钥以及存储类型。在另外的实施例中,该方法包括由虚拟盘创建器使用所述来自客户机装置的对虚拟盘的请求的属性来加密所述虚拟盘。在其他实施例中,该方法包括由虚拟盘创建器将来自客户机装置的对虚拟盘的请求进行排队,直到虚拟盘创建器可用于对所述请求进行响应。在其他实施例中,该方法包括由虚拟盘创建器使用加密网络协议通过安全网络传输该加密的虚拟盘。在一个实施例中,该方法包括由虚拟盘创建器接收来自客户机装置的请求,该请求是响应于确定由该客户机装置执行的应用需要安全存储区域而生成的。在又一个实施例中,该方法包括响应于所述应用包括远程显示协议客户端和流式应用的其中一个来确定所述应用需要安全存储区域。在其他实施例中,该方法包括由虚拟盘创建器接收来自客户机装置的请求,该请求是响应于确定该客户机装置上不存在任何安全存储区域而生成的。在其他实施例中,该方法包括由服务器从客户机装置接收第二未加密的虚拟盘,该第二未加密的虚拟盘包括所述加密的虚拟盘;并且由所述服务器将该第二未加密的虚拟盘存储在备份存储位置中。在另外的实施例中,该方法包括响应于由客户机装置执行的备份策略来从客户机装置接收该第二未加密的虚拟盘。在又一个方面,本公开涉及用于从服务器向客户机装置传送集中加密的虚拟盘的系统。该系统包括与客户机装置通信的计算装置,该计算装置执行虚拟盘创建器。虚拟盘创建器被配置为接收来自客户机装置的对虚拟盘的请求,以及响应于所述请求生成所述虚拟盘。虚拟盘创建器还被配置为基于所接收的请求使用加密密钥加密所生成的虚拟盘。虚拟盘创建器还被配置为将盘标识符和该加密密钥存储到集中的数据库,以及向客户机装置 传输该加密的虚拟盘。在该系统的一个实施例中,所述来自客户机装置的对虚拟盘的请求包括下列中的一个或多个所请求的虚拟盘的大小、要应用于该虚拟盘的加密类型、要应用的加密强度、要使用的加密密码、要使用的加密密钥以及存储类型。在另外的实施例中,所述虚拟盘创建器还被配置为使用所述来自客户机装置的对虚拟盘的请求的属性来加密所述虚拟盘。在一些实施例中,虚拟盘创建器还被配置为将来自客户机装置的对虚拟盘的请求进行排队,直到虚拟盘创建器可用于对所述请求进行响应。在其他的实施例中,虚拟盘创建器还被配置为使用加密网络协议通过安全网络传输所述加密的虚拟盘。在其他的实施例中,虚拟盘创建器还被配置为接收来自客户机装置的请求,该请求是响应于确定由客户机装置执行的应用需要安全存储区域而生成的。在另外的实施例中,所述由客户机装置执行的应用包括远程显示协议客户端和流式应用的其中一个。在一个实施例中,虚拟盘创建器还被配置为接收来自客户机装置的请求,该请求是响应于确定客户机装置上不存在任何安全存储区域而生成的。在又一个实施例中,该计算装置执行备份服务。所述备份服务被配置为接收包括所述加密的虚拟盘的第二未加密的虚拟盘,并且将该第二未加密的虚拟盘存储在备份存储位置中。在另外的实施例中,该第二未加密的虚拟盘是响应于由客户机装置执行的备份策略而被发送的。在附图和下文的描述中将详细阐述本发明的各种实施例的细节。


通过参考下述结合附图的描述,本发明的前述和其它目的、方面、特征和优点将会更加明显并更易于理解,其中图IA是示出具有与服务器通信的客户机器的远程访问的联网环境的实施例的框图。图IB和IC是示出用于实施本文所述的方法和系统的计算机器的实施例的框图。图2是示出用于创建和部署加密的虚拟盘的系统的实施例的框图。
图3是示出用于创建和部署加密的虚拟盘的方法的实施例的流程图。从下面结合附图所阐述的详细描述,本发明的特征和优点将更明显,其中,同样的参考标记在全文中标识相应的元素。在附图中,同样的附图标记通常表示相同的、功能上相似的和/或结构上相似的元素。
具体实施例方式在具有持有移动或个人计算装置的远程或旅行用户的企业或公司中,出于安全的目的,可能期望在所述计算装置上将公司数据与用户的个人数据相隔离或分开。用户可以创建用于公司数据的本地卷、文件夹或虚拟硬盘,并且使用用户计算装置上的软件对这些卷、文件夹或虚拟硬盘进行加密。这允许每个用户具有独立的加密密钥,这是有用的如果第一用户的计算装置被入侵,则该加密密钥不能用来访问第二用户的计算装置上的第二用 户的加密信息。然而,本地创建要求用户安装加密软件并获得许可,这可能不可行,尤其是在智能电话或其他移动装置上。类似地,本地创建可能是处理器密集型的,这消耗这些装置的资源。此外,如果用户忘记了密码或丢失了密钥,本地创建导致加密的卷对管理员不可访问。管理员可以通过在中心服务器上创建并加密虚拟硬盘,将其提供给请求该盘的每个用户来避免这些问题。然而,这导致每个用户具有用相同密钥加密的盘,这增加了在同一攻击中多个用户被入侵的可能性。因此,在本文所述的方法和系统的一些实施例中,集中服务可以响应于并基于客户机请求来创建并加密虚拟盘以供客户计算机使用。客户计算机可以挂载这些加密的虚拟盘,就好像它们是用于隔离和加密的本地存储的物理硬盘一样。在创建期间可以通过默认大小、加密密码、加密密钥和存储类型来对虚拟盘进行定制。该集中服务可以在将虚拟硬盘传送给客户机之前将加密恢复密钥存储在数据库或本地存储装置中,这允许该传送服务的管理员具有在丢失或忘记加密密码的情况下恢复该虚拟盘上的加密数据的手段。在一些实施例中,可以经由例如SSL的加密网络协议来将加密的虚拟盘传送到客户机,这防止了拦截或中间人攻击。在又一个实施例中,该集中服务可以将来自客户机的盘请求进行排队并在稍后的时间对其进行处理,或者将盘创建安排在服务器群或云中的另一个服务器上,以分布处理负载。在讨论创建、传送和维护加密的虚拟硬盘的细节之前,首先介绍示例的计算环境可能是有益的。图IA示出了计算环境101的一个实施例,所述计算环境101包括与一个或者多个服务器106A-106N (本文统称为“服务器106”)通信的一个或者多个客户机器102A-102N (本文统称为“客户机器102”)。在客户机器102和服务器106之间安装的是网络。在一个实施例中,计算环境101可包括在服务器106和客户机器102之间安装的设备。这个设备可以管理客户机/服务器连接,并且在一些情况下能够在多个后端服务器之间负载平衡客户机连接。在一些实施例中,客户机器102可以被称为单个客户机器102或单组客户机器102,而服务器106可以被称为单个服务器106或单组服务器106。在一个实施例中,单个客户机器102与不只一个服务器106通信,而在又一个实施例中,单个服务器106与不只一个客户机器102通信。在又一个实施例中,单个客户机器102与单个服务器106通信。
在一些实施例中,客户机器102可以通过下列术语的任何一个而被引用客户机器102、客户机、客户计算机、客户装置、客户计算装置、本地机器、远程机器、客户机节点、端点、端节点或第二机器。在一些实施例中,服务器106可以通过下列术语的任何一个而被引用服务器、本地机器、远程机器、服务器群、主机计算装置或第一机器。在一个实施例中,客户机器102可以是虚拟机102C。尽管在一些实施例中该虚拟机102C可以是由XenSolutions、Citrix Systems、IBM、VMware公司开发的管理程序或任何其他管理程序管理的任一虚拟机,但该虚拟机102C可以是任何虚拟机。在其他实施例中,虚拟机102C可以被任何管理程序管理,而仍在其他实施例中,虚拟机102C可以被在服务器106上执行的管理程序或在客户机102上执行的管理程序管理。在一些实施例中,客户机器102可以执行、操作或者以其它方式提供应用,所述应用可为下列的任何一个软件、程序、可执行指令,虚拟机、管理程序、web浏览器、基于web的客户端、客户端一服务器应用、瘦客户端计算客户机、ActiveX控件、Java小应用程序、与 例如软IP电话的互联网协议电话(VoIP)通信相关的软件,用于流式传输视频和/或音频的应用、用于促进实时数据通信的应用、HTTP客户端、FTP客户端、Oscar客户端、Telnet客户端或任何其他可执行指令集。其他实施例包括显示由在服务器106或其他位于远程的机器上远程地执行的应用产生的应用输出的客户装置102。在这些实施例中,客户装置102可在应用窗口、浏览器或其他输出窗口中显不应用输出。在一个实施例中,该应用是桌面,而在其他实施例中,该应用是产生桌面的应用。在一些实施例中,服务器106执行远程表示客户端或其他客户端或程序,所述远程表示客户端或其他客户端或程序使用瘦客户端或远程显示协议来捕获由在服务器106上执行的应用产生的显示输出并且将该应用显示输出传输到远程客户机102。瘦客户端或远程显示协议可以是下列协议的任何一个由位于美国佛罗里达州Ft. Lauderdale的CitrixSystems有限公司出品的独立计算架构(ICA)协议;或者由位于美国华盛顿州Redmond的微软公司出品的远程桌面协议(RDP)。计算环境可以包括不只一个服务器106A-106N,使得服务器106A-106N被一起逻辑分组到服务器群106中。服务器群106可包括地理上分散但逻辑上被一起分组到服务器群106中的服务器106,或者互相位置接近且逻辑上被一起分组到服务器群106中的服务器。在一些实施例中,在服务器群106中地理上分散的服务器106A-106N使用WAN、MAN或LAN通信,其中不同的地理区域可以被表征为不同的大陆、大陆的不同区域、不同的国家、不同的州、不同的城市、不同的校园、不同的房间、或前述地理位置的任何组合。在一些实施例中,服务器群106可以作为单个实体被管理,而在其他实施例中,服务器群106可包括多个服务器群106。在一些实施例中,服务器群106可包括执行大体上相似类型的操作系统平台(例如,由美国华盛顿州Redmond的Microsoft公司出品的WINDOWSNT、UNIX、LINUX或SNOWLEOPARD)的服务器106。在其他实施例中,服务器群106可包括执行第一类型的操作系统平台的第一组服务器106,和执行第二类型的操作系统平台的第二组服务器106。在其他实施例中,服务器群106可包括执行不同类型的操作系统平台的服务器106。在一些实施例中,服务器106可以是任何服务器类型。在其他实施例中,服务器106可以是任何下列服务器类型文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器、防火墙、web服务器、应用服务器或者作为主应用服务器、执行活动目录的服务器106、或执行提供防火墙功能、应用功能,或负载平衡功能的应用加速程序的服务器106。在一些实施例中,服务器106可以是包括远程认证拨入用户服务的RADIUS服务器。在服务器106包括设备的实施例中,服务器106可以是由任何一个下列制造商制造的设备Citrix应用网络组、Silver Peak Systems 有限公司、Riverbed Technology 有限公司、F5Networks 有限公司或Juniper Networks有限公司。一些实施例包括第一服务器106A,其接收来自客户机器102的请求,将该请求转发到第二服务器106B,并且用来自第二服务器106B的响应对由客户机器102产生的请求进行响应。第一服务器106A可以获取对客户机器102可用的应用的列举以及与寄载该应用列举中识别的应用的应用服务器106关联的地址信息。第一服务器106A接着可以使用web接口来呈现对该客户机的请求的响应,并且可以直接与客户机102通信以向客户机102提供对所识别的应用的访问。在一些实施例中,服务器106可以执行下列应用的任何一个使用瘦客户端协议 传输应用显示数据到客户机的瘦客户端应用、远程显示表示应用、Citrix Systems有限公司的 CITRIX ACCESS SUITE 的任一部分(例如METAFRAME 或CITRIX PRESENTATION SERVER),由微软公司出品的MICROSOFT WINDOWS终端服务、或由Citrix Systems有限公司开发的ICA客户端。又一个实施例包括为应用服务器的服务器106,例如提供诸如由微软公司制造的MICROSOFT EXCHANGE的电子邮件服务的邮件服务器、web或Internet服务器、桌面共享服务器、协同服务器或任何其他类型的应用服务器。其他实施例包括执行任何一种下列类型的所寄载的服务器应用的服务器106 :由Citrix Online Division有限公司提供的G0T0MEETING,由位于美国加利福尼亚州Santa Clara的WebEx有限公司提供的WEBEX,或者由微软公司提供的 Microsoft Office LIVE MEETING。在一些实施例中,客户机器102可以是寻求访问由服务器106所提供资源的客户机节点。在其他实施例中,服务器106可向客户机102或客户机节点提供对所寄载的资源的访问。在一些实施例中,服务器106充当主节点,从而它与一个或多个客户机102或服务器106通信。在一些实施例中,该主节点可以识别并向一个或多个客户机102或服务器106提供与寄载所请求的应用的服务器106关联的地址信息。在其他实施例中,主节点可以是服务器群106、客户机102、客户机节点102的集群或设备。一个或多个客户机102和/或一个或多个服务器106可以通过在计算环境101中的机器和设备之间安装的网络104传输数据。网络104可以包括一个或多个子网,并且可以被安装在计算环境101中所包含的客户机102、服务器106、计算机器和设备的任何组合之间。在一些实施例中,网络104可以是局域网(LAN)、城域网(MAN)、广域网(WAN)、由位于客户机器102和服务器106之间的多个子网104构成的专用网104、具有专用子网104的主公网104、具有公共子网104的主专用网104或者具有专用子网104的主专用网104。另外的实施例包括可以为任何下列网络类型的网络104:点对点网络、广播网络、电信网络、数据通信网络、计算机网络、ATM (异步传输模式)网络、SONET (同步光纤网络)网络、SDH (同步数字体系)网络、无线网络、有线网络或者包括无线链路的网络104 (其中无线链路可以是红外信道或者卫星频带)。网络104的网络拓扑在不同的实施例中存在差异,可能的网络拓扑包括总线型网络拓扑、星型网络拓扑、环型网络拓扑、基于中继器的网络拓扑或者分层-星型网络拓扑。其他实施例可包括由移动电话网络组成的网络104,所述移动电话网络使用协议在移动装置间通信,这些协议可以是下列的任何一个AMPS、TDMA、CDMA、GSM、GPRSUMTS或能够在移动装置之间传输数据的任何其他协议。图IB所示的是计算装置100的实施例,其中图IA示出的客户机器102和服务器106可以被部署为本文示出和描述的计算装置100的任一实施例和/或在其上执行。计算装置100中包括与下列组件通信的系统总线150 :中央处理单元121、主存储器122、存储装置128、输入/输出(I/O)控制器123、显示装置124A-124N、安装装置116和网络接口 118。在一个实施例中,存储装置128包括操作系统、软件例程和客户机代理120。在一些实施例中,I/O控制器123还连接到键盘126和指示装置127。其他实施例可包括连接不只一个 输入/输出装置130A - 130N的I/O控制器123。图IC所示的是计算装置100的一个实施例,其中图IA示出的客户机器102和服务器106可以被部署为本文示出和描述的计算装置100的任一实施例和/或在其上执行。计算装置100中包括系统总线150,系统总线150与下列组件通信桥170和第一 I/O装置130A。在又一个实施例中,桥170还与主中央处理单元121通信,其中该中央处理单元121还与第二 I/O装置130B、主存储器122和高速缓存存储器140通信。中央处理单元121内包括I/O端口、存储器端口 103和主处理器。计算机器100的实施例可包括由下列组件配置的任何一个表征的中央处理单元121 :响应并处理从主存储器单元122取出的指令的逻辑电路;微处理器单元,例如由Intel公司制造的微处理器单元、由Motorola公司制造的微处理器单元、由位于美国加利福尼亚州Santa Clara的Transmeta公司制造的微处理器单元;RS/6000处理器(例如由International Business Machines公司制造的那些处理器);处理器,例如由AdvancedMicro Devices公司制造的那些处理器;或者逻辑电路的任何其他组合。中央处理器单元122的其他实施例可包括下列的任何组合微处理器、微控制器、具有单个处理核的中央处理单元、具有两个处理核的中央处理单元或者具有不只一个处理核的中央处理单元。尽管图IC示出了包括单个中央处理单元121的计算装置100,但在一些实施例中,计算装置100可以包括一个或多个处理单元121。在这些实施例中,计算装置100可以存储和执行固件或其他可执行指令,当所述固件或其他可执行指令被执行时,指示一个或多个处理单元121同时执行指令或者对于单个数据片同时执行指令。在其他实施例中,计算装置100可以存储和执行固件或其他可执行指令,当所述固件或其他可执行指令被执行时,指示一个或多个处理单元121各自执行一组指令的一部分。例如,每个处理单元121可以被指示执行程序的一部分或者程序内的特定模块。在一些实施例中,处理单元121可包括一个或多个处理核。例如,处理单元121可以具有两个核、四个核、八个核等。在一个实施例中,处理单元121可包括一个或多个并行处理核。在一些实施例中,处理单元121的处理核可访问作为全局地址空间的可用存储器,或者在其他实施例中,在计算装置100内的存储器可被分段并分配给处理单元121内的特定核。在一个实施例中,计算装置100中的一个或多个处理核或处理器可各自访问本地存储器。在又一个实施例中,计算装置100内的存储器可以在一个或多个处理器或处理核之间被共享,而其他处理器可以被特定的处理器或处理器子集访问。在计算装置100包括不只一个处理单元的实施例中,多个处理单元可以被包含在单个集成电路(IC)中。在一些实施例中,这些多个处理器可以通过内部高速总线连接在一起,可以将内部高速总线称为单元互连总线。在计算装置100包括一个或多个处理单元121,或处理单元121包括一个或多个处理核的实施例中,处理器可以对多个数据片同时执行单个指令(SMD),或者在其他实施例中,处理器可以对多个数据片同时执行多个指令(MMD)。在一些实施例中,计算装置100可以包括任何数量的SMD和MMD处理器。在一些实施例中,计算装置100可包括图形处理器或图形处理单元(未示出)。图形处理单元可包括软件和硬件的任何组合,并且还可以输入图形数据和图形指令、根据所输入的数据和指令来呈现图形、以及输出所呈现的图形。在一些实施例中,图形处理单元可以被包含在处理单元121之内。在其他实施例中,计算装置100可以包括一个或多个处理单元121,其中,至少一个处理单元121专用于处理和呈现图形。
计算机器100的一个实施例包括通过次级总线(也被称为后端总线)与高速缓存存储器140通信的中央处理单元121,而计算机器100的又一个实施例包括通过系统总线150与高速缓存存储器通信的中央处理单元121。在一些实施例中,中央处理单元也使用本地系统总线150来与不只一种类型的I/O装置130A-130N进行通信。在一些实施例中,本地系统总线150可以是下列任何一种类型的总线VESA VL总线、ISA总线、EISA总线、微通道架构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。计算机器100的其他实施例包括的I/O装置130A-130N是与中央处理单元121通信的视频显示器124。计算机器100的其他版本包括经由下列连接的任何一个连接到I/O装置130A-130N的处理器121 HyperTransport、RapidI/0或InfiniBand。计算机器100的另外的实施例包括使用本地互连总线与I/O装置130A通信且使用直接连接与I/O装置130B通信的处理器121。在一些实施例中,计算装置100包括主存储器单元122和高速缓存存储器140。高速缓存存储器140可以是任何存储器类型,并且在一些实施例中可以是下列类型的存储器的任何一种SRAM、BSRAM或EDRAM。其他实施例包括的高速缓存存储器140和主存储器单元122可以是下列类型的存储器的任何一种静态随机存取存储器(SRAM)、突发SRAM或同步突发SRAM (BSRAM)、动态随机存取存储器(DRAM)、快速页模式DRAM (FPM DRAM) J^SDRAM(EDRAM)、扩展数据输出RAM (EDO RAM)、扩展数据输出DRAM (ED0DRAM)、突发扩展数据输出DRAM (BEDO DRAM)、增强 DRAM (EDRAM)、同步 DRAM (SDRAM), JEDEC SRAM、PC100SDRAM、双倍数据速率SDRAM (DDR SDRAM)、增强SDRAM (ESDRAM)、同步链路DRAM (SLDRAM)、直接内存总线DRAM (DRDRAM)、铁电RAM (FRAM)或者任何其他类型的存储器。另外的实施例包括的中央处理单元121可以通过系统总线150、存储器端口 103或允许处理器121访问存储器122的任何其他连接、总线或端口来访问主存储器122。计算装置100的一个实施例支持下列安装装置116的任何一个AD-ROM驱动器、⑶-R/RW驱动器、DVD-ROM驱动器、各种格式的磁带驱动器、USB装置、可引导介质、可引导⑶、诸如ΚΝ0ΡΡΙΧ 的用于分发GNU/Linux的可引导⑶、硬盘驱动器或适于应用或软件的任意其它装置。在一些实施例中,应用可以包括客户机代理120或客户机代理120的任何部分。计算装置100还可以包括存储装置128,所述存储装置128可以是一个或者多个硬盘驱动器,或者一个或多个独立盘冗余阵列,其中该存储装置被配置为存储操作系统、软件、程序应用或者客户机代理120的至少一部分。计算装置100的另一个实施例包括用作存储装置128的安装装置116。计算装置100还可以包括网络接口 118以通过多种连接来与局域网(LAN)、广域网(WAN)或互联网对接,所述连接包括但不限于标准电话线路、LAN或WAN链路(例如802. 11、Tl、T3、56kb、X. 25、SNA、DECNET)、宽带连接(如ISDN、帧中继、ATM、千兆以太网、基于SONET的以太网(Ethernet-over-SONET))、无线连接、或上述任意或全部的某种组合。可使用多种通信协议(例如 TCP/IP、IPX、SPX、NetBIOS、Ethernet、ARCNET, SONET、SDH、光纤分布数据接口(FDDI)、RS232、RS485、IEEE802. 11、IEEE802. 11a、IEEE802. lib、IEEE802. llg、CDMA、GSM、WiMax和直接异步连接)来建立连接。一种版本的计算装置100包括的网络接口 118能够通过任意类型和/或形式的网关或诸如安全套接字层(SSL)或传输层安全(TLS),或由CitrixSystems有限公司制造的Citrix网关协议的隧道协议来与其他计算装置100’通信。网络接口 118的版本可以包括下列的任何一个内置网络适配器、网络接口卡、PCMCIA网络卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适用于将计算装置100对接到能够通信并执行本文所述的方法和系统的网络的任意其它装置。计算装置100的实施例包括下列I/O装置130A-130N中的任何一个键盘126、指示装置127、鼠标、触控板、光笔、轨迹球、麦克风、绘图板、视频显示器、扬声器、喷墨打印机、激光打印机和热升华打印机,或者能执行本文所述的方法和系统的任何其他输入/输出装置。在一些实施例中,I/O控制器123可连接到多个I/O装置130A-130N以控制该一个或多个I/O装置。I/O装置130A-130N的一些实施例可以被配置为提供存储或安装介质116,而其他实施例可提供通用串行总线(USB)接口,用于接纳USB存储装置,例如由TwintechIndustry有限公司制造的USB闪存驱动系列装置。其他实施例包括的I/O装置130可以是在系统总线150和外部通信总线之间的桥,所述外部通信总线例如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道总线,或串行小型计算机系统接口总线。在一些实施例中,计算机器100可以连接多个显示装置124A-124N,在其他实施 例中,计算装置100可以连接单个显示装置124,而仍在其他实施例中,计算装置100连接相同的显示类型或形式的显示装置124A-124N,或者连接不同的类型或形式的显示装置124A-124N。显示装置124A-124N的实施例可以由下列来支持和使能一个或多个I/O装置130A-130N、I/O控制器123、I/O装置130A-130N和I/O控制器123的组合、任何类型和/或形式的视频适配器、视频卡、驱动器和/或库,以与显示装置124A-124N对接、通信、连接或以其他方式使用显示装置124A-124N。在一些实施例中,计算装置100可以被配置为使用一个或多个显示装置124A-124N,这些配置包括具有多个连接器以与多个显示装置124A-124N对接;具有多个视频适配器,每个视频适配器连接到一个或多个显示装置124A-124N ;具有被配置成支持多个显示装置124A-124N的操作系统;使用在计算装置100内包含的电路和软件来连接并使用多个显示装置124A-124N;以及在主计算装置100和多个从计算装置上执行软件以使得主计算装置100能够使用从计算装置的显示器作为该主计算装置100的显示装置124A-124N。在计算装置100的其他实施例中包括由多个从计算装置提供的且经由网络连接到主计算装置100的多个显示装置124A-124N。在一些实施例中,计算机器100可执行任何操作系统,而在其他实施例中,计算机器100可以执行任何下列操作系统MICROSOFT WINDOWS操作系统的多个版本,例如 WIND0WS3. X、WIND0WS95, WIND0WS98, WIND0WS2000, WINDOWS NT3. 51、WINDOWS NT4. O、WINDOWS CE、WINDOWS XP和WINDOWS VISTA ;不同发行版本的Unix和Linux操作系统;由苹果计算机公司出品的MAC OS的任意版本;由国际商业机器公司出品的OS/2 ;任意嵌入式操作系统;任意实时操作系统;任意开源操作系统;任意专有操作系统;用于移动计算装置的任意操作系统,或者任意其它 操作系统。在又一个实施例中,计算机器100可以执行多个操作系统。例如,计算机器100可以执行PARALLELS或另一个虚拟化平台,所述PARALLELS或另一个虚拟化平台能执行或管理执行第一操作系统的虚拟机,而计算机器100执行不同于第一操作系统的第二操作系统。计算机器100可以体现在下列计算装置的任何一个中计算工作站、台式计算机、膝上型或笔记本电脑、服务器、掌上电脑、移动电话或便携电信装置、媒体播放装置、游戏系统、移动计算装置、上网本、由苹果计算机公司出品的IPOD系列装置中的装置、由索尼公司出品的PLAYSTATION系列装置中的任何一个、由Nintendo有限公司出品的Nintendo系列装置中的任何一个、由微软公司出品的XBOX系列装置中的任何一个,或能够通信并有足够的处理器能力和存储容量以执行本文所述的方法和系统的任意其它类型和/或形式的计算、电信或者媒体装置。在其他实施例中,计算机器100可以是移动装置,例如下列移动装置中的任何一个=JAVA使能蜂窝电话或个人数字助理(PDA),诸如i55sr、i58sr、i85s、i88s、i90c、i95cl或imllOO,以上这些均由摩托罗拉公司制造;由Kyocera公司制造的6035或7135 ;由Samsung电子有限公司制造的i300或i330 ;由Palm有限公司出品的TRE0180、270、600、650、680、700p、700w或750智能电话;具有不同处理器、操作系统和符合该装置的输入装置的任何计算装置;或者能够执行本文所述的方法和系统的任何其他移动计算装置。在其他实施例中,计算装置100可以是下列移动计算装置中的任何一个由Research In Motion有限公司制造的任一系列的黑莓(Blackberry)或其他手持装置、由苹果计算机公司制造的iPhone、由苹果计算机公司制造的iPacUPalm Pre、Pocket PC、PocketPC电话,或任何其它手持移动装置。图2示出了用于强制或要求可信的公司应用将它们的数据仅保存在指定的安全盘空间中的系统的一个实施例。在一些实施例中,该系统可包括通过网络104通信的客户计算机102和服务器106。客户机可以包括盘空间205,该盘空间205可进一步包括不安全的盘空间210和安全的盘空间215。文件系统过滤驱动器、应用传送客户端225和管理服务230可在该客户机上执行。所述服务器可执行一个或多个应用240A-240N (总的称为服务器应用242或应用240),并且还可执行应用传送服务器235。所述客户机可执行一个或多个应用242A-242N (总的称为客户机应用242或应用242),其可以是本地安装的应用或者是在附接到客户计算机102的存储装置中安装的应用。进一步参考图2,更具体地,在一个实施例中,系统可包括客户计算机102和服务器106。客户计算机102可以是本文所述的任一计算装置100并且可以是本文所述的任一客户机102。同样地,服务器106可以是本文所述的任一计算装置100并且可以是本文所述的任一服务器106。在一些实施例中,服务器106可以是包括一个或多个服务器106的服务器群。客户机102和服务器106可通过诸如本文所述的任何网络104的网络104进行通 目。
在一些实施例中,客户机102可执行一个或多个应用242A-242N (总的称为应用242)。在其他实施例中,服务器106可执行一个或多个应用240A-240N(总的称为应用240),可以通过应用传送客户端225和应用传送服务器235将该应用传递给客户机。在一些实施例中,在客户机102上执行的应用传送客户端225可以是能够从在服务器106上执行的服务器应用传送客户端235接收应用输出的应用、客户端或程序,该应用输出诸如是图形显示输出或其他数据输出。客户机102的应用传送客户端225可以接收应用输出并且在客户机102上的应用窗口中显示该应用输出。在一些实施例中,应用传送客户端225可促进客户机102和服务器106之间虚通道的创建,并且可以促进客户机102的应用传送系统和服务器106的应用传送系统之间的通信。客户计算机102的应用传送客户端225可以与服务器106的应用传送客户端235通信并且可以发送 和接收文件访问请求。在一些实施例中,应用传送客户端225可以是由CITRIX SYSTEMS公司出品的ICA客户端。在其他实施例中,应用传送客户端225可被称为远程桌面客户端、桌面显示客户端或任何相似类型的客户端,并且可以通过诸如ICA或RDP的表示层协议与服务器106通信。服务器106的应用传送服务器235可以在服务器106上执行并且可与在该服务器106上执行的应用240相接口。在一些实施例中,服务器应用传送服务器235可拦截、检索或接收由应用240生成的图形应用输出(例如,由应用240发出的绘制命令),并且可以将该应用输出和任何相关的图像数据一起转发到客户机102的应用传送客户端225,。客户计算机102的应用传送客户端225可使用所述应用输出和图像数据来重新绘制该应用,如同该应用会显示在服务器106的显示屏上一样。在一些实施例中,应用传送服务器235可以是由CITRIX SYSTEMS公司出品的ICA服务器。在一些实施例中,客户机102的应用传送客户端225可通过一个或多个虚通道以及一个或多个传输层连接与应用传送服务器235通信。在其他的实施例中,应用传送客户端225和应用传送服务器235可包括用于从服务器106流式传输应用240使其在客户计算机102上执行的应用。在其他的实施例中,应用传送客户端225和应用传送服务器235可包括用于将应用下载到客户计算机102以在线或离线执行的应用、服务、代理或其他可执行代码。因此,在不脱离本申请的范围的情况下,应用可在服务器106处执行而其输出被传输到客户机102、可被流式传输用于由客户机102执行、可被下载到或以其他方式传送到客户机102用于本地执行,或者可被安装在客户机102上。应用240和242 (总的被称作服务器应用240或客户机应用242)可以是任何应用。在一些实施例中,应用240可包括本文所述的任何应用,或者任何其他应用。在一些实施例中,可以通过将应用输出传输到应用传送客户端235来将在服务器106上执行的应用240与应用传送服务器235相接口。在其他实施例中,如上所述,应用242可在客户机102上执行和/或可以被流式传输到客户机102用于由客户机102执行。在一些实施例中,客户计算机102可包括盘空间205,所述盘空间205可以包含不安全的盘空间或不安全的存储位置210以及安全的盘空间或安全的存储位置215。尽管是在客户计算机102内示出盘空间205,但是盘空间205可以包括在客户计算机102中包含的物理盘、对于客户计算机102可用的外部物理盘(包括专用盘和网盘)以及对于客户计算机102可用的虚拟盘。尽管被称为盘,但在一些实施例中,盘空间205可包含闪存存储装置、磁存储装置、光存储装置、这些的任意组合或者任何其他类型和形式的存储装置。此外,尽管仅示出了一个不安全的存储位置210和一个安全的存储位置215,但在一些实施例中,可能存在多个不安全的和安全的存储位置。例如,为多家公司工作的用户可针对每个公司使用一个安全存储位置,从而将一个组织的保密数据与其他组织的数据保持隔离。在一个实施例中,不安全的盘空间210可包括由文件系统过滤驱动器220或管理服务230标识为不安全的存储装置的盘空间。在其他实施例中,不安全的盘空间210可被标记为不安全的存储装置。类似地,在一些实施例中,盘空间205可包括可被标记为安全的存储装置、或者可由文件系统过滤驱动器220或管理服务230标识为安全的存储装置的安全的盘空间215。在一些实施例中,标记或以其他方式将盘空间205标识为不安全的210或安全的215可包括由文件系统过滤驱动器220、应用传送客户端225或管理服务230将盘空间205中的卷或驱动器识别为安全的或不安全的。例如,在一个实施例中,盘空间205可被划分为一个或多个驱动器。例如,在Windows操作系统环境下,盘空间205可被划分为不安全的A:\驱动器、第二不安全的C:\驱动器和安全的X:\驱动器。可使用其他驱动器符,并且在其他操作系统中,可采用其他的盘空间标识符。在一些实施例中,文件系统过滤驱动器220、应用传送客户端225或管理服务230可以在表、索引、数据库或列表中标识每个驱动器是安全的还是不安全的。例如,A:\和C:\驱动器可被标识为不安全的,而X:\驱动器可被标识 为安全的。在其他实施例中,可根据驱动器的性质(property)、标识符、驱动器标识符中的预定位、标志,或者任何其他类型和形式的标识将驱动器或分区标识为安全的或不安全的。在一个实施例中,在客户机102上安装的应用传送客户端225、管理服务230或未示出的其他客户机代理可将客户机102上可用的盘空间进行分区以创建安全的存储空间215和不安全的存储空间210。在其他实施例中,当启动时,应用传送客户端225、管理服务230或未示出的其他客户机代理可将客户机102上可用的盘空间进行分区以创建安全的存储空间215和不安全的存储空间210。在其他实施例中,应用传送客户端225、管理服务230或其他客户机代理可通过将一个存储器地址范围分配为安全的存储位置来创建安全的盘空间215。此外,尽管所讨论的是盘空间,但在一些实施例中,本文所述的系统和方法可应用于管理诸如RAM的存储器中的安全和不安全的位置。在一些实施例中,文件系统过滤驱动器220可与应用传送客户端225或在客户机上执行的其他应用240交互,以拦截从客户计算机102上的本地存储装置读取信息或者向该本地存储装置写入信息的请求,并且根据本文所述的方法和系统来处理该请求。文件系统过滤驱动器220可与管理服务230和应用传送客户端225或其他应用240交互,来接收请求并且获得关于应该将安全的盘空间215提供给哪个应用以及将不安全的盘空间210提供给哪个应用的安全信息。在一个实施例中,文件系统过滤驱动器220可拦截请求、确定数据应该被存储到安全的盘空间215还是不安全的盘空间210,以及通过将信息存储到两个存储区域中的任何一个来处理该请求。例如,文件系统过滤驱动器220可拦截由在服务器106上执行的可信应用发出的、并且由应用传送客户端225或在客户机102上执行的可信应用远程呈现的请求。当确定了生成该请求的源应用是要求安全的存储装置的可信应用时,文件系统过滤驱动器220可将应用数据和其他信息存储在客户机102上的安全盘空间215中。在其他实施例中,文件系统过滤驱动器220可拦截由在服务器或客户机上执行的不可信应用发出的存储应用数据的请求。响应于该应用是不可信应用,文件系统过滤驱动器220可允许将数据存储在不安全的位置的请求,或者可以拒绝将数据存储在安全的位置的请求。在一些实施例中,文件系统过滤驱动器220可与流式应用、公司传送应用、由App-V传送的应用或其他类似应用直接进行交互。在一些实施例中,管理服务230可以在客户机102上执行,并且与文件系统过滤驱动器220和应用传送客户端225相接口。在一些实施例中,管理服务230可包括应用、服务器、服务、守护进程、例程和其他可执行代码,并且可以在用户模式或内核模式下执行。在一些实施例中,管理服务230可充当策略引擎或包含策略引擎。管理服务器230或该管理服务器的策略引擎可以管理安全策略和确定哪些应用应该被标识为可信以及哪些应用应该被标识为不可信的其他管理策略。在一些实施例中,管理服务230可在应用传送客户端225中作为该应用传送客户端的策略引擎来执行,并且可以被用于确定是否要将由应用生成的数据重定向到安全的存储空间215。在其他实施例中,管理服务230或管理服务230的策略引擎可被用于将在客户机上执行的应用标识为可信或不可信应用。在一个实施例中,管理服务230还可管理将哪些存储器卷、存储器地址范围或驱动器视为不安全的盘空间210以及将哪些存储器卷、存储器地址范围或驱动器视为安全的盘空间215。在一些实施例中,公司管理员可设置策略从而将某些应用标记为可信的。还可以将额外的文件夹指定为安全 的,从而需要启用该文件夹用于自动重定向。在一个实施例中,管理服务230或策略引擎可响应于执行应用的用户的用户证书将该应用标识为可信应用。例如,在一个实施例中,在将应用作为可信应用执行之前用户可能需要先登录。如果用户没有登录,该应用可能作为不可信应用被执行。在又一个实施例中,该应用可由根用户或管理员用户执行,并且可以响应于这些用户的权限将该应用标识为可信应用。在又一个实施例中,该应用可由服务器106提供并且可以因为是由服务器提供的而被标识为可信应用。例如,远程执行的应用或流式应用,或者从公司服务器下载的应用可被标识为可信的,而由用户本地安装的或从别处获得的应用可被标识为不可信的。在一些实施例中,取决于会话的执行参数,应用可以是可信的或者不可信的。例如,如上文所述,可能要求用户登录从而将应用作为可信应用来执行。取决于用户已经登录与否,应用可作为可信应用或不可信应用被执行。这样做可避免需要安装相同应用的多个实例。在另外的实施例中,管理服务230或策略引擎还可以包括用于响应于客户机在预定的时间段内还没有联系服务器或例如认证服务器的另一计算装置而锁定安全的存储位置的功能。在一些实施例中,服务器106或另一服务器可运行集中管理服务、票据机构(ticket authority)、授权服务器或者其他服务,并且,管理服务或策略引擎可响应于客户机在预定的时间段内还没有联系集中管理服务而锁定安全的存储位置。这样做可以提供安全开关(dead-man switch)以控制移动装置上(特别在用户拥有该移动装置的情况下)的公司数据。例如,具有便携式电脑的用户可将公司数据转移到该便携式电脑并且在安全的存储位置处理该数据,其中该用户保持与公司网络连接或者离线工作并且间歇地连接以同步文件或取回电子邮件。如果用户离开公司,一般来说公司雇员会被要求获得访问该用户的便携式电脑的权限从而移除公司文件或核实公司文件的移除。对于远程用户来说或者由于用户离开的情况,这样做有难度。因此,如果用户在预定的时间段内没有登录公司网络(例如,如果由于在终止时他们的账户被禁用),管理服务230或策略引擎可禁用安全的存储位置、拒绝对在该位置中存储的数据的读/写访问,或者擦除或重写该安全的存储位置。在一些实施例中,虚拟盘创建器250可以在服务器106上执行以拦截要创建或部署虚拟硬盘的客户机请求。虚拟盘创建器250可以包括用于创建、部署和管理虚拟硬盘的应用、服务、服务器、守护进程、逻辑、例程或其他可执行代码。在一些实施例中,虚拟盘创建器250可以包括加密引擎。在一个实施例中,虚拟盘创建器250可以直接与在客户机102上执行的应用传送客户端225通信。在一些实施例中,虚拟盘创建器250可以大体上持久地在服务器106上执行。在其他实施例中,虚拟盘创建器250可以等待通过安全网络连接(例如,SSL)到来的客户机请求,这里该请求可以包括关于所请求的虚拟盘的大小、加密强度和加密的盘大小的信息。虚拟盘创建器250可以使用例如虚拟硬盘(VHD) API的虚拟盘创建方法来创建虚拟盘。在一些实施例中,虚拟盘创建器250可以加密所创建的虚拟盘。本文讨论的方法和系统还提供用于备份加密的盘的能力。通常,例如MicrosoftWindows的操作系统不将加密的盘识别为“真正的(true)”卷以备份该卷。例如,Windows可能不将Truecrypt加密的卷识别为真正的卷以进行备份。在一些实施例中,这可以通过将 加密的盘文件(例如,对于Truecrypt加密的盘的.tc文件)放置在VHD文件内来解决。然后,可以将该VHD文件作为真正的卷进行备份,该VHD文件恰好包含可单独挂载的加密卷。在一些实施例中,可以使用基于块的差异备份(也被称为快照备份)来对该VHD文件进行备份,这允许支持正在使用中的文件。该备份类似于VHD文件,其可以被很容易地挂载,并且可以很容易地从其恢复数据。在一些实施例中,备份VHD文件可包括根据由系统的管理员设置的定期的计划表来备份VHD文件。在多个实施例中,备份VHD文件可包括将该文件备份到中心位置或服务器。在一个这样的实施例中,管理员可以从中心位置或服务器删除该加密的数据,这允许管理从创建到删除的整个加密盘生命周期。在一些实施例中,服务器106可执行备份服务260。备份服务260可包括用于从一个或多个客户计算机接收备份虚拟盘并将备份虚拟盘存储在备份存储位置265中的应用、服务、服务器、守护进程、例程或其他可执行逻辑。在许多实施例中,尽管备份存储位置265被显示在服务器106上,但是备份存储位置265可以包括外部存储装置、RAID阵列、网络存储装置、云存储服务,或其他存装置。在许多实施例中,备份服务260可在备份存储装置265中存储和检索备份虚拟硬盘。在一些实施例中,备份服务260可以删除备份存储装置265中的备份虚拟硬盘,以便管理已经使用的存储量,或者对来自管理员的命令进行响应以删除一个或多个备份。图3中所示的是用于集中加密的虚拟盘传送的方法的一个实施例。在服务器106上执行的虚拟盘创建器250接收或拦截对加密的虚拟盘的请求(步骤302)。在一些实施例中,虚拟盘创建器250可以在应用传送客户端235的上下文中执行,使得虚拟盘创建器250可以拦截任何由客户机102向服务器106发出的对加密的虚拟盘的请求。在其他实施例中,虚拟盘创建器250可以接收来自在客户机上执行的管理服务、客户机代理或另一个应用的请求。在一些实施例中,客户机102可响应于确定应用需要安全存储区域来发出该请求。在其他实施例中,客户机102可以响应于确定客户机102上不存在任何安全存储区域而发出该请求。在一些实施例中,由客户机发出的请求可包括虚拟盘信息,例如所请求的虚拟盘的大小、要使用的加密类型、要应用的加密强度、要使用的加密密码、要使用的加密密钥,和存储类型。在其他实施例中,该请求可包括用户证书和/或机器证书,所述用户证书例如用户名、用户密码、用户标识符或其他信息,所述机器证书例如机器标识符、操作系统类型和版本、管理服务版本或能力、MAC地址,或任何其他类型和形式的信息。在一些实施例中,可以将该请求从客户机102传输到服务器106并且可以通过安全网络(例如,SSL)传输该请求。在其他实施例中,可以使用加密网络协议传送该请求。在一些实施例中,响应于接收该请求,盘创建器250可以对该请求进行排队。在这些实施例中,盘创建器250可以对请求进行排队直到稍后的时间点,或者直到盘创建器250可用于对请求进行响应。在其他实施例中,盘创建器250可以对请求进行排队并且将它们重新发出到在不同服务器上执行的另一个盘创建器。当收到该请求时,盘创建器250可以创建虚拟盘(步骤304)。可以使用例如作为由Microsoft公司的Windows7操作系统的部分提供的VHDAPI的虚拟硬盘创建器API来创建虚拟盘。在其他实施例中,盘创建器250可以执行可创建虚拟盘的虚拟盘创建功能。在一个实施例中,虚拟盘创建器250可以根据在客户机请求中指定的虚拟盘属性来创建该虚拟盘。例如,如果客户机请求指定了盘大小和存储类型,虚拟盘创建器250可以创建具有该盘大小和存储类型的虚拟盘。在一些实施例中,可以以最小尺寸或非常小的尺寸创建虚拟硬盘,并且可以将虚拟硬盘创建为动态大小的盘而不是固定大小的盘。这样做可以降低向客户机传送该盘的带宽需求。例如,可以在服务器生成和加密非常小的盘(例如10MB),并且可·以将其传送到客户机,在客户机处可以将该盘扩展到大得多的大小,例如几GB。在另外的实施例中,随着客户机的用户写数据到该盘,该盘可以被不断扩展。当创建虚拟盘后,盘创建器250可以加密该虚拟盘(步骤306)。在一些实施例中,虚拟盘创建器250可以使用例如Bitlocker或TruCrypt的加密技术来加密该虚拟盘。在其他实施例中,虚拟盘创建器250可以使用任何整盘加密技术来加密该虚拟盘。在一些实施例中,虚拟盘创建器250可以根据在客户机请求中指定的加密属性来加密该虚拟盘。例如,如果请求指定应该使用特定的加密密码来加密该盘,则盘创建器250可以使用该加密密码来加密该虚拟盘。在其他实施例中,系统的管理员可以设置要在对盘加密时使用的预定加密参数,例如要使用的特定的加密和哈希算法,包括位长度和块大小,以及要使用的密码或密钥文件。在另外的实施例中,管理员可以设置允许用户改变虚拟硬盘密码或加密密钥的策略。在一些实施例中,盘创建器250可以在盘创建器250加密虚拟盘时生成加密密钥。盘创建器250接着可以将该加密密钥存储到本地数据库或存储装置中。因此,如果丢失了虚拟盘加密密码,可以使用所存储的加密密钥来获取在该加密的虚拟盘中存储的数据。将该加密密钥存储到本地数据库或存储装置可包括将盘标识符和该加密密钥写到本地数据库。通常,可以创建并加密虚拟硬盘,并且将其存储在供多个用户下载和使用的文件共享上。然而,这要求对多个用户使用相同的虚拟硬盘和相同的加密密钥,从而降低了所使用的加密密钥的安全性。此外,不能容易地对盘进行定制。因此,在一些实施例中,虚拟硬盘创建器可以使用包括作为对加密的虚拟硬盘的请求的部分的、由盘创建器250接收的信息的加密密钥。例如,该密钥可包括一个或多个用户证书(例如,用户名和密码)、一个或多个机器证书(例如,机器ID或其他信息)、和/或一个或多个请求属性(例如,该请求的时间戳、包含该请求的分组的序列ID等)。可以使用这些属性来给该密钥增加随机性以及创建特定于请求的加密密钥。如上所述,可以存储该加密密钥以防用户丢失虚拟硬盘的密码。因为该加密密钥特定于响应于请求而创建的虚拟硬盘,所以在一些实施例中可以将该加密密钥与用该密钥加密的特定虚拟硬盘驱动器的标识符存储在一起。当加密该虚拟盘后,盘创建器250可以向客户机102传输该加密的虚拟盘(步骤308)。在一些实施例中,该创建器250可以通过安全网络向客户机102传输虚拟盘。在其他实施例中,该创建器250可以使用加密网络协议通过安全网络传输该盘。在一个实施例中,生成加密的虚拟盘并将其传输到客户机是可以通过创建虚拟硬盘和加密的驱动器并将其存储在共享的网络位置上来实现的。因此,当用户需要加密的虚拟硬盘时,用户可以下载该安全虚拟盘的副本。在一些实施例中,可以基于由系统的管理员设置的一个或多个策略来自动创建加密的虚拟硬盘和/或将其传送给用户。在一些实施例中,一旦加密的驱动器被传送和挂载,用户数据可以被自动重定向到该加密的驱动器。在其他实施例中,用户可以手工地将数据 定向到该加密的驱动器。应该理解,上文描述的系统可提供多个组件或每个组件并且这些组件可以在单独机器上提供,或者在一些实施例中,可在分布式系统的多个机器上提供。可以使用编程和/工程技术将上文所描述的系统和方法实现为方法、装置或产品以提供软件、固件、硬件或上述的任何组合。此外,上述系统和方法可作为一件或多件产品上所体现的或在其中的一个或多个计算机可读程序而被提供。此处使用的术语“产品”旨在包括从一个或多个计算机可读的装置、固件、可编程逻辑、存储器装置(例如,EEPROM、ROM、PROM、RAM、SRAM等)、硬件(例如,集成电路芯片、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)、电子装置、计算机可读的非易失存储单元(例如,CD-ROM、软盘、硬盘等)可访问的或嵌入其中的代码或逻辑。所述产品可以从经由网络传输线、无线传输介质、通过空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问的文件服务器进行访问。所述产品可以是闪存存储卡或磁带。所述产品包括硬件逻辑以及嵌入在计算机可读介质中由处理器执行的软件或可编程代码。通常,计算机可读程序可以任何编程语言来实现,如LISP、PERL、C、C++、C#、PROLOG,或者诸如JAVA的任何字节码语言。软件程序可以作为目标代码被存储在一件或多件产品上或其中。虽然已经描述方法和系统的多个实施例,但是这些实施例是示例性的并且不以任何方式限制所述方法或系统的范围。相关领域中的技术人员在不脱离所描述方法和系统的最宽范围的情况下可以对所描述的方法和系统的形式和细节进行修改。因此,此处描述的方法和系统的范围不应该通过任何示例性实施例来限定,而是应该根据所附权利要求书和其等价范围来限定。
权利要求
1.一种用于从服务器向客户机装置传送集中加密的虚拟盘的方法,所述方法包括 由在服务器上执行的虚拟盘创建器接收来自客户机装置的对虚拟盘的请求; 由虚拟盘创建器响应于所述请求创建所述虚拟盘; 由虚拟盘创建器基于所接收的请求使用加密密钥加密所生成的虚拟盘; 由虚拟盘创建器将盘标识符和所述加密密钥存储到集中的数据库;以及 由虚拟盘创建器向所述客户机装置传输加密的虚拟盘。
2.根据权利要求I所述的方法,其中,所述来自客户机装置的对虚拟盘的请求包括下列中的一个或多个所请求的虚拟盘的大小、要应用于该虚拟盘的加密类型、要应用的加密强度、要使用的加密密码、要使用的加密密钥以及存储类型。
3.根据权利要求2所述的方法,还包括由虚拟盘创建器使用所述来自客户机装置的对虚拟盘的请求的属性来加密所述虚拟盘。
4.根据权利要求I所述的方法,还包括由虚拟盘创建器从安全策略检索用于创建所述虚拟盘的一个或多个预定的盘创建属性或加密参数。
5.根据权利要求I所述的方法,还包括由虚拟盘创建器将所述来自客户机装置的对虚拟盘的请求进行排队,直到虚拟盘创建器可用于对所述请求进行响应。
6.根据权利要求I所述的方法,还包括由虚拟盘创建器使用加密网络协议通过安全网络传输加密的虚拟盘。
7.根据权利要求I所述的方法,还包括由虚拟盘创建器接收来自客户机装置的请求,该请求是响应于确定由该客户机装置执行的应用需要安全存储区域而生成的。
8.根据权利要求7所述的方法,还包括响应于所述应用包括远程显示协议客户端和流式应用的其中一个,确定所述应用需要安全存储区域。
9.根据权利要求I所述的方法,还包括由虚拟盘创建器接收来自客户机装置的请求,该请求是响应于确定该客户机装置上不存在任何安全存储区域而生成的。
10.根据权利要求I所述的方法,还包括由虚拟盘创建器接收来自客户机装置的请求,该请求是响应于确定该客户机装置上存在的安全存储区域的至少一个属性与预定的安全要求不对应而生成的。
11.根据权利要求I所述的方法,还包括由服务器从客户机装置接收第二未加密的虚拟盘,所述第二未加密的虚拟盘包括所述加密的虚拟盘;并且由所述服务器将所述第二未加密的虚拟盘存储在备份存储位置中。
12.根据权利要求11所述的方法,其中,接收所述第二未加密的虚拟盘包括响应于由所述客户机装置执行的备份策略来从所述客户机装置接收所述第二未加密的虚拟盘。
13.一种用于从服务器向客户机装置传送集中加密的虚拟盘的系统,所述系统包括 与客户机装置通信的计算装置,其执行虚拟盘创建器,所述虚拟盘创建器被配置为 接收来自客户机装置的对虚拟盘的请求, 响应于所述请求生成所述虚拟盘, 基于所接收的请求使用加密密钥加密所生成的虚拟盘, 将盘标识符和所述加密密钥存储到集中的数据库,以及 向所述客户机装置传输加密的虚拟盘。
14.根据权利要求13所述的系统,其中,所述来自客户机装置的对虚拟盘的请求包括下列中的一个或多个所请求的虚拟盘的大小、要应用于该虚拟盘的加密类型、要应用的加密强度、要使用的加密密码、要使用的加密密钥以及存储类型。
15.根据权利要求14所述的系统,其中,所述虚拟盘创建器还被配置为使用所述来自客户机装置的对虚拟盘的请求的属性来加密所述虚拟盘。
16.根据权利要求13所述的系统,其中,所述虚拟盘创建器还被配置为由虚拟盘创建器从安全策略检索用于创建所述虚拟盘的一个或多个预定的盘创建属性或加密参数。
17.根据权利要求13所述的系统,其中,所述虚拟盘创建器还被配置为将所述来自客户机装置的对虚拟盘的请求进行排队,直到虚拟盘创建器可用于对所述请求进行响应。
18.根据权利要求13所述的系统,其中,所述虚拟盘创建器还被配置为使用加密网络协议通过安全网络传输所述加密的虚拟盘。
19.根据权利要求13所述的系统,其中,所述虚拟盘创建器还被配置为接收来自所述客户机装置的请求,该请求是响应于确定由所述客户机装置执行的应用需要安全存储区域而生成的。
20.根据权利要求19所述的系统,其中,由所述客户机装置执行的应用包括远程显示协议客户端和流式应用的其中一个。
21.根据权利要求13所述的系统,其中,所述虚拟盘创建器还被配置为接收来自客户机装置的请求,该请求是响应于确定客户机装置上不存在任何安全存储区域而生成的。
22.根据权利要求13所述的系统,其中,所述虚拟盘创建器还被配置为接收来自客户机装置的请求,该请求是响应于确定在客户机装置上存在的安全存储区域的至少一个属性与预定的安全要求不对应而生成的。
23.根据权利要求13所述的系统,其中,所述计算装置执行备份服务,所述备份服务被配置为接收包括所述加密的虚拟盘的第二未加密的虚拟盘;并且将所述第二未加密的虚拟盘存储在备份存储位置中。
24.根据权利要求23所述的系统,其中,所述备份服务被配置为从客户机装置接收所述第二未加密的虚拟盘,所述第二未加密的虚拟盘是响应于由所述客户机装置执行的备份策略而被发送的。
全文摘要
本申请涉及用于接收对虚拟盘的请求并创建包括在该请求中识别的或由组织的安全策略所确定的虚拟盘属性的虚拟盘。接着,可以对所创建的虚拟盘进行加密,并且在一些方面,可以将用于该加密的虚拟盘的加密密钥存储在加密密钥数据库中。当创建和加密虚拟盘后,可以向客户机传输该虚拟盘。客户机在收到该加密的虚拟盘时可以将该虚拟盘挂载到客户机系统。该加密的虚拟盘可以被存储为在未加密的虚拟盘中的文件,并且可以将该未加密的虚拟盘备份到本地的或远程的存储位置。
文档编号G06F9/06GK102971722SQ201180033491
公开日2013年3月13日 申请日期2011年5月6日 优先权日2010年5月9日
发明者R·M·卡斯珀, N·德赛, M·钦塔, J·德什潘德 申请人:思杰系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1