一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

通过主机与虚拟来宾之间的受控交互来创建隔离工作区的方法和系统与流程

2022-09-15 06:48:48 来源:中国专利 TAG:

通过主机与虚拟来宾之间的受控交互来创建隔离工作区的方法和系统
1.相关申请的交叉引用
2.本技术要求于2020年2月7日提交的第62/971,498号美国临时申请的权益,该申请的全部内容通过引用而被合并到本文中。
技术领域
3.本发明的实施方式总体上涉及虚拟化,更具体地涉及用于提供安全虚拟化环境的设备、方法和计算机程序产品。


背景技术:

4.以下并不意味着下面讨论的任何内容是现有技术的一部分或本领域技术人员的公知常识的一部分。
5.对于许多办公室工作而言,远程工作安排正变得普遍。使员工能够远程工作可以为员工和雇主提供许多优势。例如,远程工作安排可以释放员工本来要花费在通勤上的时间。这会增加员工可用的生产时间,同时兼顾其他负担。这也可以带来减少交通拥堵和公共交通压力的附加益处。远程工作还可以使员工在预料不到的事件中能够继续工作,例如不利的天气事件(如大雪或大雨);或行动限制,例如,为限制传染病(如冠状病毒,例如covid-19冠状病毒)的传播而可能实施的限制。
6.远程工作安排使员工可以在不同的地点工作,而不是在特定的物理位置,例如办公楼。通过减少或消除对昂贵的办公空间的需求,这可以为雇主节省大量成本。这也使员工能够保持生产力,即使他们远离常规办公室地点。
7.远程办公室可以建立在员工的家中,也可以建立在为不同公司的人提供办公空间的共享工作中心的办公空间中。在远程办公室工作的员工可以使用可以连接到公共计算机网络(如互联网)的计算机,以便与同事合作并从机构的私有网络的服务器访问资源。这甚至可以使员工在新的地点继续工作,例如旅行时。
8.远程计算机和私有机构网络中的服务器之间的网络连接通常是安全的,以防止在远程办公室和机构服务器之间的数据传输期间的数据泄漏。例如虚拟私有网络(vpn)的网络技术可以用于保护网络连接。vpn在安装在远程计算机上的vpn客户端和运行在机构的私有网络中的vpn服务器之间建立了安全且加密的隧道。这样可以防止远程办公室和机构的私有网络中的服务器之间的数据传输被窃听而导致私有数据泄露。vpn客户端需要认证(如用户名/密码或公共/私有密钥对)以连接到vpn服务器。这样可以确保只有经过授权的人员才能从远程办公室访问机构的私有资源,并且远程办公室和vpn服务器之间的数据流量是加密的。
9.尽管vpn在远程办公室和机构的私有网络中的服务器之间建立了安全渠道,但它并不能完全解决远程办公室的数据安全问题。例如,一旦将私有数据下载到远程计算机,防止未经授权的第三方访问数据是具有挑战性的。员工可能意外或有意地将私有数据复制到
usb磁盘或将数据上传到不属于该机构的外部服务器。安装在计算机上的软件(如恶意软件或间谍软件)也可以将数据上传到不属于该机构的外部服务器。这些数据安全障碍极大地限制了远程办公室的可用性。
10.解决远程办公室数据安全问题的一种方法是“加固”远程工作安排中使用的计算机。具体而言,远程办公室中的计算机可以被配置成仅连接到机构的私有网络中的服务器。加固计算机可以确保除基本输入/输出设备(例如鼠标、键盘和显示器)以外的所有外围设备都被禁用,不能被这些计算机使用。但是,这种解决方案有几个局限性。首先,这种方法往往要求远程办公室中的计算机为机构所有,因为员工不愿意加固自己的计算机。此外,为在远程办公室工作的每个员工购买计算机不仅会给机构带来经济负担,而且还限制了员工可以在远程办公室使用的计算机的选择(这可能会对员工的生产力产生负面影响)。
11.第二,可能阻止员工通过加固的计算机访问公共网站。这可能会大大降低员工的生产力,因为发布在公共领域的信息和知识往往对于员工有效完成任务至关重要。为了缓解这一问题,使用加固的计算机的员工还可以使用另外的未加固的计算机来访问公共领域的信息和知识。尽管如此,在执行任务时,使用公共领域上信息和知识仍然很困难且效率低下,因为很难将数据导入加固的计算机(如通过复制/粘贴)。
12.另一种经常用于解决远程办公室数据安全问题的技术是使用虚拟化技术。虚拟化是一种使用软件模拟执行环境的行为。然而,虚拟化技术可能仍然不足以防止安全或私有数据泄漏,尤其是当托管虚拟化的计算设备为员工所有时更是如此。由于主机计算设备由员工控制,员工使用虚拟化工具从虚拟化环境中复制私有的机构数据会相对简单。因此,在使用虚拟化时仍需要采取进一步的安全措施来保护私有和敏感的机构数据。


技术实现要素:

13.提供了以下介绍以向读者介绍更详细的讨论。该介绍并非旨在限制或限定任何所要求保护的或尚未要求保护的发明。在包括权利要求书和附图的本文件的任何部分中公开的元素或过程步骤的任何组合或子组合中可以存在一个或更多个发明。
14.本公开与在虚拟化环境中提供数据安全有关。特别地,本公开提供了一种设备、系统、方法和计算机程序产品,其被配置成使在通过虚拟化应用程序模拟的来宾执行环境中访问、生成和传输的数据得到保护。本公开使得在来宾执行环境中的数据得到保护,即使相对于在虚拟化应用程序正在运行的同一主机上运行的进程也可以得到保护。
15.主机提供主机执行环境。在所述主机执行环境中运行虚拟化应用程序。所述虚拟化应用程序对来宾执行环境进行模拟。在所述来宾执行环境中安装有来宾操作系统。在所述来宾操作系统中运行多个来宾进程。在所述来宾操作系统中安装有来宾数据管理应用程序并且在所述来宾操作系统中运行来宾数据管理应用程序。所述来宾数据管理应用程序可以被配置成使在所述来宾操作系统中生成、访问和存储的数据得到保护。
16.所述来宾数据管理应用程序可以存储至少一个来宾加密密钥,所述至少一个来宾加密密钥无法被主机执行环境中的进程访问并且无法被所述主机设备的用户访问。所述来宾数据管理应用程序可以在来自来宾执行环境的数据被所述来宾执行环境外的进程或设备访问或者传输至所述来宾执行环境外的进程或设备之前,使用所述来宾加密密钥对所述来自来宾执行环境的数据进行加密。这可以防止对来自所述来宾执行环境的数据的未经授
权的访问,即使是所述同一主机计算设备的进程或外围设备对来自所述来宾执行环境的数据的未经授权的访问。
17.所述来宾数据管理应用程序可以与外部中继服务器通信。所述中继服务器和来宾数据管理应用程序可以协作,以使得下述网络数据传输得到保护,所述网络数据传输为在使用网络安全程序例如虚拟私有网络在所述来宾执行环境和经许可的外部计算设备之间的网络数据传输。所述中继服务器和来宾数据管理应用程序还可以交换来宾加密密钥,以使数据在所述来宾执行环境和经许可的外部计算设备(例如位于机构现场的计算设备)之间传输的同时能够进行加密。这可以进一步确保数据可以在所述来宾执行环境和位于远离托管所述来宾执行环境的所述计算设备的经许可的计算设备之间安全地进行传输。
18.根据该广泛的方面,提供了一种用于在主机计算设备上提供隔离工作环境的方法,所述主机计算设备具有主机处理器和非暂态主机设备存储器,其中,所述主机处理器限定所述主机计算设备的主机执行环境以及在所述主机执行环境中运行包括虚拟化应用程序的多个主机进程,其中,所述多个主机进程包括多个非内核主机进程,所述虚拟化应用程序对来宾执行环境进行模拟,其中,在所述来宾执行环境中安装有来宾操作系统,并且在所述来宾操作系统中运行多个来宾应用程序进程,所述方法包括:在所述来宾操作系统中运行来宾数据管理应用程序,其中,所述来宾数据管理应用程序被配置成:控制从所述多个来宾应用程序进程传输到所述来宾执行环境外部的任何位置的数据传输;通过所述来宾数据管理应用程序,存储至少一个来宾加密密钥,其中,所述至少一个来宾加密密钥能够通过所述来宾执行环境中的所述来宾数据管理应用程序来访问,而所述至少一个来宾加密密钥却不能被下述各者访问:所述主机执行环境;和所述主机计算设备的用户;通过所述来宾数据管理应用程序,识别从所述多个来宾应用程序进程中的特定来宾应用程序进程传输到所述来宾执行环境外部的特定位置的尝试性数据传输,其中,所述尝试性数据传输包括:所述特定来宾应用程序进程尝试将至少一个数据文件传输到所述来宾执行环境外部的所述特定位置;通过所述来宾数据管理应用程序,确定所述至少一个数据文件包括安全数据文件;通过所述来宾数据管理应用程序,使用来自所述至少一个来宾加密密钥的特定来宾加密密钥对所述安全数据文件进行加密;通过所述来宾数据管理应用程序,允许仅在对所述安全数据文件进行加密后才进行所述尝试性数据传输,从而将所述安全数据文件作为加密安全数据文件从所述来宾执行环境中传输出来;通过所述来宾数据管理应用程序,从在所述主机执行环境中运行的所述多个主机进程中识别至少一个经许可主机进程;以及防止从所述来宾应用程序进程中的任意来宾应用程序进程传输到除了多个所述经许可主机进程之外的任何非内核主机进程的未加密数据传输,而允许从所述非内核主机进程传输到所述来宾应用程序进程中的任意来宾应用程序进程的未加密数据传输。
19.在一些示例中,所述方法可以包括:通过所述来宾数据管理应用程序,识别在所述来宾操作系统中运行的至少一个安全来宾应用程序;以及通过下述操作来确定所述至少一个数据文件包括安全数据文件:确定所述特定来宾应用程序进程对应于所述至少一个安全来宾应用程序中的特定安全来宾应用程序;以及响应于确定所述特定来宾应用程序进程对应于所述特定安全来宾应用程序,将所述至少一个数据文件中的所有数据文件识别为安全数据文件。
20.在一些示例中,所述方法可以包括:通过所述来宾数据管理应用程序,识别至少一
个经许可的外部计算设备,其中,所述来宾执行环境经由所述主机计算设备和外部计算机网络联接到每个经许可的外部计算设备;以及通过所述来宾数据管理应用程序,防止在所述来宾执行环境与除了经许可的外部计算设备之外的任何外部计算设备之间的文件传输。
21.在一些示例中,所述方法可以包括:通过所述来宾数据管理应用程序,识别至少一个经许可的外部中继服务器,其中,所述来宾执行环境经由所述主机计算设备和外部计算机网络联接到每个经许可的外部中继服务器;以及通过所述来宾数据管理应用程序,防止在所述来宾执行环境与除了和所述经许可的外部中继服务器之一相关联的外部计算设备之外的任何外部计算设备之间的文件传输。
22.在一些示例中,所述方法可以包括:通过所述来宾数据管理应用程序,识别从给定来宾应用程序进程到给定外部计算设备的尝试性外部文件传输,其中,所述尝试性外部文件传输涉及:所述给定来宾应用程序进程尝试将至少一个给定数据文件通过所述主机执行环境传输到所述给定外部计算设备;通过所述来宾数据管理应用程序,确定所述给定外部计算设备与任何经许可的外部中继服务器均无关联;以及响应于确定所述给定外部计算设备与任何经许可的外部中继服务器均无关联,通过所述来宾数据管理应用程序,防止所述给定来宾应用程序进程将所述至少一个给定数据文件传输到所述来宾执行环境外部的任何位置,从而防止传输到所述给定外部计算设备的所述尝试性外部文件传输。
23.在一些示例中,所述方法可以包括:通过所述来宾数据管理应用程序,识别来自特定外部计算设备的传入文件传输,其中,所述传入文件传输包括:从所述特定外部计算设备通过所述主机执行环境传输的至少一个特定数据文件;通过所述来宾数据管理应用程序,确定所述特定外部计算设备与任何经许可的外部中继服务器均无关联;以及响应于确定所述特定外部计算设备与任何经许可的外部中继服务器均无关联,通过所述来宾数据管理应用程序防止所述至少一个特定数据文件被所述来宾应用程序进程中的任意来宾应用程序进程访问。
24.在一些示例中,所述方法可以包括:通过所述来宾数据管理应用程序,与特定经许可的外部中继服务器安全地交换所述至少一个来宾加密密钥,其中,所述来宾数据管理应用程序被配置成通过所述主机执行环境而与所述特定经许可的外部中继服务器交换所述至少一个来宾加密密钥,而未将所述至少一个来宾加密密钥暴露于所述来宾执行环境外的所述主机执行环境。
25.在一些示例中,所述方法可以包括:通过所述来宾数据管理应用程序,识别与所述主机执行环境相联的至少一个经许可的外围设备;以及通过所述来宾数据管理应用程序,防止在所述来宾执行环境与除了经许可的外围设备之外的任何外围设备之间的未加密数据传输。
26.在一些示例中,所述方法可以包括:通过所述来宾数据管理应用程序,防止在所述来宾执行环境与除了经许可的外围设备之外的任何外围设备之间的任何数据传输。
27.在一些示例中,在所述主机执行环境中运行的所述至少一个经许可的主机进程可以包括对应于所述虚拟化应用程序的主机进程。
28.根据广泛的方面,提供了用于在主机计算设备上提供隔离工作环境的计算机程序产品,所述主机计算设备具有主机处理器,并且所述主机处理器限定所述主机计算设备的主机执行环境,并且在所述主机执行环境中运行包括虚拟化应用程序的多个主机进程,其
中,所述多个主机进程包括多个非内核主机进程,所述虚拟化应用程序对来宾执行环境进行模拟,其中,所述来宾执行环境中安装有来宾操作系统,并且在所述来宾操作系统中运行多个来宾应用程序进程,所述计算机程序产品包括计算机可读介质,在所述计算机可读介质上存储有计算机可执行指令,所述指令用于将所述主机计算设备的所述主机处理器配置成:在所述来宾操作系统中运行来宾数据管理应用程序,其中,所述来宾数据管理应用程序被配置成:控制从所述多个来宾应用程序进程传输到所述来宾执行环境外部的任何位置的数据传输;通过所述来宾数据管理应用程序,存储至少一个来宾加密密钥,其中,所述至少一个来宾加密密钥能够通过所述来宾执行环境中的所述来宾数据管理应用程序来访问,而所述至少一个来宾加密密钥却不能被下述各者访问:所述主机执行环境;和所述主机计算设备的用户;通过所述来宾数据管理应用程序,识别从所述多个来宾应用程序进程中的特定来宾应用程序进程传输到所述来宾执行环境外部的特定位置的尝试性数据传输,其中,所述尝试性数据传输包括:所述特定来宾应用程序进程尝试将至少一个数据文件传输到所述来宾执行环境外部的特定位置;通过所述来宾数据管理应用程序,确定所述至少一个数据文件包含安全数据文件;通过所述来宾数据管理应用程序,使用来自所述至少一个来宾加密密钥的特定来宾加密密钥对所述安全数据文件进行加密;通过所述来宾数据管理应用程序,允许仅在对所述安全数据文件进行加密后才进行尝试性数据传输,从而将所述安全数据文件作为加密安全数据文件从所述来宾执行环境中传输出来;通过所述来宾数据管理应用程序,从在所述主机执行环境中运行的所述多个主机进程中识别至少一个经许可的主机进程;以及防止从所述来宾应用程序进程中的任意来宾应用程序进程传输到除了多个所述经许可的主机进程之外的任何非内核主机进程的未加密数据传输,而允许从所述非内核主机进程传输到所述来宾应用程序进程中的任意来宾应用程序进程的未加密数据传输。
29.在某些示例中,计算机程序产品还可以包括用于将所述主机计算设备的所述主机处理器配置成进行下述操作的指令:通过所述来宾数据管理应用程序,识别在所述来宾操作系统中运行的至少一个安全来宾应用程序;以及通过下述操作来确定所述至少一个数据文件包括安全数据文件:确定所述特定来宾应用程序进程对应于所述至少一个安全来宾应用程序中的特定安全来宾应用程序;以及响应于确定所述特定来宾应用程序进程对应于所述特定安全来宾应用程序,将所述至少一个数据文件中的所有数据文件识别为安全数据文件。
30.在某些示例中,计算机程序产品还可以包括用于将所述主机计算设备的所述主机处理器配置成进行下述操作的指令:通过所述来宾数据管理应用程序,识别至少一个经许可的外部计算设备,其中,所述来宾执行环境经由所述主机计算设备和外部计算机网络联接到每个经许可的外部计算设备;以及通过所述来宾数据管理应用程序,防止在所述来宾执行环境与除了经许可的外部计算设备之外的任何外部计算设备之间的文件传输。
31.在某些示例中,计算机程序产品还可以包括用于将所述主机计算设备的所述主机处理器配置成进行下述操作的指令:通过所述来宾数据管理应用程序,识别至少一个经许可的外部中继服务器,其中,所述来宾执行环境经由所述主机计算设备和外部计算机网络联接到每个经许可的外部中继服务器;以及通过所述来宾数据管理应用程序,防止在所述来宾执行环境与除了和经许可的外部中继服务器之一相关联的外部计算设备之外的任何外部计算设备之间的文件传输。
32.在某些示例中,计算机程序产品还可以包括用于将所述主机计算设备的所述主机处理器配置成进行下述操作的指令:通过所述来宾数据管理应用程序,识别从给定来宾应用程序进程传输到给定外部计算设备的尝试性外部文件传输,其中,所述尝试性外部文件传输涉及:所述给定来宾应用程序进程尝试将至少一个给定数据文件通过所述主机执行环境传输到所述给定外部计算设备;通过所述来宾数据管理应用程序,确定所述给定外部计算设备与任何经许可的外部中继服务器均无关联;以及响应于确定所述给定外部计算设备与任何经许可的外部中继服务器均无关联,通过所述来宾数据管理应用程序,防止所述给定来宾应用程序进程将所述至少一个给定数据文件传输到所述来宾执行环境外部的任何位置,从而防止传输到所述给定外部计算设备的尝试性外部文件传输。
33.在某些示例中,计算机程序产品还可以包括用于将所述主机计算设备的所述主机处理器配置成进行下述操作的指令:通过所述来宾数据管理应用程序,识别来自特定外部计算设备的传入文件传输,其中,所述传入文件传输包括:从所述特定外部计算设备通过所述主机执行环境传输的至少一个特定数据文件;通过所述来宾数据管理应用程序,确定所述特定外部计算设备与任何经许可的外部中继服务器均无关联;以及响应于确定所述特定外部计算设备与任何经许可的外部中继服务器均无关联,通过所述来宾数据管理应用程序防止所述至少一个特定数据文件被所述来宾应用程序中的任意来宾应用程序访问。
34.在某些示例中,计算机程序产品还可以包括用于将所述主机计算设备的所述主机处理器配置成进行下述操作的指令:通过所述来宾数据管理应用程序,与特定经许可的外部中继服务器安全地交换所述至少一个来宾加密密钥,其中,所述来宾数据管理应用程序被配置成通过所述主机执行环境而与所述特定经许可的外部中继服务器交换所述至少一个来宾加密密钥,而未将所述至少一个来宾加密密钥暴露于所述来宾执行环境外的所述主机执行环境。
35.在某些示例中,计算机程序产品还可以包括用于将所述主机计算设备的所述主机处理器配置成进行下述操作的指令:通过所述来宾数据管理应用程序,识别与所述主机执行环境相联的至少一个经许可的外围设备;以及通过所述来宾数据管理应用程序,防止在所述来宾执行环境与除了经许可的外围设备之外的任何外围设备之间的未加密数据传输。
36.在某些示例中,计算机程序产品还可以包括用于将所述主机计算设备的所述主机处理器配置成进行下述操作的指令:通过所述来宾数据管理应用程序,防止在所述来宾执行环境与除了经许可的外围设备之外的任何外围设备之间的任何数据传输。
37.在某些示例中,在所述主机执行环境中运行的所述至少一个经许可主机进程可以包括对应于所述虚拟化应用程序的主机进程。
38.根据广泛的方面,提供了一种用于提供隔离工作环境的设备,所述设备包括:处理器;和非易失性设备存储器,在所述非易失性设备存储器上存储有指令,所述指令用于将所述处理器配置成:限定主机执行环境;在所述主机执行环境中运行包括虚拟化应用程序的多个主机进程,其中,所述多个主机进程包括多个非内核主机进程,所述虚拟化应用程序对来宾执行环境进行模拟,其中,在所述来宾执行环境中安装有来宾操作系统,并且在所述来宾操作系统中运行多个来宾应用程序进程;在所述来宾操作系统中运行来宾数据管理应用程序,其中,所述来宾数据管理应用程序被配置成:控制从所述多个来宾应用程序进程传输到所述来宾执行环境外部的任何位置的数据传输;通过所述来宾数据管理应用程序,存储
至少一个来宾加密密钥,其中,所述至少一个来宾加密密钥能够通过所述来宾执行环境中的所述来宾数据管理应用程序来访问,而所述至少一个来宾加密密钥却不能被下述各者访问:所述主机执行环境;和所述设备的用户;通过所述来宾数据管理应用程序,识别从所述多个来宾应用程序进程中的特定来宾应用程序进程传输到所述来宾执行环境外部的特定位置的尝试性数据传输,其中,所述尝试性数据传输包括所述特定来宾应用程序进程尝试将至少一个数据文件传输到所述来宾执行环境外部的所述特定位置;通过所述来宾数据管理应用程序,确定所述至少一个数据文件包括安全数据文件;通过所述来宾数据管理应用程序,使用来自所述至少一个来宾加密密钥的特定来宾加密密钥对所述安全数据文件进行加密;以及通过所述来宾数据管理应用程序,允许仅在对所述安全数据文件进行加密后才进行尝试性数据传输,从而将所述安全数据文件作为加密安全数据文件从所述来宾执行环境中传输出来;通过所述来宾数据管理应用程序,从在所述主机执行环境中运行的所述多个主机进程中识别至少一个经许可的主机进程;以及防止从所述来宾应用程序进程中的任意来宾应用程序进程传输到除了多个所述经许可的主机进程之外的任何非内核主机进程的未加密数据传输,而允许从所述非内核主机进程传输到所述来宾应用程序进程中的任意来宾应用程序进程的未加密数据传输。
39.在某些示例中,所述指令可以被限定成将所述处理器还配置成:通过所述来宾数据管理应用程序,识别在所述来宾操作系统中运行的至少一个安全来宾应用程序;以及通过下述操作来确定所述至少一个数据文件包括安全数据文件:确定所述特定来宾应用程序进程对应于所述至少一个安全来宾应用程序中的特定安全来宾应用程序;以及响应于确定所述特定来宾应用程序进程对应于所述特定安全来宾应用程序,将所述至少一个数据文件中的所有数据文件识别为安全数据文件。
40.在某些示例中,所述指令可以被限定成将所述处理器还配置成:通过所述来宾数据管理应用程序,识别至少一个经许可的外部计算设备,其中,所述来宾执行环境经由所述主机计算设备和外部计算机网络联接到每个经许可的外部计算设备;以及通过所述来宾数据管理应用程序,防止在所述来宾执行环境与除了经许可的外部计算设备之外的任何外部计算设备之间的文件传输。
41.在某些示例中,所述指令可以被限定成将所述处理器还配置成:通过所述来宾数据管理应用程序,识别至少一个经许可的外部中继服务器,其中,所述来宾执行环境经由所述主机计算设备和外部计算机网络联接到每个经许可的外部中继服务器;以及通过所述来宾数据管理应用程序,防止在所述来宾执行环境与除了和所述经许可的外部中继服务器之一相关联的外部计算设备之外的任何外部计算设备之间的文件传输。
42.在某些示例中,所述指令可以被限定成将所述处理器还配置成:通过所述来宾数据管理应用程序,识别从给定来宾应用程序进程到给定外部计算设备的尝试性外部文件传输,其中,所述尝试性外部文件传输涉及:所述给定来宾应用程序进程尝试将至少一个给定数据文件通过所述主机执行环境传递到所述给定外部计算设备;通过所述来宾数据管理应用程序,确定所述给定外部计算设备与任何经许可的外部中继服务器均无关联;以及响应于确定所述给定外部计算设备与任何经许可的外部中继服务器均无关联,通过所述来宾数据管理应用程序,防止所述给定来宾应用程序进程将所述至少一个给定数据文件传输到所述来宾执行环境外部的任何位置,从而防止传输到所述给定外部计算设备的所述尝试性外
部文件传输。
43.在某些示例中,所述指令可以被限定成将所述处理器还配置成:通过所述来宾数据管理应用程序,识别来自特定外部计算设备的传入文件传输,其中,所述传入文件传输包括:从所述特定外部计算设备通过所述主机执行环境传输的至少一个特定数据文件;通过所述来宾数据管理应用程序,确定所述特定外部计算设备与任何经许可的外部中继服务器均无关联;以及响应于确定所述特定外部计算设备与任何经许可的外部中继服务器均无关联,通过所述来宾数据管理应用程序防止所述至少一个特定数据文件被所述来宾应用程序进程中的任意来宾应用程序进程访问。
44.在某些示例中,所述指令可以被限定成将所述处理器还配置成:通过所述来宾数据管理应用程序,与特定经许可的外部中继服务器安全地交换所述至少一个来宾加密密钥,其中,所述来宾数据管理应用程序被配置成通过所述主机执行环境而与所述特定经许可的外部中继服务器交换所述至少一个来宾加密密钥,而未将所述至少一个来宾加密密钥暴露于所述来宾执行环境之外的所述主机执行环境。
45.在某些示例中,所述指令可以被限定成将所述处理器还配置成:通过所述来宾数据管理应用程序,识别与所述主机执行环境相联的至少一个经许可的外围设备;以及通过所述来宾数据管理应用程序,防止在所述来宾执行环境与除了经许可的外围设备之外的任何外围设备之间的未加密数据传输。
46.在某些示例中,所述指令可以被限定成将所述处理器还配置成:通过所述来宾数据管理应用程序,防止在所述来宾执行环境与除了经许可的外围设备之外的任何外围设备之间的任何数据传输。
47.在某些示例中,在所述主机执行环境中运行的所述至少一个经许可的主机进程包括对应于所述虚拟化应用程序的主机进程。
48.本领域技术人员应该理解,本文中公开的设备、方法或计算机程序产品可以包括在本文中包含的任意一个或更多个特征,并且这些特征可以以任何特定组合或子组合的方式使用。
49.下面将更详细地描述各种实施方式的这些方面和其他方面和特征。
附图说明
50.随附的附图用于示出本说明书的教导的系统、方法和设备的各种示例,并且不旨在以任何方式限制所教导内容的范围。
51.图1是示出根据实施方式包括提供虚拟化的主机计算设备的计算机网络系统的示例的框图。
52.图2是示出根据实施方式使用来宾数据管理应用程序提供虚拟化的主机计算设备的示例的框图。
53.图3是示出计算机网络系统的示例的框图,该计算机网络系统包括隧道服务器和根据实施方式使用来宾数据管理应用程序提供虚拟化的主机计算设备。
54.图4是示出计算机网络系统的示例的框图,该计算机网络系统包括网关和根据实施方式使用来宾数据管理应用程序提供虚拟化的主机计算设备。
55.图5是示出主机计算设备的另一示例的框图,该主机计算设备根据实施方式使用
来宾数据管理应用程序提供虚拟化。
56.图6是示出主机计算设备的另一示例的框图,该主机计算设备根据实施方式使用来宾数据管理应用程序提供虚拟化。
57.图7是示出根据实施方式提供隔离工作环境的方法的示例的流程图。
具体实施方式
58.下面描述的附图是为了说明而不是限制本文所描述的实施方式的各种示例的方面和特征而提供的。为了说明的简单性和清晰性,附图中的元素不一定是按比例绘制的。为了清楚起见,一些元素的尺寸可能相对于其他元素被夸大了。可以理解的是,为了说明的简单性和清晰性,在认为适当的情况下,参考数字可以在图中重复,以表示相应或类似的元素或步骤。
59.此外,为了提供对本文所述实施方式的透彻理解,还列出了许多具体细节。然而,本领域的普通技术人员将理解,本文所述的实施方式可以在没有这些具体细节的情况下实施。在其他情况下,众所周知的方法、程序和组件没有被详细描述,以避免掩盖本文所述的实施方式。同样,描述不应被视为限制本文所述的实施方式的范围。
60.下面将描述各种系统或方法,以提供所要求保护的主题的实施方式的示例。下面描述的任何实施方式都没有限制任何所要求保护的主题,任何所要求保护的主题可以涵盖与下面描述的不同的方法或系统。所要求保护的主题不限于下述系统或方法,所述系统或方法具有下面描述的任何一个系统或方法的所有特征,或者具有下面描述的多个或所有装置或方法的共同特征。下面描述的系统或方法可能不是任何所要求保护的主题中所记载的实施方式。在下面描述的系统或方法中公开的在本文中未要求保护的任何主题,可能是另一保护性文书的主题,例如,继续专利申请,其申请人、发明人或所有人并不旨在通过在本文中的公开而放弃、否认或将任何这样的主题奉献给公众。
61.术语“实施方式”、“实施例”、“多个实施方式”、“该实施方式”、“所述多个实施方式”、“一个或更多个实施方式”、“一些实施方式”和“一个实施方式”是指“本发明的一个或更多个(但不是全部)实施方式”,除非另有明确说明。
62.应该注意的是,本文所用的程度术语,例如“基本上”、“大约”和“约”,是指被修改后的术语的合理偏差,以便最终结果没有重大变化。如果这种偏差不会否定其所修改的术语的含义,则这些程度术语也可以解释为包括被修改的术语的偏差。
63.此外,本文按端点列举的数值范围包括该范围内的所有数字和分数(例如1至5包括1、1.5、2、2.75、3、3.90、4和5)。还需要理解的是,所有数字和小数都被认为是被术语“约”所修饰的,这意味着如果最终结果没有重大变化,对所提及的数字进行最多为一定量的变化。
64.本文所述的系统和方法的示例性实施方式可以作为硬件或软件的组合来实现。在某些情况下,本文所述的示例性实施方式可以至少部分地通过使用一个或更多个计算机程序来实现,所述计算机程序在一个或更多个可编程设备上执行,所述可编程设备包含至少一个处理元件以及一个数据存储元件(包括易失性存储器、非易失性存储器、存储元件或其任何组合)。这些设备也可以具有至少一个输入设备(如按钮键盘、鼠标、触摸屏等),以及至少一个输出设备(如显示屏、打印机、无线收音机等),具体取决于设备的性质。
65.还应该注意的是,可能有一些用于实现本文所述的一个实施方式的至少一部分的元件可以通过软件来实现,该软件是用例如面向对象的编程的高级计算机编程语言编写的。因此,程序代码可以用c、c 或任何其他合适的编程语言编写,并且可以包含模块或类,这对于那些精通面向对象编程的人而言是众所周知的。另外,或此外,通过软件实现的其中一些元件可以根据需要用汇编语言、机器语言或固件编写。无论哪种情况,该语言都可以是编译的或解释的语言。
66.这些软件程序中至少有一些可以存储在存储介质(如计算机可读介质,例如但不限于rom、磁盘、光盘、)或可由一般或特殊用途的可编程设备读取的设备上。所述软件程序代码,当被可编程设备读取时,将可编程设备配置成以新的、特定的和预定的方式运行,以执行本文描述的至少一种方法。
67.此外,与本文所述的实施方式的系统和方法相关的至少一些程序可以在计算机程序产品中分发,所述计算机程序产品包括承载着用于一个或更多个处理器的计算机可用指令的计算机可读介质。该介质可以以各种形式提供,包括非暂态形式,例如但不限于一个或更多个软盘、光盘、磁带、芯片以及磁性和电子存储。
68.计算机程序是一组可以由计算机(即由处理器)执行的指令。进程是程序的实例,即计算机存储器中的程序副本,可由计算机的中央处理单元(cpu)执行。在随后的讨论中,提到了计算机系统的处理器和由该计算机系统处理器所执行的操作。应该理解的是,这种提法包含一个或更多个处理元件以及使用一个或更多个处理元件来执行操作,例如一个或更多个cpu中的一个或更多个处理核心。
69.操作系统(os)是一组软件(包括几个程序和库),可以控制计算机可用的硬件和软件资源的使用。os的核心组件(称为内核)是程序,该程序通过硬件-软件接口来管理所有计算机硬件设备,包括cpu、存储器和输入输出(io)设备,例如磁盘和网络适配器。内核为操作系统中运行的软件提供对硬件的访问接口。在运行时,从内核实例化的内核进程也管理从内核以外的程序(非内核进程)实例化的进程,并为非内核进程提供统一的内核接口(称为系统调用)以访问硬件设备。
70.执行环境是一组硬件,并且可选地是可以在其上执行软件(即程序)的操作系统(os)。虚拟化是使用软件模拟执行环境的行为。虚拟化软件是在一个执行环境中执行(即运行)并模拟其他执行环境的程序。运行虚拟化软件的执行环境是主机。本文所用的术语主机是指带有或不带有os的一组硬件。主机提供主机执行环境。主机提供的主机执行环境可以包括也可以不包括操作系统。当主机包括操作系统时,该操作系统被称为主机操作系统或主机os。
71.虚拟化软件提供/模拟的执行环境是虚拟来宾。正如本文所使用的,术语“虚拟来宾”是指与操作系统一起的一组硬件。安装在虚拟来宾中的操作系统os(即在虚拟化软件提供的执行环境中运行的操作系统)是来宾操作系统os。在虚拟来宾中运行的软件(即来宾进程)仅通过虚拟来宾与主机进行交互。
72.可以在硬件级或os级提供虚拟化。本文描述的实施方式可以用硬件级或os级的虚拟化应用程序来实现。也就是说,本文所述的实施方式可以被配置成与以安装有来宾操作系统的虚拟机的形式的虚拟来宾和/或以用户空间实例(容器或监禁区)的形式的虚拟来宾一起运行。
73.在硬件级虚拟化中,虚拟化软件也称为管理程序。各种类型的管理程序可用于不同的虚拟化系统。当将i类管理程序用作虚拟化应用程序时,主机是裸机硬件。也就是说,主机省略了操作系统。当将ii类管理程序用作虚拟化应用程序时,主机包括硬件和称为主机os的操作系统。也就是说,主机包括操作系统。无论管理程序的类型如何,硬件级虚拟化中的虚拟来宾始终是虚拟机(vm)。虚拟机提供安装有os(称为来宾os)的模拟硬件。在一些实现方式中,如果使用任何主机os,则来宾os可以与主机os不同。另外,来宾os和主机os可以是相同的操作系统。
74.在os级虚拟化中,主机包括一组硬件和os(主机os)。虚拟化应用程序被作为主机os内核的一部分。虚拟来宾是用户空间实例(在某些实现方式中也称为容器或监禁区),由模拟硬件和与主机os共享相同内核的os(来宾os)组成。
75.虚拟化可以嵌套。也就是说,用于给定虚拟化的主机本身可以是托管在另一主机上的虚拟来宾。无论虚拟化是否是嵌套的,本文所述的实施方式都可以实现。也就是说,在本文所述的实施方式中,主机本身可以是另一主机的虚拟来宾。同样,在本文所述的实施方式中,可以使用虚拟来宾来托管其他虚拟来宾。
76.通过使用虚拟化应用程序,机构可以在远程办公室的员工计算机上部署托管的虚拟来宾。这可以使员工使用自己的计算机,同时在他们用于为机构工作的执行环境(如虚拟来宾)和他们个人计算机(主机)的执行环境之间保持一定程度的隔离。然而,主机和虚拟来宾之间的隔离可能仍然不足以防止私有机构数据泄漏,尤其是当主机为员工所有时更是如此。
77.因为主机计算设备由员工控制,所以员工相对容易打破主机和虚拟来宾之间的隔离,并将数据从虚拟来宾复制到主机。例如,当虚拟来宾上的一个软件(即在来宾执行环境中运行来宾进程的来宾应用程序)将数据写入虚拟来宾的磁盘时,该数据最终被保存为虚拟来宾的主机磁盘上的一个或更多个文件。因此,员工可以使用虚拟化工具,以从虚拟来宾在主机上创建的文件中提取虚拟来宾磁盘上的数据。用户还可以在虚拟来宾和主机之间创建虚拟网络,并通过该虚拟网络将数据从虚拟来宾发送到主机。
78.本文所述的实施方式可以通过控制主机和虚拟来宾之间的交互来缓解许多数据安全问题。可以通过仔细控制主机和虚拟来宾之间的交互来创建隔离的工作空间。
79.主机提供了可以在虚拟来宾和外部设备或网络之间传输数据的接口。因此,虚拟来宾和任何外部设备或网络之间的通信需要通过主机传输数据。本文所述的实施方式可以使虚拟来宾连接到一个或更多个网络(如例如内部机构内联网的安全网络),而所述网络可能是主机无法访问的。对于在连接到公共网络(例如互联网)的主机上运行的虚拟来宾,本文所述的实施方式可以使主机和虚拟来宾连接到分开的独立网络。本文所述的实施方式可以使一个或更多个私有网络(内联网)被虚拟来宾访问,但不被主机访问。例如,虚拟来宾可以被限制为能够访问公共网络上的某些服务器(即虚拟来宾可以被限制为仅与经许可的外部服务器进行通信),从而促进虚拟来宾连接到那些私有网络。
80.本文所述的实施方式还可以确保在虚拟来宾中生成的数据在被发送到主机或通过主机之前总是被加密的。无论数据是保存到虚拟来宾的磁盘还是发送到在私有网络上服务器,虚拟来宾中生成的数据都可以被加密。
81.在托管虚拟来宾的远程办公室中的计算机(主机)上实现本文所述的实施方式,可
以允许用户通过主机访问公共网站,同时允许用户访问和使用虚拟来宾形成的隔离工作空间内的安全或私有数据(如私有机构数据)。本文所述的实施方式可以防止隔离工作空间内的数据通过虚拟来宾或主机泄漏,从而防止安全或私有数据的泄漏(如私有机构数据泄漏)。
82.为了清晰和易于说明,本文的实施方式是在远程工作安排的背景下描述的。然而,应该理解的是,本文所述的实施方式不仅限于远程办公/远程工作安排。本文描述的实施方式可以在许多场景中实现以产生积极的效果,在这些场景中,防止数据泄漏是很重要的。例如,本文所述的实施方式可以用托管虚拟来宾的常规办公室中的计算机(主机)来实现。这可以让员工通过主机访问公共知识和信息。同时,员工可以在隔离的工作空间内访问和使用私人机构数据,同时防止私人机构数据通过主机或虚拟来宾泄漏到公共领域。
83.在本文所述的实施方式中,可以在虚拟来宾的来宾操作系统中安装一个或更多个来宾数据管理应用程序。所述一个或更多个来宾数据管理应用程序可以被配置成为虚拟来宾提供隔离的工作空间。所述来宾数据管理应用程序可以被配置成执行各种操作,以提供数据安全并防止数据从隔离的工作空间泄漏。
84.来宾数据管理应用程序可以被配置成使用主机不可用的加密密钥对来宾进程(即在虚拟来宾提供的来宾执行环境中运行的进程)产生的数据进行加密。例如,当来宾进程尝试将数据写入虚拟来宾磁盘或虚拟来宾磁盘的某些区域时,所述来宾数据管理应用程序可以对数据进行加密。所述来宾数据管理应用程序还可以使用主机不可用的加密密钥对来宾进程从虚拟来宾磁盘或虚拟来宾磁盘的某些区域中读取的数据进行解密。
85.在本文所述的实施方式中,来宾数据管理应用程序可以被配置成识别在来宾操作系统中运行的安全来宾应用程序。例如,所述来宾数据管理应用程序可以维护安全来宾应用程序列表。所述来宾数据管理应用程序可以被配置成:每当来宾进程是从所述安全来宾应用程序之一中产生的(即当来宾进程是列表中安全来宾应用程序的实例),就对虚拟来宾上的来宾进程写入虚拟来宾磁盘或虚拟来宾磁盘的某些区域的数据进行加密。
86.在本文所述的实施方式中,来宾数据管理应用程序配置成与主机外部的中继服务器交换加密密钥。所述来宾数据管理应用程序和所述中继服务器可以被配置成通过主机交换加密密钥,而主机无法使用该加密密钥。例如,可以在中继服务器上安装网络管理应用程序,以促进加密密钥的交换。来宾数据管理应用程序可以被配置成管理来宾操作系统中的加密密钥,以确保主机无法使用该加密密钥。
87.在本文所述的实施方式中,来宾数据管理应用程序可以被配置成使用与中继服务器交换的加密密钥来对来宾进程通过中继服务器发送到外部计算设备的数据进行加密。所述来宾数据管理应用程序可以被配置成使用交换的加密密钥,以对外部计算设备通过中继服务器发送给来宾进程的数据进行解密。
88.中继服务器上的网络管理应用程序可以被配置成使用来宾os和中继服务器之间交换的加密密钥对外部计算设备通过中继服务器发送给来宾进程的数据进行加密。所述网络管理应用程序可以被配置成使用交换的加密密钥对虚拟来宾的来宾进程通过中继服务器发送到外部计算设备的数据进行解密。
89.在本文所述的实施方式中,来宾数据管理应用程序可以被配置成识别一个或更多个经许可的外部计算设备(可以包括一个或更多个经许可的中继服务器)。所述来宾数据管
理应用程序可以被配置成防止在虚拟来宾与除了经许可的外部计算设备之外的任何外部计算设备之间的数据传输。所述来宾数据管理应用程序可以被配置成维护包括中继服务器(以及任何其他经许可的计算设备)的经许可的外部计算设备的列表。所述来宾数据管理应用程序可以被配置成阻止来宾进程尝试向不在列表中的任何计算设备发送的数据传输。所述来宾数据管理应用程序还可以被配置成阻止不在列表中的任何计算设备向来宾进程发送的数据传输。
90.在本文所述的实施方式中,来宾数据管理应用程序可以被配置成识别一个或更多个经许可的外围设备。在一些示例中,所述来宾数据管理应用程序可以被配置成使用主机不可用的加密密钥对来宾进程传输到除了经许可的外围设备之外的任何外围设备的数据进行加密。所述来宾数据管理应用程序还可以被配置成使用加密密钥对虚拟来宾上的来宾进程从除了经许可的外围设备以外的外围设备接收到数据进行解密。所述来宾数据管理应用程序可以被配置成防止在来宾执行环境与除了经许可的外围设备之外的任何外围设备之间的未加密数据传输。在一些示例中,来宾数据管理应用程序可以被配置成防止在来宾执行环境与除了经许可的外围设备之外的任何外围设备之间的任何数据传输。
91.例如,来宾数据管理应用程序可以维护经许可的外围设备的列表。在一些示例中,来宾数据管理应用程序使用主机不可用的加密密钥对来宾进程发送到不在列表中的外围设备的数据进行加密,并且对来宾进程从不在列表中的外围设备接收的数据进行解密。另外,当外围设备不在列表中时,来宾数据管理应用程序可以阻止来宾进程发送给外围设备的数据以及从外围设备接收的数据。
92.在本文所述的实施方式中,来宾数据管理应用程序可以被配置成允许在主机上运行的进程(即主机进程)通过虚拟化应用程序将数据发送给在虚拟来宾上运行的来宾进程,并且禁止来宾进程通过虚拟化应用程序向主机进程发送数据。也就是说,在一些示例中,所述来宾数据管理应用程序可以防止来宾进程将数据传输到主机进程。在一些情况下,所述来宾数据管理应用程序可以允许来宾进程将数据仅传输到已确定为经许可的主机进程的那些主机进程。
93.本文所述的实施方式可以在各种类型的计算机网络中实现。(计算机)网络是一组互连设备(例如计算机、电话、路由器和交换机)。设备可以通过各种通信接口连接,例如物理电缆介质和/或使用无线通信协议。如果计算机可以通过该网络与其他设备交换数据,则可以认为其连接到了网络。连接到网络的每个设备可以有一个相关的设备地址。本文的实施方式是在互联网协议(ip)网络的背景下描述的,即使用ip地址的网络。在ip地址中,连接到网络的设备的地址通常包括一个ip地址和端口对。当第一设备(源)通过网络向第二设备(目标)发送数据时,第一设备将数据组合成以数据为有效载荷、第一设备的地址为源地址、第二设备的地址为目标地址的包。然后,第一设备通过网络上的设备序列(跳数)发送该数据包,第二设备(目标)是该序列中的最后一个。包中包含的源地址被目标设备用来向源设备发送回信。
94.子网络或子网是ip网络的逻辑分区。具体而言,子网是ip地址的范围。当设备的ip地址在子网指定的范围内时,该设备被认为是位于子网上。
95.可以使用各种方法在不同子网之间传输数据。网关和隧道是允许数据在一个以上的子网之间交换数据两种不同的方法。网关是位于多个子网上的设备。所述网关上安装有
网关服务程序。所述网关服务程序被配置成在不同子网之间转发包。
96.隧道包括隧道服务器和隧道端点。隧道服务器是在安装有隧道服务程序的一个以上子网中的计算机。隧道端点是还安装有隧道服务器的至少一个子网中的计算机。隧道端点上安装有隧道客户端程序。隧道端点通过将隧道端点和隧道计算机之间交换的包封装成隧道端点和隧道服务器之间交换的包,来通过隧道服务器与隧道计算机交换数据。在隧道端点通过隧道服务器与隧道计算机交换数据之前,隧道端点上的隧道客户端可以与隧道服务器上的隧道服务进行认证和交换加密密钥(用于加密封装的包)。
97.现在参考图1,在图1中示出的是示例计算机网络系统100。计算机网络系统100是在其中可以实现本文所述的实施方式的计算机网络系统的示例。
98.如图1所示,计算机网络系统100可以包括多个子网106a和106b,所述多个子网106a和106b用于连接例如主机计算设备120和中继服务器104计算设备。
99.如图1所示,主机计算设备120联接到第一子网106a。主机计算设备120可以是能够通过无线连接或有线以太网连接连接到第一子网106a的台式机、笔记本电脑、智能手机或平板电脑。主机计算设备120通常可以包括处理器(即主机处理器)和设备存储器(主机设备存储器),包括易失性存储器和非暂态存储器。主机计算设备还可以包括至少一个网络接口;和外围设备,所述外围设备为例如输入设备(如键盘和/或触摸屏)、输出设备(如显示器、扬声器、打印机),并且主机计算设备还可以包括其他外围设备。
100.主机处理器限定了主机计算设备120的主机执行环境。包括虚拟化应用程序122的多个主机进程可以在主机执行环境中运行。可选地,可以在主机执行环境中安装操作系统(主机操作系统)。当主机操作系统在主机执行环境中运行时,所述多个主机进程可以包括在主机执行环境中运行的多个主机内核进程。所述多个主机进程还可以包括在主机执行环境中运行的多个非内核进程。所述非内核进程通常包括在主机执行环境中由内核以外的程序实例化的进程。
101.虚拟化应用程序122可以被配置成模拟来宾执行环境。来宾执行环境可以称为虚拟来宾124。可以在来宾执行环境中安装来宾操作系统。当主机操作系统在主机执行环境中运行时,所述来宾操作系统可以是与主机操作系统相同类型的操作系统,或者是与主机操作系统不同类型的操作系统。
102.多个来宾应用程序进程可以在来宾操作系统中运行。在虚拟来宾中运行的所述多个来宾应用程序进程可以仅通过来宾执行环境124和虚拟化应用程序122与主机执行环境120进行交互。
103.来宾应用程序进程从主机执行环境或通过主机执行环境接收到的数据必须首先通过虚拟化应用程序122和来宾执行环境的来宾内核进程,然后才能到达来宾应用程序进程。例如,由主机进程生成的数据必须首先通过虚拟化应用程序122和来宾执行环境124的来宾内核进程,然后才能到达来宾应用程序进程。同样地,当数据从远程计算设备(如从中继服务器104)传输到来宾应用程序进程时,所传输的数据必须首先通过主机120,然后通过虚拟化应用程序122和来宾执行环境124的来宾内核进程,然后才到达来宾应用程序进程。必须首先通过虚拟化应用程序122和来宾执行环境124的来宾内核进程才能传输到来宾应用程序进程的数据的常见示例包括:来自主机120上的外围设备(如键盘或鼠标)的输入;从主机120或远程计算机向虚拟来宾124传入的数据传输;以及来宾进程从非暂态设备存储器
读取的数据(即从磁盘读取数据)。
104.由在来宾执行环境124中运行的来宾进程所生成的数据同样必须通过虚拟来宾124和虚拟化软件122,然后才能到达主机120。必须首先通过来宾执行环境124的来宾内核进程和虚拟化应用程序122的、并且由来宾应用程序进程传输的数据的常见示例包括:传输到主机120上的外围设备例如监视器的图形显示数据;从来宾进程到主机120或到远程计算机的外发的数据传输;以及来宾进程向非暂态设备存储器写入的数据(即向磁盘写入数据)。
105.如上所述,计算机网络系统100还包括中继服务器104。如所示出的,中继服务器104与第一子网106a和第二子网106b两者都耦合。中继服务器104可以被配置成使第一子网106a和第二子网106b之间能够进行数据交换。也就是说,通过第一子网106a上的计算设备发送的网络流量可以通过中继服务器104,以到达第二子网106b和与之相连的任何计算设备。同样地,第二子网106b上的计算设备发送的网络流量可以通过中继服务器104,以达到第一子网106a和与之相连的任何计算设备(例如主机120)。在计算机网络系统100中,主机计算设备120通过第一子网106a连接到中继服务器104,从而使数据能够在虚拟来宾124和连接到第二子网106b的计算设备之间进行交换。
106.中继服务器104可以实现为网关服务器(参见如图4)和/或隧道服务器(参见如图3)。与计算机网络系统100中示出的所有设备一样,尽管并未全部显示,但是可以存在多个中继服务器104。在计算机网络系统100的各个示例中,可以提供多个网关和/或隧道服务器以连接多个网络和子网106。在一些情况下,主机120和网关/隧道服务器104之间和/或主机120和虚拟来宾124之间也可以存在多个中继服务器。
107.在本文所述的实施方式中,来宾数据管理应用程序125可以在来宾执行环境124中运行。来宾数据管理应用程序125可以包括来宾执行环境124中运行的来宾内核进程和/或来宾非内核进程。如本文所用,术语“软件应用程序”或“应用程序”是指计算机可执行指令,特别是存储在例如非易失性存储器的非暂态介质中,并由计算机处理器执行的计算机可执行指令。所述计算机处理器在执行指令时,可以接收输入,并且将输出传输到与其相联的各种输入或输出设备中的任何一个。
108.所述软件应用程序可以与唯一标识该软件应用程序的应用程序标识符相关联。在一些情况下,应用程序标识符还可以标识软件应用程序的版本和构建版本。软件应用程序的使用人以及提供或维护它的人都可以通过名称来识别它。移动应用程序或“应用程序”通常是指在例如智能手机和平板电脑或其他“智能”设备的移动设备上安装和使用的软件应用程序。
109.来宾数据管理应用程序125主要是为了易于阐述而提出的,应该理解的是,与来宾数据管理应用程序125相关联的特征和操作可以使用多个软件应用程序来实现。
110.来宾数据管理应用程序125可以被配置成控制在虚拟来宾124的来宾执行环境中运行的多个来宾应用程序进程与来宾执行环境外部的任何位置(包括主机执行环境)之间的数据传输。特别是,来宾数据管理应用程序可以被配置成监视、拦截和控制从来宾应用程序进程到来宾执行环境外部的任何位置的任何数据传输。这可以有助于防止数据从虚拟执行环境124泄漏,甚至防止数据泄露到主机120。例如,来宾数据管理应用程序125可以被配置成确保在虚拟执行环境124中生成的安全或私有数据(以及在一些情况下所有数据)在被
传输到主机120之前或通过主机120传输之前被加密。可以由来宾数据管理应用程序125提供的功能的各种示例在下文中进一步详细描述,所述功能为例如图2中示出的磁盘过滤器228;图3至图4中示出的网络过滤器336和网络过滤器436;图5中示出的剪贴板管理器550;以及图6中示出的设备过滤器656。
111.现在参考图7,在图7中示出的是用于在主机计算设备上提供隔离的工作环境的示例进程700的流程图。进程700是示例进程,该进程可以使用在例如计算机网络系统100中所示的例如虚拟来宾124的来宾执行环境中安装和/或运行的来宾数据管理应用程序来实现。一般而言,进程700可以由至少一个处理器例如主机计算设备120来实现,在所述至少一个处理器上虚拟化应用程序122正在运行,并提供具有来宾操作系统的来宾执行环境,在该来宾操作系统中已经安装了来宾数据管理应用程序125并正在运行。
112.在710处,来宾数据管理应用程序125可以被配置成存储至少一个来宾加密密钥。所述至少一个来宾加密密钥可以以来宾执行环境中的来宾数据管理应用程序125能够访问的方式存储。来宾数据管理应用程序125可以存储每个来宾加密密钥,但是使得来宾加密密钥无法被主机执行环境和主机计算设备120的用户访问。
113.所述至少一个来宾加密密钥可以由来宾数据管理应用程序125以加密的方式存储,使得所述至少一个来宾加密密钥仅为来宾数据管理应用程序125所知。所述加密的至少一个来宾加密密钥可以被来宾数据管理应用程序125进一步保护,使得除来宾数据管理应用程序125产生的进程外再也没有其他进程可以访问加密的至少一个来宾加密密钥。也就是说,只有从来宾数据管理应用程序125产生的进程可以被允许访问加密的至少一个来宾加密密钥。从来宾数据管理应用程序125产生的进程可以包括在来宾执行环境中运行的内核进程和非内核进程两者。因此,如果没有来宾数据管理应用程序125,所述至少一个来宾加密密钥对主机是不可用的。也就是说,对所述至少一个来宾加密密钥的访问只能通过来宾数据管理应用程序125获得(并由来宾数据管理应用程序125提供)。这也确保了主机计算设备的用户无法访问所述加密的至少一个来宾加密密钥,更不用说未加密的至少一个来宾加密密钥。
114.在720处,来宾数据管理应用程序125可以识别来自来宾执行环境的尝试性数据传输(尝试性数据传输)。所述尝试性数据传输可以被识别为从来宾应用程序进程到来宾执行环境外部的位置(如主机进程、主机磁盘、外围设备、远程计算机等)。所述来宾应用程序进程可以是在来宾执行环境中运行的多个来宾应用程序进程中的特定来宾应用程序进程。所述尝试性数据传输可以涉及尝试将至少一个数据文件传输到来宾执行环境外部特定位置的特定的来宾应用程序进程。
115.在730处,来宾数据管理应用程序125可以确定在720处识别出的尝试性数据传输中的至少一个数据文件包括安全数据文件。来宾数据管理应用程序125可以基于文件标识数据在所述至少一个数据文件中识别出安全数据文件,所述文件标识数据为例如元数据或相关联的标签,所述文件标识数据将数据文件识别为安全数据文件。
116.在一些情况下,来宾数据管理应用程序可以基于生成数据文件的来宾应用程序进程在至少一个数据文件中识别出安全数据文件。例如,来宾数据管理应用程序可以在来宾执行环境中运行的多个来宾应用程序进程中识别出多个安全来宾应用程序进程。然后,来宾数据管理应用程序可以将安全来宾应用程序进程生成的任何和所有文件识别为安全数
据文件。多个安全来宾应用程序进程可以基于生成这些进程的相应程序来识别。
117.可替选地,来宾数据管理应用程序125可以被配置成确定与来自来宾执行环境中的任何和所有尝试性数据传输相关联的所有数据文件均视为安全数据文件。
118.在740处,来宾数据管理应用程序125可以使用特定的来宾加密密钥对730处识别到的安全数据文件进行加密。所述特定的来宾加密密钥可以是由来宾数据管理应用程序125在710处存储的来宾加密密钥之一。所述特定的来宾加密密钥可以是来宾数据管理应用程序125可访问但是主机120和/或主机的用户不可访问的加密密钥。
119.在750处,来宾数据管理应用程序125可以仅当安全数据文件在740处被加密之后才允许进行尝试性数据传输。来宾数据管理应用程序125可以确保安全数据文件作为加密的安全数据文件从来宾执行环境中传输出来。这能够有助于防止未经授权的第三方访问安全数据文件中包含的信息。
120.在一些示例中,来宾数据管理应用程序125可以对尝试性数据传输中的所有数据文件进行加密,而不管其中一些文件是否是安全数据文件。例如,来宾数据管理应用程序125可以基于尝试性数据传输的目标位置对尝试性数据传输中的所有数据文件进行加密。在一些情况下,如果来宾数据管理应用程序125确定尝试性数据传输的目标位置是外部计算设备,则来宾数据管理应用程序125可以对尝试性数据传输中的所有数据文件进行加密,以确保数据文件中的信息无法被未经授权的第三方(可以包括主机120)拦截。
121.在一些情况下,来宾数据管理应用程序125可以被配置成对所有尝试从来宾执行环境中传输出去的所有数据文件进行加密。这可以提供增强的安全性,以防止来宾执行环境中生成的数据的泄漏。
122.在一些情况下,来宾数据管理应用程序125可以识别不需要对一些数据进行加密的安全目标位置。例如,来宾数据管理应用程序可以识别一个或更多个经许可的外围设备,数据可以以未加密的方式传输到这些外围设备。这可以促进用户在来宾执行环境中工作时使用主机计算设备120。
123.在一些情况下,来宾数据管理应用程序125可以从主机执行环境中运行的多个主机进程中识别出至少一个经许可的主机进程。例如,与虚拟化应用程序122相对应的主机进程可以被来宾数据管理应用程序125识别为经许可的主机进程。这可以促进来宾执行环境以及来宾执行环境中的来宾进程的操作。
124.经许可的主机进程可以包括内核主机进程和非内核主机进程。例如,从虚拟化应用程序122产生的一些进程可以是非内核主机进程。这些非内核主机进程可以被包括在经许可的主机进程列表中,使得例如未加密的图形信息可以从来宾执行环境发送到这些经许可的非内核主机进程,以使图形信息能够被主机计算设备的用户查看。
125.来宾数据管理应用程序125可以被配置成防止任何和所有未加密数据从任何来宾应用程序进程向除包含在多个经许可的主机进程的非内核主机进程之外的任何非内核主机进程传输。同时,来宾数据管理应用程序125可以被配置成允许未加密数据从非内核主机进程向任何来宾应用程序进程传输。
126.在一些情况下,来宾数据管理应用程序125可以被配置成禁止/防止任何数据从一个或更多个非内核主机进程向任何来宾应用程序进程传输。例如,如果共享文件夹在两个方向都被禁止,则来宾数据管理应用程序125可以被配置成防止从windows资源管理器程序
中产生的进程将任何数据向来宾执行环境中运行的任何来宾应用程序进程传输。
127.现在参考图2,在图2中示出的是根据实施方式的主机计算系统200的示例。如图2所示,主机计算系统200包括主机220。主机220提供了主机执行环境。主机220包括主机磁盘232。主机磁盘232通常代表可用于主机220(以及通过主机220可用于虚拟来宾224)的存储装置,所述存储装置来自可通过主机220访问的基础硬件。
128.虚拟化应用程序222在主机执行环境中运行。虚拟化应用程序222提供限定来宾执行环境的虚拟来宾224。一个或更多个来宾应用程序进程226在虚拟来宾224的来宾执行环境中运行。虚拟来宾224还包括来宾磁盘230。来宾磁盘230通常代表可以由虚拟化应用程序222提供的磁盘存储装置的虚拟化表示。虚拟化应用程序222可以提供或模拟可用来在来宾执行环境中存储和检索数据的文件存储装置接口。当数据写入来宾磁盘230时,虚拟化应用程序222又可以将数据写入主机磁盘232以进行存储。同样地,当从来宾执行环境中的来宾磁盘230检索数据时,虚拟化应用程序222可以读取主机磁盘232的数据。
129.在计算机网络系统200的示例中,包括磁盘过滤器228的来宾数据管理应用程序正在来宾执行环境中运行。磁盘过滤器228可以被配置成为来宾执行环境224中运行的来宾应用程序进程226管理磁盘访问。
130.在操作中,来宾进程226可以尝试将数据写入来宾磁盘230(可以被称为尝试性写入操作的尝试性数据传输)。磁盘过滤器228可以被配置成在尝试性写入操作中拦截数据(例如一个或更多个数据文件)。然后,磁盘过滤器228可以在存储到来宾磁盘230之前对一个或更多个数据文件进行加密。然后,只有在被加密后,一个或更多个加密文件才能存储到来宾磁盘230中。然后,虚拟化应用程序222进而可以将加密文件写入主机磁盘232。这可以确保来自虚拟来宾224的明文文件(也称为原文或解密文件)不被存储在主机磁盘232上。相反,虚拟来宾224生成的数据只能以加密的形式存储在主机磁盘232上,这种加密的形式也称为密文。
131.如上所述,磁盘过滤器228可以使用主机220不可用的加密密钥来对数据文件进行加密。这可以确保存储在主机磁盘232上的来宾执行环境224中文件的信息不能被主机220或主机220的用户访问。
132.在操作中,来宾进程226也可以尝试读取来宾磁盘230的数据。这种情况发生时,虚拟化应用程序222可以将数据从主机磁盘232读取到来宾磁盘230。在一些情况下,所读取数据可以包括先前从来宾执行环境存储的加密数据文件。磁盘过滤器228可以确定所读取数据中的一个或更多个数据文件是加密数据文件。磁盘过滤器228可以对来宾磁盘230上的数据中的加密数据文件进行解密(使用上述加密密钥),以生成解密或明文数据文件。然后可以将解密数据文件传递到来宾进程226。
133.在一些情况下,磁盘过滤器228可以被配置成对来宾进程226尝试写入来宾磁盘230的所有数据文件进行拦截和加密。另外,磁盘过滤器230可以仅对已识别为安全数据文件的数据文件进行加密。
134.在一些情况下,可以使用与数据文件相关联的文件标识数据例如文件中包含的元数据来识别安全数据文件。可替选地或另外地,磁盘过滤器228可以识别来宾操作系统中运行的一个或更多个安全来宾应用程序。然后,磁盘过滤器228可以根据生成数据文件的或正在试图存储数据文件的来宾应用程序进程确定该数据文件是否是安全数据文件。磁盘过滤
器228可以确定与尝试性数据传输例如尝试性写入操作相关联的特定来宾应用程序进程对应于安全来宾应用程序之一。然后,响应于确定特定的来宾应用程序进程来自安全来宾应用程序,则磁盘过滤器228可以将尝试性数据传输中的所有数据文件识别为安全数据文件。
135.磁盘过滤器228可以维护安全来宾应用程序的列表(即来宾程序的白名单)。当来宾进程226尝试将数据文件写入来宾磁盘230时,磁盘过滤器228可以拦截该数据文件。然后,磁盘过滤器228可以检查进程226是否是从白名单中识别的安全来宾程序产生的(即,实例)。
136.如果磁盘过滤器228确定进程226对应于安全来宾程序,则磁盘过滤器228可以使用如上所述的主机不可用的加密密钥对数据文件进行加密。磁盘过滤器228还可以对加密数据文件包括文件标识数据。文件标识数据可以将文件识别为加密数据文件(即,磁盘过滤器228可以将数据标记为加密的)。然后,磁盘过滤器228可以将加密数据文件(包括文件标识数据)传递给来宾磁盘230。然后,虚拟化软件222可以将来宾磁盘230中的加密数据文件写入主机磁盘232。
137.如果磁盘过滤器228确定进程226不对应于安全来宾程序,则磁盘过滤器228可以将文件标识数据与数据文件包括在一起,所述文件标识数据将文件识别为原文(未加密的)数据文件(即磁盘过滤器228可以将数据文件标记为原文)。然后,磁盘过滤器228可以将原文数据文件传递到来宾磁盘230。然后,虚拟化软件222可以将来宾磁盘230中的原文数据文件写入主机磁盘232。
138.当来宾进程226尝试从来宾磁盘230读取数据时,虚拟化软件222可以将主机磁盘232中的数据读取到来宾磁盘230中。然后,该数据会被磁盘过滤器228拦截。磁盘过滤器228可以通过检查文件标识数据来确定数据是否是加密数据文件。例如,如果数据被标记为加密,则磁盘过滤器228可以确定该数据文件是加密的,如果数据被标记为原文,磁盘过滤器228可以确定数据文件是原文。如果磁盘过滤器228确定数据文件是原文,则可以将数据文件直接传递到请求进程226。如果磁盘过滤器228确定数据文件是加密的,则磁盘过滤器228使用主机不可用的加密密钥对数据进行解密,以生成解密数据文件。然后,磁盘过滤器228可以将解密数据文件传递给请求进程226。
139.现在参考图3,在图3中示出的是计算机网络系统300的示例。计算机网络系统300包括主机计算设备320、虚拟化应用程序322和虚拟来宾324。为了便于阐述,这里不再重复如上所述的与计算机网络系统100和计算机网络系统200相关的主机计算设备、虚拟化应用程序和虚拟来宾的特征。然而,应该理解的是,这些特征可以与具体描述的与主机计算设备320、虚拟化应用程序322和虚拟来宾324相关的特征结合使用。
140.图3示出了虚拟来宾324的示例,在虚拟来宾324中在其上运行的来宾数据管理应用程序包括在来宾执行环境中安装的网络过滤器336。网络过滤器336可以被配置成使虚拟来宾324以及在虚拟来宾324的来宾执行环境中运行的来宾进程326能够安全地与外部计算设备和外部服务器进行通信。
141.在计算机网络系统300的示例中,虚拟来宾324和来宾进程326可以被配置成通过经许可的中继服务器(在此示例中,隧道服务器308)与经许可的外部计算设备(例如外部计算设备302t)进行通信。隧道服务器308可以包括网络适配器342,所述网络适配器342能够操作成促进与第一子网306a和第二子网306b的通信以及第一子网306a和第二子网306b的
通信。
142.隧道客户端334可以安装在虚拟来宾324中。隧道客户端324能够操作成使得能够与隧道服务器308进行通信。隧道客户端324和隧道服务器308上运行的隧道服务可以被配置成向虚拟来宾324提供对经许可的外部计算设备例如计算设备302t的私有子网访问。
143.网络过滤器336可以被配置成管理虚拟来宾324与外部服务器和外部计算设备之间的通信。网络过滤器336可以被配置成防止数据传输到除已识别为安全或经许可的外部计算设备之外的任何外部计算机。
144.如计算机网络系统300所示,经由主机计算设备320和外部计算机网络例如第一子网306a和第二子网306b(经由隧道服务器308),可以将虚拟来宾324的来宾执行环境与外部计算设备302t和外部计算设备302b耦合。网络过滤器336可以被配置成识别至少一个经许可的外部计算设备。例如,可以基于地址数据(如与机构相关联的经许可的目标地址的范围)识别出经许可的外部计算设备。
145.例如,可以将计算设备302t识别为经许可的外部计算设备。网络过滤器336可以被配置成防止在来宾执行环境与除了经许可的外部计算设备(例如计算设备302t)之外的任何外部计算设备(如计算设备302b)之间的文件传输。
146.在一些情况下,网络过滤器336可以被配置成基于通信中涉及的外部中继服务器来控制虚拟来宾324与进程326之间的通信。例如,网络过滤器336可以被配置成将数据传输限制在虚拟来宾324与经许可的外部服务器之间的通信。网络过滤器336可以只允许虚拟来宾324和与机构相关联的外部服务器之间的数据传输,以防止数据泄漏。
147.网络过滤器336可以被配置成识别至少一个经许可的外部中继服务器(例如,隧道服务器308)。可以基于地址数据(例如,与机构相关联的经许可的服务器地址的范围)识别出经许可的外部中继服务器。网络过滤器336可以被配置成防止在来宾执行环境与除了经许可的外部中继服务器之外的任何中继服务器之间进行文件传输。因此,网络过滤器336可以被配置成防止在来宾执行环境与除了和经许可的外部中继服务器之一相关联的外部计算设备之外的任何外部计算设备之间进行文件传输(即,只有当传输是通过经许可的中继服务器被路由时,才会允许到外部计算设备的这些传输)。
148.例如,网络过滤器336可以被配置成仅允许具有属于第一子网306a上经许可的隧道服务器308的目标地址的传出包(即从虚拟来宾324发送的包)被传到网络适配器338(并由此传到网络适配器340和第一子网306a)。在一些情况下,网络过滤器336可以被配置成仅允许具有属于第一子网306a上的经许可的隧道服务器308的源地址的传入包(即发送到虚拟来宾324的包)从网络适配器338传到来宾进程326。
149.来宾数据管理应用程序还可以包括隧道客户端334。隧道客户端334可以被配置成与隧道服务310配合,以限定虚拟来宾324和隧道服务器308之间的安全通信通道。隧道客户端334可以被配置成经由主机计算设备320与外部中继服务器(即经许可的外部中继服务器308)交换至少一个来宾加密密钥,而使加密密钥对于主机320不可用。隧道客户端334可以被配置成通过主机320的主机执行环境与隧道服务器308交换至少一个来宾加密密钥,而不将所述至少一个来宾加密密钥暴露于虚拟来宾324的来宾执行环境之外的主机执行环境。例如,当虚拟来宾324启动时,隧道客户端334可以通过主机320和第一子网306a使用防止中间人攻击的标准密钥交换技术,来对加密密钥进行验证并且与隧道服务器308上的隧道服
务310交换加密密钥。
150.网络过滤器336可以被配置成识别以尝试外部文件传输的形式从给定的来宾应用程序进程326到给定的外部计算设备(如计算设备302b或计算设备302t)的尝试性数据传输。所述尝试外部文件传输可以涉及给定的来宾应用程序进程326尝试通过主机320的主机执行环境尝试将至少一个给定的数据文件传输到给定的外部计算设备(例如,计算设备302b或计算设备302t)。网络过滤器336可以被配置成基于尝试外部文件传输的目标地址来允许或防止尝试外部文件传输。
151.例如,当来宾进程326尝试将数据发送到第二子网306b上的计算设备302t(即到计算设备302t的尝试性外部文件传输)时,隧道客户端334可以组合数据传输包。所述数据传输包可以包括内部包,该内部包括作为有效载荷的数据;作为源地址的第二个子网306b上虚拟来宾324的地址;作为目标地址的第二子网306b上计算设备302t的地址。隧道客户端334可以使用与隧道服务310交换的加密密钥对内部包进行加密。隧道客户端334可以进一步对外部包进行组合,该外部包包括:作为有效载荷的加密内部包;作为源地址的第一子网306a上虚拟来宾324的地址;作为目标地址的第一子网306a上隧道服务器308的地址。网络过滤器336可以检查所述外部包,以确定是否允许进行尝试性数据传输。因为外部包的目标地址属于第一子网306a上经许可的隧道服务器308,所以网络过滤器336可以允许尝试性数据传输。然后,可以将所述外部包发送到虚拟来宾324的网络适配器338。然后,虚拟化软件322可以将外部包转发到主机320的网络适配器340,给网络适配器340进而可以通过第一子网306a将外部包发送到隧道服务器308。在接收到外部包后,隧道服务器308上的隧道服务310可以将外部包分解成加密的内部包,使用与隧道客户端334交换的加密密钥对内部包进行解密,然后将解密的内部包转发到第二子网306b上的计算设备302t。
152.在一些情况下,网络过滤器336可以确定给定的外部计算设备与经许可的外部中继服务器无关。然后,响应于确定预期的目标计算设备与经许可的外部中继服务器无关,网络过滤器336可以防止来宾进程326将至少一个给定的数据文件传输到来宾执行环境外部的任何位置。这可以防止到尚未被识别为经许可的给定外部计算设备的尝试性外部文件传输。这可以防止通过向未经授权的计算设备传输可能发生的数据泄漏。
153.例如,当来宾进程326尝试将数据发送到第一子网306a上的计算设备302b(即,到计算设备302b的尝试性外部文件传输)时,隧道客户端334可以组合数据传输包。所述数据传输包可以包括:作为有效载荷的数据,作为源地址的第一子网306a上虚拟来宾324的地址作,以及作为目标地址的第一子网306a上计算设备302b的地址。然后,隧道客户端334可以将数据传输包转发到网络过滤器336进行检查。网络过滤器336可以检查数据传输包,以确定是否允许进行尝试性数据传输。因为所述数据传输包的目标地址不属于经许可的外部设备(即第一子网306a上经许可的中继服务器308),网络过滤器336会阻止该包,从而防止所述尝试外部文件传输。
154.网络过滤器336还可以被配置成管理到虚拟来宾324的传入文件传输。网络过滤器336可以识别来自特定外部计算设备(如外部计算设备302t或外部计算设备302b)的传入文件传输。所述传入文件传输可以包括从特定外部计算设备通过主机320的主机执行环境(如通过网络适配器340)传输的至少一个特定数据文件。网络过滤器336可以基于传入文件传输的源地址来确定是否允许传入文件传输传递到来宾进程326。
155.例如,计算设备302t可以将传入文件传输传输到来宾进程326。计算设备302t可以组合数据传输包,该数据传输包包括内部包,该内部包包括:作为有效载荷的数据;作为源地址的第二子网306b上计算设备302t的地址;以及作为目标地址的第二子网306b上的虚拟来宾324的地址。计算设备302t然后可以通过第二子网306b将内部包发送到隧道服务器308。在接收到内部包后,隧道服务器308上的隧道服务310可以使用与隧道客户端334交换的加密密钥对内部包进行加密,并且以加密的内部包作为有效载荷、以第一子网306a上隧道服务器308的地址作为源地址、以第一子网306a上虚拟来宾324的地址作为目标地址来组合外部包。然后,隧道服务310可以通过第一子网306a向主机320发送外部包。在接收到外包后,主机320可以通过虚拟化软件322将外部包转发给虚拟来宾324的网络适配器338。然后,外部包可以被提供给网络过滤器336。
156.在接收到外部包后,网络过滤器336可以检查该包。网络过滤器336可以确定传入文件传输是来自与经许可的外部中继服务器相关联的特定外部计算设备,因为该包的源地址属于第一子网306a上的隧道服务器308。网络过滤器336然后可以将外部包传递给隧道客户端334。
157.然后,隧道客户端334可以将外部包分解成加密的内部包(加密的传入数据传输),并对内部包进行解密。隧道客户端334可以识别与加密的内部包相对应的至少一个传输特定的加密密钥(例如,基于与加密的内部包一起包括的密钥识别数据)。所述至少一个传输特定的加密密钥可以是与隧道服务器308上的隧道服务310交换的加密密钥之一。然后,隧道客户端334可以使用所述至少一个传输特定的加密密钥对加密的传入数据传输进行解密,以提取解密的内部包。然后,隧道客户端334可以将解密的内部包传递给来宾进程326。
158.在一些情况下,网络过滤器336可以确定与传入文件传输相关的特定外部计算设备与经许可的外部中继服务器无关。作为回应,网络过滤器336可以防止传入文件传输中的至少一个特定数据文件被任何来宾应用程序进程326访问。这可以防止恶意数据或代码渗透到虚拟来宾324提供的隔离工作空间。
159.例如,第一子网206a上的计算设备302b可以尝试将数据传输到来宾进程326。然而,网络过滤器336可以防止传入的文件传输被任何来宾进程326访问。
160.当第一子网306a上的计算设备302b向来宾进程326发送数据时,计算设备302b可以组合数据传输包,所述数据传输包包括作为有效载荷的数据;作为源地址的第一子网306a上计算设备302b的地址;作为目标地址的第一子网306a上虚拟来宾324的地址。计算设备302b然后可以通过第一子网306a将数据传输包发送到主机320。在接收到数据传输包后,主机320可以通过虚拟化软件322将该包转发给虚拟来宾324。然后,该包可以被转发到网络过滤器336。网络过滤器336可以检查该包,并确定与传入文件传输相关联的特定外部计算设备302b与经许可的外部中继服务器308无关。因为该包的源地址不属于第一子网306a上的隧道服务器308(而是属于第二计算设备302b),所以该包会被网络过滤器336阻止。因此,可以防止来宾进程326a访问传入的文件传输。
161.现在参考图4,在图4中示出的是计算机网络系统400的示例。计算机网络系统400包括主机计算设备420,虚拟化应用程序422和虚拟来宾424。为了便于阐述,这里不再重复上述的与计算机网络系统100、计算机网络系统200和计算机网络系统300相关的主机计算设备、虚拟化应用程序和虚拟来宾的特征。然而,应该理解的是,这种特征可以与具体描述
的与主机计算设备420、虚拟化应用程序422和虚拟来宾424相关的特征结合使用。
162.图4示出了虚拟来宾424的另外的示例,在该虚拟来宾424中在其上运行的来宾数据管理应用程序包括来宾执行环境中安装的网络过滤器436。网络过滤器436可以被配置成管理虚拟来宾424与外部服务器和外部计算设备之间的通信。与网络过滤器336类似,网络过滤器436可以被配置成使虚拟来宾424以及在虚拟来宾424的来宾执行环境中运行的来宾进程426能够与经许可的外部计算设备和经许可的外部服务器安全地通信。
163.计算机网络系统400示出了当与计算机网络系统300的隧道服务器308相比,中继服务器是网关404的情况下网络过滤器436的运行的示例。在计算机网络系统400的示例中,虚拟来宾424和来宾进程426可以被配置成通过网关服务器408与经许可的外部计算设备(例如外部计算设备402t)进行通信。网络过滤器436可以被配置成将网关404识别为经许可的外部中继服务器。
164.网关404可以包括网络适配器442,所述网络适配器442能够操作成促进与第一子网406a和第二子网406b的通信以及在第一子网406a与第二子网406b之间的通信。在计算机网络系统400中,网络过滤器444也在网关404上安装或启用。服务器网络过滤器444和来宾网络过滤器436可以被配置成协作限定虚拟来宾424与网关404之间的安全通信通道。虚拟来宾424的网络过滤器436可以被配置成经由主机计算设备420与网关404上的网络过滤器444交换至少一个来宾加密密钥,而使加密密钥对于主机不可用。例如,当虚拟来宾424启动时,网络过滤器436可以通过主机420和第一子网406a使用防止中间人攻击的标准密钥交换技术,来对加密密钥进行验证并且与网关404上的网络过滤器444交换加密密钥。
165.计算机网络系统400中网络过滤器436的具体操作可以根据网关404上的网络地址转换是启用还是禁用而变化。当网关404上的网络地址转换被禁用时,网络过滤器436可以被配置成只允许对具有属于第二子网406b上的计算设备的目标地址的传出包(即从来宾进程426发送的包)进行尝试外部文件传输。类似地,网络过滤器436可以被配置成只允许来自具有属于第二子网406b上计算设备的源地址的传入包(即发送到虚拟来宾424的包)进行传入文件传输。
166.例如,当来宾进程426尝试向第二子网406b上的计算设备402t发送数据时(即,到计算设备402t的尝试性外部文件传输),虚拟来宾424可以组合数据传输包。该数据传输包可以包括作为有效载荷的数据;作为源地址的第一子网406a上虚拟来宾424的地址;以及作为目标地址的第二子网406b上计算设备402t的地址。网络过滤器436可以拦截数据传输包,以确定是否允许进行尝试性数据传输。因为数据传输包的目标地址属于第二子网406b上的计算设备402a,因此网络过滤器436可以允许所述尝试外部文件传输。网络过滤器436可以使用与网关404上的网络过滤器444交换的加密密钥对有效载荷进行加密。然后,带有加密的有效载荷的数据传输包可以被发送到虚拟来宾424的网络适配器438。然后,虚拟化软件422可以将数据传输包转发到主机420的网络适配器440,该网络适配器440进而可以通过第一子网406a将数据传输包发送到网关404。
167.在接收到该包后,网关404上的网络过滤器444可以检查数据传输包的源地址。因为源地址对应于虚拟来宾424,所以网络过滤器444可以使用与网络过滤器436交换的加密密钥对有效载荷进行解密,并将带有解密的有效载荷的数据传输包转发到在第二子网406b上的计算设备402t。
168.替选地,网络过滤器436可以确定给定的外部计算设备与经许可的外部中继服务器无关,并防止来宾进程426的尝试性数据传输。例如,当来宾进程426尝试发送数据给第一子网406a上的计算设备402b(即到计算设备402b的尝试性外部文件传输)时,所述数据传输包可以与第一子网406a上计算设备402b的目标地址组合在一起。网络过滤器436因此可以防止该尝试性数据传输,这是因为目标地址不属于第二子网406b上的计算设备。
169.网络过滤器436也可以被配置成管理向虚拟来宾424的传入文件传输。网络过滤器436可以被配置成根据传入文件传输的源地址来允许传入文件传输传递到来宾进程426。
170.例如,计算设备402t可以将传入文件传输传输到到来宾进程426。计算设备402t可以组合数据传输包,该数据传输包包括:作为有效载荷的数据;作为源地址的第二子网406b上计算设备402t的地址;以及作为目标地址的第一子网406a上虚拟来宾424的地址。然后,计算设备402t可以通过第二子网406b将数据传输包发送到网关404。在接收到数据传输包后,网关404上的网络过滤器444可以检查数据传输包的目标地址。响应于确定目标地址对应于第一子网406a上的虚拟来宾424,网络过滤器444可以使用与网络过滤器436交换的加密密钥对数据传输包的有效载荷进行加密。然后,网络过滤器444可以通过第一子网406a、主机420的网络适配器440和虚拟化软件422将具有加密的有效载荷的数据传输包转发给虚拟来宾424。
171.在虚拟来宾424中,网络过滤器436可以在数据传输包到达任何来宾过程426之前拦截数据传输包。然后,网络过滤器436可以检查该包。网络过滤器436可以确定传入文件传输来自与经许可的外部中继服务器相关的特定外部计算设备,这是因为该包的源地址属于第二子网406b上的计算设备402t。然后,网络过滤器436可以对有效载荷进行解密。然后,带有解密的有效载荷的包可以被转发到来宾进程426。
172.相比之下,当第一子网406a上的计算设备402b向虚拟来宾424发送数据传输包时,网络过滤器434可以被配置成阻止与第一子网406a上计算设备402b的地址组合的任何包,这是因为源地址不属于第二子网406b上的任何计算设备。
173.当网关404上的网络地址转换被启用时,第二子网406b上计算设备的地址被转换为第一子网406a上网关404的地址。相应地,网络过滤器436可以被配置成只允许对具有属于第一子网406a上网关404的目标地址的传出包(即从来宾进程426发送的包)进行尝试外部文件传输。类似地,网络过滤器436可以被配置成仅允许来自具有属于第一子网406a上网关404的源地址的传入包(即发送到虚拟来宾424的包)进行传入文件传输。
174.例如,当来宾进程426尝试向子网406b上的计算设备402t发送数据(即,向计算设备402t的尝试性外部文件传输)时,虚拟来宾424可以组合数据传输包。所述数据传输包可以包括作为有效载荷的数据;作为源地址的第一子网406a上虚拟来宾424的地址;以及作为目标地址的第一子网406a上网关404的地址。网络过滤器436可以拦截数据传输包以确定是否允许进行尝试性数据传输。因为数据传输包的目标地址属于第一子网406a上的网关404,因此网络过滤器436可以允许尝试性数据传输。网络过滤器436可以使用与网关404上的网络过滤器444交换的加密密钥对有效载荷进行加密。然后,带有加密的有效载荷的数据传输包可以被发送到虚拟来宾424的网络适配器438。然后,虚拟化软件422可以将数据传输包转发到主机420的网络适配器440,网络适配器440进而可以通过第一子网406a将数据传输包发送到网关404。
175.在接收到该包后,网关404上的网络过滤器444可以检查数据传输包的源地址。因为源地址对应于虚拟来宾424,所以网络过滤器444可以使用与网络过滤器436交换的加密密钥解密有效载荷。网络过滤器444还可以用第二子网406b上计算设备402t的地址替换目标地址。然后,网络过滤器444可以将带有解密有效载荷的数据传输包转发到第二子网406b上的计算设备402t。
176.相比之下,当来宾进程426尝试将数据发送到第一子网406a上的计算设备402b(即向计算设备402b的尝试性外部文件传输)时,数据传输包可以与第一子网406a上计算设备402b的目标地址组合。网络过滤器436因此可以防止该尝试性数据传输,这是因为目标地址不属于第一子网406a上的网关404。
177.网络过滤器436还可以被配置成当启用网关404上的网络地址转换时,管理向虚拟来宾424的传入文件传输。
178.例如,计算设备402t可以将传入文件传输传输到来宾进程426。计算设备402t可以组合数据传输包,该数据传输包包括:作为有效载荷的数据;作为源地址的第二子网406b上计算设备402t的地址;以及作为目标地址的第一子网406a上虚拟来宾424的地址。然后,计算设备402t可以通过第二子网406b向网关404发送数据传输包。在接收到数据传输包后,网关404上的网络过滤器444可以检查数据传输包的目标地址。响应于确定目标地地址对应于第一子网406a上的虚拟来宾424,网络过滤器444可以使用与网络过滤器436交换的加密密钥对数据传输包的有效载荷进行加密。网络过滤器444还可以使用第一子网406a上网关404的地址替换源地址。然后,网络过滤器444可以通过第一子网406a、主机420的网络适配器440和虚拟化软件422将具有加密的有效载荷的数据传输包转发给虚拟来宾424。
179.在虚拟来宾424中,网络过滤器436可以在数据传输包到达任何来宾进程426之前拦截数据传输包。网络过滤器436然后可以检查该包。网络过滤器436可以确定传入文件传输来自与经许可的外部中继服务器相关联的特定外部计算设备,这是因为该包的源地址属于第一子网406a上的网关404。网络过滤器436然后可以解密有效载荷。然后,所述带有解密的有效载荷的包可以被转发到来宾进程426。
180.相比之下,当第一子网406a上的计算设备402b向虚拟来宾424发送数据传输包时,网络过滤器434可以被配置成阻止与第一子网406a上计算设备402b的地址组合的任何包,这是因为源地址不属于第一子网406a上的网关404。
181.现在参考图5,在图5中示出的是计算机网络系统500的示例。计算机网络系统500包括主机计算设备520、虚拟化应用程序522和虚拟来宾524。为了便于阐述,在此不再重复上述与计算机网络系统100、计算机网络系统200、计算机网络系统300和计算机网络系统400有关的主机计算设备、虚拟化应用程序和虚拟来宾的特征。然而,应该理解的是,这种特征可以与具体描述的与主机计算设备520、虚拟化应用程序522和虚拟来宾524相关的特征结合使用。
182.如计算机网络系统500所示,来宾数据管理应用程序包括安装在虚拟来宾524的来宾执行环境中并在虚拟来宾524的来宾执行环境中运行的剪贴板管理器550。剪贴板管理器550可以被配置成管理从主机520上的进程554复制数据并将该数据粘贴到虚拟来宾524上的进程526。剪贴板管理器550还可以被配置成管理从虚拟来宾524上的进程526复制数据并将该数据粘贴到主机520上的进程554。
183.主机剪贴板管理器552也在主机执行环境520中运行。当数据从主机520上的主机进程554复制到主机520的剪贴板时,主机520上的剪贴板管理器552可以拦截该数据。然后,主机剪贴板管理器552可以通过虚拟化软件522将复制的数据转发给虚拟来宾524的剪贴板管理器550。在接收到复制的数据后,虚拟来宾524的剪贴板管理器550可以将该数据转发给虚拟来宾524的剪贴板。然后,虚拟来宾524的剪贴板可以允许将该复制的数据粘贴到来宾进程526。
184.剪贴板管理器550还可以被配置成防止从虚拟来宾524上的进程526复制数据以及将数据粘贴到主机520上的进程554。在一些情况下,剪贴板管理器550可以被配置成从不将虚拟来宾524剪贴板中的数据转发到主机520的剪贴板。
185.现在参考图6,在图6中示出的是计算机网络系统600的示例。计算机网络系统600包括主机计算设备620、虚拟化应用程序622和虚拟来宾624。为了便于阐述,这里不再重复上述的与计算机网络系统100、计算机网络系统200、计算机网络系统300、计算机网络系统400和计算机网络系统500相关的主机计算设备、虚拟化应用程序和虚拟来宾的特征。然而,应该理解的是,这种特征可以与具体描述的与主机计算设备620、虚拟化应用程序622和虚拟来宾624相关的特征结合使用。
186.如计算机网络系统600所示,来宾数据管理应用程序包括安装在虚拟来宾624的来宾执行环境中并在虚拟来宾624的来宾执行环境中运行的硬件设备过滤器656。所述设备过滤器656可以被配置成管理虚拟来宾624上的进程626与外围设备658之间的数据传输。
187.在一些示例中,设备过滤器656可以被配置成识别联接到主机执行环境620的至少一个经许可的外围设备。例如,经许可的外围设备658可以是:输出设备,例如,联接到主机计算设备的视觉显示器或扬声器;或者输入设备,例如鼠标。在一些情况下,设备过滤器656可以维护经许可的外围设备的白名单,以识别允许哪些外围设备从虚拟来宾624上的进程626接收未加密的数据传输。
188.设备过滤器656可以被配置成:防止来宾执行环境与除了经许可的外围设备之外的任何外围设备658之间进行未加密数据传输。设备过滤器656可以被配置成:拦截来宾进程626和外围设备658之间所有的尝试性文件传输,以确保仅允许进行经许可的数据传输。
189.例如,来宾进程626可以尝试将数据发送到虚拟来宾624能够访问的外围设备658(到外围设备的尝试性数据传输)。设备过滤器656可以在尝试性数据传输离开虚拟来宾624之前对该尝试性数据传输进行拦截。设备过滤器656可以被配置成确定目标外围设备是否是经许可的外围设备(例如,通过检查经许可的外围设备的白名单)。响应于确定目标外围设备是经许可的外围设备,设备过滤器656可以将尝试性数据传输中的数据转发给经许可的外围设备。所述尝试性数据传输中的数据可以以未加密/原文的方式被转发。
190.在一些情况下,设备过滤器656可以确定目标外围设备不是经许可的外围设备。响应于确定目标外围设备不是经许可的外围设备,设备过滤器656可以对尝试性文件传输中的数据进行加密。可以使用由来宾数据管理应用程序存储的加密密钥对该数据进行加密,而该加密密钥却不可用于主机620。然后可以将所述加密的数据转发到外围设备。
191.设备过滤器656还可以拦截从外围设备656到来宾进程626的尝试性传入文件传输。设备过滤器656可以确定所述尝试性传入文件传输是否是从经许可的外围设备接收的(如,使用外围设备白名单)。响应于确定尝试性传入文件传输是从作为经许可的外围设备
的外围设备接收的,设备过滤器656可以转发尝试性传入文件传输中的数据。
192.可替选地,设备过滤器656可以确定尝试性传入文件传输来自作为不是经许可的外围设备的外围设备。响应于确定尝试性传入文件传输来自作为不是经许可的外围设备的外围设备,设备过滤器656可以对尝试性传入文件传输中的数据进行解密。然后,设备过滤器656可以将该解密数据传递到来宾进程626。
193.在一些情况下,设备过滤器656可以被配置成:防止来宾执行环境与除了经许可的外围设备之外的任何外围设备658之间的所有数据传输。响应于确定尝试性数据传输旨在用于不是经许可的外围设备的外围设备,设备过滤器656可以防止/阻止该尝试性数据传输。类似地,响应于确定尝试性传入文件传输是从不是经许可的外围设备的外围设备接收的,设备过滤器656可以防止/阻止该尝试性文件传输到达来宾进程626。
194.可以理解的是,本文描述的用于提供隔离工作空间的系统和进程以及实现所述方法/过程的模块、例程、进程、线程或其他软件组件可以使用标准的计算机编程技术和语言实现。本技术不限于特定的处理器、计算机语言、计算机编程惯例、数据结构、其他此类实现细节。本领域的技术人员将认识到,所述方法/过程可以作为存储在易失性或非易失性存储器中的计算机可执行代码的一部分、作为专用集成芯片(asic)的一部分等来实现。
195.对于本领域的技术人员来说明显的是,在主机计算设备120、主机计算设备220、主机计算设备320、主机计算设备420、主机计算设备520和主机计算设备620的上下文中所述的主机的特征通常可以根据计算机网络系统的特定应用程序而被组合和/或交换。
196.对于本领域的技术人员来说明显的是,在虚拟化软件122、虚拟化软件222、虚拟化软件322、虚拟化软件422、虚拟化软件522和虚拟化软件622的上下文中所描述的虚拟化应用程序的特征通常可以根据计算机网络系统的特定应用程序进行组合和/或交换。
197.对于本领域的技术人员来说明显的是,在虚拟来宾124、虚拟来宾224、虚拟来宾324、虚拟来宾424、虚拟来宾524和虚拟来宾624的上下文中所描述的虚拟来宾的特征通常可以根据计算机网络系统的特定应用程序进行组合和/或交换。
198.对于本领域的技术人员来说明显的是,可以对所描述的方法进行某些调整和修改,并且上述讨论的用于提供隔离工作空间的系统和方法的实施方式应该被认为是说明性的,而不是限制性的。
199.虽然上述描述了示例性实施方式的特征,但可以理解的是,在不背离所描述的实施方式的精神和操作原理的情况下,所描述的实施方式的一些特征和/或功能是可以修改的。例如,通过所代表的实施方式或示例所描述的各种特征可以有选择地相互结合。在其他情况下,众所周知的方法、程序和组件没有被详细描述,以避免使对实施方式的描述模糊。因此,上面所述的内容是为了说明所要求保护的概念,并且是非限制性的。本领域的技术人员可以理解,在不偏离本文所附权利要求书中定义的本发明范围的情况下,可以做出其他的变型和修改。权利要求的范围不应受到优选实施方式和示例的限制,而应给予与整体描述相一致的最广泛的解释。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献