CN112313652A - 用于经由嵌入式浏览器提供数据丢失防护的系统和方法 - Google Patents

用于经由嵌入式浏览器提供数据丢失防护的系统和方法 Download PDF

Info

Publication number
CN112313652A
CN112313652A CN201980039496.4A CN201980039496A CN112313652A CN 112313652 A CN112313652 A CN 112313652A CN 201980039496 A CN201980039496 A CN 201980039496A CN 112313652 A CN112313652 A CN 112313652A
Authority
CN
China
Prior art keywords
application
data
client
access
secure
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.)
Pending
Application number
CN201980039496.4A
Other languages
English (en)
Inventor
C·弗莱克
J·丽维拉
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems 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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN112313652A publication Critical patent/CN112313652A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5683Storage of data provided by user terminals, i.e. reverse caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Abstract

所描述的实施例提供了用于经由嵌入式浏览器提供数据丢失防护的系统和方法。进程间通信(IPC)管理器可以与嵌入式浏览器接口以根据策略控制数据从第一应用到第二应用的传输。IPC管理器可以检测存储经由嵌入式浏览器在第一应用上访问的数据的命令,并将该数据存储到安全容器上。所述安全容器可以专用于嵌入式浏览器。IPC管理器可以随后检测从安全容器检索数据并将数据复制到第二应用上的命令。IPC管理器可以确定应用于数据的策略。该策略可以指定是否允许将来自第一应用的数据复制到第二应用上。IPC管理器可以随后将数据复制到第二应用上。

Description

用于经由嵌入式浏览器提供数据丢失防护的系统和方法
相关申请的交叉引用
本申请要求于2018年5月4日提交的题为“SYSTEM AND METHODS FOR PROVIDINGDATA LOSS PREVENTION VIA AN EMBEDDED BROWSER”的美国临时专利申请No.62/667,199的优先权,其全部内容通过引用合并于此。
技术领域
本申请总体上涉及数据丢失防护,包括但不限于用于经由嵌入式浏览器提供数据丢失防护的系统和方法。
背景技术
数据缓冲区(有时称为剪贴板)可用于将从应用选择的数据临时存储在存储器中,以备将来使用。根据命令,可以将临时存储的数据传输到或复制到其他应用上。
发明内容
提供本发明内容以简化形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容既不旨在标识关键特征或必要特征,也不旨在限制随附的权利要求的范围。
具有嵌入式浏览器(CEB)的客户机应用可用于访问托管在各种服务器上的应用和资源。这些应用可以包括,例如,经由浏览器访问的web应用、云托管的应用(例如,作为软件即服务(SaaS)、基础设施即服务(IaaS)、和平台即服务(PaaS)的一部分)、和托管在虚拟机上的虚拟应用等等。可以选择经由应用访问的数据并将其存储在临时数据高速缓存或缓冲区中,然后作为复制-与-粘贴操作的一部分复制到其他应用上。但是,在没有任何附加控制的情况下,数据安全性可能会受到损害,潜在的敏感信息将从应用中泄漏。
为了防止数据安全性的这种失误,可以通过CEB限制对服务器上托管的应用和资源上的数据的访问。在CEB内,经由CEB的复制按钮或预设的按键(例如,CTRL+C)的激活,可以接收复制命令以及来自一个应用的所选择的数据(例如,文本或图像)。作为将所选择内容存储到本地操作系统(OS)剪贴板中的替代或补充,可以将数据存储在安全容器中。安全容器可以高速缓存数据,并且可以使用加密密钥加密数据。安全容器可以本地地驻留在客户机处的CEB的高速缓存中和/或远程地驻留在托管应用或基于云的服务的服务器之一上。当安全容器远程驻留时,可以在(例如,用户已登录的)多个客户机装置之间共享数据和用于加密数据的加密密钥。
随后可以通过CEB访问另一个应用。当使用CEB的粘贴按钮或预设的按键(例如,CTRL+V)在后续应用上接收到粘贴命令时,可以对照数据丢失防护策略检查该应用。该策略可以指定经由CEB访问的哪些应用、运行CEB的哪些装置类型、哪些用户帐户、和/或客户机运行CEB所在的哪个位置、以及其他考虑因素,具有对安全容器上保持的数据的权限。该策略还可以指定是否移除包含数据的敏感信息,即使有访问权限。如果该策略允许后续应用访问安全容器,则可以检索保持在存储容器中的数据,并将其复制到应用上或提供给应用。此外,如果策略指定要编辑包含在数据中的敏感信息以用于后续应用,则该数据可以被解析以确定该数据是否包含任何敏感数据,并且可以根据策略编辑该数据的部分。以这种方式,可以实现数据丢失防护并且可以增强数据安全性。
在一个方面,本公开涉及一种经由嵌入式浏览器提供数据丢失防护的系统和方法。进程间通信(IPC)管理器可以与嵌入式浏览器相接口,以根据策略控制数据从第一应用到第二应用的传输。用户可以经由嵌入式浏览器访问第一应用和第二应用。IPC管理器可以检测存储经由嵌入式浏览器在第一应用上访问的数据的第一命令。响应于检测到第一命令,IPC管理器可以将数据存储到安全容器上。该安全容器可以专用于嵌入式浏览器。IPC管理器可以随后检测从安全容器中检索数据,并经由嵌入式浏览器将数据复制到第二应用上的第二命令。响应于第二命令的检测,IPC管理器可以确定要应用于在安全容器上保持的数据的策略。该策略可以指定是否允许将来自第一应用的数据复制到第二应用上。如果在该策略下允许在第二应用中复制数据,则IPC管理器可以在复制之前确定是否要移除数据的一部分(例如,经由编辑或删除)。该策略还可以指定在复制到第二应用之前要移除的数据的信息类型。IPC管理器可以解析数据以识别数据的一部分是否与由策略指定的信息类型匹配。IPC管理器可以移除与由策略指定的信息类型匹配的部分。IPC管理器可以随后将移除了该部分的数据复制到第二应用上。
本公开内容的至少一个方面涉及一种管理对安全容器中的数据的访问的方法。客户机装置上的客户机应用的嵌入式浏览器可以提供对托管在服务器上的第一网络应用的访问。客户机应用可以向客户机装置提供对包括第一网络应用的多个网络应用的访问。该方法可以包括检测客户机装置上的、存储经由嵌入式浏览器从第一网络应用访问的数据的命令。该方法可以包括响应于检测到命令,将数据存储在嵌入式浏览器可访问的安全容器中。该方法可以包括响应于访问所存储的数据的请求,应用策略来管理对存储在安全容器中的数据的访问。
在一些实施例中,该方法可以包括根据策略的应用,确定是否限制存储在安全容器中的数据到多个网络应用中的第二网络应用上的复制。在一些实施例中,该方法可以包括经由嵌入式浏览器检测客户机上的复制存储在安全容器中的数据的命令。在一些实施例中,应用策略可以包括响应于检测到复制的命令而应用策略。在一些实施例中,该方法可以包括识别与复制的命令相对应的要复制的数据,来应用策略。
在一些实施例中,该方法可以包括修改存储在安全容器上的数据的至少一部分,以复制到多个网络应用中的第二网络应用上。在一些实施例中,该方法可以包括响应于确定限制数据的复制,经由嵌入式浏览器呈现指示复制的限制的提示。
在一些实施例中,应用该策略可以包括基于以下中至少之一应用策略:源应用、目的地应用、装置类型、数据类型、装置位置、和账户标识符。在一些实施例中,检测命令可以包括检测与存储从第一网络应用访问的数据的命令相对应的用户交互。
在一些实施例中,将数据存储在安全容器中可以包括对要存储的数据进行加密。在一些实施例中,安全容器驻留在客户机装置和托管第一网络应用的服务器中的至少之一上。
本公开的至少一个方面涉及一种用于管理对安全容器中的数据的访问的系统。该系统可以包括客户机装置上的客户机应用的嵌入式浏览器。嵌入式浏览器可以提供对托管在服务器上的第一网络应用的访问。客户机应用可以向客户机装置提供对包括第一网络应用的多个网络应用的访问。该系统可以包括与客户机应用接口的进程间通信(IPC)管理器。IPC管理器可以检测客户机装置上的存储经由嵌入式浏览器从第一网络应用访问的数据的命令。响应于检测到命令,IPC管理器可以将数据存储在嵌入式浏览器可访问的安全容器中。IPC管理器可以响应于访问所存储的数据的请求,应用策略来管理对存储在安全容器中的数据的访问。
在一些实施例中,IPC管理器可以根据策略的应用,确定是否限制存储在安全容器中的数据到多个网络应用中的第二网络应用上的复制。在一些实施例中,IPC管理器可以经由嵌入式浏览器检测客户机上的复制存储在安全容器中的数据的命令。在一些实施例中,IPC管理器可以响应于检测到复制的命令而应用策略。在一些实施例中,IPC管理器可以识别与复制的命令相对应的要复制的数据来应用策略。
在一些实施例中,IPC管理器可以修改存储在安全容器上的数据的至少一部分,以复制到多个网络应用的第二网络应用上。在一些实施例中,响应于确定限制数据的复制,IPC管理器可以经由嵌入式浏览器呈现指示复制的限制的提示。
在一些实施例中,IPC管理器可以基于以下中至少之一应用策略:源应用、目的地应用、装置类型、数据类型、装置位置、和帐户标识符。在一些实施例中,IPC管理器可以检测与存储从第一网络应用访问的数据的命令相对应的用户交互。
在一些实施例中,IPC管理器可以加密要存储到安全容器上的数据。在一些实施例中,安全容器驻留在客户机装置和托管第一网络应用的服务器中的至少之一上。
附图说明
本文所公开的实施例的目的、方面、特征、和优点将从下面的详细描述、所附权利要求书、和附图变得更加显而易见,所述附图中相同的附图标记标识类似或相同的元件。引入说明书中与附图相关联的附图标记可以在一个或多个后续附图中重复,而无需在说明书中进行额外描述,以便为其他特征提供上下文,并且并非每个元件在每个附图中都被标记。附图不一定按比例绘制,而是将重点放在示出实施例、原理和概念。附图并非旨在限制本文包括的权利要求的范围。
图1是计算装置的实施例的框图;
图2是用于访问资源的云服务的说明性实施例的框图;
图3是企业移动性管理系统的示例实施例的框图;
图4是嵌入式浏览器的系统的框图;
图5是用于使用安全浏览器的系统的示例实施例的框图;
图6是用于使用安全浏览器插件的浏览器重定向的实施方式的示例表示;
图7是使用安全浏览器的系统的示例实施例的框图;
图8是用于使用本地嵌入式浏览器和托管安全浏览器的系统的示例实施例的框图;
图9是用于使用本地嵌入式浏览器和托管安全浏览器的示例处理流程;
图10是用于管理用户对网页的访问的系统的示例实施例;
图11是用于管理跨网络环境运行的应用的进程间通信的系统的框图;
图12是管理跨网络环境运行的应用的进程间通信的方法的流程图;以及
图13是管理对安全容器中的数据的访问的方法的流程图。
具体实施方式
为了阅读以下各个实施例的描述,本说明书各部分的以下描述及其各自的内容可能是有帮助的:
A部分描述了一种计算环境,该计算环境可用于实践本文描述的实施例;
B部分描述了用于嵌入式浏览器的系统和方法。
C部分描述了用于经由嵌入式浏览器提供数据丢失防护的系统和方法的实施例。
A.计算环境
在讨论本文B部分中详细的系统和方法的实施例的细节之前,讨论这样的实施例可以被部署的计算环境可能是有帮助的。
如图1所示,计算机101可以包括一个或多个处理器103、易失性存储器122(例如,随机存取存储器(RAM))、非易失性存储器128(例如,一个或多个硬盘驱动器(HDD)或其他磁性或光学存储介质、一个或多个固态驱动器(SSD)(例如闪存驱动器或其他固态存储介质)、一个或多个混合磁性和固态驱动器、和/或一个或多个虚拟存储卷(例如云存储)、或这种物理存储卷和虚拟存储卷或其阵列的组合)、用户界面(UI)123、一个或多个通信接口118和通信总线150。用户界面123可包括图形用户界面(GUI)124(例如,触摸屏、显示器等)和一个或多个输入/输出(I/O)装置126(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个照相机、一个或多个生物特征扫描仪、一个或多个环境传感器、一个或多个加速度计等)。非易失性存储器128存储操作系统115、一个或多个应用116和数据117,从而例如由处理器103从易失性存储器122中执行操作系统115和/或应用116的计算机指令。在一些实施例中,易失性存储器122可以包括一种或多种类型的RAM和/或高速缓冲存储器,其可以提供比主存储器更快的响应时间。可以使用GUI 124的输入装置来输入数据,或者可以从I/O装置126接收数据。计算机101的各种元件可以经由一条或多条通信总线(显示为通信总线150)进行通信。
图1所示的计算机101仅作为示例示出,因为可以通过任何计算或处理环境,以及利用可以具有能够如本文所述操作的合适的硬件和/或软件的任何类型的机器或机器组,来实现客户机、服务器、中间装置和其他网络装置。处理器103可以由执行一个或多个可执行指令(诸如计算机程序)的一个或多个可编程处理器来实现,用以执行系统的功能。如本文所使用的,术语“处理器”描述了执行功能、操作或操作序列的电路。功能、操作或操作序列可以被硬编码到电路中,或者通过存储在存储器装置中的指令被软编码和被电路执行。“处理器”可以使用数字值和/或使用模拟信号执行功能、操作或操作序列。在一些实施例中,“处理器”可以以一个或多个专用集成电路(ASIC)、微处理器、数字信号处理器(DSP)、图形处理单元(GPU)、微控制器、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、多核处理器、或具有关联存储器的通用计算机来实现。“处理器”可以是模拟、数字或混合信号。在一些实施例中,“处理器”可以是一个或多个物理处理器或一个或多个“虚拟”(例如,位于远程的或“云”)处理器。包括多个处理器核和/或多个处理器的处理器可以提供用于并行、同时执行多个指令或用于并行、同时执行多于一段数据上的一个指令的功能。
通信接口118可以包括一个或多个接口,以使计算机101能够通过各种有线和/或无线或蜂窝连接来访问诸如局域网(LAN)、广域网(WAN)、个人局域网(PAN)或互联网的计算机网络。
在所描述的实施例中,计算装置101可以代表客户机计算装置的用户执行应用。例如,计算装置101可以执行虚拟机,该虚拟机提供执行会话,应用在该执行会话(例如托管的桌面会话)内代表用户或客户机计算装置执行。计算装置101还可以执行终端服务会话以提供托管的桌面环境。计算装置101可以提供对包括以下中的一个或多个的计算环境的访问:一个或多个应用、一个或多个桌面应用以及可以在其中执行一个或多个应用的一个或多个桌面会话。
B.用于嵌入式浏览器的系统和方法
本公开涉及嵌入式浏览器的系统和方法。客户机装置上执行的客户机应用可以允许用户访问应用(app),该应用从一个或多个服务器上来被服务和/或在该服务器上被托管,诸如web应用和软件即服务(SaaS)应用(以下称有时通常称为网络应用)。嵌入或集成到客户机应用中的浏览器可以向用户呈现经由客户机应用访问或请求的网络应用,并且可以启用用户与网络应用之间的交互性。该浏览器有时被称为嵌入式浏览器,而具有嵌入式浏览器的客户机应用(CEB)有时被称为工作空间应用。客户机应用可以建立到一个或多个服务器的安全连接,以提供应用会话,以便用户使用客户机装置和嵌入式浏览器访问网络应用。嵌入式浏览器可以与客户机应用集成,以确保与网络应用相关的流量通过客户机应用路由和/或在客户机应用中处理,这可以为客户机应用提供流量的实时可见性(例如,当通过客户机应用进行解密时),以及用户交互和行为。嵌入式浏览器可以经由用户界面(由客户机应用和嵌入式浏览器共享)请求网络应用,并通过嵌入式浏览器在同一用户界面内呈现,从而为用户提供无缝体验。
客户机应用可以端接与网络应用的服务器建立的安全连接(诸如安全套接字层(SSL)虚拟专用网络(VPN)连接)的一端。客户机应用可以从网络应用接收加密的流量,并且可以在进一步处理(例如,由嵌入式浏览器呈现)之前对流量进行解密。客户机应用可以监视接收到的流量(例如,以加密分组的形式),并且还可以对解密的数据流和/或SSL协议栈的内部具有完全可见性。这种可见性可以允许客户机应用执行或促进基于策略的管理(例如,包括数据丢失防护(DLP)能力)、应用控制(例如,提高性能、服务水平)以及分析的收集和产生。例如,本地CEB可以为信息技术(IT)管理员提供用于通过CEB部署Web和SaaS应用的受控系统,并允许IT管理员经由CEB设置策略或配置,以执行上述任何活动。
许多Web和SaaS交付的应用从Web服务器连接到用户的通用浏览器(例如InternetExplorer,Firefox等)。一旦通过认证,便会加密此类网络应用的整个会话。然而,在这种情况下,管理员可能不具有对从用户的数字工作空间进入网络应用的内容、或离开网络应用并进入用户的数字工作空间的内容的可见性、分析、或控制。此外,在通用浏览器中查看的网络应用的内容可以被复制或下载(例如,由用户或程序)到潜在地任意应用或装置,从而导致可能违反数据安全性。
本系统和方法可以确保与网络应用相关联的流量是被引导通过CEB的。通过图示的方式,例如,当用户访问具有启用的安全断言标记语言(SAML)的SaaS web服务时,相应的访问请求可以被转发到一个指定的网关服务,该服务确定、检查或者验证CEB是否被用于提出该访问请求。响应于确定CEB被用于提出访问请求,网关服务可以执行或提供认证和单点登录(SSO),并且可以允许CEB直接连接到SaaS Web服务。加密(例如标准加密)可用于CEB与SaaS web服务之间的应用会话。当来自web服务的内容在CEB中未加密以经由嵌入式浏览器查看时,和/或当输入经由CEB输入时,CEB可以提供用于例如控制和分析的选择性应用相关的信息上的附加服务。例如,分析代理或应用编程接口(API)可以被嵌入在CEB中以提供或执行附加服务。
CEB(有时被称为工作空间应用或接收器)可以与一个或多个网关服务、中间装置和/或网络服务器(有时统称称为云服务或思杰云(Citrix Cloud))进行交互操作,以提供对网络应用的访问。与云服务的实施例的操作相关的环境的特征和元件如下所述。
图2示出了用于在访问包括网络应用的资源中使用的云服务的实施例。云服务可以包括企业移动性技术架构200,在一个说明性实施例中,其可以包括访问网关260。例如,该架构可以用于自携装置(BYOD)的环境中。该架构可以使客户机装置204(例如,手机或其它装置)的用户能够从客户机装置202访问企业或个人资源,并且使用客户机装置204以供个人使用。用户可以经由在客户机装置204上执行的客户机应用来访问这种企业资源204或企业服务208。用户可以使用由用户购买的客户机装置204或由企业提供给用户的客户机装置202来访问这种企业资源204或企业服务208。用户可以将客户机装置202仅用于商业用途或用于商业和个人用途。客户机装置可运行iOS操作系统和Android操作系统等。企业可以选择实施策略来管理客户机装置204。可以通过防火墙或网关来实现策略,使得客户机装置可以被识别、保护或安全验证,为客户机装置提供对企业资源的选择性或完全访问权限。这些策略可以是客户机装置管理策略、移动应用管理策略、移动数据管理策略或客户机装置、应用和数据管理策略的一些组合。通过施加客户机装置管理策略管理的客户机装置204可以被称为注册装置。该客户机装置管理策略可经由例如客户机应用施加。
在一些实施例中,客户机装置的操作系统可以被分成受管理分区210和未管理分区212。受管理分区210可以被施加策略以保护在受管理分区中运行的应用和存储在其中的数据。在受管理分区上运行的应用可以是安全应用。在其他实施例中,所有应用可以根据与该应用分开接收的一个或多个策略文件的集合来执行,并且该策略文件定义一个或多个安全参数、特征、资源限制和/或由客户机装置管理系统在应用在装置上执行时实施的其他访问控制。通过根据它们各自的策略文件进行操作,可以允许或限制每个应用与一个或多个其他应用和/或资源的通信,从而创建虚拟分区。因此,如本文所使用的,分区可以指存储器的物理分区部分(物理分区)、存储器的逻辑分区部分(逻辑分区)和/或如本文所述由于实施一个或多个策略和/或跨多个app的策略文件而创建的虚拟分区(虚拟分区)。换句话说,通过在受管理app上实施策略,那些app可能会被限制为只能与其他受管理app和受信任的企业资源进行通信,从而创建虚拟分区,未管理app和装置无法访问该虚拟分区。
安全应用可以是电子邮件(email)应用、web浏览应用、软件即服务(SaaS)访问应用、Windows应用访问应用等。客户机应用可包括安全应用启动器218。安全应用可以是安全本地应用214、由安全应用启动器218执行的安全远程应用222、由安全应用启动器218执行的虚拟化应用226,等等。安全本地应用214可以由安全应用包装器220包装。当在装置上执行安全本地应用时,安全应用包装器220可以包括在客户机装置202上执行的集成策略。安全应用包装器220可以包括元数据,该元数据将在客户机装置202上运行的安全本地应用214指向安全本地应用214可能需要的以完成安全本地应用214执行要求的任务的托管在企业的资源。由安全应用启动器218执行的安全远程应用222可以在安全应用启动器应用218内执行。由安全应用启动器218执行的虚拟化应用226可以利用客户机装置202上、企业资源204处等的资源。由安全应用启动器218执行的虚拟化应用226在客户机装置202上使用的资源可以包括用户交互资源、处理资源等。用户交互资源可以用于收集和传输键盘输入、鼠标输入、照相机输入、触觉输入、音频输入、视觉输入、手势输入等。处理资源可以用于呈现用户界面,处理从企业资源204接收的数据等。由安全应用启动器218执行的虚拟化应用226在企业资源204处使用的资源可以包括用户界面生成资源、处理资源等。用户界面生成资源可以被用于组装用户界面、修改用户界面、刷新用户界面,等等。处理资源可以用于创建信息、读取信息、更新信息、删除信息等。例如,虚拟化应用可以记录与图形用户界面(GUI)相关联的用户交互,并将它们传达给服务器应用,其中服务器应用可以使用用户交互数据作为在服务器上运行的应用的输入。在该布置中,企业可以选择在服务器侧保持应用以及与应用相关联的数据、文件等。虽然企业可以根据此处通过确保一些应用在客户机装置上的部署(例如,通过客户机应用)的安全的原则来选择“移动化”它们,但也可以为特定应用选择该布置。例如,尽管可以确保一些应用在客户机装置上使用的安全性,但是其他应用可能没有准备好或不适合在客户机装置上部署,因此企业可以选择通过虚拟化技术为移动用户提供对未准备好的应用的访问。作为另一个示例,企业可能具有带有大型和复杂数据集的大型复杂应用(例如,物质资源计划应用),在这种情况下很难或不希望为客户机装置定制应用,因此企业可以选择通过虚拟化技术提供对应用的访问。作为又一个示例,企业可以具有保持高度安全数据(例如,人力资源数据、客户数据、工程数据)的应用,该应用可能被企业认为甚至对于安全的移动环境也太敏感,因此企业可以选择使用虚拟化技术允许移动访问这些应用和数据。企业可以选择在客户机装置上提供完全安全和功能完整的应用。企业可以使用客户机应用(可以包括虚拟化应用)来允许访问被认为更适合在服务器侧操作的应用。在一个实施例中,虚拟化的应用可以在安全存储位置中的一个中在移动电话上存储一些数据、文件等。例如,企业可以选择允许特定信息存储在电话中,而不允许其他信息。
结合本文中所描述的虚拟化应用,客户机装置可以具有被设计为呈现GUI并且然后记录用户与GUI的交互的虚拟化应用。该虚拟化应用可以将用户交互传送到服务器侧,以被服务器侧的应用作为用户与该应用的交互使用。作为响应,服务器侧的应用可以将新的GUI发送回客户机装置。例如,新的GUI可以是静态页面、动态页面、动画等,从而提供对远程资源的访问。
安全应用可以访问存储在客户机装置的受管理分区210中的安全数据容器228中的数据。安全包装应用214、由安全应用启动器执行的应用222,由安全应用启动器218执行的虚拟化应用226等可以访问在安全数据容器中保护的数据。存储在安全数据容器228中的数据可以包括文件、数据库等。存储在安全数据容器228中的数据可以包括限于特定的安全应用230,在安全应用232之间共享的数据等。限于安全应用的数据可以包括安全通用数据234和高度安全数据238。安全通用数据可以使用诸如高级加密标准(AES)128位加密之类的强加密形式,而高度安全数据238可以使用诸如AES 256位加密之类的非常强加密形式。当从装置管理器224接收到命令时,可以从装置中删除存储在安全数据容器228中的数据。安全应用可以具有双模式选项240。双模式选项240可以向用户呈现在非安全或非管理模式下操作安全应用的选项。在非安全或非管理模式下,安全应用可以访问存储在客户机装置202的非管理分区212上的非安全数据容器242中的数据。存储在非安全数据容器中的数据可以是个人数据244。存储在非安全数据容器242中的数据还可以由在客户机装置202的未管理分区212上运行的非安全应用248访问。当存储在安全数据容器228中的数据被从客户机装置202删除时,存储在非安全数据容器242中的数据可以保持在客户机装置202中。企业可能希望从客户机装置中删除由企业拥有、许可或控制的所选择的或所有的数据、文件和/或应用(企业数据),同时留下或以其它方式保留由用户拥有、许可或控制的个人数据、文件和/或应用(个人数据)。该操作可以称为选择性擦除。利用根据本文所述方面布置的企业和个人数据,企业可以执行选择性擦除。
客户机装置202可以连接到企业处的企业资源204和企业服务208,连接到公共互联网248等。该客户机装置可以通过虚拟专用网络连接来连接到企业资源204和企业服务208。虚拟专用网络连接(也称为微VPN或应用特定的VPN)可以特定于特定应用(例如,如微VPN 250所示)、特定装置、客户机装置上的特定安全区域(例如,如O/S VPN 252所示)等。例如,电话的安全区域中的每个包装应用都可以通过应用特定的VPN访问企业资源,从而可以基于与该应用相关联的属性(可能结合用户或装置属性信息)来授予对VPN的访问权限。虚拟专用网络连接可以承载Microsoft Exchange流量、Microsoft Active Directory流量、超文本传输协议(HTTP)流量、安全超文本传输协议(HTTPS)流量、应用管理流量等。虚拟专用网络连接可以支持并启用单点登录认证过程254。单点登录过程可以允许用户提供一组认证凭证,然后由认证服务258对其进行验证。然后,认证服务258可以向用户授予对多个企业资源204的访问权限,而无需用户向每个单独的企业资源204提供认证凭证。
虚拟专用网络连接可以由访问网关260建立和管理。访问网关260可以包括管理、加速和改善企业资源204到客户机装置202的输送的性能增强特征。访问网关还可以将流量从客户机装置202重新路由到公共互联网248,从而使客户机装置202能够访问在公共互联网248上运行的公共可用和非安全的应用。该客户机装置可以经由传输网络262连接到访问网关。传输网络262可以使用一种或多种传输协议,并且可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。
企业资源204可以包括电子邮件服务器、文件共享服务器、SaaS/Web应用、Web应用服务器、Windows应用服务器等。电子邮件服务器可以包括Exchange服务器、Lotus Notes服务器等。文件共享服务器可以包括ShareFile服务器等。SaaS应用可以包括Salesforce等。Windows应用服务器可以包括为提供旨在在本地Windows操作系统上运行的应用等而构建的任何应用服务器。企业资源204可以是基于本地的资源、基于云的资源等。企业资源204可由客户机装置202直接访问或通过访问网关260访问。客户机装置202可以经由传输网络262访问企业资源204。传输网络262可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。
云服务可以包括访问网关260和/或企业服务208。企业服务208可以包括认证服务258、威胁检测服务264、装置管理器服务224、文件共享服务268、策略管理器服务270、社交整合服务272、应用控制器服务274等。认证服务258可以包括用户认证服务、装置认证服务、应用认证服务、数据认证服务等。认证服务258可以使用凭证。凭证可以通过企业资源204等存储在客户机装置202上。存储在客户机装置202上的凭证可以被存储在客户机装置上的加密位置。凭证可以被临时存储在客户机装置202上以在认证等时使用。威胁检测服务264可以包括入侵检测服务、未授权访问尝试检测服务等。未授权访问尝试检测服务可以包括访问装置、应用、数据等的未授权的尝试。装置管理服务224可以包括配置、供应、安全、支持、监视、报告和报废服务。文件共享服务268可以包括文件管理服务、文件存储服务、文件协作服务等。策略管理器服务270可以包括装置策略管理器服务、应用策略管理器服务、数据策略管理器服务等。社交整合服务272可以包括联系人整合服务、协作服务、与诸如Facebook、Twitter和LinkedIn等的社交网络的整合。应用控制器服务274可以包括管理服务、供应服务、部署服务、分配服务、撤销服务、包装服务等。
企业移动性技术架构200可以包括应用商店278。应用商店278可以包括解包装应用280、预包装应用282等。可以从应用控制器274将应用填充在应用商店278中。客户机装置202可以通过访问网关260、通过公共互联网248等来访问应用商店278。可以提供具有直观且易于使用的用户界面的应用商店。
软件开发工具包284可以通过在应用周围提供安全包装为用户提供保护用户选择的应用的能力。然后,可以通过使用应用控制器274将已使用软件开发工具包284包装的应用填充到应用商店278中,使其对客户机装置202可用。
企业移动性技术架构200可以包括管理和分析能力。管理和分析能力可以提供与如何使用资源、使用资源的频率等有关的信息。资源可以包括装置、应用、数据等。如何使用资源可以包括哪些装置下载哪些应用、哪些应用访问哪些数据等。使用资源的频率可以包括应用的下载频率、应用访问特定数据集的次数等。
图3描绘了企业移动性管理系统300的说明性实施例。为了简单起见,已省略了以上参考图2已描述的移动性管理系统200的一些组件。图3中描绘的系统300的架构在许多方面与上面参考图2描述的系统200的架构相似,并且可以包括上面未提及的附加特征。
在这种情况下,左侧代表具有客户机代理304的注册客户机装置302,其与网关服务器306交互以访问各种企业资源308和服务309,例如Web或SasS应用、Exchange、Sharepoint、公钥基础设施(PKI)资源、Kerberos资源、凭证发行服务,如右上方所示。网关服务器306可以包括云服务的特征和功能的实施例,例如访问网关260和应用控制器功能。尽管未具体示出,客户机代理304可以是客户机应用的一部分和/或与客户机应用交互,该客户机应用可以作为企业应用商店(店面)操作以选择和/或下载网络应用。
客户机代理304可以充当托管在企业数据中心中的Windows app/桌面的UI(用户界面)中间装置,其使用高清晰度用户体验(HDX)或独立计算架构(ICA)显示远程协议来访问。客户机代理304还可支持客户机装置302上的本地应用(例如本地iOS或Android应用)的安装和管理。例如,上图中所示的受管理应用310(邮件、浏览器、包装的应用)是在装置上本地执行的本地应用。该架构的客户机代理304和应用管理框架用于向企业资源/服务308提供策略驱动的管理能力和特征,诸如连接性和SSO(单点登录)。客户机代理304利用至其它网关服务器组件的SSO来处理向企业(例如向访问网关(AG))的主要用户认证。客户机代理304从网关服务器306获得策略以控制客户机装置302上的受管理应用310的行为。
本地应用310与客户机代理304之间的安全进程间通信(IPC)链路312代表管理通道,该管理通道允许客户机代理提供由应用管理框架314“包装”每个应用实施的策略。IPC通道312还允许客户机代理304提供使到企业资源308的连接性和SSO成为可能的凭证和认证信息。最终,IPC通道312允许应用管理框架314调用由客户机代理304实现的用户界面功能,例如在线和离线认证。
客户机代理304与网关服务器306之间的通信本质上是来自应用管理框架314的管理通道的扩展,该应用管理框架314包装了每个本地受管理的应用310。应用管理框架314从客户机代理304请求策略信息,客户机代理304又从网关服务器306请求策略信息。应用管理框架314请求认证,以及客户机代理304登录到网关服务器306(也被称为NetScaler访问网关)的网关服务部分。客户机代理304还可在网关服务器306上调用支持服务,其可产生输入材料以导出用于本地数据仓库316的加密密钥,或提供客户机凭证,该客户机凭证可使得能够对PKI保护的资源进行直接认证,如下文更充分地解释的。
更详细地,应用管理框架314“包装”每个受管理的应用310。这可以经由显式的构建步骤,或经由后构建处理步骤来合并。在首次启动应用310时,应用管理框架314可以与客户机代理304“配对”,以初始化安全IPC通道并获取该应用的策略。应用管理框架314可以实施在本地应用的策略的相关部分,例如客户机代理登录依赖性和一些包含策略,其限制了本地OS服务可以如何被使用,或者它们如何与应用310交互。
应用管理框架314可以使用客户机代理304通过安全IPC通道312提供的服务来促进认证和内部网络访问。专用和共享数据仓库316(容器)的密钥管理也可以通过受管理的应用310和客户机代理304之间的适当交互来管理。仓库316仅在在线认证之后才可用,或者,如果策略允许,可在离线认证后使其可用。仓库316的首次使用可能需要在线认证,并且在需要再次在线认证之前,离线访问最多可以限制为策略刷新期。
可直接从单个受管理的应用310通过访问网关306网络访问内部资源。应用管理框架314负责代表每个应用310协调网络访问。客户机代理304可以通过提供在在线认证之后获得的合适的时间有限的辅助凭证来促进这些网络连接。可以使用多种模式的网络连接,例如反向web代理连接和端到端VPN样式的隧道318。
邮件和浏览器管理的应用310可以具有特殊状态,并且可以利用对于任意包装的应用通常可能不可用的设施。例如,邮件应用可以使用特殊的后台网络访问机制,该机制允许它在延长的时间内访问Exchange,而无需完整的AG登录。浏览器应用可以使用多个专用数据仓库来隔离不同种类的数据。
该架构可以支持各种其他安全特征的合并。例如,在某些情况下,网关服务器306(包括其网关服务)可能不需要验证活动目录(AD)密码。企业可以自行决定是否将AD密码用作某些用户在某些情况下的认证因素。如果用户在线或离线(即,已连接或未连接到网络),则可以使用不同的认证方法。
建立认证是一种特征,其中网关服务器306可以识别使用强认证来被允许访问更多敏感数据的受管理的本地应用310,并确保仅在执行适当的认证之后才允许访问这些应用,即使这意味着在先前较弱级别的登录之后,要求用户重新认证。
该解决方案的另一安全特征是对客户机装置302上的数据仓库316(容器)的加密。仓库316可以被加密,使得包括剪贴板/缓存数据、文件、数据库和配置在内的所有装置上的数据都受到保护。对于在线仓库,密钥可以存储在服务器(网关服务器306)上,对于离线仓库,密钥的本地副本可以通过用户密码或生物特征验证来保护。当数据被本地存储在装置302上的安全容器316中时,优选地,利用最低限度的AES 256加密算法。
还可以实现其他安全容器特征。例如,可以包括日志记录特征,其中记录在应用310内部发生的所有安全事件的日志并将其报告给后端。可以支持数据擦除,例如如果应用310检测到篡改,则可以用随机数据覆盖相关联的加密密钥,而不留下在文件系统上用户数据被破坏的提示。屏幕截图保护是另一个特征,应用可能会阻止任何数据存储在屏幕截图中。例如,可以将关键窗口的隐藏属性设置为YES。这可能会使得屏幕上当前显示的任何内容都被隐藏,从而使得通常位于该位置的任何内容不被显示而产生空白屏幕截图。
诸如通过防止任何数据在应用容器之外本地传输(例如通过将数据复制或发送至外部应用),可以防止本地数据传输。键盘高速缓存特征可操作来禁用敏感文本字段的自动更正功能。SSL凭证验证可能是可操作的,因此应用专门验证服务器SSL凭证,而不是将其存储在密钥链中。可以使用加密密钥生成特征,以便使用用户提供的密码或生物特征数据生成用于在装置上加密数据的密钥(如果需要离线访问)。如果不需要离线访问,可以将它与另一个随机生成的密钥进行异或并存储在服务器侧。密钥导出功能可以操作,使得从用户密码生成的密钥使用KDF(密钥导出功能,尤其是基于密码的密钥导出功能2(PBKDF2)),而不是为其创建密码散列。后者使密钥容易受到暴力破解或字典攻击。
此外,可以在加密方法中使用一个或多个初始化向量。初始化向量可以使得同一加密数据的多个副本产生不同的密文输出,从而防止重放和密码分析攻击。这也可以防止攻击者即使使用被盗的加密密钥也无法解密任何数据。此外,可以使用认证然后解密,其中仅在用户已经在应用内进行认证之后才对应用数据进行解密。另一个特征可以涉及在存储器中的敏感数据,仅当需要它时,它可以被保持在存储器中(而不是在磁盘上)。例如,登录凭证可能会在登录后从存储器中擦除,并且Objective-C实例变量中的加密密钥和其他数据不会被存储,因为它们很容易被引用。而是可以为这些手动分配存储器。
可以经由CEB实现非活动超时,其中,在策略定义的非活动时间段之后,终止用户会话。
可以以其他方式防止来自应用管理框架314的数据泄漏。例如,当将应用310置于后台时,可以在预定的(可配置的)时间段之后清除存储器。当置于后台时,可以对应用的最后显示的屏幕获取截图以加快前台操作进程。屏幕截图可能包含机密数据,因此应被清除。
另一安全特征涉及不使用用于访问一个或多个应用的AD(活动目录)322密码而使用OTP(一次性密码)320。在某些情况下,某些用户不知道(或不被允许知道)其AD密码,因此这些用户可以使用OTP 320进行认证,例如通过使用像SecurID这样的硬件OTP系统(OTP也可以由不同的供应商提供,例如Entrust或Gemalto)。在某些情况下,在用户使用用户ID进行认证之后,带有OTP 320的文本将被发送给用户。在某些情况下,只能将其实现为在线使用,提示是单个字段。
对于那些经由企业策略允许离线使用的应用310,可以实现离线密码以用于离线认证。例如,企业可能希望店面以这种方式被访问。在这种情况下,客户机代理304可以要求用户设置定制的离线密码并且不使用AD密码。网关服务器306可以提供策略来控制和执行有关密码的最小长度、字符类型组成和密码时效的密码标准,例如标准Windows Server密码复杂性要求所描述的,尽管可以修改这些要求。
另一个特征涉及针对特定应用310的客户机侧凭证作为辅助凭证的启用(目的是经由应用管理框架微VPN特征访问PKI保护的web资源)。例如,应用可以利用这样的凭证。在这种情况下,可以支持使用ActiveSync协议的基于凭证的认证,其中来自客户机代理304的凭证可以由网关服务器306检索并在密钥链中使用。每个受管理应用可以具有一个关联的客户机凭证,该凭证由网关服务器306中定义的标签标识。
网关服务器306可以与企业专用web服务进行交互以支持客户机凭证的发行,以允许相关的受管理应用向内部PKI保护的资源进行认证。
客户机代理304和应用管理框架314可以被增强以支持获得和使用客户机凭证以向内部PKI保护的网络资源进行认证。可以支持多于一个凭证,例如以匹配各种级别的安全性和/或分离要求。凭证可由邮件和浏览器管理的应用使用,并最终由任意包装的应用使用(前提是那些应用使用web服务样式的通信模式,其中应用管理框架可以合理地居中调解https请求)。
iOS上的应用管理客户机凭证支持可能依赖于在每个使用时间段的每个受管理应用中的iOS密钥链中导入公钥加密标准(PKCS)12BLOB(二进制大对象)。应用管理框架客户机凭证支持可以使用具有私有内存密钥存储的HTTPS实施方式。客户机凭证可能永远不会存在于iOS密钥链中,也可能不会持久保留,除非可能存在于受到严格保护的“仅在线”数据值中。
也可以通过要求将客户机装置302向企业认证以提供附加的安全性实现相互SSL或TLS,反之亦然。也可以实现用于向网关服务器306进行认证的虚拟智能卡。
有限和完全的Kerberos支持都可以是附加特征。完全支持特征涉及使用AD密码或受信任的客户机凭证对活动目录(AD)322进行完全Kerberos登录,并获得Kerberos服务票证以响应HTTP协商认证挑战的能力。有限的支持特征涉及Citrix访问网关企业版(AGEE)中的约束委派,其中AGEE支持调用Kerberos协议转换,以便它可以响应于HTTP协商认证挑战,而获得和使用Kerberos服务票证(经受约束委派)。该机制在反向web代理(也称为公司虚拟专用网络(CVPN))模式中,以及在VPN和微VPN模式中http(但不是https)连接被代理时起作用。
另一特征涉及应用容器锁定和擦除,其可以在检测到越狱或获取超级权限时自动进行,并且作为来自管理控制台的推送命令而进行,并且即使在应用310未运行时也可以包括远程擦除功能。
可以支持企业应用商店的多站点架构或配置以及应用控制器,其允许用户在发生故障的情况下从多个不同位置之一进行服务。
在某些情况下,可以允许受管理应用310经由API(示例OpenSSL)访问凭证和私钥。可以允许企业的受信任的受管理应用310使用应用的客户机凭证和私钥来执行特定的公钥操作。例如,当应用的行为类似于浏览器并且不使用凭证访问时,当应用读取“我是谁”的凭证时,当应用使用凭证来建立安全会话令牌时,以及当应用使用私钥以进行重要数据(例如,事务日志)的数字签名或临时数据加密时,可以相应地识别和处理各种用例。
现在参考图4,描绘了嵌入式浏览器的系统400的框图。在简要概述中,该系统400可以包括具有用于用户的数字工作空间的客户机装置402、客户机应用404、在至少一个网络装置上432上操作的云服务408、以及从一个或多个服务器430服务的和/或托管在一个或多个服务器430上的网络应用406。客户机应用404可以例如包括以下中至少之一:嵌入式浏览器410、网络代理412、云服务代理414、远程会话代理416或安全容器418。云服务408可以例如包括在以下中至少之一:安全浏览器420、访问网关422(或CIS,例如,用于登记和/或认证客户机应用和/或用户)、或分析服务424(或CAS,例如,用于从客户机应用接收信息以进行分析)。网络应用406可以包括批准的应用426和未批准的应用428。
在一个或多个实施例中,上述元件或实体中的每一个以硬件、或硬件和软件的组合实现。系统200的每个组件可以使用以上结合图1详细描述的硬件或硬件或软件的组合来实现。例如,这些元件或实体的每一个可以包括任何应用、程序、库、脚本、任务、服务、进程或在客户机装置402、至少一个网络装置432和/或在一个或多个服务器430的硬件上执行的任何类型和形式的可执行指令。在一个或多个实施例中,硬件包括诸如一个或多个处理器的电路。例如,至少一个网络装置432和/或一个或多个服务器430可以包括以上结合至少例如图1描述的计算装置的任何元件。
客户机装置402可以包括以上结合至少例如图1描述的计算装置的任何实施例。客户机装置402可以包括任何用户装置,诸如台式计算机、膝上型计算机、平板装置、智能电话、或任何其他移动或个人装置。客户机装置402可以包括用户的数字工作空间,该用户的数字工作空间可以包括文件系统、高速缓存或存储器(例如,包括电子剪贴板)、容器、应用和/或客户机装置402上的其他资源。数字工作空间可以包括或扩展到客户机装置402可访问的一个或多个网络,诸如内联网和互联网,包括可经由一个或多个网络访问的文件系统和/或其他资源。例如,可以通过使用具有嵌入式浏览器410(CEB)的客户机应用404来保护数字工作空间的一部分。数字工作空间的安全部分可以包括例如文件系统、高速缓存或内存(例如,包括电子剪贴板)、应用、容器和/或分配给CEB、和/或由CEB分配给经由CEB访问的网络应用406的其他资源。数字工作空间的安全部分还可以包括由CEB(经由一个或多个策略)指定的用于包括在数字工作空间的安全部分的资源(例如,特定的本地应用可以经由策略被指定允许接收从网络应用获得的数据)。
客户机应用404可以包括一个或多个组件,诸如嵌入式浏览器410、网络代理412、云服务代理414(有时称为管理代理)、远程会话代理416(有时称为HDX引擎)和/或安全容器418(有时称为安全高速缓存容器)。例如,一个或多个组件可以作为客户机应用404或CEB的软件构建或发布的一部分进行安装,也可以单独获取或下载并安装/集成到客户机应用404或CEB的现有安装中。例如,客户机装置可以从网络装置432下载或以其他方式接收客户机应用404(或任何组件)。在一些实施例中,客户机装置可以将对客户机应用404的请求发送到网络装置432。例如,客户机装置的用户可以发起客户机应用的请求、下载和/或安装。网络装置432继而可发送客户机应用到客户机装置。在一些实施例中,网络装置432可以将用于客户机应用的设置或安装应用发送到客户机装置。在接收到时,客户机装置可以安装该客户机应用到客户机装置的硬盘上。在一些实施例中,客户机装置可以运行设置应用以打开或解压缩客户机应用的包。在一些实施例中,客户机应用可以是对安装在客户机装置上的另一个应用(例如,网络代理414)的扩展(例如,附加组件(add-on)、内插式附件(add-in)、小应用或插件(plug-in))。客户机装置可以安装客户机应用以与预安装的应用接口或互操作。在一些实施例中,客户机应用可以是独立应用。客户机装置可以安装客户机应用以作为单独的进程执行。
嵌入式浏览器410可以包括web浏览器应用或引擎的元件和功能。嵌入式浏览器410可以本地呈现网络应用作为客户机应用的组件或扩展。例如,嵌入式浏览器410可以在CEB内呈现SaaS/Web应用,这可以向CEB提供应用会话的完全的可视性和控制。嵌入式浏览器可以经由任何方式嵌入或合并到客户机应用中,例如直接集成(例如,编程语言或脚本插入)到客户机应用的可执行代码中,或经由插件安装。例如,嵌入式浏览器可以包括基于Chromium的浏览器引擎或其他类型的浏览器引擎,例如,可以使用Chromium嵌入式框架(CEF)将其嵌入到客户机应用中。嵌入式浏览器可以包括基于HTML5的布局图形用户界面(GUI)。嵌入式浏览器可以为合并了各种编程语言的客户机应用提供HTML渲染和JavaScript支持。例如,嵌入式浏览器的元件可以绑定到合并了C、C++、Delphi、Go、Java、.NET/Mono、Visual Basic 6.0和/或Python的客户机应用。
在一些实施例中,嵌入式浏览器包括安装在客户机应用上的插件。例如,插件可以包括一个或多个组件。一个这样的组件可以是ActiveX控件或Java控件,或者是能够加载到客户机应用中并在其中执行的任何其他类型和/或形式的可执行指令。例如,客户机应用可以加载和运行嵌入式浏览器的Active X控件,例如在客户机应用的存储空间或上下文中。在一些实施例中,嵌入式浏览器可以作为扩展安装在客户机应用上,并且用户可以选择启用或禁用插件或扩展。嵌入式浏览器(例如,经由插件或扩展)可以形成或操作为安全浏览器,用于保护、使用和/或访问数字工作空间的安全部分内的资源。
嵌入式浏览器可以合并超出标准或典型浏览器中的可用或可能的代码和功能。例如,嵌入式浏览器可以与安全容器418绑定或被分配给安全容器418,以定义用户数字工作空间的安全部分的至少一部分。嵌入式浏览器可以与客户机装置的高速缓存的一部分绑定或被分配给客户机装置的高速缓存的一部分,以形成安全剪贴板(例如,客户机装置本地或可扩展到其他装置),该剪贴板可以是安全容器418的至少一部分。嵌入式浏览器可以与客户机应用集成,以确保与网络应用相关的流量通过客户机应用路由和/或在客户机应用中进行处理,这可以为客户机应用提供流量的实时可见性(例如,当通过客户机应用解密时)。对流量的这种可见性可以允许客户机应用执行或促进基于策略的管理(例如,包括数据丢失防护(DLP)能力)、应用控制、以及分析的收集和产生。
在一些实施例中,嵌入式浏览器合并了客户机应用404的一个或多个其他组件,诸如云服务代理414、远程会话代理416和/或安全容器418。例如,用户可以使用嵌入式浏览器的云服务代理414与访问网关422(有时称为CIS)互操作以访问网络应用。例如,云服务代理414可以在嵌入式浏览器内执行,并且可以从嵌入式浏览器接收导航命令并将其发送到托管网络应用。云服务代理可以使用远程呈现协议将由网络应用生成的输出显示到嵌入式浏览器。例如,云服务代理414可以包括HTML5 Web客户机,其允许最终用户访问嵌入式浏览器上的远程桌面和/或应用。
客户机应用404和CEB在客户机装置的操作(OSI)栈的应用层上操作。客户机应用404可以包括和/或执行与云服务408互操作的一个或多个代理。
例如,云服务代理414可传达或馈送信息至云服务408的分析服务424,例如对CEB可见的有关SaaS交互事件的信息。使用CEB的这种配置可以监视或捕获信息以进行分析,而无需在客户机装置和服务器430之间放置内联装置或代理,也无需使用SaaS API网关“带外”方法。在一些实施例中,云服务代理414不在嵌入式浏览器内执行。在这些实施例中,用户可以类似地使用云服务代理414来与访问网关(或CIS)422互操作以访问网络应用。例如,云服务代理414可以向访问网关(或CIS)422注册和/或认证,并且可以从访问网关(或CIS)422获得网络应用的列表。云服务代理414可以包括和/或作为应用商店(或店面)进行操作,以供用户选择和/或下载网络应用。当登录以访问网络应用时,云服务代理414可以从嵌入式浏览器拦截和传送导航命令到网络应用。云服务代理可以使用远程呈现协议将由网络应用生成的输出显示到嵌入式浏览器。例如,云服务代理414可以包括HTML5 web客户机,其允许最终用户访问嵌入式浏览器上的远程桌面和/或应用。
在一些实施例中,云服务代理414为用户和/或客户机装置提供单点登录(SSO)能力以访问多个网络应用。云服务代理414可以例如通过与访问网关422通信,来执行用户认证以访问网络应用以及其他网络资源和服务。例如,云服务代理414可以认证或向访问网关422注册,以访问云服务408和/或网络应用406的其他组件。响应于认证或注册,访问网关422可以为(或代表)用户和/或客户机应用向网络应用执行认证和/或SSO。
在一些实施例中,云服务代理414提供与网络应用的使用和/或访问有关的策略驱动的管理能力和特征。例如,云服务代理414可以包括策略引擎,以应用一个或多个策略来确定对诸如网络应用之类的资源的访问控制和/或连接性。例如,当在客户机应用和提供SaaS应用的服务器430之间建立会话时,云服务代理414可以应用一个或多个策略来控制会话的流量级别和/或流量类型(或其他方面),例如来管理SaaS应用的服务级别。可以控制或管理的应用流量的其他方面可以包括:应用于流量的加密级别和/或加密类型、用户允许的交互级别、对网络应用的某些功能(例如打印屏幕、保存、编辑或复制功能)的受限访问、对使用或传输从网络应用获得的数据的限制、限制对两个或更多个网络应用的并发访问、限制对某些文件存储库或其他资源的访问等等。
客户机应用404可以包括网络代理412。网络代理412有时被称为软件定义的广域网(SD-WAN)代理、mVPN代理或微VPN代理。该网络代理412可以建立或促进建立客户机应用和一个或多个资源(例如,服务于网络应用的服务器430)之间的网络连接。网络代理412可以为来自客户机应用的请求的连接执行握手,以访问网络应用,并且可以建立请求的连接(例如,安全或加密的连接)。网络代理412可以例如经由虚拟专用网络(VPN)连接到企业资源(包括服务)。例如,网络代理412可以建立客户机应用和提供网络应用406的服务器430之间的安全套接字层(SSL)VPN。VPN连接,有时也被称为微VPN或应用专用VPN,可能特定于特定的网络应用、特定的装置、客户机装置上的特定的安全区域等,例如上面结合图3所讨论的。作为某些示例,这样的VPN连接可以承载Microsoft Exchange流量、Microsoft ActiveDirectory流量、超文本传输协议(HTTP)流量、安全超文本传输协议(HTTPS)流量。
远程会话代理416(有时被称为HDX引擎)可包括上文结合图2所讨论的客户机代理304的特征,例如,以支持显示远程协议(例如,HDX或ICA)。在一些实施例中,远程会话代理416可以根据诸如远程桌面协议(RDP)、设备链接协议(ALP)、远程帧缓冲器(RFB)协议和ICA协议的任何各种协议建立远程桌面会话和/或远程应用会话。例如,远程会话代理416可以为客户机装置的用户建立远程应用会话以访问企业网络应用。远程会话代理416可以例如在由网络代理412建立的安全连接(例如,VPN)之内或之上建立远程应用会话。
客户机应用或CEB可以包括安全容器418或与安全容器418相关联。安全容器可以包括在客户机装置内的可访问和/或由客户机装置可访问的一种或多种类型的资源的逻辑或虚拟描述。例如,安全容器418可以指数字工作空间的整个安全部分,或安全部分的特定方面。在一些实施例中,安全容器418对应于安全高速缓存(例如,电子或虚拟剪贴板),并且可以动态地合并用户的每个客户机装置的本地高速缓存的一部分,和/或受保护或安全(例如,加密)的用户的基于云的高速缓存。安全容器可以定义文件系统的一部分,和/或描绘分配给CEB和/或经由CEB访问的网络应用的资源。安全容器可以包括例如以上结合图2讨论的安全数据容器228的元件。CEB可以被配置为(例如,经由策略)限制、禁止或禁用识别为在安全容器内的资源和/或数据上的某些动作或活动。安全容器可以被定义以指定安全容器内的资源和/或数据对于误用、滥用和/或泄漏进行监测。
在某些实施例中,安全容器与实现各种企业安全特征的安全浏览器(例如,嵌入式浏览器410或安全浏览器420)的使用有关或涉及其使用。被配置为在安全浏览器内运行的网络应用(或由安全浏览器访问的网页)可以有效地继承由安全浏览器实现的安全机制。这些网络应用可以被视为包含在安全容器内。使用这种安全浏览器可以使企业实施内容过滤策略,例如,其中员工被阻止从其客户机装置访问特定网站。例如,可以使用安全浏览器来使客户机装置用户无需VPN即可访问公司内部网络。
在一些实施例中,安全容器可以支持用于保护企业资源的各种类型的补救措施。一种这样的补救措施是锁住客户机装置、或客户机装置上存储要保护的数据的安全容器,以使得客户机装置或安全容器只能用例如管理员提供的有效密码来解锁。在一些实施例中,这些和其他类型的补救措施可以基于在客户机装置上检测到的条件而自动调用(例如,经由策略的应用),或者可以由管理员远程启动。
在一些实施例中,安全容器可以包括用于文档的安全文档容器。文档可以包括任何计算机可读文件,其包括文本、音频、视频和/或其他类型的信息或媒体。文档可以包括这些媒体类型中的任何单独一个或组合。如本文所解释的,安全容器可以帮助防止企业信息向客户机装置的不同应用和组件以及向其他装置传播。企业系统(可以部分或全部在云网络内)可以将文档传输到各种装置,这些装置可以被存储在安全容器中。安全容器可以防止客户机装置的未授权的应用和其他组件访问安全容器内的信息。对于允许用户使用自己的客户机装置访问、存储和使用企业数据的企业,在客户机装置上提供安全容器有助于保护企业数据。例如,在客户机装置上提供安全容器可以在每个客户机装置上的一个位置集中企业数据,并且可以促进在需要时,从每个客户机装置对企业数据的选择性的或完全的删除。
安全容器可以包括实现存储文档和/或其他类型的文件的文件系统的应用。文件系统可以包括客户机装置的计算机可读存储器的一部分。文件系统可以在逻辑上与客户机装置的计算机可读存储器的其他部分分离。以这种方式,例如,企业数据可以被存储在安全容器中,并且私有数据可以被存储在客户机装置的计算机可读存储器的单独部分中。该安全容器可以允许CEB、经由CEB访问的网络应用、本地安装的应用和/或客户机装置的其他组件从文件系统中读取、写入和/或删除信息(如果被授权这样做)。从安全容器删除数据可以包括:删除存储在安全容器中的实际数据,删除指向存储在安全容器中的数据的指针,删除用于解密存储在安全容器中的数据的加密密钥,等等。该安全容器可以由例如客户机应用、管理员或客户机装置制造商安装。安全容器可以使得删除存储在文件系统中的部分或全部企业数据,而无需修改存储在安全容器外部的客户机装置上的私有数据。文件系统可以促进从文件系统中选择性或完全地删除数据。例如,企业系统的授权组件可以基于例如编码规则从文件系统中删除数据。在一些实施例中,客户机应用可以响应于从企业系统接收删除命令,从文件系统中删除数据。
安全容器可以包括访问管理器,该访问管理器管理客户机装置的应用和其他组件对文件系统的访问。可以基于在文档和/或在文件系统中由客户机应用保持的文档访问策略(例如,编码规则),管理对文件系统的访问。文档访问策略可以基于以下限制对文件系统的访问:(1)客户机装置的哪个应用或其他组件正在请求访问,(2)正在请求哪些文档,(3)时间或日期,(4)客户机装置的地理位置,(5)请求的应用或其他组件是否提供了正确的证书或凭证,(6)客户机装置的用户是否提供正确的凭证,(7)其他条件,或它们的任何组合。用户的凭证可以包括例如密码、安全性问题(例如,您的高中的吉祥物是什么?)的一个或多个答案、生物特征信息(例如,指纹扫描、眼球扫描)等。因此,通过使用访问管理器,可以将安全容器配置为仅由被授权访问安全容器的应用访问。作为一个示例,访问管理器可以使安装在客户机装置上的企业应用能够访问存储在安全容器中的数据,并防止非企业应用访问存储在安全容器中的数据。
对文档访问的时间和地理限制可能是有用的。例如,管理员可以部署文档访问策略,该文档访问策略将文档(存储在安全容器中)的可用性限制到指定的时间窗口和/或客户机装置在其中必须驻留才能访问文档的地理区域(例如,由GPS芯片确定)。此外,文档访问策略可以指示安全容器或客户机应用从安全容器中删除文档,或者在指定的时间段到期时或在客户机装置被带到定义的地理区域之外的情况下,使文档不可用。
一些文档可以具有禁止该文档在安全容器内被保存的访问策略。在这样的实施例中,仅当用户例如经由云服务登录或认证时,文档才可用于在客户机装置上查看。
访问管理器还可以被配置为在远程装置(例如,企业资源或其他企业服务器)和安全容器之间实施某些连接模式。例如,访问管理器可以要求由安全容器从远程装置接收的文档和/或从安全容器发送到远程装置的文档例如通过安全隧道/连接进行传输。访问管理器可以要求对发送到安全容器和从安全容器发送的所有文档进行加密。该客户机应用或访问管理器可以被配置为加密从安全容器发送的文档以及解密发送到安全容器的文档。安全容器中的文档也可以加密形式存储。
安全容器可以被配置为防止客户机装置或其他装置的未授权应用或组件使用文档或文档包括的数据或安全容器。例如,可以对有权从安全容器访问文档的客户机装置应用进行编程,以防止用户复制文档数据并将其粘贴到另一个文件或应用界面中,或者在本地在安全容器之外将文档或文档数据保存为新文件。类似地,安全容器可以包括文档查看器和/或编辑器,其不允许这样的复制/粘贴和本地保存操作。此外,可以将访问管理器配置为防止这种复制/粘贴和本地保存操作。此外,安全容器和被编程并授权从安全容器访问文档的应用可以被配置为防止用户将这种文档附加到电子邮件或其他形式的通信中。
一个或多个应用(例如,安装在客户机装置上的应用,和/或经由CEB访问的网络应用)可以被编程或控制(例如,经由基于策略的实施)以将企业相关的数据仅写入安全容器中。例如,可以为应用的源代码提供安全容器的资源名称。类似地,远程应用(例如,在除客户机装置以外的装置上执行)可以被配置为将数据或文档仅发送到安全容器(而不是客户机装置的其他组件或存储器位置)。将数据存储到安全容器可以自动地进行,例如,在应用、客户机应用、和/或安全浏览器的控制下。可以对客户机应用进行编程,以对存储在安全容器中或将要存储在安全容器中的文档进行加密或解密。在某些实施例中,安全容器只能由这种应用(在客户机装置或远程装置上)使用:被编程为识别和使用安全容器的应用,并且该应用具有授权这样做。
网络应用406可以包括批准的网络应用426和未批准的网络应用428。通过非限制性示例的方式,批准的网络应用426可以包括来自Workday、Salesforce、Office 365、SAP等的网络应用,而未批准的网络应用426可以包括来自Dropbox、Gmail等的网络应用。例如,图4示出了经由CEB访问批准的应用426的情况。在操作(1)中,安装在客户机装置402上的客户机应用404的用户实例可以向云服务408的访问网关422注册或认证。例如,用户可以向客户机装置402认证该用户,并登录到客户机装置402。客户机应用可以自动执行或由用户激活。在一些实施例中,用户可以在客户机应用签到(例如,通过向客户机应用认证用户)。响应于登录或签到,客户机应用可以向访问网关422注册或认证用户和/或客户机应用。
在操作(2)中,响应于注册或认证,访问网关422可以识别或检索可用的或预分配给用户的列举的网络应用的列表,并且可以将该列表提供给客户机应用。例如,响应于注册或认证,访问网关可以识别用户和/或检索用户的用户简档。根据身份和/或用户简档,访问网关可以确定列表(例如,检索与用户简档和/或用户身份匹配的网络应用的存储的列表)。该列表可以对应于为用户批准的网络应用的列表。访问网关可以将列表发送到客户机应用或嵌入式浏览器,该列表可以经由客户机应用或嵌入式浏览器呈现给用户(例如,在店面用户界面中)以供选择。
在操作(3)中,用户可以通过从呈现给用户的网络应用列表中进行选择,来启动与批准的网络应用(例如SaaS应用)的连接。例如,用户可以点击经由客户机应用或者嵌入式浏览器显示的批准的网络应用的图标或其他表示。该用户动作可以触发CEB向配置网络应用的服务器发送连接或访问请求。该请求可以包括对服务器(例如,SaaS提供者)的请求,以与访问网关进行通信以认证用户。例如,服务器可以向访问网关发送请求以认证用户。
在操作(4)中,访问网关可以与服务器执行SSO,以认证用户。例如,响应于服务器对用户进行认证的请求,访问网关可以向用于SSO的服务器430提供用户的凭证,以访问所选择的网络应用和/或其他批准的网络应用。在操作(5)中,用户可以基于SSO(例如,使用凭证)登录到所选择的网络应用。客户机应用(例如,网络代理412和/或远程会话代理416)可以与服务器430建立安全连接和会话以访问所选择的网络应用。CEB可以解密经由安全连接接收到的应用流量。CEB可以监视经由CEB和到服务器430的安全连接发送的流量。
在操作(6)中,客户机应用可以将信息提供给云服务408的分析服务424,以进行分析处理。例如,客户机应用404的云服务代理414可以监视或捕获与所选择的网络应用的用户交互事件。云服务代理414可以将用户交互事件传达到分析服务424,以进行处理以产生分析。
图5描绘了用于使用安全浏览器的系统的示例实施例。在简要概述中,该系统包括云服务408、网络应用406和客户机装置402。在一些实施例中,系统的各种元件类似于以上针对图4所描述的元件,但是客户机应用(具有嵌入式浏览器)在客户机装置402中不可用。标准或典型的浏览器在客户机装置上可能是可用的,例如,用户可以从该浏览器发起访问批准的网络应用的请求。可以经由可由管理员设置或自动设置的策略(例如,经由人工智能)将网络应用指定为批准的或未批准的。
例如,在操作(1)中,用户可以使用标准浏览器登录到网络应用。为了访问批准的网络应用,用户可以经由标准浏览器访问预定义URL和/或配置网络应用的服务器的相应网页,以发起访问网络应用的请求。在一些实施例中,请求可以被转发到指定的网关服务或被指定的网关服务拦截(例如,在该请求的数据路径中)。例如,网关服务可以驻留在客户机装置上(例如,作为可执行程序),或者可以驻留在例如云服务408的网络装置432上。在一些实施例中,访问网关可以对应于或包括网关服务。网关服务可以确定所请求的网络应用是否为批准的网络应用。网关服务可以确定CEB是否发起了请求。该网关服务可以检测或以其他方式确定该请求是从在客户机装置中的非CEB的源发起的(例如,通过标准的浏览器发起的)。在一些实施例中,不需要指定的网关服务来检测或确定该请求是否从CEB发起,例如如果所请求的网络应用是批准的,该用户正在通过标准浏览器发起该请求,和/或被访问的是预定义的URL和/或相应网页。
在操作(2)中,服务器可以经由云服务408的访问网关对用户进行认证。服务器可以响应于请求,与访问网关进行通信以对用户进行认证。例如,该请求可以包括服务器与访问网关进行通信以认证用户的指示。在一些实施例中,服务器被预配置为与访问网关通信以认证用户,用于访问批准的网络应用的请求。服务器可以向访问网关发送请求以认证用户。响应于服务器认证用户的请求,访问网关可以将用户的凭证提供给服务器430。
在操作(3)中,网关服务和/或服务器可以定向(或重定向)所有流量到安全浏览器420,其提供安全浏览服务。这可以响应于以下中至少之一:确定所请求的网络应用是批准的网络应用,确定从非CEB的源发起该请求,确定所请求的网络应用是批准的,确定用户正在经由标准浏览器发起请求,和/或确定访问预定义的URL和/或相应的网页。
可以将用户的URL会话重定向到安全浏览器。例如,服务器、网关服务和/或访问网关可以响应于该确定,生成和/或发送URL重定向消息至标准浏览器。标准浏览器的安全浏览器插件可以接收URL重定向消息,并且可以例如向安全浏览器420发送访问未批准的网络应用的请求。安全浏览器420可以将请求定向到未批准的网络应用的服务器。URL重定向消息可以指示标准浏览器(和/或安全浏览器插件)将来自标准浏览器的流量(例如,发往网络应用)定向至托管在网络装置上的安全浏览器420。这可以经由动态路由通过安全浏览器服务提供无客户机访问和控制。在一些实施例中,在与服务器(例如,使用SSO)执行用户的认证之前,所有流量至安全浏览器420的重定向被启动或被配置。
在一些实施例中,网关服务可以定向或请求所请求的网络应用的服务器与安全浏览器420通信。例如,网关服务可以定向服务器和/或安全浏览器在服务器和安全浏览器之间建立安全连接,以建立用于网络应用的应用会话。
在一些实施例中,安全浏览器420包括托管在云服务408的网络装置432上的浏览器。安全浏览器420可以包括以上至少结合例如图4描述的安全浏览器420的一个或多个特征。所托管的浏览器可以包括CEB的嵌入式浏览器,其在网络装置432上托管,而不是在客户机装置上。所托管的浏览器可以包括托管在网络装置432上的CEB的托管虚拟化版本的嵌入式浏览器。与安装在客户机装置上的CEB类似,流量通过网络装置上托管的CEB路由,这允许管理员具有对通过CEB的流量的可视性,并保留对安全策略控制、分析和/或性能管理的控制。
图6示出了用于使用安全浏览器插件的浏览器重定向的示例实现。在简要概述中,该实施方式包括具有在客户机装置上操作的安全浏览器插件516的网络浏览器512、以及驻留在网络装置上的托管的web浏览器(或安全浏览器)522。web浏览器512可以对应于标准浏览器,而不是如上面结合例如图4所讨论的嵌入式浏览器。安全浏览器插件516可在第一网络510内执行并访问在第二网络530中的服务器532。第一网络510和第二网络530是出于说明的目的,并且可以用更少或更多的计算机网络代替。安全浏览器插件516可以安装在标准浏览器512上。插件可以包括一个或多个组件。一个这样的组件可以包括ActiveX控件或Java控件或能够加载到标准浏览器中并在其中执行的任何其他类型和/或形式的可执行指令。例如,标准浏览器可以在标准浏览器的存储空间或上下文中,加载并运行安全浏览器插件516的Active X控件。在一些实施例中,安全浏览器插件可以作为扩展安装在标准浏览器上,并且用户可以选择启用或禁用该插件或扩展。安全浏览器插件可以进行与安全浏览器420通信和/或操作,以保护、使用和/或访问数字工作空间的安全部分内的资源。
通过使用在标准浏览器512内操作的安全浏览器插件516,经由标准浏览器512访问的网络应用可以被重定向到托管的安全浏览器。例如,安全浏览器插件516可以被实现和/或设计为检测网络应用正在经由标准浏览器访问,并且可以定向/重定向与网络应用相关联的来自客户机装置的流量至托管的安全浏览器。托管的安全浏览器可以将从网络应用接收的流量定向到安全浏览器插件516和/或客户机代理514,以例如进行呈现和/或显示。客户机代理514可以在web浏览器512和/或安全浏览器插件内执行,并且可以包括以上结合至少例如图4讨论的客户机应用404的特定元件或特征。例如,客户机代理514可以包括用于在web浏览器512处呈现网络应用的远程会话代理418。在一些实施例中,在托管的安全浏览器处呈现网络应用,并且所呈现的数据被传送或镜像到安全浏览器插件516和/或客户机代理514以进行处理和/或显示。
通过示例的方式,用户可能正在远程工作并且可能想要访问网络应用,该网络应用是在安全的企业网络的内部,而用户正在连接到不安全网络的计算装置上工作。在这种情况下,用户可以利用在第一网络510中执行的标准浏览器512,其中第一网络510可以包括不安全的网络。用户想要访问的服务器430可能在第二网络530上,其中第二网络530包含例如安全的企业网络。用户可能无法通过点击安全网站532的内部统一记录定位符(URL)从不安全的第一网络510访问服务器430。即,用户在从外部不安全网络510执行标准浏览器512时,可能需要利用不同的URL(例如,外部URL)。外部URL可以被定向到,或者可以寻址被配置成在第二网络530(例如,安全网络)内访问服务器430的一个或多个托管的web浏览器522。为了保持安全访问,安全浏览器插件516可以将内部URL重定向到托管的安全浏览器的外部URL。
安全浏览器插件516能够实现网络检测,以便识别是否将内部URL重定向到外部URL。标准浏览器512可以接收包括在安全网络内执行的网站的内部URL的请求。例如,标准浏览器512可以接收响应于用户在标准浏览器中输入web网址(例如,用于安全网站532)的请求。安全浏览器插件516可以将用户web浏览器应用512从内部的URL重定向到托管的web浏览器应用的外部的URL。例如,安全浏览器插件516可以用在安全网络530内执行的托管的web浏览器应用522的外部URL替换内部URL。
安全浏览器插件516可以允许将客户机代理514连接到托管的web浏览器应用522。客户机代理514可以包括插件组件,例如ActiveX控件或Java控件或能够加载到标准浏览器512中并在其中执行的任何其他类型和/或形式的可执行指令。例如,客户机代理514可以包括由标准浏览器512加载和运行的ActiveX控件,诸如在用户web浏览器应用512的存储空间或上下文中。客户机代理514可以被预配置为在用户web浏览器应用512内呈现托管的web浏览器应用522的内容。
客户机代理514可以连接到服务器或云/托管的web浏览器服务520,其使用瘦客户机或远程显示协议来呈现由在服务520上执行的托管的web浏览器应用522生成的显示输出。瘦客户机或远程显示协议可以是以下协议的非穷举列表中的任何一个:由佛罗里达州劳德代尔的思杰系统公司开发的独立计算架构(ICA)协议;或由华盛顿州雷德蒙德的微软公司制造的远程桌面协议(RDP)。
托管的web浏览器应用522可以在全屏模式中导航到所请求的网络应用,并且可以呈现所请求的网络应用。客户机代理514可以例如基于正在以全屏模式显示的内容以无缝和透明的方式呈现web浏览器应用512上的网络应用的内容或重现,使得看起来该内容正被标准浏览器512显示。换句话说,可以给用户的印象是网站内容是由用户web浏览器应用512而不是由托管的web浏览器应用522显示的。客户机代理514可以使用瘦客户机或远程显示协议,将由用户web浏览器应用512生成的导航命令发送到托管的web浏览器应用522。由于导航命令对托管的web浏览器应用522的显示输出的改变,可以由客户机代理514反映在用户web浏览器应用512中,从而给用户印象:导航命令是由用户web浏览器应用512执行的。
再次参考图5,在操作(4)中,可以在标准浏览器上打开新的浏览器选项卡,以呈现或显示安全浏览器会话。例如,可以通过安全浏览器插件建立或打开新的浏览器选项卡。安全浏览器插件和/或客户机代理可以从安全浏览器会话接收数据,并且可以如以上结合例如图6所讨论的那样在新的浏览器选项卡内呈现网络应用。
在操作(5)中,安全浏览器可以将经由网络应用的所有用户交互事件馈送回分析服务以进行处理。安全的浏览器插件可以在浏览器选项卡内监视并拦截定向到网络应用的重现的任何用户交互事件。因此,用户可以使用本机(或标准)的浏览器访问网络应用,同时经由云服务和安全浏览器的互操作(在没有客户机应用的情况下),允许对网络应用的流量的可见性。
图7描绘了使用安全浏览器的系统的另一个示例性实施例。在简要概述中,该系统包括云服务408、网络应用406和客户机装置402。在一些实施例中,系统的各种元件与以上针对图5描述的元件相似。在客户机装置402中,具有嵌入式浏览器的客户机应用不可用。在客户机装置上,标准的或典型的(例如,HTML5)浏览器是可用的,用户可以从其发起访问未批准的网络应用的请求。可以经由可由管理员设置或自动设置的策略(例如,经由人工智能)将网络应用指定为批准的或未批准的。
在操作(1)中,用户可以尝试使用标准浏览器登录到未批准的网络应用。用户可以尝试访问配置该网络应用的服务器的网页,并发起访问该网络应用的请求。在一些实施例中,请求可以被转发到指定的网关服务或被指定的网关服务拦截(例如,在请求的数据路径中)。例如,网关服务(有时称为SWG)可以驻留在客户机装置上(例如,作为可执行程序),或者可以驻留在例如云服务408的网络装置432上。网关服务可以检测或以其他方式确定所请求的网络应用是否为批准的网络应用。网关服务可以确定CEB是否发起了请求。网关服务可以检测或以其他方式确定该请求是从客户机装置中除CEB之外的源发起的(例如,由标准浏览器发起的)。
在操作(2)中,网关服务检测到所请求的网络应用是未批准的网络应用。网关服务可以例如从请求中提取信息(例如,目的地址、所请求的网络应用的名称),并将该信息与来自批准和/或未批准的网络应用的数据库的信息进行比较。网关服务可以基于比较确定所请求的网络应用是未批准的网络应用。
在操作(3)中,响应于该确定,网关服务可以阻止对所请求的网络应用的访问,例如通过阻止请求。响应于该确定,网关服务可以生成和/或发送URL重定向消息至标准浏览器。URL重定向消息可以类似于图5中操作(3)中从服务器发送到标准浏览器的URL重定向消息。标准浏览器的安全浏览器插件可接收URL重定向消息,并且可以例如向安全浏览器420发送访问未批准的网络应用的请求。安全浏览器420可以将请求定向到未批准的网络应用的服务器。
未批准的网络应用的服务器可以例如响应于从安全浏览器接收到请求,经由云服务408的访问网关来认证用户。响应于该请求,服务器可以与访问网关通信以认证用户。服务器可以向访问网关发送认证用户的请求。响应于服务器对用户进行认证的请求,访问网关可以向服务器430提供用户的凭证。在认证时,安全浏览器(或相应的CEB)可以与服务器建立安全连接和应用会话。
在操作(4)中,可以在标准浏览器上打开新的浏览器选项卡,以呈现或显示安全浏览器的应用会话。例如,可以由安全浏览器插件建立或打开新的浏览器选项卡。安全浏览器插件和/或客户机代理可以从安全浏览器会话接收数据,并且可以在新的浏览器选项卡内呈现网络应用,如以上结合例如图5-6所讨论的。
在操作(5)中,安全浏览器可以经由网络应用将所有用户交互事件馈送回分析服务以进行处理。安全浏览器插件可以在浏览器选项卡内监视并拦截任何涉及网络应用重现的用户交互事件。因此,用户可以使用本机(或标准)浏览器访问网络应用,同时允许经由云服务和安全浏览器(在没有客户机应用的情况下)的互操作的对于网络应用的流量的可见性。
在某些实施例中,在CEB在客户机装置上不存在或不可用的情况下,执行浏览器重定向,使得经由用于处理的相应的托管安全浏览器(或托管CEB)访问每个请求的网络应用,而不是将所有流量重定向通过单个托管的安全浏览器(或托管的CEB)。每个专用的安全浏览器都可以提供分区功能并提高安全性。
CEB的使用,无论是托管的还是客户机装置本地的,都可以允许应用流量的端到端可见性以进行分析、服务水平协议(SLA)、资源利用、审计等。除了这种可见性,CEB可以配置有用于管理和控制任何这些方面以及其他方面的策略。例如,可以支持DLP特征以控制“复制和粘贴”活动、文件下载、文件共享以及例如实施水印。作为另一个示例,CEB可以配置有用于管理和控制对本地驱动器和/或装置资源(例如外围装置)的访问的策略。
现在参考图8,描绘了用于使用本地嵌入式浏览器和托管安全浏览器的系统的示例实施例。示出了环境,其中可以使用不同类型的客户机装置402A、402B(例如,在BYOD环境中),使得一个客户机装置可以在本地配备有合适的CEB,而另一客户机装置可能没有安装合适的本地CEB。在这样的环境中,可以使用图4、5和7中描述的系统,以基于本地安装的合适CEB的可用性支持每个客户机装置。
图9描绘了用于使用本地嵌入式浏览器和托管安全浏览器的示例处理流程。该处理流程可以在以上图8中描述的环境中使用,以确定对于每个客户机装置访问网络应用应使用嵌入式浏览器还是托管的安全浏览器。例如,在操作901中,HTTP客户机可以尝试访问web服务(例如,网络应用的服务器)。在操作903中,网络服务可以将HTTP客户机重定向到网关服务以进行认证。在操作906中,网关服务可以确定HTTP客户机是否为CEB。如果是这样,则在操作909中,网关服务可以确定CEB是否是合适的CEB,例如能够执行所定义的应用策略。如果是这样,则在操作911中,允许CEB访问网络服务,并且可以执行所定义的策略。
如果网关服务确定该HTTP客户机不是CEB,则在操作907中,网关服务可使CEB的虚拟化版本被初始化并被托管在远程服务器(例如,云服务408的网络装置432)上。在一些实施例中,这样的托管CEB在网络装置432上可能已经可用,并且可以被选择使用。例如,在操作911中,CEB被允许访问web服务,并且可以执行所定义的策略。
如果网关服务确定HTTP客户机是CEB,但是该CEB不是合适的CEB,则在操作907中,网关服务可以使CEB的虚拟化版本被初始化并被托管在远程服务器(例如,云服务408的网络装置432)上。在一些实施例中,这样的托管CEB可能已经在网络装置432上可用,并且可以被选择使用。例如,在操作911中,CEB被允许访问web服务,并且可以执行所定义的策略。
在一些实施例中,如果用户正在请求访问位于公司数据中心中的web应用,则网关服务(在云服务中或在内部)可以在检测到具有CEB的客户机应用时允许访问。否则,可以将请求路由到具有CEB的托管虚拟化版本的服务,然后对访问进行认证和授权。
例如,在操作905和/或操作909中,关于HTTP客户机是否是CEB以及它是否是合适的CEB的决定可以由许多因素来确定。例如,为了确定HTTP客户机是否是CEB,该网关服务可以考虑例如包括以下中至少之一的因素:用户身份和认证的强度、客户机位置、客户机IP地址、用户身份被信任程度、客户机位置、客户机IP、客户机装置的越狱状态、反恶意软件状态、对客户机装置的企业策略的遵从、和/或客户机软件的完整性的远程证明或其他证据。
为了确定CEB能够兑现或支持所有定义的应用策略(这可以由于客户机版本、客户机OS平台和其他因素而变化),客户机装置的软件和网关服务可以执行能力协商和/或交换版本信息。在一些实施例中,网关服务可以查询或检查CEB的版本号或标识符,以确定CEB是否是要使用的合适的CEB。
驱动所有流量通过CEB,然后允许对访问基于SaaS和Web的系统的内容进行附加控制。SaaS和Web流量的数据丢失防护(DLP)可以通过CEB app来应用,其特征包括将对其他CEB访问应用或IT管理的装置的复制和粘贴控制。通过使内容只能在IT控制下下载到指定的文件服务器或服务,也可以执行DLP。
现在参考图10,描绘了用于管理用户对网页的访问的系统的示例实施例。某些网页(或网站)被认为是安全的,而另一些网页则可能是可疑的。用户可以通过标准浏览器经由相应的URL访问网页。例如,用户可以点击与URL相对应的链接,该链接可以包括在使用邮件应用正在查看的电子邮件中。访问网关(SWG)可以拦截通过点击链接而生成的访问请求,并且可以确定相应的URL是安全的还是可疑的。如果URL被认为是安全的,则访问网关可以允许请求继续进行至相应的网站或web服务器。如果该URL是可疑的,则访问网关可以重定向请求经由托管的安全浏览器处理。安全浏览器可以请求访问和访问网页(代表标准浏览器),并且可以允许将网页信息传送到标准浏览器,类似于经由浏览器重定向对网络应用的处理,如结合至少图7和5所讨论的。
C.用于经由嵌入式浏览器提供数据丢失防护的系统和方法
具有嵌入式浏览器(CEB)的客户机应用可用于访问托管在各种服务器上的应用和资源。这些应用可以包括,例如,经由浏览器访问的web应用、云托管的应用(例如,作为软件即服务(SaaS)、基础设施即服务(IaaS)和平台即服务(PaaS)的一部分)、以及托管在虚拟机上的虚拟应用等。可以选择经由应用访问的数据并将其存储在临时数据高速缓存或缓冲区中,然后作为复制和粘贴操作的一部分复制到其他应用上。然而,在没有任何其他控制的情况下,数据安全性可能会受到损害,潜在的敏感信息将从应用中泄漏。
为了防止数据安全性的这种下降,可以通过CEB限制对托管在服务器上的应用和资源上的数据的访问。在CEB中,可以经由激活CEB的复制按钮或预设按键(例如CTRL+C)来接收来自一个应用的复制命令以及所选择的数据(例如,文本或图像)。作为将所选择的内容存储到本地操作系统(OS)剪贴板中的替代或补充,可以将数据存储在安全容器中。安全容器可以高速缓存数据,并且可以使用加密密钥对数据进行加密。安全容器可以驻留在客户机本地的CEB的高速缓存中和/或远程驻留在托管应用或基于云的服务的服务器之一上。当安全容器远程驻留时,可以在多个客户机装置(例如,用户已登录的客户机装置)之间共享数据和用于加密数据的加密密钥。
随后可以通过CEB访问另一个应用。当使用CEB的粘贴按钮或预设按键(例如CTRL+V)在后续应用上接收到粘贴命令时,可以对照数据丢失防护策略检查该应用。该策略可以指定经由CEB访问的哪些应用、运行CEB的哪些装置类型、哪些用户帐户、和/或客户机运行CEB所在的哪个位置、以及其他考虑因素,具有对安全容器上保持的数据的权限。该策略还可以指定是否移除包含数据的敏感信息,即使有访问权限也是如此。如果该策略允许后续应用访问安全容器,则可以检索保持在存储容器中的数据,并将其复制到应用上或提供给应用。另外,如果该策略指定要编辑包含在数据中的敏感信息以用于后续应用,则可以对数据进行解析以确定该数据是否包含任何敏感数据,并且可以根据政策编辑数据的该部分。以这种方式,可以实现数据丢失防护并且可以增强数据安全性。
参考图11,描绘了用于管理跨网络环境运行的应用的进程间通信的系统1100的框图。系统1100可以在云上(例如,由服务器430提供)包括一个或多个客户机应用404A-N和一组网络应用1105。每个客户机应用404A-N可以是本文先前详细描述的客户机应用404的实例,并且除其他组件之外,还可以包括嵌入式浏览器410A-N和安全容器418A-N。在一些实施例中,客户机应用404A-N可以在与单个用户账户相关联的不同客户机装置上执行。在一些实施例中,至少两个客户机应用404A-N可以在单个客户机装置上执行,并且可以与单个数字工作空间和/或用户帐户相关联。网络应用1105可以对应于用于电子剪贴板的基于云的服务,并且可以包括进程间通信(IPC)管理器1110、一个或多个应用1115A-N以及安全容器1120。网络应用1105可以是如上结合至少例如图4-5所描述的云服务408的一部分。
如本文先前所详述,每个应用1115A-N可以包括网络应用406的批准的应用426和未批准的应用428。IPC管理器1110可以包括数据传输引擎1130、策略执行器引擎1135、数据分析引擎140和/或策略1145。在某些实施例中,IPC管理器1110可以与网络应用1105一起驻留在一个或多个服务器或基于云的资源上。在一些实施例中,IPC管理器1110可以驻留在每个客户机应用404A-N上(例如,作为嵌入式浏览器410A-N的一部分)。在一些实施例中,IPC管理器1110的功能可以在客户机应用404A-N和网络应用1105之间划分,例如,以在每个客户机应用404A-N中执行的IPC代理的形式。
在一个或多个实施例中,以硬件或硬件和软件的组合来实现上述元件或实体中的每一个。系统1100的每个组件可以使用以上结合图1详细描述的硬件或硬件或软件的组合来实现。例如,这些元件或实体中的每一个都可以包括在客户机装置的硬件(例如,客户机应用404A-N)或一个或多个服务器(例如,网络应用1105)上执行的任何应用、程序、库、脚本、任务、服务、进程或任何类型和形式的可执行指令。在一个或多个实施例中,硬件包括诸如一个或多个处理器的电路。
安全容器1120、418中的每一个可以包括以上结合至少图3和4描述的安全容器316、418的元件的实施例。安全容器1120、418中的每一个可以包括电子、数字或虚拟剪贴板(例如,滚动剪贴板)、高速缓存或缓冲区。在一些实施例中,安全容器1120、418被实现为代替客户机装置的操作系统(OS)剪贴板或独立于客户机装置的操作系统(OS)剪贴板而操作。在一些实施例中,客户机应用404A-N可以具有一个或多个策略,该策略控制是否可以在安全容器1120、418中的任何一个与客户机装置的OS剪贴板之间传输或共享数据。
数据传输引擎1130可以检测要经由第一客户机应用404A的第一嵌入式浏览器410A复制在第一应用1115A(有时称为源应用)上被访问的数据1125的命令。在一些实施例中,数据传输引擎1130可以经由交互事件监听器检测用于复制数据1125的命令,该命令经由第一客户机应用404A的第一嵌入式浏览器410A上的复制用户界面元件(例如,复制按钮)被激活。在一些实施例中,数据传输引擎1130可以经由交互事件监听器检测用于复制数据1125的命令,该命令经由预设的按键(例如,CTRL+C)被激活。在一些实施例中,复制用户界面元件和/或预设的按键被实现为特定于第一客户机应用404A的嵌入式浏览器410A的特征,以便与客户机装置的操作系统(OS)剪贴板区分,并独立于客户机装置的操作系统(OS)剪贴板操作。在检测到要复制的命令时,数据传输引擎1130可以识别要从第一应用1115A中复制的数据1125。在一些实施例中,数据传输引擎1130可以识别要复制的所选择数据1125(例如,经由高亮显示)。数据1125可以包括例如文本、图像、视频、音频剪辑或任何格式(例如,.DOC、.XLS、.AVI或.TXT)的文件。在一些实施例中,数据传输引擎1130可以生成要复制的数据1125的元数据。例如,元数据可以包括或识别要复制的数据1125的数据类型(例如,文本、图像、视频或文件格式)。数据传输引擎1130可以将元数据与数据1125一起存储到安全容器1120上。在一些实施例中,数据传输引擎1130可以识别与复制命令有关的第一嵌入式浏览器410A的标识符、第一客户机应用404A的标识符或第一应用1115A 的标识符。这些信息可以例如由用户用来识别或确定随后从安全容器1120中检索的相应数据1125。随着来自第一应用1115A的数据1125的标识,数据传输引擎1130可以将数据1125存储到安全容器1120上。在一些实施例中,数据传输引擎1130可以将第一嵌入式浏览器410A的标识符、第一客户机应用404A的标识符或第一应用1115A的标识符(例如,作为与数据1125一起的元数据)存储到安全容器1120上。数据传输引擎1130可以通过第一嵌入式浏览器410A的标识符、第一客户机应用404A的标识符、或第一应用1115A的标识符,将数据1125索引在安全容器112上。数据传输引擎1130或第一客户机应用404A可以将数据1125与第一嵌入式浏览器410A的标识符、第一客户机应用404A的标识符或第一应用1115A的标识符一起存储到安全容器1120上。在一些实施例中,通过将数据1125存储到本地安全容器418上,以在由相应的客户机装置访问的不同网络应用之间进行传输,相对于在客户机装置和云(例如,安全容器1120托管于此)之间来回传输数据1125,可以消耗更少的带宽。
数据传输引擎1130可以将来自第一应用1115A的数据1125保持在安全容器1120上。安全容器1120可以包括存储器(例如,数据缓冲区或高速缓存)和/或专用于(或指定给或分配给)第一应用1105A和/或第一客户机应用404A的服务器上的磁盘空间。在一些实施例中,数据传输引擎1130可以使用加密密钥来加密数据1125。在某些实施例中,整个安全容器1120的内容被加密或以其他方式保护以防止被访问。数据传输引擎1130可以使用非对称密码算法或对称密码算法(例如,公钥密码术)来生成加密密钥。在一些实施例中,加密密钥可以特定于数据1125和/或用户。在一些实施例中,加密密钥可以用于包括保持在安全容器1120上的数据1125在内的所有数据。应用了加密密钥之后,数据传输引擎1130可以将加密数据1125和/或加密密钥存储在安全容器1120上。数据传输引擎1130还可以将对数据1125进行索引的元数据与加密密钥一起存储在安全容器112上,元数据例如第一嵌入式浏览器410A的标识符、第一客户机应用404A的标识符和/或第一应用1115A的标识符。在一些实施例中,数据传输引擎1130也将数据1125的数据类型与数据1125一起存储到安全容器1120上。在一些实施例中,数据传输引擎1130或第一客户机应用404A可以将数据1125保持、加密、复制和/或存储到本地安全容器418A上。
即使在第一客户机应用404A、第一客户机应用404A的第一嵌入式浏览器418A、或经由第一嵌入式浏览器410A访问的第一应用1115A终止之后,数据传输引擎1130也可以继续保持安全容器1120上的数据1125至少预定时间段,以用于将来的复制。在一些实施例中,第一客户机应用404A或第一嵌入式浏览器418A的终止可以与用户会话的终止(例如,注销)相关联或者可以与之相对应。第一应用1115A的终止可以与用户会话的终止(例如,注销或导航到另一个应用1115B-N)有关或与之相对应。在一些实施例中,第一客户机应用404A或第一嵌入式浏览器418A的终止可以与运行第一客户机应用404A的客户机装置的关闭有关或可以与之相对应。在一些实施例中,数据传输引擎1130可以检测第一客户机应用404A、第一客户机应用404A的第一嵌入式浏览器418A或第一应用1115A的终止。在检测到终止时,或者在终止之前,数据传输引擎1130可以存储与复制数据1125至安全容器1120上的命令相关联的帐户标识符和/或其他帐户信息(例如,用于登录的用户简档和/或生物特征信息)。在一些实施例中,当数据1125存储在本地安全容器418A中时,数据传输引擎1130可以(例如自动地)从本地安全容器418A检索数据1125并将数据1125存储在安全容器1120上。数据传输引擎1130可以跨一个或多个本地安全容器418A和安全容器1120备份或同步数据1125(例如,当每个本地安全容器418A-N在线或以其他方式与安全容器1120连接时)。例如,当用户签到/登录到客户机装置,或使用客户机装置时,该客户机装置上的CEB可以为用户检索和/或匹配用户简档,并且将本地安全容器418连接到分配或链接到同一用户简档(或用户)的相应的安全容器1120(或其一部分)。本地安全容器418可以将针对用户或用户简档保持的数据与相应的安全容器1120同步。该同步可以在后台进行,例如,在客户机装置上本地发出对任何数据的请求之前。在一些实施例中,根据本地请求从安全容器1120传输所请求的数据,并将其应用于本地安全容器418和/或目的地应用/位置。以这种方式,可以跨多个客户机应用404A-N和运行客户机应用404A-N的多个客户机装置从安全容器1120访问数据1125。另外,在将来的用户会话中,用户和/或其他应用1115A-N可以访问保持在安全容器1120上的数据1125。
在检测到来自第一应用1115A的复制命令之后,数据传输引擎1130可以检测到将数据1125复制(例如,粘贴、键入、输入或加载)到第二应用1115B上的命令(有时被称为目标应用)。在一些实施例中,第二应用1115B可以与第一应用1115A相同(例如,类型和/或版本)或可以不同。在一些实施例中,数据传输引擎1130可以经由交互事件监听器检测复制数据1125的命令,其通过使用复制用户界面元件在客户机装置上发起。在一些实施例中,数据传输引擎1130可以经由交互事件监听器来检测复制数据1125的命令,其经由预设的按键(例如,CTRL+V)在客户机装置上发起。在一些实施例中,复制用户界面元件和/或当前按键是专门针对客户机装置的嵌入式浏览器410实现的。在一些实施例中,第二应用1115B可以从第一客户机应用404A的第一嵌入式浏览器410A访问,其与第一应用1115A相同。在一些实施例中,可以从第二客户机应用404B的第二嵌入式浏览器410B访问第二应用1115B。第二嵌入式浏览器410B可以在与运行第一嵌入式浏览器410A的客户机装置不同的客户机装置上运行。运行第一嵌入式浏览器410A的客户机装置可以与运行第二嵌入式浏览器410B的客户机装置具有不同的装置类型。例如,执行第一嵌入式浏览器410A的客户机装置可以是膝上电脑,而运行第二嵌入式浏览器410B的客户机装置可以是智能手机。在一些实施例中,可以使用单个用户帐户和/或在相同的用户简档下访问第一客户机应用404A和第二客户机应用404B。例如,用户可能已经使用单个帐户标识符和帐户密码,登录到所述第一客户机应用404A以访问第一应用1115A,并登录到第二客户机应用404B以访问第二应用1115B。在一些实施例中,可以在不同的用户帐户下访问第一客户机应用404A和第二客户机应用404B。不同的用户帐户可以是用户共享组的一部分。例如,使用经由用户共享组绑定的各自的用户帐户,第一用户可能已登录到第一客户机应用404A,第二用户可能已经登录到第二客户机应用404B。鉴于前述,数据1125可以在不同的客户机应用、客户机装置和/或用户账户/简档之间共享。
在接收到将数据1125复制到第二应用1115B的命令后,数据传输引擎1130可以识别在安全容器1120上保持的数据1125。在一些实施例中,当数据1125被存储在第一客户机应用404A的本地安全容器418A处时,数据传输引擎1130可以识别来自本地安全容器418A的数据1125以复制到第二应用1115B上。以这种方式,策略执行器引擎1135可以允许数据1125的端到端传输。在一些实施例中,当数据1125被存储在第一客户机应用404A的本地安全容器418A处时,数据传输引擎1130可以从本地安全容器418A检索数据1125,并且可以将数据1125存储在安全容器1120上。在一些实施例中,为了识别和/或复制数据1125,数据传输引擎1130可以识别第一嵌入式浏览器410A的标识符、第一客户机应用404A的标识符、第一应用1115A的标识符、和/或来自安全容器1120或本地安全容器418A的数据1125的数据类型。数据传输引擎1130还可以识别第二应用1115B的标识符、访问第二应用1115B的客户机装置的装置类型、客户机装置的位置、和/或与复制数据1125的命令有关的用于访问第二应用1115B的账户标识符。
一旦数据1125被识别,策略执行器引擎1135可以在复制数据1125时应用策略1145。策略1145可以指定安全容器1120或418A上的数据1125,是否被允许从一个应用(例如,第一应用1115A)复制到另一应用(例如,第二应用1115B)上。在一些实施例中,策略1145可以特定于数据1125的源应用,例如第一应用1115A、第一客户机应用404A或第一嵌入式浏览器410A。在一些实施例中,策略1145可以指定哪些目的地应用1115B-N被允许复制数据1125。在一些实施例中,策略1145可以指定访问第二应用1115B的客户机的哪些装置类型被允许复制数据1125。在一些实施例中,策略1145可以指定数据1125的哪些数据类型被允许复制到第二应用1115B。策略1145在指定是否允许数据1125的复制时也可以是上下文特定的。在一些实施例中,策略1145可以指定位置,来自该位置的访问第二应用1115B的客户机被允许复制数据1125。在一些实施例中,策略1145可以指定用于访问第二应用1115B的哪些帐户标识符被允许复制数据1125。在一些实施例中,策略1145可以在复制到第二应用1115B上之前,指定是否要更改或移除(例如,编辑、模糊化、涂黑、删除)数据1125的一个或多个部分。
根据策略1145,策略执行器引擎1135可以确定是否将数据1125复制到第二应用1115B上。在一些实施例中,策略执行器引擎1135可以针对策略1145,检查第一嵌入式浏览器410A的标识符、第一客户机应用404A的标识符、第一应用1115A的标识符、数据1125的数据类型、和/或第二应用1115B的标识符。在一些实施例中,使用第一应用1115A标识符、第一嵌入式浏览器410A的标识符、或第一客户机应用404A的标识符,策略执行器引擎1135可以识别特定于源应用(包括第一应用1115A、第一嵌入式浏览器410A、或第一客户机应用404A)的策略1145。
使用第二应用1115B的标识符,策略执行器引擎1135可以确定根据策略1145是否允许第二应用1115B复制数据1125。如果策略1145指定不允许将数据1125复制到第二应用1115B,策略执行器引擎1135可以限制数据1125到第二应用1115B上的复制。在一些实施例中,策略执行器引擎1135可以向访问第二应用1115B的客户机应用404A或404B发送消息,该消息指示不允许复制数据1125。客户机应用404A或404B继而可以使访问第二应用1115B的嵌入式浏览器410A或410B显示提示,通知数据1125不允许被复制到第二应用1115B上。在另一方面,如果策略1145指定数据1125被允许复制到第二应用1115B,策略执行器引擎1135可以允许数据1125被复制到第二应用1115B(例如,不发出通知或警告)和/或使用策略1145执行其他检查。
策略执行器引擎1135可以对照策略1145检查访问第二应用1115B的客户机装置的装置类型。如果策略1145指定不允许使用访问第二应用1115B的客户机装置的装置类型进行数据1125的复制,则策略执行器引擎1135可以限制数据1125到第二应用1115B上的复制。在一些实施例中,策略执行器引擎1135可以向访问第二应用1115B的客户机应用404A或404B发送消息,该消息指示不允许复制数据1125。客户机应用404A或404B继而可以使访问第二应用1115B的嵌入式浏览器410A或410B显示提示,通知数据1125不允许被复制到第二应用1115B上。另一方面,如果策略1145指定允许使用访问第二应用1115B的客户机装置的装置类型复制数据1125,则策略执行器引擎1135可以允许将数据1125复制到第二应用1115B上或使用策略1145执行其他检查。
策略执行器引擎1135可以对照策略1145检查数据1125的数据类型。如果策略1145指定该数据类型的数据1125不允许被复制到第二应用1115B上,则策略执行器引擎1135可以限制数据1125到第二应用1115B上的复制。在一些实施例中,策略执行器引擎1135可以向访问第二应用1115B的客户机应用404A或404B发送消息,该消息指示不允许复制数据1125。客户机应用404A或404B继而可以使访问第二应用1115B的嵌入式浏览器410A或410B显示提示,通知数据1125不允许被复制到第二应用1115B上。另一方面,如果策略1145指定该数据类型的数据1125被允许复制到第二应用1115B上,则策略执行器引擎1135可以允许将数据1125复制到第二应用1115B上和/或使用策略1145执行其他检查。
策略执行器引擎1135可以对照策略1145检查访问第二应用1115B的客户机装置的位置。如果策略1145指定访问第二应用1115B的客户机装置的位置不允许数据1125的复制,则策略执行器引擎1135可以限制数据1125到第二应用1115B上的复制。在一些实施例中,策略执行器引擎1135可以向访问第二应用1115B的客户机应用404A或404B发送消息,该消息指示不允许复制数据1125。客户机应用404A或404B继而可以使访问第二应用1115B的嵌入式浏览器410A或410B显示提示,通知数据1125不允许被复制到第二应用1115B上。另一方面,如果策略1145指定访问第二应用1115B的客户机装置的位置允许数据1125的复制,则策略执行器引擎1135可以允许将数据1125复制到第二应用1115B上和/或使用策略1145执行其他检查。
策略执行器引擎1135可以对照策略1145检查用于访问第二应用1115B的帐户标识符。如前所述,用于访问数据1125所源自的第一应用1115A的用户帐户可以不同于用于访问第二应用1115B的用户帐户。如果策略1145指定使用用于访问第二应用1115B的账户标识符不允许数据1125的复制,则策略执行器引擎1135可以限制数据1125到第二应用1115B上的复制。在一些实施例中,策略执行器引擎1135可以向访问第二应用1115B的客户机应用404A或404B发送消息,该消息指示不允许复制数据1125。客户机应用404A或404B继而可以使访问第二应用1115B的嵌入式浏览器410A或410B显示提示,通知数据1125不允许被复制到第二应用1115B上。另一方面,如果策略1145指定使用用于访问第二应用1115B的帐户标识符允许数据1125的复制,则策略执行器引擎1135可以允许将数据1125复制到第二应用1115B上或使用策略1145执行其他检查。
在确定数据1125到第二应用1115B上的复制受到限制的情况下,策略执行器引擎1135可以确定是否要根据策略1145更改或移除数据1125的一个或多个部分。策略1145可以指定在复制之前从数据1125中移除预定义类型的信息。在一些实施例中,预定义类型的信息可以包括个人识别信息(PII),诸如物理家庭住址、电子邮件地址、护照号码、车辆牌照号码、驾驶执照号码、信用卡号码、电话号码、美元数额、和出生日期等。在一些实施例中,预定义类型的信息可以包括机密或受限制的信息,诸如客户信息、定价信息等。在一些实施例中,预定义类型的信息可以包括元数据、发送者名称和接收者名称等等。在一些实施例中,策略执行器引擎1135可以调用数据分析引擎1140以识别在复制到第二应用1115B上之前将要更改或移除数据1125的一个或多个部分。
数据分析引擎1140可以使用模型来识别要更改或移除的数据1125的一个或多个部分。在一些实施例中,模型可以是自然语言处理算法的一部分。该模型可以包括用于预定义类型的信息的格式或正则表达式。在一些实施例中,模型可以包括具有一个或多个权重的人工神经网络。数据分析引擎1140可以使用训练数据集来训练模型。训练数据集可以包括被标记为与数据1125中的要更改或移除的预定义类型的信息相关的文本语料库。训练数据集的文本语料库可以包括样本物理家庭住址、电子邮件地址、护照号码、车辆牌照号码、驾驶执照号码、信用卡号码、电话号码、美元数额和出生日期等。一旦训练了模型,数据分析引擎1140就可以使用该模型来解析数据1125。在解析数据1125时,数据分析引擎1140可以根据策略1145,将数据1125的一个或多个部分辨认或识别为与预定义类型的信息中的一个匹配。在一些实施例中,数据分析引擎1140可为被识别为与预定义类型的信息中的一个匹配的数据1125的一个或多个部分分配分数。该分数可以指示匹配的可能性或安全风险度量。如果数据1125包括文本字符串,则一个或多个部分可各自包括在数据1125内由数据分析引擎1140标识为与预定义类型的信息匹配的字符集。
利用在数据1125内被识别的一个或多个部分,策略执行器引擎1135可以根据策略11145从数据1125更改或移除一个或多个部分。策略1145可以基于用于访问第二应用1115B的用户账户指定要更改或移除来自数据1125的一个或多个部分。在一些实施例中,如果用于访问第二应用1115B的用户帐户与用于访问数据1125的源应用的用户帐户相同,则策略1145可以指定要保留数据1125内的一个或多个部分。在一些实施例中,如果用于访问第二应用1115B的用户帐户与用于访问数据1125的源应用的用户帐户不同,则策略1145可以指定要更改或移除该数据1125内的一个或多个部分。如果分数高于预定阈值,策略1145还可以指定要更改或移除一个或多个部分。
在一些实施例中,策略执行器引擎1135可以删除与由数据分析引擎1140识别的一个或多个部分相对应的字符集。在一些实施例中,策略执行器引擎1135可以用预定义字符串替换与一个或多个部分相对应的字符集。在一些实施例中,策略执行器引擎1135可以在移除了一个或多个部分的数据1125内的预定位置处,添加预定义字符串。预定义字符串可以包括指示根据策略1145已经从数据1125中删除了相应部分的消息。在一些实施例中,策略执行器引擎1135可以向第一应用1115A的管理员发送指示尝试撤回或检索敏感信息的消息。该消息还可以包括用于访问第二应用1115B的帐户标识符、第二应用1115B的标识符、访问第二应用1115B的客户机应用404A或404B的标识符、以及访问第二应用1115B的嵌入式浏览器410A或414B的标识符。
当确定允许将数据1125复制到第二应用1115B上时,数据传输引擎1130可以将数据1125复制到第二应用1115B上。数据传输引擎1130还可以识别用于对来自安全容器1120的数据1125进行加密的加密密钥。一旦被识别,数据传输引擎1130可以在复制到第二应用1115B上之前对数据1125进行解密。在一些实施例中,数据传输引擎1130可以将与数据1125相对应的文本、图像、视频和/或文件复制到第二应用1115B上。在一些实施例中,数据传输引擎1130可以将数据1125插入到经由嵌入式浏览器418A或418B访问的第二应用1115B的图形用户界面内的位置上。在一些实施例中,数据传输引擎1130可以复制数据1125,其中策略执行器引擎1135根据策略1145移除了一个或多个部分。以这种方式,IPC管理器1110可以防止潜在的敏感数据泄漏。
参考图12,描绘了管理跨网络环境运行的应用的进程间通信的方法1200的流程图。方法1200的功能可以使用本文结合图1-11A详细描述的组件来实现,或由其执行。简要概括,进程间通信(IPC)管理器可以识别来自第一应用的共享数据(1205)。IPC管理器可以将策略应用于共享数据(1210)。IPC管理器可以从共享数据中移除敏感信息(1215)。IPC管理器可以允许将共享数据复制到第二应用(1220)。
更详细地,IPC管理器可以识别来自第一应用的共享数据(1205)。可以经由客户机应用的嵌入式浏览器来访问第一应用。IPC管理器可以检测经由嵌入式浏览器访问的第一应用上复制共享数据的命令。在检测到复制的命令时,IPC管理器可以识别所选择的数据,并且可以将所选择的数据存储到安全容器上。安全容器可以是专用的、指定给或分配给嵌入式浏览器的存储装置(例如,存储器和/或硬盘)。然后,IPC管理器可以随后检测将共享数据复制(例如粘贴、键入、输入、加载)到第二应用上的命令。可以经由跨不同用户帐户和各种客户机应用的与第一应用相同的嵌入式浏览器或另一个嵌入式浏览器访问第二应用。
IPC管理器可以将策略应用于共享数据(1210)。该策略可以基于多个因素来指定是否允许将共享数据复制到第二应用上,多个因素例如用于访问第二应用的用户帐户、共享数据的数据类型、访问第二应用的客户机的位置、访问第二应用的客户机的装置、以及第二应用本身等等。通过应用该策略,IPC管理器可以确定是否允许将数据复制到第二应用上。如果确定不允许数据的复制,则IPC管理器可以向访问第二应用的嵌入式浏览器发送无法执行复制的消息。
IPC管理器可以从共享数据中移除敏感信息(1215)。该策略还可以在复制之前指定从数据中移除一个或多个部分。一个或多个部分可以对应于潜在的敏感数据(例如,个人身份信息)。IPC管理器可以应用机器学习算法(例如自然语言处理)来识别数据中的一个或多个部分。模型可以用于机器学习算法。可以已经使用带有标记样本数据的训练数据集对模型进行了训练。一旦被识别,IPC管理器可以根据该策略移除一个或多个部分。
IPC管理器可以允许将共享数据复制到第二应用(1220)。如果确定允许复制数据,则IPC管理器可以访问安全容器以检索数据。然后,IPC管理器可以在第二应用中复制数据。根据该策略,在第二应用中复制的数据可以移除被识别为潜在敏感的一个或多个部分。
现在参考图13,描绘了管理对安全容器中的数据的访问的方法1300的流程图。方法1300的功能可以使用本文结合图1–12详细描述的组件来实现,或由其执行。在简要概述中,客户机应用的嵌入式浏览器可以访问第一网络应用(1305)。客户机应用的进程间通信(IPC)管理器可以检测存储数据的命令(1310)。IPC管理器可以将数据存储到安全容器上(1315)。IPC管理器可以检测来自第二网络应用的访问的命令(1320)。IPC管理器可以将策略应用于访问数据(1325)。IPC管理器可以确定是否限制访问(1330)。如果确定限制访问,则IPC管理器可以限制数据的访问(1335)。相反,如果确定允许访问,IPC管理器可以允许数据的访问(1340)。
更详细地,客户机应用(例如,客户机应用404)的嵌入式浏览器(例如,嵌入式浏览器410)可以访问第一网络应用(例如,应用1115A)(1305)。客户机应用可以提供对多个网络应用(例如,应用1115A–N)的访问。嵌入式浏览器可以经由安全通信通道提供对第一网络应用的访问,以与托管第一网络应用的服务器交换数据。嵌入式浏览器可以响应于嵌入式浏览器上的用户交互,经由安全通信通道将数据发送到第一网络应用。在从嵌入式浏览器接收到数据之后,第一网络应用继而可以经由安全通信将数据发送到嵌入式浏览器。在一些实施例中,嵌入式浏览器可以呈现(例如,展示或播放)从网络应用接收的数据。数据可以被展示为客户机装置(例如,客户机装置402)的显示器上的嵌入式浏览器的文本或视觉组件。数据也可以作为来自客户机装置的音频信号播放(例如,使用与客户机装置通信耦合的扬声器)。在一些实施例中,嵌入式浏览器可以存储和保持经由安全通信通道从网络应用接收的数据。例如,嵌入式浏览器可以存储从网络应用接收的文件。
客户机应用的进程间通信(IPC)管理器(例如,IPC管理器1110)可以检测存储数据(例如,共享数据1125)的命令(1310)。IPC管理器可以是客户机应用的一部分,或可以由客户机应用访问。在一些实施例中,IPC管理器可以使用交互事件监听器,监视在访问第一网络应用时嵌入式浏览器上的用户交互。对于每个检测到的用户交互,IPC管理器可以确定用户交互是否对应于存储数据的命令。例如,IPC管理器可以检测预设的按键(例如,CTRL+C)或与复制命令相对应的用户界面元件(例如,复制按钮)的交互。存储命令可以识别要存储的从第一网络应用访问的数据。例如,复制命令可以用于访问第一网络应用时在嵌入式浏览器上显示的文本的高亮显示部分。当确定用户交互不对应于存储命令时,IPC管理器可以忽略用户交互,并继续监视嵌入式浏览器上的用户交互。当确定用户交互对应于存储命令时,IPC管理器可以将用户交互识别为检测到存储数据的命令。
IPC管理器可以将数据存储到安全容器(例如,安全容器418或1120)上(1315)。随着检测到存储命令,IPC管理器可以将相应的数据存储到安全容器上。该安全容器对于执行嵌入式浏览器的客户机装置可以是本地的(例如,本地安全容器418)。对于一个或多个第一网络应用,安全容器可以远程地托管在服务器上(例如,远程安全容器1120)。在检测到时,IPC管理器可以在要存储的数据在存储命令中被选择时,识别要存储的数据。例如,IPC管理器可以结合按键CTRL+C从经由嵌入式浏览器显示的第一网络应用中识别高亮显示的文件。IPC管理器可以将所识别的数据复制并存储到安全容器上。IPC管理器还可以加密在安全容器上存储和保持的数据。例如,IPC管理器可以将具有密钥的密码算法应用于在安全容器上保持的数据,以对数据进行加密。
IPC管理器可以检测来自第二网络应用(例如,应用1115B)的访问命令(1320)。在存储到安全容器上之后,IPC管理器可以检测访问存储在安全容器上的数据的命令。访问命令可以包括将数据复制到第二网络应用(或原来的第一网络应用)上的命令。在一些实施例中,IPC管理器可以使用交互事件监听器来监视在访问第二网络应用时嵌入式浏览器上的用户交互。对于每个检测到的用户交互,IPC管理器可以确定用户交互是否对应于从安全容器复制数据的命令。例如,IPC管理器可以检测对应于复制到第二网络应用上的命令的预设的按键(例如CTRL+V)或与用户界面元件(例如,加载或粘贴按钮)的交互。复制命令可以识别从安全容器访问的要复制到第二网络应用(或第一网络应用)上的数据。当确定用户交互不对应于复制命令时,IPC管理器可以忽略该用户交互,并继续监视嵌入式浏览器上的用户交互。当确定用户交互对应于复制命令时,IPC管理器可以将用户交互识别为检测到将数据从安全容器复制到第二网络应用的命令。
IPC管理器可以将策略(例如,管理策略1145)应用于访问数据(1325)。在检测到访问的命令后,IPC管理器可以在访问数据时应用策略。该策略可以指定从一个应用(例如,第一网络应用)保存在安全容器上的数据是否允许被另一应用(例如,第二网络应用)访问或复制。在一些实施例中,策略可以指定对数据的一个或多个部分的更改或移除。策略的指定可以基于多个因素,例如源应用、目的地应用、装置类型、数据类型、装置位置、和帐户标识符等,或其任意组合。源应用可以对应于存储在安全容器上的数据所源自的应用。目的地应用可以对应于要从其访问安全容器上的数据或要向其复制数据的应用。装置类型可以对应于客户机装置的分类(例如,智能电话、膝上计算机和台式机),该客户机装置执行嵌入式浏览器,尝试访问在安全容器上保持的数据。数据类型可以对应于在安全容器上保持的数据的类别(例如,文本、图像、视频或文件格式)。装置位置可以对应于执行嵌入式浏览器的客户机的地理位置或网络位置。帐户标识符可以对应于操作用于访问要从其访问数据的网络应用的客户机的用户的用户帐户。
为了应用该策略,IPC管理器识别该策略的指定可以基于的一个或多个因素。在一些实施例中,IPC管理器可以将第一网络应用识别为存储在安全容器中的数据的源应用。在一些实施例中,IPC管理器可以将第二网络应用识别为目的地应用,将从其访问存储在安全容器上的数据。在一些实施例中,IPC管理器可以识别执行嵌入式浏览器的客户机装置的装置类型,第二网络应用通过该嵌入式浏览器被访问。在一些实施例中,IPC管理器可以识别要由访问命令访问的、保持在安全容器上的数据的数据类型。在一些实施例中,IPC管理器可以运行嵌入式浏览器的客户机装置的装置位置,第二网络应用通过该嵌入式浏览器被访问。在一些实施例中,IPC管理器可以将认证到第二网络应用上的用户帐户识别为帐户标识符。
利用该识别,IPC管理器可以对照策略的指定检查因素。当由策略指定的所有因素都匹配时,IPC管理器可以将策略应用于安全容器中存储的数据以管理访问。在一些实施例中,IPC管理器还可以识别出要将策略应用到的来自安全容器的数据。另一方面,当由策略指定的至少一个因素不匹配时,IPC管理器可以不将策略应用于数据。在一些实施例中,IPC管理器识别要与之比较的另一策略。
IPC管理器可以确定是否限制访问(1330)。通过应用该策略,IPC管理器可以确定是否限制对安全容器上保持的数据的访问。如上所述,该策略可以指定基于一个或多个因素,是否允许来自一个应用的保持在安全容器上的数据被另一应用访问或被复制到另一应用。在应用时,IPC管理器可以关于所识别的因素来识别策略的指定。当策略指定因为所识别的因素要限制访问时,IPC管理器可以确定限制对保持在安全容器上的数据的访问。另一方面,当策略指定允许访问时,IPC管理器可以确定允许访问保持在安全容器上的数据。
如果确定访问被限制,则IPC管理器可以限制数据的访问(1335)。响应于该确定,IPC管理器可以阻止第二网络应用对数据的至少一部分的访问。IPC管理器还可以阻止将数据的至少一部分复制到第二网络应用上。在一些实施例中,IPC管理器可以根据该策略识别要更改或移除的一个或多个部分。如上所述,该策略可以指定在访问保持在安全容器上的数据时要修改或删除的一个或多个部分。利用识别,IPC管理器可以根据策略更改该部分或删除该部分。在一些实施例中,在更改或移除之前,IPC管理器可以使用密码算法和用于对数据进行加密的密钥来解密从安全容器访问的数据。一旦被更改或移除,IPC管理器可以允许第二网络应用访问数据的其余部分。在一些实施例中,IPC管理器可以允许将数据的剩余部分从安全容器复制到第二网络应用上。在一些实施例中,IPC管理器可以在嵌入式浏览器上呈现提示,指示数据的至少一部分被更改或移除。该提示还可以指示复制中的限制。
相反,如果确定为允许访问,则IPC管理器可以允许数据的访问(1340)。IPC管理器可以允许将存储在安全容器上的数据复制到第二网络应用上。例如,IPC管理器可以允许来自安全容器的数据被复制并显示在经由嵌入式浏览器呈现在客户机装置上的第二网络应用的用户界面元件上。在一些实施例中,IPC管理器可以使用密码算法和用于加密数据的密钥来对从安全容器访问的数据进行解密。一旦被解密,IPC管理器可以允许将数据复制到第二网络应用上。
在一个或多个实施例的上下文中在本文中描述的各种元件可以单独地或以任何合适的子组合来提供。例如,本文描述的过程可以以硬件、软件或其组合来实现。此外,本文描述的过程不限于描述的特定实施例。例如,本文描述的过程不限于本文描述的特定处理顺序,而是,可以根据需要对过程块进行重新排序、组合、移除、或并行或串行地执行,以实现本文阐述的结果。
应当理解,上述系统可以提供那些组件中的任一个或每一个的多个组件,并且这些组件可以在独立的机器上或者在一些实施例中在分布式系统中的多个机器上提供。可以通过使用编程和/或工程技术来生产软件、固件、硬件或其任何组合,将上述系统和方法实现为方法、设备或制造产品。另外,可以将上述系统和方法作为嵌入在一个或多个制造产品之上或之中的一个或多个计算机可读程序来提供。本文所使用的术语“制造产品”旨在包括可从一个或多个计算机可读装置可访问的或嵌入其中的代码或逻辑、固件、可编程逻辑、存储装置(例如EEPROM、ROM、PROM、RAM、SRAM等)、硬件(例如集成电路芯片、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)、电子装置、计算机可读非易失性存储单元(例如CD-ROM、USB闪存、硬盘驱动器等)。可以从文件服务器访问该制造产品,该文件服务器经由网络传输线、无线传输介质、在空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问。该制造产品可以是闪存卡或磁带。该制造产品包括硬件逻辑以及嵌入在计算机可读介质中的由处理器执行的软件或可编程代码。通常,计算机可读程序可以以任何编程语言(例如LISP、PERL、C、C++、C#、PROLOG)或任何字节代码语言(例如JAVA)实现。软件程序可以作为目标代码存储在一个或多个制造产品之上或之中。
尽管已经描述了方法和系统的各种实施例,但是这些实施例是示意性的,并且绝不限制所描述的方法或系统的范围。相关领域的技术人员可以在不脱离所描述的方法和系统的最广泛范围的情况下,对所描述的方法和系统的形式和细节进行改变。因此,本文描述的方法和系统的范围不应受到任何示意性实施例的限制,而应根据所附权利要求及其等同物来定义。
将进一步理解,在不脱离所附权利要求的范围的情况下,本领域技术人员可以对本文已经描述和示出的部分的细节、材料和布置进行各种改变。

Claims (20)

1.一种管理对安全容器中的数据的访问的方法,所述方法包括:
经由客户机装置上的客户机应用的嵌入式浏览器,提供对托管在服务器上的第一网络应用的访问,所述客户机应用向所述客户机装置提供对包括所述第一网络应用的多个网络应用的访问;
在所述客户机装置上检测存储经由所述嵌入式浏览器从所述第一网络应用访问的数据的命令;
响应于检测到所述命令,将所述数据存储在能够由所述嵌入式浏览器访问的安全容器中;以及
响应于访问所存储的数据的请求,应用策略来管理对存储在所述安全容器中的数据的访问。
2.根据权利要求1所述的方法,还包括:根据所述策略的应用,确定是否限制存储在所述安全容器中的数据到所述多个网络应用中的第二网络应用上的复制。
3.根据权利要求1所述的方法,还包括经由所述嵌入式浏览器检测所述客户机上的复制存储在所述安全容器中的数据的命令;以及
其中,应用所述策略还包括响应于检测到复制的命令而应用所述策略。
4.根据权利要求3所述的方法,还包括识别与复制的命令相对应的要复制的数据来应用所述策略。
5.根据权利要求1所述的方法,还包括修改存储在所述安全容器上的数据的至少一部分,以复制到所述多个网络应用的第二网络应用上。
6.根据权利要求1所述的方法,还包括响应于确定限制所述数据的复制,经由所述嵌入式浏览器呈现指示复制的限制的提示。
7.根据权利要求1所述的方法,其中,应用所述策略还包括基于以下中至少之一来应用所述策略:源应用、目的地应用、装置类型、数据类型、装置位置、或帐户标识符。
8.根据权利要求1所述的方法,其中,检测所述命令还包括检测与存储从所述第一网络应用访问的数据的命令相对应的用户交互。
9.根据权利要求1所述的方法,其中,将所述数据存储在所述安全容器中还包括加密要存储的数据。
10.根据权利要求1所述的方法,其中,所述安全容器驻留在所述客户机装置和托管所述第一网络应用的服务器中的至少之一上。
11.一种用于管理对安全容器中的数据的访问的系统,包括:
能够在一个或多个处理器上执行的客户机应用的嵌入式浏览器,其中,所述客户机应用被配置为经由所述嵌入式浏览器向客户机装置提供对包括托管在服务器上的第一网络应用的多个网络应用的访问;以及
与所述客户机应用相接口的进程间通信(IPC)管理器,所述IPC管理器被配置为:
在所述客户机装置处检测存储经由所述嵌入式浏览器从所述第一网络应用访问的数据的命令;
响应于检测到所述命令,将所述数据存储在能够由所述嵌入式浏览器访问的安全容器中;以及
响应于访问所存储的数据的请求,应用策略来管理对存储在所述安全容器中的数据的访问。
12.根据权利要求11所述的系统,其中,所述IPC管理器还被配置为根据所述策略的应用,确定是否限制存储在所述安全容器中的数据到所述多个网络应用的第二网络应用上的复制。
13.根据权利要求11所述的系统,其中,所述IPC管理器还被配置为:
经由所述嵌入式浏览器检测所述客户机上的复制存储在所述安全容器中的数据的命令;以及
响应于检测到复制的命令而应用所述策略。
14.根据权利要求13所述的系统,其中,所述IPC管理器还被配置为识别与复制的命令相对应的要复制的数据来应用所述策略。
15.根据权利要求11所述的系统,其中,所述IPC管理器还被配置为修改存储在所述安全容器上的数据的至少一部分以复制到所述多个网络应用中的第二网络应用上。
16.根据权利要求11所述的系统,其中,所述IPC管理器还被配置为响应于确定限制所述数据的复制,经由所述嵌入式浏览器呈现指示复制的限制的提示。
17.根据权利要求11所述的系统,其中,所述IPC管理器还被配置为基于以下中至少之一来应用所述策略:源应用、目的地应用、装置类型、数据类型、装置位置、或帐户标识符。
18.根据权利要求11所述的系统,其中,所述IPC管理器还被配置为检测与存储从所述第一网络应用访问的数据的命令相对应的用户交互。
19.根据权利要求11所述的系统,其中,所述IPC管理器还被配置为加密要被存储在所述安全容器上的数据。
20.根据权利要求11所述的系统,其中,所述安全容器驻留在所述客户机装置和托管所述第一网络应用的服务器中的至少之一上。
CN201980039496.4A 2018-05-04 2019-05-03 用于经由嵌入式浏览器提供数据丢失防护的系统和方法 Pending CN112313652A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862667199P 2018-05-04 2018-05-04
US62/667199 2018-05-04
PCT/US2019/030619 WO2019213536A1 (en) 2018-05-04 2019-05-03 Systems and methods for providing data loss prevention via an embedded browser

Publications (1)

Publication Number Publication Date
CN112313652A true CN112313652A (zh) 2021-02-02

Family

ID=66626028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980039496.4A Pending CN112313652A (zh) 2018-05-04 2019-05-03 用于经由嵌入式浏览器提供数据丢失防护的系统和方法

Country Status (6)

Country Link
US (2) US11328077B2 (zh)
EP (1) EP3788532A1 (zh)
CN (1) CN112313652A (zh)
AU (1) AU2019262187B2 (zh)
CA (1) CA3096504A1 (zh)
WO (1) WO2019213536A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342449A (zh) * 2021-06-29 2021-09-03 北京天空卫士网络安全技术有限公司 一种数据防护方法和装置
CN113468579A (zh) * 2021-07-23 2021-10-01 挂号网(杭州)科技有限公司 数据访问方法、装置、设备和存储介质
US11792234B1 (en) 2022-11-11 2023-10-17 Netskope, Inc. Browser extension identification and isolation

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2019262187B2 (en) * 2018-05-04 2022-02-24 Citrix Systems, Inc. Systems and methods for providing data loss prevention via an embedded browser
US10783017B2 (en) * 2018-05-16 2020-09-22 ChartIQ, Inc. System and method for integrating multiple applications
US11252030B2 (en) * 2019-10-02 2022-02-15 Cisco Technology, Inc. Network scale emulator
CN111064781A (zh) * 2019-12-10 2020-04-24 北京金山云网络技术有限公司 多容器集群监控数据的采集方法、装置及电子设备
US11610020B2 (en) * 2020-04-07 2023-03-21 Mcafee, Llc Securing sensitive user data stored locally by an application
CN113783712A (zh) * 2020-06-09 2021-12-10 中兴通讯股份有限公司 默认网关管理方法、网关管理器、服务器及存储介质
US11290566B1 (en) * 2020-09-28 2022-03-29 Saudi Arabian Oil Company Replicating data from isolated network
US11258884B1 (en) * 2020-11-25 2022-02-22 Cyberark Software Ltd. Secure remote access based on inspection and validation of remote access protocol traffic
US11822650B2 (en) * 2020-12-16 2023-11-21 Citrix Systems, Inc. System and method for prevention of transfer of sensitive information
US11610011B2 (en) * 2021-01-29 2023-03-21 Akamai Technologies, Inc. Secure transfer of data between programs executing on the same end-user device
US11683370B2 (en) 2021-03-26 2023-06-20 Citrix Systems, Inc. Transferring data between computing systems
US20220377060A1 (en) * 2021-05-19 2022-11-24 Microsoft Technology Licensing, Llc Maintaining and recovering secure cloud connections
US20230068880A1 (en) * 2021-08-27 2023-03-02 EMC IP Holding Company LLC Function-based service framework with trusted execution platform
WO2023129805A1 (en) * 2021-12-29 2023-07-06 Google Llc Application groups for enforcing data transfer controls

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120108224A1 (en) * 2009-01-09 2012-05-03 Qualcomm Incorporated Using quality of service to control hardware for low battery scenarios
US20140108793A1 (en) * 2012-10-16 2014-04-17 Citrix Systems, Inc. Controlling mobile device access to secure data
CN105190587A (zh) * 2010-12-10 2015-12-23 韦斯技术有限公司 利用长期轮询有助于远程桌面会话的方法及系统
CN105247531A (zh) * 2013-03-29 2016-01-13 思杰系统有限公司 提供受管浏览器
US20180020001A1 (en) * 2016-07-14 2018-01-18 Sap Se Private data access controls in mobile applications

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7130882B1 (en) * 2002-06-20 2006-10-31 Microsoft Corporation Caching mechanism using intervening network caching policies
US8621483B2 (en) * 2011-06-20 2013-12-31 Nokia Corporation Methods, apparatuses and computer program products for provisioning applications to in vehicle infotainment systems with secured access
US9137262B2 (en) * 2011-10-11 2015-09-15 Citrix Systems, Inc. Providing secure mobile device access to enterprise resources using application tunnels
US9280678B2 (en) * 2013-12-02 2016-03-08 Fortinet, Inc. Secure cloud storage distribution and aggregation
US10042680B2 (en) 2014-07-17 2018-08-07 Blackberry Limited Cross-domain data sharing with permission control
US20170078449A1 (en) * 2015-09-15 2017-03-16 Rollapp, Inc. Shared simultaneous access to a single instance of a remotely executing application
US9894036B2 (en) * 2015-11-17 2018-02-13 Cyber Adapt, Inc. Cyber threat attenuation using multi-source threat data analysis
US10528749B2 (en) * 2017-03-20 2020-01-07 Huawei Technologies Co., Ltd. Methods and apparatus for containerized secure computing resources
AU2019262187B2 (en) * 2018-05-04 2022-02-24 Citrix Systems, Inc. Systems and methods for providing data loss prevention via an embedded browser
EP3627788A1 (de) * 2018-09-18 2020-03-25 Siemens Aktiengesellschaft Verfahren und vorrichtung zum konfigurieren eines zugangsschutzsystems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120108224A1 (en) * 2009-01-09 2012-05-03 Qualcomm Incorporated Using quality of service to control hardware for low battery scenarios
CN105190587A (zh) * 2010-12-10 2015-12-23 韦斯技术有限公司 利用长期轮询有助于远程桌面会话的方法及系统
US20140108793A1 (en) * 2012-10-16 2014-04-17 Citrix Systems, Inc. Controlling mobile device access to secure data
CN105247531A (zh) * 2013-03-29 2016-01-13 思杰系统有限公司 提供受管浏览器
US20180020001A1 (en) * 2016-07-14 2018-01-18 Sap Se Private data access controls in mobile applications

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342449A (zh) * 2021-06-29 2021-09-03 北京天空卫士网络安全技术有限公司 一种数据防护方法和装置
CN113468579A (zh) * 2021-07-23 2021-10-01 挂号网(杭州)科技有限公司 数据访问方法、装置、设备和存储介质
US11792234B1 (en) 2022-11-11 2023-10-17 Netskope, Inc. Browser extension identification and isolation

Also Published As

Publication number Publication date
US11328077B2 (en) 2022-05-10
WO2019213536A1 (en) 2019-11-07
US20220245272A1 (en) 2022-08-04
US20190340376A1 (en) 2019-11-07
US11704427B2 (en) 2023-07-18
AU2019262187B2 (en) 2022-02-24
AU2019262187A1 (en) 2020-10-15
CA3096504A1 (en) 2019-11-07
EP3788532A1 (en) 2021-03-10

Similar Documents

Publication Publication Date Title
US11704427B2 (en) Systems and methods for providing data loss prevention via an embedded browser
CN111226429B (zh) 经由嵌入式浏览器拦截和增强saas应用调用的系统和方法
US11558484B2 (en) Systems and methods for secure peer-to-peer caching
CN112997153B (zh) 用于经由嵌入式浏览器跨不同的saas应用的一致的执行策略的系统和方法
CN112313919A (zh) 用于使用嵌入式浏览器添加水印的系统和方法
US11153306B2 (en) Systems and methods for secure SaaS redirection from native applications
US11172029B2 (en) Systems and methods for sharing SaaS content across workspace
CN112913213A (zh) 用于为经由客户机应用的嵌入式浏览器访问的网络应用呈现附加内容的系统和方法
CN112930670A (zh) 用于网络应用的集成服务发现的系统和方法
US11233832B2 (en) Systems and methods for collaborating on forms in SaaS application
CN113168420B (zh) 用于使用嵌入式浏览器在远程应用内呈现Web链接的系统和方法
CN113316924B (zh) 用于saas应用的推送通知服务的系统和方法
CN112997180A (zh) 用于将基于html的应用与嵌入式浏览器集成的系统和方法
CN112292669A (zh) 用于嵌入式浏览器的系统和方法
CN113168350A (zh) 用于各种应用之间的桥接协议的系统和方法
CN112805982B (zh) 用于跨域应用的应用脚本
US11196714B2 (en) Systems and methods for encrypted browser cache
CN113260980B (zh) 用于实时saas对象的系统和方法
CN113302608B (zh) 用于saas应用的智能感知的系统和方法
CN113260978A (zh) 用于经由前缀高速缓存进行等待时间掩蔽的系统和方法
CN113039769A (zh) 用于经由嵌入式浏览器深度链接saas应用的系统和方法
AU2019378694B2 (en) Systems and methods for live tiles for SaaS

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination