CN104838630A - 基于策略的应用程序管理 - Google Patents
基于策略的应用程序管理 Download PDFInfo
- Publication number
- CN104838630A CN104838630A CN201380064191.1A CN201380064191A CN104838630A CN 104838630 A CN104838630 A CN 104838630A CN 201380064191 A CN201380064191 A CN 201380064191A CN 104838630 A CN104838630 A CN 104838630A
- Authority
- CN
- China
- Prior art keywords
- application program
- mobile device
- application
- data
- enterprise
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/88—Detecting or preventing theft or loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2143—Clearing memory, e.g. to prevent the data from being stolen
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/37—Managing security policies for mobile devices or for controlling mobile applications
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本文描述了用于管理移动设备上的企业应用程序的改进技术。在移动设备上运行的每个企业移动应用程序具有关联的策略,通过该关联策略其与其环境交互。策略根据企业建立的规则选择性地阻碍或允许涉及企业应用程序的活动。同时,在移动设备上运行的企业应用程序形成一组受管应用程序。受管应用程序通常被允许与其他受管应用程序交换数据,但被阻碍与其他应用程序交换数据,诸如用户自己的个人应用程序。策略可被定义为管理数据共享、移动资源管理、应用程序专用信息、网络和数据访问解决方案、设备云和传输、双模式应用程序软件、企业应用程序商店访问以及虚拟化应用程序和资源,等等。
Description
相关申请的交叉引用
本申请要求于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 aManaged Application Derived from an Unmanaged Application)”的临时申请61/714,469;于2012年10月15日提交的题为“在电子移动设备上运行的安全应用程序之间传送数据(Conveying Data Between Secure ApplicationsRunning on an Electronic Mobile Device)”的临时申请61/713,762;于2012年10月15日提交的题为“在受管应用程序之间共享的安全数据(SecureData 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 ControlledAccess to Computerized Resources)”的临时申请61/713,763;于2012年10月16日提交的题为“管理用于非受管移动设备上的受管应用程序的加密文件库(Managing Encrypted File Vaults for Managed Applications onUnmanaged Mobile Device)”的临时申请61/714,293;于2013年5月3日提交的题为“具有多种操作模式的应用程序(Application with MultipleOperation 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 ActivityInterface)”的临时申请61/712,953;于2012年10月12日提交的题为“多设备交互(Multi-Device Interaction)”的临时申请61/712,956;于2012年10月12日提交的题为“用于连接的设备的业务流程框架(OrchestrationFramework for Connected Devices)”的临时申请61/712,962;以及于2013年5月3日提交的题为“锁定场景的移动设备(Mobile Device Locking withContext)”的非临时申请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、ROM115、网络接口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(华盛顿西雅图的亚马逊公司)、IBMBLUE 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、社交整合服务(socialintegration 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资源和证书发布服务(CertificateIssuance 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 datavaults)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密码,因此这些用户可使用OTP420认证,诸如通过使用类似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、客户端代理/虚拟化应用程序策略
某些实施例的另一个方面包括虚拟化应用程序,例如诸如CITRIXRECEIVER的客户端代理,以及特定于该应用程序的策略。客户端代理可被提供有企业安全性中的一些或全部以及本文所描述的其他特征,并且可扩展那些特征,以用于与客户端代理的个体特征一起使用。以这种方式,客户端代理可用于实施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可被配置为将一些或全部电子邮件发送/接收请求和/或事件指向如上所述的内容过滤服务器。
可通过测量管理客户端代理的操作的以上方面或其他方面的任一个,例如,包括但不限于应用程序过滤(黑名单/白名单)、基于应用程序是否本地在设备上或通过客户端代理应用程序运行的访问/授权的差异化、呈现层的定制化,以及/或者地址簿内容(预加载容许的企业应用程序),仅举几例。
使用以上特征中的任一个,一个或多个策略文件可适合于或被创建用于在移动客户端设备上以虚拟化模式运行的应用程序。虚拟化模式可包括例如,当应用程序从移动设备远程执行(例如,远程访问),但通过客户端代理软件被呈现给移动设备的用户好像应用程序在本地执行时。其他类型的虚拟化还可能是为可行的。当远程执行应用程序通过客户端代理执行时而不是当相同应用程序可直接在本地移动设备上执行时,该组一个或多个策略文件可限制远程执行应用程序的一个或多个能力。例如,相比当受管应用程序在移动客户端设备上直接执行,当受管应用程序在移动客户端设备上以虚拟化模式运行时,当由移动客户端设备移动设备应用时,该组一个或多个策略文件可使受管应用程序使用不同组的策略文件来操作。在一些示例中,该组的策略文件可自动地配置受管应用程序,以在虚拟化模式中运行。在其他示例中,该组的策略文件可限制在就有以虚拟化模式执行的应用程序的设备上直接执行的应用程序之间的剪切和粘贴。在一些示例中,可基于一个或多个策略文件完全地限制以虚拟化模式运行的应用程序访问设备剪贴板和/或安全剪贴板(如上所述)。因此,策略文件可用于限制从本地(例如,移动)设备远程执行的应用程序的一个或多个能力。该能力可包括一般能力,诸如访问剪贴板,或者可包括特定于应用程序的能力,例如,访问应用程序内的企业专用模块。作为非限制性示例,当应用程序通过虚拟化模式执行时,策略文件可限制用户访问MICROSOFTVISIO中的企业专用“形状”集,而当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证书挑战或HTTP401认证要求的挑战等等)。
在一些情况下,中间网关可透明地响应于认证挑战。网关在流经网关的流量中监测认证挑战。当识别了认证挑战时,其中网关可响应于该认证挑战而不是将响应传回到客户端,网关通过在添加合适的认证头或源自网关的用户是谁的概念的证书之后重试请求来透明地响应。对于一些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.NETMVC实施);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、结论
尽管已经以具体到结构特征和/或方法行为的语言描述了主题,但是要理解的是,本文的主题不一定局限于以上所描述的具体特征或行为。而是,以上所描述的具体特征和行为被描述为说明性的实施、说明性实施例和随附权利要求的说明性方面。
Claims (20)
1.一种方法,包括:
在第一通信期间,通过电子移动设备的处理器,从应用程序服务器接收受管应用程序,所述受管应用程序被构造为根据独立于所述受管应用程序定义的一组一个或多个策略文件操作;
在不同于所述第一通信的第二通信期间,通过所述处理器,从所述应用程序服务器接收所述一组一个或多个策略文件,所述一组一个或多个策略文件与所述受管应用程序分开存储在所述电子移动设备上;以及
通过所述处理器,在所述移动设备上运行所述受管应用程序,所述受管应用程序根据所述一组策略操作,所述一组策略与所述受管应用程序分开存储在所述电子移动设备上,
其中,当所述一组一个或多个策略文件被应用到所述受管应用程序时,促使所述受管应用程序限制以其他方式使得在所述电子移动设备上可用的数据共享特征。
2.根据权利要求1所述的方法,其中所述数据共享特征包括由所述电子移动设备的操作系统曝露的非限制剪切和粘贴特征。
3.根据权利要求1所述的方法,其中所述数据共享特征包括URL调度特征,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序执行URL调度的作用。
4.根据权利要求1所述的方法,其中所述数据共享特征包括听写特征,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序允许用户使用来自所述受管应用程序内的所述听写特征的作用。
5.根据权利要求1所述的方法,其中所述数据共享特征包括内容提供商API,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序调用所述内容提供商API的作用。
6.根据权利要求1所述的方法,其中所述数据共享特征包括远程过程调用,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序调用所述远程过程调用的作用。
7.根据权利要求1所述的方法,其中所述数据共享特征包括存储器共享特征,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序将数据写入到与非受管应用程序共享的存储器的作用。
8.一种存储指令的非暂时性的计算机可读介质,当所述指令被执行时促使系统执行:
在第一通信期间,通过电子移动设备的处理器,从应用程序服务器接收受管应用程序,所述受管应用程序被构造为根据独立于所述受管应用程序定义的一组一个或多个策略文件操作;
在不同于所述第一通信的第二通信期间,通过所述处理器,从所述应用程序服务器接收所述一组一个或多个策略文件,所述一组一个或多个策略文件与所述受管应用程序分开存储在所述电子移动设备上;以及
通过所述处理器,在所述移动设备上运行所述受管应用程序,所述受管应用程序根据所述一组策略操作,所述一组策略与所述受管应用程序分开存储在所述电子移动设备上,
其中当所述一组一个或多个策略文件被应用到所述受管应用程序时,促使所述受管应用程序限制以其他方式使得在所述电子移动设备上可用的数据共享特征。
9.根据权利要求8所述的计算机可读介质,其中所述数据共享特征包括由所述电子移动设备的操作系统曝露的非限制剪切和粘贴特征。
10.根据权利要求8所述的计算机可读介质,其中所述数据共享特征包括URL调度特征,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序执行URL调度的作用。
11.根据权利要求8所述的计算机可读介质,其中所述数据共享特征包括听写特征,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序允许用户使用来自所述受管应用程序内的所述听写特征的作用。
12.根据权利要求8所述的计算机可读介质,其中所述数据共享特征包括内容提供商API,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序调用所述内容提供商API的作用。
13.根据权利要求8所述的计算机可读介质,其中所述数据共享特征包括远程过程调用,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序调用所述远程过程调用的作用。
14.根据权利要求8所述的计算机可读介质,其中所述数据共享特征包括存储器共享特征,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序将数据写入到与非受管应用程序共享的存储器的作用。
15.一种装置,包括:
处理器;以及
存储器,所述存储器存储计算机可读指令,当所述计算机可读指令通过所述处理器执行时促使所述装置执行以下操作:
在第一通信期间,通过电子移动设备的处理器,从应用程序服务器接收受管应用程序,所述受管应用程序被构造为根据独立于所述受管应用程序定义的一组一个或多个策略文件操作;
在不同于所述第一通信的第二通信期间,通过所述处理器,从所述应用程序服务器接收所述一组一个或多个策略文件,所述一组一个或多个策略文件与所述受管应用程序分开存储在所述电子移动设备上;以及
通过所述处理器,在所述移动设备上运行所述受管应用程序,所述受管应用程序根据所述一组策略操作,所述一组策略与所述受管应用程序分开存储在所述电子移动设备上,
其中当所述一组一个或多个策略文件被应用到所述受管应用程序时,促使所述受管应用程序限制以其他方式使得在所述电子移动设备上可用的数据共享特征。
16.根据权利要求15所述的装置,其中所述数据共享特征包括由所述电子移动设备的操作系统曝露的非限制剪切和粘贴特征。
17.根据权利要求15所述的装置,其中所述数据共享特征包括URL调度特征,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序执行URL调度的作用。
18.根据权利要求15所述的装置,其中所述数据共享特征包括听写特征,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序允许用户使用来自所述受管应用程序内的所述听写特征的作用。
19.根据权利要求15所述的装置,其中所述数据共享特征包括内容提供商API,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序调用所述内容提供商API的作用。
20.根据权利要求15所述的装置,其中所述数据共享特征包括远程过程调用,并且其中所述一组一个或多个策略文件起到防止所述受管应用程序调用所述远程过程调用的作用。
Applications Claiming Priority (33)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/649,076 US9378359B2 (en) | 2011-10-11 | 2012-10-10 | Gateway for controlling mobile device access to enterprise resources |
US13/649,076 | 2012-10-10 | ||
US201261712962P | 2012-10-12 | 2012-10-12 | |
US201261712956P | 2012-10-12 | 2012-10-12 | |
US201261712953P | 2012-10-12 | 2012-10-12 | |
US201261712948P | 2012-10-12 | 2012-10-12 | |
US61/712,956 | 2012-10-12 | ||
US61/712,948 | 2012-10-12 | ||
US61/712,962 | 2012-10-12 | ||
US61/712,953 | 2012-10-12 | ||
US201261713554P | 2012-10-14 | 2012-10-14 | |
US61/713,554 | 2012-10-14 | ||
US201261713763P | 2012-10-15 | 2012-10-15 | |
US201261713718P | 2012-10-15 | 2012-10-15 | |
US201261713762P | 2012-10-15 | 2012-10-15 | |
US61/713,762 | 2012-10-15 | ||
US61/713,763 | 2012-10-15 | ||
US61/713,718 | 2012-10-15 | ||
US201261714469P | 2012-10-16 | 2012-10-16 | |
US201261714293P | 2012-10-16 | 2012-10-16 | |
US61/714,469 | 2012-10-16 | ||
US61/714,293 | 2012-10-16 | ||
US201361806577P | 2013-03-29 | 2013-03-29 | |
US61/806,577 | 2013-03-29 | ||
US13/886,765 | 2013-05-03 | ||
US13/886,765 US9215225B2 (en) | 2013-03-29 | 2013-05-03 | Mobile device locking with context |
US13/886,889 | 2013-05-03 | ||
US13/886,889 US9280377B2 (en) | 2013-03-29 | 2013-05-03 | Application with multiple operation modes |
US201361861736P | 2013-08-02 | 2013-08-02 | |
US61/861,736 | 2013-08-02 | ||
US14/043,902 | 2013-10-02 | ||
US14/043,902 US20140032733A1 (en) | 2011-10-11 | 2013-10-02 | Policy-Based Application Management |
PCT/US2013/064076 WO2014084967A1 (en) | 2012-10-10 | 2013-10-09 | Policy-based application management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104838630A true CN104838630A (zh) | 2015-08-12 |
CN104838630B CN104838630B (zh) | 2018-10-12 |
Family
ID=49627029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380064191.1A Active CN104838630B (zh) | 2012-10-10 | 2013-10-09 | 基于策略的应用程序管理 |
Country Status (2)
Country | Link |
---|---|
EP (3) | EP3422236B1 (zh) |
CN (1) | CN104838630B (zh) |
Cited By (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871930A (zh) * | 2016-06-21 | 2016-08-17 | 上海携程商务有限公司 | 基于应用的防火墙安全策略的自适应配置方法及系统 |
CN105979000A (zh) * | 2016-06-25 | 2016-09-28 | 国云科技股份有限公司 | 一种vnc协议远程桌面的方法 |
CN106295413A (zh) * | 2015-06-29 | 2017-01-04 | 三星电子株式会社 | 半导体装置 |
CN106327211A (zh) * | 2016-08-25 | 2017-01-11 | 互动派科技股份有限公司 | 一种基于社交媒体的scrm系统及其开发方法 |
CN106411580A (zh) * | 2016-09-14 | 2017-02-15 | 努比亚技术有限公司 | 设备管理客户端、服务器及设备管理方法 |
CN106506549A (zh) * | 2016-12-27 | 2017-03-15 | 上海斐讯数据通信技术有限公司 | 网络设备代理的云共享私有权限管理方法及系统 |
CN106557305A (zh) * | 2015-09-25 | 2017-04-05 | 株式会社理光 | 一种自动回放Android程序的方法及系统 |
CN106850259A (zh) * | 2016-12-22 | 2017-06-13 | 北京元心科技有限公司 | 用于管控策略执行的方法、装置及电子设备 |
CN107104955A (zh) * | 2017-04-10 | 2017-08-29 | 深信服科技股份有限公司 | 一种应用发布方法及应用发布系统 |
CN107193667A (zh) * | 2017-04-25 | 2017-09-22 | 北京小米移动软件有限公司 | 网页权限的更新方法及装置 |
CN107241298A (zh) * | 2016-03-29 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 一种应用管控方法、终端及系统 |
CN107239692A (zh) * | 2017-05-23 | 2017-10-10 | 成都联宇云安科技有限公司 | 一种基于设备管理器实现安卓智能设备摄像头的管控方法 |
CN107302626A (zh) * | 2017-05-23 | 2017-10-27 | 成都联宇云安科技有限公司 | 一种针对安卓智能手机麦克风的管控方法 |
CN108701175A (zh) * | 2016-03-30 | 2018-10-23 | 安维智有限公司 | 将用户账户与企业工作空间相关联 |
CN109032647A (zh) * | 2018-10-17 | 2018-12-18 | 北京京航计算通讯研究所 | 基于软件监控和策略的软件升级方法 |
CN109426546A (zh) * | 2017-09-01 | 2019-03-05 | 腾讯科技(深圳)有限公司 | 应用启动方法及装置、计算机存储介质及设备 |
CN109565437A (zh) * | 2016-07-29 | 2019-04-02 | 佩尔曼恩特私人有限公司 | 与安全加密相关的应用 |
CN109684116A (zh) * | 2019-03-18 | 2019-04-26 | 北京字节跳动网络技术有限公司 | 数据分享方法、装置、设备及介质 |
CN109716331A (zh) * | 2016-09-19 | 2019-05-03 | 微软技术许可有限责任公司 | 符合应用程序数据共享和决策服务平台模式的应用程序部署 |
CN109740079A (zh) * | 2018-10-29 | 2019-05-10 | 深圳壹账通智能科技有限公司 | H5页面的加载方法、装置和计算机设备 |
CN109814886A (zh) * | 2019-01-16 | 2019-05-28 | 深圳乐信软件技术有限公司 | 一种软件安装方法、装置、设备和存储介质 |
CN109844717A (zh) * | 2016-08-14 | 2019-06-04 | 利维帕尔森有限公司 | 用于移动应用程序的实时远程控制的系统和方法 |
CN110048999A (zh) * | 2018-01-17 | 2019-07-23 | Ise软件定制和电子有限公司 | 建立经认证的连接的方法、设备、计算机可读介质和系统 |
CN110199289A (zh) * | 2016-12-19 | 2019-09-03 | 詹卢卡·皮尼 | 用于调节通过电子设备对数据连接的访问的方法 |
US20190303816A1 (en) * | 2018-04-02 | 2019-10-03 | Citrix Systems, Inc. | Cloud workspace assignment by user location |
CN110493175A (zh) * | 2019-07-01 | 2019-11-22 | 联想(北京)有限公司 | 一种信息处理方法、电子设备和存储介质 |
CN110537181A (zh) * | 2017-03-01 | 2019-12-03 | 赛门铁克公司 | 管理数据加密应用程序 |
CN110603538A (zh) * | 2017-05-18 | 2019-12-20 | 谷歌有限责任公司 | 使用密码共享的加密搜索云服务 |
CN111212019A (zh) * | 2018-11-22 | 2020-05-29 | 阿里巴巴集团控股有限公司 | 用户账户的访问控制方法、装置及设备 |
CN111212048A (zh) * | 2019-12-26 | 2020-05-29 | 北京安码科技有限公司 | https协议实时监控方法、系统、电子设备及存储介质 |
WO2020107104A1 (en) | 2018-11-30 | 2020-06-04 | BicDroid Inc. | Personalized and cryptographically secure access control in operating systems |
CN111369984A (zh) * | 2018-12-26 | 2020-07-03 | Tcl集团股份有限公司 | 一种语音交互方法、存储介质及终端设备 |
CN111381833A (zh) * | 2020-03-05 | 2020-07-07 | 山东汇贸电子口岸有限公司 | 一种容器化的openstack数据初始化方法 |
CN111552953A (zh) * | 2019-02-12 | 2020-08-18 | Sap门户以色列有限公司 | 安全策略作为服务 |
CN111597027A (zh) * | 2020-05-15 | 2020-08-28 | 北京百度网讯科技有限公司 | 应用程序的启动方法、装置、设备及存储介质 |
CN111684418A (zh) * | 2018-03-01 | 2020-09-18 | 华睿泰科技有限责任公司 | 用于在多租户容器平台上运行应用程序的系统和方法 |
CN111722894A (zh) * | 2019-03-21 | 2020-09-29 | 成都鼎桥通信技术有限公司 | 应用处理方法、装置及电子设备 |
CN111917837A (zh) * | 2020-07-13 | 2020-11-10 | 西安即刻易用网络科技有限公司 | 一种Web微应用程序发布系统及其实现方法 |
CN112181545A (zh) * | 2019-07-03 | 2021-01-05 | 比亚迪股份有限公司 | 车载数据处理方法、装置、车载设备及存储介质 |
CN112653772A (zh) * | 2019-10-11 | 2021-04-13 | 成都鼎桥通信技术有限公司 | 域名管理方法、设备及存储介质 |
CN112956171A (zh) * | 2018-09-19 | 2021-06-11 | 思杰系统有限公司 | 用于维持和传输saas会话状态的系统和方法 |
CN113163414A (zh) * | 2020-01-22 | 2021-07-23 | 大唐移动通信设备有限公司 | 一种信息处理方法和近实时无线接入网控制器 |
US20210248269A1 (en) * | 2018-10-31 | 2021-08-12 | Huawei Technologies Co., Ltd. | Device and method for enforcing a data policy |
CN113254932A (zh) * | 2021-06-16 | 2021-08-13 | 百度在线网络技术(北京)有限公司 | 应用程序的风险检测方法、装置、电子设备和介质 |
CN113297563A (zh) * | 2021-06-18 | 2021-08-24 | 海光信息技术股份有限公司 | 访问片上系统特权资源的方法、装置及片上系统 |
CN113490929A (zh) * | 2019-01-30 | 2021-10-08 | 思杰系统有限公司 | 文件冲突检测 |
CN113721578A (zh) * | 2020-05-25 | 2021-11-30 | 上汽通用汽车有限公司 | 域控制器刷新方法与系统 |
CN114124880A (zh) * | 2021-11-29 | 2022-03-01 | 北京天融信网络安全技术有限公司 | 基于公有云的保密通信方法、装置及计算机设备及存储介质 |
CN114168115A (zh) * | 2020-09-10 | 2022-03-11 | 荣耀终端有限公司 | 通信系统、应用下载方法及设备 |
CN114675900A (zh) * | 2022-02-11 | 2022-06-28 | 深圳Tcl新技术有限公司 | 桌面启动器提前启动方法、显示终端及存储介质 |
CN114697362A (zh) * | 2016-07-02 | 2022-07-01 | 英特尔公司 | 用于物联网的认知边缘处理 |
CN114826916A (zh) * | 2021-01-28 | 2022-07-29 | 阿里巴巴集团控股有限公司 | 数据传输方法、设备、系统及计算机存储介质 |
CN115017400A (zh) * | 2021-11-30 | 2022-09-06 | 荣耀终端有限公司 | 一种应用app推荐方法及电子设备 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102017103017A1 (de) * | 2017-02-15 | 2018-08-16 | Sig Technology Ag | Verpackungsanlagendatenvermittlung sowie Verfahren zum Betreiben einer Verpackungsanlagendatenvermittlung |
EP3811200A1 (en) * | 2018-07-24 | 2021-04-28 | Siemens Aktiengesellschaft | Semantics-based internet of things device data processing-related application installation method and apparatus |
CN111427622B (zh) * | 2018-12-24 | 2023-05-16 | 阿里巴巴集团控股有限公司 | 应用程序中脚本代码的执行方法及装置 |
EP3699800A1 (en) * | 2019-02-22 | 2020-08-26 | Atos Information Technology GmbH | Method of distributing an object in a document management system, computer program, document management system |
US11586750B2 (en) * | 2019-03-21 | 2023-02-21 | Blackberry Limited | Managing access to protected data file content |
CN112241264A (zh) * | 2019-07-17 | 2021-01-19 | 易保网络技术(上海)有限公司 | 可视化的页面处理方法和设备 |
CN110866291B (zh) * | 2019-11-15 | 2023-03-24 | 北京工业大学 | 一种基于双重安全机制的废旧电子产品信息清除方法 |
CN112925531B (zh) * | 2019-12-05 | 2023-10-20 | 成都鼎桥通信技术有限公司 | 一种应用软件安装卸载的管控方法 |
CN111143876B (zh) * | 2019-12-19 | 2023-03-21 | 广东电网有限责任公司 | 一种对ad域用户隶属的冗余安全组处理方法 |
CN111193725B (zh) * | 2019-12-20 | 2022-04-05 | 北京淇瑀信息科技有限公司 | 一种基于配置的联合登录方法、装置和计算机设备 |
CN111143008A (zh) * | 2019-12-26 | 2020-05-12 | 福建新大陆支付技术有限公司 | 基于多终端的桌面管理方法 |
LU500755B1 (en) * | 2021-10-19 | 2023-04-20 | Microsoft Technology Licensing Llc | Confining lateral traversal within a computer network |
WO2023076294A1 (en) * | 2021-10-25 | 2023-05-04 | Intertrust Technologies Corporation | Environment and location-based data access management systems and methods |
CN114398094B (zh) * | 2021-12-21 | 2023-08-18 | 中国银联股份有限公司 | 小程序启动方法、装置、设备及计算机可读存储介质 |
WO2023129805A1 (en) * | 2021-12-29 | 2023-07-06 | Google Llc | Application groups for enforcing data transfer controls |
US11977653B2 (en) * | 2022-03-07 | 2024-05-07 | Recolabs Ltd. | Systems and methods for securing files and/or records related to a business process |
US20230297356A1 (en) * | 2022-03-16 | 2023-09-21 | Promethean Limited | Networked computing device management systems and methods |
US20230401308A1 (en) * | 2022-06-14 | 2023-12-14 | Unbiased Security Ltd. | Interactive security orchestration |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1313690A (zh) * | 2000-03-14 | 2001-09-19 | 索尼公司 | 信息提供及处理设备、方法和系统以及程序及其存储介质 |
CN1613040A (zh) * | 2002-01-08 | 2005-05-04 | 株式会社Ntt都科摩 | 内容传送方法和内容传送系统 |
EP2428894A1 (en) * | 2010-09-14 | 2012-03-14 | AppSense Limited | Private application clipboard |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8126506B2 (en) * | 2007-02-14 | 2012-02-28 | Nuance Communications, Inc. | System and method for securely managing data stored on mobile devices, such as enterprise mobility data |
US9665729B2 (en) * | 2009-04-13 | 2017-05-30 | Microsoft Technology Licensing, Llc | Revocation of application on mobile device |
US8233882B2 (en) * | 2009-06-26 | 2012-07-31 | Vmware, Inc. | Providing security in mobile devices via a virtualization software layer |
KR101632203B1 (ko) * | 2010-03-17 | 2016-06-22 | 삼성전자주식회사 | 휴대 단말기의 어플리케이션 실행 방법 및 장치 |
US8935384B2 (en) * | 2010-05-06 | 2015-01-13 | Mcafee Inc. | Distributed data revocation using data commands |
US9461996B2 (en) * | 2010-05-07 | 2016-10-04 | Citrix Systems, Inc. | Systems and methods for providing a single click access to enterprise, SAAS and cloud hosted application |
-
2013
- 2013-10-09 EP EP18186904.1A patent/EP3422236B1/en active Active
- 2013-10-09 CN CN201380064191.1A patent/CN104838630B/zh active Active
- 2013-10-09 EP EP13795021.8A patent/EP2907290A1/en not_active Withdrawn
- 2013-10-09 EP EP18186906.6A patent/EP3422237B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1313690A (zh) * | 2000-03-14 | 2001-09-19 | 索尼公司 | 信息提供及处理设备、方法和系统以及程序及其存储介质 |
CN1613040A (zh) * | 2002-01-08 | 2005-05-04 | 株式会社Ntt都科摩 | 内容传送方法和内容传送系统 |
EP2428894A1 (en) * | 2010-09-14 | 2012-03-14 | AppSense Limited | Private application clipboard |
Cited By (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106295413A (zh) * | 2015-06-29 | 2017-01-04 | 三星电子株式会社 | 半导体装置 |
CN106295413B (zh) * | 2015-06-29 | 2021-07-20 | 三星电子株式会社 | 半导体装置 |
CN106557305A (zh) * | 2015-09-25 | 2017-04-05 | 株式会社理光 | 一种自动回放Android程序的方法及系统 |
CN106557305B (zh) * | 2015-09-25 | 2020-02-21 | 株式会社理光 | 一种自动回放Android程序的方法及系统 |
CN107241298A (zh) * | 2016-03-29 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 一种应用管控方法、终端及系统 |
CN107241298B (zh) * | 2016-03-29 | 2020-06-23 | 阿里巴巴集团控股有限公司 | 一种应用管控方法、终端及系统 |
CN108701175A (zh) * | 2016-03-30 | 2018-10-23 | 安维智有限公司 | 将用户账户与企业工作空间相关联 |
CN108701175B (zh) * | 2016-03-30 | 2022-06-10 | 安维智有限公司 | 将用户账户与企业工作空间相关联 |
CN105871930A (zh) * | 2016-06-21 | 2016-08-17 | 上海携程商务有限公司 | 基于应用的防火墙安全策略的自适应配置方法及系统 |
CN105979000A (zh) * | 2016-06-25 | 2016-09-28 | 国云科技股份有限公司 | 一种vnc协议远程桌面的方法 |
CN114697362A (zh) * | 2016-07-02 | 2022-07-01 | 英特尔公司 | 用于物联网的认知边缘处理 |
CN109565437A (zh) * | 2016-07-29 | 2019-04-02 | 佩尔曼恩特私人有限公司 | 与安全加密相关的应用 |
CN109844717A (zh) * | 2016-08-14 | 2019-06-04 | 利维帕尔森有限公司 | 用于移动应用程序的实时远程控制的系统和方法 |
CN109844717B (zh) * | 2016-08-14 | 2023-05-23 | 利维帕尔森有限公司 | 用于移动应用程序的实时远程控制的系统和方法 |
CN106327211A (zh) * | 2016-08-25 | 2017-01-11 | 互动派科技股份有限公司 | 一种基于社交媒体的scrm系统及其开发方法 |
CN106411580A (zh) * | 2016-09-14 | 2017-02-15 | 努比亚技术有限公司 | 设备管理客户端、服务器及设备管理方法 |
US11663175B2 (en) | 2016-09-19 | 2023-05-30 | Microsoft Technology Licensing, Llc | Deployment of applications conforming to application data sharing and decision service platform schema |
CN109716331B (zh) * | 2016-09-19 | 2023-09-12 | 微软技术许可有限责任公司 | 符合应用程序数据共享和决策服务平台模式的应用程序部署 |
CN109716331A (zh) * | 2016-09-19 | 2019-05-03 | 微软技术许可有限责任公司 | 符合应用程序数据共享和决策服务平台模式的应用程序部署 |
CN110199289A (zh) * | 2016-12-19 | 2019-09-03 | 詹卢卡·皮尼 | 用于调节通过电子设备对数据连接的访问的方法 |
CN106850259A (zh) * | 2016-12-22 | 2017-06-13 | 北京元心科技有限公司 | 用于管控策略执行的方法、装置及电子设备 |
CN106850259B (zh) * | 2016-12-22 | 2019-12-17 | 北京元心科技有限公司 | 用于管控策略执行的方法、装置及电子设备 |
CN106506549A (zh) * | 2016-12-27 | 2017-03-15 | 上海斐讯数据通信技术有限公司 | 网络设备代理的云共享私有权限管理方法及系统 |
CN110537181B (zh) * | 2017-03-01 | 2023-07-28 | Ca公司 | 对应用数据进行分类的方法、计算设备及存储介质 |
CN110537181A (zh) * | 2017-03-01 | 2019-12-03 | 赛门铁克公司 | 管理数据加密应用程序 |
CN107104955B (zh) * | 2017-04-10 | 2020-09-11 | 深信服科技股份有限公司 | 一种应用发布方法及应用发布系统 |
CN107104955A (zh) * | 2017-04-10 | 2017-08-29 | 深信服科技股份有限公司 | 一种应用发布方法及应用发布系统 |
CN107193667A (zh) * | 2017-04-25 | 2017-09-22 | 北京小米移动软件有限公司 | 网页权限的更新方法及装置 |
CN107193667B (zh) * | 2017-04-25 | 2021-03-09 | 北京小米移动软件有限公司 | 网页权限的更新方法及装置 |
CN110603538A (zh) * | 2017-05-18 | 2019-12-20 | 谷歌有限责任公司 | 使用密码共享的加密搜索云服务 |
CN107239692A (zh) * | 2017-05-23 | 2017-10-10 | 成都联宇云安科技有限公司 | 一种基于设备管理器实现安卓智能设备摄像头的管控方法 |
CN107302626A (zh) * | 2017-05-23 | 2017-10-27 | 成都联宇云安科技有限公司 | 一种针对安卓智能手机麦克风的管控方法 |
CN109426546A (zh) * | 2017-09-01 | 2019-03-05 | 腾讯科技(深圳)有限公司 | 应用启动方法及装置、计算机存储介质及设备 |
CN110048999A (zh) * | 2018-01-17 | 2019-07-23 | Ise软件定制和电子有限公司 | 建立经认证的连接的方法、设备、计算机可读介质和系统 |
CN110048999B (zh) * | 2018-01-17 | 2022-05-24 | Ise软件定制和电子有限公司 | 建立经认证的连接的方法、设备、计算机可读介质和系统 |
CN111684418A (zh) * | 2018-03-01 | 2020-09-18 | 华睿泰科技有限责任公司 | 用于在多租户容器平台上运行应用程序的系统和方法 |
CN111684418B (zh) * | 2018-03-01 | 2023-11-14 | 华睿泰科技有限责任公司 | 用于在多租户容器平台上运行应用程序的系统和方法 |
US11683311B2 (en) | 2018-03-01 | 2023-06-20 | Veritas Technologies Llc | Systems and methods for running applications on a multi-tenant container platform |
US20190303816A1 (en) * | 2018-04-02 | 2019-10-03 | Citrix Systems, Inc. | Cloud workspace assignment by user location |
CN112956171A (zh) * | 2018-09-19 | 2021-06-11 | 思杰系统有限公司 | 用于维持和传输saas会话状态的系统和方法 |
CN109032647B (zh) * | 2018-10-17 | 2020-05-19 | 北京京航计算通讯研究所 | 基于软件监控和策略的软件升级方法 |
CN109032647A (zh) * | 2018-10-17 | 2018-12-18 | 北京京航计算通讯研究所 | 基于软件监控和策略的软件升级方法 |
CN109740079A (zh) * | 2018-10-29 | 2019-05-10 | 深圳壹账通智能科技有限公司 | H5页面的加载方法、装置和计算机设备 |
US20210248269A1 (en) * | 2018-10-31 | 2021-08-12 | Huawei Technologies Co., Ltd. | Device and method for enforcing a data policy |
CN111212019A (zh) * | 2018-11-22 | 2020-05-29 | 阿里巴巴集团控股有限公司 | 用户账户的访问控制方法、装置及设备 |
CN111212019B (zh) * | 2018-11-22 | 2022-09-02 | 阿里巴巴集团控股有限公司 | 用户账户的访问控制方法、装置及设备 |
WO2020107104A1 (en) | 2018-11-30 | 2020-06-04 | BicDroid Inc. | Personalized and cryptographically secure access control in operating systems |
EP3887979A4 (en) * | 2018-11-30 | 2022-10-12 | BicDroid Inc. | PERSONALIZED AND CRYPTOGRAPHICALLY SECURE ACCESS CONTROL IN OPERATING SYSTEMS |
CN111369984B (zh) * | 2018-12-26 | 2023-08-08 | Tcl科技集团股份有限公司 | 一种语音交互方法、存储介质及终端设备 |
CN111369984A (zh) * | 2018-12-26 | 2020-07-03 | Tcl集团股份有限公司 | 一种语音交互方法、存储介质及终端设备 |
CN109814886A (zh) * | 2019-01-16 | 2019-05-28 | 深圳乐信软件技术有限公司 | 一种软件安装方法、装置、设备和存储介质 |
CN113490929A (zh) * | 2019-01-30 | 2021-10-08 | 思杰系统有限公司 | 文件冲突检测 |
CN111552953B (zh) * | 2019-02-12 | 2023-08-15 | Sap门户以色列有限公司 | 安全策略作为服务 |
CN111552953A (zh) * | 2019-02-12 | 2020-08-18 | Sap门户以色列有限公司 | 安全策略作为服务 |
US10936339B2 (en) | 2019-03-18 | 2021-03-02 | Beijing Bytedance Network Technology Co., Ltd. | Data sharing method and apparatus, electronic device and computer-readable storage medium |
CN109684116A (zh) * | 2019-03-18 | 2019-04-26 | 北京字节跳动网络技术有限公司 | 数据分享方法、装置、设备及介质 |
CN109684116B (zh) * | 2019-03-18 | 2019-06-25 | 北京字节跳动网络技术有限公司 | 数据分享方法、装置、设备及介质 |
CN111722894B (zh) * | 2019-03-21 | 2023-04-18 | 成都鼎桥通信技术有限公司 | 应用处理方法、装置及电子设备 |
CN111722894A (zh) * | 2019-03-21 | 2020-09-29 | 成都鼎桥通信技术有限公司 | 应用处理方法、装置及电子设备 |
CN110493175A (zh) * | 2019-07-01 | 2019-11-22 | 联想(北京)有限公司 | 一种信息处理方法、电子设备和存储介质 |
CN110493175B (zh) * | 2019-07-01 | 2020-09-25 | 联想(北京)有限公司 | 一种信息处理方法、电子设备和存储介质 |
CN112181545A (zh) * | 2019-07-03 | 2021-01-05 | 比亚迪股份有限公司 | 车载数据处理方法、装置、车载设备及存储介质 |
CN112653772B (zh) * | 2019-10-11 | 2023-04-07 | 成都鼎桥通信技术有限公司 | 域名管理方法、设备及存储介质 |
CN112653772A (zh) * | 2019-10-11 | 2021-04-13 | 成都鼎桥通信技术有限公司 | 域名管理方法、设备及存储介质 |
CN111212048A (zh) * | 2019-12-26 | 2020-05-29 | 北京安码科技有限公司 | https协议实时监控方法、系统、电子设备及存储介质 |
CN113163414A (zh) * | 2020-01-22 | 2021-07-23 | 大唐移动通信设备有限公司 | 一种信息处理方法和近实时无线接入网控制器 |
CN113163414B (zh) * | 2020-01-22 | 2023-09-22 | 大唐移动通信设备有限公司 | 一种信息处理方法和近实时无线接入网控制器 |
CN111381833A (zh) * | 2020-03-05 | 2020-07-07 | 山东汇贸电子口岸有限公司 | 一种容器化的openstack数据初始化方法 |
CN111597027A (zh) * | 2020-05-15 | 2020-08-28 | 北京百度网讯科技有限公司 | 应用程序的启动方法、装置、设备及存储介质 |
CN113721578B (zh) * | 2020-05-25 | 2023-09-12 | 上汽通用汽车有限公司 | 域控制器刷新方法与系统 |
CN113721578A (zh) * | 2020-05-25 | 2021-11-30 | 上汽通用汽车有限公司 | 域控制器刷新方法与系统 |
CN111917837A (zh) * | 2020-07-13 | 2020-11-10 | 西安即刻易用网络科技有限公司 | 一种Web微应用程序发布系统及其实现方法 |
CN114168115A (zh) * | 2020-09-10 | 2022-03-11 | 荣耀终端有限公司 | 通信系统、应用下载方法及设备 |
CN114168115B (zh) * | 2020-09-10 | 2022-11-08 | 荣耀终端有限公司 | 通信系统、应用下载方法及设备 |
CN114826916A (zh) * | 2021-01-28 | 2022-07-29 | 阿里巴巴集团控股有限公司 | 数据传输方法、设备、系统及计算机存储介质 |
CN113254932A (zh) * | 2021-06-16 | 2021-08-13 | 百度在线网络技术(北京)有限公司 | 应用程序的风险检测方法、装置、电子设备和介质 |
CN113254932B (zh) * | 2021-06-16 | 2024-02-27 | 百度在线网络技术(北京)有限公司 | 应用程序的风险检测方法、装置、电子设备和介质 |
CN113297563A (zh) * | 2021-06-18 | 2021-08-24 | 海光信息技术股份有限公司 | 访问片上系统特权资源的方法、装置及片上系统 |
CN114124880B (zh) * | 2021-11-29 | 2023-07-18 | 北京天融信网络安全技术有限公司 | 基于公有云的保密通信方法、装置及计算机设备及存储介质 |
CN114124880A (zh) * | 2021-11-29 | 2022-03-01 | 北京天融信网络安全技术有限公司 | 基于公有云的保密通信方法、装置及计算机设备及存储介质 |
CN115017400A (zh) * | 2021-11-30 | 2022-09-06 | 荣耀终端有限公司 | 一种应用app推荐方法及电子设备 |
CN114675900A (zh) * | 2022-02-11 | 2022-06-28 | 深圳Tcl新技术有限公司 | 桌面启动器提前启动方法、显示终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104838630B (zh) | 2018-10-12 |
EP3422236A1 (en) | 2019-01-02 |
EP2907290A1 (en) | 2015-08-19 |
EP3422237A1 (en) | 2019-01-02 |
EP3422237B1 (en) | 2023-08-16 |
EP3422236B1 (en) | 2022-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104838630B (zh) | 基于策略的应用程序管理 | |
CN104871172B (zh) | 用于连接的设备的编配框架 | |
CN105308923B (zh) | 对具有多操作模式的应用的数据管理 | |
US9521147B2 (en) | Policy based application management | |
US9043480B2 (en) | Policy-based application management | |
US8806570B2 (en) | Policy-based application management | |
WO2014084967A1 (en) | Policy-based application management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |