首页> 中国专利> 基于策略的应用程序管理

基于策略的应用程序管理

摘要

本文描述了用于管理移动设备上的企业应用程序的改进技术。在移动设备上运行的每个企业移动应用程序具有关联的策略,通过该关联策略其与其环境交互。策略根据企业建立的规则选择性地阻碍或允许涉及企业应用程序的活动。同时,在移动设备上运行的企业应用程序形成一组受管应用程序。受管应用程序通常被允许与其他受管应用程序交换数据,但被阻碍与其他应用程序交换数据,诸如用户自己的个人应用程序。策略可被定义为管理数据共享、移动资源管理、应用程序专用信息、网络和数据访问解决方案、设备云和传输、双模式应用程序软件、企业应用程序商店访问以及虚拟化应用程序和资源,等等。

著录项

  • 公开/公告号CN104838630A

    专利类型发明专利

  • 公开/公告日2015-08-12

    原文格式PDF

  • 申请/专利权人 思杰系统有限公司;

    申请/专利号CN201380064191.1

  • 申请日2013-10-09

  • 分类号H04L29/06(20060101);G06F21/53(20060101);G06F21/62(20060101);

  • 代理机构11262 北京安信方达知识产权代理有限公司;

  • 代理人宁晓;郑霞

  • 地址 美国佛罗里达州

  • 入库时间 2023-12-18 10:21:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-10-12

    授权

    授权

  • 2015-09-09

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20131009

    实质审查的生效

  • 2015-08-12

    公开

    公开

说明书

相关申请的交叉引用

本申请要求于2013年10月2日提交的题为“基于策略的应用程序管 理(Policy Based Application Management)”的美国专利No.14/043,902的 优先权,其又要求以下项的优先权:于2013年8月2日提交的题为“基 于策略的应用程序管理(Policy-Based Application Management)”的临时申 请61/861,736;于2013年3月29日提交的题为“用于企业移动性管理的 系统和方法(Systems and Methods for Enterprise Mobility Management)”的 临时申请61/806,577;于2012年10月16日提交的题为“衍生自非受管应 用程序的受管应用程序的基于策略的控制(Policy-Based Control of a  Managed Application Derived from an Unmanaged Application)”的临时申请 61/714,469;于2012年10月15日提交的题为“在电子移动设备上运行的 安全应用程序之间传送数据(Conveying Data Between Secure Applications  Running on an Electronic Mobile Device)”的临时申请61/713,762;于2012 年10月15日提交的题为“在受管应用程序之间共享的安全数据(Secure  Data Sharing Among Managed Applications)”的临时申请61/713,718;于 2012年10月10日提交的题为“用于控制移动设备访问企业资源的网关 (Gateway for Controlling Mobile Device Access to Enterprise Resources)” 的非临时申请13/649,076;于2012年10月15日提交的题为“受控制访问 计算机化资源的基于应用程序的策略(Per-Application Policy Controlled  Access to Computerized Resources)”的临时申请61/713,763;于2012年10 月16日提交的题为“管理用于非受管移动设备上的受管应用程序的加密 文件库(Managing Encrypted File Vaults for Managed Applications on  Unmanaged Mobile Device)”的临时申请61/714,293;于2013年5月3日 提交的题为“具有多种操作模式的应用程序(Application with Multiple  Operation Modes)”的非临时申请13/886,889;于2012年10月14日提交 的题为“自动会议室(Automated Meeting Room)”的临时申请61/713,554; 于2012年10月12日提交的题为“跨越时间和空间的无摩擦分布式协作 式工作(Frictionless Distributive Collaborative Work Across Time and Space)” 的临时申请61/712,948;于2012年10月12日提交的题为“使用活动接口 的移动工作和微观工作(Mobile Work and Micro Work Using an Activity  Interface)”的临时申请61/712,953;于2012年10月12日提交的题为“多 设备交互(Multi-Device Interaction)”的临时申请61/712,956;于2012年 10月12日提交的题为“用于连接的设备的业务流程框架(Orchestration  Framework for Connected Devices)”的临时申请61/712,962;以及于2013 年5月3日提交的题为“锁定场景的移动设备(Mobile Device Locking with  Context)”的非临时申请13/886,765。出于全部的目的,上述申请中的每一 个申请,以参考的方式整个地并入本文。

技术领域

本文所描述的方面一般涉及移动计算设备。更具体地,本文所描述的 方面涉及用于对在移动计算设备上执行的受管应用程序施加控制的技术。

背景技术

一些企业(例如,公司、合伙企业、政府、学术机构、其他组织等等) 维护企业计算机网络,企业计算机网络允许诸如雇员的企业用户访问用于 诸如电子邮件、客户关系管理(CRM)、文档管理、企业资源计划(ERP) 等等的硬件和软件应用程序以及企业所控制的其他数据的企业资源。企业 有时允许远程访问,诸如当企业用户不处于企业网络中时。此外,一些企 业允许用户经由移动设备(诸如智能电话、平板计算机、PAD(个人数字 助理)等等)访问企业网络。企业通常部署企业移动性管理(EMM)解决 方案,以帮助管理和控制对企业资源的远程访问。EMM解决方案传统上 采用被称之为移动设备管理(MDM)方法的方法来管理全部的移动设备。 在先存的EMM解决方案中,企业通常发给雇员移动设备,其旨在专门用 于商业用途,以及对移动设备及所有的其应用程序和数据的企业级维护控 制。最近的趋势是允许雇员出于工作目的使用他们自己的移动设备(称之 为BYOD-带你自己的设备的方案)。然而,BYOD方案造成内在的安全性 风险,这是因为不存在对每个设备的统一的或通用的控制。

发明内容

以下呈现本文所描述的各个方面的简要总结。总结不是广泛的概述, 并且不旨在识别主要的或关键的元素或者描绘所要保护的范围。以下总结 仅仅以简化的形式将一些概念呈现作为下面所提供的更详细描述的介绍 性序言。

在阅读和理解本说明书之后,将明显的是,克服了上述现有技术的限 制,及克服了其他限制,本文所描述的方面针对移动应用程序,这些移动 应用程序受定义一个或多个安全性、特征和/或资源限制的一个或多个独立 策略文件的控制。每个应用程序可根据其相应组的策略文件执行,该相应 组的策略文件可选地与应用程序分开接收,并且其定义一个或多个安全性 参数、特征、资源限制以及/或者当该应用程序在设备上执行时由移动设备 管理系统实施的其他访问控制。通过根据其各个策略文件进行操作,每个 应用程序可被允许或被限制与一个或多个其他应用程序和/或资源通信。策 略文件可定义可接受的行为,例如,基于用户凭证、用户角色、地理位置、 网络位置、位置类型、企业移动性管理(EMM)信息,以及/或者由操作 设备可访问的或可确定的任何其他信息。

通过下面进一步详细讨论的本公开的优势,将理解这些和附加方面。

附图说明

通过参照以下接合附图考虑的描述,可获得对本文所描述的方面及其 优点的更完整的理解,其中相似的参考数字指示相似的特征,并且其中:

图1示出的是可根据本文所描述的一个或多个说明性方面使用的说明 性计算机系统体系结构。

图2示出的是可根据本文所描述的一个或多个说明性方面使用的说明 性基于云的系统体系结构。

图3示出的是说明性企业移动性管理系统。

图4示出的是另一个说明性企业移动性管理系统。

图5示出的是根据本文所描述的说明性方面的过程流图。

图6示出的是根据本文所描述的说明性方面的设备。

图7示出的是根据本文所描述的说明性方面的数据流图。

图8示出的是根据本文所描述的说明性方面的系统体系结构。

图9示出的是根据本文所描述的说明性方面的系统体系结构。

图10示出的是根据本文所描述的说明性方面的系统体系结构。

图11示出的是根据本文所描述的说明性方面的系统体系结构。

图12示出的是根据本文所描述的说明性方面的系统体系结构。

图13示出的是根据本文所描述的说明性方面的系统体系结构。

图14示出的是用于根据本文所描述的说明性方面执行基于策略的应 用程序管理的说明性方法。

图15示出的是用于根据本文所描述的说明性方面执行基于策略的应 用程序管理的说明性方法。

图16示出的是根据本文所描述的说明性方面的设备。

图17示出的是根据本文所描述的说明性方面的设备。

图18示出的是根据本文所描述的说明性方面的设备。

图19示出的是根据本文所描述的说明性方面的过程流图。

图20示出的是根据本文所描述的说明性方面的过程流图。

图21示出的是根据本文所描述的说明性方面的系统。

图22示出的是根据本文所描述的说明性方面的设备。

图23示出的是根据本文所描述的说明性方面的过程流图。

图24示出的是根据本文所描述的说明性方面的设备。

图25示出的是根据本文所描述的说明性方面的系统。

图26示出的是根据本文所描述的说明性方面的系统。

图27示出的是根据本文所描述的说明性方面的过程流图。

图28示出的是根据本文所描述的说明性方面的系统。

图29A和图29B示出的是根据本文所描述的说明性方面的系统。

图30示出的是用于根据本文所描述的说明性方面执行基于策略的应 用程序管理的说明性方法。

图31示出的是根据本文所描述的说明性方面的过程流图。

图32示出的是根据本文所描述的说明性方面的过程流图。

图33示出的是根据本文所描述的说明性方面的过程流图。

图34示出的是根据本文所描述的说明性方面的过程流图。

图35示出的是根据本文所描述的说明性方面的系统。

图36示出的是根据本文所描述的说明性方面的设备。

图37示出的是根据本文所描述的说明性方面的过程流图。

图38示出的是根据本文所描述的说明性方面的过程流图。

图39示出的是根据本文所描述的说明性方面的过程流图。

图40示出的是根据本文所描述的说明性方面的过程流图。

图41示出的是根据本文所描述的说明性方面的过程流图。

图42示出的是根据本文所描述的说明性方面的过程流图。

图43示出的是根据本文所描述的说明性方面的过程流图。

图44示出的是用于根据本文所描述的说明性方面执行基于策略的应 用程序管理的说明性方法。

图45示出的是根据本文所描述的说明性方面的过程流图。

图46示出的是根据本文所描述的说明性方面的过程流图。

图47示出的是根据本文所描述的说明性方面的过程流图。

图48示出的是根据本文所描述的说明性方面的过程流图。

图49-56示出的是用于根据本文所描述的说明性方面执行基于策略的 应用程序管理的说明性方法。

具体实施方式

在以下各种实施例的描述中,对以上所识别的附图进行参考并且其组 成本文件的部分,并且其中通过说明性的方式示出了其中可实践本文所描 述的方面的各种实施例。应当理解的是,可以利用其他的实施例并且可作 出结构和功能修改,而不脱离本文所描述的范围。各种方面能够实现其他 实施例并能够以各种不同的方式实践或执行。

1、介绍

作为对下面更详细描述的主题的概述,本文所描述的方面针对在移动 计算设备处使用受管移动应用程序来控制对企业计算系统处的资源的远 程访问。访问管理器可执行验证过程,其确定请求访问企业资源的移动应 用程序是否已经准确地识别了其自身,以及随后在安装在移动计算设备之 后是否未被更改。以这种方式,访问管理器可保证请求访问企业资源的移 动应用程序可被信任并且没有尝试避开用于保护那些企业资源的安全性 机制。从而,与企业关联的个人可有利地在他们的个人移动设备处利用企 业资源。

应当理解的是,本文所使用的措辞和术语是出于描述的目的,并且不 应被视为限制性的。相反,本文所使用的语句和术语将被给出的是它们最 广泛的解释和意义。“包括(including)”和“包含(comprising)”及其变 型的使用旨在包括其后列出的项目及其等效物以及附加项目及其等效物。 术语“安装(mounted)”、“连接(connected)””、“耦合(coupled)””、“定 位(positioned)””、“啮合(engaged)””和类似术语的使用旨在包括直接 和间接的安装、连接、耦合、定位和啮合。

2、计算体系结构

计算机软件、硬件和网络可用于多种不同的系统环境中,包括单机环 境、联网的环境、远程访问(又叫做远程桌面)的环境、虚拟化环境和/ 或基于云的环境,等等。图1示出的是系统体系结构和数据处理设备的一 个示例,其可用于在单机环境和/或联网的环境中实施本文所描述的一个或 多个说明性方面。各种网络节点103、105、107和109可经由诸如互联网 的广域网(WAN)101互连。还可使用或可选地使用其他网络,包括私有 内联网、协同网络、局域网(LAN)、城域网(MAN)、无线网、个人网络 (PAN)等等。网络101是用于说明的目的并且可以用更少或附加的计算 机网络代替。LAN可具有任何已知的LAN拓扑中的一个或多个,并且可 使用多种不同协议中的一个或多个,诸如以太网。设备103、105、107、 109和其他设备(未示出)可经由双绞线、同轴电缆、光纤、无线电波或 其他通信媒介连接到一个或多个网络。

本文所使用以及附图中所描述的术语“网络”不仅指其中远程存储设 备经由一个或多个通信路径耦合在一起的系统,还指有时可耦合到具有存 储能力的这种系统的单机设备。因此,术语“网络”不仅包括“物理网络” 还包括“内容网络”,其包括可归属于单个实体的数据-这些数据驻留在所 有的物理网络。

部件可包括数据服务器103、web服务器105和客户端计算机107、109。 数据服务器103提供对数据库和控制软件的总体访问、控制和管理,以用 于执行本文所描述的一个或多个说明性方面。数据服务器103可连接到 web服务器105,其中用户通过该web服务器105交互并获得所请求的数 据。可选地,数据服务器103可自身充当web服务器,并直接地连接到互 联网。数据服务器103可经由直接或间接连接或经由一些其他网络,通过 网络101(例如,互联网),连接到web服务器105。用户可使用远程计算 机107、109与数据服务器103交互,例如,使用web浏览器以经由通过 web服务器105托管的一个或多个对外曝露的网站连接到数据服务器103。 客户端计算机107、109可用于与数据服务器103协作,以访问存储于其 中的数据,或者可用于其他目的。例如,用户可使用如本领域中已知的互 联网浏览器从客户端设备107访问web服务器105,或者通过经由计算机 网络(诸如互联网)执行与web服务器105和/或数据服务器103通信的软 件应用程序来从客户端设备107访问web服务器105。

服务器和应用程序可被组合在相同的物理机器上,并保留分离的虚拟 地址或逻辑地址,或者可驻留在分离的物理机器上。图1示出的是可使用 的网络体系结构的仅一个示例,并且本领域技术人员应当理解的是,所使 用的具体网络体系结构和数据处理设备可变化,并且对于它们提供的功能 来说是次要的,如本文所进一步描述。例如,web服务器105和数据服务 器103所提供的服务可被组合在单个服务器上。

部件103、105、107、109中的每个可以是已知的任何类型的计算机、 服务器或数据处理设备。例如,数据服务器103可包括控制速率服务器103 的总体操作的处理器111。数据服务器103可进一步包括RAM 113、ROM 115、网络接口117、输入/输出接口119(例如,键盘、鼠标、显示器、打 印机等),和存储器121。I/O 119可包括多种接口单元和驱动器,以用于 读取、写入、显示和/或打印数据或文件。存储器121可进一步存储操作系 统软件123、控制逻辑125,以及其他应用程序软件127,存储操作系统软 件123用于控制数据处理设备103的总体操作,控制逻辑125用于指导数 据服务器103执行本文所描述的方面,以及其他应用程序软件127提供次 级支持以及/或者可或不可与本文所描述的方面结合使用的其他功能。本文 中,控制逻辑还可指数据服务器软件125。数据服务器软件的功能可以指 的是基于被编码到控制逻辑中的规则自动作出的操作或决定、通过用户将 输入提供到系统中手动作出的操作或决定,以及/或者基于用户输入的自动 处理的组合(例如,查询、数据更新等)。

存储器121还可存储在本文所描述的一个或多个方面的执行中使用的 数据,包括第一数据库129和第二数据库131。在一些实施例中,第一数 据库可包括第二数据库(例如,作为分离的表格、报告等等)。也就是说, 可将信息存储在单个数据库中,或者分离到不同的逻辑数据库、虚拟数据 库或物理数据库中,这取决于系统设计。设备105、107、109可具有如相 对设备103所描述的类似或不同的体系结构。本领域技术人员将理解的是, 本文所描述的数据处理设备103(或设备105、107、109)的功能可被分 散到多个数据处理设备,例如,将处理负载分布到多个计算机,基于地理 位置、用户访问级别、服务质量(QoS)等等隔离事务。

以通过本文所描述的一个或多个计算机或其他设备,执行计算机可用 或可读数据和/或计算机可执行指令,诸如一个或多个程序模块,可实施一 个或多个方面。通常,程序模块包括例程、程序、对象、部件、数据结构 等等,当被计算机或其他设备中的处理器执行时,该程序模块执行特定任 务或实施特定抽象数据类型。可以用随后被编译用于执行的源代码编程语 言编写模块,或者用诸如(但不限于)JavaScript或ActionScript的脚本语 言编写模块。计算机可执行指令可被存储在诸如非易失性存储设备的计算 机可读介质上。可使用任何合适的计算机可读存储介质,包括硬盘、 CD-ROM、光存储设备、磁存储设备和/或它们的任何组合。另外,可以用 电磁波的形式在源和目的地之间传递表示本文所描述的数据或事件的各 种传输(非存储)媒介,该电磁波通过诸如金属丝、光纤、信号-导电媒介 和/或无线传输媒介(例如,空气和/或空间)传播。本文所描述的各个方 面可被实施为方法、数据处理系统或计算机程序产品。因此,各种功能可 完全地或部分地在软件、固件和/或硬件或诸如集成电路、现场可编程门阵 列(FPGA)的硬件等效物等等中实施。特定的数据结构可用于更有效地 实施本文所描述的一个或多个方面,并且该类数据结构被考虑在本文所描 述的计算机可执行指令和计算机可用数据的范围内。

进一步参考图2,可在基于云的环境中实施本文所描述的一些方面。 图2示出的是云计算环境(或云系统)400的示例。如图2所示,客户端 计算机211-214可与云管理服务器210通信,以访问云系统的计算资源(例 如,主机服务器203、存储器资源204和网络资源205)。

管理服务器210可在一个或多个物理服务器上实施。例如,管理服务 器210可运行弗罗里达德代尔堡的思杰系统公司(Citrix Systems,Inc.)的 云编排技术(CLOUDSTACK)或开源技术。管理服务器210可管理各种 计算资源,包括云硬件和软件资源,例如,主机计算机203、数据存储设 备204和网络设备205。云硬件和软件资源可包括私有和/或公共部件。例 如,云可被配置为被一个或多个特定客户或客户端计算机211-214以及/或 者经由私有网络使用的私有云。在其他实施例中,公共云或混合的公共- 私有云可经由开放或混合网络被其他客户使用。

管理服务器210可被配置为提供用户接口,其中云操作者和云客户通 过该用户接口可与云系统交互。例如,管理服务器210可提供具有用户接 口的一组API和/或一个或多个云操作者控制台应用程序(例如,基于网络 的或单机应用程序),以允许云操作者管理云资源、配置虚拟层、管理客 户账户以及执行其他云管理任务。管理服务器210还可包括具有用户接口 的一组API和/或一个或多个客户控制台应用程序,其中用户接口被配置为 经由客户端计算机211-214从终端用户接收云计算请求,例如,请求在云 内创建、修改或销毁云中的虚拟机。客户端计算机211-214可经由互联网 或其他通信网络连接到管理服务器210,并且可请求访问由管理服务器210 管理的一个或多个计算资源。响应于客户端请求,管理服务器210可包括 资源管理器,其被配置为基于客户端请求在云系统的硬件层中选择和供应 物理资源。例如,管理服务器210和云系统的附加部件可被配置为经由网 络(例如,互联网)为客户端计算机211-214处的客户供应、创建和管理 虚拟机及它们的操作环境(例如,超级监督者、存储资源、由网络元素提 供的服务等等),以提供给客户计算资源、数据存储服务、网络能力和计 算机平台和应用程序支持。云系统还可被配置为提供各种具体服务,包括 安全性系统、开发环境、用户接口等等。

可涉及某些客户端211-214,例如,代表相同的终端用户创建虚拟机 的不同客户端计算机,或隶属于相同公司或组织的不同用户。在其他示例 中,可不涉及某些客户端211-214,诸如隶属于不同公司或组织的用户。 对于未涉及的客户端,可对其他用户隐藏关于虚拟机或任何一个用户的存 储的信息。

现参考云计算环境的物理硬件层,可用区域201-202(或区域)可指 所收集的物理计算资源组。在总体的计算资源云中区域可与其他区域地理 上分离。例如,区域201可为位于加利福尼亚州的第一云数据中心,而区 域202可为位于弗罗里达的第二云数据中心。管理服务器210可位于可用 区域中的一个或分离区域。每个区域可包括通过网关与区域外部的设备 (诸如管理服务器210)交互的内部网络。云的终端用户(例如,客户端 211-214)可或不可意识到区域之间的区别。例如,终端用户可请求创建虚 拟机,其具有指定量的存储器、处理功率和网络能力。管理服务器210可 响应于用户的请求并且可分配资源,以在用户不知道是使用来自区域201 还是区域202的资源创建了虚拟机的情况下创建虚拟机。在其他示例中, 云系统可允许终端用户请求将虚拟机(或其他云资源)分配在指定区域中 或区域内的指定资源203-205上。

在该示例中,区域201-202中的每个可包括各种物理硬件部件(或计 算资源)203-205的布置,例如,物理主机资源(或处理资源)、物理网络 资源、物理存储资源、交换机以及可用于将云计算服务提供给客户的附加 硬件资源。云区域201-202中的物理主机资源可包括一个或多个计算机服 务器203,诸如可被配置为创建和托管虚拟机实例的虚拟服务器。云区域 201或202中的物理网络资源可包括一个或多个网络元件205(例如,网 络服务提供商),其包括被配置为将网络服务提供给云客户的硬件和/或软 件,诸如防火墙、网络地址转换器、负载平衡器、虚拟私有网络(VPN) 网关、动态主机配置协议(DHCP)路由器等等。云区域201-202中的存 储资源可包括存储磁盘(例如,固态驱动器(SSD)、磁硬盘等等)以及其 他存储设备。

图2中所示的示例云计算环境还可包括虚拟层,其中附加的硬件和/ 或软件资源被配置创建和管理虚拟机并使用云中的物理资源将其他服务 提供给客户。虚拟层可包括一个或多个超级监督者以及其他部件,以提供 网络虚拟化、存储虚拟化等等。虚拟层可作为从物理资源层分离的层,或 者可与物理资源层共享相同硬件和/或软件资源的一些或全部。例如,虚拟 层可包括安装在具有物理计算资源的每个虚拟服务器203中的超级监督 者。可以可选地使用已知的云系统,例如,WINDOWS AZURE(华盛顿雷 德蒙德的微软公司)、AMAZON EC2(华盛顿西雅图的亚马逊公司)、IBM  BLUE CLOUD(纽约,阿蒙克市的IBM公司)或其他。

3、企业移动性管理体系结构

图3表示在企业环境、BYOD环境或其他移动环境中使用的企业移动 技术体系结构300。体系结构使移动设备302(例如,作为客户端107、211 或以其他方式)的用户能够从移动设备302访问企业或个人资源,并使用 移动设备302以用于个人用途。用户可使用用户所购买的移动设备302或 者企业提供给用户的移动设备302来访问该些企业资源304或企业服务 308。用户可利用移动设备302,以仅用于商业用途或者用于商业和个人用 途。移动设备可运行iOS操作系统、安卓操作系统和/或等等。企业可选择 实施策略以管理移动设备304。可以用该种方式通过防火墙或网关嵌入策 略,即移动设备可被识别、保护或安全性验证,以及提供到企业资源的选 择性访问或完全访问。策略可以是移动设备管理策略、移动应用程序管理 策略、移动数据管理策略或者移动设备、应用程序和数据管理策略的某种 组合。通过移动设备管理策略的应用程序管理的移动设备304可被称为注 册设备或管理设备。

在一些实施例中,可将移动设备的操作系统分离到受管分区310和非 受管分区312。受管分区310可使策略施加到其以保护在受管分区上运行 的应用程序以及在受管分区中存储的数据。在其他实施例中,所有应用程 序可根据从应用程序分离接收的一组一个或多个策略文件来执行,并且其 定义一个或多个安全性参数、特征、资源限制,以及/或者当该应用程序在 设备上执行时通过移动设备管理系统实施的其他访问控制。通过根据它们 各自的策略文件的操作,可允许或限制每个应用程序与一个或多个其他应 用程序和/或资源通信,从而创建虚拟分区。因此,如本文所使用,分区可 指存储器的物理上的分区部分(物理分区)、存储器的逻辑上分区部分(逻 辑分区),以及/或者作为实施一个或多个策略和/或策略文件的结果跨越多 个应用程序所创建的虚拟分区,如本文所描述(虚拟分区)。换句话说, 通过在受管应用程序上实施策略,可将那些应用程序限制为仅能够与其他 受管应用程序和信任的企业资源通信,从而创建非受管应用程序和设备不 能通过的虚拟分区。

在受管分区上运行的应用程序可为安全应用程序。安全应用程序可为 电子邮件应用程序、web浏览应用程序、软件即服务(SaaS)访问应用程 序、窗口应用程序访问应用程序等等。安全应用程序可为安全本机应用程 序314、通过安全应用程序启动器318执行的安全远程应用程序322、通 过安全应用程序启动器318执行的虚拟化应用程序326等等。安全本机应 用程序314可通过安全应用程序封套320封装。安全应用程序封套320可 包括集成策略,当安全本机应用程序在设备上执行时,该集成策略在移动 设备302上执行。安全应用程序封套320可包括元数据,其将在移动设备 302上运行的安全本机应用程序314指向企业处托管的资源,即安全本机 应用程序314可要求完成在执行安全本机应用程序314后所请求的任务。 通过安全应用程序启动器318执行的安全远程应用程序322可在安全应用 程序启动器应用程序318内执行。通过安全应用程序启动器318执行的虚 拟化应用程序326可在移动设备302上、企业资源304处等等利用资源。 通过由安全应用程序启动器318执行的虚拟化应用程序326在移动设备 302上利用的资源可包括用户交互资源、处理资源等等。用户交互资源可 用于收集和传输键盘输入、鼠标输入、摄像头输入、触觉输入、音频输入、 视频输入、手势输入等等。处理资源可用于呈现用户接口、处理从企业资 源304接收的数据等等。通过由安全应用程序启动器318执行的虚拟化应 用程序326在企业资源304处使用的资源可包括用户接口生成资源、处理 资源等等。用户接口生成资源可用于组合用户接口、修改用户接口、刷新 用户接口等等。处理资源可用于创建信息、读取信息、更新信息、删除信 息等等。例如,虚拟化应用程序可记录与GUI关联的用户交互,并将它们 传送到服务器应用程序,其中服务器应用程序将使用用户交互数据作为输 入到在服务器上操作的应用程序的输入。在该布置中,企业可作出选择以 维护服务器端上的应用程序以及与应用程序关联的数据、文件等等。尽管 企业可选择通过保护它们以用于移动设备上的部署来根据本文的原理“调 动”一些应用程序,还可为某些应用程序选择该布置。例如,当一些应用 程序被保护用于在移动设备上使用时,其他的可不被准备或适用于在移动 设备上部署,因此企业可选择通过虚拟化技术提供给移动用户对未准备应 用程序的访问。作为另一个示例,企业可具备具有大型和复杂的数据集的 大型复杂应用程序(例如,材料资源计划应用程序),其中其将非常难于 或另外不期望自定义移动设备的应用程序,因此企业可选择通过虚拟化技 术提供对应用程序的访问。作为另一个示例,企业可具有维护高安全数据 (例如,人类资源数据、客户数据、工程数据)的应用程序,企业可认为 该数据过于敏感,即使对于安全的移动环境,因此企业可选择使用虚拟化 技术以允许对该类应用程序和数据的移动访问。企业可选择在移动设备上 提供完全安全和完全功能性的应用程序以及虚拟化应用程序,以允许访问 被认为更适合在服务器端上操作的应用程序。在实施例中,虚拟化应用程 序可在安全存储位置的一个中在移动电话上存储数据、文件等等。例如, 企业可选择允许在电话上存储特定信息,而不允许其他信息。

如本文所描述,与虚拟化应用程序有关,移动设备可具有虚拟化应用 程序,其被设计为呈现GUI并然后记录/通过与GUI的用户交互。应用程 序可将用户交互传送到服务器端,以作为与应用程序的用户交互被服务器 端应用程序使用。作为响应,服务器端上的应用程序可将新GUI传输回到 移动设备。例如,新GUI可以是静态页面、动态页面、动画等等,从而提 供对远程定位资源的访问。

安全应用程序可访问存储在移动设备的受管分区310中的安全数据容 器328中的数据。在安全数据容器中受保护的数据,可以被安全封装的应 用程序314、由安全应用程序启动器318执行的应用程序、由安全应用程 序启动器318执行的虚拟化应用程序326等等访问。安全数据容器328中 所存储的数据可包括文件、数据库等等。安全数据容器328中所存储的数 据可包括被限制到具体安全应用程序330、在安全应用程序332当中共享 的数据等等。被限制到安全应用程序的数据可包括安全通用数据334和高 安全数据338。安全通用数据可使用诸如AES 128位加密等等的强加密形 式,而高安全数据338可使用诸如AES 256位加密的非常强加密形式。在 从设备管理器324接收命令之后,可从设备删除安全数据容器328中所存 储的数据。安全应用程序可具有双模式选项340。双模式选项340可呈现 给用户选项,以在非保护模式中操作安全应用程序。在非保护模式中,安 全应用程序可访问存储在移动设备302的非受管分区312上的非安全数据 容器342中的数据。存储在非安全数据容器中的数据可以是个人数据344。 还可通过非安全应用程序348访问存储在非安全数据容器342中的数据, 该非安全应用程序348在移动设备302的非受管分区312上运行。当从移 动设备302删除存储在安全数据容器328中的数据时,存储在非安全数据 容器342中的数据可保留在移动设备302上。企业可能想要从移动设备删 除所选择的或者企业所拥有的、许可或控制的所有数据、文件和/或应用程 序(企业数据),而留下或以其他方式保留用户所拥有的、许可的或控制 的个人数据、文件和/或应用程序(个人数据)。该操作可被称为选择性清 除。通过根据本文所描述的方面布置的企业和个人数据,企业可执行选择 性清除。

移动设备可连接到企业处的企业资源304和企业服务308,连接到公 共互联网348等等。移动设备可通过虚拟私有网络连接,连接到企业资源 304和企业服务308。虚拟私有网络连接(也称为微VPN或专用VPN)可 特定于特定应用程序350、特定设备、移动设备上的特定安全区域等等(例 如,352)。例如,电话的安全区域中的每个封装的应用程序可通过专用VPN 访问企业资源,以便将基于与应用程序关联的属性,可能结合用户或设备 属性信息,来授予对VPN的访问。虚拟私有网络连接可承载微软交换流 量、微软活动目录流量、HTTP流量、HTTPS流量、应用程序管理流量等 等。虚拟私有网络连接可支持并实现单点登录认证过程345。单点登录过 程可允许用户提供单个认证凭证集,其然后由认证服务358验证。认证服 务358可然后授予用户对多个企业资源304的访问,而不要求用户将认证 凭证提供给每个单独的企业资源304。

可通过访问网关360建立并管理虚拟私有网络连接。访问网关360可 包括性能增强特征,其管理、加速并改善企业资源304到移动设备302的 递送。访问网关还可将流量从移动设备302重新路由到公共互联网348, 使得移动设备302访问在公共互联网348上运行的公共可用的和非安全的 应用程序。移动设备可经由传输网络362连接到访问网关。传输网络362 可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网 络、私有网络等等。

企业资源304可包括电子邮件服务器、文件共享服务器、SaaS应用程 序、Web应用程序服务器、窗口应用程序服务器等等。电子邮件服务器可 包括交换服务器、Lotus Notes服务器等等。文件共享服务器可包括文件共 享服务器、其他文件共享服务等等。SaaS应用程序可包括Salesforce等等。 窗口应用程序服务器可包括任何应用程序服务器,其被构建为提供旨在在 本地窗口操作系统等等上运行的应用程序。企业资源304可以是基于前体 的资源(premise-based resources)、基于云的资源等等。可通过移动设备 302直接访问企业资源304或通过访问网关360访问企业资源304。可经 由传输网络362通过移动设备302访问企业资源304。传输网络362可以 是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、 私有网络等等。

企业服务308可包括认证服务358、威胁检测服务364、设备管理器 服务324、文件共享服务368、策略管理器服务370、社交整合服务(social  integration services)372、应用程序控制器服务374等等。认证服务358可 包括用户认证服务、设备认证服务、应用程序认证服务、数据认证服务等 等。认证服务358可使用证书。可通过企业资源304等等在移动设备302 上存储证书。移动设备302上所存储的证书可被存储在移动设备上的加密 位置中,证书可暂时地存储在移动设备302上,以在认证时使用等等。威 胁检测服务364可包括入侵检测服务、未授权访问尝试检测服务等等。未 授权访问尝试检测服务可包括未授权地尝试访问设备、应用程序、数据等 等。设备管理服务324可包括配置、供应、安全性、支持、监测、上报和 退役服务。文件共享服务368可包括文件管理服务、文件存储服务、文件 协作服务等等。策略管理器服务370可包括设备策略管理器服务、应用程 序策略管理器服务、数据策略管理器服务等等。社交整合服务372可包括 接触整合服务、协作服务、与诸如脸书(Facebook)、推特(Twitter)和邻 客音(LinkedIn)等的社交网络的整合等等。应用程序控制器服务374可 包括管理服务、供应服务、部署服务、分配服务、撤销服务、封装服务等 等。

企业移动技术体系结构300可包括应用程序商店/分销门户商店378。 应用程序商店378可包括未封装的应用程序380、预封装的应用程序382 等等。例如,可通过管理者从应用程序控制器374在应用程序商店378中 填入应用程序,该管理者负责应用程序准备、应用程序发布、应用程序更 新、角色分配和/或策略定义和选择,等等。可通过移动设备302经访问网 关360、经公共互联网348(可选择地经安全防火墙)等等,访问应用程 序商店378。应用程序商店可提供有直观和易于使用的用户接口。应用程 序商店378可提供对软件部署工具包/自安装工具包384的访问。软件部署 工具包384可向用户提供通过封装如本文所描述的应用程序来保护用户所 选择的非受管应用程序的能力。已经使用软件部署工具包384封装的应用 程序,然后可对移动设备302有用,例如,通过安装封装版本的应用程序、 通过发送应用程序商店378以用于批准,以及/或者通过使用应用程序控制 374将其直接填入在应用程序商店378中。

企业移动技术体系结构300可包括管理和分析能力。管理和分析能力 可提供与如何使用资源、多久一次使用资源等等相关的信息。资源可包括 设备、应用程序、数据等等。如何使用资源可包括哪个设备下载哪个应用 程序、哪个应用程序访问哪个数据等等。多久一次使用资源可包括已经多 久一次下载了应用程序、已经通过应用程序访问了具体数据集多少次等 等。

图4为另一个说明性企业移动性管理系统400。出于简化的目的,已 经省略了以上参考图3描述的移动性管理系统300的一些部件。图4中所 示系统400的体系结构在许多方面与以上参考图3所描述的系统300类似, 并且可包括以上未提及的附加特征。

在这种情况下,左手边表示具有客户端代理404的注册/管理移动设备 402(例如,客户端107、212、302等等),其与网关服务器406(其包括 访问网关和应用程序控制器功能)交互以访问各种企业资源408和服务 409,诸如交换、共享点、PKI资源、Kerberos资源和证书发布服务(Certificate  Issuance Service),如以上的右手边所示。尽管未具体示出,移动设备402 还可与企业应用程序商店(例如,应用程序商店、商店前台页面(storefront) 等等)交互,以用于选择和下载应用程序。

客户端代理404充当在企业数据中心托管的窗口应用程序/桌面的UI (用户接口)中介,其中使用HDX/ICA显示远程协议或任何其他远程协 议访问该应用程序/桌面。客户端代理404还支持移动设备402上的本机应 用程序(诸如本机iOS或安卓应用程序)的安装和管理。例如,以上图中 所示的受管应用程序410(电子邮件、浏览器、封装应用程序)全部是在 设备上本地执行的本机应用程序。客户端代理404和应用程序管理框架, 诸如弗罗里达德代尔堡的思杰系统公司的MDX(移动体验技术)(还可使 用其他应用程序管理框架),充当用于将策略驱动管理能力以及诸如连接 性和SSO(单点登录)的特征提供给企业资源/服务408。客户端代理404 处理对企业,通常对具有到其他网关服务器部件的SSO的访问网关(AG) 的主要用户认证。客户端代理404从网关服务器406获得策略,以控制移 动设备402上的受管应用程序410的行为。如本文所使用,受管应用程序 为能够基于独立定义并传送的策略文件控制并根据其操作的一个。

本机引用程序410和客户端代理404之间的安全IPC链接412表示管 理信道,其允许客户端代理通过应用程序管理框架414“封装”每个应用 程序来供给将被实施的策略。IPC信道412还允许客户端代理404供给凭 证和认证信息,其实现对企业资源408的连接性和SSO。最后,IPC信道 412允许应用程序管理框架414调用由客户端代理404实施的用户接口功 能,诸如在线认证和离线认证。

客户端代理404和网关服务器406之间的通信本质上为管理信道从应 用程序管理框架414的扩展,该程序管理框架414封装每个本机受管应用 程序410。应用程序管理框架414向客户端代理404请求策略信息,该客 户端代理404反过来向网关服务器406请求它。应用程序管理框架414请 求认证,并且客户端代理404登录进入网关服务器406的网关服务部分(也 称之为NetScaler访问网关)。客户端代理404还可调用网关服务器406上 的支持服务,其可产生输入材料以取得关于本地数据保险库(local data  vaults)416的加密密钥,或者提供客户端证书,其可实现对PKI保护资源 的直接认证,如下面更完整地说明。

更详细地,应用程序管理框架414“封装”每个受管应用程序410。 这可经由明确的构建步骤或经由构建后处理步骤而并入。应用程序管理框 架414可在首次启动应用程序410时与客户端代理614“配对”,以初始化 安全IPC信道并为该应用程序获得策略。应用程序管理框架414可实施本 地应用的策略的相关部分,诸如客户端代理登陆依赖关系和遏制策略中的 一些,其限制可如何使用本地OS服务或者它们可如何与应用程序410交 互。

应用程序管理框架414可使用通过客户端代理404经由安全IPC信道 412提供的服务,以便于认证和内部网络访问。还可通过受管应用程序410 和客户端代理404之间的适当交互来管理私有和共享数据保险库416(容 器)的密钥管理。保险库416可仅在在线认证自后可用,或者如果策略允 许的话,可在离线认证之后可用。首次使用保险库416可要求在线认证, 并且在再次要求在线认证之前,可将离线访问限制于至多策略刷新周期。

可通过访问网关406直接从单个的受管应用程序410发生对内部资源 的网络访问。应用程序管理框架414负责代表每个应用程序410编排网络 访问。客户端代理404可通过提供跟随在线认证获得的适当时间限制的次 级凭证来便于这些网络连接。可使用网络连接的多个模式,诸如反向web 代理连接和端到端VPN类型隧道418。

电子邮件和浏览器受管应用程序410具有特定状态,并可使用对任意 封装的应用程序可能通常不可用的设施。例如,电子邮件应用程序可使用 特定的背景网络访问机制,其允许其经由延长的时间周期访问交换,而不 要求完整的AD登录。浏览器应用程序可使用多个私有数据保险库,以分 离不同类型的数据。

该体系结构支持各种其他安全性特征的合并。例如,网关服务器406 (包括其网关服务)在一些情况下将不需要验证AD密码。AD密码在一 些情况下是否用作一些用户的认证因素可由企业自行决定。如果用户在线 或离线(即,连接到网络或未连接到网络),则可使用不同的认证方法。

提高认证为一特征,其中网关服务器406可识别被允许访问要求强认 证的高度机密数据的受管本机应用程序410,并且保证仅在执行适当的认 证之后允许访问这些应用程序,即使这意味着在先前较弱的登录水平之后 由用户要求重新认证。

该解决方案的另一个安全性特征为移动设备402上的数据保险库416 (容器)的加密。可加密保险库416,以便保护包括文件、数据库和配置 的所有的设备上数据。对于在线保险库,可在服务器(网关服务器406) 上存储密钥,并且对于离线保险库,可通过用户密码(或其他安全密钥, 例如,生物识别等等)保护密钥的本地副本。当在安全容器416中将数据 本地存储在设备402上时,优选地利用最小的AES 256加密算法。

还可实施其他安全容器特征。例如,可包括日志特征,其中将发生在 应用程序410内的所有安全性事件记入日志并上报到后台。可支持数据擦 除,诸如如果应用程序410检测干预,则可以用随机数据改写关联的加密 密钥,而不对文件系统留下用户数据被销毁的线索。屏幕截图保护为另一 个特征,其中应用程序可防止任何数据被存储在屏幕截图中。例如,可将 关键窗口的隐藏特性设置为是。这可使屏幕上当前显示的任何内容被隐 藏,导致其中任何内容将正常驻留的空白屏幕截图。

可防止本地数据传递,诸如通过防止任何数据被本地传递到应用程序 容器外部,例如,通过复制该数据或将其发送到外部应用程序。键盘缓存 特征可操作用于为敏感的文本域禁用自动更正功能。SSL证书验证可以是 可操作的,因此应用程序具体地验证服务器SSL证书,而不是被存储在密 钥链中。可使用加密密钥生成特征,以便(如果要求离线访问)使用用户 供给的口令短语或生物识识数据生成用于加密设备上的数据的密钥。如果 未要求离线访问,则其可与随机生成的并存储在服务器端上的另一个密钥 逻辑异域。密钥导出功能可运行,使得从用户密码生成的密钥使用KDF(密 钥导出功能,尤其是PBKDF2)而不是创建其密码杂凑。后者使密钥易受 强力或字典式攻击的影响。

此外,一个或多个初始化向量可用于加密方法中。初始化向量将使相 同加密的数据的多个副本产生不同的密文输出,从而防止重放和密码分析 攻击两者。如果用于加密数据的具体的初始化向量是未知的,则这也将防 止攻击者对任何数据解密,即使具有偷窃的加密密钥。此外,可使用认证 然后解密,其中仅在用户已经在应用程序内认证之后对应用程序数据解 密。另一个特征可涉及存储器中的敏感数据,其中可仅当需要该数据时将 其保持在存储器中(而不是在磁盘中)。例如,在登录之后可从存储器中 擦除登录凭证,并且不存储加密密钥以及对象C实例变量内的其他数据, 这是因为它们可容易地被引用。相反,可为这些手动地分配存储器。

可实施闲置超时,其中在策略定义的闲置周期之后,终止用户会话。

可以用其他方式防止数据从应用程序管理框架414泄露。例如,当将 应用程序410放置在后台时,可在预定的(可配置的)时间周期后清除存 储器。当被放置在后台时,可取出应用程序的最后所显示屏幕的快照,以 促进前台处理。屏幕快照可包含机密数据并且因此应被清除。

另一个安全性特征涉及使用OTP(一次性密码)420而不使用AD(活 动目录)422密码来访问一个或多个应用程序。在一些情况下,一些用户 不知道(或者不被允许知道)他们的AD密码,因此这些用户可使用OTP 420认证,诸如通过使用类似SecurID的硬件OTP系统(还可通过不同的 供应商提供OTP,诸如Entrust或Gemalto)。在一些情况下,在用户使用 用户ID认证之后,利用OTP 420将文本发送到用户。在一些情况下,这 仅可实施用于在线使用,其中提示为单个字段。

离线密码(或生物识别认证)可实施用于经由企业策略而允许离线使 用的那些应用程序410的离线认证。例如,企业可能想要将以这种方式访 问的企业应用程序商店。在这种情况下,客户端代理404可要求用户设置 自定义离线密码并且不使用AD密码。网关服务器406可提供策略以相对 于最小长度、字符类别组成和密码使用期来控制并实施密码标准,诸如标 准窗口服务器密码复杂性要求所描述的,尽管可修改这些要求。生物识别 认证还可或可选地用于一个或两个离线认证,以及密钥导出功能的熵源。

另一个特征涉及作为次级凭证的某些应用程序410的客户端证书的实 现(出于经由应用程序管理框架微VPN特征访问PKI保护的web资源的 目的)。例如,诸如公司电子邮件应用程序的应用程序可利用该种证书。 在这种情况下,可支持使用动态同步协议的基于证书的认证,其中来自客 户端代理404的证书可由网关服务器406检索,并用于密钥链中。每个受 管应用程序可具有一个关联的客户端证书,由网关服务器406中所定义的 标签识别。

网关服务器406可与企业专用web服务交互,以支持客户端证书的发 布,以便允许相关的受管应用程序对进入到内部PKI保护资源的认证。可 选地,可由访问网关360发布客户端证书。在另一个示例中,可通过 EMM/MRM服务器(例如,设备级别处)以及/或者通过基于应用程序级 别的策略供应证书的应用程序控制器来提供客户端证书。

可增强客户端代理404和应用程序管理框架414,以便支持获得并使 用客户端证书以用于对进入到内部PKI保护网络资源的认证。可支持不只 一个证书,诸如以匹配各种安全性级别和/或分离要求。证书可以被电子邮 件和浏览器管理的应用程序使用,并且最终被任意封装的应用程序使用 (假设那些应用程序使用web服务器类型通信模式,其中应用程序管理框 架调节HTTPS请求是合理的)。

iOS上的应用程序管理框架客户端证书支持可依赖将PKCS 12BLOB (二进制大对象)导入每个受管应用程序中的iOS密钥链(或通过密码、 生物识别验证或其他凭证保护的其他容器管理的秘密保险库)中,以用于 每个使用周期。应用程序管理框架客户端证书支持可使用具有私有存储器 中密钥存储的HTTPS实施。客户端证书将从不存在于iOS密钥链中,并 且除了潜在地存在于受强保护的“仅在线”数据值中之外将不会持久。

还可实施相互SSL,以通过要求向企业认证移动设备402来提供附加 的安全性,并且反之亦然。还可实施用于到网关服务器406的认证的虚拟 智能卡。

有限的和完整的Kerbero支持可以是附加特征。完整支持特征涉及一 种能力,其使用AD密码或信任的客户端证书的到AD 422的完整Kerberos 登录,以及获得Kerberos服务票据以响应于HTTP协商认证挑战。受限支 持特征涉及访问网关软件中的约束委派,其中软件支持调用Kerbero协议 转换,因此其可响应于HTTP协商认证挑战获得并使用Kerberos服务票据 (隶属于约束委派)。该机制在反向web代理模式中以及当HTTP(但不是 HTTPS)连接在VPN和微VPN模式中代理时起作用。

另一个特征涉及应用程序容器锁定和擦除,其可在越狱或生根检测时 自动发生,并作为来自管理控制台的推送命令发生,并且可包括远程擦除 功能,即使当应用程序410未运行时。

可支持企业应用程序商店和应用程序控制器的多站点体系结构或配 置,其在失败的情况下允许从若干不同位置中的一个服务用户。

在一些情况下,可允许受管应用程序410经由API(示例OpenSSL) 访问证书和私有密钥。可允许企业的信任的受管应用程序410以利用应用 程序的客户端证书和私有密钥执行具体的公开密钥操作。可相应地识别和 对待各种使用案例,诸如当应用程序表现得像浏览器并且不要求证书访问 时,当应用程序读取“我是谁”的证书时,当应用程序使用证书以构建安 全会话令牌时,以及当应用程序为重要数据的数字签名(例如,事务日志) 或用于暂时的数据加密使用私有密钥时。

还可基于策略、用户信息或其他安全信息对其他特征控制、管理、启 用、禁用、锁定、取消锁定、阻碍、接通或以其他方式修改。特征的非排 他性列表包括打印、数据备份、位置服务、摄像头访问、麦克风访问、数 据端口访问、对可移动储存器的访问、URL和其他应用程序间调度、对诸 如生物识别设备、加速计、近距离传感器、NFC等等的其他移动设备硬件 的访问,以及对其他系统服务的访问,诸如发送SMS消息、发送电子邮 件消息、网络访问等等。

4、基于策略的应用程序管理

改善的技术包括使用一个或多个策略文件对受管应用程序施加控制。 受管应用程序可为本机受管应用程序,或者可来源于非受管应用程序。一 旦已经在诸如电子移动设备的电子装备上安装了受管应用程序,则受管应 用程序可基于一个或多个策略运行,其中可通过管理者、企业等等在移动 设备上以常程的方式本地更新该一个或多个策略。

例如,诸如应用程序商店、软件开发者等等的应用程序源可作为非受 管应用程序(不在本地策略控制下的应用程序)的资源库运行。来自应用 程序源的非受管应用程序可然后被反编译、增加有基于一组一个或多个管 理策略施加控制的一组指令,并然后被重新编译以形成受管应用程序。然 后通过应用程序源(例如,相同的应用程序商店、不同的应用程序商店、 企业应用程序服务器等等)提供受管应用程序,以用于被移动设备使用。

一旦在移动设备上安装了受管应用程序,则受管应用程序访问一组一 个或多个策略(本文所进一步描述)并根据该一组一个或多个策略运行, 其中在移动设备上分离地维护一个或多个策略。此外,受管应用程序可从 应用程序源请求更新的策略组,并根据随着时间更新的策略组以及以常规 方式运行。

图5示出的是可被用于部署以及管理/实施受管应用程序的说明性环 境500。电子环境可包括应用程序源502、运行专用软件工具的软件转换 装备504、应用程序商店服务器506和移动设备508(例如,智能电话、 平板电脑、客户端107、211等等)。

应当理解的是,尽管应用程序源502和应用程序商店服务器506被示 出为分离的装置,在一些布置中,它们可为相同的装置。在一些布置中, 移动设备的用户从应用程序商店服务器506购买受管应用程序,并且应用 程序商店服务器作为用于分布受管应用程序的媒介物以及用于分布策略 的策略服务器两者运行,其中该策略控制受管应用程序如何在移动设备上 运行。

应当理解的是,电子环境的各种装置被计算机化并经由电子信号通 信。例如,每个计算机化的装置可包括通信接口,以连接到诸如网络、存 储器的通信介质以便高速缓存和/或持久地存储信息,以及处理电路以便执 行操作系统和本地应用程序。

在操作期间,转换装备504可运行专用软件工具,其从软件源(参见 步骤1)接收非受管应用程序。当根据专用软件工具运行时,转换装备将 非受管应用程序反编译为例如DEX文件(安卓)、人类可读源代码或一些 其他可可编辑格式。转换装备可然后修改人类可读源代码或DEX文件, 以包括策略控制特征。具体地,转换装备被构造和布置为分析(例如,扫 描和识别)活动和适当位置,以将基于策略的控制指令植入到人类可读源 代码或DEX文件中。基于策略的控制指令用于基于一个或多个所接收的 策略文件来限制应用程序如何运行。转换装备然后重新编译人类可读源代 码或DEX文件,以形成受管应用程序。可选地,在代码不能够反编译(例 如,iOS)的情况下,应用程序二进制的符号表操纵可用于通过添加新的 二进制参考来植入管理代码。还可添加运行时挂钩,以拦截应用程序内的 非受管功能。

应用程序商店服务器506可然后从转换装备加载受管应用程序(参见 步骤2),从而使受管应用程序可用于分布。此外,管理者可提供控制受管 应用程序的操作的策略,并且可使该类策略在应用程序商店服务器上可用 于分布。

移动设备508的用户能够经由移动设备上所安装的应用程序商店应用 程序浏览由应用程序商店服务器提供的应用程序。当移动设备的用户希望 获得受管应用程序时(例如,经由购买),用户指示移动设备上的应用程 序商店应用程序请求受管应用程序(参见步骤3)。应用程序商店服务器通 过将受管应用程序提供到移动设备来响应于应用程序请求(参见步骤4)。

用户然后在移动设备508上安装受管应用程序(参见步骤5)。该种安 装可通过应用程序商店应用程序自动触发(例如,应用程序商店应用程序 自动指示操作系统安装受管应用程序),或者由用户手动地协调。

当用户最初调用受管应用程序510时,受管应用程序可与应用程序商 店应用程序512通信,以获得一组策略(参见步骤6)。可在购买期间已经 将该组策略从应用程序商店服务器提供到应用程序商店应用程序。然而, 如果未呈现一组策略,则应用程序商店应用程序将关于一组策略的策略请 求发送到应用程序商店服务器(参见步骤7)。响应于策略请求,应用程序 商店服务器将该组策略提供到移动设备(参见步骤8)。应当理解的是,该 组策略和受管应用程序为分离的软件构造。

在这一点上,受管应用程序能够根据该组策略运行并因此使用户能够 执行有用的工作(参见步骤9)。可选择地,该组策略可指定其中受管应用 程序请求更新的策略组的时间。例如,该组策略可每天、每两、三天等等 指示受管应用程序获得新的策略组。

当受管应用程序要求新的策略组时,受管应用程序用信号通知或询问 应用程序商店应用程序,以从应用程序商店服务器检索新的策略组(再次 参见步骤6)。也就是说,应用程序商店应用程序作为代理运行,并代表受 管应用程序从应用程序商店服务器获得新的策略组。在一些布置中,移动 设备运行多个受管应用程序,并且相同的应用程序商店应用程序代表每个 受管应用程序与应用程序商店服务器通信。

一个实施例是针对从非受管应用程序生成受管应用程序的方法。方法 包括,通过处理电路从应用程序源接收非受管应用程序,非受管应用程序 被构造为且被布置为在移动设备上执行。方法还包括,通过处理电路将非 受管应用程序反编译或以其他方式解构为非受管可编辑形式。方法还包 括,通过处理电路将基于一组策略的控制指令添加到非受管可编辑代码, 以形成受管源代码,基于该组策略的控制指令被构造为且被布置为提供基 于策略的控制。方法还包括,通过处理电路对受管源代码编译,以形成受 管应用程序,当在移动设备上执行该受管应用程序时,其被构造为且被布 置为访问分开存储在移动设备上的一组策略以及根据该组策略运行。

适当的处理电路的示例包括各种软件开发平台的特定硬件,诸如服务 器、通用计算机、客户端工作站、本文所描述的任何硬件和/或软件等等。 该类平台可装备有各种软件开发工具,包括编译器、链接器、函数库、编 辑器、调试器、其他运行时环境和测试工具等等。

另一个实施例是针对操作电子移动设备的方法。方法包括,在第一通 信期间,通过电子移动设备的处理器,从应用程序服务器接收受管应用程 序,受管应用程序被构造为且被布置为访问一组策略并根据一组策略运 行。方法还包括,在不同于第一通信的第二通信期间,通过处理器从应用 程序服务器接收一组策略,该组策略与受管应用程序分开存储在电子移动 设备上。方法还包括,通过处理器在移动设备上运行受管应用程序,受管 应用程序访问一组策略并根据该组策略运行,该组策略与受管应用程序分 开存储在电子移动设备上。

其他实施例是针对电子系统和装置、处理电路、计算机程序产品等等。 一些实施例是针对各种过程、电子部件和电路,其涉及生成、部署以及操 作来源自非受管应用程序的受管应用程序。

移动设备允许用户从通常被称为应用程序商店或类似的外部Web站 点或服务购买或下载关于他们的设备的应用程序。浏览这些应用程序商店 服务的应用程序被称为应用程序商店-应用程序(可以可选地使用web浏 览器)。一旦应用程序商店应用程序已经下载并安装了应用程序,则该应 用程序的一般管理可停止。例如,可不维护或实施应用程序权利的丢失或 所允许的应用程序使用的改变。一旦在设备上安装了应用程序,则分布该 应用程序的企业或公司可丢失控制对应用程序的访问的能力。

许多供应商提供管理整个设备的常规解决方案。例如,希望安装受管 应用程序的用户必须首先将他们的设备登记到合作企业移动性管理系统 (EMM)中,其管理资源,诸如应用程序、(移动应用程序管理或MAM)、 设备(移动设备管理或MDM)、设备可传送到的企业服务(移动企业管理)、 软件、设置、特征、远程工具、虚拟化应用程序等等,以及/或者设备和/ 或应用程序的其他特征。这些EMM服务通常要求严格遵循合作安全性策 略,如果用户想要安装应用程序,则迫使他们遵守、以特定方式使用设备 或与企业服务连接。此外,通过在EMM系统中登记他们的设备,用户很 多时候必须放弃他/她对设备的某些方面的控制,诸如不具有口令或密码设 置的能力。与企业关联的移动设备的安全管理和技术支持在本文被称为企 业移动性管理或企业移动管理(EMM)。任何设备、应用程序或可访问工 具的管理也被称为移动资源管理(MRM)。EMM和MRM可包括MDM和 /或MAM中的一个或两者,如本文所进一步描述。

许多雇员将优选地使用他们自己的设备,但不将他们的设备登记到一 些EMM服务中。因此,本文中的方面为公司提供管理非受管设备上的应 用程序的方式,例如,在带你自己的设备(BYOD)环境中。

以上和本文中所讨论的改善的技术提供各种方式,公司通过这些方式 可将管理添加到应用程序和设备,并将那些应用程序分布至非受管设备。

一些技术是针对用于将管理添加到将被分布到非受管设备的应用程 序的系统和方法。系统包括在移动设备上运行的应用程序,其充当应用程 序商店应用程序,以用于从充当应用程序商店的一个或多个站点或服务下 载及安装其他应用程序。系统还包括软件工具,其进行如输入非受管应用 程序并输出具有添加有附加管理软件的相同应用程序。系统还包括一组安 全性策略或规则,其控制受管应用程序如何被期望地运行。

一些技术是针对涉及管理者通过将非受管应用程序提交到软件工具 来生成受管应用程序的方法。方法包括软件工具将原始应用程序反编译为 字节代码。方法还包括修改字节代码,以植入管理软件和部件。方法还包 括将所修改的应用程序重新编译为新的和受管版本的应用程序。方法还包 括将受管应用程序公布到应用程序商店并使其可用于通过应用程序商店 应用程序下载和安装。方法还包括受管应用程序周期性地接触应用程序商 店应用程序,以确认权利并刷新安全性策略。

一些改善的技术为企业提供将受管应用程序提供到非受管设备的方 法,减少将设备登记到EMM系统中的需要。一些改善的技术提供如下方 法,企业通过其可分布并控制对不在其直接控制下的设备上的特定应用程 序和数据的访问,即使最初在不包括管理软件的情况下写入了那些应用程 序。

一些技术是针对软件工具(和关联方法),其动态地将管理代码植入 到现有非受管应用程序。以这种方式,即使在没有任何管理软件的情况下 是最初开发器的应用程序也可被添加到企业受管应用程序的列表。

此外,应用程序商店应用程序现充当认证和安全性策略管理应用程 序。这以改善的方式扩展传统应用程序商店应用程序的意图和使用,允许 非受管设备上的特定应用程序的管理。

可选传统途径通常涉及设备管理(其中整个设备被登记到管理系统 中)或者利用作为应用程序的核心设计的部分添加的具体管理部件重写应 用程序。然而,通过上述改善的技术,可经由策略施加以及动态地更新控 制,该策略被常规地本地部署到移动设备以指导受管应用程序的操作。

应当理解的是,以上提供的描述可象征性地讨论应用程序的特定操作 (即,当应用程序执行操作时)。然而,应当进一步理解的是,当执行应 用程序时,实际上是实际执行操作的处理电路(例如,一组处理器、其他 硬件等等)。

受管应用程序,即根据企业定义的策略运行的应用程序,可被配置为 以无数种方式运行。应用程序受管配置仅由施加到该应用程序的一个或多 个策略文件中所包括的内容来限制。此外,受管应用程序可在移动设备沙 盒中运行,或者受管应用程序可通常在计算设备上运行并且不在由该设备 的操作系统生成的正式沙盒内。以下部分提供可与其他技术和方面结合使 用的策略的各种说明性示例,但是没有方式是指限制可被使用的策略的类 型或数目。

5、数据共享

根据说明性方面,如上面部分4所描述的与受管应用程序一起使用的 一个或多个策略可定义受管应用程序如何运行以在移动设备上执行的应 用程序之间共享数据。

图14示出该种过程的示例。最初,在步骤1401中,在移动电子设备 (诸如智能手机、平板电脑、膝上型电脑等等)上可接收和/或安装受管应 用程序。在步骤1403中,设备可分离地和/或明确地接收一个或多个策略 文件,例如,其基于企业安全性策略,定义受管应用程序的一个或多个操 作和/或行为限制。尽管策略文件可作为分离文件被选择地接收,但是策略 文件可作为相同通信或安装过程的部分而被接收,如同受管应用程序那 样。

在步骤1405中,移动设备根据策略文件执行受管应用程序。也就是 说,移动设备安全性管理器(或等效过程)限制如通过一个或多个策略文 件定义的受管应用程序的操作。在步骤1407中,在受管应用程序的操作 期间以及基于一个或多个策略文件,可限制受管应用程序的数据共享特 征,其中如果未实施策略文件,其可能已经以其他方式被允许。下面更详 细地提供该种数据共享限制的各种示例,如可根据图14和/或本文所描述 的其他过程使用。

5.a、安全剪切和粘贴

在诸如iOS、安卓和窗口的现代操作系统上,存在通常被称为“粘贴 板”或“剪贴板”的机制,其用于在应用程序之间共享数据。用户可从一 个应用程序将数据“复制”到剪贴板中,并然后从剪贴板将其“粘贴”到 第二应用程序。一个问题是放入到剪贴板的数据未以任何方式进行保护, 并且有时存在保护它的需要,以使仅定义的受管应用程序组可共享该数 据,从而将其对于其他非受管应用程序隐藏。本文所描述的方面提供一机 制,该机制用于将复制和粘贴操作重定向到仅受管应用程序访问的平行加 密剪贴板。

为了在一组受管应用程序之间提供安全的复制和粘贴功能,电路将复 制和粘贴操作重定向到平行的安全剪贴板。该平行剪贴板对于其他应用程 序(没有适当策略文件的任何应用程序)的一般图隐藏,并对写入到其的 所有数据加密。仅受管应用程序知道如何访问该隐藏的、加密的剪贴板。

此外,为了允许用户将来自不安全应用程序的数据复制并粘贴到受管 应用程序中的一个,同步方法监测不安全剪贴板的改变,并根据需要将改 变写入到安全剪贴板。

传统智能电话使一个应用程序(或“应用程序”)将数据复制到通用 剪贴板,并且然后另一个应用程序从通用剪贴板将该数据粘贴到其他应用 程序的工作空间中。例如,用户可将来自浏览器网页的文本复制到通用剪 贴板,并然后从通用剪贴板将该文本粘贴到电子邮件应用程序的电子邮件 消息中。

应当理解的是,传统智能电话及它们经由通用剪贴板处理数据的途径 的方法存在缺陷。特别地,通用剪贴板提供用于曝露安全数据的简单媒介 物。例如,假设公司希望将数据共享限制到受管的应用程序组。不幸地是, 传统智能电话的用户能够简单地将安全数据从一个应用程序复制到通用 剪贴板,并且然后从通用剪贴板将该安全数据粘贴到另一个应用程序,并 因此允许安全数据逃脱。

与上述使用户能够经由通用剪贴板容易地曝露安全数据的传统智能 电话相对比,说明性策略文件可定义安全剪贴板,其可用于共享出受管应 用程序的数据。使用相同策略文件(即,定义相同安全剪贴板)的所有受 管应用程序将然后能够共享数据,而非受管应用程序将不能。甚至进一步 地,其策略文件定义不同安全剪贴板的两个不同的受管应用程序也将不能 够共享数据。因此,本文所描述的是改善的技术,其用于经由安全剪贴板 在电子移动设备上运行的安全应用程序之间传送数据。如本文所使用,安 全剪贴板可指其存储位置被隐藏的剪贴板,例如,仅对被允许访问安全剪 贴板和/或加密的那些应用程序已知,例如,以及仅被允许访问安全剪贴板 的那些应用程序知道或有权访问加密/解密密钥。可(例如,经由策略)仅 为在移动设备上运行的一组安全(或受管)应用程序定义安全剪贴板。此 外,可通过受管应用程序将数据写入到安全剪贴板来加密所有数据,并且 然后通过另一个受管应用程序从安全剪贴板读取数据来解密,从而即使所 隐藏的剪贴板的位置被发现,也防止数据的曝露。可在策略文件中定义安 全剪贴板的位置和/或类型以及所使用的加密。

参考图15,一个说明性实施例是针对在电子移动设备(例如,如上所 述)上运行的安全应用程序之间传送数据的方法,这在具有(i)处理电路 和(ii)存储器的电子移动设备中执行。方法包括,在步骤1501中,通过 处理电路接收复制命令;以及在步骤1503中,通过处理电路并响应于复 制命令,对来自第一安全应用程序的原始数据加密,以形成加密数据。方 法还包括,在步骤1507中,通过处理电路并响应于复制命令,将加密数 据写入到驻留在存储器中的安全剪贴板,以在步骤1509中使第二安全应 用程序随后从安全剪贴板读取以及解密加密数据,安全剪贴板驻留在存储 器中的不同于通用剪贴板驻留在存储器中的位置的位置处,通用剪贴板可 被在电子移动设备上运行的一组不安全应用程序访问。可选地,在步骤 1509中,相同的受管应用程序可从安全剪贴板读取,例如,以从受管应用 程序内的一个位置剪切和粘贴到另一个位置。

其他实施例是针对电子系统和装置(例如,移动设备)、处理电路、 计算机程序产品等等。一些实施例是针对各种过程、电子部件和电路,其 涉及在电子移动设备上运行的安全应用程序之间传送数据,这在电子移动 设备中执行。

图6示出的是适用于在安全应用程序之间传送数据的说明性电子移动 设备601。电子移动设备可包括,用于用户输入/输出的用户接口603、用 于存储数据的存储器605和处理电路613,等等。适当的移动设备的示例 包括,智能电话、平板设备、电子笔记本或本文所描述的任何其他移动设 备。以智能电话为背景的情形中,各种具体平台适合使用,诸如运行苹果 计算机提供的iOS、谷歌提供的安卓以及微软提供的窗口的那些平台,等 等。

在操作期间,电子移动设备601通过执行诸如以下操作响应于用户命 令:启动应用程序、建立到外部设备的连接(例如,蜂窝电话、WiFi连接 等等)以交换无线信号以及执行有用的工作。沿着这些线路,电子移动设 备的处理电路运行一组(即,一个或多个)不安全应用程序和一组安全应 用程序。

当处理电路613运行不安全应用程序时,处理电路被配置为访问通用 剪贴板607,以用于以传统方式进行的复制和粘贴操作。例如,当处理电 路运行第一不安全应用程序时,用户能够将数据从第一不安全应用程序复 制到通用剪贴板607。此外,当处理电路运行第二不安全应用程序时,用 户能够从通用剪贴板607将所复制的数据粘贴到第二不安全应用程序的工 作空间。

然而,如图6所示,安全应用程序701、703被配置为访问安全剪贴 板609。特别地,为了使用安全应用程序执行复制操作,处理电路对数据 加密,从而将加密数据写入到安全剪贴板609中(回避通用剪贴板607)。 此外,为了使用安全应用程序执行粘贴操作,处理电路从安全剪贴板609 读取数据,并在将加密数据放置到该安全应用程序的工作空间之前对数据 加密。因此,数据从不曝露在安全应用程序之外。

在一些布置中,当非受管应用程序中出现复制事件时,移动设备601 和/或受管应用程序被配置为使安全剪贴板609与通用剪贴板607同步。设 备601因此可被配置为还将数据从通用剪贴板输入到安全应用程序中。根 据一个方面,通过不安全(非受管)应用程序将数据复制到通用剪贴板中, 则创建可检测的复制事件。当处理电路运行接收复制事件指示的安全应用 程序时,处理电路可从通用剪贴板读取数据,对数据加密以形成加密数据, 以及将加密数据写入到安全剪贴板中。因此,安全剪贴板内的数据现在与 通用剪贴板中的数据同步,并且有权访问安全剪贴板的安全应用程序可现 在通过从安全剪贴板读取数据来访问来自非受管应用程序的数据。

在一些布置中,移动设备601装备不同的安全应用程序群组,以使用 不同的安全剪贴板。例如,处理电路可将(i)第一存储器地址提供到安全 剪贴板以及将第一密钥组提供到第一安全应用程序群组,(ii)将第二存储 器地址提供到另一个安全剪贴板以及将第二密钥组提供到第二安全应用 程序群组等等。可经由关于群组应用程序的策略完成安全应用程序的该种 部署和配置,其中策略指定关于每个安全应用程序的特定群组、密钥和安 全剪贴板。

使用上述技术,说明性方面是针对用于防止敏感数据在受管应用程序 组之外被共享的系统。公司可希望将数据共享限制到该受管的应用程序 组,允许全双向访问,但也潜在地允许诸如来自网页的文本的引入不安全 数据被复制到受管应用程序中的一个。

此外,在一些情况中,系统管理者可选择完全地禁用复制和粘贴功能, 不管是对于单个应用程序、应用程序群组,还是所有受管应用程序。这通 过在策略文件中添加适当的实施准则实现。

而且,可能存在具有多个应用程序群组的需要,其中每个具有其自己 的安全剪贴板。这通过使用关于群组应用程序的策略实现,并且然后提供 给每个群组它们自己的分离的安全剪贴板。

使用上述方面,在一些移动设备中,通过使用安全剪贴板,完全地保 护受管应用程序之间的复制和粘贴。另外,与不安全剪贴板的同步允许用 户将来自不安全应用程序的数据复制和粘贴到安全应用程序,但不是反之 亦然。可基于由系统管理者设置的策略完全地阻碍复制和粘贴功能。

图44示出的是该过程的示例。最初,在步骤4401中,可在移动电子 设备(诸如智能电话、平板电脑、膝上型电脑等等)上接收和/或安装受管 应用程序。在步骤4403中,设备可分离地和/或明确地接收一个或多个策 略文件,其例如基于企业安全性策略定义受管应用程序的一个或多个操作 和/或行为限制。尽管可作为分离文件可选地接收策略文件,可作为相同通 信或安装过程的部分接收策略文件,如同受管应用程序那样。

在步骤4405中,移动设备根据策略文件执行受管应用程序。也就是 说,移动设备安全性管理器(或等效过程)如由一个或多个策略文件所定 义的那样限制受管应用程序的操作。在步骤4407中,在受管应用程序的 操作期间以及基于一个或多个策略文件,可如上所述的限制受管应用程序 的剪切和粘贴特征,其中,如果未实施策略文件,该剪切和粘贴特征可已 经以其他方式被允许。可实施如上所述的该剪切和粘贴限制的各种示例。

5.b、在受管应用程序之间共享数据

此外,根据特定策略的设置,一组受管应用程序内的应用程序可被约 束为仅与该组内的其他受管应用程序交换文件和/或数据。在一些布置中, 通过运行以“包含”应用程序的植入的(或封装的)代码来截获来自受管 应用程序的API调用。读取特定策略,并根据策略中的设置来阻碍或允许 由API调用指定的操作。当策略文件具有类似受管应用程序组中的所有应 用程序的记录时(例如,基于应用程序群组标识符、应用程序的枚举列表, 或识别离散的应用程序组的任何其他机制),应用程序,通过读取策略文 件,可测试所请求的API调用的操作是否包括该组内或组外的应用程序, 并相应地允许或阻碍活动。因此,基于策略设置,可限制数据的移动,以 使受管应用程序组内的数据不与受管组外的数据混杂。

在许多情况中,可执行截获API调用、咨询应用程序的策略,以及基 于策略允许或阻碍由API调用指定的操作的过程。在一个示例中,以上过 程可被应用用于选择移动设备上的一组应用程序,其可被用于打开文件或 者由链接或图标(例如,使用打开为(Open-In))识别的数据元素。在另 一个示例中,以上过程可被应用用于从一个应用程序复制数据或数据对象 以及将数据或数据对象粘贴到另一个应用程序中(例如,经由隐藏、加密 的粘贴缓冲器)。在另一个示例中,以上过程可被应用用于将文件移动到 和/或移动出所保护的文件保险库。本质上,用于将数据移动到和/或移动 出应用程序的任何操作可使用以上技术。

根据另一个方面,可通过一组应用程序被包括在相同的管理策略内的 事实来限制数据共享。根据一个方面,通过使用策略文件管理移动设备上 的企业应用程序,企业可允许用户从他们自己的移动设备访问企业应用程 序。企业应用程序基于所定义的策略安全地与用户自己的个人应用程序和 数据共存。以该种方式具体地创建或改写企业移动应用程序,即它们被迫 通过各自的应用程序策略与移动设备上的其他应用程序和服务交互。在移 动设备上运行的每个企业移动应用程序具有关联策略,其中企业移动应用 程序通过该关联策略与其环境交互。策略根据企业所建立的规则选择性地 阻碍或允许涉及企业应用程序的活动。同时,在移动设备上运行的企业应 用程序形成一组受管应用程序。与受管应用程序中的每个关联的策略可包 括其他受管应用程序中的每个的记录。通常,用于与受管应用程序交互的 策略设置不同于用于与其他应用程序(即,不是受管组的部分的应用程序, 诸如用户的个人移动应用程序)交互的策略设置。受管应用程序通常被允 许与其他受管应用程序交换数据,但可被阻碍将数据导出到非受管应用程 序。

在一些示例中,受管应用程序的应用程序策略被配置为允许存在于一 个受管应用程序中的链接和/或图标在另一个应用程序中跟随或打开,只要 其他应用程序也是受管应用程序。例如,受管电子邮件应用程序,可通过 其策略,被配置为允许附件在受管PDF注解器中打开。但相同的受管电子 邮件应用程序可被配置为防止相同的附件在不是受管组的部分的受管PDF 注解器中打开。

通过经企业管理的策略将受管应用程序约束为在移动设备上交互,因 此可使受管应用程序组与受管应用程序组中的其他应用程序操作,但可被 防止与不是受管组的部分的应用程序操作。由于可将个人信息接收到受管 应用程序组中,因此可防止企业信息从受管应用程序组泄漏出去。

参考图49,说明性实施例是针对在移动设备上管理企业的应用程序的 方法。方法包括,在步骤4901中,在移动设备上安装企业的一组受管应 用程序,其中在移动设备上安装不是受管应用程序组的部分的其他应用程 序。方法还包括,在步骤4903中,接收一组应用程序策略,其中该组受 管应用程序中的每个与该组应用程序策略中的各个策略关联。在步骤4905 中,通过移动设备根据可应用的策略文件,执行每个受管应用程序。在步 骤4907中,方法又包括,响应访问第一应用程序的策略以及从第一应用 程序的策略读取第二应用程序为受管应用程序组的成员的指示,选择性地 允许受管应用程序组的第一应用程序将数据提供到安装在移动设备上的 第二应用程序,以及响应访问第一应用程序的策略以及未能从第一应用程 序的策略读取第三应用程序是受管应用程序组的成员的指示,选择性地阻 碍第一应用程序将数据提供到安装在移动设备上的第三应用程序。

其他实施例是针对计算机化装置和计算机程序产品。一些实施例涉及 在单个位置处执行的活动,而其他实施例涉及(例如,经由网络)分布在 计算机化环境的活动。

用于管理移动设备上的企业应用程序的一个改善的技术允许用户从 他们自己的移动设备访问企业应用程序,其中企业应用程序与用户自己的 个人应用程序和数据安全地共存。通过创建可彼此共享文件和/或数据的受 管应用程序组,来实现安全数据共享,但选择性地被禁止与不是受管组的 部分的应用程序共享文件和/或数据。因此,实现了两个目标:(1)防止数 据从受管组泄漏出去;以及(2)允许在受管组内的应用程序之间共享数 据。

图8示出的是其中可实践其实施例的环境。此处,诸如智能电话、平 板电脑、PDA等等的移动设备810已经安装到其各种移动应用程序上。移 动应用程序包括受管应用程序822、824和826的组820和个人应用程序 830。在一些示例中,企业移动性管理(EMM)客户端840(例如,客户 端代理404)也被安装在移动设备810上,其提供策略管理服务。EMM客 户端840被配置为,例如经由诸如互联网的网络,与EMM服务器850连 接,该EMM服务器850通常包括认证服务器852和应用程序商店854。

受管应用程序组820中的每个应用程序与各自的策略关联。例如,应 用程序122与策略822a关联,应用程序824与策略824a关联,以及应用 程序826与策略826a关联。在一些示例中,以诸如XML或JSON文件的 文件形式提供策略822a、824a和826a,其中各个策略被表述为一组密钥/ 值对。在示例中,策略822a、824a和826a中的每个包括受管应用程序组 820内的所有应用程序的记录(例如,应用程序群组标识符、应用程序的 枚举列表或识别分离的应用程序组的任何其他机制)。

受管应用程序组820中的每个被特别设计或改写为用于与企业使用。 可为企业特别地设计受管应用程序组820中的一些。例如,如上所述,受 管应用程序组820中的其他是更广泛使用的应用程序(例如,公共可用的 应用程序),其已经被特别地改写以用于与企业使用。受管应用程序组820 中的一个或多个可包括植入代码,其使应用程序能够遵守企业的框架。可 使用SDK将植入代码编译到应用程序中。可选地,可作为围绕通用应用 程序的封套来应用植入代码,以将其改写以用于与企业使用。通常,植入 代码用于将来自应用程序的API调用转向其关联策略,以使得策略可选择 性地允许或阻碍由API调用指定的活动。

在典型操作中,移动设备810的用户开启EMM客户端840,经由认 证服务器852登录到EMM服务器850,并访问应用程序商店854。用户可 然后仔细查看从应用程序商店854可获得的企业应用程序,选择所需应用 程序,并将它们下载到移动设备810,其中所下载的应用程序包括在受管 应用程序组820中。对于每个所下载的应用程序,相应策略也被下载到移 动设备,并且更新组820中的所有应用程序的策略以反映组820的所有成 员。

在示例中,周期性地和/或响应于特定事件(诸如每次开启各个应用程 序以及/或者每次用户登录到EMM服务器850时)刷新策略(例如,822a、 824a和826a)。可因此随着时间的推移改写策略并从EMM服务器850将 策略动态地传递到移动设备810。

根据策略822a、824a和826a的设置,受管应用程序组820内的应用 程序可被约束为仅与组820内的其他应用程序交换文件和/或数据。例如, 通过应用程序822的植入代码截获来自应用程序822的API调用。读取策 略822a,并根据策略822a中的设置阻碍或允许由API调用指定的操作。 由于策略822a具有受管应用程序组820中的所有应用程序的记录(例如, 应用程序群组标识符、应用程序的枚举列表或者识别离散的应用程序组的 任何其他机制),因此应用程序822可通过读取策略822a测试所请求的API 调用操作是否涉及组820内或组820外的应用程序,并相应地允许或阻碍 活动。因此,基于策略设置,可限制数据的移动,使得受管应用程序组820 内的数据不与受管组外的数据混杂(例如,与应用程序830)。

在一些示例中,可将移动设备110上的受管应用程序组820中的应用 程序分配到不同的群组。在该类情况下,更新策略(例如,822a、824a和 826a)以包括群组和群组成员的记录。因此,可将应用程序之间的文件和/ 或数据流进一步限制到特定群组的成员。假设受管组820内的不同的移动 应用程序群组可帮助从处理较低敏感数据的那些应用程序分离处理较高 敏感数据的应用程序。

在许多情况中,可执行截获API调用、咨询应用程序的策略,以及基 于策略允许或阻碍由API调用指定的操作的过程。在一个示例中,以上过 程可被应用用于选择移动设备810上的一组应用程序,其可用于打开文件 或者由链接或图标(例如,使用打开为(Open In))识别的数据元素。在 另一个示例中,以上过程可被应用用于从一个应用程序复制数据或数据对 象以及将数据或数据对象粘贴到另一个应用程序中(例如,经由隐藏、加 密的粘贴缓冲器)。在另一个示例中,以上过程可被应用用于将文件移动 到和/或移动出所保护的文件保险库。本质上,用于将数据移动到和/或移 动出应用程序的任何操作可使用以上技术。

这些技术可不仅应用到数据到其他应用程序的移动,还应用到记录、 图片、打印、音频回放和其他功能。

可为移动设备810获得操作系统扩展。一个该操作系统扩展,通过在 移动设备810上显示能够打开该数据对象的应用程序列表,来响应于用户 指向表示数据对象(诸如文件)的链接或图标。该操作系统扩展的示例为 “打开为(Open In)”,其在iOS设备上可用。类似扩展可用于基于安卓和 窗口的设备。

在示例中,受管应用程序组820内的应用程序支持打开为的使用,但 基于各个应用程序的策略限制被显示用于打开所选择的数据对象的应用 程序列表。例如,根据策略822a,可将当从应用程序822调用打开为时所 显示的应用程序列表限制到仅受管组820中的其他应用程序。因此,在该 示例中,打开为列出仅(1)受管组820内以及(2)与数据对象兼容的应 用程序。

在诸如iOS、安卓和窗口8的移动操作系统上,每个应用程序在其自 己的沙盒中运行。这些应用程序使用非常高级别内容共享机制,如iOS中 的打开为、安卓中的意图/活动和窗口8中的超级按钮。在BYOD(带你自 己的设备)移动设备上,其将具有在设备上运行的受管和非受管/个人应用 程序的混合。应如本文所描述的那样,仔细地管理在受管的应用程序组之 间共享数据。

5.c、数据共享限制

在如iOS的一些移动操作系统上,通过设计为隐藏复杂性,文件系统 不完全曝露于终端用户。该焦点是在他们处理的应用程序和数据上。因此, 存在数据可移动到设备和移出设备的许多方式。因此,根据另一个方面, 策略文件可基于是否在企业移动管理(在本文中也被称为EMM)中登记 了应用程序来允许或不允许使用移动设备所提供的一个或多个数据导出 特征。一些数据导出示例包括电子邮件、基于云的文件数据服务、浏览器、 基于浏览器的应用程序、语音听写、存储器共享、远程过程调用和访问所 存储的数据(通讯录等等)的内容提供商的API。

一种保持数据仅在受管应用程序之间移动的方式,策略可导致通过截 获调用以及向应用程序仅呈现可处理该特定文件格式的受管应用程序组 来过滤被提供到应用程序的打开为列表,如在使用中的策略文件中所定 义。

可将相同的技术扩展到电邮至选项,其中用于电邮至的URL方案可 被截获并被呈现有电邮至选项,该电邮至选项具有仅如思杰移动电子邮件 的受管电子邮件应用程序。以这种方式,即使受管应用程序可被迫保存到 仅共享应用程序的收管数据,如预先批准的基于云的文件共享服务。

在另一个示例中,策略可使设备执行听写阻碍。一些设备提供语音听 写系统和/或基于语音的自动化辅助(例如,iOS设备上的Siri),其被共同 地称为听写。然而,语音特征通常在云中执行语音转录,因为移动设备可 不具有足够的处理功率以有效地将语音转录为设备上的文本。在典型的方 案中,用户说出语音命令或语音听写,然后设备经由网络连接将语音的记 录发送到在线服务器或基于云的转录服务,并且转录服务返回具有表示用 户所说的文字的文本的文件。然后,移动设备使用文本文件作为行动的输 入或基础来采取一些行动。

由于语音命令被发送到设备外部的系统,因此策略可基于一个或多个 因素不允许听写。当设备被登记到EMM中时或者当设备包括策略受管应 用程序时,可完全地不允许听写。在另一个示例中,仅当一个或多个预定 义的应用程序(例如,受管应用程序)为活动的、执行的和/或在屏幕上时 才可不允许听写或允许听写。在另一个示例中,仅当设备在如由车载定位 服务(例如,GPS、三角测量、wifi跟踪等等)定义的预定义地理区域中 时才可不允许听写或允许听写。其他因素也可或可选地被策略用来确定是 否允许听写(或本文所描述的任何其他特征)。

在另一个示例中,可基于策略文件,阻碍内容提供商数据访问。内容 提供商通常提供标准接口或API,其中第三方应用程序通过该标准接口或 API可获得到由内容提供商存储的结构化数据的访问。示例可包括通讯录、 电子邮件标头、社交图数据或由服务提供商所维护的任何其他结构化数 据。可将如上所述的类似限制放置在对受管应用程序内的该结构化数据的 访问上,以防止非受管应用程序获得对受管应用程序中的数据的访问。

在另一个示例中,如本文所描述,可基于策略文件以及/或者基于应用 程序是否为受管应用程序来允许或不允许所接收的远程过程调用的创建 和/或执行。在另一个示例中,如本文所描述,可基于策略文件以及/或者 基于应用程序是否为受管应用程序来允许或不允许在两个应用程序之间 共享存储器空间。

通过使用以上拦截和过滤技术,流入和流出设备以及设备上的数据被 限制到受管安全空间。相同的技术还可基于策略定义域安卓和窗口8使用。

参考图45,现描述了用于限制数据共享的方法。最初,,如本文所描 述,在步骤4501中,例如,通过在EMM中登记、通过从应用程序商店下 载应用程序等等,将移动设备(例如,设备302、402等等)设置为具有 一个或多个受管应用程序以及一个或多个非受管应用程序。作为步骤4501 的部分,移动设备从服务器406下载任何可应用策略文件,并应用所述策 略文件,其中服务器406提供包括策略管理服务370的企业服务308。在 步骤4503中,用户(或移动设备本身)尝试开始数据导出操作。在步骤 4505中,移动设备基于策略文件中的信息做出关于该特定数据导出是否被 允许的确定。如果数据操作不被允许,那么在步骤4507中,移动设备防 止数据操作发生。如果允许数据操作,那么在步骤4509中,移动设备允 许用户(或应用程序,如果可应用的话)执行数据导出操作。

可使用图45中示出的方法的变型。例如,当数据被请求从受管应用 程序导出到另一个受管应用程序时,可允许数据导出操作,但当数据被请 求从受管应用程序导出到非受管应用程序时,可不允许数据导出操作。另 外,可记录或组合步骤。例如,在应用特定策略文件之后,移动设备可自 动地切断应用程序或用户对某些类型的数据导出操作的访问。因此,在应 用策略文件之后,用户即使请求某些类型的数据导出操作时也可能是不可 能的。该场景被考虑为在图45的范围内。也就是说,在用户或应用程序 即使请求未授权导出发生之前,只要在移动设备可基于策略文件阻碍一个 或多个数据导出操作,步骤4503是可选的。

在一个说明性使用实例方案中,用户可希望从基于云的文件共享服务 得到文件,以注解器(例如,PDF注解器)对其注解,并将其传递到公司 电子邮件服务。可这通过在受管组820中包括必要的应用程序来完成。但 也有必要防止文件通过私有电子邮件或者传递为供不是受管组820的部分 的其他应用程序查看(并且就此为信任的),如上所述。

为了提供增强的安全性,优选地避免受信任(受管)应用程序和不受 信任(非受管)应用程序的混杂,但根据策略进行混杂。EMM服务器850 上的管理员可为任何受管应用程序任务设置策略,以允许/不允许特征。策 略将允许用户或应用程序将文件从受管PDF注解器导出到受管组820外的 应用程序是可能的,但然后将丢失对PDF文件的控制。其他的规避也是可 能的,同时要理解的是允许规避降低安全性。

管理者可设置受管应用程序的策略,其中默认设置将包含如本文所描 述的受信任应用程序的受管组820内的数据。可从EMM服务器850动态 地递送策略。然而,例如,当商业考虑指定它时,可提供异常,以允许内 容从受管组820泄漏。对于不是受管组820的部分的应用程序,不存在与 正常活动的干扰,即,它们可为不受限制的。

6、移动资源管理(MRM)

如上文所描述,当移动计算设备访问企业计算机/IT系统时,与企业关 联的敏感数据和/或企业相关的软件应用程序可存储在移动设备上。企业相 关的数据可包括与企业关联的任何数据,诸如而不限于产品信息、销售数 据、客户列表、商业性能数据、专有技术、新创新和研究、贸易秘密等等。 由于该信息可以是非常敏感的,因此企业可能希望保护该类信息。

此外,企业可能期望调控用户如何使用他们的移动设备。例如,企业 可想要控制移动设备在哪里使用、哪些移动设备特征可以被使用、哪些软 件应用程序可在设备上安装和/运行等等。企业还需要为违反它们的移动设 备使用策略的用户控制并实施补救行动。

当本领域中的用户体验关于他们的移动设备的问题或者可得益于信 息、数据、软件或者关于如何使用设备执行某些操作的辅导时,企业的IT 支持可难于提供非常高效的辅助。因此,需要改善的对与企业关联的移动 设备的安全管理和技术支持。这有时被称为企业移动管理(EMM)。企业 可管理设备、应用程序、软件、设置、特征、远程工具、虚拟化应用程序 等等。任何设备、应用程序或可访问工具的管理在文本中也被称为移动资 源管理(MRM)。

本文所描述的实施例解决这些和其他关注点。本申请公开了用于移动 计算设备的自动化和半自动化管理的计算机系统和方法,该移动计算设备 访问企业计算机网络,诸如访问计算机实施的企业资源。如本文所使用, “企业”可基本上包括任何类型的组织,包括不限于营利性商业组织、合 作企业、公司等等,以及非营利性商业、组织、群体、协会、教育机构、 大学以及由共同目的或目标约束的个体的任何其他群体。“移动计算设备” 可包括任何广泛的各种设备,诸如不限于移动电话、智能电话、个人数字 助理、平板计算机、手持计算设备等等。例如,通过所公开的系统管理的 移动设备可包括或含有移动设备,该移动设备运行AndroidTM、IOS或 Windows移动操作系统(或其一些子集)。然而,如所将识别的,本文所 公开的体系结构可与其他移动设备操作系统一起使用,包括在将来可开发 的操作系统。

使用移动计算设备访问企业计算机网络的个体、实体或群体用户在本 文中被称为“用户”。用户可包括企业的成员,诸如雇员、合伙人、高级 职员等等。可选地,用户可包括不是企业的成员的个体或实体,但尽管如 此,仍需要或有理由访问企业计算机网络。例如,用户可为企业客户、供 应商等等。

“企业资源”可包括与企业关联的机器可访问资源。企业资源可包括 任何广泛的各种不同类型的资源,包括辅助或使用户能够执行与企业关联 的用户的角色或责任的资源。例如,企业资源可包括存储在非暂时性计算 机可读存储器上的原始数据、存储在非暂时性计算机可读存储器上的文 档、计算机硬件(例如,物理服务器)、存储在非暂时性计算机可读存储 器上的软件应用程序、用于存储在非暂时性计算机可读存储器上的软件应 用程序的宏命令(如,文字处理器宏命令),电子邮件系统、工作空间、 客户关系管理(CRM)系统、文档管理系统、企业资源计划(ERP)系统、 会计系统、库存系统、工程工具、形式、样式表和许多其他资源。企业资 源可被配置为由在移动计算设备上安装及运行的软件应用程序访问和使 用。

图9为与企业关联的计算机系统910和一个或多个用户915以及与企 业关联的移动计算设备920的实施例的示意性说明。在该示例中,每个移 动设备920被分配到一个企业用户915,但可选方案是可能的(例如,多 个用户915被分配到一个设备,以及/或者单个用户被分配到多个设备 920)。移动设备920优选地被配置为经由通信网络925与企业系统910(本 文中也被称为“企业网络”)通信。通信网络925可包括无线载波网络、 互联网、广域网、WIFI网络等等。因此,网络925可包括例如一个或多个 无线网络、一个或多个有线网络或者有线和无线网络的组合。此外,企业 系统910可被配置为被诸如台式计算机的非移动计算设备访问。

企业系统910优选地包括外部防火墙922和内部防火墙924。防火墙 922、924中的每个可包括设备或一组设备,其被设计为基于某些准则允许 或拒绝网络传输。防火墙922和924可包括存储在非暂时性计算机可读存 储器中的软件、硬件、固件或其组合。防火墙922和924可被配置为执行 基本路由功能。本文所描述的实施例可与防火墙922和924中的一个或两 者或者企业系统910的其他设备合作,以基于一组网关规则过滤移动设备 的访问请求,以便当允许合法通信通过时,保护企业系统910不受未授权 的访问。如下面将进一步详细描述,该访问规则可被用于基于例如移动设 备属性、用户属性、被请求访问的具体企业资源930或其任何组合来调控 访问。

两个所示出的防火墙922和924之间的物理或逻辑子网络可被称为 “非军事区”(DMZ),或可选地被称为“边界网络”。通常,DMZ包含企 业的外部服务并将其曝露于较大的不受信任的网络,通常为互联网。通常, DMZ的目的在于将附加的安全层添加到企业的局域网(LAN);外部攻击 者仅有权访问DMZ中的装备,而不是企业网络的任何其他部分。

所示出的企业系统910包括移动设备管理系统926、安全移动网关928 和“元应用”950,下面进一步详细描述其中的每个。企业系统910还包 括逻辑上定位在内部防火墙924后面的企业资源930,如所示出的资源1 到N。企业资源930中的至少一些可被配置为被移动设备920访问和/或使 用,诸如通过在移动设备上安装及运行的软件应用程序。

仍参考图9,移动设备920可经由连接942与载波网络925通信,连 接942为诸如最终连接到载波网络的蜂窝网络连接和/或WIFI连接。可经 由连接946将移动设备的企业访问请求发送到安全移动网关925,并且网 关928可经由内部连接954将请求发送到企业资源930。此外,企业系统 910可使用连接942、946以将信息发送回到移动设备920,诸如响应于设 备的企业访问请求的数据。

在一些实施例中,移动设备920上的软件应用程序可经由连接942、 944和952通过应用程序隧道与企业资源930通信。下面进一步详细描述 应用程序隧道。在所示出的实施例中,移动设备管理系统926充当移动设 备920(及通常为在移动设备上运行的特定应用程序)和企业资源920之 间的应用程序隧道内的“隧道中介”。

图10和图11示出的是类似于图9的实施例,不同之处在于移动设备 管理系统926和元应用程序950分别(完全地或至少部分地)位于云计算 系统或环境956(“云”)中。(在这两个途径的混合中,移动设备管理系统 926和元应用程序950两者驻留在云中)。云计算系统通常包括计算资源, 其被配置为经由诸如互联网的网络实施服务。例如,云计算系统可包括多 个分布式计算资源,诸如物理服务器或其他计算设备。使用云计算系统, 计算资源可位于经由网络可访问的任何合适位置。云计算系统可存储和处 理经通过网络接收的数据,同时可从远程位置访问。通常,由服务提供 商操作云计算系统,该服务提供商向企业以及基于云的计算系统的其他用 户收取使用系统的使用费用。在某些实施例中,移动设备管理系统926和 元应用程序950两者至少部分地位于云956中。在图10的实施例中,基 于云的设备管理系统926可被配置为经由连接958将网关规则提供到安全 移动网关928,如下面进一步详细描述。此外,移动设备920上的软件应 用程序可经由连接942、960和962经应用程序隧道与企业资源930通信, 其中移动设备管理系统926充当隧道中介。在图11的实施例中,位于云 956中的元应用程序部分951可被配置为经由连接964将网关规则提供到 安全移动网关928,如下面进一步详细描述。可以可选地将元应用程序951 (或其规则引擎)合并到移动设备管理系统926中,其中其可安排移动设 备管理系统926的管理。

图12为类似于图9的实施例,其中在防火墙922中实施了安全移动 网关928。在图12的实施例中,可在安全威胁管理网关(TMG)服务器中 实施安全移动网关928。如图12所示,可在没有内部防火墙924的情况下 实施企业系统910的一些实施例。

图13为类似于图9的实施例,其中在企业资源930中实施了安全移 动网关928。在图13的实施例中,可在互联网信息服务(IIS)服务器中实 施安全移动网关928。该IIS可被配置为企业资源930和/或内部防火墙924。

应当理解的是,可以用本文所描述的任何原理和优点实施企业系统 910中的任一个,这视情况而定。而且,还应当理解的是,图9-13中示出 的企业系统被提供用于说明的目的,并且可根据本文所描述的原理和优点 实施其他合适系统。

图16为图9的移动设备管理系统926的实施例的示意性说明。移动 设备管理系统926可包括一个或多个计算机、计算机服务器、存储设备和 其他部件的系统。如下面更加详细的解释,移动设备管理系统926可被配 置为管理或共同管理“移动设备规则”1614对于移动计算设备920的应用, 以及/或者在其间的应用程序隧道使用期间充当移动设备920和企业资源 930之间的“隧道中介”。移动设备管理系统926还可被配置为调控移动设 备对企业系统910的访问,诸如在该应用程序隧道的使用期间。下面描述 所示出的系统926的部件。

图17为移动计算设备920的实施例的示意性说明。移动设备920可 包括许多普通的或标准的移动设备部件,诸如电源1701、处理器1702、 用户接口1704、硬盘驱动器存储器1706、存储器卡(例如,安全数字(SD) 卡)端口1707、随机存取存储器1708、网络接口1710、用户识别模块(SIM) 卡端口1712、摄像机1714和/或GPS芯片1716。这些部件的实施和使用 是众所周知的,并且本文中将不注重于细节讨论。电源1701可包括电池 端口、电池以及/或者用于从外部源(例如,标准电插座)接收电功率的端 口。处理器1702可被配置为执行软件应用程序和各种其他的可执行部件。 用户接口1704可包括各种已知部件中的任一种,诸如用于接收文本输入 的键盘1724(诸如一组物理按钮或可选地,触摸屏键盘)、用于显示文本、 图象和/或视频的屏幕或显示器1726(其可为触摸屏)、用于产生可听输出 的扬声器1728或音频输出端口,以及/或者用于接收可听输入的麦克风 1730。硬盘驱动器1706可包括各种不同类型的非易失性和/或非暂时性计 算机可读存储器中的任一种。存储器卡端口1707被配置为接收数据可存 储于其上的存储器卡(例如,SD卡)。随机存取存储器1708可被用于存 储在各种过程的运行期间使用的数据。网络接口1710可用于通过网络(例 如,无线网络925,其可根据诸如Wi-Fi、3G、4G等等的许多标准操作) 发送和接收数据。SIM卡端口1712被配置为接收SIM卡,如本领域所已 知。摄像机1714可被配置为捕获图象和/或视频。GPS芯片1716可被配置 为处理GPS信号。移动设备920还可包括一个或多个安装的软件应用程序 1718。例如,可在硬盘驱动器1706上或在非易失性固态存储器中存储安 装的软件应用程序1718。安装的应用程序可包括企业应用程序和个人应用 程序两者。应当理解的是,移动设备920可包括任何其他计算机硬件部件, 而不是或者除了图3中所示的那些,诸如加速计、收发器、电池充电器、 USB控制器、基带处理器、音频编码解码器等等。

在所示出的实施例中,移动设备920包括企业代理1720,其优选地为 软件应用程序或者安装在移动设备上的其他可执行程序。企业代理1720 优选地从移动设备920的操作系统分离。然而,在一些实施例中,企业代 理1720可为移动设备的操作系统的部件或者部分地/完全地被嵌入到移动 设备920的操作系统中。在下面更详细描述的各种实施例中,企业代理1720 执行移动设备规则1614,并与企业系统910合作以调控移动设备对企业系 统910的访问,包括对企业资源930的访问。在一些实施例中,企业系统 910可通过以连接命令将文本消息(例如,SMS)发送到移动设备920来 提示企业代理1720连接到系统910(例如,移动设备管理系统926)。

作为移动设备管理系统926的移动设备登记的条件,可将企业代理 1720安装到移动设备920上。企业可采用自动化子系统,以用于将企业代 理1720安装到与企业关联(如,登记)的移动设备920。例如,移动设备 管理器1602可被配置为将企业代理1720发送到移动设备920,以用于自 动化安装或通过用户915的手动安装。可选地,IT人员可手动地将企业代 理1720安装到移动设备920上,或者终端用户可从商业上可获得的应用 程序商店下载并安装企业代理1720。不同类型的企业代理1720可被提供 用于不同的移动设备类型、平台、操作系统等等。移动设备设备管理器1602 或企业系统910的另一个软件部件可被配置为基于移动设备920的该属性 (例如,图16的移动设备属性1608)为每个给定的移动设备920选择合 适的企业代理1720。

企业代理1720可实施各种安全性相关特征,包括控制(或实现控制) 移动设备访问企业资源930的特征。例如,安装在给定移动设备920上的 企业代理1720可执行(例如,指示出或导致移动设备920执行)以下任 务中的一些或全部:(1)维护与企业系统910的数据连接,该连接可用于 应用程序隧道以及用于不涉及应用程序隧道的通信两者;(2)提供对公共 或私有企业应用程序商店的访问,其中用户可从该应用程序商店下载已经 被特定企业批准并被配置用于特定企业的企业应用程序;(3)创建应用程 序隧道,以用于使安装在移动设备上的企业应用程序能够安全地访问某些 企业资源,(4)收集关于移动设备的属性和配置的“库存”数据,诸如其 制造商、型号、操作系统、屏幕尺寸、存储器大小、存储器可用性、GPS 坐标,以及在设备上安装了哪种个人和企业移动应用程序,并将其传输到 移动设备管理系统926;(5)实施登录或者例如当用户启动企业移动应用 程序时,请求并验证用户的认证信息(例如,密码)的其他认证服务;(6) 对从安全移动网关928接收的加密消息附件解密,诸如从用户的企业的其 他成员接收的电子邮件消息的加密附件;(7)维护安全密钥存储,其由企 业应用程序可访问,以获得用于加密和解密数据的密钥;(8)检查安装在 移动设备上的黑名单移动应用程序,并将任何该应用程序上报到移动设备 管理系统;(9)执行预防行动,诸如当满足某些条件时,诸如当在移动设 备上检测到黑名单移动应用程序或者设备被报失时,删除用于对消息附件 解密的解密密钥,(10)扼杀(终止执行)被确定创建安全性风险的任何 黑名单应用程序或其他移动应用程序,(11)提供一个或多个附加服务,以 用于保持移动设备上的企业应用程序和数据与个人应用程序和数据分离; (12)确保激活了基于设备的安全性措施(例如,利用口令锁定键盘/屏幕) 以及(13)例如,当用户停止与企业保持雇佣关系时,擦除设备的所有企 业应用程序和数据(响应于从移动设备管理系统接收的命令)。如下面所 描述,可在分离的移动应用程序或者与企业代理1720不同的部件中可选 地实施这些功能中的一些。

企业代理1720使用标准操作系统API和机制以及/或者使用其自己的 API和机制来收集关于移动设备的配置的信息。例如,安卓操作系统的实 施中,企业代理可查询包管理器,以获得安装在设备上的应用程序列表。 企业代理可为当前运行的移动应用程序列表查询操作系统,并且可监测广 播消息,以识别正在安装的新应用程序。可将通过企业代理经该过程收集 的设备配置信息上报到移动设备管理系统926,其可使用信息以生成被安 全移动网关928应用的规则,以便控制移动设备对企业资源930的访问。 企业代理1720其自身还可使用所收集的设备配置信息来采取各种预防行 动,诸如扼杀如上所提及的黑名单移动应用程序。

在一个实施例中,企业代理1720是可从应用程序商店下载并安装在 移动设备920上的移动应用程序(或其部分)。一旦已经安装并启动了企 业代理,则终端用户供给诸如公司电子邮件地址和电子邮件密码的配置信 息,以使代理能够与特定企业系统910通信。一旦被配置,代理1720提 供给用户对安全应用程序商店的访问,其中用户可从该安全应用程序商店 下载并安装已经被用户的企业批准并在一些情况下被具体地配置用于用 户的企业的企业移动应用程序。可以可选地将用于下载并安装企业移动应 用程序的功能嵌入在与企业代理结合运行的分离的“安全启动器”移动应 用程序内。

图18示出可执行的安全性相关部件1750中的一些,其可与企业代理 1720或作为企业代理1720的部分在移动设备920上安装或实施。如所将 认识到的,可在没有其他的情况下安装这些部件1750中的一些,并且可 用各种方式组合所示出的部件。一个部件为存储一个或多个加密密钥的密 钥存储库1750A。在一个实施例中,通过企业代理1720实施并管理密钥存 储,该企业代理1720使企业应用程序能够访问密钥存储,以获得加密密 钥。例如,给定的企业应用程序可使用加密密钥,以对文件及存储到存储 器1748的其他数据加密。

进一步参考图8,安全启动器1750B还可安装在移动设备920上,以 用于启动企业应用程序。安全启动器可以是企业代理1720的部分,或者 可是分离的移动应用程序。安全启动器1750B可实施或执行各种安全性策 略,诸如当启动企业应用程序时,要求用户输入有效密码。图14和图15 中示出了通过安全启动器1750B实施的用户接口的一个实施例,并在下面 对其进行描述。如下面所描述,可修改或写入企业应用程序,以使用安全 启动器而不是包括在移动设备的操作系统中的一般启动器。在一个实施例 中,安全启动器还包括一功能,该功能响应于尝试输入的连续无效口令的 阈值数目或者响应于从企业的IT部门远程发出的命令,擦除移动设备920 的所有企业应用程序和数据。

如图18中进一步所示,在一些实施例中,安全虚拟机1750C可安装 在移动设备920上,以为运行企业应用程序中的一些或全部创建或增强安 全执行环境。该安全虚拟机(VM)补充移动操作系统的默认VM并且可 与其同时运行。例如,一个或多个企业移动应用程序可在安全VM内运行, 而包括所有个人移动应用程序的所有其他移动应用程序在操作系统的默 认VM中的相同设备上运行。如下面在标题“安全虚拟机”下所述,安全 VM 1750C实施不在移动操作系统的默认VM中实施(或者不适合为企业 应用程序实施)的各种策略和措施(诸如安全性、管理、存储、联网和/ 或过程执行策略)。例如,安全VM可以能够建立应用程序隧道,以用于 访问企业系统,并且可经由相应应用程序隧道路由来自企业应用程序的请 求。安全VM还可防止企业应用程序运行,除非并且直到用户输入有效口 令或者以其他方式成功地认证。安全VM可与一组代码库一起安装在移动 设备上,其中通过安全VM使用该组代码库而不是操作系统的相应代码库。

使用安全VM 1750C的一个好处在于其降低或消除具体地写入或修改 移动应用程序以与企业系统910一起使用的需要。例如,企业可希望制作 对其雇员可用的特定商业上可获得的移动应用程序,以用于访问公司资 源,但可能不允许修改应用程序以实施本文所描述的各种安全性特征(诸 如认证、安全存储和安全联网)。在该方案中,企业可配置移动应用程序 或移动设备,以便该特定应用程序在被执行时,仅在安全VM内运行。

安全VM被优选地实施为分离的移动应用程序,但可以可选地为另一 应用程序或部件(诸如企业代理1720或安全启动器1750B)的部分。可以 用各种方式调用安全VM;例如,企业代理可请求安全VM运行特定应用 程序,或者在被启动之后,该应用程序可请求安全VM或将该安全VM指 定作为其执行环境。在一些实施例中,安全启动器1750B和安全VM 1750C 被组合用于创建用于运行企业应用程序的安全空间,尽管彼此间可以被独 立使用。下面在题为安全虚拟机的部分描述了安全VM的其他细节。

如图18中进一步所示,安全容器部件1750D还可被优选地作为分离 的移动应用程序或作为企业代理1720的部分而安装在移动设备920上。 该部件1750D负责在移动设备上创建安全容器,以用于企业应用程序存储 文档和其他信息。下面在标题安全文档容器下描述了该特征的一个实施 例。在一些实施例中,当执行选择性擦除操作时,从移动设备删除存储在 安全容器中的文档和数据中的一些或全部,或者以其他方式使其不可访 问。

图18还示出可安装在移动设备920上的两种类型的移动应用程序 1718:企业应用程序1718A和个人应用程序1718B。如所示出,企业应用 程序1718可包括可执行安全代码1760(代码库等等),以用于实施所公开 的客户端安全性功能(应用程序隧道、口令验证、数据的加密等等)中的 一些或全部。该安全性代码1760可经由特殊SDK添加,或者可经由下面 在题为修改先存移动应用程序的行为的部分中描述的应用程序封装过程 添加有后开发。如上所提及,在一些情况下,给定的企业应用程序可不包 括任何安全性代码1760,而是可在安全VM 1750C或者将安全层强加在企 业应用程序上的安全浏览器内运行。

除了图18中示出的部件以外,一个或多个代码库可安装在移动设备 上,以用于实施各种安全性功能,诸如数据加密和应用程序隧道的形成。 作为一个示例,可安装并使用自定义SSL库,而不是操作系统的SSL库, 以创建安全应用程序隧道,如下面在题为应用程序隧道部分中所描述。

参考图46,根据一个方面,在MRM中登记的设备可针对于与不在 MRM中登记的那些设备不同的策略。例如,策略文件可基于设备(或应 用程序)是否在企业MRM中登记来允许或不允许使用由移动设备提供的 一个或多个资源或被提供给移动设备的一个或多个资源。策略文件还可基 于从MRM系统学习的信息来限制特征。在步骤4601中,策略管理器可确 定设备是否在MRM中登记。如果设备未在MRM中登记,那么在步骤4603 中,设备的策略管理器(例如,客户端代理404)应用第一策略文件(或 多个文件)。如果设备在MRM中登记,那么在步骤4605中,策略管理器 应用第二策略文件(或多个文件)。在步骤4607中,移动设备可随后请求 对资源的访问。资源可以是本文所描述的数据导出技术或其他方面(例如, 存储器共享、URL调度等等)、外部网络服务(例如,文件共享、听写、 网络访问等等),或者移动设备内的或通过移动设备可访问的任何其他资 源。在步骤4609中,移动设备基于正在使用中的策略文件允许或不允许 访问资源。

当用户(例如,雇员)执行移动设备上的受管应用程序时,用户通常 面临的挑战是认证用户的公司标识和密码以及通过公司策略指定的其他 要素。在已经认证用户和设备之后,系统的访问管理器部件验证用户有权 行使所涉及的应用程序,以及当使用该特定应用程序时,下载被企业管理 者已经为该用户建立的策略。这些应用程序策略通常被缓存并周期性地更 新,以确保与管理设置兼容。这些策略还可仅在某些时间期间限制从某些 网络、从某些地理位置以及仅从与所有组织安全性策略兼容的设备到受管 应用程序的访问。

通过将一个或多个策略建立在MRM中的登记或者从MRM中的登记 学习的信息的基础上,策略可以是基于客户端代理404所知的信息而不是 其他方式,但其通过MRM服务是已知的。例如,当在MRM中登记时, MRM服务器存储关于以下项的信息:设备是否使设备级别PIN启用、设 备级别加密、安全性证书信息,以及MRM服务器有权通过设备的企业级 别管理的任何其他信息。因此,在图46的示例中,在一个实施例中,第 二策略文件可将策略决定建立在移动设备是否使设备级别PIN启用的基础 上。在另一个示例中,第二策略文件可基于移动设备是否使设备级别加密 启用来设置策略。在另一个示例中,第二策略文件可基于移动设备是否已 被提供了用于访问特定企业资源所要求的证书来设置策略。例如,内部企 业web站点可要求设备被提供有来自MRM服务器的证书。另外,还可发 生相反的情况。例如,当可应用策略文件允许设备(或应用程序)访问要 求由MRM服务器管理的证书的特定资源时,MRM服务器可将证书授予 移动设备。

7、应用程序专用策略

根据受管应用程序的一些方面,策略可基于或被定制为特定的应用程 序或特定类型的应用程序。例如,策略可基于与特定应用程序(发起者、 服务描述、版本等等)关联的元数据,或者可基于特定于该应用程序、由 该应用程序提供的特征、应用程序的应用程序ID等等的信息。以这种方 式,策略可被定制为具体的应用程序或具体的应用程序类型,例如,web 浏览器、电子邮件、社交网络、文字处理、电子表格、呈现、远程访问、 虚拟化等等。策略可进一步特定于特定应用程序的发布者,例如,微软发 布的INTERNET EXPLORER可具有第一策略,而谷歌发布的CHROME 可具有第二策略。可选地,可利用应用到所有web浏览器应用程序的相同 策略来处理INTERNET EXPLORER和GOODGLE CHROME。而且,策略 可定义其他web浏览器可如何在web浏览器内的执行环境内执行子应用程 序,例如,HTML5应用程序,或者例如思杰RECEIVER的远程访问应用 程序可如何执行虚拟化的应用程序。

在进一步的方面中,策略可以是特定行业的。例如,被识别为与金融 服务行业关联的所有应用程序可针对于第一组的一个或多个策略;被识别 为与医疗保健行业关联的所有应用程序可针对于第二组的一个或多个策 略;以及被识别为与法律行业关联的所有应用程序可针对于第三组的一个 或多个策略。单个的策略可重叠,但每个所针对的整个组可根据需要而不 同。在其他方面中,策略可以是位置特定的,即使在行业内或不考虑行业。 例如,当确定其上运行应用程序的移动设备地理上位于第一医院(例如, 麻省综合医院)内时,医疗保健应用程序可针对于第一组的一个或多个策 略,并且当确定其上运行应用程序的移动设备地理上位于第二医院(例如, 布莱根妇女医院)内时,医疗保健应用程序可针对于第二组的一个或多个 策略。

图50示出用于使用应用程序专用策略文件管理应用程序的过程示例。 最初,在步骤5001中,可在移动电子设备上接收和/或安装受管应用程序, 如本文所描述。在步骤5003中,设备可分离地和/或明确地接收一个或多 个策略文件,其例如基于特定于受管应用程序的一个或多个特征来定义受 管应用程序的一个或多个操作和/或行为限制。尽管可作为分离文件可选地 接收策略文件,策略文件可以如受管应用程序那样被接收为相同通信或安 装过程的部分。

在步骤5005中,移动设备根据策略文件执行受管应用程序。也就是 说,移动设备安全性管理器(或等效过程)限制如由一个或多个策略文件 定义的受管应用程序的操作。在步骤5007中,在受管应用程序的操作期 间以及基于一个或多个策略文件,可限制受管应用程序的特征,其中如果 未实施策略文件,其可能已经以其他方式被允许,其中该种特征特定于受 管应用程序并且不包括其他受管应用程序或对其他受管应用程序是不可 能的。下面更详细地提供该应用程序专用策略文件的各种示例,如可根据 图50和/或本文所描述的其他过程使用的。

下面更详细地描述各种方面。

7.A、安全Web浏览器应用程序

某些实施例的另一个方面涉及web浏览器,其中其他移动设备软件应 用程序可在该web浏览器内运行。web浏览器可被提供有企业安全性和本 文所描述的其他特征中的一些或全部,并且可扩展用于与在浏览器内运行 的移动设备应用程序使用的那些特征。以这种方式,浏览器可用于实施 BYOD策略,同时保持对在企业用户915的移动设备920上运行的应用程 序的控制所需的水平。企业可要求其用户915中的一些或全部安装并使用 该web浏览器,以降低与使用该移动设备应用程序关联的企业安全性风险。 进一步地,在一些情况下,该web浏览器可使应用程序开发者不必要为不 同的移动设备平台开发不同版本的移动设备应用程序。如上所提及,安全 浏览器还可用于使移动设备用户能够在不需要虚拟私有网络(VPN)的情 况下访问企业内部网。

参考图17,移动设备920可包括专门的web浏览器1732。web浏览 器1732可被配置为执行传统web浏览器的功能,包括浏览互联网网站、 显示和/或播放从web服务器接收的多媒体内容等等。web浏览器1732可 在安全文档容器1736中以及/或者在安全浏览器高速缓存中存储经由网络 访问的数据。可在企业的指导下删除该数据。例如,移动设备管理系统926 可开始删除,或者以其他方式使存储在安全文档容器1736和/或安全浏览 器高速缓存中的数据不可访问。此外,web浏览器1732优选地被配置为充 当安装在移动设备920上的至少一些其他软件应用程序1718的容器,以 允许那些应用程序在浏览器1732内运行。当应用程序1718其自身由用户 915启动时,软件应用程序1718可被配置为启动浏览器1732。此外,应 用程序1718可被配置为启动浏览器1732,并以对用户915透明的方式在 浏览器1732内运行。换句话说,用户915可以被给出印象,即应用程序 1718正在常规运行而不涉及web浏览器1732。web浏览器1732可利用协 议,该协议可促进其作为用于其他软件应用程序1718的容器的用途。例 如,出于该目的,web浏览器1732可利用HTML5。

wb浏览器1732可提供本文所描述的一些或全部功能。例如,web浏 览器1732可包括由上述SDK 2404和/或企业代理1720所提供的一些或全 部功能。因此,web浏览器1732可被配置为使用应用程序隧道,以用于与 网络资源(诸如企业资源930)通信。web浏览器1732可从移动设备管理 系统926或企业系统910的另一个部件接收(或具有嵌入的)移动设备规 则1614和补救行动1616。web浏览器1732可以可选地具有嵌入的移动设 备规则和补救行动。web浏览器1732可在应用程序隧道内采用高速缓存和 /或压缩方法,以改善如上所述的用户的通信体验。web浏览器1732可被 配置为提供凭证,以读取自、写入从移动设备920的安全文档容器1736 获得的文档,以及/或者提供编辑器,以用于显示和编辑从移动设备920的 安全文档容器1736获得的文档,如上所述。在某些实施例中,web浏览器 1732可实施安全文档容器1736。web浏览器1732可提示用户915先前供 给访问凭证,并在将在浏览器1732内运行的应用程序1718的功能曝露给 用户915之前,验证访问凭证。可选地或附加地,web浏览器1732可使通 过在web浏览器1732中运行的应用程序1718存储到移动设备920的数据 被加密。如上所述,web浏览器1732可被配置为参与与帮助台操作员的远 程控制会话。web浏览器1732可被配置为将故障检测、性能测量、相关事 件、事件时间、事件位置和其他数据记入日志,并将该数据提供到如以上 结合SDK 2404所述的分析服务。web浏览器1732可被配置为加入与元应 用程序的通信,这再次如上所述。通过提供这些和/或其他功能中的至少一 些,web浏览器1732可使移动设备应用程序开发者不必要在移动设备应用 程序1718内嵌入该功能。

在一些实施例中,web浏览器1732为可配置的,以便在例如可通过诸 如企业系统910的远程计算机系统远程地配置的定义条件下,可激活或停 用这些功能中的一个或多个。可定义条件包括时间条件、位置条件、移动 设备属性、用户属性(例如,规则1606)以及其他。时间条件可为天时。 例如,web浏览器1732可被配置为迫使(至少经配置启动浏览器1732的 应用程序1718的)所有的移动流量仅在工作用时(例如,星期一到星期 五的上午8点到下午5点)期间通过应用程序隧道,并在这些用时的范围 之外按照惯例地发送流量。位置条件可为移动设备920的位置。例如,当 设备920在已知为具有不良无线连接性的地理区域中时,浏览器1732可 被配置为激活前述压缩和高速缓存特征。

可为不同的移动设备平台创建不同的web浏览器1732,其中浏览器版 本中的每个使用单一标准,以用于运行移动设备应用程序。这可有利地允 许移动设备应用程序开发者仅以一种编程语言开发移动设备应用程序 1718,与为各种移动设备平台创建不同版本截然相反。这可充分地为开发 者降低应用程序开发工作量。

企业可要求其用户915将web浏览器1732安装到他们的移动设备920 上,并且可禁止使用其他的web浏览器。所要求的浏览器1732可被配置 为引导移动设备流量中的至少一些通过应用程序隧道到达企业控制的隧 道中介,诸如以上所述的中介1624。这给予企业对流量的更大控制,从而 降低安全性风险。企业可采用移动设备规则1614,其使驻留于设备的企业 代理1720或web浏览器1732本身检测所禁止的web浏览器在移动设备 920上的安装和/或使用。关联的补救行动1616可根据如上所述的方法阻 止使用所禁止的web浏览器,诸如通过对其卸载、阻止其运行等等。

在一些实施例中,安全web浏览器1732可被配置为将一些或全部web 浏览请求指向如上所述的内容过滤服务器。

还可通过策略来管理浏览器的操作的其他方面,例如,包括但不限于 URL过滤(白名单/黑名单)、呈现层的定制化、书签(书签的预加载/配置)、 开始/主页(预设置页、防止页改变、防止页改变除非接收到更新的策略文 件等等)、下载行为(例如,其中可打开下载或者文件可从其附加到网页 的文件)、具体类型的URL的处理(例如,电邮至:由公司电子邮件而不 是谷歌电子邮件处理等等)、具体顶级域名的处理(例 如,.xxx、.onion、.mil、.us等等),以及/或诸如HTML5、FLASH、 Silverlight、.net等等的运行时间平台的控制和配置(例如,嵌入式应用程 序可何时运行、在哪种条件下,不同嵌入式应用程序中的每个可访问存储 位置等等)。还可通过策略文件管理其他特征。

图51示出的是用于使用专用策略文件管理安全浏览器应用程序的过 程的示例。最初,在步骤5101中,可在移动电子设备上接收和/或安装受 管安全浏览器应用程序,如本文所描述。在步骤5103中,设备可分离地 和/或明确地接收一个或多个策略文件,其例如基于如上所讨论的特定于受 管安全浏览器应用程序的一个或多个特征定义受管安全浏览器应用程序 的一个或多个操作和/或行为限制。尽管可作为分离文件可选择地接收策略 文件,可作为相同通信或安装过程的部分接收策略文件,如同受管应用程 序那样。

在步骤5105中,移动设备根据策略文件执行受管安全浏览器应用程 序。也就是说,移动设备安全管理器(或等效过程)限制如通过一个或多 个策略文件定义的受管安全浏览器应用程序的操作。在步骤5107中,在 受管安全浏览器应用程序的操作期间以及基于一个或多个策略文件,可限 制受管安全浏览器应用程序的特征,其中如果未实施策略文件,其可能已 经以其他方式被允许,其中该特征特定于受管安全浏览器应用程序并且不 包括其他受管应用程序或对其他受管应用程序不可能。以上讨论了可被限 制/实施的该应用程序专用策略文件和特征的各种示例。

7.B、安全个人信息管理(PIM)应用程序

某些实施例的另一个方面包括个人信息管理(PIM)应用程序,例如 其包括电子邮件、日历、联系方式、笔记等等。PIM应用程序可被提供有 企业安全性中的一些或全部以及本文所描述的其他特征,并且可扩展那些 特征,以用于与PIM应用程序的个体特征使用。以这种方式,PIM应用程 序可被用于实施BYOD策略,同时保持对在企业用户915的移动设备920 上运行的应用程序的控制所需的水平。企业可要求其用户915中的一些或 全部安装并使用该PIM应用程序,以降低与使用该移动设备应用程序关联 的安全性风险。而且,在一些情况下,该PIM应用程序可使应用程序开发 者不必要为不同的移动设备平台开发不同版本的移动设备应用程序。如上 所提及,PIM应用程序还可用于使移动设备用户能够在不需要虚拟私有网 络(VPN)的情况下访问公司服务(例如,电子邮件、日历等等)。

再次参考图17,移动设备920可包括专门的PIM应用程序1733。PIM 应用程序1733可被配置为执行常规PIM应用程序的功能,包括提供电子 邮件、日历、联系方式、笔记、期刊、即时消息,以及其他通信/协作服务。 PIM应用程序1733可在安全文档容器1736中以及/或者在安全浏览器高速 缓存中存储经由网络访问的数据(例如,联系方式、事件、会议、消息等 等)。可在企业的指导下删除该数据。例如,移动设备管理系统926可开 始删除,或者以其他方式使存储在安全文档容器1736和/或安全浏览器高 速缓存中的数据不可访问。此外,PIM应用程序1733优选地被配置为充 当安装在移动设备920上的至少一些其他软件应用程序1718的容器,以 允许那些应用程序1718在PIM应用程序1733内运行(例如,附加件、集 成等等)。当应用程序1718其本身由用户915启动时,软件应用程序1718 可被配置为启动PIM应用程序1733。

PIM应用程序1733可提供本文所描述的一些或全部功能。例如,PIM 应用程序1733可包括由上述SDK 2404和/或企业代理1720提供的一些或 全部功能。因此,PIM应用程序1733可被配置为使用应用程序隧道,以 用于与网络资源(诸如企业资源930)通信。PIM应用程序1733可从移动 设备管理系统926或企业系统910的另一个部件接收(或具有嵌入的)移 动设备规则1614和补救行动1616。PIM应用程序1733可以可选地具有嵌 入的移动设备规则和补救行动。PIM应用程序1733可在应用程序隧道内 采用高速缓存和/或压缩方法,以改善如上所述的用户的通信体验。PIM应 用程序1733可被配置为提供凭证,以读取自、写入从移动设备920的安 全文档容器1736获得的文档,以及/或者提供编辑器以用于显示和编辑从 移动设备920的安全文档容器1736获得的文档,如上所述。在某些实施 例中,PIM应用程序1733可实施安全文档容器1736。PIM应用程序1733 可提示用户915先前供给访问凭证,并在曝露如由EMM服务或策略定义 的功能之前,验证访问凭证。可选地或附加地,PIM应用程序1733可使 存储到移动设备920的数据被加密。PIM应用程序1733可被配置为将故 障检测、性能测量、相关事件、事件时间、事件位置和其他数据记入日志, 并将该数据提供到如以上结合SDK 2404所述的分析服务。PIM应用程序 1733可被配置为加入与元应用程序的通信,再次如上所述。通过提供这些 和/或其他功能中的至少一些,PIM应用程序1733可使移动设备应用程序 开发者不必要在移动设备应用程序1718内嵌入该功能。

在一些实施例中,PIM应用程序1733为可配置的,以便在例如可通 过诸如企业系统910的远程计算机系统远程地配置的定义条件下,可激活 或停用这些功能中的一个或多个。可定义条件包括时间条件、位置条件、 移动设备属性、用户属性(例如,规则1606)以及其他。时间条件可为天 时。例如,PIM应用程序1733可被配置为迫使所有的移动流量仅在工作 用时(例如,星期一到星期五的上午8点到下午5点)期间通过应用程序 隧道,并在这些用时的范围之外按照惯例地发送流量。位置条件可为移动 设备920的位置。例如,当设备920在已知为具有不良无线连接性的地理 区域中或者在不安全位置中时,PIM应用程序1733可被配置为激活前述 压缩和高速缓存特征。

可为不同的移动设备平台创建不同的PIM应用程序1733。企业可要 求其用户915将PIM应用程序1733安装到他们的移动设备920上,并且 可禁止使用其他PIM应用程序软件。所要求的PIM应用程序1733可被配 置为引导移动设备流量中的至少一些通过应用程序隧道到达企业控制的 隧道中介,诸如以上所述的中介1624。这给予企业对流量的更大控制,从 而降低安全性风险。企业可采用移动设备规则1614,其使驻留于设备的企 业代理1720或PIM应用程序1733本身检测所禁止的PIM应用程序在移 动设备920上的安装和/或使用。关联的补救行动1616可根据如上所述的 方法阻止使用所禁止的PIM应用程序,诸如通过对其卸载、阻止其运行等 等。

在一些实施例中,PIM应用程序1733可被配置为将一些或全部电子 邮件发送/接收请求和/或事件指向如上所述的内容过滤服务器。

还可通过策略,管理PIM应用程序的操作的上述方面或其他方面,例 如,包括但不限于地址过滤(白名单/黑名单/自动填充和/或预填充)、呈现 层的定制化、地址簿内容(地址簿的预加载/配置、可导出联系方式下的条 件等等)、用户有权访问的日历、具体类型的URL、文件的处理(例如, URL调度)、处理消息附件(例如,定义文件可附加自哪个应用程序;定 义附加文件可在哪个应用程序中打开,例如,通过受管PDF查看器而不是 打开PDF查看器来处理PDF)、附加件、扩展和/或诸如HTML5、FLASH、 Silverlight、.net等等的运行时间平台的控制和配置、消息保留的控制(持 续时间、条件等等,在自动存档或删除之前),以及/或者安全电子邮件/PIM 应用程序的自动安装过程的控制。

图52示出的是用于使用应用程序专用策略文件管理PIM应用程序的 过程的示例。最初,在步骤5201中,可在移动电子设备上接收和/或安装 受管PIM应用程序,如本文所描述。在步骤5203中,设备可分离地和/或 明确地接收一个或多个策略文件,其例如基于如上所讨论的特定于受管 PIM应用程序的一个或多个特征定义受管PIM应用程序的一个或多个操作 和/或行为限制。尽管可作为分离文件可选择地接收策略文件,但是可作为 相同通信或安装过程的部分来接收策略文件,如同受管应用程序那样。

在步骤5205中,移动设备根据策略文件执行受管PIM应用程序。也 就是说,移动设备安全性管理器(或等效过程)限制如由一个或多个策略 文件定义的受管PIM应用程序的操作。在步骤5207中,在受管PIM应用 程序的操作期间以及基于一个或多个策略文件,可限制受管PIM应用程序 的特征,其中如果未实施策略文件,其可能已经以其他方式被允许,其中 该特征特定于受管PIM应用程序并且不包括其他受管应用程序或对其他 受管应用程序不可能。以上讨论了可被限制/实施的该应用程序专用策略文 件和特征的各种示例。

7.c、客户端代理/虚拟化应用程序策略

某些实施例的另一个方面包括虚拟化应用程序,例如诸如CITRIX  RECEIVER的客户端代理,以及特定于该应用程序的策略。客户端代理可 被提供有企业安全性中的一些或全部以及本文所描述的其他特征,并且可 扩展那些特征,以用于与客户端代理的个体特征一起使用。以这种方式, 客户端代理可用于实施BYOD策略,同时保持对在企业用户915的移动设 备920上运行的应用程序的控制所需的水平。企业可要求其用户915中的 一些或全部安装并使用该客户端代理,以降低与使用该移动设备应用程序 关联的安全性风险。而且,在一些情况下,该客户端代理可使应用程序开 发者不必要为不同的移动设备平台开发不同版本的移动设备应用程序。如 上所提及,客户端代理还可用于使移动设备用户能够在不需要虚拟私有网 络(VPN)的情况下访问公司服务(例如,应用程序、桌面、服务器、电 子邮件、日历等等)。

再次参考图17,移动设备920可包括专门的客户端代理1720。客户 端代理1720可被配置为执行常规客户端代理的功能,例如,远程访问企 业资源。客户端代理1720可在安全文档容器1736中以及/或者在安全浏览 器高速缓存中存储经由网络访问的数据。可在企业的指示下删除该数据。 例如,移动设备管理系统926可开始删除,或者以其他方式使存储在安全 文档容器1736和/或安全浏览器高速缓存中的数据不可访问。此外,客户 端代理1720优选地被配置为充当安装在移动设备920上的至少一些其他 软件应用程序1718的容器,以允许那些应用程序1718在客户端代理1720 内运行(例如,作为远程访问的应用程序或虚拟化应用程序)。当应用程 序1718自身由用户915启动时,软件应用程序1718可被配置为启动客户 端代理1720。

客户端代理1720可提供本文所描述的一些或全部功能。例如,客户 端代理1720可包括通过SDK 2404提供的一些或全部功能。客户端代理 1720可被配置为使用应用程序隧道,以用于与网络资源(诸如企业资源 930)通信。客户端代理1720可从移动设备管理系统926或企业系统910 的另一个部件接收(或具有嵌入的)移动设备规则1614和补救行动1616。 客户端代理1720可以可选地具有嵌入的移动设备规则和补救行动。客户 端代理1720可在应用程序隧道内采用高速缓存和/或压缩方法,以改善如 上所述的用户的通信体验。客户端代理1720可被配置为提供凭证,以读 取自、写入从移动设备920的安全文档容器1736获得的文档,以及/或者 提供编辑器,以用于显示和编辑从移动设备920的安全文档容器1736获 得的文档,如上所述。在某些实施例中,客户端代理1720可实施安全文 档容器1736。客户端代理1720可提示用户915先前供给访问凭证,并在 曝露如由EMM服务或策略定义的功能之前,验证访问凭证。可选地或附 加地客户端代理1720可使存储到移动设备920的数据被加密。客户端代 理1720可经配置将故障检测、性能测量、相关事件、事件时间、事件位 置和其他数据记入日志,并将该数据提供到如以上结合SDK 2404所述的 分析服务。客户端代理1720可被配置为加入与元应用程序的通信,再次 如上所述。通过提供这些和/或其他功能中的至少一些,客户端代理1720 可使移动设备应用程序开发者不必要在移动设备应用程序1718内嵌入该 功能。

在一些实施例中,客户端代理1720为可配置的,以便在例如可通过 诸如企业系统910的远程计算机系统远程地配置的定义条件下,可激活或 停用这些功能中的一个或多个。可定义条件包括时间条件、位置条件、移 动设备属性、用户属性(例如,规则1606)以及其他。时间条件可为天时。 例如,客户端代理1720可被配置为迫使所有的移动流量仅在工作用时(例 如,星期一到星期五的上午8点到下午5点)期间通过应用程序隧道,并 在这些用时的范围之外按照惯例地发送流量。位置条件可为移动设备920 的位置。例如,当设备920在已知为具有不良无线连接性的地理区域中或 者在不安全位置中时,客户端代理1720可被配置为激活前述压缩和高速 缓存特征。

可为不同的移动设备平台创建不同的客户端代理1720。企业可要求其 用户915将客户端代理1720安装到他们的移动设备920上,并且可禁止 使用其他客户端代理软件。所要求的客户端代理1720可被配置为引导移 动设备流量中的至少一些通过应用程序隧道到达企业控制的隧道中介,诸 如以上所述的中介1624。这给予企业对流量的更大控制,降低安全性风险。 企业可采用移动设备规则1614,其使客户端代理1720检测被禁止的客户 端代理在移动设备920上的安装和/或使用。关联的补救行动1616可根据 如上所述的方法阻止使用所禁止的客户端代理,诸如通过对其卸载、阻止 其运行等等。

在一些实施例中,客户端代理1720可被配置为将一些或全部电子邮 件发送/接收请求和/或事件指向如上所述的内容过滤服务器。

可通过测量管理客户端代理的操作的以上方面或其他方面的任一个, 例如,包括但不限于应用程序过滤(黑名单/白名单)、基于应用程序是否 本地在设备上或通过客户端代理应用程序运行的访问/授权的差异化、呈现 层的定制化,以及/或者地址簿内容(预加载容许的企业应用程序),仅举 几例。

使用以上特征中的任一个,一个或多个策略文件可适合于或被创建用 于在移动客户端设备上以虚拟化模式运行的应用程序。虚拟化模式可包括 例如,当应用程序从移动设备远程执行(例如,远程访问),但通过客户 端代理软件被呈现给移动设备的用户好像应用程序在本地执行时。其他类 型的虚拟化还可能是为可行的。当远程执行应用程序通过客户端代理执行 时而不是当相同应用程序可直接在本地移动设备上执行时,该组一个或多 个策略文件可限制远程执行应用程序的一个或多个能力。例如,相比当受 管应用程序在移动客户端设备上直接执行,当受管应用程序在移动客户端 设备上以虚拟化模式运行时,当由移动客户端设备移动设备应用时,该组 一个或多个策略文件可使受管应用程序使用不同组的策略文件来操作。在 一些示例中,该组的策略文件可自动地配置受管应用程序,以在虚拟化模 式中运行。在其他示例中,该组的策略文件可限制在就有以虚拟化模式执 行的应用程序的设备上直接执行的应用程序之间的剪切和粘贴。在一些示 例中,可基于一个或多个策略文件完全地限制以虚拟化模式运行的应用程 序访问设备剪贴板和/或安全剪贴板(如上所述)。因此,策略文件可用于 限制从本地(例如,移动)设备远程执行的应用程序的一个或多个能力。 该能力可包括一般能力,诸如访问剪贴板,或者可包括特定于应用程序的 能力,例如,访问应用程序内的企业专用模块。作为非限制性示例,当应 用程序通过虚拟化模式执行时,策略文件可限制用户访问MICROSOFT  VISIO中的企业专用“形状”集,而当VISIO在设备上本地执行时,用户 可有权访问企业专用“形状”。

根据一个方面,该组策略文件可仅应用到客户端代理应用程序,其能 够在移动客户端设备上以虚拟化模式执行企业批准的应用程序。也就是 说,策略文件可应用到应用程序的客户端代理类型,一般地,其可包括例 如CITRIX RECEIVER和相同类型的其他应用程序。策略文件可然后影响 通过客户端代理应用程序或在客户端代理应用程序内访问的任何应用程 序(例如,使用远程访问模式),而可对在移动客户端设备上执行的其他 类型的应用程序应用不同组的策略文件。客户端代理应用程序可用作一种 应用程序“沙盒”,从而防止恶意应用程序访问移动设备的其他区域。

在一些示例中,策略文件可定义对通过客户端代理应用程序访问企业 资源基于时间或基于地理位置的限制。可为每个企业资源使用不同的限 制,或者共同的限制可应用到多个企业资源。

然而,存在几个示例,并且任何其他类型的限制可被使用,其通过如 本文所描述的策略文件可控制的。图53示出的是用于使用专用策略文件 管理客户端代理应用程序的过程的示例。最初,在步骤5301中,可在移 动电子设备上接收和/或安装受管客户端代理应用程序,如本文所描述。在 步骤5303中,设备可分离地和/或明确地接收一个或多个策略文件,其例 如基于特定于如上所讨论的受管客户端代理应用程序的一个或多个特征, 来定义受管客户端代理应用程序的一个或多个操作和/或行为限制。尽管可 作为分离文件可选择地接收策略文件,可作为相同通信或安装过程的部分 接收策略文件,如同受管应用程序那样。

在步骤5305中,移动设备根据策略文件执行受管客户端代理应用程 序。也就是说,移动设备安全性管理器(或等效过程)限制如通过一个或 多个策略文件定义的受管客户端代理应用程序的操作。在步骤5307中, 在受管客户端代理应用程序的操作期间以及基于一个或多个策略文件,可 限制受管客户端代理应用程序的特征,其中如果未实施策略文件,其可能 已经以其他方式被允许,其中该特征特定于受管客户端代理应用程序,并 且不包括其他受管应用程序或与其他受管应用程序不可能。以上讨论了可 被限制/实施的该专用策略文件和特征的各种示例。

7.D、将非受管应用程序修改为受管应用程序

现在将描述的系统和过程用于使诸如公司的IT部门成员的非开发者 能够基于特定应用程序或应用程序类型(例如,电子邮件应用程序、浏览 器等等)来增加或以其他方式修改诸如安卓、IOS或Windows移动应用程 序的现有移动应用程序。作为一个示例,系统和过程可用于基于企业内的 用户的角色创建不同版本的移动应用程序(具有不同的特权、访问权限等 等)。例如,可为不同的工作类型(例如,行政、非行政雇员、助理等等) 和/或不同的部门(销售、IT、人力资源等等)创建不同版本的移动应用程 序。该部分中所描述的过程可在应用程序修改或“封装”工具或者对使用 所公开系统的企业可用的实体中实施。例如,该实体可被托管在企业可访 问的服务器上(例如,作为web浏览器),或者可被提供到企业(例如, 作为PC应用程序)。

在典型的使用实例场景中,将要被修改的移动应用程序是用于特定企 业开发的自定义应用程序。然而,并非总是这样。例如,所公开的系统和 过程还可应用于在应用程序商店中可获得的商业上可用的移动应用程序。 可在不被具体地写入以支持或实现该修改的情况下修改移动应用程序。例 如,开发者不需要在应用程序中包括任何特殊代码或功能,以实现或促进 修改,并且不需要涉及所公开的修改应用程序的过程。

所修改的行为通常包括涉及标准API调用或类的行为或者含有该行 为。以下为可经由所公开的过程添加或修改的一些行为类型的示例:

1、可在诸如提供对机密公司数据访问的应用程序的特定移动应用程 序内禁用通常通过诸如安卓和IOS的移动设备操作系统提供的剪切和粘贴 能力。该行为改变可能是期望禁止雇员(或某些类的雇员)意外地或恶意 地将机密数据发送或移动到未授权位置。

2、可将以非加密格式存储其输出的移动应用程序修改为以加密格式 存储其输出。在一个实施例中,这部分通过修改移动应用程序的输入/输出 参考以使应用程序使用加密库对其写入到存储器或从存储器读取的数据 加密和解密来完成。还可植入代码,其使移动应用程序从企业代理获得密 钥,以用于对数据加密和解密。

3、可将使用某一级别或类型的加密的移动应用程序修改为使用不同 级别或类型的加密。例如,如果联邦政府要求企业开始使用特定的加密库, 则可修改现有的移动应用程序,以便有效地以新的一个加密库代替现有的 加密库。

4、企业可修改移动应用程序,以使其使用到企业的网络或企业系统 的特殊安全连接。例如,移动应用程序可被配置为使用如上所述的安全应 用程序隧道。

5、可修改移动应用程序,以添加登录或其他认证提示或屏幕。

6、移动应用程序可被配置为将关于其使用的数据记入日志和/或上报 关于其使用的数据。该数据可包括,例如使用的时间和持续时间、使用位 置(例如,基于GPS坐标)、所调用的应用程序特征、所访问的访问点等 等。(诸如安卓和IOS的现有移动设备操作系统,提供用于使应用程序能 够获得这些和其他类型的使用参数的功能)。企业可使用该使用数据,例 如,以监测雇员遵守企业的使用限制策略,以识别并纠正特定企业移动应 用程序的问题,或者确定是否继续为特定用户的应用程序许可支付。例如, 可通过企业代理1720将移动设备920上所收集的应用程序使用数据上报 到移动设备管理系统926,或一些其他系统,以用于分析。

7、可修改移动应用程序,以使企业能够远程地开始删除特定雇员的 特定移动设备920上的应用程序的数据,而不影响应用程序的其他用户。 如上所提及,例如,还可当用户未能输入有效企业口令阈值次数时,执行 该选择性擦除操作。

8、可修改移动应用程序,以使其可仅通过安全启动器1750B(图18) 启动,且不通过移动设备的操作系统的一般启动器来启动。例如,这可通 过改变移动应用程序中对移动操作系统的一般启动器的一个或多个参考 以使它们改为指向安全启动器来完成。如以上所解释,安全启动器可实施 一个或多个安全性策略,诸如在启动企业应用程序之前,要求输入有效口 令。安全启动器还可使企业应用程序在安全执行环境中运行,诸如通过使 用从移动操作系统的虚拟机分离的安全虚拟机(图18)来使企业应用程序 被执行(参见以下部分)。

9、可修改移动应用程序,以使其在安全虚拟机1750C(图18)中启 动。例如,这可通过修改应用程序中的参考(例如,在安卓应用程序的清 单中或以其中启动应用程序的任何方式)以使其在安全VM中启动来完成。 如在下面题为安全虚拟机的部分中所解释,安全VM可实施本文所描述的 客户端安全性功能(加密、应用程序隧道等等)中的一些,降低或消除将 该类功能添加到移动应用程序本身的需要。这可使企业应用程序能够在安 全执行环境中运行,而个人应用程序在默认VM中运行。

其他示例包括禁用离线访问,添加URL过滤、添加API过滤、禁用 写入本地存储器,以及防止文档在新的应用程序中被打开。

图19示出的是应用程序修改系统的一个实施例。根据该方面,系统 包括应用程序转换器1900,其使修改基于操作者选择的策略。例如,在完 成以下所述的过程之后,可修改应用程序,以在由EMM提供的对一个或 多个策略文件的控制下操作。也就是说,修改不必需实施具体策略,而是 修改能够根据一个或多个EMM策略文件运行的应用程序。在其他方面中, 可修改应用程序的源代码,例如,硬编码的,以永久地实施以上所描述的 一个或多个限制。

对于安卓应用程序,转换器1900接收应用程序的.APK(应用程序包) 文件,并输出表示经修改的应用程序的新的.APK文件。对于IOS,转换器 1900接收.IPA(iPhone应用程序存档)文件,并输出表示经修改的应用程 序的新的.IPA文件。可支持各种其他文件格式和移动设备操作系统。如图 19所示,应用程序转换器1900优选地包括反汇编程序1900A(用于反汇 编应用程序的可执行代码)、代码分析器/映射器1900B、代码修改器/植入 器1900C,和应用程序重建器1900D。

如图19所示,转换器1900访问策略库1902,其包含用于各种策略和 关联行为的策略描述,诸如以上所列出的那些。例如,可提供“禁用剪切 和粘贴”策略。可以用任何适当的语言和格式描述策略。例如,策略描述 可被存储为DEX或smail文件。如图19进一步所示,系统还包括控制接 口1904或“控制台”,其使管理者能够选择将被应用到给定移动应用程序 的策略或多个策略。控制台1904还可包括用于使管理者能够定义新策略 的工具。例如,可定义新策略,其添加认证序列、禁用剪切和粘贴,以及 使所有的文件以加密形式被存储。该策略然后可用作用于修改多个移动应 用程序的基础。

在典型的使用实例场景中,公司的IT部门的成员使用控制接口1904, 以执行以下操作:选择将被修改的移动应用程序、选择将被应用的策略或 多个策略,以及开始转换过程。然后将经修改的应用程序分发到相关雇员 或其他用户(例如,通过可通过企业代理访问的特定应用程序商店,如以 上所描述)。可以用不同的策略选择重复该过程,以为不同的用户创建不 同版本的应用程序。例如,策略库1902可包括策略文件,以用于实施上 述的一些或全部类型的策略(以及各种其他的)。

图20示出的是一系列的步骤,其可由转换器1900来执行,以基于所 选择一组一个或多个策略来修改安卓应用程序。类似过程可用于转换为诸 如IOS和Windows移动的其他操作系统所写入的应用程序。图20中所示 的整个过程优选地完全自动化,这意味着不要求人为干涉。在方框2000 中,打开.APK文件。如本领域中所已知的,该文件包含各种应用程序部 件,诸如应用程序的可执行代码、图象、XML文件、清单和其他资源。在 方框2002中,反汇编程序1900A反汇编应用程序的可执行代码,以生成 一个或多个文本smali文件。如将认识的是,中间语言而不是smali可用于 实施所公开的修改任务。

在方框2004中,分析器/映射器1900B分析并映射应用程序代码(以 smali格式),以生成关于将被潜在地代替的API调用的信息。在方框2006 中,以新的API调用代替相关API调用,以用于实施所选择的策略或多个 策略。另外,添加来自策略库1902的关联代码。例如,如果正在禁用剪 切和粘贴功能,则可移除或代替任何API调用,该API调用被应用程序用 来访问操作系统的剪切和粘贴功能。

作为一个示例,可生成新版本的Java I/O文件输入流 (Java.io.FileinputStream)类,并且对原始类的所有参考可被修改为指向该 新版本。例如,该新版本可包括用于分别对关于文件写入和读取操作的数 据加密和解密的代码。

在图20的方框2008中,如果适用,则可添加附加代码以实施一个或 多个特征或者不要求代替任何现有API调用的行为。作为一个示例,代码 可被添加用于使授权的管理者在用户专用的或移动设备特定的基础上来 远程触发存储在特定移动设备上的应用程序的数据的删除。在该示例中, 方框2008中所添加的代码将添加功能,以用于接收并处理包含命令的消 息,以便执行该选择性擦除或删除操作。

为了提供附加的安全层,可使用本领域中已知的模糊方法和功能使在 先前方框中修改的代码的部分模糊。使用模糊损害被添加到应用程序的其 他逆向工程安全性功能的能力。模糊可被应用到反汇编代码(例如,smali 代码),或者可被应用在不同级别处。

在图20的方框2010中,如果需要,修改应用程序的清单(例如, AndroidManifest.xml),以反映所修改的行为。作为一个示例,如果应用程 序被修改为在安全外壳中启动,则将修改清单以便指示安卓操作系统使用 安全外壳以启动应用程序。在一些实施例中,这包括以对安全启动器1750B (图18)的参考代替操作系统的一般启动器的参考。在方框2012中,所 修改的smali代码和清单以及其他被提取的应用程序部件被编译为新 的.APK文件。在方框2014中,使用数字证书签署该新的.APK文件。

可以用类似方式修改被写入用于IOS操作系统的许多应用程序。通常, 该应用程序被分布为IPA文件,其包括以Mach-O格式的可执行永久缺陷 表和资源。一旦已经对可执行反汇编以产生ARM组成代码时,则其被映 射以识别将被潜在代替的类,并然后通过以下方式进行修改:(1)识别一 个或多个将被代替的具体类,(2)添加/修改代码以代替该类(多个类), (3)调整类结构以反映修改,以使每个新类为原始代码的子类,以及(4) 更新参考以指向新的类或多个类。

根据可选方法,可使用有限的外部符号替换修改IOS应用程序。然后 可在再证实之前将动态链接库添加到应用程序包。随后,当执行应用程序 时(运行时间),初始化动态链接库,并因此,完成API截获。当使用SDK 途径用于递送iOS框架代码时,可在构建过程期间将相同的库静态地联接 到应用程序中,同时可通过编译指令覆盖少数的相关符号。API截获可通 过挂钩和代替系统功能再次发生在运行时。

在一些实施例中,上述过程可被增加一个或多个测试,以用于验证将 被修改的移动应用程序不包含恶意软件,或者不以其他方式呈现企业安全 性风险。一个该测试涉及生成一些或全部应用程序文件的散列,并然后将 该散列与和已知恶意软件关联的散列库比较。如果发现匹配(指示应用程 序可能包括恶意软件),则可终止应用程序修改过程。

另一个该测试涉及查看由应用程序作出的API调用和URL请求,以 检查可疑活动。可疑活动的示例包括读取设备上所存储的个人联系方式、 将电子邮件发送到云存储服务,以及在没有第一请求用户允许的情况下发 送位置信息。基于该分析,可生成分数(例如,1到100的范围),其表示 移动应用程序所造成的风险等级。如果该分数超过阈值,则可终止修改过 程。可在详述所检测的可疑活动的报告中附加地或可选地包括分数。例如, 应用程序修改工具可输出该报告以用于回顾,并且可提示管理者用户确认 或指示是否应继续进行修改过程。

例如,图19中所示的应用程序修改系统可在服务器、个人计算机、 工作站或其他计算机或公司的企业系统内的计算机的系统上实施。可选 地,应用程序修改系统可被实施为托管服务,其中公司客户经由互联网可 访问该托管服务。系统的各种部件1900-1904可被实施为存储在任何类型 的非暂时性计算机存储设备或系统上的代码模块。

可作为较大系统(诸如本说明书中其他部分中所描述的系统)的部分 将图19中所示的系统的部件1900、1902、1904提供到公司,以用于使公 司能够管理移动设备并能够保护由该设备访问的数据。例如,可用本公开 中所描述的各种其他部件捆绑和许可这些部件。可选地,可作为单机产品 或者作为由服务提供商托管以及经由网络访问的系统,将图19的应用程 序修改系统提供给公司。

使用以上所述的一个或多个方面,可使用应用程序专用策略保护邮件 /电子邮件应用程序。也就是说,一个或多个策略可基于通过邮件应用程序 提供的、在邮件应用程序内提供的或被提供到邮件应用程序的特征,而应 用到邮件应用程序。根据一个方面,策略可定义何时接受和/或拒绝包括被 执行的邮件消息的URL调度。根据另一个方面,策略可从单一登录服务 器(SSO)得到信息(例如,用户ID、句柄等等),以不需要与用户交互 而自动配置邮件应用程序。在该场景中,邮件应用程序可与客户端代理404 通信,创建微VPN或到网络服务器406的隧道,并且然后基于经由微VPN 接收的信息配置自身。

根据一些方面,可基于策略文件启用和/或禁用邮件工具。在一个示例 中,可基于策略启用/禁用联系方式共享。用户可被允许将联系方式导出到 其他受管应用程序,但不是导出到非受管应用程序。另外,用户可以能够 附上、打开、查看、访问、使用和/或导出仅到其他受管应用程序的、来自 其他受管应用程序的或其他受管应用程序内的附件,并且不被允许使用非 受管应用程序执行附件上的或具有附件的类似活动。

根据另一个方面,策略可以用于定义消息被保留多久以及何时删除消 息(例如,基于时间、大小、发送者、接收者等等)。策略还可被用于定 义存储。

8、网络和数据访问

8.A、微VPN/隧道技术

图21示出的是使电子移动设备能够经由每个应用程序策略控制的 VPN隧道技术安全地访问计算机化的资源的电子环境。云表示通信介质 (例如,无线计算机网络、互联网、蜂窝网络、其组合等等),其使电子 移动设备能够与远程访问点通信。

图22示出的是图21的电子移动设备的特定细节。如所示出,电子移 动设备包括用于用户输入/输出的用户接口、用于存储信息的存储器,和处 理电路等等。合适移动设备的示例包括智能电话、平板设备、电子笔记本 等等。而且,各种具体平台适用于使用,诸如那些运行通过苹果计算机提 供的iOS、谷歌提供的安卓和微软提供的Windows的平台是适合的。

在操作期间,移动设备在特定应用程序和远程访问点之间构建每个应 用程序策略控制的VPN式连接(例如,VPN服务器、网关和个体计算机 等等)。特别地,每个特定应用程序(即,具体配置的受信任应用程序) 能够协调与专门网络软件的操作,以便在该特定应用程序和远程访问点之 间构造专用隧道。

图23示出的是程序的流程图,其中当根据移动设备的存储器中所存 储的各种软件构造操作时,该程序由移动设备的处理电路执行。特别地, 程序使移动设备能够经由应用程序专用隧道访问计算机化的资源。

可在以上程序中采用各种认证技术。例如,在一些布置中,在初始认 证期间,将一组票据(或令牌)加载到移动设备中。该票据可以是一次性 的和/或基于时间的,并且将约束施加到某些应用程序、资源和/或特权(例 如,短暂访问对长期访问)。

在用户到远程访问点的认证期间,提供该类票据以便以透明的方式认 证用户。也就是说,从移动设备将一个或多个票据提供到远程访问点,以 尽量避免使用户承担重新认证的负担。尽管如此,应当理解的是随着时间 的推移,该票据可能到期。如果该票据在使用之前到期,则要求票据的操 作现在反而要求用户重新认证。

在一些布置中,组织访问控制,以使得安全性级别随着时间减小。例 如,实现高安全性的一些票据可首先到期(例如,在诸如一个小时、15分 钟等等的预定量时间之后)。实现较低安全性的其他票据可在后来的时间 里到期(例如,在诸如一天等等的随后预定量时间之后)。用于基于时间 施加不同安全性级别的其他基于票据的技术也适于使用。

企业可越来越对开发本机应用程序感兴趣,以用于诸如iOS、安卓和/ 或Windows手机和平板电脑的流行移动设备平台。该应用程序的一个要求 可以是,需要企业开发的应用程序能够从可能在任意处所的设备和用户来 访问公司内部网。

许多移动资源管理(MRM)方案(本文中也被称为EMM)提供虚拟 私有网络(VPN)方案,作为用于提供该访问的机制。然而,传统VPN 具有不好的一面,即在移动设备上运行的所有应用程序被授予对公司内部 网的统一访问。越来越多地,用于访问企业资源的移动设备是雇员所拥有 的并且未在EMM服务器登记,并且因此未紧紧地受公司IT部门控制或管 理。如此,当使用传统VPN软件时,存在在雇员自己的移动设备上运行 的恶意软件和其他未授权软件获得对公司内部网的访问的现实风险。

一些形式的EMM寻求管理整个移动设备。这通常被称为移动设备管 理(MDM)。和MDM不同,移动应用程序管理(MAM)方案仅寻求管 理企业应用程序以及可在雇员的移动设备上安装并运行的它们的关联数 据。该系统通常使用基于角色的访问以供应专门准备的企业应用程序,其 专门经设计保护公司资产。该应用程序可以是由企业管理者控制的策略, 并通常要求雇员登录到公司服务器,以便访问受管应用程序。

当移动设备直接连接到私有公司无线网络或LAN时,访问公司服务 器不是问题。但当雇员的设备连接到诸如3G/4G网络、基于家庭的WiFi 或其他公共访问点的外网时,在没有VPN的情况下对公司内部网的透明 网络访问是成问题的。然而,由于系统级别VPN将访问统一地给予所有 移动设备应用程序,因此受管企业应用程序的更好的方案是可被策略控制 的根据应用程序的VPN技术。在这种情况下,仅基于每个雇员在组织内 的角色,将VPN访问授予给具体用户以及他们专门准备的企业应用程序。 通过该根据应用程序的VPN连接,非企业应用程序将无法意识到或访问 公司内部网之内的资源。

某些实施例的目的是提供一种方法,其用于通过企业移动应用程序管 理系统递送的和管理的专门准备的企业应用程序,以便即使当移动设备连 接到公司LAN外部的外网时,也能利用VPN技术访问公司内部网资源, 并以企业分配的策略进行,其中该企业分配的策略基于他们在组织内的角 色,关于具体指定的用户限制具体制定的移动应用程序的该访问。

企业首先使用与它们所选择部署的移动应用程序管理方案关联的工 具或SDK创建(或修改)它们的本机移动应用程序。除了别的之外,该 步骤将一些专门的网络软件添加到应用程序,以使其将能够在认证用户和 应用程序之后作出通过公司网关设备的VPN式连接。

这些专门准备的企业受管应用程序然后被上传到企业应用程序商店, 以为组织的雇员基于他们在组织内的角色细读并选择安装。可选地,针对 已经利用公司EMM/MRM服务器登记他们的设备的雇员可将该应用程序 直接推送到移动设备,或者可通过其他应用程序等等从企业web站点、电 子邮件、公共网络存储、可移动媒介下载/安装该应用程序。

当用户(例如,雇员)在移动设备上执行受管应用程序时,用户通常 面临的挑战是认证用户的公司标识和密码以及通过公司策略指定的其他 因素。在已经认证用户和设备之后,系统的访问管理器部件验证用户有权 行使所涉及的应用程序,以及当使用该特定应用程序时,下载由企业管理 者已经为该用户建立的策略。这些应用程序策略通常被高速缓存并周期性 地更新,以确保与管理设置兼容。这些策略可仅在某些时间期间进一步限 制从某些网络、从某些地理位置以及仅从与所有组织安全性策略兼容的设 备到受管应用程序的访问。

假设建立了策略兼容并且允许应用程序运行,则当受管应用程序实际 上开始与网络API交互时,在应用程序准备阶段添加的专门网络软件检查 当前策略设置,以确定是否应允许网络访问。假设移动设备正在外网上运 行,并且企业管理者已经允许该用户对该应用程序的VPN访问,那么专 门网络软件初始化与公司网关服务的安全连接,认证使用链接到先前用于 登录和确认权利的相同凭证的票据或令牌的用户。如果该令牌/票据已经到 期,那么在允许对移动应用程序的VPN访问之前,用户可被要求再次认 证。在对网关认证之后,专门网络软件构造通过网关设备到达应用程序所 寻求访问的实际内部网资源的VPN隧道。然而和其他系统级别VPN方案 不同,该VPN隧道仅可用于该特定应用程序使用。

如果网络访问策略指示没有网络访问,那么专门网络软件可使网络 API连接失败。如果网络访问策略允许网络使用但不允许VPN访问,那么 直接将网络服务调用发送到移动设备平台网络服务,尽管设备所附接到的 本地网络而不是被隧道化回到公司内部网。附加网络策略可进一步约束公 司内网服务器的范围,其中通过IP地址、域名或主机名、端口/协议、 TCP/UDP等等可访问公司内网服务器。

传统系统级别VPN方案不区分受信任和不受信任的应用程序。通过 构建每个应用程序策略控制的VPN解决方案,企业可确保仅具体配置访 问场景中的授权用户的授权应用程序能够从外网访问公司内网资源。

另外,通过调整策略文件,企业可作出关于是否允许微VPN(有时也 被称为每个应用程序VPN)、不允许微VPN,或将来自具体受管应用程序 的隧道数据往返企业服务器的策略决定。每个微VPN和/或隧道可使用单 点登录(SSO)凭证以认证用户,并且可通过网关服务器406将通信引向 企业资源。使用SSO凭证,企业可确定用户具有或被授权有哪些证书,并 且可相应地响应于证书挑战。另外,移动设备404和/或网关服务器406可 基于策略信息和/或基于与用户/设备关联的证书截获网络流量,以及/或者 可借助看到网络级别会话来响应于认证挑战。在一个示例中,可在移动设 备端点处截获网络流量,并且受管应用程序可检索适当的认证证书(例如, 基于企业策略)并供应给其试图访问的企业资源。

以上提供的描述可象征性地讨论应用程序的特定操作(例如,当应用 程序执行操作时)。然而,当执行应用程序时,实际上可执行操作的是移 动设备的处理电路。

8.B、使用安全容器控制对企业资源的访问

用于管理用于在移动设备上存储数据的加密数据保险库的改善技术, 包括根据特定于该应用程序的企业生成的策略来指导来自在移动设备上 运行的应用程序的读取和写入操作,其针对通过读取和写入操作指定的数 据指定加密保险库。

返回参考图8,其示出的是其中可实践其实施例的说明性环境,诸如 智能电话、平板电脑、PDA等等的移动设备810,已经在其上安装了各种 移动应用程序。移动应用程序包括可被企业管理的受管应用程序822、824 和826的一组820,以及不受企业管理的个人应用程序830。在一些示例 中,企业移动性管理(EMM)客户端840也安装在移动设备810上。在本 文也被称为“代理人”的EMM客户端840被配置例如经由诸如互联网的 网络与EMM服务器850连接,该EMM服务器850通常包括认证服务器 852、应用程序商店854和密钥服务器856。EMM客户端840的示例是可 用于思杰(Citrix)的客户端代理。EMM服务器850的示例是网关服务器 406,其提供对企业资源和/或云资源的访问。

所示出的移动设备810还包括共享数据保险库842。共享数据保险库 842包括对于受管应用程序组820中的每个可访问的加密文件和/或数据对 象。加密数据保险库842还可在本文中被称为安全永久存储区域。

受管应用程序组820中的每个应用程序与各个策略关联。例如,应用 程序822与策略822a关联、应用程序824与策略824a关联,以及应用程 序826与策略826a关联。在一些示例中,以诸如XML或JSON文件的文 件形式提供策略822a、824a和826a,其中各个策略被表述为一组密钥/值 对。在示例中,策略822a、824a和826a中的每个包括受管应用程序组820 内的所有应用程序的记录,如以上所讨论。

在一些示例中,受管应用程序组820中的每个应用程序还与各个私有 应用程序保险库关联。例如,应用程序822与私有应用程序保险库822b 关联、应用程序824与私有应用程序保险库824b关联,以及应用程序826 与私有应用程序保险库826b关联。私有应用程序保险库822b、824b和826b 的加密密钥以及共享保险库842的加密密钥从EMM服务器850上的密钥 服务器856获得,并且可被暂时地保持在移动设备内。

受管应用程序组820中的每个被专门设计或修改用于与企业使用。可 为企业专门设计受管应用程序组820中的一些。受管应用程序组820中的 其他应用程序是更广泛使用的应用程序(例如,公共可用),其已经被专 门地修改为用于企业使用。应用程序组820中的每个包括植入代码,其使 应用程序能够遵守企业的框架。可使用SDK将植入代码编译到应用程序 中。可选地,可作为围绕通用应用程序的封套应用植入代码,以将其修改 用于企业使用。在本文所公开的改善的背景中,植入代码用于将用于从应 用程序读取和写入的API调用转向其关联策略,以使根据策略的设置将读 取或写入请求重定向到指定的安全保险库。

在典型操作中,移动设备810的用户开启EMM客户端840,经由认 证服务器852登录到EMM服务器850,并访问应用程序商店854。用户然 后可仔细查看从应用程序商店854可获得的企业应用程序,选择所需应用 程序,并将它们下载到移动设备810,其中所下载的应用程序被包括在受 管应用程序组820中。对于每个所下载的应用程序,还可将相应策略下载 到移动设备,并更新组820中的所有应用程序的策略以反映组820的所有 成员。

在示例中,周期性地和/或响应于特定事件(诸如每次开启各个应用程 序以及/或者每次用户登录到EMM服务器850时)刷新策略(例如,822a、 824a和826a)。因此,随着时间的推移可修改策略并从EMM服务器850 将其动态地传递到移动设备810。

根据策略822、824和826的设置,受管应用程序组820内的应用程 序可被约束为仅与组820内的其他应用程序交换文件和/或数据。例如,通 过应用程序922的植入代码截获指定文件读取或写入的来自应用程序822 的API调用。读取策略822a,并根据策略822a中的设置将所指定的读取 或写入操作转向加密保险库(例如,私有保险库822b或共享保险库842)。

在一些示例中,可将移动设备810上的受管应用程序组820中的应用 程序分配到不同的群组。在这种情况下,更新策略(例如,822a、924a和 826a)以包括群组和群组成员的记录。因此,可进一步将应用程序之间的 文件和/或数据流限制到特定群组的成员。例如,每个群组可被提供其自己 的共享保险库942。假设受管组820内的移动应用程序的不同群组可有助 于从处理较低敏感数据的那些应用程序分离处理较高敏感数据的应用程 序。

可在许多情况中执行截获API调用、咨询应用程序的策略,以及基于 策略允许、阻碍或重定向由API调用指定的操作的上述过程。在一个示例 中,以上过程可被应用于选择移动设备810上的一组应用程序,其可用于 打开文件或者由链接或图标(例如,使用打开为)识别的数据元素。在另 一个示例中,以上过程可被应用于从一个应用程序复制数据或数据对象以 及(例如,经由隐藏、加密的粘贴缓冲器)将数据或数据对象粘贴在另一 个应用程序中。在另一个示例中,以上过程可被应用于将文件移动到所保 护的文件保险库和/或移动出所保护的文件保险库,如本文所描述。本质上, 用于将数据移动到应用程序和/或移动出应用程序的任何操作可使用以上 技术。

图24以附加细节示出的是移动设备2410的各种特征。这里,应用程 序2422(表示受管组820中的任何应用程序)将读取操作2410和写入操 作2412分发到移动设备2410上的永久空间。在非受管应用程序中,该读 取和写入操作通常将被指向应用程序的沙盒。然而,这里,读取和写入操 作被策略感知截获层2420截获并被指向适当的加密保险库。对于读取操 作2410,策略感知截获层2410查看将被读取的数据类型并咨询策略2422a。 如果策略2422a指定所识别的数据类型被存储在私有应用程序保险库 2422b中,则策略感知截获层2420从私有应用程序保险库2422b获得数据。 然而,如果策略2422a指定所识别的数据类型被存储在共享数据保险库 2422中,则策略感知截获层2420从共享数据保险库2422获得数据。策略 感知截获层2420然后对数据解密(使用来自EMM服务器2450的加密密 钥)并将数据返回到应用程序2422。

在写入操作2412的情况下,策略感知截获层2420查看将被写入的数 据类型并咨询策略2422a。如果策略2422a指定所识别的数据类型将被存 储在私有应用程序保险库2422b中,则策略感知截获层2420对数据加密 并将数据存储在私有应用程序保险库2422b中。然而,如果策略2422a指 定所识别的数据类型将被存储在共享数据保险库2422中,则策略感知截 获层2420对数据加密并将数据存储在共享数据保险库2442中。

返回参考图17-18,在一些实施例中,移动设备1720可包括安全文档 容器或安全存储区域1736,其可被称为“保险库”或称为“容器”。如本 文所解释,容器1736可帮助防止企业信息被传播到移动设备1720的不同 应用程序和部件以及其他设备。企业系统(其可部分或完全地在云内)可 将文档传输到设备1720,其可被存储(例如,通过企业代理1720)在容 器1736内。容器1736可防止未授权应用程序1718和设备1720的其他部 件访问容器1736内的信息。对于允许用户使用他们自己的移动设备1720 进行访问、存储和使用企业数据的企业,在设备1720上提供容器1736以 有助于保护企业数据。例如,在设备1720上提供容器1736可使企业数据 集中在每个设备1720上的一个位置中,并且可便于企业数据从设备1720 的选择性删除或完全删除。

如本文上下文中所使用,“文档”可包括任何计算机可读文件,包括 文本、音频、视频和/或其他类型的信息或媒介。文档可包括这些媒介类型 中的任何单一一个或组合。

安全文档容器1736可包括实施文件系统1738的应用程序,该文件系 统1738存储文档和/或其他类型的文件。文件系统1738可包括移动设备 1720的计算机可读存储器的部分。文件系统1738可从移动设备1720的计 算机可读存储器的其他部分逻辑分离。以这种方式,可将企业数据存储在 安全文档容器1736中并且可将私有数据存储在移动设备1720的计算机可 读存储器的分离部分中。容器1736可允许企业代理1720、移动设备应用 程序1718和/或设备1720的其他部件从文件系统1738读取、向文件系统 1738写入以及/或者从文件系统1738删除信息(如果被授权这么做)。从 容器1736删除数据可包括删除存储在容器1736中的实际数据、删除存储 在容器1736中的数据的指针、删除用于对存储在容器1736中的数据解密 的加密密钥等等。可通过例如代理1720、企业系统的IT管理者或设备1720 制造商来安装容器1736。容器1736可使存储在文件系统1738中的企业数 据中的一些或全部能够被删除,而不修改存储在容器1736之外的移动设 备1720上的私有数据。文件系统1738可便于数据从文件系统1738选择 性删除或完全删除。例如,企业系统的部件可基于例如编码规则从文件系 统1738删除数据。在一些实施例中,代理1720响应于从企业EMM系统 接收删除命令,来从文件系统1738删除数据。在其他实施例中,例如, 如果未提供代理1720,则在没有代理1720的帮助下删除数据。

安全文档容器1736可包括访问管理器1740,其管理通过应用程序 1718和移动设备1720的其他部件对文件系统的访问。可基于存储在文档 和/或文件系统1738中的文档访问策略(例如,编码规则)管理对文件系 统1738的访问。文档访问策略可基于以下内容限制对文件系统1738的访 问(1)哪个应用程序1718或设备1720的其他部件正在请求访问,(2) 正在请求哪些文档,(3)时间或日期,(4)设备1720的地理位置,(5) 请求应用程序1718或其他部件是否提供正确的证书或凭证,(6)设备1720 的用户是否提供正确的凭证,(7)其他条件,或它们的任何组合。例如, 用户的凭证可包括密码、安全性问题的一个或多个回答(例如,你高中学 校的吉祥物是什么?)、生物识别信息(例如,指纹扫描、眼睛扫描等等) 等等。因此,通过使用访问管理器1740,容器1736可被配置为仅由被授 权访问容器1736的应用程序1718访问。作为一个示例,访问管理器1740 可使安装在移动设备1720上的企业应用程序能够访问存储在容器1736中 的数据,并防止非企业应用程序访问存储在容器1736中的数据。

关于文档访问的时间和地理限制可能是有用的。例如,企业管理者可 采用文档访问策略,其将(存储在容器1736内的)文档的可用性限制到 指定的时间窗口和/或地理地区(例如,如通过GPS芯片1716所确定), 其中设备1720必须驻留在该地理地区内以便访问文档。而且,当指定的 时期到期或者如果移动设备1720被带到所定义的地理地区以外时,文档 访问策略可指示容器1736或代理1720从容器1736删除文档或者以其他 方式使它们不可用。

一些文档可具有访问策略,其禁止将文档保存在安全文档容器1736 内。在该实施例中,文档可用于仅当用户登录到企业系统时在移动设备 1720上浏览。

访问管理器1740还可被配置为在远程设备(例如,企业资源或其他 企业服务器)和容器1736之间实施某些模式的连接性。例如,访问管理 器1740可要求通过应用程序隧道传输通过容器1736从远程设备接收的文 档以及/或者从容器1736被发送到远程设备的文档,例如,如上所述。该 应用程序隧道可使用企业系统的隧道中介。访问管理器1740可要求对被 传输到容器1736以及从容器1736传输的所有文档加密。企业代理1720 或访问管理器1740可被配置为对从容器1736发送的文档加密,并对发送 到容器1736的文档解密。还可以用加密形式存储容器1736中的文档。

安全文档容器1736可被配置为防止文档或包括在文档内的数据被未 授权的应用程序或移动设备1720或其他设备的部件使用。例如,可对被 授权访问来自容器1736的文档的移动设备应用程序1718编程,以防止用 户复制文档的数据并将其粘贴到另一个文件或应用程序接口中,或者将文 档或文档数据本地保存为容器1736之外的新文件。类似地,容器1736可 包括文档阅读器和/或编辑器,其不允许该复制/粘贴和本地保存操作。而 且,访问管理器1740可配置为防止该复制/粘贴和本地保存操作。此外, 被编程及被授权访问来自容器1736的文档的容器1736和应用程序1718 可被配置为防止用户将该文档附到电子邮件或其他形式的通信。

移动设备应用程序1718可被编程为查找和寻找安全文档容器1736(或 安全web浏览器1732,如下面所述,其包括容器1736),作为移动设备1720 的资源。在某些实施例中,应用程序1718可在安全虚拟机中运行,该安 全虚拟机从移动设备1720的操作系统的虚拟机分离。根据一些其他实施 例,应用程序可在安全web浏览器1732内运行。应用程序1718可被编程 为将仅企业相关数据写入到容器1736。例如,应用程序1718的源代码可 被提供容器1736的资源名称。类似地,远程应用程序(例如,企业资源 830)可被配置为仅将数据或文档发送到一个或多个移动设备1720的容器 1736(与设备1720的其他部件或存储器位置相对)。将数据存储到容器1736 可自动发生,例如,在应用程序1718、企业代理1720或web浏览器1732 的控制下。应用程序1718可被编程为对存储在容器1736内的文档或将被 存储在容器1736内的文档加密或解密。在某些实施例中,容器1736可仅 由该应用程序(在设备1720上或远程)使用,其被编程为寻找并使用容 器1736,并且其被授权这么做。

安全文档容器1736可用作被发送到移动设备1720的文档和其他文件 的暂时资料库。远程应用程序可被配置为在一次性或周期基础上将文档发 送到容器1736(例如,经由应用程序隧道)。例如,销售相关企业资源930 可被编程为每天早上将销售相关文档(例如,最近的价格单)发送到具有 销售相关角色的用户(例如,销售人员)的团队的容器1736。销售相关文 档可具有文档访问策略,以使文档将在某一时间处或在预定义事件(例如, 用户打开文档)处开始的时期到期时自毁(例如,从容器1736自动删除- 例如,通过容器1736本身或企业代理1720执行删除)。可(例如,在移 动设备管理系统内)提供文档分配策略文件(例如,编码规则,如本文所 描述),以控制远程应用程序(例如,企业资源)何时以及如何将文档发 送到容器1736、将文档发送给哪些用户、对文档的使用和可用性有什么限 制(例如,时间或地理限制)(例如,以如上所述的文档访问策略的形式) 等等。

将文档发送到移动设备1720的一个或多个安全文档容器1736的远程 应用程序可被配置为与其他资料库整合,以用于将文档从该资料库发送到 容器1736的目的。例如,可在企业系统(例如,诸如微软SharepointTM 资料库的企业文档资料库)内或在云计算系统(例如,Box.netTM资料库) 中存储该其他资料库。

EMM解决方案通常采用通过移动设备管理(MDM)服务器管理整个 移动设备的途径。越来越多的EMM解决方案关注移动应用程序管理 (MAM)解决方案,其仅寻求管理企业应用程序以及可在雇员的移动设 备上安装和运行的它们的关联数据。该系统通常使用基于角色的访问,以 供应被专门设计保护公司资产的专门准备的企业应用程序。该应用程序通 常要求雇员登录到公司服务器,以便访问受管应用程序。此外,该应用程 序可与由企业管理者建立的策略关联,以控制应用程序访问,同时也寻求 保护和控制应用程序所持有的信息。

管理另外非受管移动设备上的受管企业应用程序的最大挑战之一为 确保通过受管应用程序使用的信息不会从受信任的企业应用程序组逃脱, 其中IT管理使该受信任的企业应用程序组对他们的企业用户可用。信息可 以以任何数目的方式逃脱,并且健壮EMM系统将提供策略和实施机制, 以防止该信息泄露,其中IT管理者认为其合适,以及在适当的情况下提供 策略覆盖。然而,即使具有健壮的信息包含策略组,仍存在对通过移动设 备上的应用程序管理的信息安全性的其他威胁。

一个该种威胁为应用程序可通过将文件或其他数据写入到闪存或设 备上的其他永久存储设备,在移动设备上永久地存储一些信息。许多移动 平台将把通过应用程序记录的永久数据隔离为私有应用程序沙盒。然而, 能够进行设备生根或越狱的普通工具容易使该沙盒化失败。生根和越狱为 进行以下操作的技术:通常使应用程序沙盒化、应用程序整合检查和其他 OS提供的安全性机制失败的目标来寻求代替移动设备操作系统平台的部 分。大多数流行移动平台的生根工具包和越狱软件在公共互联网上可容易 地获得,并且可易于使用。由于生根和越狱如此容易实现,因此大多数企 业不希望依赖移动设备OS实施的沙盒作为保护应用程序可能需要存留的 数据的唯一手段。

一些移动设备平台附加地允许将以其永久形式加密的信息和一些应 用程序利用这些特征的优点。常常,该加密机制依赖被保持在设备本身上 的加密密钥,其中通过用户供给的PIN或口令保护密钥它们本身。密钥被 保持在设备上并且由弱密码因素保护的事实意味着数据未被特别好地保 护以免受黑客行为,特别是如果设备被偷且黑客有足够的时间来试图对密 钥解锁。而且,由于密钥占有设备持有者,因此企业无力移除它们或者撤 销被终止雇员的访问,除非它们可恢复设备。

出现在移动平台上的应用程序沙盒化的另一个问题在于,具有文档的 单一资料库是有问题的,其中文档的单一资料库对移动设备上的所有受管 应用程序是可用的,以及与基于云的存储设备的潜在的同时离线。围绕沙 盒的移动应用程序工作以各种方式限制,其中所有限制都具有缺点。通常, 它们将与其他应用程序交换某些固定类型的文件,该其他应用程序已经注 册了以接受某些那些相同类型。此处的缺点为一个人在每个应用程序的沙 盒中以多个特定文件的副本结束。如果一个或多个应用程序希望编辑文本 内容,则保持跟踪哪个应用程序具有最新的版本对于用户来说是有问题 的。

如果用户被培训为总是将他们所修改的文档发送回到共同的同步代 理应用程序,则一个人可克服以上突出的问题,其中该共同的同步代理应 用程序也可装载有进/出基于云的存储设备的同步文档。基于云的文件共享 服务移动应用程序为一应用程序的示例,该应用程序允许与基于云的同步 的该种类的数据交换。此处的缺点为这些额外步骤容易遗忘。此外,当使 用等效桌面应用程序时,不要求它们,其中该等效桌面应用程序在所有应 用程序的共享文档夹的概念上操作。这两个事实可导致数据文件一致性问 题,以及如果用户未被恰当的培训,将导致不好的用户体验。

该问题的另一个途径为保存文件,该文件为一个人希望共享到支持该 概念的那些移动平台上的共享存储设备中。这具有不好的一面,即共享存 储设备为世界可读的并因此与所有应用程序共享。一旦信息被放置到共享 存储设备中,由于移动设备上的任何应用程序可读取它,因此失去了对信 息密封。而且,任何通过获得到对备的物理访问的人,可使用标准文件阅 读器和开发工具来轻松地访问数据。

通过引入加密文件保险库的概念克服以上突出的信息密封和受信任 应用程序之间的文档共享的挑战。加密文件保险库为逻辑容器,其中通过 移动应用程序读取/写入的所有持久性数据(其将以其他方式在应用程序沙 盒的可写入文件中结束)将被重定向到该逻辑容器中。保险库的内容它们 自身被写入到被保持在应用程序沙盒之内的文件中。但所有文件的内容和 文件元数据本身(名称、大小、访问时间等等)都被加密。

强加密算法(例如,被证实的FIPS 140-2)被用于利用密钥保护放置 到保险库中的所有信息,其中密钥受企业管理而不是受用户他们自己管 理。通常将基于用户的元组、设备和应用程序或应用程序群组分配密钥。 这暗示着用户、设备和应用程序/应用程序群组的每个唯一的组合使用不同 的密钥组。在企业密钥管理服务器中,密钥被脱离设备维护。可将密钥暂 时地下载到移动设备以启用数据访问,但仅在强认证所提及的用户、设备 和应用程序之后。

可以用其意识到文件保险库服务的存在的该种方式写入应用程序。以 该意识写入的应用程序可利用任何数目的文件保险库,其中它们可以用保 险库名称标识符明确地进行识别。然而,应用程序将不总是以该种意识写 入。相应地,管理者定义的策略可被用于针对每个应用程序配置默认文件 保险库。应用程序的默认文件保险库用于所有应用程序文件I/O的透明重 定向,该所有应用程序文件I/O将以其他方式在应用程序沙盒或共享存储 设备的可写入部分内结束。

用于将应用程序分配到默认文件保险库的典型机制指示管理者通过 策略将每个配置的移动应用程序放置到名为安全性群组中。然后共享相同 安全性群组的所有应用程序继承相同的默认文件保险库。以这种方式,应 用程序不仅为它们的数据获得加密容器的安全性,而且被配置具有相同默 认文件保险库的应用程序将看到它们的数据与其他类似配置的文件应用 程序共享的单一一致视图。

应注意的是,不是应用程序沙盒中的所有可写入区域都适合与其他应 用程序共享,例如应用程序的/tmp目录。此处的含意为总存在应用程序私 有文件保险库,其将用于保持某些文件和目录。如果应用程序未被配置到 共享群组中,那么将所有文件重定向到应用程序私有保险库。然而,如果 应用程序被配置到共享群组中,则将文档和其他这种文件重定向到共同保 险库,但被指定用于如/tmp的特定私有目录的文件将继续流向应用程序的 私有保险库。

还应注意的是,共享文件保险库的概念确实意味着存在共同代理人, 该共同代理人代表所有的应用程序管理共享文件。没有该种代理人,一个 人将不能够透明地共享文件。而这种代理人可以是不存在于移动设备本身 上的网络附接服务,该设计将排出对加密文件保险库的离线访问。为此, 安装在移动设备上的另一个应用程序通常将充当该角色。如思杰(Citrix) 客户端代理移动应用程序的EMM客户端代理将s是该共享保险库代理人 的典型主机。

因此,以上所述的技术提供透明文件访问、利用受企业管理的密钥的 强加密,以及通过策略动态重配置保险库的唯一组合。

企业可使用与它们所选择部署的企业移动性管理(EMM)解决方案关 联的工具和SDK创建(或修改)它们的本机移动应用程序。在为EMM部 署准备它们的应用程序中,它们当然有自由(重)写入特定应用程序逻辑, 以针对它们的应用程序的需要,利用EMM开发者SDK所曝露的加密文件 保险库服务。然而,很多时候,将已经写入应用程序,以使用为其开发应 用程序的平台的标准文件系统API。如此,如果EMM SDK和工具可透明 地将这些本机文件访问服务重定向到通过管理策略而不是重写它们的应 用程序指示的一个或多个文件保险库,则这对于应用程序开发者来说更加 方便得多。该途径还允许管理者重配置目标文件保险库,而不直接修改和 重新编译应用程序。

当采用该途径时,应用程序开发者不需要担心关于如何与本机文件保 险库服务接合的细节。相反,通过将头文件、库、和EMM系统框架代码 的运行时支持与应用程序整合,可将通过应用程序调用的所有文件系统 API重定向到策略感知截获层。假设配置了加密文件保险库特征,则基于 针对当前用户、设备和应用程序实施的策略,选择一组默认文件保险库且 文件系统API截获层经将被配置为把它们定为目标。

在为具体EMM系统准备应用程序之后,将受管应用程序上传到EMM 服务器,以用于发布应用程序以使企业用户消费的目的。作为该应用程序 发布工作流程的部分,IT管理者将选择应用到应用程序和关联的用户角色 的策略及设置。一旦被上传并被配置,应用程序对组织的雇员是可用的, 以基于他们在组织内的角色仔细查看和安装。可选地,可为已经用公司 EMM服务器登记他们的设备的雇员将该应用程序直接推送到移动设备。

当用户执行移动设备上的受管应用程序时,用户通常面临的挑战是认 证他们的公司标识和密码以及通过公司策略指定的其他因素。在已经强认 证用户、设备和应用程序之后,系统的访问管理器部件验证用户有权行使 应用程序,并为该特定应用程序和用户下载所配置的策略。

基于那些策略,被递送有受管应用程序的EMM框架配置其本身。其 将选择一个或多个默认文件保险库,以使用并配置文件系统API截获层, 以便把所选择的保险库定为目标。如果还不存在被配置的文件保险库,则 初始化新的空保险库。这确保将选择非先前使用的保险库的文件保险库策 略中的改变在应用程序看起来好像其最近已经被安装一样(例如,空的可 写入目录)。

当应用程序开始利用文件系统API时,文件系统API截获层寻找交叉 应用程序沙盒或共享存储设备的可写入部分的文件访问。该文件由文件系 统截获层标记和跟踪,以使得所有随后的文件I/O在被放置到保持数据的 真实文件容器之前经过加密/解密。

为了完成该加密,首先需要恢复所要求的密钥。这些是从密钥管理服 务器检索出的并被本地高速缓存的。如果这是长时间里对所保护文件的首 次访问,则将通过登录到EMM服务器迫使用户进行强认证。定期地,将 需要如通过时间所指示地刷新这些密钥,以适应密钥的策略设置。当刷新 时,只要用户保持有效登录EMM服务器,则可在没有用户交互的情况下 发生该密钥的刷新。如果用户注销或他们的登录会话到期,那么将需要再 次强认证密钥的刷新。

当文件保险库对应用程序是私有的时,文件保险库服务层直接使用移 动平台的文件I/O功能,读取和写入数据的加密版本。而且,还类似地截 获所有文件目录访问功能,以使可隐藏真实文件名称和大小。

为了支持对加密文件内的任何范围的字节的随机访问,可使用利用加 密块的方案。为了出现这种情况,可从基本密钥和文件/块偏移数学上地得 到用于对每个文件块加密/解密的密钥。类似地,不同的文件也将使用密码 学的初始化向量。这些技术代表使用单组密码学密钥的编码加密文件卷的 可靠的且合理的标准实践。

出于效率考虑,系统可先读或延迟将数据写入为加密数据内容,这是 最优化应用程序性能所必需的。必须在关闭文件或退出应用程序之前划掉 加密数据的延迟写入。

当将与另一个应用程序共享文件保险库时,使用以上所述的相同过 程,但它们必须在共同文件系统代理人应用程序的控制下在共同文件系统 资料库中发生。这意味着当文件系统截获层在共享文件保险库中操作时, 将不通过直接读取/写入加密数据而是通过经由远程过程调用机制将这些 服务重定向到代理应用程序来操作文件保险库服务。在代理应用程序内, 用于私有保险库文件的相同本地文件保险库服务被用于共享保险库内容。

存在用于实施共享保险库的其他可能设计。例如,一个人可使用共享 存储设备,其与过程间同步机制联结以协调访问。但在任何可行的设计中, 要注意的关键因素为相同的潜在加密文件保险库服务用于对实际的文件 数据加密,而不管将在哪保留加密数据或如何协调对其的并行访问。

通过利用由企业服务器管理的密钥提供强而透明的文件加密服务,可 使通过受管移动应用程序保持的且本地存储的信息的安全性安全,而不需 要重写应用程序以使用新的文件访问范例。

添加允许多个应用程序绑定到相同默认文件保险库的策略指示文件 保险库配置的概念,进一步允许在正确配置的受管应用程序之间安全共享 文档。

可通过公司或其他企业使用本文所描述的体系结构,以灵活地实施策 略,诸如公司拥有的设备、BYOD(带你自己的设备)策略,以允许企业 用户使用他们的移动设备安全地访问企业资源(文档、机密数据、公司应 用程序和数据库服务器等等)。这通过各种安全性特征完成,例如,该安 全性特征使企业能够指定并实施用于控制移动设备对特定企业资源访问 的策略。例如,策略可基于多种准则控制移动设备对企业资源的访问,诸 如各个用户的角色(例如,用户在哪个部门)、移动设备的配置(例如, 是否安装了任何黑名单移动应用程序)、被记入日志的用户行为、移动设 备的位置,以及/或者其中请求访问企业资源的时间。在一些实施例中,体 系结构通过创建应用程序隧道进一步增强安全性,该应用程序隧道使企业 移动应用程序能够经由网络安全地与企业系统通信。体系结构还可使IT 职员能够选择性地(和远程地)擦除用户的移动设备的企业应用程序和公 司数据,例如,当用户停止雇佣或违反公司策略时(诸如如果他们对他们 的设备进行越狱或以其他方式在不允许配置中使用它)。

针对企业应用程序使用密码(或其他类型的认证信息)降低企业资源 被不正确访问的可能性,例如,当移动设备丢失或被偷时,或者当雇员的 孩子使用移动设备玩游戏时。在一些实施例中,安全启动器(或安装在移 动设备上的另一个部件)通过执行移动设备的选择性擦除进一步降低该风 险,例如,当用户试图但未能输入有效口令达连续次数的阈值(例如,5 或10)时。选择性擦除操作从移动设备删除企业应用程序中的一些或全部 以及关联数据,而不删除任何个人应用程序或数据,在一些实施例中,企 业的IT部门可通过远程地将擦除命令发到设备,以开始对特定移动设备的 选择性擦除。

在一些实施例中,当执行选择性擦除操作时,从移动设备删除存储在 安全容器中的文档和数据中的一些或全部,或者以其他方式使其不可访 问。

在另一个示例中,元应用程序可被配置为至少部分基于其中“擦除” 移动设备(例如,删除存储在设备上的一些或全部数据或者从设备移除软 件应用程序)的次数创建网关规则。

现在将描述系统和过程,其用于使诸如公司的IT部门成员的非开发者 能够增加或以其他方式修改诸如安卓、IOS或Windows移动应用程序的现 有移动应用程序的行为。作为一个示例,系统和过程可用于基于企业内的 用户的角色,创建不同版本的移动应用程序(具有不同的特权、访问权限 等等)。例如,可为不同的工作类型(例如,行政、非行政雇员、助理等 等)和/或不同的部门(销售、IT、人力资源等等)创建不同版本的移动应 用程序。该部分中所描述的过程可在应用程序修改中或在“封装”工具中 或者在对使用所公开系统的企业可用的实体中实施。例如,该实体可被托 管在企业可访问的服务器上(例如,作为web服务),或者可被提供到企 业(例如,作为PC应用程序)。

在典型的使用实例场景中,将要修改的移动应用程序是被开发用于特 定企业的自定义应用程序。然而,并非总是这样。例如,所公开的系统和 过程还可应用于在应用程序商店中可商业上获得的移动应用程序。可在不 被具体地写入以支持或实现该修改的情况下修改移动应用程序。例如,开 发者不需要在应用程序中包括任何特殊代码或功能,以实现或便于修改, 并且不需要涉及所公开的修改应用程序的过程。

被修改的行为通常包括涉及标准API调用或类的行为或者含有该行 为。以下为可经由所公开的过程添加或修改的行为类型中的一些示例:

可修改移动应用程序,以使企业能够远程地开始删除特定雇员的特定 移动设备上的应用程序的数据,而不影响应用程序的其他用户。如上所提 及,例如,还可当用户未能输入有效企业口令达阈值次数时,执行该选择 性擦除操作。

如果适用,则可添加附加代码,以实施一个或多个特征或者不要求代 替任何现有API调用的行为。作为一个示例,代码可被添加用于使授权的 管理者能够在特定用户或特定移动设备的基础上来远程触发存储在特定 移动设备上的应用程序的数据的删除。在该示例中,所添加的代码将添加 功能,以用于接收并处理包含命令的消息,以便执行该选择性擦除或删除 操作。

图54示出的是用于管理通过移动设备访问企业存储器的说明性方法, 如以上所述。最初,在步骤5401中,可在移动电子设备上接收和/或安装 受管应用程序。在步骤5403中,设备可分离地和/或明确地接收一个或多 个策略文件,其例如基于以上所述的一个或多个特征,定义受管应用程序 的一个或多个操作限制和/或行为限制。尽管策略文件可作为分离文件被选 择地接收,但是策略文件可作为相同通信或安装过程的部分接收,如同受 管应用程序那样。

在步骤5405中,移动设备根据策略文件执行受管应用程序。也就是 说,移动设备安全性管理器(或等效过程)限制如通过一个或多个策略文 件定义的受管应用程序的操作。在步骤5407中,在受管应用程序的操作 期间以及基于一个或多个策略文件,可限制受管应用程序访问企业数据存 储设备,其中如果未实施策略文件,其可能已经以其他方式被允许或被禁 止。以上讨论了可被限制/实施的该策略文件和特征的各种示例。

8.C、单点登录和身份管理

根据基于策略的设备管理的一些方面,EMM控制器可基于企业级别 认证合并单点登录(SSO)特征。单点登录通常是指多个相关但独立的软 件系统的访问控制的属性。在启用SSO的情况下,用户登录一次并获得到 所有系统的访问,而不被提示再次登录每个分离的软件系统。使用经由网 络代理的认证,EMM服务可提供各种形式的联机认证挑战,以提供无缝 SSO,例如,NTLM、Kerberos、摘要、证书等等。例如,如果认证挑战经 由HTTP到达,则网关可拦截挑战并自动地代表用户响应。然而,如果要 求证书,则证书通常由客户端发起以响应于认证挑战。

鉴于以上情况,一个或多个策略文件可定义环境,其中在该环境下, 在那些策略文件的控制下或根据那些策略文件操作的一个或多个应用程 序可以或不可以使用SSO服务,以避开认证或安全性挑战。

图25示出具有客户端设备2505、代理设备2510、资源2520和/或认 证服务2515的说明性系统,其可被配置为执行SSO并在一个或多个策略 文件的控制下操作。图26示出客户端设备2505和代理设备2510的说明 性详细视图。这些元素可实施本文所描述的一个或多个方面。现在将提供 这些方面的简要总结,其中下面提供了附加示例。客户端设备2505可使 用代理设备2510与一个或多个资源2520和/或认证服务2515通信。在一 些方面中,客户端设备2505可不被配置为直接与资源2520和/或认证服务 2515通信。例如,客户端设备2505和资源2520可使用不同的认证和/或 通信协议。代理设备2510可在这些不同的协议之间转换。附加地或可选 地,代理设备2510可提供附加益处,如下面示例中所描述的。

客户端设备2505可将诸如文档、电子邮件、服务、文件等等的资源 2520请求发送到代理设备2510。代理设备2510可将该请求传送到资源 2520,并且作为响应,可开始代理设备2510和资源2520之间的认证。在 认证期间的一个或多个点处,资源2520可请求签名,诸如来自客户端证 书。代理设备2510可不直接有权访问客户端证书,因此代理设备2510可 使客户端设备2505参与认证过程,诸如如果客户端设备2505控制到客户 端证书的访问。例如,代理设备2510可请求客户端设备2505使用客户端 证书(或其中所包括的私有密钥)对认证消息进行签名或解密,或者通过 特定安全性证书的用户返回可用安全性证书的列表或选择。

代理设备2510可提供给客户端设备2505文本信息,其识别代理设备 2510和资源/认证服务器之间的认证会话。例如,文本信息可识别认证信 息的数据结构,该认证信息在代理设备2510和资源2520以及/或者代理设 备2510和认证服务2515之间交换(将被交换)。客户端设备2505可使用 文本信息以验证或以其他方式确认代理设备2510和资源/认证服务器之间 的认证会话。一旦验证了文本信息,客户端设备2505可将所请求的签名 提供到代理设备2510,并且代理设备2510可完成与资源2520和/或认证 服务2515的认证。然后,代理设备2510可检索通过客户端设备2505请 求的资源并将其提供到客户端设备2505。

客户端设备2505可包括端点设备、客户端计算机107、109、211-214、 移动设备302、移动设备402中的任一个或任何其他设备。例如,移动设 备可包括智能电话、平板电脑等等中的任一个。一个或多个应用程序可在 客户端设备2505上运行。应用程序可期望访问受保护的资源,诸如企业 资源,并且应用程序(或其他应用程序)中所包括的模块可促进到那些受 保护资源的访问。例如并且参考图26,在客户端设备2505上运行的应用 程序可将资源请求(例如,HTTP请求)发送到MAMP框架2605,其可 促进与代理设备2510的通信。在一些方面中,MAMP框架2605可作为特 权应用程序在客户端设备2505上运行。该MAMP框架2605可包括由 MAMP框架414提供的功能中的全部或一部分,如先前所描述。

客户端设备2505还可具有PKOperation SDK模块2610,其促进到存 储一个或多个客户端证书的密钥存储库2615的访问,该一个或多个客户 端证书可用于签名以用于认证目的。例如,客户端设备2505可授权访问 或拥有客户端证书,其表示客户端设备2505的用户。在一些方面中,证 书可为企业发出的证书。证书可绑定到具有密码模块的物理智能卡。换句 话说,密码秘密可限制于智能卡。用户可授权客户端设备2505访问智能 卡保护的证书。可选地,证书可绑定到虚拟智能卡,其可使用硬件和/或软 件模块以保护密钥。可通过供应过程对客户端设备2505以及/或者客户端 设备2505的可移动硬件模块授权,以存储证书和私有密钥。可要求用户 使用客户端设备2505输入PIN密码,以授权涉及客户端证书私有密钥的 操作。从客户端设备2505分离的另一个外部设备(例如,另一个智能电 话)可控制证书,并且客户端设备2505可使用自定义阅读器接口以访问 由外部设备控制的证书。

在一些实施例中,可将客户端证书和/或私有密钥限制到客户端设备 2505或者限制到物理智能卡。因此,客户端设备2505可保持对密钥的控 制。如果要求使用密钥的认证,则客户端设备2505可需要参与认证过程。 这允许客户端设备2505确保与证书私有密钥执行的操作为客户端设备 2505所预期的。一些组织可使用智能卡以实现某些操作的不可否认性,其 可要求用户对由组织发出的证书的所有使用行驶权限。例如,文档签名可 要求明确的用户授权,而对某些系统的认证可不要求明确的用户授权。用 于提供该种保证的合适机制可取决于所访问资源的性质、所涉及的代理设 备,以及客户端设备2505如何操作。

代理设备2510可包括服务器(例如,服务器201、206、1701、410)、 计算设备、访问网关360、网关服务器406或任何其他设备中的一个或多 个。代理设备2510可促进客户端设备2510和企业资源或其他网络之间的 通信。例如,客户端设备2505的用户可希望访问要求认证的企业资源, 并且代理设备2510可调停访问。例如,如果客户端设备2505不能够直接 访问资源,则客户端设备2505可使用代理设备2510以访问资源。例如, 可不为通过企业资源使用的协议配置客户端设备2505。在一些方面中,企 业资源可用认证的PKINIT实施Kerberos,但客户端设备2505可不以 PKINIT实施Kerberos。类似地,企业资源可用客户端证书认证实施SSL, 但客户端设备2505可不用客户端认证实施SSL。相反,客户端设备2505 和代理设备2510可使用协议通信,该协议具有标准组件并符合众所周知 的认证框架。代理设备2510可在资源的第一协议(例如,Kerberos或SSL) 以及客户端设备2505的第二、不同协议(例如,HTTP或HTTPS)之间 转换。通过利用代理设备2510,客户端设备可不需要理解并操作通过企业 资源使用的复杂或不同的协议。在这些示例中,代理设备2510可扮演客 户端角色。然而,代理设备2510可不具有客户端证书私有密钥的控制。

代理设备2510可用于在其他环境下促进到资源的访问,诸如如果客 户端设备2505不被允许直接访问资源、如果客户端设备2505的访问能力 被限制,以及/或者如果代理设备2510通过改善性能或提供优选接口来增 强访问。代理设备2510还可促进增强的安全性。例如,Kerberos资源认证 可要求从Kerberos KDC获得服务票据(例如,有效目录域控制器)。然而, KDC它们本身可包括一些客户端设备不应直接可访问的敏感企业资源。对 于这些情况,Kerberos认证可要求使用受信任的代理设备2510。作为另一 个示例,代理设备2510可成为在企业的DMZ网络中部署的硬化通信网关。 为了提供额外的安全性益处,代理设备2510可能够查看通信,该通信被 代理到企业资源而不是允许透明终端结束客户端设备2505和企业资源之 间的通信流,好像代理设备2510不存在一样。也就是说,代理设备2510 可知道客户端设备2502正在使用哪些资源以及客户端设备2505利用哪些 协议。如下面的示例中将进一步详细讨论,代理设备2510还可将文本信 息提供到客户端设备2505,该文本信息识别代理设备2510和认证服务 2515和/或资源2520之间的认证会话的一个或多个方面。客户端设备2505 可使用该文本信息以确定是否对由要求签名的代理设备2510提供的数据 进行签名。

代理设备2510可包括包引擎2620,其可为硬件模块和/或软件模块。 包引擎2620可促进与客户端设备2505和/或资源的通信。代理设备2510 还可包括会话缓存2625。如下面示例中所进一步描述,会话缓存2625可 存储会话密钥和/或票据(例如,对于Kerberos会话)以实现代理设备2510 和一个或多个资源或存储资源的服务器之间的通信。代理设备2510可包 括客户端认证模块2630,其被配置为管理与客户端设备2505的认证,诸 如从客户端设备2505获得签名。对于Kerberos认证,客户端认证模块2630 可包括PKINIT模块(其可被成为类似守护进程),其实施公共密钥形式的 Kerberos认证协议(例如,PKINIT协议)的客户端。例如,这可为kinit 命令行程序,其可从Kerberos的开源实施获得。

代理设备2510还可包括被客户端认证模块2635使用的库模块2635 (例如,PKOperation代理SDK 2635),以提取关于访问客户端证书私有 密钥的细节。

客户端设备2505和代理设备2510可使用标准框架通信,诸如HTTP 框架。在一些方面中且如下面示例中所描述,客户端设备2505和代理设 备2510可交换一个或多个认证消息。它们可交换HTTP状态代码,诸如 HTTP 401代码以用于请求认证,和/或挑战响应消息。在一些实施例中, 如果接收401认证挑战的客户端设备2505不支持客户端私有证书的安全 交换,则客户端设备2505可将401消息识别为客户端设备2505不理解的 认证挑战。客户端设备2505可与合适的错误处理行为发生作用,诸如将 由于客户端设备2505不支持客户端私有证书的安全交换而不可完成操作 的消息显示给用户。用于支持公共密钥操作远程的HTTP级别编码可相对 简单。包引擎2620和MAMP框架2605可处理HTTP级别编码。通信可 为类似于RFC 4559中所描述的HTTP协商认证方案的结构,其通过参考 的方式全部并入本文。可使用WWW-认证和/或认证头在客户端设备和代 理设备之间来回交换Base64编码的二进制大对象。可通过各自的 PKOeration SDK(810、2635)在每个设备处生成并处理二进制大对象。

在一些实施例中,HTTP感知的客户端设备2505和代理设备2510之 间的通信路径中的组件可不与认证过程接合。例如,客户端设备2505和 代理设备2510之间的HTTP代理服务器可感知到代理设备2510的连接不 应重用于发送其他客户端设备和/或用户的请求。此外,应正确地审视从代 理设备2510返回的任何HTTP数据的缓存,以使数据不被发送到另一个 客户端设备。

在一些方面中,客户端设备2505和代理设备2510之间的认证可利用 标准认证框架,诸如网络认证或具有自定义机制的通用安全性服务应用程 序接口(GSSAPI)。可将对象从代理设备2510传输到客户端设备2505。 客户端设备2505可处理对象并通过标准密码机制验证它们,诸如具有名 称检查的证书路径验证。

可创建客户端设备2505和代理设备2510之间的专门通信信道。例如, 专门通信信道可用于转送证书操作请求和结果。除了通过客户端设备2505 和代理设备2510之间的标准SSL所提供的以外,利用专门通信信道可提 供额外的密码保护。考虑到远程式密码操作的输入和输出的敏感性,这可 为合适的。在一些示例中,可发生客户端设备2505和代理设备2510之间 的Diffie-Hellman密钥交换(或其他交换)。该交换可提供客户端设备2505 和代理设备2510之间的相互认证。在一些实施例中,可已经在客户端设 备2505的资源访问请求之前建立了相互认证。如RFC5929所描述的信道 绑定,其通过参考的方式全部并入此处,可用于密码学地将专门通信信道 链接到外部SSL会话。简要地参考图26,为数据设置专门通信信道,诸如 PK操作有效负载,可利用客户端设备2505和包引擎2620之间的多重交 换。这可对除了PKOperation SDK 2610和PKOperation代理SDK 2635之 外的一切不透明。

经由专门通信信道提供额外保护的一个原因是实际上可通过在代理 设备2510之前的诸如卸载设备的网络设备终止SSL。可为SSL连接过程 最优化卸载设备,诸如通过使用用于加速包括在SSL连接中的CPU密集 操作的专门硬件。还可证实该硬件模块以满足商业上重要的密码处理标 准,诸如联邦信息处理标准(例如,FIPS-140)。提供额外保护的另一个原 因是检查设备可被授权对SSL证书密钥的访问,以便对通信解码。该检查 设备可包括安全性设备,其经设计监测网络流量以遵守安全性策略,诸如 通过检测将机密信息发送到受信任网络地区之外的尝试,或者与非受信任 或非授权服务器通信的尝试。这些检查设备中的一些可被配置为在SSL连 接握手期间扮演其他服务器,以便防止检查过程被加密通信信道的使用阻 挠。使用专门通信信道可防止敏感数据不必要和/或不适当地曝露到卸载设 备和/或检查设备。因此,可保护使用智能卡等效客户端证书所预期的不可 否认性性质。例如,专门通信信道可防止所要签名的数据被外部设备修改 以及/或者加密数据的泄露。

可以用许多方式实施专门通信信道。例如且如先前所指出,可利用在 标准HTTP认证协议内部操作的自定义GSSAPI机制。该实施提供若干非 排他性益处。第一,代理设备2510可以用标准方式(例如,HTTP)指示 给客户端设备2505对资源和/或认证服务器的认证被要求用于完成所请求 的资源访问。第二,可在客户端设备2505和代理设备2510之间进行任意 的二进制协议,如果需要的话,进行多轮。第三,实施允许安全通信机制 进行协商并被应用用于以标准方式(例如,在GSSAPI级别)传递数据。 在一些实施中,在标准HTTP认证协议内部操作的自定义ASSAPI机制还 可允许GSSAPI的平台实施用于与所添加的自定义机制使用,诸如微软 NegoEx机制。

参考图25,可存在一个或多个认证服务2515(或运行认证服务2515 的服务器)。认证服务2515可实施一个或多个类型的认证,包括Kerberos 或SSL。本文所描述的方面可被实施用于包括客户端证书私有密钥操作的 任何认证协议。例如,对于Kerberos,认证服务器可承担有发出票据的任 务,包括票据授予票据和/或会话票据。认证服务器可经由一个或多个信道 与代理设备2510通信。此外,所述一个或多个信道可使用与客户端设备 2505所使用的通信协议不同的通信协议,以与代理设备2510通信。在一 些方面中,认证服务2515可保持不变,即使实施本文所描述的方面。换 句话说,认证服务2515可存在于传统基础设施中。例如,认证服务2515 可包括以上指出的认证服务558。

可存在一个或多个资源2520(或存储资源2520的服务器)。资源2520 可使用与认证服务器用于与代理设备2510通信的一个或多个相同的或不 同的协议来与代理设备2510通信。在一些方面中,所述资源可保持不变, 即使实施本文所描述的方面。换句话说,该资源可存在于传统基础设施中。 资源的非限制性示例可包括但不限于文件资源、网络资源、邮件资源、共 享点资源等等。这些资源可包括结构化查询语言(SQL)数据库、远程过 程调用(RPC)服务器、分布式组件对象模块(DCOM)服务器、简单对 象访问协议(SOAP)网络服务、代表性状态传输(REST)网络服务,以 及可使用GSSAPI或认证的类似安全性框架的其他专有资源。这些资源中 的一个或多个可直接通过内部设备访问,诸如作为资源在相同网络上或在 另一个受保护网络中的计算机。资源可包括企业资源304、306、408、409 等等。此外,可在一个或多个服务器上存储资源。可通过多层系统访问资 源。代理设备2510可与前端服务器通信,该前端服务器可反过来与后端 服务器通信(以及作为请求用户认证)。

以上所述的实施仅为可使用的一个可能的系统体系结构。可基于组织 的特定实施作出必要修改。例如,可以可选地使用如图4中所示的系统, 其中认证为“登录”过程的部分。在该种系统中,当通过用户启动时,受 管应用程序咨询策略文件并可确定网络登录被要求用于使该应用程序完 全运行。受管应用程序可请求(例如,通过客户端代理)执行网络登录。 如果不存在登录会话,则客户端代理可开始登录请求,其中用户面临凭证 挑战。凭证可被安全地传到认证服务器,并且如果批准,则服务器发出登 录票据,该登录票据然后被返回到客户端代理。客户端代理指示成功登录 到受管应用程序,并且因此受管应用程序能够继续。

在另一个示例中,受管应用程序可为网络资源执行SSO。受管应用程 序可通过网关安全信道开始与企业网络资源/服务器的网络会话,该网关安 全信道然后将网络请求传送到企业服务器。由于网络资源在授予到资源的 访问之前要求认证,因此网络资源可生成认证挑战(SSL证书挑战或HTTP 401认证要求的挑战等等)。

在一些情况下,中间网关可透明地响应于认证挑战。网关在流经网关 的流量中监测认证挑战。当识别了认证挑战时,其中网关可响应于该认证 挑战而不是将响应传回到客户端,网关通过在添加合适的认证头或源自网 关的用户是谁的概念的证书之后重试请求来透明地响应。对于一些HTTP 认证协议,这可包括多个挑战和响应,其中全部被透明地处理直至得到最 终的认证票据。最后,网关供给合适的证书或HTTP认证挑战响应并重试 操作。如果成功,则随后的网络流量将继续使用证书或认证响应头,其暗 示用户从未看到认证挑战。

在一些情况下,网关可独立地生成认证挑战的响应(例如,密码重放)。 在其他情况下,其可需要与客户端代理交互以得到合适的凭证并生成响应 (例如,经由PKINIT的Kerberos)。

在其他情况下,网络挑战可不为可视的,这是因为已经对通过网关的 流量加密,例如,通过SSL。该类挑战将传回到不间断的移动设备上的客 户端应用程序。类似地,如果网关遇到其未准备处理的挑战,则网关允许 挑战流回到移动设备上的客户端应用程序。

在一些情况下,受管应用程序框架代码可透明地响应于认证挑战。如 果网关不能够看到、拦截并响应于认证挑战,那么挑战将流回到移动设备 上的客户端应用程序。在这种情况下,受管应用程序框架代码包括其自己 的认证挑战感知,并且可允许认证挑战透明地响应而不涉及应用程序。过 程类似于以上的透明网关过程,除了认证挑战响应起源于受管应用程序框 架,该受管应用程序框架位于移动OS提供的网络功能以及部署这些服务 的应用程序专用代码之间。当遇到SSL客户端证书挑战时,受管应用程序 框架中的软件可识别回呼并供给合适的证书。类似地,如果遇到HTTP状 态代码401(认证要求的),则受管应用程序网络框架代码可生成合适的认 证响应并重试请求。如果成功,则在所有的随后网络请求上提供认证票据 或证书,并且终端用户从未看到认证挑战。

如果受管应用程序框架遇到框架不理解或未准备处理的挑战,则框架 允许挑战流回到客户端应用程序,并且应用程序将正常地相应表现。在许 多情况下,这将导致用户面临认证他或她自己的挑战(即,无SSO)。

在一些情况下,受管应用程序可开始与网络资源/服务器的网络会话, 其在没有网关充当代理的情况下可达到(例如,未通过网关保护的一般网 络资源,或者其中移动设备已经直接在内部公司网络上)。在这种情况下, 仅受管应用程序框架可有机会看到并响应于来自服务器的认证挑战,并且 流程与以上类似。

对于以上的所有内容,应用程序策略可用于允许或限制该类响应,或 拦截挑战的位置,或从其发送响应的位置。策略还可定义可用的证书等等。

当第二受管应用程序随后请求认证时,第一认证可用于避开第二登 录。例如,当启动第二受管应用程序时,第二受管应用程序可咨询策略并 确定网络登录被要求用于该应用程序。第二受管应用程序用信号通知客户 端代理执行登录。然而,由于已经存在通过客户端代理(基于第一受管应 用程序)维护的有效登录会话,因此客户端代理可用信号通知第二受管应 用程序登录成功,允许第二受管应用程序作为授权应用程序继续,而不中 断用户。

类似地,关于第二受管应用程序的网络资源单点登录(SSO),第二受 管应用程序将有权访问相同的网络级别SSO设施,如以上所描述的第一受 管应用程序。然而,可相对于允许或阻碍各种形式的SSO,将第二受管应 用程序的策略配置为不同于第一受管应用程序。其还可有权访问不同的证 书。

因此,如以上所指出,并且使用以上所述系统体系结构中的任何或全 部,一个或多个策略文件可定义该环境,其中在该环境下,在那些策略文 件的控制下或根据那些策略文件操作的一个或多个应用程序可和不可使 用SSO服务,以避开认证或安全性挑战。

图30示出用于通过移动设备管理单点登录的说明方法,如上所描述。 最初,可在步骤3001中在移动电子设备上接收和/或安装受管应用程序, 如本文所描述。在步骤3003中,设备可分离地和/或明确地接收一个或多 个策略文件,其例如根据以上所讨论的一个或多个特征定义受管应用程序 的一个或多个操作和/或行为限制。尽管可作为分离文件可选择地接收策略 文件,可作为相同通信或安装过程的部分接收策略文件,如同受管应用程 序那样。

在步骤3005中,移动设备根据策略文件执行受管应用程序。也就是 说,移动设备安全性管理器(或等效过程)限制由通过一个或多个策略文 件定义的受管应用程序的操作。在步骤3007中,在受管应用程序的操作 期间以及基于一个或多个策略文件,可限制受管应用程序或实现单点登录 过程,如以上所讨论。可选地,受管应用程序可根据策略文件部署单点登 录凭证。存在策略文件和单点登录特征以及可被限制/实施的过程的许多示 例。

根据一个方面,一个或多个策略文件可定义允许哪种类型、级别和/ 或位置的SSO。例如,可为第一级别或角色(例如,管理)的但不为第二 级别(例如,监督者)的用户允许SSO。作为另一个示例,可通过第一应 用程序(例如,电子邮件)但不通过第二应用程序(例如,web浏览器) 允许SSO。作为另一个示例,可基于基本或摘要挑战但不基于证书挑战(或 反之亦然)允许SSO。进一步地,可在策略文件中定义复杂的要求组合。 例如,通过被签名作为管理人员的用户使用的受管应用程序浏览器可被允 许能够执行任何类型的SSO,而该受管web浏览器可仅被允许使用SSO, 以当通过被签名作为监督者的用户使用时响应于证书挑战。

作为另一个示例,策略文件可基于所访问的资源而不是进行访问的应 用程序来定义SSO的可允许使用。资源可包括文档、电子邮件、文件、服 务等等。策略文件可进一步定义可允许在哪发生SSO,例如,在设备上, 在中间网关处等等。进一步地,策略可定义可允许SSO挑战的类型,例如, 基础、摘要、开放授权、Kerberos、NTML、证书、PKI等等。根据另一个 方面,策略文件可基于可允许的证书和/或通信协议定义SSO策略。使用 以上基于策略的特征中的任何一个或多个,管理者可如组织所需的简单或 复杂地定义策略。

9、动态设备云

本文所描述的方面允许个人或群组所拥有的设备集合以协调、集合方 式使用,除了简单的屏幕共享以外。可在记忆(对于你自己的个人设备) 或自组织基础(诸如当两个人集合地使用他们的设备时)上进行设备的该 集合协调。

例如,考虑在线会议软件(例如,思杰系统公司的会翼通软件应用程 序)。其存在于便携式电脑、智能电话和平板电脑上。然而,每个平台本 质上做相同的事情并且当通过相同的用户使用时,设备不协调一致地工 作。根据一个方面,智能电话可为会议承担麦克风的角色;平板电脑可承 担为会议显示视频的角色,以及便携式电脑可显示会议的屏幕共享元素。

跨设备协调的其他示例包括:分配网络链接,其通过便携式电脑点击 出现在平板设备上,以及将已经打开的幻灯片演示从一个设备传递到另一 个。

除了当与设备交互时将具体角色分配到设备的能力,方面考虑到设备 角色的持久性分配,以允许多个设备的高效使用,而没有用户部分的额外 交互。例如,在线会议软件可包括当会议开始使智能电话成为麦克风、平 板电脑显示视频和便携式电脑显示屏幕立即共享。

为了解决以上问题以及将对读者显而易见的其他问题,本文所描述的 方面控制设备并将设备编排在一起,以允许复杂的多设备行为,其使物联 网开始对人们的日常生活产生巨大影响。通过本文所描述的方面解决的一 个问题在于允许行为的用户级别客户化,其中当许多不同的设备彼此交互 时导致该行为。当今的一个问题为尽管许多设备可彼此交互,但它们彼此 交互的方式为硬线的,并且不可通过系统的用户配置。行为的范围被限制, 并且通常被限制到来自类似供应商的设备,该供应商已经基于具体的、封 闭的用户实例建立设备如何彼此交互。

使用本文所描述的方面,用户可在不同的设备之间配置灵活的交互, 以允许不同设备的编排协调一致地工作。这允许通常与一起工作无关的设 备触发不同的行为。例如,如果用户具有智能电话、便携式电脑和平板电 脑,则本文所描述的方面提供以下说明下使用实例解决方案:

a、如果用户正在驾驶汽车并且会议开始,那么他们不希望必须进入会 议参与信息-他们仅希望会议使用PSTN在电话上呼叫他们,该PSTN允许 与车中方向盘电话控制的简单整合。

b、然而,如果用户在办公室中,那么他们希望使用他们当前正在交 互的设备。

本文所描述的方面给出用户选择,以使用设备提供的触发器根据他们 的优选项自定义这些行为。用户可通过明确地指定它们来自定义这些行 为,或者他们可依赖观察用户行为并跟随他们的优选项的系统。

以上所述问题的一个已知解决方案为手动地执行设备之间的编排步 骤,以实现本文所描述的软件提供的特征中的一些,诸如当在汽车中时通 过拨打PSTN桥接信息来手动地连接到会议,而不管这样做的危险。

目前不可实现本文所描述的软件的其他特征,诸如当用户物理上不存 在时调用的触发器,并且用户在没有该类特征的情况下生活。针对该问题 的有限已知先前尝试包括诸如网络混搭的解决方案,包括如OnX和IFTTT 的技术。然而,这些技术关注将不同的网址桥接在一起以及移动设备的一 些特征。它们不是覆盖为“物联网”的部分的更广范围设备的广泛技术。 尽管如此,其他已知技术包括诸如X10、DMX和ZWave的标准。然而, 这些为家庭自动化技术,其关注设备和诸如光、运动传感器的传感器,和 家庭中的项目的机动化控制。

多设备问题的一个已知解决方案为通过手动操纵设备上的软件手动 地将具体设备指定给具体角色。例如,在在线会议软件的情况下,这可意 味着使便携式电脑屏幕最小化会议的视频部分,以允许屏幕共享占用屏 幕,以及将这反映到房间显示。其还意味着手动地减弱所有说话者的声音, 除了充当麦克风的智能电话的说话者以外。这还意味着使平板电脑最大化 在线会议软件的视频显示。一旦完成这之后,单个用户好像多次连接到会 议中的用户列表中,其提供次优的用户体验。对于其他解决方案,诸如从 一个设备将应用程序启动到另一个设备中,不存在适当的现有解决方案。 因此,现有解决方案,到它们存在的程度的现有解决方案为费力的、手动 驱动且容易出错。

图27示出根据本文所描述的说明性方面的多设备使用。图27的系统 概述项目在设备内散布的方式,以及用户可穿过设备交互触发的方式。如 通过图27中的示例的方式所示,用户可选择一个计算设备处的内容以与 另一个计算设备共享。用户可选择内容以共享,并然后选择经由编排框架 连接的其他计算设备中的一个。选择了所选择的计算设备(目标计算设备) 后,可将所选择的内容传递到所选择的计算设备。如图27中所看出,可 以选择性地部署各种途径以呈现或显示一组计算设备,其当设备接收所选 择的内容时可用于选择。在一个途径中,可用于选择的计算设备可作为拖 放行为的可选择目标从界面的边缘“探出(peeking)”。在另一个途径中, 可用于选择的计算设备可被呈现作为一组可选择图标。在进一步的途径 中,可用于选择的计算设备可被呈现作为计算设备列表中的可选择条目。 可部署类似途径以便请求计算设备在另一个计算设备处开始执行计算活 动的至少一部分。此外,可基于例如与计算设备关联的计算设备、与计算 设备的用户关联的计算设备、与计算设备同地协作的计算设备、计算设备 的操作模式、计算设备处的应用程序的操作模式、计算设备是否能够呈现 内容或执行计算活动,基于是否允许计算设备呈现程序内容或执行计算活 动,以及将通过本公开的利益理解的附加或可选准则来动态地生成或配置 被呈现为可用于选择的该组计算设备。

图28示出根据本文所描述的一个或多个说明性方面的系统体系结构。 图28中的系统示出的是负责服务器端设施的云服务,以及在客户端设备 上运行的多设备(MD)软件,其负责跨设备交互。可基于该客户端设备 的能力修改每个不同种类的客户端设备上的MD软件。图27的系统可包 括以下方面:1)云服务,其提供服务器和后端服务(这可例如使用在窗 口Azure中运行的ASP.NET MVC实施);以及2)不同的客户端设备,其 中每个表示不同形式因素的设备。方框中示出了便携式电脑、智能电话、 平板电脑和大房间显示器,但还可使用其他设备。

系统的云服务器组件可包括:

a、云文件接口。这负责与底层数据云存储提供商通信。在一个示例中, 可使用思杰共享文件(CITRIX SHAREFILE)。可使用其他服务(例如,DropBox、 Box等等)。

b、云文件服务。基于云的文件存储服务,其充当外部数据提供商。

c、设备服务。这负责维护用户所具有的所有设备的知识和每个设备的 能力,诸如设备为哪类、其能够运行哪些应用程序,以及其可用的外围设 备(诸如摄像机)为哪种。

d、设备数据库。该数据库维护被设备服务使用的信息。

e、用户服务。这负责维护系统中可用的所有用户的知识。其还被用于 身份管理。

f、用户数据库。这是维护用户服务中的信息的数据库。

g、设备管理接口。这是允许系统的用户定义哪些具体角色以及在哪 些具体设备上发生哪些行为的接口。其允许用户自定义他们的设备如何表 现具体情况,诸如在线会议软件,或者哪个设备将显示web内容。其推迟 设备到达业务流程服务将要进行的实际顺序的工作。

h、推送通知服务。这负责利用通过iOS、安卓、Windows使用的推送 通知框架,以及其他通知设备它们需要采取行动的其他服务。

i、业务流程服务。这负责协调与使设备显示某一内容相关的不同行为。 其为系统内的中心点,并将指令发出到所有其他组件。

系统的客户端组件可以是相同的,而与设备的种类无关。然而,实施 细节可根据底层平台变化。客户端组件可包括:

a、云文件接口。这负责与底层数据云存储提供商通信。

b、应用程序解析器。这负责确定如何作用于请求以参加跨设备请求。 例如,如果用户想利用平板电脑作为在线会议应用程序视频渲染器,那么 解析器确定请求包括仅以视频输出模式启动在线会议软件。

c、通知接口。处理从服务器接收的通知以参加跨设备行为。

d、应用程序启动器。在需要被带到设备的任何数据在设备上之后, 在设备上启动合适的应用程序。

e、存在子系统。保证云设备感知设备在线并且可用。其还可传递位置 信息或NFC相关的信息,其可被服务器用来确定设备是否位于公司。

f、业务流程代理。这负责编排与跨设备活动相关的工作项目,使得用 户可以通过最小干涉完成他们的目标。例如,如果从另一个设备将幻灯片 演示传递到该设备,则业务流程代理保证该演示在设备上可用,并且如果 需要的话,将其下载到设备。业务流程代理然后利用应用程序解析器确定 启动应用程序的合适方式,并且然后使用应用程序启动器启动应用程序。

作为这些组件如何一起工作以解决以上问题的说明性示例,以下方面 描述的是在使用实例场景期间的执行流程,其中用户想要启动多设备在线 会议应用程序,并且然后在另一个设备上显示与链接被点击到的设备的 web链接。

最初,在会议之前,用户具有在他/她的便携式电脑上运行的MD软件 客户端。便携式电脑上客户端的存在子系统传递到云服务的设备服务,以 指示设备可用。用户的智能电话和平板电脑上的客户端的存在子系统指示 设备可用。在会议的时候,业务流程服务决定是开始会议的时间。业务流 程服务咨询设备服务以确定哪些设备对用户可用。设备服务利用设备数据 库以确定用户具有哪些设备以及它们的状态是什么。业务流程服务使用推 送通知服务,以将消息发送到用户已经利用MD软件注册的有效设备。客 户端上的通知接口接收将启动会议的通知,并将其传到业务流程代理中, 这保证用户被询问他们是否想要加入会议。业务流程代理使用应用程序解 析器以确定需要哪个应用程序和哪些参数来起动具有给定角色的会议。对 于每个设备,该信息可不同。例如,便携式电脑可被给出指示将仅使用屏 幕共享的信息,而平板电脑可被给出指示将仅使用视频的信息。业务流程 代理使用应用程序启动器,以便以合适的信息开始在线会议软件。该序列 对于用户的有效设备中的每个都可出现。

在会议结束时,用户然后决定利用他的/她的平板电脑来显示关于在便 携式电脑上点击的链接的web内容。用户点击web浏览器中的链接。通过 MD软件截获所使用的web链接。MD软件将链接发送到云服务处的业务 流程服务。业务流程服务使用设备服务以确定平板电脑是否可用。业务流 程服务将请求发送到推送通知服务,以将推送通知发送到平板设备。客户 端上的通知接口从云服务接收请求并将其传到业务流程代理上。业务流程 代理使用应用程序解析器,以确定需要哪个应用程序和哪些参数来启动特 定web链接。在该示例中,被传回的信息是需要被使用的内部web浏览器, 以及传到浏览器的信息。业务流程代理使用应用程序启动器以启动web浏 览器,其中从其他机器传递信息。

使用本文所描述的方面,MD软件克服了以互补方式有效地一起使用 多个设备所涉及的困难。在没有MD软件的情况下,多个设备不能够以互 补方式协调一致地一起工作。每个设备可显示应用程序和内容,但不存在 跨越多个设备编排的一致性或能力。

例如,使用MD软件向用户/企业提供将个人的设备与公司系统中他们 的身份关联的能力。诸如CITRIX GOTOMEETING的公司系统当前不具有 用户的设备的任何特定关联,并且因此不可利用为不同设备预分配角色的 优点。MD软件还提供用于将设备与人们的空间或群组关联。示例包括诸 如智能显示器以及与空间关联的喇叭扩音器的会议室设备。然后这些资产 科通过群组占用该空间(暂时分配)本共享这些资产或被永久地分配到人 们的逻辑群组。MD软件还提供用于以应用程序的形式(本机、虚拟、网 络等等)跨越设备移动/分配交互的能力,其中关联内容和优选项处于其无 缝跨越设备展开工作的这种方式。MD软件还提供跨越设备给文本/状态搭 支架以提供更好的用户体验的能力。例如,在启动协作后,会议自动启动 到用户的所有设备上,而每个设备启动到其具体角色中。MD软件还提供 诸如一个设备的上下文。

例如,使用MD软件给用户/企业提供将个人的设备与公司系统中他们 的身份关联的能力。公司系统当前还不具有用户设备的任何特定关联,并 且因此不可利用为不同设备预分配角色的优点。MD软件还提供用于将设 备与人们的空间或群组关联。示例包括诸如智能显示器以及与空间关联的 喇叭扩音器的会议室设备。然后可通过群组占用该空间(暂时分配)来共 享这些资产或被永久地分配到人们的逻辑群组。MD软件还提供用于以应 用程序的形式(本机、虚拟、网络等等)跨越设备移动/分配交互的能力, 其中关联内容和优选项处于其无缝跨越设备展开工作的这种方式。MD软 件还提供跨越设备给文本/状态搭支架以提供更好的用户体验的能力。例 如,在启动协作后,会议自动启动到所有用户的设备上,其中每个设备启 动到其具体角色中。MD软件还提供被用作另一个设备(诸如平板电脑) 的信息的一个设备的环境(诸如电话的位置)。MD软件还提供使用设备分 配/移动以在公司系统中提供设备具体角色的能力。示例包括充当喇叭扩音 器的智能电话、充当体现的平板电脑,或充当摄像机的任何设备。MD软 件还提供目标粘贴,例如,允许应用程序为设备中的一个上的粘贴目标, 任何关联设备上的随后复制被自动粘贴到粘贴目标中。这节省了一半的典 型复制和粘贴操作开销。MD软件提供方法和系统,以在一个设备上作出 自然的用户交互(语音、触摸、手势、键盘等等)行为,其允许所有设备 进行响应。示例为将应用程序(诸如电子邮件)的关注点放在任何设备的 前面。

使用本文所描述的方面通过减少手动配置和协调简化了多个设备的 使用。其他方面提供在设备之间共享世界知识/状态的能力,以增强用户体 验。这减少了信息的多余输入。一些方面提供通过减小由应用程序、数据 和被锁定到设备中的文本导致的摩擦来跨越设备快速展开活动的能力。其 他方面减少了一半的复制/粘贴工作。一些方面提供跨设备自然用户交互 (NUI),其允许更少的能力设备参与自然交互。其他方面提供快速地将应 用程序放在任何设备的前面的能力,而不管应用程序先前在哪些设备上。 这允许应用程序之间的更快移动,例如,“在我的平板电脑上示出电子邮 件”。

根据另一个方面,附加的应用程序可得益于MD软件的使用,例如, 虚拟化环境中的客户端代理软件。MD软件可使客户端代理应用程序能够 从一个设备迁移到另一个设备。这可使用推送驱动平滑漫游执行。MD软 件的其他方面可提供跨越设备共享web浏览器会话的状态的能力。而且, MD软件的其他方面可提供自组织设备发现,其使用诸如NFC的技术并使 用业务流程服务和业务流程代理以为设备分配角色。

图29A示出根据一个或多个说明性方面的系统体系结构。图29A概述 可以被使用的一般结构。其示出负责服务器端设施以及在客户端设备上运 行的新的、动态软件的云服务。

系统体系结构可包括至少三个分离的子系统:1)云服务,其提供后 端服务(作为一个示例,这可使用在Windows Azure中运行的ASP.NET  MVC实施);2)客户端设备,其运行用户与其交互以用于协作、推迟的 工作的软件、应用程序和其他软件。该软件可在诸如Windows、iOS、安 卓、Mac或智能TV等等的平台上运行;以及3)互联网使能传感器,诸 如运动传感器、光传感器、温度传感器。客户端设备可直接连接,其中每 个执行如本文所描述的对等软件,或者可通过云服务(例如,云服务可为 可选的,其中将功能构建到每个设备上的软件中)连接。

系统的云服务组件包括:

a、设备服务。维护用户所具有的所有设备的知识和每个设备的能力, 诸如设备为哪类、其能够运行哪些应用程序,以及其可用的外围设备(诸 如摄像机)为哪种。

b、设备数据库。维护被设备服务使用的信息。

c、用户服务。维护系统中所有用户可用的知识。其为身份管理所需的。

d、用户数据库。维护用户服务中的所有信息。

e、PSTN接口。经由公共交换电话网络(PSTN)主动接触用户的接 口。

f、推送通知服务。利用通过iOS、安卓和窗口(等等)使用的推送通 知框架,以通知设备它们需要采取行动。

g、业务流程服务。基于不同的事件协调不同的行为,或触发其发生。 业务流程服务可包括以下组件:

1、触发器处理器。从诸如传感器和客户端的不同外部源接收关 于具体事件何时发生的输入,该具体事件充当用于发生不同行为的触发 器。

2、规则服务。确定当特定事件或触发器发生时,执行哪些行为。 规则服务为系统的核心,其确定当一些事情发生时做什么。

3、行为生成器。基于从规则服务生成哪些结果行为是针对给定 的触发器来转换需要发生的行为的序列。

h、规则数据库。维护通过业务代理服务和规则服务使用的信息,该 规则服务基于不同的触发器确定软件如何表现。

i、业务流程接口。为系统的用户提供接口以便为不同的设备、事件和 触发器自定义系统的行为。用户通过该接口自定义系统。

系统的客户端组件可以是相同的,而与设备的种类无关。然而,实施 细节可根据底层平台变化。客户端组件可包括:

a、应用程序解析器。这负责确定如何作用于包括启动应用程序的请求。 例如,如果用户想要当他们进入汽车时启动他们平板电脑上的谷歌地图, 则应用程序解析器确定如何启动谷歌地图-无论是web应用程序、本机应 用程序或客户端代理发布的应用程序。

b、通知接口。基于来自服务器端的信息处理从服务器接收的通知。

c、应用程序启动器。在设备上启动适当的应用程序。

d、存在子系统。保证云设备感知设备在线并且可用。

e、业务流程代理。编排与使推迟的和分布式工作可能相关的工作项目。 这包括诸如响应于来自服务器的事件开始会议、触发客户端的认证和客户 端的一般协调的任务。业务流程代理可包括以下组件:

1、触发器处理器。从诸如传感器和客户端的不同外部源接收关 于具体事件何时发生的输入,该具体事件充当用于发生不同行为的触发 器。

2、规则引擎。确定当特定事件或触发器发生时,执行哪些行为。 规则服务为系统的核心,其确定当一些事情发生时做什么。

3、行为生成器。基于从规则引擎生成的哪些结果行为是针对给 定生成器,来转换需要发生的行为的序列。

为了示出这些部件如何一起工作以解决软件解决的问题,以下示例使 用实例方案示出用户将如何设置规则以保证如果当会议开始时他们正在 驾驶汽车,则系统应在PSTN上呼叫用户以让他们加入会议。

最初,用户将他们的web浏览器指向业务流程接口。用户以以下定义 输入规则:

a、针对“如果会议开始”的触发器设置。

b、针对“我的智能电话中的运动传感器或GPS指示我正在以大于 5km/h的速度移动”的上下文环境设置。

c、针对“呼叫指定的电话号码并自动地将我补加到会议”的行为设置。

将输入到业务流程接口的规则发送到规则服务,其将信息写入到规则 数据库。在这一点上,规则被全部设置在服务器上。规则服务指示设备服 务将具有新规则的消息发送给每个设备。客户端设备上的存在子系统与设 备服务通信,以指示设备存在。客户端接收回响应,其指示其需要更新其 规则。客户端上的规则引擎从规则服务请求应用到设备的最新的规则组。 规则服务将信息提供回到客户端,该客户端将信息存储在其内部规则引擎 配置中。既然客户端知道用户所指定的规则,则其可将关于该规则的状态 的信息发送到服务器。因此,在这种情况中:

a、每次存在子系统打算通知服务器关于其状态时,客户端上的触发生 成器接收消息。

b、客户端上的规则引擎确定需要将关于设备的运动/速度的信息发送 回到服务器。

c、规则引擎使用客户端上的行为处理器,以将信息添加到通过子系统 被发送回到服务器的数据。

服务器端上的设备服务从客户端接收关于设备的存在和规则信息的 消息,该客户端将该消息传递到触发处理器,该触发处理器将其传递到规 则服务。规则服务相对于与会议开始和运动传感器速度相关的规则,更新 其关于设备的状态的信息。当会议开始时,触发处理器从监测用户的日历 的外部服务接收消息。触发处理器将关于会议开始的消息传递到规则服 务。规则服务咨询规则数据库并确定存在由会议的开始触发的规则。规则 服务咨询规则数据库关于规则的上下文条件如何与客户端设备的状态相 关的进一步信息。从客户端最后接收的状态指示设备正在移动,并且规则 的上下文条件被评估为真值,即执行规则的行为。

规则服务将规则评估的结果传递到行为生成器。在这种情况下,其传 递呼叫关于指定电话号码的用户的行为。行为生成器创建被需要用于呼叫 电话的指令序列。行为生成器将请求发出到PSTN服务,以使电话呼叫指 定的电话号码。PSTN服务呼叫所请求的电话号码,并连接到用户的电话。 行为生成器将请求发出到PSTN服务,以拨打合适的指令,以便将用户补 加到他们想要参加的会议中。在这一点上,当他们驾驶时,用户连接到会 议,而不一定使他们的眼睛离开道路,或者将复杂的序列输入到他们的智 能电话中。

本文所描述的软件和系统克服了当用户具有若干设备时出现的困难, 该若干设备可一起工作以自动化任务,但未在盒外配置以允许该种业务流 程或者不允许业务流程的灵活性。本文所描述的方面因此提供从各种设备 定义推论的上下文(时间、地理空间、环境的)和明确(从跨越设备的所 有形式的自然交互)的触发的能力。方面还提供该能力,以便定义设备的 行为以基于从设备上下文确定的触发执行的能力,以及可基于推理引擎点 燃的规则定义的行为,以实现跨越设备的复杂的自动化行为。方面还提供 问题和回答接口以精细化所需行为,以及基于学习或观察跨越设备的用户 行为学习设备行为如何触发的能力,而不是仅依赖明确地编写行为脚本的 用户。例如,学习当用户响应如会议通知的某事时在做什么,以及下次复 用该行为,诸如自动地使他们的麦克风静音或者将其设置为特定音量。方 面还提供基于问题和回答或如果/那么/否则风格接口学习设备行为的能 力。

当存在可用的现有规则引擎和自动化框架时,他们通常涉及一个特定 应用程序或设备。本文所描述的动态设备云跨越用户所具有的多个设备和 应用程序。这提供若干优点,包括提供能力以提供在一起集合工作的设备 的进一步的证据行为,即使它们不被明确地设计为彼此协作。本文所描述 的方面还提供定义简单触发、行为和行为规则的能力,以给出在其他情况 下在盒外不可用的灵活性等级。方面还提供基于问题和回答风格接口,以 及/或者通过观察用户如何使用系统可作出对于没有任何编程背景用户可 访问的定制的能力。

本文所描述的其他方面还通过提供学习设施、问题和回答风格接口和 传统脚本方法为用户提供自定义业务流程的能力。业务流程软件可适应用 户与系统如何交互,以及基于用户行为调整规则。因此,系统可基于所观 察的系统的用户的行为学习新的交互和规则。

如以上所指出,云服务可用于共享计算设备处的各种类型的内容,例 如,用于跨设备文件共享、URL共享以及复制和粘贴功能。后端云服务有 利地允许使用仅安装在各种设备处的多设备客户端来跨越不同的操作环 境跨设备共享。跨越设备共享的内容可以是驻留在设备处的任何事物,包 括:例如,文档文件、图象文件、音频文件、视频文件、档案文件、软件 应用程序、URL、基于文本的内容、演示会议等等。此外,用户可与他们 所关联的设备(例如,个人移动电话、个人便携式计算机、个人平板计算 机等等)共享内容,以及可与和其他个人关联的设备共享内容。

在一些示例实施中,用户可选择特定设备,其中与该设备共享所选择 的内容。在其他示例实施中,云服务可自动地确定内容与哪个设备共享。 云服务可基于例如所共享内容的类型、当前连接到云服务的设备等等来作 出确定。云服务的该基于上下文做出的决策有利地为用户提供无缝和不唐 突的工作流。然而,允许用户选择内容与哪些设备共享有利地给出用户对 他们所共享内容的目的的更多控制。因此将理解的是,云服务可选择性地 被配置为根据用户的选择、根据当前上下文、根据文件共享规则设置、或 这些组合,来在设备之间共享内容。

如以上所指出,业务流程框架还可使计算设备互相连接,以经由对等 通信会话作为协作的整体操作。图29B示出的是其中业务流程代理经由对 等通信会话互连的示例实施。业务流程代理仍然可允许计算设备访问例如 如上所描述的云存储资源、规则数据库、设备数据库和用户数据库。将理 解的是,业务流程框架的方面在对等上下文以及客户端服务器上下文中可 应用。

文字处理应用程序(例如,Microsoft Word)是一个应用程序的示例, 其中业务流程框架可分发应用程序跨越多个互连的设备的操作。在该示例 中,桌面计算设备可开始文字处理应用程序,并请求电视显示设备呈现来 自应用程序的输出,例如,所编辑的文档。业务流程框架可分发跨越其他 互连的计算设备的应用程序,以使得可从与桌面应用程序互连的其他计算 设备接收文字处理应用程序的输入。例如,便携式设备处的用户可在便携 式键盘处提供输入,以便编辑文档,并且平板设备处的另一个用户可在触 摸屏键盘处提供输入,以便编辑文档。以这种方式,当访问第一设备处的 文档时,用户可与其他设备共享文档。

在另一个示例中,如果设备中的一个不具有被需要用于执行计算活动 的硬件或软件,则互连的设备可彼此协作。本公开中提供了作为一个示例 的在线会议,其中计算设备可经由业务流程框架互连,该业务流程框架协 调跨越计算设备的计算活动的操作。在一个特定示例中,当加入会议时, 用户可仅有权访问蜂窝电话和电视显示设备。在该示例中,电视显示设备 可不具有音频输入设备,并且蜂窝电话可不具有适当的视频输出设备。因 此,业务流程框架可协调蜂窝电话和电视显示设备的操作,以使用户能够 加入在线会议。蜂窝电话设备和电视显示设备处的分别的业务流程代理可 经由如通过图29B中的示例方式示出的业务流程框架连接设备。因此,在 在线会议期间,业务流程框架可使在线会议的视频呈现在电视显示设备 处,并且使从蜂窝电话设备的麦克风为在线会议接收来自用户的音频。

图31是跨设备文件共享的示例方法步骤的流程图3100。用户可操作 其中驻留各种计算机文件的计算设备。用户可选择文件中的一个以与另一 个共享(方框3102)。通过所选择的文件,用户可开始跨设备共享请求(方 框3104)。用户可经由例如键盘快捷键、菜单选择等等来开始跨设备共享 请求。在开始跨设备共享请求之后,多设备客户端可在设备处启动或激活 (方框3106)。

多设备客户端可呈现用户可将所选择的文件传输到的目标列表(方框 3108)。目标列表可包括对应于与用户关联的计算设备的行项目,以及对 应于个体的行项目。如以上所指出,用户可选择与该用户关联的个人设备 或者将所选择的文件传递到的个体。还如以上所指出,行项目的列表可包 括与所列出的个体关联的设备,并且用户可选择将所选择的文件传输到与 个体关联的哪个设备。如果用户选择个体而非设备,则云服务可自动地确 定将所选择的文件传输到与所选择的个体关联的哪个设备。将理解的是, 个体的列表还可包括用户,并且用户的选择可将所选择的文件传输到与用 户关联的不同设备。

如以上所指出,将所选择的文件传递到哪个设备的确定可基于用户选 择、上下文或规则设置。用户可手动地选择将所选择的文件传输到哪个设 备或个体。附加地或可选地,云服务可确定哪些设备当前连接到云服务, 并自动地选择那些设备中的一个以接收所选择的文件。云服务还可基于所 选择的文件的类型自动地选择设备。作为示例,当文件为音频文件时,云 服务可选择音频设备以接收所选择的文件。作为另一个示例,当文件为视 频文件时,云服务可自动地选择大显示设备以接收所选择的文件。云服务 还可采用一个或多个规则设置,以确定哪个设备应接收所选择的文件。用 户可根据他们的优选项修改规则设置,并且规则可考虑与用户(例如,用 户角色、位置等等)、设备(例如,设备类型等等)、所选择的文件、和这 些的组合关联的各种特征。该基于规则的文件共享的方法,可有利地在自 定义云服务如何自动地跨越设备共享文件方面提供更大的灵活性。

此外,目标列表可为上下文敏感的,以使得包括在列表中的目标取决 于各种因素。在一个示例实施中,多设备客户端可基于潜在设备目标的能 力动态地过滤目标列表。在这点上,多设备客户端可意识到各种设备的能 力。云服务可维护对应于连接到云服务的每个设备的能力信息,并将该能 力信息提供到多设备客户端。反过来,当构造目标列表时,多设备客户端 可利用能力信息。如果潜在的设备目标不能够打开所选择的文件,那么多 设备客户端可从目标列表排除该设备目的。以这种方式,多设备客户端可 定制目标列表,以包括仅那些具有能力打开所选择的文件的设备。多设备 客户端可基于附加或可选准则定制目标列表。例如,包括在目标列表中的 个体可以是用户所正参加的进行中的会议的参加者。将理解的是,多设备 客户端可采用准则的组合以构造目标列表。

返回参考图31,用户可从目标列表选择将所选择的文件传输到的目标 (方框3110)。在已经选择了目标后,多设备客户端可将所选择的文件上 传到存储所选择的文件的远程文件共享服务(方框3112)。多设备客户端 然后可通知云服务所选择的文件在文件共享服务处可用(方框3114)。到 云服务的通知可包括,例如,所选择的文件的目标、文件共享服务处文件 的位置(例如,对应于文件的URL)等等。云服务然后可通知目标设备文 件在文件共享服务处可用(方框3116)。到目标设备的通知可同样地包括 文件共享服务处文件的位置。

目标设备处的多设备客户端可根据用户是否和与该用户关联的设备 或与另一个个体关联的设备(例如,另一个个人设备)共享文件,而不同 地响应。特别地,当另一个用户共享文件时,多设备客户端可在移动设备 处呈现不唐突的通知。以这种方式,当参与其他计算活动时,多设备客户 端可避免中断用户。如图31中所示,如果目标设备不是共享文件的用户 的个人设备(方框3118:N),那么目标设备处的多设备客户端可显示通知, 即已经与目标设备共享了新文件(方框3120)。在接收了共享文件的通知 后,多设备客户端可提供给接收者选项,以接受或拒绝所共享的文件。如 果接收者不接受所共享的文件(方框3122:N),那么多设备客户端可等待 (方框3124),直至接收者接受所共享的文件,例如,通过提供输入请求 接收到所共享的文件。当接收者接受所共享的文件时(方框3122:Y),多 设备客户端可从文件共享服务检索文件(方框3126)。文件共享服务可相 对于多设备客户端驻留处的设备被远程地定位,并且可例如经由互联网可 访问。因此,多设备客户端可使用对应于文件共享服务处所共享文件的位 置URL将请求提交到文件共享服务。多设备客户端可从文件共享服务下 载文件,并在目标设备处启动适当的应用程序,以打开文件(方框3128)。

在一些示例实施中,多设备客户端可被配置为自动地响应于文件共 享。因此,如果目标设备是共享文件的用户的个人设备(方框3118:Y), 那么多设备客户端可在通知所共享的文件后,自动地从文件共享服务检索 所共享的文件(方框3130)。当多设备客户端从文件共享服务检索所共享 的文件时,多设备客户端还可自动地在目标设备处启动适当的应用程序, 以打开所共享的文件。

将理解的是,以上所描述的示例方法提供快速和有效的方式来共享例 如电子邮件附件。用户可使用简化共享过程的云服务来共享电子邮件附 件,而不是传送或创建新的电子邮件。以上所描述的示例还提供快速和有 效的方式,以与其他设备或个人共享在线演示或会议。用户可使用云服务 与另一个个体共享会议信息和细节,而不是使用户启动和登录以加入现有 会议,并且该会议可自动地在通过个体使用的设备处启动。类似地,云服 务允许参与者将在一个设备处呈现的在线会议传递到与参与者关联的另 一个设备。作为示例,个体可使用桌面计算设备参与在线会议。如果个体 因任何理由需要离开桌面设备,则个体可使用云服务以将会议传递到移动 设备,诸如平板计算设备或移动电话设备。以这种方式,当参与在线会议 时,用户不被绑定到任何特定设备,并且可当参与会议时有利地在设备之 间跳跃。

图32为跨设备URL共享的示例方法步骤的流程图3200。类似于选择 文件以共享,用户可选择URL以共享(方框3202),例如,通过突出URL。 用户然后可开始如以上所描述的跨设备请求(方框3204)并启动多设备客 户端(方框3206)。用户可从目标列表选择目标(方框3208),例如,另 一个设备或个体。使用所选择的目标,多设备客户端可将URL上传到云 服务(方框3210)。云服务可类似地通知目标设备所共享的URL(方框 3212)。通知可包括所共享的URL。

正如共享文件,目标设备处的多设备客户端可根据目标设备是否与共 享URL的用户或另一个个体关联,而不同地响应。如以上所指出,如果 目标设备不是共享URL的用户的个人设备(方框3214:N),那么多设备 客户端可显示指示所共享的URL的通知(方框3216),以便避免发生在目 标设备处的其他计算活动的任何中断。如果个体不接受所共享的URL(方 框3218:N),那么多设备客户端可等待(方框3220),直至接收了指示接 受所共享的URL的输入。当接收者接受所共享的URL时(方框3218:Y), 则多设备客户端可开始在目标设备处启动web浏览器以及关于所共享的 URL的请求(方框3222)。如果用户与另一个个人设备共享URL(方框 3214:Y),那么目标设备处的多设备客户端可自动地开始启动web浏览器 并请求所共享的URL(方框3224)。

云服务可被配置为以上下文敏感方式共享URL。特别地,云服务可为 不同类型的在线资源识别URL,例如,基于文本的网页和视频共享网页。 因此,云服务可基于URL类型自动地选择目标设备。作为示例,云服务 可识别URL为视频共享网站编址,并且作为响应选择大显示设备以与其 共享URL。以这种方式,云服务可有利地与设备共享URL,该设备适用 于呈现通过URL编址的内容。作为另一个示例,云服务可识别URL为基 于文本的网站编址,并且作为响应选择平板设备或桌面设备以与其共享 URL。云服务还可采用规则设置,以确定与哪个设备共享URL。例如,URL 共享规则设置可列出当共享与那些网站关联的URL时云服务应选择的各 种网站和设备或设备的类型。用户可根据他们的优选项配置规则设置,以 便当共享URL时自定义云共享服务的行为。规则设置可与个体用户关联, 以用于当那些用户共享URL时,并且附加地或可选地,云服务可维护可 应用于所有用户的全局规则设置。

图33为跨设备复制和粘贴功能的示例方法步骤的流程图3300。一般 来说,用户可在一个设备处选择内容,并将内容复制到云服务处的剪贴板, 其中其他用户可从该剪贴板将内容粘贴在他们自己的设备处。用户可首先 选择内容以共享(方框3302),例如,通过突出文本或以其他方式选择内 容。用户然后可开始如上所描述的跨设备请求(方框3304),并且多设备 客户端可启动或以其他方式激活(方框3306)。多设备客户端然后可将内 容上传到云服务的全局剪贴板(方框3308)。全局剪贴板对应于云服务处 的存储位置,其对连接到云服务的至少一些设备可访问。

当用户将内容复制到全局剪贴板时,云服务通知连接到云服务的一个 或多个设备新的剪贴板内容可用(方框3310)。用户可利用多设备客户端 以将全局剪贴板内容粘贴在他们各自的设备处。多设备客户端可针对全局 剪贴板内容将请求传输到云服务。当云服务接收请求时(方框3312),云 服务可将全局剪贴板内容下载到设备(方框3314)。在已经从云服务接收 了全局剪贴板内容后,用户可将内容粘贴到设备处的应用程序中(方框 3316)。

如以上所提出,设备可不具有打开与该设备共享的文件的能力。例如, 用于打开所共享的文件的应用程序可不安装在目标设备处。然而,云服务 和多设备客户端可被配置为处理其中目标设备不具有打开所共享的文件 的能力的情况。如下面更详细地描述,云服务可自动地启动虚拟环境,其 具有打开所共享的文件的能力,并且当目标设备不能够打开所共享的文件 时,多设备客户端可启动虚拟化客户端以连接到虚拟环境。

图34为用于在目标设备处启动所共享的文件的示例方法步骤的流程 图3400。云服务可接收所共享的文件的通知(方框3402),如上所讨论。 云服务然后可确定目标设备是否能够打开所共享的文件(方框3404)。如 以上所指出,云服务可存储设备能力信息,并因此可意识到连接到云服务 的设备的能力。设备当连接到云服务时,可在协商过程期间提供给云服务 它们各自的能力信息。如果目标设备能够打开所共享的文件(方框3406: Y),那么设备可启动适当的应用程序以打开所共享的文件,例如,自动地 或响应于接收到接受如上所讨论的所共享的文件的输入。

如果目标设备不能够打开所共享的文件(方框3406:N),那么云服务 可开始创建虚拟环境(方框3410)。云服务本身可本地创建并维护虚拟环 境,或者,附加地或可选地,相对于云服务远程定位的虚拟化服务器可创 建并维护虚拟环境。虚拟环境可被配置有打开所共享的文件的能力(方框 3412)。作为示例,虚拟环境可被配置为包括用于打开所共享的文件的应 用程序。虚拟环境还可被提供所共享的文件(方框3414)。作为示例,云 服务可提供给虚拟环境文件共享服务处所共享的文件的位置,并且虚拟环 境处的多设备客户端可从文件共享服务检索文件。在这方面上,还可将虚 拟环境考虑作为所共享的文件的目标。

一旦虚拟环境从文件共享服务检索了所共享的文件,则虚拟环境可启 动虚拟化应用程序以打开所共享的文件(方框3416)。目标设备处的多设 备客户端可启动虚拟化客户端(方框3418),并且虚拟化客户端可连接到 虚拟环境(方框3420)。以这种方式,用户可有利地跨越可不被配备为打 开那些文件的设备共享文件。更特别的示例可包括3D格式的计算机文件, 其可仅使用3D建模软件打开。移动电话可不配备打开3D文件的必需软件。 使用以上所描述的云服务和虚拟化方法,虚拟环境可启动3D建模软件的 虚拟化实例,并且移动电话处的虚拟化客户端可连接到虚拟环境,以访问 与移动电话设备共享的3D文件。根据本公开的利益,将理解的是其他实 际使用。

图56示出的是用于使用移动设备以及基于一个或多个策略文件管理 过程传递和设备整合的说明性方法,如上所述。最初,在步骤5601中, 可在移动电子设备上接收和/或安装受管应用程序,如本文所描述。在步骤 5603中,设备可分离地和/或明确地接收一个或多个策略文件,其例如基 于以上所讨论的一个或多个特征定义受管应用程序的一个或多个操作限 制和/或行为限制。尽管策略文件可作为分离文件被可选地接收,策略文件 可作为相同通信或安装过程的部分被接收,如同受管应用程序那样。

在步骤5605中,移动设备根据策略文件执行受管应用程序。也就是 说,移动设备安全性管理器(或等效过程)限制如通过一个或多个策略文 件定义的受管应用程序的操作。在步骤5607中,在受管应用程序的操作 期间以及基于一个或多个策略文件,受管应用程序可限制或实现设备的能 力,以传递过程或者与一个或多个其他设备和/或资源整合,如以上所讨论。 以上讨论了可被限制/实施的该策略文件和设备整合特征以及过程的各种 示例。

10、多个操作模式

用于管理移动设备上的企业应用程序的改善技术允许用户从他们自 己的移动设备访问企业应用程序,其中企业应用程序与用户自己的个人应 用程序和数据安全地共存。企业移动应用程序专门地以这种方式创建或修 改,即它们被迫通过各自的应用程序策略与移动设备上的其他应用程序和 服务交互。在移动设备上运行的每个企业移动应用程序具有关联策略,其 中企业移动应用程序通过该关联策略与其环境交互。策略根据企业所建立 的规则选择性地阻碍或允许涉及企业应用程序的活动。同时,在移动设备 上运行的企业应用程序形成一组受管应用程序。与受管应用程序中的每个 关联的策略包括其他受管应用程序中的每个的记录。通常,用于与受管应 用程序交互的策略设置不同于用于与其他应用程序(即,不是受管组的部 分的应用程序,诸如用户的个人移动应用程序)交互的策略设置。受管应 用程序通常被允许与其他受管应用程序交换数据,但被阻碍与诸如用户自 己的个人应用程序的其他应用程序交换数据。在一些示例中,受管应用程 序的应用程序策略被配置为,只有当其他应用程序也为受管应用程序时, 允许在一个受管应用程序中呈现的链接和/或图标在另一个应用程序中跟 随或打开。

例如,受管电子邮件应用程序可被配置为,通过其策略,允许附件在 受管PDF注解器中打开。但相同的受管电子邮件应用程序可被配置为防止 相同附件在不是受管组的部分的PDF注解器中打开。

通过将受管应用程序约束为通过企业管理的策略在移动设备上交互, 因此,可使受管应用程序组与受管应用程序组中的其他应用程序进行操 作,但可阻止与不是受管组的部分的应用程序操作。由于可将个人信息接 收到受管应用程序组中,因此可防止企业信息从受管应用程序组泄漏。某 些实施例是针对在移动设备上管理企业的应用程序的方法。方法包括将企 业的一组受管应用程序安装在移动设备上,其中将不是受管应用程序组的 部分的其他应用程序安装在移动设备上。方法进一步包括接收一组应用程 序策略,其中受管应用程序组中的每个与应用程序策略组中的各个策略关 联。方法还进一步包括响应于访问第一应用程序的策略以及从第一应用程 序的策略读取第二应用程序是受管应用程序组的成员的指示,选择性地允 许受管应用程序组的第一应用程序将数据提供到安装在移动设备上的第 二应用程序,以及响应于访问第一应用程序的策略以及未能从第一应用程 序的策略读取第三应用程序的受管应用程序组的成员的指示,选择性地阻 碍第一应用程序将数据提供到安装在移动设备上的第三应用程序。

用于管理移动设备上的企业应用程序的改善技术,允许用户从他们自 己的移动设备,访问企业应用程序,其中企业应用程序与用户自己的个人 应用程序和数据安全地共存。

安全数据共享,通过创建可彼此共享文件和/或数据的受管应用程序组 完成,但选择性地被禁止与不是受管组的部分的应用程序共享文件和/或数 据。因此,实现了两个目标:(1)防止数据从受管组泄漏,以及(2)允 许在受管组内的应用程序之间共享数据。图35示出的是其中可实践其实 施例的示例环境。此处,诸如智能电话、平板电脑、PDA等等的移动设备 3510已经在其上安装了各种移动应用程序。移动应用程序包括一组3520 受管应用程序3522、3524和3526和个人应用程序3530。在一些示例中, 企业移动性管理(EMM)客户端3540也被安装在移动设备3510上。EMM 客户端3540被配置为例如经由诸如互联网的网络与EMM服务器3550连 接,该EMM服务器3550通常包括认证服务器3552和应用程序商店3554。 EMM客户端3540的示例为从思杰(Citrix)可获得的客户端代理。EMM 服务器3550的示例为网关服务器,其提供对企业资源和/或云资源的访问。 受管应用程序组3520中的每个应用程序与各自的策略关联。例如,应用 程序3522与策略3522a关联,应用程序3524与策略3524a关联,以及应 用程序3526与策略3526a关联。在一些示例中,以诸如XML或JSON文 件的文件形式提供策略3522a、3524a和3526a,其中各自的策略被表述为 一组密钥/值对。在示例中,策略3522a、3524a和3526a中的每个包括受 管应用程序组3520内的所有应用程序的记录,例如,如以上所讨论。受 管应用程序组3520中的每个被专门设计或修改用于与企业使用。可为企 业专门设计受管应用程序组3520中的一些。受管应用程序组3520中的其 他为更广泛使用的应用程序(例如,公共可用),其已经被专门地修改以 用于企业使用。受管应用程序组3520中每个包括植入代码,其使应用程 序能够遵守企业的框架。可使用SDK将植入代码编译到应用程序中。可 选地,可作为围绕通用应用程序的封套应用植入代码,以将其修改以用于 企业使用。通常,植入代码用于将来自应用程序的API调用转向其关联策 略,使得策略可选择性地允许或阻碍由API调用指定的活动。

在典型操作中,移动设备3510的用户开启EMM客户端3540,经由 认证服务器3552登录到EMM服务器3550,并访问应用程序商店3554。 用户然后可仔细查看从应用程序商店3554可获得的企业应用程序,选择 所需应用程序,并将它们下载到移动设备3510,其中所下载的应用程序被 包括在受管应用程序组3520中。对于每个所下载的应用程序,还可将相 应策略下载到移动设备,并更新组3520中的所有应用程序的策略以反映 组3520的所有成员。在示例中,周期性地和/或响应于特定事件刷新策略 (例如,3522a、3524a和3526a),诸如每次开启各个应用程序以及/或者 每次用户登录到EMM服务器3550时。因此可随着时间的推移修改策略并 从EMM服务器3550将其动态地传递到移动设备3510。

根据策略3522、3524和3526的设置,受管应用程序组3520内的应 用程序可被约束为仅与组3520内的其他应用程序交换文件和/或数据。例 如,通过应用程序3522的植入代码截获来自应用程序3522的API调用。 读取策略3522a,并根据策略3522a中的设置阻碍或允许由API调用指定 的操作。由于策略3522a具有受管应用程序组3520中的所有应用程序的记 录,因此应用程序3522可通过读取策略3522a测试所请求的API调用操 作是否包括组3520内或组3520外的应用程序,并相应地允许或阻碍活动。 因此,基于策略设置,可限制数据的移动,使得受管应用程序组3520内 的数据不与受管组外的数据混杂(例如,与应用程序3530)。

在一些示例中,可将移动设备3510上的受管应用程序组3520中的应 用程序分配到不同的群组。在该类情况下,更新策略(例如,3522a、3524a 和3526a)以包括群组和群组成员的记录。因此可进一步将应用程序之间 的文件和/或数据流限制到特定群组的成员。假设受管组3520内的不同的 移动应用程序群组可有助于处理较低敏感数据的那些应用程序与处理较 高敏感数据的应用程序隔离。

应理解的是,在许多情况中,可执行截获API调用、咨询应用程序的 策略,以及基于策略允许或阻碍由API调用指定的操作的上述过程。在一 个示例中,以上过程可被应用于选择移动设备3510上的一组应用程序, 其可用于打开文件或者由链接或图标(例如,使用打开为)识别的数据元 素。在另一个示例中,以上过程可被应用于从一个应用程序复制数据或数 据对象以及将数据或数据对象粘贴到另一个应用程序中(例如,经由隐藏、 加密的粘贴缓冲器)。在另一个示例中,以上过程可被应用于将文件移动 到和/或移动出所保护的文件保险库。本质上,用于将数据移动到和/或移 动出应用程序的任何操作可使用以上技术。

进一步理解的是,该技术可不仅应用到数据到其他应用程序的移动, 还应用到记录、图片、打印、音频回放和其他功能。

可为移动设备3510获得操作系统扩展。一个该操作系统扩展,通过 在移动设备3510上显示能够打开数据对象的应用程序列表,来对应于用 户指向表示诸如文件的数据对象的链接或图标。该操作系统扩展的示例为 “打开为”,其在iOS设备上可用。类似扩展可用于基于安卓和Windows 8 设备。

在示例中,受管应用程序组3520内的应用程序支持打开为的使用, 但基于各个应用程序的策略,限制被显示用于打开所选择的数据对象的应 用程序列表。例如,根据策略3522a,可将当从应用程序3522调用打开为 时所显示的应用程序列表限制到仅受管组3520中的其他应用程序。因此, 在该示例中,打开为列出仅(1)受管组3520内的且(2)与数据对象兼 容的应用程序。在诸如iOS、安卓和Windows 8的移动操作系统上,每个 应用程序在其自己的沙盒中运行。这些应用程序使用非常高级别内容共享 机制,如iOS中的打开为、安卓中的意图/活动和Windows 8中的超级按钮。 在BYOD(带你自己的设备)移动设备上,其将具有在设备上运行的受管 和非受管/个人应用程序的混合。此处,我们关注如何使数据能够在受管应 用程序组之间共享。

在如iOS的现代移动操作系统上,通过设计为隐藏复杂性,文件系统 不真实地曝露于终端用户。而关注是在他们处理的应用程序和数据上。

存在数据可移入和移出设备的许多方式。主要的示例包括电子邮件、 基于云的数据/文件共享服务、浏览器等等。然后需要在受管应用程序之间 移动数据,以完成实际工作。

描述了以多个模式操作应用程序的方法和系统。可在移动设备上将多 个应用程序呈现给用户,并且可选择所显示的应用程序中的一个。所选择 的应用程序可具有被确定的一个或多个上下文。例如,所选择的应用程序 的上下文可以是应用程序被配置为访问企业账户。基于上下文,所选择的 应用程序可以以多个操作模式中的一个在移动设备上运行。操作模式可包 括非受管模式以及一个或多个受管模式,等等。多个受管模式可被用于提 供不同级别的安全性、对不同资源的访问等等。

在实施例中,所选择的应用程序的上下文可包括,通过所选择的应用 程序访问的账户、将运行所选择的应用程序的移动设备的位置、关于预定 的应用程序是否在移动设备上运行的确定、移动设备的一个或多个网络连 接,以及移动设备的一个或多个设置。这些上下文中的一个或多个可与策 略比较,以为所选择的应用程序确定操作模式。

在另一个实施例中,可为所选择的应用程序切换操作模式。当运行时, 可为所选择的应用程序监测一个或多个上下文,并且可基于监测检测操作 模式中的改变。例如,可为所选择的应用程序改变一个或多个上下文,并 且策略可定义将改变所选择的应用程序的操作模式。因此,可将操作模式 切换到所更新的操作模式。

在实施例中,可通过分区、通过策略、通过一个或多个沙盒或任何其 他合适配置,控制能够以多个模式运行的应用程序,例如,受管模式和/ 或非受管模式等等。例如,受管操作模式可包括作为移动设备的受管分区 部分运行应用程序。在实施例中,以受管模式运行的应用程序可访问存储 在安全数据容器中的数据,该安全数据容器在移动设备的受管分区中。安 全数据容器中所存储的数据可包括被限制到具体安全应用程序、在其他安 全应用程序之间共享的数据等等。被限制到安全应用程序的数据可包括安 全通用数据和高安全数据。安全通用数据可使用诸如AES 128位加密等等 的强加密形式,而高安全数据可使用诸如AES 256位加密的非常强的加密 形式。在实施例中,以受管模式运行的应用程序可保存、修改或删除安全 数据容器中的数据。可类似于安全数据容器中所存储的其他数据对所保存 或修改的数据加密。在该示例中,非受管操作模式可包括运行作为非受管 分区的部分应用程序,如以上所述。

在实施例中,可通过策略,控制以受管模式或非受管模式运行的应用 程序。如此,一个或多个策略可定义以受管模式运行的应用程序,可访问 安全数据(例如,安全数据容器中的数据、加密数据,诸如以特定密钥加 密的数据或任何其他合适的安全数据)、可与安全服务器(例如,网关服 务器)通信、可通过设备管理器(例如,设备管理器)或任何其他合适策 略进行管理。一个或多个策略还可定义以非受管模式运行的应用程序,可 不访问安全数据(例如,安全数据容器中的数据、加密数据,诸如以特定 密钥加密的数据或任何其他合适的安全数据)、可不与安全服务器(例如, 网关服务器)通信、可访问非安全数据(例如,非安全数据容器、非加密 数据或任何其他非安全数据)或任何其他合适的策略。在该示例中,以受 管模式运行的应用程序以及以非受管模式运行的应用程序可包括分区(例 如,受管分区和非受管分区)或可不包括分区。

在实施例中,可通过一个或多个沙盒,控制以受管模式或以非受管模 式运行的应用程序。沙盒可包括设备的物理分区或虚拟化分区,其中在沙 盒中运行的应用程序可包括访问策略,其不同于不在沙盒中运行的应用程 序的访问策略。例如,以受管模式运行的应用程序可在包括用于受管模式 的策略的沙盒中运行,诸如本文所描述的策略。在另一个示例中,以非受 管模式运行的应用程序可在包括非受管模式的策略的沙盒中运行,诸如本 文所描述的策略。在该示例中,以受管模式运行的应用程序以及以非受管 模式运行的应用程序可包括分区(例如,受管分区和非受管分区)或可不 包括分区。

图36示出的是移动设备的样本接口,并且图37-43示出用于确定应用 程序的操作模式的方法的样本实施例。可在各种实施例中以任何合适的方 式组合图37-43中所示的方法。可在诸如设备107、109、240、502和/或 602的移动设备上显示图36中所描绘的样本接口,并且可通过该移动设备 实施图37-43中所示的方法。

在图37中,示出了用于确定应用程序模式的示例方法步骤的流程图。 图37的方法可在步骤3702处开始,其中呈现了多个应用程序。例如,可 在移动设备上将多个应用程序呈现给用户。图35示出其中移动设备(例 如,平板电脑、智能电话等等)上所显示的用户接口700将应用程序A 700、 B 701、C 702和E 703呈现给用户的实施例。这仅为示例,并且可以用任 何合适的方式呈现多个应用程序。在实施例中,多个应用程序可包括电子 邮件应用程序、web浏览应用程序、软件即服务(SaaS)访问应用程序等 等。

图37的方法可从步骤3702进行到步骤3704,其中接收多个应用程序 中的一个的选择。参考图35中所示的实施例,移动设备的用户可通过例 如按压移动设备的显示器选择所呈现的应用程序中的一个,以选择应用程 序。这仅为示例,并且可以用任何合适的方式选择应用程序。

图37的方法可从步骤3704进行到步骤3706,其中基于执行所选择的 应用程序的设备的一个或多个操作参数来确定所选择的应用程序的上下 文。例如,上下文可以,基于通过应用程序访问的账户、移动设备的位置 或者执行应用程序的移动设备的连接性状态,或基于任何其他操作参数。 下面进一步所描述的图38-42的方法示出其中描述了示例上下文的各种实 施例。

图37的方法可从步骤3704进行到步骤3706,其中基于上下文确定所 选择的应用程序的操作模式。在实施例中,操作模式可包括受管模式和非 受管模式。可存在多个不同的受管模式,例如,基于各种用户的不同安全 性级别或由用户提供的凭证组、由一组凭证识别的不同用户角色(例如, 管理人员与员工)、从其操作设备的地理位置、网络位置、操作环境(例 如,医疗保健相关的受管模式与金融行业受管模式),或基于任何其他上 下文确定。

在实施例中,可将所确定的上下文与所存储的策略比较,以便确定操 作模式。诸如移动设备302的移动设备可存储一个或多个策略,其用于确 定应用程序的操作模式。在实施例中,策略可被远程地存储,诸如在如以 上参考图3所描述的策略管理器370处,或者可被本地存储在设备上。在 示例中,上下文可包括被配置为访问安全账户的所选择的应用程序,诸如 被配置为访问安全电子邮件账户的电子邮件应用程序。该上下文可与所存 储的策略比较。例如,所存储的策略可定义电子邮件应用程序,其被配置 为访问将作为受管应用程序运行的安全电子邮件账户。所存储的策略可进 一步指示当电子邮件应用程序被配置为访问设备用户的个人账户时,其可 以非受管模式进行操作。将参考图38-42描述附加上下文和策略。

图37的方法可从步骤3706进行到步骤3708,其中所选择的应用程序 以所确定的操作模式运行。例如,操作模式可确定为非受管的,或为多个 受管模式中的一个,并且所选择的应用程序可以所确定的模式运行。

在实施例中,受管操作模式可包括作为移动设备302的受管分区310 的部分运行应用程序,如以上参考图3所描述。如此,受管应用程序可作 为安全本机应用程序314、通过安全应用程序启动器318执行的安全远程 应用程序322、通过安全应用程序启动器318执行的虚拟化应用程序326 等等运行。

在实施例中,以受管模式运行的应用程序可访问存储在移动设备的受 管分区310(物理、逻辑或虚拟)中的安全数据容器328中的数据。安全 数据容器328中所存储的数据可包括被限制到具体安全/受管应用程序 330、在其他安全应用程序之间共享的数据等等。被限制到安全应用程序 的数据可包括安全通用数据334和高安全数据338。不同级别和类型的安 全性特征可用于区分安全数据的级别。在实施例中,以受管模式运行的应 用程序可保存、修改或删除安全数据容器328中的数据。可类似于安全数 据容器328中所存储的其他数据对所保存的或修改的数据加密。

在实施例中,以受管模式运行的应用程序可通过虚拟私有网络连接连 接到企业资源304和企业服务308,如关于参考图3所描述。虚拟私有网 络连接可为微VPN,其专用于诸如所选择的应用程序的特定应用程序、特 定设备、移动设备上的特定安全区域等等。例如,电话的安全区域中的封 装的应用程序可通过应用程序专用VPN访问企业资源,使得将基于与应 用程序关联的属性、还可能结合用户或设备属性信息、和策略信息,授予 对VPN的访问。

在实施例中,以受管模式运行的应用程序可对从应用程序传输的数据 加密。例如,以受管模式运行的应用程序可经由网络与计算设备通信,并 且可对从应用程序传输到设备的数据加密。另外,可还对从计算设备传递 到应用程序的数据加密,并且以受管模式运行的应用程序可被配置为对所 接收的数据加密。

在实施例中,以受管模式运行的应用程序可访问安全门户。例如,应 用程序可经由例如微VPN的网络连接到计算设备,并且可访问不可通过 非安全应用程序访问的安全门户,诸如以非受管模式运行的应用程序。

在实施例中,非受管操作模式可包括运行作为移动设备302的非受管 分区312的部分的应用程序,如以上参考图3所描述。在非受管模式中, 应用程序可访问存储在移动设备302的非受管分区312上的非安全数据容 器342中的数据。存储在非安全数据容器中的数据可为个人数据344。

在实施例中,其中多于一个受管模式是可能的,以较低安全受管模式 运行的应用程序可类似于以较高安全受管模式运行的应用程序,但可不包 括后者的所有方面。例如,以较低安全受管模式运行的应用程序可使经由 网络从应用程序传输的信息被加密,但应用程序可无权访问安全数据容器 328,如参考图3所描述。在另一个示例中,以较低安全受管模式运行的 应用程序可有权访问安全数据容器328,但可能不能够通过虚拟私有网络 连接连接到企业资源304和企业服务308。因此,根据所确定的上下文, 以较低安全受管模式运行的应用程序可包括以更安全受管模式运行的应 用程序的方面以及以非受管模式运行的应用程序的方面。

在图38-42中,示出了用于确定应用程序的上下文和操作模式的示例 方法步骤的流程图。在实施例中,图37的步骤3706和1608可包括图38-42 中的任何一个或多个的方法步骤。图38的方法可在步骤3802处开始,其 中检测了通过所选择的应用程序访问的账户。例如,所选择的应用程序可 包括电子邮件应用程序,并且可检测电子邮件应用程序被配置用于访问的 企业电子邮件账户。在该示例中,电子邮件应用程序可以能够访问多个电 子邮件账户,诸如企业电子邮件账户和个人电子邮件账户,并且电子邮件 应用程序被配置为在运行时访问的账户可被确定为将被访问的上下文账 户。

图38的方法可从步骤3802进行到步骤3804,其中可确定将被访问的 账户的账户类型。账户类型可包括所选择的应用程序的上下文。例如,所 选择的应用程序可包括电子邮件应用程序,并且电子邮件应用程序可被配 置为访问企业账户。在另一个示例中,电子邮件应用程序可被配置为访问 个人账户。

图38的方法可从步骤3804进行到步骤3806,其中账户类型可与账户 类型策略比较。例如,策略可定义访问企业账户的电子邮件应用程序应以 受管模式运行,并且访问个人账户的电子邮件应用程序应以非受管模式运 行。图38的方法可从步骤3806进行到步骤3808,其中基于比较确定操作 模式。

图39的方法可在步骤3902处开始,此处确定移动设备的位置。例如, 诸如移动设备302的移动设备可实施图39的方法,并且可确定移动设备 的位置。可通过GPS、信号三角测量或任何其他合适方式或以其他方式的 已知的方式来确定位置。位置可包括所选择的应用程序的上下文。

图39的方法可从步骤3902进行到步骤3904,其中所确定的位置可与 位置策略比较。例如,策略可定义当在某一位置中时,例如,当在公司场 所时,所选择的应用程序以受管模式运行。在实施例中,策略可定义当在 某一位置中时,例如,当所确定的位置在美国内部但不在公司场所时,所 选择的应用程序以较低安全受管模式运行。例如,较低安全受管模式可对 往返所选择的应用程序的通信加密,但可不允许访问企业资源,诸如资源 304。在另一个实施例中,策略可定义,当在某一位置中时,例如,当所 确定的位置在美国之外时,所选择的应用程序以非受管模式运行。图39 的方法可从步骤3904进行到步骤3906,其中基于比较,确定操作模式。

可选地或除了物理位置以外,网络位置还可或相反用于确定是否允许 访问。例如,网络位置可指用户是否在数据中心(或预批准的WiFi访问 点)内部或在数据中心外部。适当的访问模式可以基于该确定。

图40的方法可在步骤4002处开始,其中其监测预定应用程序是否正 在设备上运行。例如,诸如移动设备302的移动设备可实施图40的方法, 并且可监测移动设备以确定预定应用程序是否正在运行。预定应用程序可 包括能够在移动设备上运行的任何应用程序,诸如参考图4所描述的客户 端代理404。所监测的预定应用程序可包括所选择的应用程序的上下文。

图40的方法可从步骤4002进行到步骤4004,其中所监测的应用程序 与策略比较。例如,策略可定义,当诸如客户端代理404的预定应用程序 正在运行时,所选择的应用程序以受管模式运行,以及当预定应用程序未 在运行时,所选择的应用程序以非受管模式运行。图40的方法可从步骤 4004进行到步骤4006,其中基于比较,确定操作模式。

图41的方法可在步骤4102处开始,检测一个或多个网络连接。例如, 诸如移动设备302的移动设备可实施图41的方法,并且可检测移动设备 作出的网络连接。在示例中,网络连接可包括到蜂窝网络的连接、到WIFI 网络的连接或到无线局域网(WLAN)的连接等等。一个或多个网络连接 可包括关于所选择的应用程序的上下文。

图41的方法可从步骤4102进行到步骤4104,其中所检测的网络连接 与网络连接策略比较。例如,策略可定义,当移动设备连接到内部网络, 诸如公司内部的WLAN时,所选择的应用程序以受管模式运行,以及当 移动设备仅连接到无线网络,诸如蜂窝网络或WIFI网络时,所选择的应 用程序以非受管模式运行。图41的方法可从步骤4104进行到步骤4106, 其中基于比较,确定操作模式。

图42的方法可在步骤4202处开始,其中检测了移动设备的一个或多 个设置。例如,诸如移动设备302的移动设备可实施图42的方法,并且 可检测移动设备的一个或多个设置。在示例中,其可检测移动设备是否具 有锁定屏幕,诸如使用移动设备所要求的PIN,或者其可检测移动设备是 否被越狱/生根,例如,已经接收售后(after-market)修改。一个或多个设 置可包括所选择的应用程序的上下文。

图42的方法可从步骤4202进行到步骤4202,其中所检测的设置与设 置策略比较。例如,策略可定义,如果移动设备不具有锁定屏幕,或者如 果移动设备被越狱/生根,则所选择的应用程序可不以受管模式运行。图 42的方法可从步骤4206进行到步骤4206,其中基于比较,确定操作模式。 在实施例中,当以所确定的模式运行所选择的应用程序时,可在移动设备 上显示指示符,其通知用户某些策略,诸如在允许移动设备以受管模式运 行所选择的应用程序之前,要求移动设备具有锁定屏幕。图38-42描述多 个上下文和任何其他合适的上下文,并且可实施的相应策略。

在实施例中,可组合图38-42中所描述的一个或多个上下文,并且这 些上下文可与所选择的应用程序的策略比较。例如,所选择的应用程序的 上下文可包括将被作为企业电子邮件账户访问的账户类型以及作为蜂窝 网络的所检测的网络连接。在该示例中,策略可定义,当试图经由蜂窝网 络访问企业账户时,所选择的应用程序应以受管模式运行。由于所选择的 应用程序可加密与企业电子邮件账户的通信,因此可以用这种方式定义策 略,并且因此可减轻经由蜂窝网络发送安全流量的风险。

在另一个示例中,所选择的应用程序的上下文可包括美国之外的所确 定的位置以及与公司内部的WLAN的网络连接。策略可定义,当所确定 的位置在美国之外以及网络连接是与公司内部的WLAN连接时,所选择 的应用程序以受管模式运行。由于连接到公司内部的WLAN的网络连接 减轻与美国之外的安全通信关联的风险,因此可以用这种方式定义策略。

在实施例中,图38-42中所描述的一个或多个上下文可包括优先级。 例如,所选择的应用程序的上下文可包括如越狱或生根的移动设备设置, 并且策略可定义,当上下文指示越狱/生根的移动设备时,所选择的应用程 序将仅以非受管模式运行,而与其他上下文所指示的内容无关。因此,即 使当移动设备连接到公司内部的WLAN或者如果所选择的应用程序试图 访问企业账户时,越狱/生根的移动设备将使所选择的应用程序以非受管模 式运行,。

在实施例中,基于图38-42中所描述的多个上下文,策略可指示,所 选择的应用程序将以较低安全受管模式运行。例如,所选择的应用程序的 上下文可包括,将根据企业电子邮件账户访问的账户类型以及作为蜂窝网 络的所检测的网络连接。在该示例中,策略可定义,当试图经由蜂窝网络 访问企业账户时,所选择的应用程序应以较低安全受管模式运行。较低安 全受管模式可对往返所选择的应用程序的通信加密,但可能不允许访问企 业资源,诸如资源304。由于被加密的与企业电子邮件账户的通信可能是 低风险通信,且允许访问企业资源可能是高风险通信,因此可以用这种方 式定义策略。

在图43中,示出了用于切换应用程序的操作模式的示例方法步骤的 流程图。例如,图43的方法步骤可跟随图37的方法步骤。图43的方法 可在步骤4302处开始,其中当所选择的应用程序运行时,可监测一个或 多个上下文。在实施例中,可监测参考图38-42描述的一个或多个上下文。 例如,运行所选择的应用程序的移动设备可连接到蜂窝网络,并且当所选 择的应用程序运行时,移动设备可作出与公司内部的WLAN的新的网络 连接。

图43的方法可从步骤4302进行到步骤4304,其中基于监测,检测所 选择的应用程序的操作模式的改变。换句话说,移动设备可检测形成用于 选择特定操作模式的基础的信息中的改变。例如,所选择的应用程序可以 以非受管模式运行,并且一旦运行所选择的应用程序的移动应用程序连接 到公司内部的WLAN,则策略可定义,所选择的应用程序的操作模式应切 换到受管模式。图43的方法可从步骤4304进行到步骤4306,其中切换了 所选择的应用程序的操作模式。

图55示出的是基于移动设备上的应用程序的操作模式选择策略文件 的说明性方法。最初,在步骤5501中,可在移动电子设备上接收和/或安 装受管应用程序,如本文所描述,其中受管应用程序能够以至少两个不同 的操作模式执行。在步骤5503中,设备可分离地和/或明确地接收一个或 多个策略文件,其例如基于以上所讨论的一个或多个特征定义受管应用程 序的一个或多个操作限制和/或行为限制。尽管策略文件可作为分离文件被 选地接收,但是策略文件可被接收作为相同通信或安装过程的部分,如同 受管应用程序那样。设备可为每个操作模式接收不同的策略文件,或者可 仅为一个操作模式接收策略文件。也就是说,非受管模式可不与任何策略 文件关联。

在步骤5505中,移动设备确定受管应用程序的操作模式,例如,受 管应用程序是否以受管模式或非受管模式执行。在步骤5507中,设备可 选择一个或多个策略文件(或零策略文件,例如,以非受管模式)以应用 到受管应用程序的当前操作模式。以上讨论了可被限制/实施的该策略文件 和多模式特征及过程的各种示例。

11、企业应用程序应用程序商店

如上所讨论,返回参考图3,企业移动性技术体系结构300可包括应 用程序商店378。应用程序商店378可包括非封装的应用程序380、预封 装的应用程序382等等。可从应用程序控制器374在应用程序商店378中 填充应用程序。经访问网关360、经公共互联网348等等,可通过移动设 备302访问应用程序商店378。应用程序商店可被提供直观且易于使用的 用户接口。应用程序商店378可提供对软件开发工具包384的访问。软件 开发具包384可给用户提供通过封装如本说明书中先前所描述的应用程序 来保护用户所选择的应用程序的能力。已经使用软件开发具包384封装的 应用程序然后可通过使用应用程序控制器374将其填充在应用程序商店 378中对移动设备302有用。

企业移动性技术体系结构300可包括管理和分析能力。管理和分析能 力可提供与应用程序被如何下载和/或使用、应用程序被多久一次下载和/ 或使用等等相关的信息。应用程序被如何使用可包括,哪个设备下载哪个 应用程序、哪个应用程序访问哪个数据等等。应用程序被多久一次使用可 包括,应用程序已经多久一次被下载了、已经通过应用程序访问了具体数 据集多少次、应用程序多久一次被启动、被共享、被接合、被参考、被调 用序等等。

在一些实施例中,包括在移动服务管理接口(例如,步骤620中提供 的移动服务管理接口)中的一个或多个控制可进一步被配置为允许管理用 户针对一个或多个应用程序的不同用户定义不同的策略。例如,包括在移 动服务管理接口中的一个或多个控制可被配置为允许管理用户相对于特 定应用程序为第一用户或第一群组用户定义第一策略,以及进一步被配置 为允许管理用户相对于相同应用程序为第二用户或第二群组用户定义第 二策略,其中第二策略不同于第一策略且第二用户或第二群组用户不同于 第一用户或第一群组用户。

在一个或多个布置中,包括在EMM或企业应用程序商店接口中的一 个或多个控制可进一步被配置为允许管理用户为应用程序商店上的不同 用户角色和/或应用程序定义不同策略。例如,管理用户可使用该控制相对 于可应用于企业应用程序商店中的特定应用程序定义,用于具有企业中的 第一角色(例如,信息安全性)的第一用户或第一群组用户的第一策略, 以及用于企业中的第二角色(例如,销售)的第二用户或第二群组用户的 第二策略,其中第二策略不同于第一策略(例如,在应用程序中所启用和 /或禁用的功能方面,当应用程序运行时在设备上启用和/或禁用的功能, 能够和/或不能够通过应用程序以及/或者当应用程序运行时访问的企业资 源和/或其他资源等等)。

在一些实施例中,可响应于在企业应用程序商店处接收一个或多个应 用程序来提供EMM或商店接口。例如,在管理用户将特定应用程序上传 到企业应用程序商店和/或以其他方式提供特定应用程序给企业应用程序 商店之后,企业应用程序商店可响应于接收应用程序提供移动服务管理接 口(例如,其可被配置为允许管理用户为刚刚已经被上传的应用程序定义 一个或多个策略)。例如,使用这些特征,企业应用程序商店的管理用户 可配置应用程序,即他或她正在为企业应用程序商店的非管理用户上传应 用程序到企业应用程序商店以及/或者以其他方式使应用程序在企业应用 程序商店中可用。例如,管理用户可以能够使用移动服务管理接口以为刚 刚已经被上传到企业应用程序商店的以及/或者以其他方式被添加到企业 应用程序商店的应用程序初始地定义策略。

在一些实例中,在提供了应用程序商店接口之后,可经由应用程序商 店接口接收应用程序的策略改变。例如,在一些实例中,企业应用程序商 店可接收特定应用程序的策略改变。例如,该策略改变可被接收作为管理 用户经由应用程序商店接口提供的用户输入。

基于接收该种策略改变,可将与策略改变关联的信息自动提供到已经 从应用程序商店下载了应用程序的一个或多个移动设备。例如,企业应用 程序商店可将指定策略改变细节的信息提供到可通过策略改变影响的一 个或多个应用程序和/或设备。在一些实例中,在将该信息提供到受影响的 应用程序和/或设备之前,企业应用程序商店可基于各种应用程序和用户的 下载历史信息、各种应用程序和用户的更新和/或版本历史信息、各种应用 程序和用户的设备上监测信息,以及各种应用程序和用户(例如,其可为 特定应用程序和/或特定用户指定当前哪些策略在应有的位置上、先前已经 应用了哪些策略等等)的策略信息,来识别哪些应用程序和/或设备受策略 改变影响。

在一些实施例中,在验证了管理用户的认证凭证之后,可从管理用户 在应用程序商店处接收新的应用程序。例如,在验证了管理用户的认证凭 证之后,企业应用程序商店可接收新的应用程序,其中新的应用程序是通 过管理用户(以及/或者通过正被管理用户使用的一个或多个计算设备)上 传到(以及/或者仅被上传到)企业应用程序商店。

在从管理用户接收该新的应用程序(以及/或者响应于从管理用户接收 新的应用程序)之后,应用程序商店可提示管理用户,定义将被应用到新 的应用程序的一个或多个策略。例如,在提示管理用户定义该策略中,企 业应用程序商店可为新的应用程序定义一个或多个相关策略。例如,相关 策略可包括,能够和/或应该被应用到新的应用程序的策略(例如,基于策 略的性质、基于应用程序的性质、基于通过企业和/或正在部署企业应用程 序商店以及/或者以其他方式提供企业应用程序商店的其他组织使用的一 个或多个默认策略、基于由其他管理用户提供的推荐信息等等)。然后, 在为新的应用程序识别一个或多个相关策略之后,例如,企业应用程序商 店可更新应用程序商店接口以包括至少一个控制,该至少一个控制被配置 为允许管理用户管理一个或多个所识别的策略。例如,企业应用程序商店 可更新应用程序商店接口以包括一个或多个控制,其使管理用户能够启用 和/或禁用被识别为相关的一个或多个策略,以及设置和/或修改各种属性 和/或可用于定义以及/或者实施在各种设备上的这些策略的设置。

在提示管理用户定义将被应用到新的应用程序的一个或多个策略(以 及/或者基于响应于提示以从管理用户接收输入和/或其他信息)之后,应 用程序商店可从管理用户接收将被应用到新的应用程序的至少一个策略。 例如,企业应用程序商店可经由以上示例中所讨论的所更新的应用程序商 店接口接收一个或多个选择以及/或者管理用户所提供的其他输入。以这种 方式,例如,管理用户可以能够定义将被应用到新的应用程序的一个或多 个策略,其中管理用户已经将该新的应用程序添加到应用程序商店。另外, 例如,如果以及/或者当应用程序被提供到一个或多个接收设备(例如,通 过非管理用户使用的一个或多个移动设备)以及/或者由一个或多个接收设 备执行时,可将由管理用户定义的一个或多个策略应用到新的应用程序。

图47示出的是说明根据本文所讨论的一个或多个说明性方面使用企 业应用程序商店将策略更新提供给受管应用程序的方法的流程图。在一个 或多个实施例中,可通过计算设备(例如,本文所描述的任何设备)执行 图47中示出的方法和/或其一个或多个步骤。在其他实施例中,可以用计 算机可执行指令实施图47中示出的方法和/或其一个或多个步骤,其中计 算机可执行指令存储在诸如非暂时性计算机可读存储器的计算机可读介 质中。

如图47所示,方法可在步骤4705处开始,其中可在来自策略代理的 企业应用程序商店处接收关于至少一个应用程序的更新的策略信息请求。 例如,在步骤4705中,类似于以上示例中所讨论的企业应用程序商店, 企业应用程序商店可接收关于更新的策略信息请求。可使请求与策略有 关,该策略可被应用到(或者可被配置为被应用到)特定应用程序,并且 该策略可例如从策略代理接收到,该策略代理驻留在、执行于用户计算设 备(例如,移动设备,诸如智能电话、平板计算机等等)上,以及/或者以 其他方式由用户计算设备提供。

在一些实例中,可在执行封装的应用程序后(例如,通过步骤805中 的企业应用程序商店)接收关于更新的策略信息请求。例如,在用户计算 设备开始执行封装的应用程序之后,企业应用程序商店可接收关于更新的 策略信息请求。例如,该封装的应用程序可包括企业应用程序以及应用程 序封套,其可被配置为相对企业应用程序和/或其上正在执行封装的应用程 序的设备实施一个或多个策略。另外,例如,该应用程序封套可实施以上 所讨论的应用程序管理框架414的一个或多个方面。

在一些实例中,策略代理(例如,在步骤4705中,从该策略代理接 收关于更新的策略信息的请求)可以是(例如,用户计算设备上的)EMM 策略实施代理。例如,该移动设备管理策略实施代理可以是(或被配置为 在)在用户计算设备上执行的分离的程序、过程或服务,并进一步被配置 为相对于各种应用程序和设备本身监测和实施各种策略。

在其他实例中,策略代理(例如,在步骤4705中,从该策略代理接 收关于更新的策略信息的请求)可以是用于特定应用程序的应用程序封 套。例如,策略代理可以是用于特定应用程序的应用程序套,其中在步骤 4705中,从该策略代理接收关于更新的策略信息的请求。如以上所讨论, 该应用程序封套可被配置为相对于应用程序实施一个或多个策略,以及在 一些实例中,可实施以上所讨论的应用程序管理框架414的一个或多个方 面。

基于接收关于更新的策略信息的请求(例如,在步骤4705中),其可 在步骤4710中确定是否已经更新了至少一个应用程序的一个或多个策略。 例如,在步骤4710中,企业应用程序商店可确定用于已经被更新的一个 或多个应用程序(例如,一个或多个应用程序,其为在步骤4705中接收 的请求的主题)的一个或多个策略。例如,可更新用于特定应用程序的一 个或多个策略,尽管还未更新应用程序本身(例如,可独立于应用程序本 身以及/或者可用于封装应用程序的应用程序封套来修改策略)。在一个或 多个布置中,企业应用程序商店可确定是否已经基于策略信息更新了应用 程序的策略,其中通过企业应用程序商店存储、维护和/或可访问该策略信 息。在一些实例中,可基于用户输入以及/或者从企业应用程序商店的管理 用户接收的其他信息,通过企业应用程序商店来创建、访问、修改和/或存 储该策略信息,诸如经由应用程序商店接口从企业应用程序商店的管理用 户接收的信息,如以上所讨论。

继续参考图47,如果在步骤4710中确定还未更新至少一个应用程序 的一个或多个策略,那么在步骤4715中,可通知策略代理更新不可用。 例如,在步骤4715中,企业应用程序商店可通知策略代理更新不可用。 例如,在步骤4715中,企业应用程序商店可将一个或多个消息发送到用 户计算设备(例如,其可已经发送步骤4705中所接收的请求),以通知其 上正在执行的用户计算设备和/或策略代理策略更新不可用以及/或者用户 计算设备应该继续使用和/或实施一个或多个策略,其中策略代理先前已经 从企业应用程序商店获得该一个或多个策略。

可选地,如果在步骤4710中确定已经更新了至少一个应用程序的一 个或多个策略,那么在步骤4720中,可将至少一个策略更新提供到策略 代理。例如,在步骤4720中,企业应用程序商店可将一个或多个消息发 送到用户计算设备(例如,其可已经发送步骤4705中所接收的请求),以 通知其上正在执行的用户计算设备和/或策略代理一个或多个策略更新和/ 或可用。另外,例如,通过企业应用程序商店被发送到策略代理的一个或 多个消息,可包括关于新的和/或修改的策略的信息,其中该信息被配置为 使策略代理实施和/或执行新的和/或修改的策略(例如,相对于其策略改 变已经发生的特定应用程序以及/或者相对于设备本身)。如以上所讨论的 示例中,一个或多个策略可被配置为启用和/或禁用一个或多个应用程序的 某些特征、启用和/或禁用设备的某些特征、启用和/或禁用对某些资源的 访问,以及/或者提供其他功能和/或限制,并且所提供的信息(例如,如 步骤4720中对策略代理的策略更新)可反映对这些和/或其他类型的策略 作出的任何和/或所有改变。

图48中示出的是说明根据本文所讨论的一个或多个说明性方面使用 企业应用程序商店将策略更新提供给受管应用程序的方法的另一个流程 图。在一个或多个实施例中,图48中所示的方法和/或其一个或多个步骤 可通过本文所描述的计算设备执行。在其他实施例中,可以用计算机可执 行指令实施图48中示出的方法和/或其一个或多个步骤,其中计算机可执 行指令存储在诸如非暂时性计算机可读存储器的计算机可读介质中。附加 地或可选地,在一些实例中,图48中所示的方法可与图47中所示的方法 组合。例如,可在执行图47中所示的方法之前和/或之后,可通过企业应 用程序商店执行图48中所示的方法。

如图48中所示,方法可在步骤4805中开始,其中可在企业应用程序 商店处接收应用程序的策略改变。例如,在步骤4805中,企业应用程序 商店可从企业应用程序商店的管理用户接收特定应用程序的策略改变。例 如,可经由应用程序商店接口接收该策略改变,如上所讨论。

继续参考图48,在其中通过企业应用程序商店接收应用程序的策略改 变,但还未接收到更新的策略信息的请求的实例中,企业应用程序商店可 至少相对于来自某些设备的特定应用程序确定主动地将策略更新提供给 受影响的设备。因此,基于接收策略改变(例如,在步骤4805中),其可 在步骤4810中确定应用程序(即,在步骤4805中为其接收策略改变的应 用程序)存在于一个或多个设备上。例如,在步骤4810中,企业应用程 序商店可确定已经在一个或多个特定设备上安装了、通过一个或多个特定 设备下载了应用程序以及/或者该应用程序以其他方式存在于一个或多个 特定设备上。在一些实例中,应用程序商店可确定,已经基于各种应用程 序和用户的下载历史信息、各种应用程序和用户的更新和/或版本历史信息 以及/或者各种应用程序和用户的设备上监测信息,在一个或多个特定设备 上安装了、通过一个或多个特定设备下载了应用程序以及/或者该应用程序 以其他方式存在于一个或多个特定设备上。在一个或多个布置中,各种应 用程序和用户的下载历史信息,可包括用户键控的应用程序下载记录,其 针对每个用户指示已经通过来自企业应用程序商店的特定用户下载的任 何和/或所有应用程序的版本和名称,以及该应用程序下载到其上的特定设 备的识别信息。

基于确定应用程序存在于一个或多个设备上(例如,在步骤4810中), 可在步骤4815中将与策略改变关联的信息提供给一个或多个设备。例如, 在步骤4815中,企业应用程序商店可将关于策略改变的信息提供给一个 或多个受影响的设备(例如,在步骤4810中确定应用程序存在于其上的 一个或多个设备)。例如,在步骤4815中,企业应用程序商店可制定一个 或多个消息并将其发送到步骤4810中所识别的设备,其中一个或多个消 息包括关于新的和/或修改的策略的信息,类似于步骤4720中的可如何提 供策略更新。

使用一个或多个以上企业应用程序商店特征,系统可被配置为提供关 于移动客户端设备以及通过企业应用程序应用程序商店可使用的企业应 用程序的应用程序商店信息,以呈现通过移动客户端设备可下载的或者基 于策略信息可允许用于通过该设备下载的一个或多个应用程序。例如,策 略文件可将移动客户端设备识别为能够根据相应策略文件执行受管应用 程序。作为响应,应用程序商店可曝露用于下载的可用的策略可管理应用 程序的列表。客户端设备然后可根据需要下载应用程序。

在另一个示例中,一组策略文件可将电子移动设备识别为能够执行可 在多个执行模式(例如,非受管、受管模式1、受管模式2等等)中执行 的应用程序。作为响应,应用程序商店可曝露用于下载的可用受管应用程 序的列表,其中每个在多个执行模式中可执行。移动客户端设备然后可根 据需要下载那些应用程序中任一个。

在另一个示例中,一组策略文件可将电子移动设备识别为在企业移动 性管理(EMM)基础架构中登记。作为响应,应用程序商店可曝露用于下 载的可用企业应用程序的列表。客户端设备然后可根据需要下载那些应用 程序中任一个。

12、移动特征互操作性

以上特征中的任一个,不管是单独描述还是作为另一个特征的部分描 述,可与本文所描述的任何一个或多个其他特征一起使用。

例如,可修改策略受管应用程序以适于提供安全剪切和粘贴数据共享 特征、限制数据共享特征和/或基于策略的数据共享特征。类似地,策略受 管应用程序在有或没有任何一个或多个上述数据共享特征的情况下,在 EMM和MRM服务和基础架构下是可用的。在一个说明性示例中,策略 受管应用程序性可基于是否在MRM系统中登记了受管应用程序来限制对 安全剪贴板的访问。如果在MTM系统中登记了受管应用程序,则受管应 用程序可有权访问第一安全剪贴板。然而,如果未在MTM系统中登记了 受管应用程序,那么受管应用程序可有权访问不同的第二安全剪贴板,或 者仅访问通用剪贴板。

类似地,策略受管应用程序在有或没有任何一个或多个前述数据共享 和/或EMM/MRM服务的情况下,在专用策略下是可用的,例如,安全互 联网应用程序、安全PIM应用程序、安全客户端代理应用程序等等。在一 个说明性示例中,策略受管安全浏览器应用程序可基于MRM中是否登记 了设备、基于设备的地理位置、当日时间等等来限制HTML5或其他基于 浏览器的执行环境的执行。在另一个示例中,当在HTML5、FLASH或其 他执行环境中执行另一个程序时,可限制策略受管安全浏览器应用程序访 问安全剪贴板。

类似地,策略受管应用程序可在有或没有任何一个或多个前述数据共 享特征、EMM/MRM特征和/或专用策略特征的情况下,在任何一个或多 个网络和数据访问特征中是可用的,诸如微VPN、隧道、安全容器、单点 登录技术和/或身份管理技术。在一个说明性示例中,可限制策略受管应用 程序访问企业安全存储区域,除非通过安全微VPN或隧道。在另一个示 例中,可限制策略受管应用程序使用单点登录,除了当在MRM系统中登 记了其上正在执行受管应用程序的移动设备时,以及当受管应用程序为预 定义的具体类型的应用程序时。

类似地,策略受管应用程序可在有或没有任何一个或多个前述数据共 享特征、EMM/MRM特征和/或专用策略特征和/或网络和数据访问特征的 情况下,在任何一个或多个动态设备云特征下是可用的。在一个说明性示 例中,可限制策略受管应用程序将进程传递到另一个设备,除非在MRM 系统中注册了两个设备以及两个设备都通过例如微VPN、隧道等等的安全 信道通信。

类似地,策略受管应用程序可在有或没有任何一个或多个前述数据共 享特征、EMM/MRM特征和/或专用策略特征、网络和数据访问特征和/或 动态设备云特征的情况下,在可与应用程序操作的一个或多个特征下是可 用,该应用程序能够以多个操作模式执行。在一个说明性示例中,可限制 策略受管应用程序访问企业安全存储区域,除非通过安全微VPN或隧道, 以及仅当受管应用程序从多个可能的操作模式以预定义操作模式操作时 (例如,以受管模式)。在另一个示例中,可限制策略受管应用程序使用 单点登录,除了当在MRM系统中登记了其上正在执行受管应用程序的移 动设备时,以及当受管应用程序以预定义模式操作时。

类似地,策略受管应用程序可在有或没有任何一个或多个前述数据共 享特征、EMM/MRM特征,专用策略特征、网络和数据访问特征、动态设 备云特征和/或多个操作模式特征的情况下,在一个或多个企业应用程序应 用程序商店特征下是可用的。

这旨在本文所描述的任何特征可与本文所描述的任何其他特征组合 和/或使用。以上所叙述的组合不意味着限制性的,而是使用以上所叙述的 单独工具可完成哪些的说明。特征的任何组合将固有地提供以其他方式不 能够提供的一个或多个具体优点,不论一起组合了两个、三个、四个、五 个还是更多特征。以上特征应因此被视为单独的工具,其可选择性地以任 何所需方式组合以完成所需任务或可操作的设计,其中它们中的或它们的 一个或多个工具为唯一的,而工具的组合产生更进一步的意外结果和优 点。

特征的说明性组合包括通过以下内容共享数据的方法:在第一通信期 间通过电子移动设备的处理器从应用程序服务器接收受管应用程序,其中 受管应用程序被构造为根据独立于受管应用程序定义的一组一个或多个 策略文件操作;在不同于第一通信的第二通信期间通过处理器从应用程序 服务器接收一组一个或多个策略文件,其中一组一个或多个策略文件与受 管应用程序分开存储在电子移动设备上;以及通过处理器在移动设备上运 行受管应用程序,其中受管应用程序根据与受管应用程序分开存储在电子 移动设备上的一组策略操作,其中当被应用到受管应用程序时,一组一个 或多个策略文件使受管应用程序限制以其他方式在电子移动设备上可用 的数据共享特征。数据共享特征可包括通过电子移动设备的操作系统曝露 的非限制的剪切和粘贴特征。数据共享特征可包括URL调度特征,并且 其中一组一个或多个策略文件起到防止受管应用程序执行URL调度的作 用。数据共享特征可包括听写特征,并且其中一组一个或多个策略文件起 到防止受管应用程序允许用户使用来自受管应用程序内的听写特征的作 用。数据共享特征可包括内容提供商API,并且其中一组一个或多个策略 文件起到防止受管应用程序调用内容提供商API的作用。数据共享特征可 包括远程过程调用,并且其中一组一个或多个策略文件起到防止受管应用 程序调用远程过程调用的作用。数据共享特征可包括存储器共享特征,并 且其中一组一个或多个策略文件起到防止受管应用程序将数据写入到与 非受管应用程序共享的存储器的作用。

另一个说明性组合包括用于通过以下内容执行剪切和粘贴操作的方 法:通过电子移动设备的处理电路接收复制命令;通过处理电路以及响应 于复制命令,对来自第一安全应用程序的原始数据加密以形成加密数据; 以及通过处理电路并响应于复制命令,将加密数据写入到驻留在电子移动 设备的存储器中的安全剪贴板,以使第二安全应用程序能够随后读取来自 安全剪贴板的加密数据并对该加密数据解密,其中安全剪贴板驻留在不同 于驻留在存储器中的通用剪贴板的存储器位置处,通用剪贴板通过在电子 移动设备上运行的一组非安全应用程序可访问。方法可进一步包括通过处 理电路接收粘贴命令,其将安全剪贴板的粘贴内容指向第二安全应用程 序;以及响应于粘贴命令,从安全剪贴板读取加密数据、对加密数据解密 以形成解密数据,以及将解密数据提供给第二安全应用程序。方法可进一 步包括配置每个安全应用程序,以响应于复制命令将信息仅写入到安全剪 贴板,以便限制该安全应用程序将信息写入到通用剪贴板。配置每个安全 应用程序可包括修改第一安全应用程序的最初二进制版本,以形成第一安 全应用程序的修改后的二进制版本,以及在电子移动设备上部署第一安全 应用程序的修改后的二进制版本,其中最初的二进制版本为非配置的,并 且修改后的二进制版本被配置为将信息仅写入到安全剪贴板。配置每个安 全应用程序可进一步包括将安全剪贴板的存储器地址和一组加密密钥提 供给每个安全应用程序。配置每个安全应用程序可进一步包括(i)将安全 剪贴板的第一存储器地址和第一组加密密钥提供给第一群组的安全应用 程序;以及(ii)将另一个安全剪贴板的第二存储器地址和第二组加密密 钥提供给第二群组的安全应用程序,以使多个群组的安全应用程序准备好 利用不同的安全剪贴板。方法还可包括检测复制事件,其中从非安全应用 程序将非加密的新数据复制到通用剪贴板;以及响应于复制事件,对非加 密的新数据加密以形成加密的新数据,并将加密的新数据写入到安全剪贴 板。

剪切和粘贴的可选说明性方法可包括在第一通信期间通过电子移动 设备的处理器从应用程序服务器接收受管应用程序,其中受管应用程序被 构造为根据一组一个或多个策略文件操作;在不同于第一通信的第二通信 期间通过处理器从应用程序服务器接收该组一个或多个策略文件,其中该 组一个或多个策略文件与受管应用程序分开存储在电子移动设备上;以及 通过处理器在移动设备上运行受管应用程序,其中受管应用程序根据该组 一个或多个策略文件操作,其中策略文件中的一个定义受管应用程序何时 可访问安全加密剪贴板,以及进一步定义受管应用程序何时可访问通用剪 贴板,并且其中安全加密剪贴板驻留在电子移动设备的存储器的位置处, 其不同于通用剪贴板所处的位置,通用剪贴板通过在电子移动设备上运行 的一组非安全应用程序可访问。

另一个说明性实施例通过以下内容基于策略限制数据共享:在移动设 备上安装企业的一组受管应用程序,其中在移动设备上安装并不是一组受 管应用程序的部分的一个或多个非受管应用程序;接收一组应用程序策 略,其中一组受管应用程序中的每个与一组应用程序策略的一个或多个策 略关联;响应于访问与第一应用程序关联的策略以及从第一应用程序的策 略读取第二应用程序为一组受管应用程序的成员的指示,选择性地允许一 组受管应用程序的第一应用程序将数据提供到安装在移动设备上的第二 应用程序;以及响应于访问与第一应用程序的策略以及未能从第一应用程 序的策略读取第三应用程序为一组受管应用程序的成员的指示,选择性地 阻碍第一应用程序将数据提供到安装在移动设备上的第三非受管应用程 序。在一些方面中,将一组受管应用程序划分为至少两组,并且其中限制 每个受管应用程序与不是相同组的成员的任何应用程序共享数据。在一些 方面中,将一组受管应用程序中的每个约束为通过其各自的一个或多个应 用程序策略与移动设备上的其他应用程序和服务交互。在一些方面中,选 择性地允许一组受管应用程序的第一应用程序将数据提供到安装在移动 设备上的第二应用程序,包括显示受管应用程序的列表,其包括第二应用 程序并允许用户从受管应用程序的列表选择应用程序。在一些方面中,选 择性地阻碍一组受管应用程序的第一应用程序将数据提供到安装在移动 设备上的第三应用程序,包括显示排除第三应用程序的受管应用程序的列 表,使得用户不具有选择第三应用程序的选项。在一些方面中,移动设备 通过从与文件的文件类型兼容的一组应用程序选择来运行允许用户打开 文件的操作系统扩展;选择性地允许一组受管应用程序的第一应用程序以 将数据提供到第二应用程序包括通过对操作系统扩展的操作来显示与文 件的文件类型兼容以及也是受管的应用程序组的部分的那些应用程序;以 及选择性地阻碍一组受管应用程序的第一应用程序将数据提供到第三应 用程序,包括未能通过对操作系统扩展的操作来显示不是受管的应用程序 组的部分的那些应用程序。

另一个说明性方面通过以下内容提供移动设备管理:在第一通信期间 通过电子移动设备的处理器从应用程序服务器接收受管应用程序,受管应 用程序被构造为根据一组一个或多个策略文件操作;在不同于第一通信的 第二通信期间通过处理器从应用程序服务器接收一组一个或多个策略文 件,一组一个或多个策略文件与受管应用程序分开存储在电子移动设备 上;以及通过处理器在移动设备上运行受管应用程序,受管应用程序根据 一组一个或多个策略文件操作,其中策略文件中的一个基于产生于在企业 移动管理(EMM)程序中登记的移动设备的信息。在一些方面中,信息包 括经由EMM程序接收的应用程序隧道信息。在一些方面中,信息包括描 述移动设备的一个或多个属性的盘存数据,并识别安装在移动设备上的一 个或多个应用程序。在一些方面中,信息包括指示在发生预定事件后是否 要求登录凭证的信息。在一些方面中,信息包括加密密钥和解密密钥中的 一个或多个,其可用于分别对从安全移动网关接收的一个或多个消息加密 和解密。在一些方面中,方法进一步包括周期性地从EMM程序接收所更 新的信息;以及基于所更新的信息修改设备的行为,如一个或多个策略文 件所指示的。在一些方面中,信息包括安全容器信息,其中所述安全容器 驻留在移动设备上,所述安全容器对移动设备上的一个或多个非受管应用 程序不可用,并且所述安全容器对移动设备上的一个或多个受管应用程序 可用。

另一个方面通过以下内容提供安全互联网浏览器:在第一通信期间通 过电子移动设备的处理器从应用程序服务器接收受管应用程序,受管应用 程序被构造为根据一组一个或多个策略文件操作;在不同于第一通信的第 二通信期间,通过处理器从应用程序服务器接收一组一个或多个策略文 件,一组一个或多个策略文件与受管应用程序分开存储在电子移动设备 上;以及通过处理器在移动设备上运行受管应用程序,受管应用程序根据 一组一个或多个策略文件操作,其中策略文件中的一个更改移动设备上的 互联网浏览器应用程序的特征,而不更改移动设备上的非互联网浏览器应 用程序的类似特征。在一些情况下,特征包括URL,并且其中一组一个或 多个策略文件起到防止受管应用程序在URL上执行URL调度的作用。在 一些情况下,特征包括剪切和粘贴特征,并且其中一组一个或多个策略文 件起到防止在互联网浏览器应用程序和非互联网浏览器应用程序之间进 行剪切和粘贴的作用。在一些情况下,特征包括访问限制,并且其中所述 更改包括限制互联网web浏览器应用程序访问基于云的企业资源。在一些 情况下,特征包括主页URL,并且其中所述更改包括预填充主页URL, 并进一步包括防止所述主页URL随后改变,除非通过一个或多个随后接 收的策略文件。在一些情况下,特征包括下载行为,并且其中所述更改包 括设置所述下载行为,以允许使用仅一个或多个预批准的应用程序打开下 载文件,其中所述预批准的应用程序少于移动设备上能够打开所下载的文 件的所有应用程序。在一些情况下,特征包括执行平台。

另一个说明性方面通过以下内容提供安全个人信息管理和电子邮件 服务:在第一通信期间通过电子移动设备从应用程序服务器接收受管个人 信息管理(PIM)应用程序,受管PIM应用程序被构造为根据一组一个或 多个策略文件操作;在不同于第一通信的第二通信期间,通过电子移动设 备从应用程序服务器接收一组一个或多个策略文件,一组一个或多个策略 文件与受管应用程序分开存储在电子移动设备上;以及通过处理器在移动 设备上运行受管PIM应用程序,受管PIM应用程序根据一组一个或多个 策略文件操作,其中策略文件中的一个更改移动设备上的PIM应用程序的 消息处理功能。在一些方面中,消息处理功能包括PIM应用程序的URL 调度过程,并且其中更改包括定义一个或多个应用程序,其中PIM应用程 序可使用URL调度过程调用该一个或多个应用程序。在一些方面中,消 息处理功能包括PIM应用程序的安装过程,并且其中更改包括使用安装过 程触发PIM应用程序的自动安装。在一些方面中,消息处理功能包括PIM 应用程序的地址薄,并且其中更改包括定义一个或多个条件,其中地址薄 中的联系方式在这些条件下可共享到PIM应用程序的外部。在一些方面 中,消息处理功能包括PIM应用程序的附件处理过程,并且其中更改包括 定义一个或多个应用程序,其中PIM应用程序可从该一个或多个应用程序 将文件附到电子消息。在一些方面中,消息处理功能包括PIM应用程序的 附件处理过程,并且其中更改包括定义一个或多个应用程序,其中PIM应 用程序可打开被附到所接收的电子消息的文件。在一些方面中,消息处理 功能包括PIM应用程序的消息保留过程,并且其中更改包括定义时间长 度,在自动地删除电子通信之前,满足预定义条件的电子通信可在移动设 备上存储该时间长度。

另一个说明性实施例通过以下内容提供微VPN和/或隧道管理服务: 在第一通信期间,通过电子移动设备的处理器,从应用程序服务器接收受 管应用程序,受管应用程序被构造为根据一组一个或多个策略文件操作; 在不同于第一通信的第二通信期间,通过处理器,从应用程序服务器接收 一组一个或多个策略文件,一组一个或多个策略文件与受管应用程序分开 存储在电子移动设备上;以及通过处理器,在移动设备上运行受管应用程 序,受管应用程序根据一组一个或多个策略文件操作,其中策略文件中的 一个定义策略,该策略确定是否允许受管应用程序创建与企业服务器的应 用程序专用VPN连接,其中所述专用VPN对受管应用程序可用,但对在 电子移动设备上执行的非受管应用程序不可用。在一些方面中,方法可进 一步包括,从用户接收用户认证信息,以初始认证用户;验证用户与允许 用户使用受管应用程序的许可关联,并允许移动设备仅当用户被允许使用 受管应用程序时启动受管应用程序。一些方面可进一步包括,确定用户是 否被允许使用受管应用程序远程访问从移动设备远程托管的企业资源;以 及响应于肯定地确定用户被允许使用受管应用程序远程访问企业资源,指 示受管应用程序创建应用程序专用VPN。一些方面可进一步包括,基于初 始认证对于企业资源自动地认证用户;以及经由应用程序专用VPN访问 企业资源。一些方面可进一步包括,从企业资源接收认证挑战;基于用户 的初始认证,确定用户被允许使用的一个或多个安全性证书;以及使用一 个或多个安全性证书中的一个响应于认证挑战。在一些方面中,在电子移 动设备上的安全容器中存储的安全性证书,其仅当由可应用于电子移动设 备的策略文件定义时,通过受管应用程序可访问。在一些方面中,证书挑 战为Kerberos认证和SSL认证中的一个。

另一个说明性方面通过以下内容提供安全文档容器服务:在第一通信 期间,通过电子移动设备,从应用程序服务器接收受管应用程序,受管应 用程序被构造为根据一组一个或多个策略文件操作;在不同于第一通信的 第二通信期间,通过设备,从应用程序服务器接收一组一个或多个策略文 件,一组一个或多个策略文件与受管应用程序分开存储在电子移动设备 上;以及通过处理器,在移动设备上运行受管应用程序,受管应用程序根 据一组一个或多个策略文件操作;在设备上存储和执行多个受管应用程 序;将每个受管应用程序与应用程序群组关联;将每个应用程序群组与不 同的安全永久存储区域关联;以及将对每个安全永久存储区域的访问仅提 供给关联应用程序群组中的那些受管应用程序。一些方面进一步包括,在 策略文件中的一个,接收一组加密/解密密钥;以及使用所接收的密钥组来 对写入到安全永久存储区域的数据加密,并对从安全永久存储区域读取的 数据解密。一些方面进一步包括,接收对从安全永久存储区域删除内容的 请求;响应于请求,确定请求的发起者是否被授权删除内容;以及当发起 者被授权删除内容时,从安全永久存储区域删除内容。在一些方面中,发 起者不同于电子移动设备的用户。在一些方面中,发起者是企业移动性管 理(EMM)服务的管理者。在一些方面中,一组一个或多个策略文件起到 通过受管应用程序的访问提供对电子移动设备的安全永久存储区域访问 的作用,所述安全永久存储区域对于企业管理者可访问,并且可用于存储 多个分离的数据文件。一些方面进一步包括在设备上存储和执行多个受管 应用程序;以及基于一个或多个策略文件允许每个受管应用程序访问安全 永久存储区域。

另一个说明性实施例通过以下内容提供单点登录服务:在第一通信期 间,通过电子移动设备,从应用程序服务器接收受管应用程序,受管应用 程序被构造为根据一组一个或多个策略文件操作;在不同于第一通信的第 二通信期间,通过设备,从应用程序服务器接收一组一个或多个策略文件, 一组一个或多个策略文件与受管应用程序分开存储在电子移动设备上;基 于在单点登录过程期间认证的用户凭证,选择一组一个或多个策略文件, 以使得第一组的认证的用户凭证导致第一组一个或多个策略文件,以及第 二组的认证的用户凭证导致第二组一个或多个策略文件;以及通过设备的 处理器,在移动设备上运行受管应用程序,受管应用程序根据一组一个或 多个策略文件操作。在一些方面中,单点登录过程包括,接收单组认证凭 证;将单组认证凭证发送到认证服务;从认证服务接收对认证凭证为有效 的确认;以及响应于认证凭证的有效性,自动地提供对一个或多个策略文 件中所识别的一个或多个资源的访问。一些方面进一步包括,响应于确定 认证凭证的有效性,限制对在一个或多个策略文件中识别的一个或多个资 源的访问。在一些方面中,响应于起源于用于访问一个或多个资源中的一 个的设备的请求,执行认证凭证的有效性的确定。一些方面进一步包括, 在确定一组用户凭证已经期满后,撤销一组一个或多个策略文件。在一些 方面中,从通过电子移动设备可访问的远程密钥存储检索客户端证书。在 一些方面中,密钥存储包括智能卡。

另一个说明性实施例通过以下内容提供管理交互设备的方法:在第一 通信期间,通过电子移动设备,从应用程序服务器接收受管应用程序,受 管应用程序被构造为根据一组一个或多个策略文件操作;在不同于第一通 信的第二通信期间,通过设备从应用程序服务器接收一组一个或多个策略 文件,一组一个或多个策略文件与受管应用程序分开存储在电子移动设备 上;以及通过处理器,在电子移动设备上运行受管应用程序,受管应用程 序根据一组一个或多个策略文件操作,其中所述一个或多个策略文件定义 一个或多个条件,其中电子移动设备在该条件下可将过程的执行传递到第 二设备。在一些方面中,通过电子移动设备实例化过程,并且将通过第二 决定执行过程。在一些方面中,一个或多个条件包括电子移动设备和在预 定地理位置内的第二设备中的一个。在一些方面中,受管应用程序为实时 通信应用程序且过程包括通过实时通信应用程序接收用于使用的用户输 入。在一些方面中,一个或多个条件包括第二设备邻近电子移动设备定位、 向电子移动设备认证第二设备,并基于一个或多个策略文件中的信息,允 许该第二设备接收过程。在一些方面中,一个或多个策略文件定义一个或 多个条件,其中电子移动设备在该条件下可将过程的执行传递到第三设 备,其中所述条件可应用到第三设备,其不同于可应用到第二设备的条件。 在一些方面中,一个或多个条件包括两个设备在企业移动性管理(EMM) 服务中登记。

另一个说明性实施例通过以下内容提供用于管理具有至少两个执行 模式的应用程序的方法:在第一通信期间,通过电子移动设备,从应用程 序服务器接收受管应用程序,受管应用程序被构造为根据第一组一个或多 个策略文件操作;在不同于第一通信的第二通信期间,通过设备从应用程 序服务器接收第一组一个或多个策略文件,第一组一个或多个策略文件存 储与受管应用程序分开存储在电子移动设备上;通过处理器,在移动设备 上以第一执行模式运行受管应用程序,受管应用程序根据第一组一个或多 个策略文件以第一执行模式操作;以及通过处理器,在移动设备上以不同 于所述第一执行模式的第二执行模式运行受管应用程序,受管应用程序根 据第二组零个或多个策略文件以第二执行模式操作,其中第二组的策略文 件不同于第一组的策略文件。一些方面进一步包括,通过处理器,在移动 设备上以不同于所述第一执行模式和第二执行模式的第三执行模式运行 受管应用程序,受管应用程序根据第三组的一个或多个策略文件以第三执 行模式操作,其中第三组的策略文件不同于第一组的策略文件和第二组的 策略文件。在一些方面中,第二组的策略文件由零策略文件组成,并且其 中第二执行模式是非受管执行模式。在一些方面中,第一执行模式与第一 行业关联;并且第二执行模式与第二行业关联。在一些方面中,第一执行 模式与第一地理位置关联;并且第二执行模式与第二地理位置关联。在一 些方面中,受管应用程序包括个人信息管理(PIM)应用程序,并且其中 第一组的策略文件限制PIM应用程序访问任何非企业资源,并且第二组的 策略文件包含零策略文件,从而允许PIM应用程序访问与设备的用户关联 的非企业电子邮件账户。在一些方面中,受管应用程序为互联网web浏览 器,并且其中第一组的策略文件限制浏览器访问所有非企业预批准的 URL,其中一组预批准的URL在第一组的策略文件中定义,并且第二组 的策略文件包含零策略文件,从而允许浏览器访问不是企业预批准的URL 的URL。

另一个说明性方面通过以下内容提供管理虚拟化环境或可虚拟环境 中的应用程序的执行:在第一通信期间,通过电子移动设备从应用程序服 务器接收受管应用程序,受管应用程序被构造为根据一组一个或多个策略 文件操作;在不同于第一通信的第二通信期间,通过设备,从应用程序服 务器接收一组一个或多个策略文件,一组一个或多个策略文件存储在与应 用程序分开存储在电子移动设备上;以及通过处理器,直接在移动设备上 运行受管应用程序,受管应用程序根据一组一个或多个策略文件操作,其 中当受管应用程序在电子移动设备上以虚拟化模式操作时,当通过电子移 动设备应用时,一组一个或多个策略文件使受管应用程序使用第二组一个 或多个策略文件操作。在一些方面中,第二组策略文件自动地配置受管应 用程序以便以虚拟化模式操作。在一些方面中,第二组策略文件利用以虚 拟化模式执行的应用程序限制直接在设备上执行的应用程序之间的剪切 和粘贴。在一些方面中,受管应用程序包括客户端代理应用程序,其能够 在电子移动设备上以虚拟化模式执行多个企业批准的应用程序。在一些方 面中,虚拟化模式为通过客户端代理应用程序提供的远程访问模式。在一 些方面中,第二组的策略文件包括限制时间的第一时间限制,所限制的时 间为当远程访问模式可用于以虚拟化模式访问第一受管应用程序时的时 间,以及不同于第一时间限制的第二时间限制,第二限制时间限制的时间 为当远程访问模式可用于以虚拟化模式访问第二受管应用程序时的时间。 在一些方面中,第二组策略文件包括限制地理位置的第一地理限制,远程 访问模式可用于在设备上从该第一地理限制限制的地理位置以虚拟化模 式访问第一受管应用程序,以及不同于第一地理限制的第二地理限制,远 程访问模式可用于从第二地理限制限制的地理位置以虚拟化模式访问第 二受管应用程序。在一些方面中,第二组的一个或多个策略文件限制通过 第一组的一个或多个策略文件所允许的专用功能。

可通过或借助于计算机系统以及/或者基于存储在计算机可读设备上 并通过计算机处理器执行的计算机可读指令来执行以上说明性方面和/或 实施例中的任一个。

13、结论

尽管已经以具体到结构特征和/或方法行为的语言描述了主题,但是要 理解的是,本文的主题不一定局限于以上所描述的具体特征或行为。而是, 以上所描述的具体特征和行为被描述为说明性的实施、说明性实施例和随 附权利要求的说明性方面。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号