掌桥专利:专业的专利平台
掌桥专利
首页

用于将基于HTML的应用与嵌入式浏览器集成的系统和方法

文献发布时间:2023-06-19 11:27:38


用于将基于HTML的应用与嵌入式浏览器集成的系统和方法

本申请要求于2018年9月19日提交的题为“SYSTEMS AND METHODS FORINTEGRATING HTML BASED APPLICATION WITH EMBEDDED BROWSER”的美国专利申请No.16/135,715的优先权和利益,其内容出于所有目的通过引用全部合并于此。

技术领域

本申请总地涉及对资源的访问的管理,包括但不限于用于集成并使用基于HTML的应用与嵌入式浏览器的系统和方法。

背景技术

随着企业的劳动力变得更有移动性和在各种条件下工作,个人可以使用一个或多个客户机装置(包括个人装置)来访问网络资源,例如web应用。由于客户机装置和网络资源可以被访问的方式之间的不同,给企业在访问网络资源(诸如文件系统和剪贴板)和传输数据方面提出显著的挑战和安全限制。

发明内容

本公开涉及用于使用经由客户机装置上的嵌入式浏览器访问的基于HTML的应用以支持例如受信任的数据传输的系统和方法。客户机装置的嵌入式浏览器内的基于HTML的应用可以提供对网络应用及其资源的访问。基于HTML的应用可以在服务器(例如,安全浏览器服务器)和基于HTML的应用之间建立网络应用的安全会话(有时称为HDX会话或安全浏览器会话)。嵌入式浏览器可以经由一个或多个策略的应用来确定基于HTML的应用是受信任的应用。通过建立安全会话,并且响应于确定基于HTML的应用是受信任的应用,嵌入式浏览器可以在嵌入式浏览器和基于HTML的应用之间建立至少一个虚拟通道。使用至少一个虚拟通道,嵌入式浏览器可以在网络应用的安全会话与客户机装置的操作系统(OS)之间传输数据。客户机装置的操作系统可以包括文件系统、剪贴板和/或输入和输出(I/O)装置。在一些实施例中,可以经由剪贴板虚拟通道来传输数据。例如,当用户在经由基于HTML的应用访问的安全浏览器会话内复制文本时,剪贴板的内容可以经由剪贴板虚拟通道进行传输,并且基于HTML的应用可以请求嵌入式浏览器利用经由剪贴板虚拟通道接收到的内容来更新操作系统的剪贴板。当用户将来自操作系统的剪贴板的文本粘贴到安全浏览器会话中时,可以使用类似的机制将来自操作系统的剪贴板的内容传输到安全浏览器会话的剪贴板,以允许粘贴。此外,在一些实施例中,网络应用会话或安全浏览器会话可以通过客户机驱动器映射(CDM)虚拟通道对存储在经由客户机装置的OS管理的本地存储驱动器内的文件或文件夹执行读取或写入访问,其中通过嵌入式浏览器促进访问。例如,嵌入式浏览器可以将经由CDM虚拟通道接收的系统调用从网络应用会话或安全浏览器会话重定向到客户机装置的OS,以访问本地存储驱动器。类似的动作可用于通用串行总线(USB)、打印和/或其他装置。

在一个方面,本公开涉及一种用于受信任的数据传输的方法。该方法包括经由在客户机装置上执行的嵌入式浏览器访问被配置为经由嵌入式浏览器提供对网络应用的访问的基于HTML的应用。该方法包括由基于HTML的应用在服务器和基于HTML的应用之间建立网络应用的安全会话。该方法包括由嵌入式浏览器确定基于HTML的应用是受信任的应用。该方法包括由嵌入式浏览器响应于确定基于HTML的应用是受信任的应用,在嵌入式浏览器和基于HTML的应用之间建立至少一个虚拟通道。该方法包括由嵌入式浏览器经由至少一个虚拟通道在安全会话和客户机装置的操作系统(OS)之间传输数据。

在一些实施例中,该方法可以包括安全浏览器服务器,该安全浏览器服务器被配置为托管用于访问网络应用的浏览器,并且向基于HTML的应用提供对网络应用的访问。在一些实施例中,该方法可以包括:由嵌入式浏览器通过确定基于HTML的应用是由安全浏览器服务器提供或授权的,来确定基于HTML的应用是受信任的应用。

在一些实施例中,该方法可以包括由嵌入式浏览器通过以下中至少之一来确定基于HTML的应用是受信任的应用:确定基于HTML的应用来自受信任的源,或应用至少一个访问控制策略。在一些实施例中,该方法可以包括响应于确定网络应用是允许的网络应用而建立至少一个虚拟通道。

在一些实施例中,该方法可以包括经由至少一个虚拟通道的剪贴板虚拟通道在安全会话的剪贴板和客户机装置的OS的剪贴板之间传输数据。在一些实施例中,该方法可以包括经由至少一个虚拟通道执行通过客户机装置的OS发起的对安全会话内的文件的读取或写入访问。

在一些实施例中,该方法可以包括经由至少一个虚拟通道执行网络应用对客户机装置的OS的文件系统内的文件或文件夹的读取或写入访问。在一些实施例中,该方法可以包括由嵌入式浏览器经由至少一个访问控制策略的应用来确定是否允许网络应用进行所述读取或写入访问。在一些实施例中,该方法可以包括在安全会话与客户机装置的输入或输出(I/O)装置之间传输数据。

在另一方面,本公开涉及一种用于受信任的数据传输的系统。该系统包括能够在客户机装置的一个或多个处理器上执行的嵌入式浏览器。嵌入式浏览器可以访问基于HTML的应用,基于HTML的应用被配置为经由嵌入式浏览器提供对网络应用的访问。基于HTML的应用可以在服务器和基于HTML的应用之间建立网络应用的安全会话。嵌入式浏览器可以确定基于HTML的应用是受信任的应用。响应于确定基于HTML的应用是受信任的应用,嵌入式浏览器可以在嵌入式浏览器和基于HTML的应用之间建立至少一个虚拟通道。嵌入式浏览器可以经由至少一个虚拟通道在安全会话和客户机装置的操作系统(OS)之间传输数据。

在一些实施例中,服务器可以包括或对应于安全浏览器服务器,该安全浏览器服务器被配置为托管用于访问网络应用的浏览器,并向基于HTML的应用提供对网络应用的访问。在一些实施例中,嵌入式浏览器可以通过确定基于HTML的应用是由安全浏览器服务器提供或授权的,来确定基于HTML的应用是受信任的应用。

在一些实施例中,嵌入式浏览器可以通过以下中至少之一来确定基于HTML的应用是受信任的应用:确定基于HTML的应用来自受信任的源,或者应用至少一个访问控制策略。在一些实施例中,嵌入式浏览器可以响应于确定网络应用是允许的网络应用而建立至少一个虚拟通道。

在一些实施例中,嵌入式浏览器可以经由至少一个虚拟通道的剪贴板虚拟通道在安全会话的剪贴板和客户机装置的OS的剪贴板之间传输数据。在一些实施例中,嵌入式浏览器可以经由至少一个虚拟通道支持通过客户机装置的OS发起的对安全会话内的文件的读取或写入访问。

在一些实施例中,嵌入式浏览器可以经由至少一个虚拟通道支持网络应用对客户机装置的OS的文件系统内的文件或文件夹的读取或写入访问。在一些实施例中,嵌入式浏览器可以经由至少一个访问控制策略的应用来确定是否允许网络应用进行读取或写入访问。在一些实施例中,嵌入式浏览器可以在安全会话和客户机装置的输入或输出(I/O)装置之间传输数据。

附图说明

通过参考以下结合附图的描述,本解决方案的前述和其他目的、方面、特征和优点将变得更加明显和更好理解,其中:

图1是计算装置的实施例的框图;

图2是用于访问资源的云服务的说明性实施例的框图;

图3是企业移动性管理系统的示例实施例的框图;

图4是嵌入式浏览器的系统400的框图;

图5是用于使用安全浏览器的系统的示例实施例的框图;

图6是用于使用安全浏览器插件的浏览器重定向的实施方式的示例表示;

图7是使用安全浏览器的系统的示例实施例的框图;

图8是用于使用本地嵌入式浏览器和托管安全浏览器的系统的示例实施例的框图;

图9是用于使用本地嵌入式浏览器和托管安全浏览器的示例处理流程;以及

图10是用于管理用户对网页的访问的系统的示例实施例;

图11是用于受信任的数据传输的系统的示例实施例的框图;以及

图12是用于受信任的数据传输的示例处理流程。

根据下文结合附图时阐述的详细描述,本解决方案的特征和优点将变得更加明显,在附图中,相似的附图标记始终标识相应的元件。在附图中,相似的附图标记通常表示相同、功能相似和/或结构相似的元件。

具体实施方式

为了阅读以下各个实施例的描述,本说明书各部分的以下描述及其各自的内容可能是有帮助的:

A部分描述了一种计算环境,该计算环境可用于实践本文描述的实施例;

B部分描述了用于嵌入式浏览器的系统和方法。

C部分描述了用于受信任的数据传输的系统和方法。

在讨论本文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可以提供对包括以下中的一个或多个的计算环境的访问:一个或多个应用、一个或多个桌面应用以及可以在其中执行一个或多个应用的一个或多个桌面会话。

网络环境、计算机101以及客户机和服务器计算机的实施和操作的其他细节,可以参见2017年1月3日授予佛罗里达州劳德代尔堡的Citrix Systems,Inc.的美国专利No.9,538,345中的描述,其教导通过引用合并于此。

本公开涉及嵌入式浏览器的系统和方法。在客户机装置上执行的客户机应用可以允许用户访问由一个或多个服务器服务的和/或托管在一个或多个服务器上的应用(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)的环境中。该架构可以使客户机装置202(例如,手机或其它装置)的用户能够从客户机装置202访问企业或个人资源,并且使用客户机装置202以供个人使用。用户可以经由在客户机装置202上执行的客户机应用来访问这种企业资源204或企业服务208。用户可以使用由用户购买的客户机装置202或由企业提供给用户的客户机装置202来访问这种企业资源204或企业服务208。用户可以将客户机装置202仅用于商业用途或用于商业和个人用途。客户机装置可运行iOS操作系统和Android操作系统等。企业可以选择实施策略来管理客户机装置202。可以通过防火墙或网关来植入策略,使得客户机装置可以被识别、保护或安全验证,为客户机装置提供对企业资源的选择性或完全访问权限。这些策略可以是客户机装置管理策略、移动应用管理策略、移动数据管理策略或客户机装置、应用和数据管理策略的一些组合。通过施加客户机装置管理策略管理的客户机装置202可以被称为注册装置。该客户机装置管理策略可经由例如客户机应用施加。

在一些实施例中,客户机装置的操作系统可以被分成受管理分区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或SaaS应用、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。

在一个或多个实施例中,上述元件或实体中的每一个以硬件、或硬件和软件的组合实现。系统400的每个组件可以使用以上结合图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可以将用于客户机应用的设置或安装应用发送到客户机装置。在接收到时,客户机装置可以安装该客户机应用到客户机装置的硬盘上。在一些实施例中,客户机装置可以运行设置应用以打开或解压缩客户机应用的包。在一些实施例中,客户机应用可以是对安装在客户机装置上的另一个应用(例如,网络代理412)的扩展(例如,附加组件(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互操作的一个或多个代理。客户机应用404可以接收、获得、检索或以其他方式访问各种策略(例如,企业的定制、指定或内部策略或规则)和/或数据(例如,来自云服务408的访问网关422和/或网络装置、或可以由企业管理的其他服务器)。客户机应用可以访问策略和/或数据以控制和/或管理网络应用(例如,SaaS、web或远程托管的应用)。网络应用的控制和/或管理可以包括网络应用的各个方面的控制和/或管理,例如访问控制、会话输送、可用特征或功能、服务级别、流量管理和监视等等。网络应用可以来自企业的提供者或供应商(例如,salesforce.com、SAP、Microsoft Office 365),来自企业本身或来自另一个实体(例如,Dropbox或Gmail服务)。

例如,云服务代理414可以提供与网络应用的使用和/或访问有关的策略驱动的管理能力和特征。例如,云服务代理414可以包括策略引擎,以应用(例如,从云服务接收到的)一个或多个策略来确定对诸如网络应用的资源的访问控制和/或连接性。例如,当在客户机应用和提供SaaS应用的服务器430之间建立会话时,云服务代理414可以应用一个或多个策略来控制会话的流量级别和/或流量类型(或其他方面),例如来管理SaaS应用的服务级别。可以控制或管理的应用流量的其他方面可以包括:应用于流量的加密级别和/或加密类型、对于用户所允许的交互级别、对网络应用的某些功能(例如打印屏幕、保存、编辑或复制功能)的受限访问、对使用或传输从网络应用获得的数据的限制、限制对两个或更多个网络应用的并发访问、限制对某些文件存储库或其他资源的访问等等。

例如,云服务代理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。

客户机应用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的web浏览器512、以及驻留在网络装置上的托管的web浏览器(或安全浏览器)522。web浏览器512可以对应于标准浏览器,而不是如上面结合例如图4所讨论的嵌入式浏览器。安全浏览器插件516可在第一网络510内执行并访问在第二网络530中的服务器430。第一网络510和第二网络530是出于说明的目的,并且可以用更少或更多的计算机网络代替。安全浏览器插件516可以安装在标准浏览器512上。插件可以包括一个或多个组件。一个这样的组件可以包括ActiveX控件或Java控件或能够加载到标准浏览器中并在其中执行的任何其他类型和/或形式的可执行指令。例如,标准浏览器可以在标准浏览器的存储空间或上下文中,加载并运行安全浏览器插件516的Active X控件。在一些实施例中,安全浏览器插件可以作为扩展安装在标准浏览器上,并且用户可以选择启用或禁用该插件或扩展。安全浏览器插件可以进行与安全浏览器420通信和/或操作,以保护、使用和/或访问数字工作空间的安全部分内的资源。

通过使用在标准浏览器512内操作的安全浏览器插件516,经由标准浏览器512访问的网络应用可以被重定向到托管的安全浏览器。例如,安全浏览器插件516可以被实现和/或设计为检测网络应用正在经由标准浏览器访问,并且可以定向/重定向与网络应用相关联的来自客户机装置的流量至托管的安全浏览器。托管的安全浏览器可以将从网络应用接收的流量定向到安全浏览器插件516和/或客户机代理514,以例如进行呈现和/或显示。客户机代理514可以在web浏览器512和/或安全浏览器插件内执行,并且可以包括以上结合至少例如图4讨论的客户机应用404的特定元件或特征。例如,客户机代理514可以包括用于在web浏览器512处呈现网络应用的远程会话代理416。在一些实施例中,在托管的安全浏览器处呈现网络应用,并且所呈现的数据被传送或镜像到安全浏览器插件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中,web服务可以将HTTP客户机重定向到网关服务以进行认证。在操作905中,网关服务可以确定HTTP客户机是否为CEB。如果是这样,则在操作909中,网关服务可以确定CEB是否是合适的CEB,例如能够执行所定义的应用策略。如果是这样,则在操作911中,允许CEB访问web服务,并且可以执行所定义的策略。

如果网关服务确定该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所讨论的。

本公开涉及用于使用经由客户机装置上的嵌入式浏览器访问的基于HTML的应用以支持例如受信任的数据传输的系统和方法。客户机装置的嵌入式浏览器内的基于HTML的应用可以提供对网络应用及其资源的访问。基于HTML的应用可以在服务器(例如,安全浏览器服务器)和基于HTML的应用之间建立网络应用的安全会话(有时称为HDX会话或安全浏览器会话)。嵌入式浏览器可以经由一个或多个策略的应用来确定基于HTML的应用是受信任的应用。通过建立安全会话,并且响应于确定基于HTML的应用是受信任的应用,嵌入式浏览器可以在嵌入式浏览器和基于HTML的应用之间建立至少一个虚拟通道。使用至少一个虚拟通道,嵌入式浏览器可以在网络应用的安全会话与客户机装置的操作系统(OS)之间传输数据。客户机装置的操作系统可以包括文件系统、剪贴板和/或输入和输出(I/O)装置。在一些实施例中,可以经由剪贴板虚拟通道来传输数据。例如,当用户在经由基于HTML的应用访问的安全浏览器会话内复制文本时,剪贴板的内容可以经由剪贴板虚拟通道进行传输,并且基于HTML的应用可以请求嵌入式浏览器更新操作系统的剪贴板。当用户将来自操作系统的剪贴板的文本粘贴到安全浏览器会话中时,可以使用类似的机制将来自操作系统的剪贴板的内容传输到安全浏览器会话的剪贴板,以允许粘贴。此外,在一些实施例中,网络应用会话或安全浏览器会话可以通过客户机驱动器映射(CDM)虚拟通道对存储在经由客户机装置的OS管理的本地存储驱动器内的文件或文件夹执行读取或写入访问,其中通过嵌入式浏览器促进访问。类似的动作可用于通用串行总线(USB)、打印和/或其他装置。

在客户机装置的嵌入式浏览器内通过基于HTML的应用访问网络应用的用户在本地和会话之间传输数据时想要相同的类似本地的体验。但是,基于HTML的应用的复制-粘贴涉及一个额外的步骤,即从本地客户机装置复制和粘贴到网络应用。文件传输还涉及其他步骤。这些额外的步骤对用户而言并不直观,可能会对用户的体验产生负面影响。另外,不存在现有的或容易获得的打印或装置来支持通过基于HTML的应用访问这种网络应用。这些限制可能会限制用法的多样性,并会影响用户的体验。但是,为了避免这些限制并增强用户的体验,可以在基于HTML的应用和客户机装置的嵌入式浏览器之间建立信任,从而允许对网络应用进行类似本机的使用。

参考图11,描绘了用于受信任的数据传输的系统1100的示例实施例的框图。系统1100可以包括一个或多个服务器1104、策略引擎1102和/或客户机装置402。客户机装置402可以(例如,经由以上结合图1描述的一个或多个处理器)执行嵌入式浏览器410,嵌入式浏览器410可以提供对基于HTML的应用1108的访问。此外,嵌入式浏览器410可以包括以上至少结合图4和图8所述的嵌入式浏览器410的任何实施例的一个或多个元件。客户机装置402可以包括一个或多个虚拟通道1110,用于促进或支持在一个或多个服务器1104上托管的网络应用的安全会话1106与客户机装置402的操作系统(OS)1112之间的数据传输,操作系统(OS)1112管理输入和输出(I/O)装置1114、剪贴板1116和/或文件系统1118。

在一个或多个实施例中,以硬件或硬件和软件的组合来实现上述元件或实体中的每一个。系统1100的每个组件可以使用以上结合图1详细描述的硬件或硬件或软件的组合来实现。例如,这些元件或实体中的每一个可以包括在(例如,客户机装置的)硬件上执行的任何应用、程序、库、脚本、任务、服务、进程或任何类型和形式的可执行指令。在一个或多个实施例中,硬件包括诸如一个或多个处理器的电路。

系统1100的一个或多个服务器1104可以被设计或实现为存储、监视、提供、供应和/或托管一个或多个网络应用。一个或多个服务器1104可以包括以上至少结合图1描述的计算装置的任何元件。一个或多个网络应用可以包括以上至少结合图2-5、7和8描述的任何类型或形式的网络应用406。在一些实施例中,服务器1104可以包括或对应于安全浏览器服务器(例如,提供安全浏览器服务)。安全浏览器服务器可以包括以上至少结合图4描述的服务器的任何实施例的一个或多个元件。另外,服务器1104可以提供、执行和/或托管用于访问网络应用的浏览器(例如,远程安全浏览器)和/或向基于HTML的应用1108提供对网络应用的访问。

系统1100的策略引擎1102可以被设计或实现为控制、管理、限制或调节基于HTML的应用与嵌入式浏览器410之间的数据传输和/或信任。类似地,策略引擎1102可以被设计或实现为控制、管理、限制或调节安全会话1106(或相应的网络应用)和客户机装置402的OS之间的数据传输。策略引擎1102可以存储例如通过彼此控制对客户机装置402的OS和/或对基于HTML的应用的资源的访问的规则或策略。策略可以是静态的,也可以是动态的。一个或多个静态策略可以由系统管理员配置,也可以作为系统的默认策略。一个或多个动态策略可以基于用户安全风险行为来生成、选择、检索和/或使用,并且可以包括诸如白名单或黑名单的保护机制。

策略引擎可以驻留在客户机装置上,和/或在一个或多个网络装置上(例如,作为云服务408的一部分)。在一些实施例中,规则或策略可以驻留在客户机装置和/或一个或多个网络装置的策略存储中。例如,客户机装置可以接收或检索一个或多个规则或策略,并且可以在客户机装置上本地应用一个或多个规则或策略以控制、管理、限制或调节安全会话1106(或网络应用)和客户机装置402的OS之间的数据传输。在一些实施例中,客户机装置可以接收策略引擎(或一个或多个规则或策略的应用)的结果,以控制、管理、限制或调节数据传输。

系统1100的客户机装置402可以包括嵌入式浏览器410、一个或多个虚拟通道1110和/或操作系统1112。嵌入式浏览器410可以包括以上至少结合图4和图8描述的嵌入式浏览器的任何实施例的一个或多个元件。操作系统1112可以支持、管理、控制、促进或启用客户机装置402的至少一个输入和输出装置1114、剪贴板1116和/或文件系统1118的操作。客户机装置402可以包括以上至少结合图4-5和图7-8描述的客户机装置402的任何实施例的一个或多个元件。

嵌入式浏览器410可以被设计或实现为向用户和/或客户机装置402提供对由一个或多个服务器1104托管或供应的基于HTML的应用1108的访问。嵌入式浏览器410可以是独立的浏览器应用。在一些实施例中,嵌入式浏览器410可以被集成在客户机应用1106内。具有嵌入式浏览器1108的客户机应用1106(CEB)可以包括如先前至少结合图4和图8描述的CEB的任何元件或实施例。CEB可以向用户提供对基于HTML的应用1108的访问,基于HTML的应用1108可以转而为用户提供对网络应用的访问。一个或多个服务器1104可以是基于云的。一个或多个服务器1104可以托管和/或执行安全浏览器。嵌入式浏览器可以例如经由JavaScript回调函数与基于HTML的应用进行通信,该JavaScript回调函数可以是在另一个函数完成执行之后将要执行的函数。回调函数可以作为参数传递给另一个函数,并且可以在该函数内部执行,以确保以正确的顺序调用这些函数。例如,可以仅允许由基于HTML的应用列入白名单的网站使用JavaScript回调函数。类似地,嵌入式浏览器可以使用JavaScript Promise与基于HTML的应用进行通信。JavaScript Promise表示将来的延迟任务的状态,并允许在异步处理任务时执行主线程。异步通信可以允许数据间歇地传输,而不是以稳定流的方式传输。嵌入式浏览器还可以使用HTTP请求与基于HTML的应用进行通信。

基于HTML的应用1108可以被配置为在客户机装置402中的自身(例如,其在嵌入式浏览器上被加载和/或执行)和至少一个服务器1104之间建立安全会话。基于HTML的应用1108可以包括以上至少结合图4和图8描述的客户机应用的任何实施例的一个或多个元件。基于HTML的应用可以是使用HTML5代码(HTML、CSS和JavaScript)的应用,例如HTML5或基于HTML5的应用,或可以包含web接口。与客户机应用404不同,基于HTML的应用1108不是本机的,也不是安装在客户机装置402上的。基于HTML的应用1108未将嵌入式浏览器410并入基于HTML的应用1108内。基于HTML的应用1108可包括云服务代理414和/或其HTML5Web客户机的实施例的一个或多个元件,如以上至少结合图4-5和7-8所讨论的。基于HTML的应用1108可以在基于HTML的应用1108与在一个或多个服务器1104上托管的网络应用或安全浏览器之间建立安全会话。

嵌入式浏览器410可以被设计或实现为确定基于HTML的应用1108是否是受信任的应用。受信任的应用可以是其中嵌入式浏览器能够与之交互的应用,而不会存在应用损害(例如,可以经由嵌入式浏览器访问的)系统、数据、信息等的风险。通过与受信任的应用进行交互,提高了系统和环境的安全性。在一些实施例中,客户机装置402的嵌入式浏览器410可以通过确定基于HTML的应用1108由服务器1104提供或授权、是特别版本、可以从某个URL获得和/或具有某些特性来确定基于HTML的应用1108是受信任的应用。在一些实施例中,嵌入式浏览器410可以通过确定基于HTML的应用1108来自受信任的源和/或通过应用来自策略引擎1102的至少一个访问控制策略来确定基于HTML的应用1108是受信任的应用。受信任的源可以是可能作为白名单的一部分、可以与受信任的URL相关联和/或可以具有某些特定特性的源。例如,来自策略引擎1102的访问控制策略可用于将来自特定服务器的某些应用、使用特定网络协议(例如,安全HTTP)的应用或仅具有某些IP地址的应用识别为受信任的源。嵌入式浏览器可以以类似的方式来验证基于HTML的应用1108的来源,例如,通过检查其源的URL或注意其特性来验证基于HTML的应用1108的来源。嵌入式浏览器验证基于HTML的应用1108的来源,以确认它是来自服务器1104、来自受信任的源、还是符合一组访问控制策略。

嵌入式浏览器410可以在其自身与基于HTML的应用1108之间建立至少一个虚拟通道1110。基于HTML的应用1108(和嵌入式浏览器)与至少一个服务器(和至少一个网络应用)之间的安全会话(例如,供应会话和/或网络连接)可以包括供应会话和/或网络连接。安全会话可以包括多个虚拟通道,用于将网络应用的一种或多种类型的数据(例如,音频、图形、元数据、打印机数据、磁盘数据、智能卡数据等)传送给嵌入式浏览器。例如,相对于现有浏览器,嵌入式浏览器可以被设计和实现为提供、支持和/或授权扩展的、更丰富的和/或更复杂的能力的集合(例如,虚拟通道)来访问网络应用和/或网站。嵌入式浏览器可以通过在嵌入式浏览器和基于HTML的应用的客户机侧之间构建和/或建立安全的信任关系来实现这一点。

嵌入式浏览器可以例如访问和/或提供用于和/或到网络应用和/或网站的附加接口、机制和/或特征。嵌入式浏览器可以访问和/或提供用于网络应用和/或网站的应用编程接口(API),以经由一个或多个虚拟通道(例如,一个或多个虚拟通道的更丰富的集合)访问各种类型和/或组的应用数据。例如,某些类型的应用数据可以经由供应会话内的专用虚拟通道各自传送或通信,和/或某些类型的应用数据可以通过共享一个或多个虚拟通道而各自传送或通信至中间装置。虚拟通道可以对应于或包括与服务器侧应用进行通信的客户机侧虚拟驱动器。虚拟通道可以提供安全的连接以在装置和/或应用之间进行通信。在客户机侧,虚拟通道可以对应于各自提供特定功能的虚拟驱动器。虚拟驱动器可以在表示层协议级处操作。通过多路复用例如由WinStation协议层提供的通道,可以在任意给定时间激活许多这样的协议。多个虚拟通道可以在供应会话(例如,ICA/HDX会话或业务流)内被组合或复用。

响应于确定基于HTML的应用1108是受信任的应用,嵌入式浏览器410可以在其自身和基于HTML的应用1108之间建立至少一个虚拟通道1110。在一些实施例中,虚拟通道可以是安全的,以提高安全性。虚拟通道可以用于发送数据的位流或字节流。虚拟通道可以是唯一的,以便针对特定类型的数据或通信使用、分配、建立、优化、配置或专用虚拟通道。例如,虚拟通道可以被建立并配置用于传输文本。类似地,在一些实施例中,嵌入式浏览器410可以响应于确定网络应用被(例如,经由被确定为受信任的基于HTML的应用1108访问的网络应用)允许和/或受(例如,经由被确定为受信任的基于HTML的应用1108访问的网络应用)信任,来建立至少一个虚拟通道1110。

嵌入式浏览器410可以(例如,作为桥接器或接口操作以)在安全会话1106和客户机装置402的操作系统(OS)1112之间传输或传达数据。嵌入式浏览器410可以建立和/或访问任意数量或类型的虚拟通道。在一些实施例中,嵌入式浏览器410可以经由虚拟通道1110在安全会话1106的剪贴板和客户机装置402的操作系统1112的剪贴板1116之间传输数据。操作系统1112的剪贴板1116和安全会话1105的剪贴板可用于传输任何内容,例如纯文本、图像、HTML内容、音频数据、视频数据、应用数据等。通过使用文本作为示例的非限制性说明,当用户在经由基于HTML的应用访问的安全浏览器会话内复制文本时,则可以经由剪贴板虚拟通道将安全浏览器会话的剪贴板内容传输到操作系统的剪贴板。当用户将文本从操作系统的剪贴板粘贴到安全浏览器会话中时,可以使用类似的机制将内容从操作系统的剪贴板传输到安全浏览器会话的剪贴板,以允许进行粘贴。除了复制和粘贴外,剪切(例如,从应用移除数据到剪贴板)也可以是剪贴板的功能。前面提到的任何两种机制的组合都可以用于剪切文本。在一些实施例中,操作系统1112的剪贴板1116和安全会话1105的剪贴板可以用于传输文本文件(诸如以.txt和.html结尾的文件)、图像文件(诸如以.png、.jpeg和.gif结尾的文件)和/或应用文件。

在一些实施例中,嵌入式浏览器410可以使用至少一个虚拟通道1110来传输涉及客户机装置402的操作系统1112的文件系统1118的数据。在一些实施例中,嵌入式浏览器410可以启用、允许或支持通过客户机装置402的操作系统1112经由至少一个虚拟通道1110对安全会话1106内的文件的读取和/或写入访问。使用来自策略引擎1102的至少一个访问控制策略,嵌入式浏览器410可以确定是否允许网络应用进行读取和/或写入访问。基于HTML的应用1108可以(例如,代表诸如远程托管应用或Web应用之类的网络应用)经由嵌入式浏览器410请求访问客户机驱动器或客户机装置的文件夹。响应于确定是否允许网络应用进行读取和/或写入访问,嵌入式浏览器410可以启用、允许或支持网络应用对客户机装置402的操作系统1112的文件系统1118内的文件或文件夹进行读取和/或写入访问。例如,网络应用会话或安全浏览器会话1106可以通过客户机驱动器映射(CDM)虚拟通道1110获取(或被授予)对存储在由客户机装置402的OS 1112管理的文件系统1118内的文件或文件夹的读取和/或写入访问。响应于建立CDM虚拟通道1110,嵌入式浏览器410可以允许客户机装置的OS和/或装置/应用读取和/或写入安全会话1106内的文件。

在一些实施例中,并且使用上述的一个或多个类似的操作和/或元件,嵌入式浏览器410可以在安全会话1106和客户机装置402的I/O装置1114之间传输数据。I/O装置可以包括任何外围装置或存储装置,例如打印、显示器或USB装置。如前所述,可以在嵌入式浏览器410和基于HTML的应用1108之间建立CDM虚拟通道1110(或其他虚拟通道)。该CDM虚拟通道1110(或其他虚拟通道)可以用于从安全会话1106内利用和/或访问由I/O装置1114(更具体地由嵌入式浏览器410和/或由基于HTML的应用1108)提供的功能和/或特征。

参考图12,其描绘了用于受信任的数据传输的方法的一个实施例的流程图。该方法的功能可以使用本文中结合图1-11详细描述的组件来实现或由其执行。简言之,嵌入式浏览器可以提供对基于HTML的应用的访问(1205)。基于HTML的应用可以建立安全会话(1210)。嵌入式浏览器可以确定基于HTML的应用是否是受信任的应用(1215)。嵌入式浏览器可以建立至少一个虚拟通道(1220)。嵌入式浏览器可以经由至少一个虚拟通道来传输数据(1225)。

现在参考操作(1205),并且在一些实施例中,嵌入式浏览器可以提供对基于HTML的应用的访问。客户机装置和/或用户可以经由在客户机装置上执行的嵌入式浏览器来访问基于HTML的应用,该基于HTML的应用被配置为经由嵌入式浏览器提供对网络应用的访问。嵌入式浏览器可以接收URL/地址作为用户输入,或者接收用户动作以激活在浏览器上呈现的URL/地址。响应于接收或激活URL/地址,浏览器可以将HTTP请求发送到一个或多个服务器1104和/或云服务。例如,浏览器可以接收对HTTP请求的HTTP响应,该响应包括HTML5应用或web接口,用于在浏览器上加载。基于HTML的应用可以提供图标或链接,以供用户访问网络应用。在(例如,通过来自用户的点击)激活图标或链接时,可以与主机服务器建立连接,以建立和/或供应网络应用到客户机装置的会话(经由基于HTML的应用和/或嵌入式浏览器)。嵌入式浏览器可以是本机的或安装在客户机装置上,并且可以在客户机装置上执行。基于HTML的应用可以由云服务和/或一个或多个服务器1104来提供。在一些实施例中,服务器可以提供、执行和/或托管用于访问网络应用的浏览器(例如,远程安全浏览器)和/或向基于HTML的应用提供对网络应用的访问。一个或多个服务器可以托管、监视和/或存储一个或多个网络应用。

现在参考操作(1210),并且在一些实施例中,基于HTML的应用可以建立安全会话。基于HTML的应用可以在服务器和基于HTML的应用之间为网络应用建立安全会话。安全会话可以用于在服务器和基于HTML的应用之间供应在服务器上托管和/或执行的网络应用的会话。可以使用Citrix高清晰度用户体验(HDX)协议(例如,作为HDX会话)、或独立计算架构(ICA)协议、或远程桌面协议(RDP)来建立安全会话。安全会话可以是安全浏览器会话,该安全浏览器会话将在服务器上托管的安全浏览器上呈现的网络应用数据传达到基于HTML的应用。各种网络协议可以用于通过安全会话传送网络应用数据,例如安全HTTP(S-HTTP或HTTPS)、传输层安全性(TLS)和安全套接字层(SSL)。

现在参考操作(1215),并且在一些实施例中,嵌入式浏览器可以确定基于HTML的应用是否是受信任的应用。在一些实施例中,嵌入式浏览器可以通过确定基于HTML的应用是由安全浏览器服务器提供或授权的来确定基于HTML的应用是否是受信任的应用。在确定基于HTML的应用是否为受信任的应用时,嵌入式浏览器可以确定基于HTML的应用是否来自受信任的源,与特定版本相对应,经由特定URL/地址访问,具有特定特性和/或可以应用来自策略引擎的至少一个访问控制策略。嵌入式浏览器可以经由应用的白名单和/或黑名单来确定基于HTML的应用是否是受信任的应用。

现在参考操作(1220),并且在一些实施例中,嵌入式浏览器可以建立至少一个虚拟通道。嵌入式浏览器可以在嵌入式浏览器和基于HTML的应用之间建立至少一个虚拟通道。在一些实施例中,响应于确定基于HTML的应用是受信任的应用(例如,在操作1215),嵌入式浏览器可以建立至少一个虚拟通道。嵌入式浏览器可以响应于基于HTML的应用经由嵌入式浏览器访问来建立虚拟通道。嵌入式浏览器可以响应于基于HTML的应用用于访问(例如,托管在服务器上的)网络应用来建立虚拟通道。嵌入式浏览器可以根据被访问的网络应用来建立一种或多种类型的虚拟通道。例如,某些类型的网络应用可以支持或涉及某些特征的使用,例如剪贴板、外围装置和/或文件系统。因此,嵌入式浏览器可以建立和/或配置一个或多个虚拟通道以支持或启用这样的特征。至少一个虚拟通道可以用于传输数据。至少一个虚拟通道可以用于基于HTML的应用和嵌入式浏览器之间的通信。

现在参考操作(1225),并且在一些实施例中,嵌入式浏览器可以经由至少一个虚拟通道来传输数据。嵌入式浏览器可以响应于建立至少一个虚拟通道而经由至少一个虚拟通道来传输数据。可以在服务器和基于HTML的应用之间的网络应用的安全会话与客户机装置的操作系统之间传输数据。在一些实施例中,响应于嵌入式浏览器建立至少一个虚拟通道(例如,在操作1220),嵌入式浏览器可以经由至少一个虚拟通道来传输数据。所传输的数据可以包括任何形式或类型的内容,例如文本、图像和/或文件。例如,嵌入式浏览器可以授权在安全会话和客户机装置的OS之间传达或提供接口来传达特定类型的请求或系统调用。嵌入式浏览器可以拦截、检测或确定特定类型的请求或系统调用。基于特定类型的请求或系统调用,嵌入式浏览器(或会话或OS)可以识别一个或多个虚拟通道,以传输或传达与请求或系统调用相关联的数据。

在一些实施例中,嵌入式浏览器可以使用至少一个虚拟通道的剪贴板虚拟通道在安全会话的剪贴板和客户机装置的OS的剪贴板之间传输数据。所传输的数据可以包括纯文本、文本文件、图像文件和应用文件。例如,当用户在经由基于HTML的应用访问的安全浏览器会话内复制文本时,该文本被复制到安全会话的剪贴板。在一些实施例中,所建立的剪贴板虚拟通道可以检测对剪贴板的更新,并且可以(例如,响应于该检测)传输被复制到安全会话的剪贴板的文本。基于HTML的应用可以检测经由剪贴板虚拟通道的文本的传输,并且可以请求嵌入式浏览器更新客户机装置的OS的剪贴板。嵌入式浏览器可以向客户机装置的OS发送请求或系统调用,以使用经由剪贴板虚拟通道传输的文本来更新其剪贴板。

在一些实施例中,嵌入式浏览器可以检测用户动作以在安全会话内复制文本,并且可以经由剪贴板虚拟通道发起剪贴板内容(例如,复制的文本)的传输。嵌入式浏览器可以通过向安全会话(例如,向安全会话的OS)发送请求或触发系统调用来发起传输。可以响应于请求或系统调用,经由剪贴板虚拟通道来传输安全浏览器会话的剪贴板内容。嵌入式浏览器可以向客户机装置的OS发送请求或系统调用,以使用经由剪贴板虚拟通道传输的文本来更新其剪贴板。

当用户将来自操作系统的剪贴板的文本粘贴到安全浏览器会话中时,可以使用类似的机制将内容从操作系统的剪贴板传输到安全浏览器会话的剪贴板,以允许粘贴。除了复制和粘贴外,剪切也可以是剪贴板的功能。例如,当用户从OS的剪贴板粘贴文本时,剪贴板虚拟通道可以检测到该用户动作,并且可以(例如,响应于该检测)经由剪贴板虚拟通道来传输文本。嵌入式浏览器可以检测经由剪贴板虚拟通道的文本的传输,并且可以请求基于HTML的应用更新安全浏览器会话的剪贴板。基于HTML的应用可以向安全浏览器会话(或其本地OS)发送请求或系统调用,以使用经由剪贴板虚拟通道传输的文本来更新其剪贴板。基于HTML的应用可以向安全会话(或其本地OS)发送请求或系统调用,以例如将文本从其安全会话内的剪贴板粘贴到期望的目的地网络应用。

在一些实施例中,嵌入式浏览器可以检测用户动作,以将文本从客户机装置的剪贴板粘贴到可经由安全浏览器会话访问的网络应用。嵌入式浏览器可以发起经由剪贴板虚拟通道的客户机装置的剪贴板内容(例如,所复制的文本)的传输。嵌入式浏览器可以通过向客户机装置的OS发送请求或触发系统调用来发起传输。可以响应于请求或系统调用,经由剪贴板虚拟通道来传输客户机装置的剪贴板内容。嵌入式浏览器可以请求基于HTML的应用向安全会话的OS发送请求或系统调用,以使用经由剪贴板虚拟通道传输的文本来更新其剪贴板。基于HTML的应用可以向安全浏览器会话(或其本地OS)发送请求或系统调用,以将文本从其剪贴板粘贴到安全浏览器会话内的期望目的地应用。

在一些实施例中,嵌入式浏览器可以通过执行经由客户机装置的OS发起的对安全会话内的文件的读取或写入访问,使用至少一个虚拟通道来传输数据。响应于建立客户机驱动器映射(CDM)虚拟通道,嵌入式浏览器可以允许客户机装置的OS和/或装置和/或应用读取和/或写入安全会话内的文件。类似地,在一些实施例中,嵌入式浏览器可以通过执行网络应用对客户机装置的OS的文件系统内的文件或文件夹的读取或写入访问,使用至少一个虚拟通道来传输数据。嵌入式浏览器可以经由基于HTML的应用和/或嵌入式浏览器来启用、允许或支持网络应用对客户机装置的操作系统的文件系统内的文件或文件夹的读取和/或写入访问。例如,可以通过嵌入式浏览器的客户机驱动器映射(CDM)虚拟通道授予网络应用或安全浏览器在其安全会话内对读取和/或写入存储在由客户机装置的OS管理的文件系统内的文件或文件夹的访问。CDM虚拟通道可以在客户机装置的文件系统和安全会话之间映射特定的(例如,授权的)文件和/或文件夹,以获得类似本机的用户体验。

在某些实施例中,通过应用至少一个访问控制策略,嵌入式浏览器可以确定允许网络应用的读取或写入访问的位置。基于HTML的应用可以(例如,代表诸如远程托管应用或web应用之类的网络应用)请求对客户机装置的操作系统的文件系统内的文件或文件夹的访问。使用嵌入式浏览器或(例如,云服务的)网络服务器的策略引擎应用的至少一个访问控制策略,嵌入式浏览器可以确定是否允许网络应用或客户机装置对特定文件和/或文件夹的读取或写入访问。响应于确定是否允许网络应用的读取和/或写入访问,嵌入式浏览器可以启用、允许或支持网络应用或客户机装置的读取和/或写入访问。在一些实施例中,可以根据客户机装置和/或安全会话的当前上下文或条件来(例如,由来自网络服务器的嵌入式浏览器)动态地生成和/或访问至少一个访问控制策略。

在一些实施例中,嵌入式浏览器可以在安全会话和客户机装置的I/O装置之间传输数据。I/O装置可以包括打印机、USB和/或其他外围装置和存储装置。可以在嵌入式浏览器和基于HTML的应用之间建立一个或多个虚拟通道,以在安全会话和客户机装置的I/O装置之间进行数据传输。虚拟通道可以用于从安全会话内利用和/或访问由I/O装置提供的功能和/或特征,并且可以由嵌入式浏览器和/或由基于HTML的应用建立和/或使用。例如,一旦经由基于策略的访问控制授予访问(例如,类似于上面讨论的访问控制策略的使用),则在安全会话内经由基于HTML的应用供应的网络应用就可能能够使用打印机或访问客户机装置的操作系统的闪存驱动器。例如,虚拟通道可以将来自安全会话、定向到客户机装置的I/O装置的请求或系统调用定向到基于HTML的应用。基于HTML的应用可以请求嵌入式浏览器将请求或系统调用重定向或转换到客户机装置的OS。客户机装置的OS可以经由I/O装置的装置驱动器进行通信或交互,以根据来自安全会话的请求或系统调用来操作I/O装置。例如,来自安全会话的请求可以包括要发送到客户机装置的打印机以进行打印的网络应用数据。可以经由虚拟通道或另一特定虚拟通道来传达网络应用数据,以用于将这样的网络应用数据传达到客户机装置。

作为另一示例,来自安全会话的请求可以包括从客户机装置的闪存驱动器读取内容的指令。该请求可以经由第一虚拟通道发送,而从闪存驱动器读取的内容可以经由第二虚拟通道传达到安全会话中。

应当理解,上述系统可以提供那些组件中的任一个或每一个的多个组件,并且这些组件可以在独立的机器上或者在一些实施例中在分布式系统中的多个机器上提供。可以通过使用编程和/或工程技术来生产软件、固件、硬件或其任何组合,将上述系统和方法实现为方法、设备或制造产品。另外,可以将上述系统和方法作为嵌入在一个或多个制造产品之上或之中的一个或多个计算机可读程序来提供。本文所使用的术语“制造产品”旨在包括可从一个或多个计算机可读装置可访问的或嵌入其中的代码或逻辑、固件、可编程逻辑、存储装置(例如EEPROM、ROM、PROM、RAM、SRAM等)、硬件(例如集成电路芯片、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)、电子装置、计算机可读非易失性存储单元(例如CD-ROM、USB闪存、硬盘驱动器等)。可以从文件服务器访问该制造产品,该文件服务器经由网络传输线、无线传输介质、在空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问。该制造产品可以是闪存卡或磁带。该制造产品包括硬件逻辑以及嵌入在计算机可读介质中的由处理器执行的软件或可编程代码。通常,计算机可读程序可以以任何编程语言(例如LISP、PERL、C、C++、C#、PROLOG)或任何字节代码语言(例如JAVA)实现。软件程序可以作为目标代码存储在一个或多个制造产品之上或之中。

尽管已经描述了方法和系统的各种实施例,但是这些实施例是示意性的,并且绝不限制所描述的方法或系统的范围。相关领域的技术人员可以在不脱离所描述的方法和系统的最广泛范围的情况下,对所描述的方法和系统的形式和细节进行改变。因此,本文描述的方法和系统的范围不应受到任何示意性实施例的限制,而应根据所附权利要求及其等同物来定义。

相关技术
  • 用于将基于HTML的应用与嵌入式浏览器集成的系统和方法
  • 用于在基于云的集成服务中将web用户接口应用与底层持久性框架和运行时引擎隔离的系统和方法
技术分类

06120112933369