控制移动装置对安全数据的访问的制作方法

xiaoxiao2020-10-23  8

控制移动装置对安全数据的访问的制作方法
【专利说明】控制移动装置对安全数据的访问
[0001]相关申请的交叉引用
[0002]本申请要求下列专利申请的优先权:2013年9月27日提交的名称为“CONTROLLING MOBILE DEVICE ACCESS TO SECURE DATA” 的序列号为 14/039,632 的美国非临时专利申请,该专利申请要求2013年8月2日提交的名称为“CONTROLLING MOBILEDEVICE ACCESS TO SECURE DATA”的序列号为61/861,910美国临时专利申请的优先权;2012 年 10 月 16 日提交的名称为 “MANAGING ENCRYPTED DATA VAULTS FOR MANAGEDAPPLICAT1NS ON UNMANAGED MOBILE DEVICE” 的序列号为 61/714,293 的美国临时专利申请;以及 2013年 3 月 29 日提交的名称为“SYSTEMS AND METHODS FOR ENTERPRISE MOBILITYMANAGEMENT”的序列号为61/806,577的美国临时专利申请。
[0003]上述专利申请中的每个专利申请通过弓I用以其整体并入本文。
[0004]背景
[0005]本公开的各方面涉及计算机硬件和软件。具体地,本公开的一个或多个方面主要涉及用于提供企业应用商店的计算机硬件和软件。
[0006]公司和其他组织正越来越多向它们的员工和其他伙伴提供移动装置(例如智能手机、平板电脑)和其他的移动计算装置和/或以其他方式允许它们的员工和其他伙伴启用所述移动装置和其他的移动计算装置。随着这些装置继续普及和提供越来越多的功能,许多组织可能希望对如何使用这些装置、这些装置能够访问什么资源以及在这些装置上运行的应用如何可与其他资源交互进行特定的控制。
[0007]概述
[0008]本公开的各方面提供更有效、更经济、功能化和方便的方式来对可以如何使用移动装置、移动装置能够访问什么资源以及在这些装置上运行的应用可如何与其他资源交互进行控制。具体地,在下面更加详细讨论的一个或多个实施例中,可以实施能够提供这些和功能的企业应用商店。
[0009]本公开的各方面涉及提供用于一个或多个被管理应用的数据的安全容器或数据仓库。在某些实施例中,每个被管理应用可以被指定其自己的专用数据仓库,和/或可以被指定至少一个其他被管理应用可访问的共享数据仓库。在被管理应用执行时,访问数据的调用可以被拦截并被重定向到安全容器。存储在安全容器中的数据可以根据策略来加密。
[0010]其他方面涉及例如经由与被管理应用相关联的选择性数据擦除来从安全容器删除数据。例如,某些方面涉及移动装置拦截来自在该移动装置上执行的被管理应用的读或写操作;基于读或写操作访问安全容器,该安全容器是读或写操作被重定向到其中以及数据是以加密形式存在于其中的逻辑接口 ;确定执行与被管理应用相关联的选择性数据擦除;并且从安全容器删除加密数据。
[0011]另外方面涉及形成或以其他方式配置安全容器。例如,某些方面涉及移动装置经由接入网关获得策略信息,被管理应用所需要的资源通过该接入网关是可访问的,其中该策略信息定义当被管理应用在执行时要被使用的安全容器;经由接入网关获得密钥信息,其中该密钥信息包括用于加密或解密安全容器的数据的一个或多个密钥;基于策略信息配置安全容器,其中该安全容器是读或写操作被重定向到其中以及数据是以加密形式存在于其中的逻辑接口 ;拦截在被管理应用在移动装置上执行时来自该被管理应用的读或写操作;以及基于读或写操作访问安全容器。
[0012]另外方面涉及接收加密/解密储存在安全容器中的数据所需要的密钥信息。例如,某些方面涉及移动装置向接入网关传送消息,被管理应用所需要的资源通过该接入网关是可访问的,其中该消息与用于访问所述资源的授权过程有关;经由接入网关接收密钥信息,其中该密钥信息包括用于加密或解密安全容器的数据的一个或多个密钥,其中该安全容器是读或写操作被重定向到其中以及数据是以加密形式存在于其中的逻辑接口 ;拦截在被管理应用在移动装置上执行时来自该被管理应用的读或写操作;以及基于读或写操作以及一个或多个密钥访问安全容器。
[0013]另外的方面涉及发布用于下载到移动装置上的被管理应用、策略信息和密钥信息。例如,某些方面涉及一个或多个计算装置对于被管理应用确定策略信息,该被管理应用是可被访问的,用于在一个或多个移动装置上安装,所述策略信息定义当被管理应用在执行时要被使用的一个或多个安全容器;确定密钥信息,该密钥信息包括用于加密或解密一个或多个安全容器的数据的一个或多个密钥;发布被管理应用、策略信息和密钥信息,使得所有是可访问的,以安装在一个或多个移动装置上;以及向移动装置传送被管理应用、策略信息和密钥信息。
[0014]这些功能和许多其他功能一起被在下面更加详细讨论。
[0015]附图简述
[0016]本公开借助示例来说明,并且不限于随附绘图中的示例,附图中的相同附图标记表示类似的元件,并且在附图中:
[0017]图1示出可以根据本公开的一个或多个方面来使用的说明性计算机系统架构。
[0018]图2示出可以根据本公开的各个方面来使用的说明性远程访问系统架构。
[0019]图3示出可以根据本公开的一个或多个方面来使用的说明性虚拟化(超级管理器)系统架构。
[0020]图4示出可以根据本公开的各个方面来使用的说明性基于云的系统架构。
[0021]图5示出可以根据本公开的一个或多个方面来使用的说明性企业移动管理系统。
[0022]图6示出可以根据本公开的各个方面来使用的另一说明性企业移动管理系统。
[0023]图7示出根据本公开的一个或多个方面其中可以被访问专用数据仓库和共享数据仓库的示例图。
[0024]图8示出根据本文公开的各个方面结合被管理应用用于将数据存储到数据仓库或容器内的示例方法。
[0025]图9示出根据本公开的一个或多个方面适合执行从移动装置的一个或多个安全容器选择性擦除数据的示例方法。
[0026]图10示出根据本公开的各个方面其中被管理应用被配置的示例过程。
[0027]图11示出根据本文所述的一个或多个方面用于提供用于安全容器的加密密钥和解密密钥的示例方法。
[0028]图12示出结合本文所述的各个方面用于发布被管理应用的示例方法。
[0029]详细描述
[0030]在各个实施例的下列描述中,引用了在上面确认并形成各个实施例的一部分的附图,并且其中借助于说明各个实施例来示出,在各个实施例中本文描述的各方面可以被实践。应当理解,可以使用其他实施例并可以做出结构和功能的更改,而不脱离本文所述的范围。各个方面能够以其他实施例和以各种不同方式来实践或实施。
[0031]作为在下面更加详细描述的主题的一般介绍,本公开的各个方面涉及提供用于一个或多个被管理应用的数据的安全容器或数据仓库。在某些实施例中,每个被管理应用可以被指定其自己的专用数据仓库,和/或可以被指定至少一个其他被管理应用可访问的共享数据仓库。在被管理应用执行时,访问数据的调用可以被拦截并被重定向到安全容器。存储在安全容器中的数据可以根据可以被企业设定的策略来加密。因此,从安全容器检索的数据在转发至应用之前可能需要被解密。其他方面涉及,例如经由与被管理应用相关联的选择性数据擦除(例如,当被管理应用被卸载或当移动装置违背企业策略进行操作时)从安全容器删除数据。另外的方面涉及配置和形成安全容器,检索加密/解密存储在安全容器中的数据所需要的密钥信息,并且发布用于下载到移动装置(例如,在应用商店中)的被管理应用、策略信息和密钥信息。
[0032]应当理解,本文所用的措辞和术语用于描述目的,不应被看做是限制性的。相反,本文所用的措辞和术语应当给予其最广义的解释和含义。在使用“包括(including)”和“包含(comprising) ”及其变体时,意指包含在其后面列出的各项及其等价物以及另外的项及其等价物。在使用术语“安装(mounted) ”、“连接(connected) ”、“親接(coupled) ”、“定位(posit1ned) ”、“嗤合(engaged) ”和类似术语时,意指包括直接和间接安装、连接、親接、定位和啮合两者。
[0033]计算架构
[0034]计算机软件、硬件和网络可以被用在各种不同的系统环境中,所述系统环境除了其他的环境以外,还包括独立的、联网的、远程访问(又叫做,远程桌面)、虚拟化的和/或基于云的环境。图1示出在独立和/或联网环境中可以用于实施本文所述的一个或多个说明性方面的系统架构和数据处理装置的一个示例。各个网络节点103、105、107和109可以经由广域网(WAN)101(诸如互联网)来互连。其他网络也可以或可替代使用,包括专用的内联网、公司网络、LAN、城域网(MN)、无线网络、个人网络(PAN)等。网络101用于说明目的,并且可以用更少或添加的计算机网络来替代。局域网(LAN)可以具有一个或多个任何已知的LAN拓扑结构,并且可以使用各种不同协议中的一个或多个(例如以太网协议)。装置103、105、107、109和其他装置(未示出)可以经由双绞线、同轴电缆、光纤、无线电波或其它通信介质连接到网络中的一个或多个网络。
[0035]如在本文使用并在附图中示出的术语“网络”不仅指的是其中远程存储装置经由一个或多个通信路径耦接在一起的系统,而且指的是不时耦接于具有存储能力的此类系统的独立装置。因此,术语“网络”不仅包括“物理网络”,而且包括“内容网络”,该内容网络由归因于驻留在所有物理网络上的单个实体的数据组成。
[0036]组件可以包括数据服务器103、网页服务器105和客户端计算机107、109。数据服务器103提供数据库的全面访问、控制和管理,以及用于执行本文所述的一个或多个说明性方面的控制软件。数据服务器103可以被连接到网页服务器105,用户根据需要通过该网页服务器与数据服务器交互并获得数据。另选地,数据服务器103可以自身充当网页服务器并被直接连接到互联网。数据服务器103可以通过网络101 (例如,互联网)、经由直接连接或间接连接或经由某些其他网络被连接到网页服务器105。用户可以经由被网页服务器105托管的一个或多个向外暴露的网站,使用远程计算机107、109 (例如使用连接到数据服务器103的网页浏览器)与数据服务器103交互。客户端计算机107、109可以与数据服务器103合作使用以访问存储在其中的数据,或可以被用于其他目的。例如,如在本领域中是公知的,用户可以从客户端装置107使用互联网浏览器访问网页服务器105,或通过执行在计算机网络(例如互联网)上与网页服务器105和/或数据服务器103通信的软件应用来访问网页服务器105。
[0037]服务器和应用可以被组合在相同的物理机器上,并且保留单独的虚拟化或逻辑地址,或可以驻留在单独的物理机器上。图1仅示出可以被使用的网络架构的一个示例,并且本领域中的技术人员应当理解,如在本文进一步所描述的,所使用的特定网络架构和数据处理装置可以改变,并且对于它们提供的功能来说是次要的。例如,由网页服务器105和数据服务器103提供的服务可以被组合在单个服务器上。
[0038]每个组件103、105、107、109可以是任何类型的已知计算机、服务器或数据处理装置。数据服务器103例如可以包括控制数据服务器103的整体运行的处理器111。数据服务器103还可以包括RAM 113、ROM 115、网络接口 117、输入/输出接口 119 (例如键盘、鼠标、显示器、打印机等)以及存储器121。I/O 119可以包括用于读取、写入、显示和/或打印数据或文件的各种接口单元和驱动器。存储器121还可以存储用于控制数据处理装置103的整体运行的操作系统软件123,用于命令数据服务器103执行本文所述的各方面的控制逻辑125,以及其他应用软件127,所述其他应用软件提供可以或不一定结合本文所述的各方面使用的次要、支持和/或其他功能。控制逻辑在本文也可以被称为数据服务器软件125。数据服务器软件的功能可以指的是基于被编码到控制逻辑中的规则自动执行、由提供输入到系统中的用户手动执行的操作或决定,和/或基于用户输入的自动处理的组合(例如,查询,数据更新等)。
[0039]存储器121还可以存储用于执行本文所述的一个或多个方面的数据,该数据包括第一数据库129和第二数据库131。在某些实施例中,第一数据库可以包括第二数据库(例如,作为单独的表格、报告等)。就是说,信息可以被存储在单个数据库中,或根据系统设计被分隔为不同的逻辑、虚拟化或物理数据库。装置105、107、109可以具有如关于装置103所述的相似或不同的架构。本领域中的技术人员应当理解,如本文所述的数据处理装置103 (或装置105、107、109)的功能可以跨多个数据处理装置分布,例如以跨多个计算机分布处理负荷,以基于地理位置用户访问级别、服务质量(QoS)等分隔事务。
[0040]—个或多个方面可以在由如本文所述的一个或多个计算机或其他装置执行的计算机可用或可读的数据和/或计算机可执行的指令中(例如在一个或多个程序模块中)实施。一般来说,程序模块包括当由计算机或其他装置中的处理器实施时其执行特定任务或实施特定抽象数据类型的例程、程序、对象、组件、数据结构等。模块可以以随后被编译用于执行的源代码编程语言来写,或可以以脚本语言(诸如(但不限于)HTML或XML)来写。计算机可执行指令可以被存储在计算机可读介质(诸如非易失性存储装置)上。任何合适的计算机可读存储介质可以被利用,所述介质包括硬盘、CD-ROM、光学存储装置、磁存储装置和/或它们的任何组合。此外,表示如本文所述的数据或事件的各种传输(非存储)介质可以以电磁波的形式在源与目的地之间传送,所述电磁波通过信号传导介质(诸如金属线、光纤和/或无线传输介质(例如,空气和/或空间))行进。本文所述的各个方面可以被实施为方法、数据处理系统或计算机程序产品。因此,各个功能可以全部或部分体现于软件、固件和/或硬件或硬件等价物(诸如集成电路、现场可编程门阵列(FPGA)等)中。特定数据结构可以被用于更有效实施本文所述的一个或多个方面,并且预期此类数据结构在本文所述的计算机可执行指令和计算机可用数据的范围内。
[0041]进一步参考图2,本文所述的一个或多个方面可以在远程访问环境中实施。图2示出根据本文所述的一个或多个说明性方面的示例系统架构,其包括可以被用在说明性计算环境200中的通用计算装置201。通用计算装置201可以被用作单一服务器或多服务器桌面虚拟化系统(例如,远程访问或云系统)中的服务器206a,所述系统经配置提供用于客户端访问装置的虚拟机。通用计算装置201可以具有用于控制服务器及其关联组件的整体运行的处理器203,所述关联组件包括随机存取存储器(RAM) 205、只读存储器(ROM) 207、输入/输出(I/o)模块209以及存储器215。
[0042]I/O模块209可以包括鼠标、键盘、触摸屏、扫描器、光学读取器和/或通用计算装置201的用户可以通过其可以提供输入的触针(或其他输入装置),并且还可以包括用于提供音频输出的一个或多个扬声器以及用于提供文本、音频、视频和/或图形输出的视频显示装置。软件可以被存储在存储器215和/或其他储存器内,以向处理器203提供指令,该指令用于将通用计算装置201配置为专用计算装置以便执行如本文所述的各种功能。例如,存储器215可以存储由计算装置201使用的软件(诸如操作系统217、应用程序219和关联的数据库221)。
[0043]计算装置201可以在联网的环境中运行,该联网环境支持至一个或多个远程计算机(诸如终端240 (也被称为客户端装置))的连接。终端240可以是包括上面关于通用计算装置103或201所述的许多或全部元件的个人计算机、移动装置、便携式计算机、平板电脑或服务器。在图2中示出的网络连接包括局域网(LAN) 225和广域网(WAN) 229,但是也可以包括其他网络。当用在LAN联网环境中时,计算装置201可以通过网络接口或适配器223被连接到LAN 225。当用在WAN联网环境中时,计算装置201可以包括调制解调器227或用于在WAN 229 (例如计算机网络230 (例如,互联网))上建立通信的其他广域网接口。应当理解,所示出的网络连接是说明性的,并且可以使用在计算机之间建立通信链接的其他装置。计算装置201和/或终端240也可以是包括各种其他组件(诸如电池、扬声器和天线(未示出))的移动终端(例如,移动电话,智能电话,PDA,笔记本电脑等)。
[0044]本文描述的各方面也可以用许多其他通用或专用计算系统环境或配置来运行。可能适合用于本文所述的各方面的其他计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持或便携式装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子装置、网络PC、小型计算机、大型计算机、包括上述系统或装置中的任一个的分布式计算环境等等。
[0045]如图2中所示,一个或多个客户端装置240可以与一个或多个服务器206a-206n(本文通常称为“服务器206”)通信。在一个实施例中,计算环境200可以包括安装在服务器206与客户端机器240之间的网络设备。网络设备可以管理客户端/服务器连接,并且在某些情况下可以负载平衡多个后端服务器206之间的客户端连接。
[0046]在某些实施例中,客户端机器240可以被称为单个客户端机器240或单组客户端机器240,而服务器206可以被称为单个服务器206或单组服务器206。在一个实施例中,单个客户端机器240与一个以上的服务器206通信,而在另一实施例中,单个服务器206与一个以上的客户端机器240通信。在又一实施例中,单个客户端机器240与单个服务器206通信。
[0047]在某些实施例中,客户端机器240可以被引用为下列非穷举术语中的任意一个:客户端机器;客户端;客户端计算机;客户端装置;客户端计算装置;本地机器;远程机器;客户端节点;端点;或端部节点。在某些实施例中,服务器206可以被引用为下列非穷举术语中的任意一个:服务器,本机机器;远程机器;服务器群或主机计算装置。
[0048]在一个实施例中,客户端装置240可以是虚拟机。该虚拟机可以是任何虚拟机,而在某些实施例中,该虚拟机可以是由类型I或类型2超级管理器(例如通过Citrix系统、IBM、VMware开发的超级管理器或任何其他超级管理器)管理的任何虚拟机。在某些方面,虚拟机可以由超级管理器来管理,而在有些方面,虚拟机可以通过在服务器206上执行的超级管理器或在客户端240上执行的超级管理器来管理。
[0049]某些实施例包括显示由在服务器206上远程执行的应用或其他定位在远端的机器所生成的应用输出的客户端装置240。在这些实施例中,客户端装置240可以执行虚拟机接收器程序或应用,以在应用窗口、浏览器或其他输出窗口中显示输出。在一个示例中,应用是桌面,而在其他示例中,应用是生成或呈现桌面的应用。桌面可以包括提供用于操作系统的实例的用户界面的图形壳,本地和/或远程应用可以被集成到该图形壳中。如本文所使用的应用是在操作系统的实例(以及,可选地也包括桌面)已被加载后执行的程序。
[0050]在某些实施例中,服务器206使用远程显示协议或其他程序向瘦客户端或在客户端上执行的远程显示应用发送数据,以呈现由在服务器206上执行的应用所生成的显示输出。瘦客户端或远程显示协议可以是下列非穷举协议列表中的任意一个:通过佛罗里达州劳德代尔堡(Ft.Lauderdale, Florida)的Citrix系统公司开发的独立计算架构(ICA)协议;或通过华盛顿雷德蒙德(Redmond, Washington)的微软公司制造的远程桌面协议(RDP) ο
[0051]远程计算环境可以包括一个以上的服务器206a-206n,使得服务器206a-206n例如在云计算环 境中被逻辑分组在一起形成服务器群206。服务器群206可以包括地理分散但被逻辑分组在一起的服务器206,或彼此位置接近而被逻辑分组在一起的服务器206。在某些实施例中,服务器群206内的地理分散服务器206a-206n可以使用WAN (广域),MAN (城域)或LAN(局域)通信,其中不同的地理区可以被表征为:不同大洲;洲的不同区域;不同国家;不同州;不同城市;不同校区;不同房间;或前述地理位置的任何组合。在某些实施例中,服务器群206可以作为单一实体来管理,而在其他实施例中,服务器群206可以包括多个服务器群。
[0052]在某些实施例中,服务器群可以包括执行大致类似类型的操作系统平台(例如,WINDOWS、UNIX、LINUX、1S、ANDROID、SYMBIAN等)的服务器206。在其他实施例中,服务器群206可以包括执行第一类型操作系统平台的第一组的一个或多个服务器,以及执行第二类型操作系统平台的第二组的一个或多个服务器。
[0053]服务器206可以根据需要被配置为任何类型的服务器,例如第一服务器,应用服务器,网页服务器,代理服务器,设备,网络设备,网关,应用网关,网关服务器,虚拟化服务器,部署服务器,SSL VPN服务器,防火墙,网页服务器,应用服务器或被配置为主应用服务器,执行动态目录的服务器,或执行提供防火墙功能、应用功能或负载平衡功能的应用加速程序的服务器。也可以使用其他服务器类型。
[0054]某些实施例包括第一服务器106a,该服务器接收来自客户端机器240的请求,向第二服务器106b转发请求,以及对由客户端机器240根据来自第二服务器106b的响应所生成的请求做出反应。第一服务器106a可以获得可用于客户端机器240的应用的列举以及与托管在应用列举内被识别的应用的应用服务器206相关联的地址信息。第一服务器106a可随后使用网页界面对客户端的请求呈现响应,并且与客户端240直接通信以向客户端240提供对被识别应用的访问。一个或多个客户端240和/或一个或多个服务器206可以在网络230 (例如网络101)上传送数据。
[0055]图2示出说明性桌面虚拟化系统的高级别架构。如所示,桌面虚拟化系统可以是单个服务器或多服务器系统或云系统,其包括至少一个虚拟化服务器206,虚拟化服务器206经配置向一个或多个客户端访问装置240提供虚拟桌面和/或虚拟应用。如本文所使用的,桌面指的是一个或多个应用可以在其中被托管和/或执行的图形环境或空间。桌面可以包括提供用于操作系统的实例的用户界面的图形壳,本地和/或远程应用可以被集成到该图形壳中。应用可以包括在操作系统的实例(以及,可选地,也包括桌面)已被加载后执行的程序。每个操作系统的实例可以是物理的(例如,每个装置一个操作系统)或虚拟化的(例如,在单个装置上运行的许多OS实例)。每个应用可以在本地装置上执行,或在远程定位的(例如,远程的)装置上执行。
[0056]进一步参考图3,计算机装置301可以被配置为虚拟化环境或云计算环境中的虚拟化服务器(例如单个服务器、多个服务器)。在图3中示出的虚拟化服务器301可以被部署为在图2中示出的服务器206的一个或多个实施例和/或由其实施,或通过其他已知的计算装置来实施。包括在虚拟化服务器301中的是硬件层,其可以包括一个或多个物理盘304、一个或多个物理装置306、一个或多个物理处理器308和一个或多个物理存储器316。在某些实施例中,固件312可以被存储在物理存储器316中的存储器元件内并且可以由物理处理器308中的一个或多个执行。虚拟化服务器301还可以包括操作系统314,其可以被存储在物理存储器316的存储器元件中并由物理处理器308中的一个或多个执行。更进一步,超级管理器302可以被存储在物理存储器316中的存储器元件中并可以由物理处理器308中的一个或多个执行。
[0057]在物理处理器308中的一个或多个上执行的可以是一个或多个虚拟机332A-C ( —般称为332) ο每个虚拟机332可以具有虚拟盘326A-C和虚拟处理器328A-C。在某些实施例中,第一虚拟机332A可以使用虚拟处理器328A执行包括工具堆栈324的控制程序320。控制程序320可以被称为控制虚拟机、DomO、域0,或用于系统管理和/或控制的其他虚拟机。在某些实施例中,一个或多个虚拟机332B-C可以使用虚拟处理器328B-C执行访客(guest)操作系统330A-B。
[0058]虚拟化服务器301可以包括与虚拟化服务器301通信具有一片或多片硬件的硬件层310。在某些实施例中,硬件层310可以包括一个或多个物理盘304、一个或多个物理装置306、一个或多个物理处理器308和一个或多个存储器216。物理组件304、306、308和316可以包括例如上文所述的组件中的任意一个。物理装置306可以包括例如网络接口卡、视频卡、键盘、鼠标、输入装置、监视器、显示装置、扬声器、光学驱动器、存储装置、通用串行总线连接、打印机、扫描器、网络元件(例如,路由器、防火墙、网络地址转换器、负载平衡器、虚拟化专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等)或与虚拟化服务器301连接或通信的任何装置。硬件层310中的物理存储器316可以包括任何类型的存储器。物理存储器316可以存储数据,并且在某些实施例中可以存储一个或多个程序或一组可执行指令。图3示出其中固件312被存储在虚拟化服务器301的物理存储器316内的实施例。存储在物理存储器316中的程序或可执行指令可以由虚拟化服务器301的一个或多个处理器308来执行。
[0059]虚拟化服务器301还可以包括超级管理器302。在某些实施例中,超级管理器302可以是一种程序,其由虚拟化服务器301上的处理器308来执行,以形成和管理任何数量的虚拟机332。超级管理器302可以被称为虚拟机监视器或平台虚拟化软件。在某些实施例中,超级管理器302可以是监控在计算机器上执行的虚拟机的可执行指令和硬件的任何组合。超级管理器302可以是类型2的超级管理器,其中,该超级管理器在执行于虚拟化服务器301上的操作系统314内执行。虚拟机随后在高于该超级管理器的级别执行。在某些实施例中,类型2超级管理器在用户操作系统的背景内执行,使得类型2超级管理器与用户的操作系统交互。在其他实施例中,在虚拟化环境中的一个或多个虚拟化服务器201可以替代包括类型I超级管理器(未示出)。类型I超级管理器可以通过直接访问硬件层310内的硬件和资源在虚拟化服务器301上执行。就是说,虽然类型2超级管理器302通过如所示的主机操作系统314访问系统资源,但是类型I超级管理器无需主机操作系统314可以直接访问所有系统资源。类型I超级管理器可以在虚拟化服务器301的一个或多个物理处理器308上直接执行,并且可以包括存储在物理存储器316中的程序数据。
[0060]在某些实施例中,超级管理器302可以向操作系统330或控制程序320提供虚拟化资源,操作系统330或控制程序320以模拟直接访问系统资源的操作系统330或控制程序的方式在虚拟机332上执行。系统资源可以包括但不限于物理装置306、物理盘304、物理处理器308、物理存储器316和包括在虚拟化服务器301硬件层310中的任何其他组件。超级管理器302可以被用于仿真虚拟化硬件、分区物理硬件、虚拟化物理硬件和/或执行提供访问计算环境的虚拟机。在另外的其他实施例中,超级管理器302控制用于在虚拟化服务器301上执行的虚拟机332的处理器调度和存储器分区。超级管理器302可以包括由加利福尼亚州帕罗奥图(Palo Alto, California)的VMWare公司制造的那些超级管理器;Xen超级管理器,其是其开发由开源xen.0rg社区监督的开源产品;由微软提供的HyperV、VirtualServer或虚拟PC超级管理器或者其他超级管理器。在某些实施例中,虚拟化服务器301执行形成虚拟机平台的超级管理器302,访客操作系统可以在该虚拟机平台上执行。在这些实施例中,虚拟化服务器301可以被称为主机服务器。此类虚拟化服务器的示例是由佛罗里达州劳德代尔堡的Citrix Systems公司提供的XEN SERVER。
[0061]超级管理器3002可以形成访客操作系统330在其中执行的一个或多个虚拟机332B-C (一般被称为332)。在某些实施例中,超级管理器302可以加载虚拟机图像以形成虚拟机332。在其他实施例中,超级管理器302可以在虚拟机332内执行访客操作系统330。在另外的其他实施例中,虚拟机332可以执行访客操作系统330。
[0062]除了形成虚拟机332以外,超级管理器302可以控制至少一个虚拟机332的执行。在其他实施例中,超级管理器302可以向至少一个虚拟机332呈现由虚拟化服务器301提供的至少一个硬件资源(例如,硬件层310内可用的任何硬件资源)的抽象。在其他实施例中,超级管理器302可以控制虚拟机332以其访问虚拟化服务器301中可用的物理处理器308的方式。控制对物理处理器308的访问可以包括确定虚拟机332是否应当访问处理器308,以及物理处理器的性能如何向虚拟机332呈现。
[0063]如图3中所示,虚拟化服务器301可以托管或执行一个或多个虚拟机332。虚拟机332是一组可执行指令,当该其被处理器308执行时,其初始化物理计算机的运行,使得虚拟机332更像物理计算装置执行程序和过程。虽然图3示出其中虚拟化服务器301托管三个虚拟机332的实施例,但是在其他实施例中,虚拟化服务器301可以托管任何数量的虚拟机332。在某些实施例中,超级管理器302向每个虚拟机332提供该虚拟化机332可用的物理硬件、存储器、处理器和其他系统资源的独特虚拟视图。在某些实施例中,该独特虚拟视图可以基于虚拟机允许、一个或多个虚拟化机识别符的策略引擎的应用、访问虚拟机的用户、在虚拟机上执行的应用、由虚拟机访问的网络中的一个或多个,或任何其他期望的标准。例如,超级管理器302可以形成一个或多个非安全的虚拟机332和一个或多个安全的虚拟机332。非安全的虚拟机332可以被阻止访问可能允许安全虚拟机332访问的资源、硬件、存储器位置和程序。在其他实施例中,超级管理器302可以向每个虚拟机332提供该虚拟化机332可用的物理硬件、存储器、处理器和其他系统资源的大致相似的虚拟视图。
[0064]每个虚拟化机332可以包括虚拟盘326A-C(—般称为326)和虚拟处理器328A-C (—般称为328)。在某些实施例中,虚拟盘326是虚拟化服务器301的一个或多个物理盘304或虚拟化服务器301的一个或多个物理盘304的一部分的虚拟化视图。物理盘304的虚拟化视图可以由超级管理器302生成、提供和管理。在某些实施例中,超级管理器302向每个虚拟机332提供物理盘304的独特视图。因此,在这些实施例中,当与其他虚拟盘326比较时,包括在每个虚拟机332中的特定虚拟盘326可以是独特的。
[0065]虚拟处理器328可以是虚拟化服务器301的一个或多个物理处理器308的虚拟化视图。在某些实施例中,物理处理器308的虚拟化视图可以由超级管理器302生成、提供和管理。在某些实施例中,虚拟处理器328几乎具有至少一个物理处理器308的全部相同特征。在其他实施例中,虚拟化处理器308提供物理处理器308的更改视图,使得虚拟处理器328的特性中的至少某些特性不同于对应物理处理器308的特性。
[0066]进一步参考图4,本文所述的某些方面可以在基于云的环境中实施。图4示出云计算环境(或云系统)400的示例。如在图4中可以看出,客户端计算机411-414可以与云管理服务器410通信以访问云系统的计算资源(例如,主机服务器403、存储资源404和网络资源405)。
[0067]管理服务器410可以在一个或多个物理服务器上实施。管理服务器410除了可以运行其他软件以外,还可以运行例如佛罗里达州劳德代尔堡Citrix Systems公司的CLOUDSTACK或OPENSTACK。管理服务器410可以管理各种计算资源,该计算资源包括云硬件和软件资源,例如主机计算机403、数据存储装置404和联网装置405。云硬件和软件资源可以包括专用和/或公共组件。例如,云可以被配置为由一个或多个特定客户或客户端计算机411-414使用和/或在专用网络上使用的专用云。在其他实施例中,公共云或混合的公共-专用云可以由其他客户在开放或混合网络上使用。
[0068]管理服务器410可以经配置提供用户界面,云操作员和云客户可以通过该用户界面与云系统交互。例如,管理服务器410可以向一组API和/或一个或多个云操作员控制台应用(例如,基于独立应用的网页)提供用户界面以允许云操作员管理云资源、配置虚拟化层、管理客户账户并执行其他云管理任务。管理服务器410还可以包括带有用户界面的一组API和/或一个或多个客户控制台应用,该用户界面经配置经由客户端计算机411-414接收来自终端用户的云计算请求(例如形成、更改或破坏云内的虚拟机的请求)。客户端计算机411-414可以经由互联网或其他通信网络连接到管理服务器410,并且可以请求访问由管理服务器410管理的计算资源中的一个或多个计算资源。响应于客户端请求,管理服务器410可以包括资源管理器,该资源管理器经配置基于客户端请求选择和提供云系统的硬件层中的物理资源。例如,管理服务器410和云系统的另外组件可以经配置在网络(例如,互联网)上在客户端计算机411-414提供、形成和管理用于客户的虚拟机和它们的运行环境(例如,超级管理器、存储资源、由网络元件提供的服务等),向客户提供计算资源、数据存储服务、联网性能以及计算机平台和应用支持。云系统还可以经配置提供各种指定服务,各种指定服务包括安全系统、开发环境、用户界面等。
[0069]特定客户端411-414可以例如与形成代表相同终端用户或附属于相同公司或组织的不同用户的虚拟机的不同客户端计算机相关。在其他示例中,特定客户端411-414可以与例如附属于不同公司或组织的用户不相关。对于不相关的客户端,虚拟机上的信息或任何一个用户的存储可以相对于其他用户被隐藏。
[0070]现在参考云计算环境的物理硬件层,可用区401-402(或各区)可以指的是布置的一组物理计算资源。在整个计算资源云中的各区可以与其他区地理分隔。例如,区401可以是位于加利福尼亚州的第一云数据中心,以及区402可以是位于佛罗里达州的第二云数据中心。管理服务器410可以被定位在各可用区中的一个可用区或分开的位置。每个区可以包括通过网关与在该区外面的装置(诸如管理服务器410)接合的内部网络。云的终端用户(例如,客户端411-414)可能或可能未感知到各区之间的区别。例如,终端用户可以请求形成具有指定量的存储器、处理能力和网络能力的虚拟机。管理服务器410可以响应于用户的请求并可以分配资源以形成虚拟机,而无需用户知道该是否使用来自区401或区402的资源来形成虚拟机。在其他示例中,云系统可以允许终端用户请求将虚拟机(或其他云资源)分配在指定区中或区内的指定资源403-405上。
[0071]在这个示例中,每个区401-402可以包括各种物理硬件组件(或计算资源)403-4-5的布置,所述各种物理硬件组件例如,物理托管资源(或处理资源)、物理网络资源、物理存储资源、交换机、以及可以用于向客户提供云计算服务的另外硬件资源。在云区401-402中的物理托管资源可以包括一个或多个计算机服务器403 (诸如上述的经配置可以形成和托管虚拟机实例的虚拟化服务器301)。在云区401或402中的物理网络资源可以包括一个或多个网络元件405 (例如,网络服务供应商),其包括经配置向云客户提供网络服务的硬件和/或软件(诸如防火墙、网络地址转换器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等等)。在云区401-402中的存储资源可以包括存储盘(例如,固态硬盘(SSD)、硬磁盘等)以及其他存储装置。
[0072]在图4中示出的示例云计算环境还可以包括虚拟化层(例如,如图1-3中所示),该虚拟化层具有经配置形成和管理虚拟机和使用云中的物理资源向客户提供其他服务的另外硬件和/或软件资源。虚拟化层可以包括如上面在图3中所述的超级管理器以及提供网络虚拟化、存储虚拟化等的其他组件。该虚拟化层可以作为与物理资源层分开的层,或可以与物理资源层共享相同的硬件和/或软件资源的部分或全部。例如,虚拟化层可以包括被安装在带有物理计算资源的虚拟化服务器403中的每个中的超级管理器。可以另选使用已知的云系统,例如WINDOWS AZURE (华盛顿雷德蒙德的微软公司),AMAZON EC2 (华盛顿西雅图(Seattle, Washington)的 Amazon, com 公司),IBM BLUE CLOUD (纽约阿蒙克(Armonk, New York)的IBM公司)或其他云系统。
[0073]企业移动管理架构
[0074]图5表示用于在BYOD环境中使用的企业移动技术架构500。该架构允许移动装置502的用户从移动装置502访问企业或个人资源两方面并使用移动装置502用于个人用途。用户可以使用由该用户购买的移动装置502或由企业向用户提供的移动装置502访问此类企业资源504或企业服务508。用户可以使用移动装置502仅用于业务用途或用于业务和个人用途。移动装置可以运行1S操作系统和安卓操作系统或类似操作系统。企业可以选择实施以管理移动装置504的策略。该策略可以通过防火墙或网关以移动装置可以被识别、保障或安全被验证并提供选择性访问或全部访问企业资源的方式来植入。该策略可以是移动装置管理策略、移动应用管理策略、移动数据管理策略或移动装置、应用和数据管理策略的某些组合。通过移动装置管理策略的应用来管理的移动装置504可以被称为登记
目.ο
[0075]移动装置的操作系统可以被划分为管理分区510和未管理分区512。管理分区510可以具有将其应用使运行在管理分区上的应用和存储在管理分区中的数据安全的策略。运行在管理分区上的应用可以是安全应用。在其他实施例中,所有应用可以根据从应用分开接收的一组一个或多个策略文件来执行,并且当应用在装置上执行时,所述策略文件定义一个或多个安全参数、特征、资源限制和/或由移动装置管理系统执行的其他访问控制。通过根据他们相应的策略文件运行,可以允许或限制每个应用与一个或多个其他应用和/或资源通信,从而形成虚拟分区。因此,如本文所使用的,分区可以指的是存储器的物理分区部分(物理分区)、存储器的逻辑分区部分(逻辑分区)和/或如本文所述由于跨多个应用执行一个或多个策略和/或策略文件所形成的虚拟分区。换言之,通过在被管理应用上执行策略,这些被管理应用可以被限制仅能与其他被管理应用和值得信任的企业资源通信,从而形成未被管理应用和装置难以渗透的虚拟分区。
[0076]安全应用可以是电子邮件应用、网页浏览应用、软件即服务(SaaS)访问应用、Windows应用程序访问应用等。安全应用可以是安全本地应用514,由安全应用启动器518执行的安全远程应用522,由安全应用启动器518执行的虚拟化应用526等。安全本地应用514可以由安全应用包装器520来包装。安全应用包装器520可以包括集成策略,当在装置上执行安全本地应用时,该集成策略在移动装置502上执行。安全应用包装器520可以包括将在移动装置502上运行的安全本地应用514指向在企业托管的资源的元数据,在该企业该安全本地应用514可以要求完成在执行安全本地应用514时请求的任务。由安全应用启动器518执行的安全远程应用522可以在安全应用启动器应用518内执行。由安全应用启动器518执行的虚拟化应用526可以利用移动装置502上、在企业资源504的资源等。移动装置502上由安全应用启动器518所执行的虚拟化应用526所使用的资源可以包括用户交互资源、处理资源等。用户交互资源可以被用于收集和传送键盘输入、鼠标输入、照相机输入、触觉输入、音频输入、视觉输入、手势输入等。处理资源可以用于呈现用户界面、处理从企业资源504接收的数据等。在企业资源504由安全应用启动器518所执行的虚拟化应用526所使用的资源可以包括用户界面生成资源、处 理资源等。用户界面生成资源可以用于组装用户界面、更改用户界面、更新用户界面等。处理资源可以用于形成信息、读取信息、更新信息、删除信息等。例如,虚拟化应用可以记录与GUI相关联的用户交互并将它们传送至服务器应用,其中该服务器应用将把用户交互数据用作在服务器上运行的应用的输入。在这种布置中,企业可以选择以在服务器侧保持应用以及与该应用相关联的数据、文件等。虽然企业可以根据本文所述的原理通过将某些应用安全部署在移动装置上来选择“移动化”该某些应用,但是,这种布置也可以被选择用于特定应用。例如,虽然某些应用可以安全用在移动装置上,但是其他应用可能未准备或适合用于部署在移动装置上,因此,企业可以选择通过虚拟化技术向移动用户提供对未准备应用的访问。作为另一示例,企业可能具有带有其中定制移动装置的应用会非常难或相反不合需要的大型和复杂数据集的大型复杂应用(例如,物料资源规划应用),因此,企业会选择通过虚拟化技术提供对应用的访问。作为又一示例,企业可能具有保持高度安全数据(例如,人力资源数据,客户数据,工程数据)的应用,该企业认为所述高度安全数据甚至对安全的移动环境也是很敏感,因此,企业可以选择使用虚拟化技术允许移动装置访问此类应用和数据。企业可能选择在移动装置上提供完全安全和完全功能两者的应用以及虚拟化应用,以允许访问认为更适合在服务器侧运行的应用。在实施例中,虚拟化应用可以将某些数据、文件等存储在移动电话上的安全存储位置中的一个安全存储位置中。例如,企业可以选择允许特定信息而不允许其他信息被存储在电话上。
[0077]如本文所述,结合虚拟化应用,移动装置可以具有经设计呈现CTI并随后记录用户与GUI交互的虚拟化应用。应用可以将用户交互传送到由服务器侧应用所使用的服务器侧来作为用户与该应用的交互。作为响应,服务器侧上的应用可以向移动装置回传新GUI。例如,新⑶I可以是静态页面、动态页面、动画等,从而提供对位于远程资源的访问。
[0078]运行在管理分区上的应用可以是稳定的应用。稳定的应用可以由装置管理器524来管理。装置管理器524可以监测稳定的应用,并且如果用于发现和解决将在该稳定应用中产生的问题的技术未被用于发现和解决这些问题,则利用此类技术。
[0079]安全应用可以访问存储在移动装置的管理分区510中的安全数据容器528中的数据。在安全数据容器中的安全数据可以由安全包装的应用514、由安全应用启动器522执行的应用、由安全应用启动器522执行的虚拟化应用526等访问。存储在安全数据容器528中的数据可以包括文件、数据库等。存储在安全数据容器528中的数据可以包括被限制到特定安全应用530、在安全应用532之间共享等的数据。被限制到安全应用的数据可以包括一般安全数据534和高度安全数据538。一般安全数据可以使用强加密(如AES 128位加密)的形式等,而高度安全数据538可以使用非常强的加密(如AES 256位加密)的形式。在从装置管理器524收到命令时,存储在安全数据容器528中的数据可以被从该装置删除。安全应用可以具有双模式选项540。双模式选项540可以向用户呈现以非安全模式或非管理模式运行安全应用的选项。在非安全或非管理模式中,安全应用可以访问存储在移动装置502的非管理分区512上的非安全数据容器542中的数据。存储在非安全数据容器中的数据可以是个人数据544。存储在非安全数据容器542中的数据还可以由运行在移动装置502的非管理分区512上的非安全应用548访问。当存储在安全数据容器528中的数据被从移动装置502删除时,存储在非安全数据容器542中的数据可以保留在移动装置502上。企业可能想从移动装置删除该企业拥有、许可或控制的选定或全部数据、文件和/或应用(企业数据),而留下或以其他方式保存用户所拥有、许可或控制的个人数据、文件和/或应用(个人数据)。这个操作可以被称为选择性擦除。利用根据本文所述的各方面安排的企业和个人数据,企业可以执行选择性擦除。
[0080]移动装置可以将在企业的企业资源504和企业服务508连接到公共互联网548等。移动装置可以通过虚拟专用网络连接(例如微VPN或指定应用VPN)连接到企业资源504和企业服务508。虚拟专用网络连接可以指定用于移动装置上的特定应用550、特定装置、特定安全区等552。例如,电话的安全区中的包装应用中的每个可以通过指定应用VPN访问企业资源,使得对VPN的访问将基于与该应用相关联的属性(可能的话,结合用户或装置属性信息)来授权。虚拟专用网络连接可以携带微软交换流量、微软活动目录流量、HTTP流量、HTTPS流量、应用管理流量等。虚拟专用网络连接可以支持并启用单点登录认证过程554。单点登录过程可以允许用户提供单一的一套认证凭证,该认证凭证随后被认证服务558确认。认证服务558可以随后向用户授权访问多个企业资源504,而无需用户向每个单独的企业资源504提供认证凭证。
[0081 ] 虚拟专用网络连接可以由接入网关560建立和管理。接入网关560可以包括管理、加速并提高企业资源504向移动装置502的输送的性能增强功能。接入网关还可以再路由从移动装置502到公共互联网548的流量,允许移动装置502访问在公共互联网548上运行的公用和非安全的应用。移动装置可以经由传输网络562连接到接入网关。传输网络562可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。
[0082]企业资源504可以包括电子邮件服务器、文件共享服务器、SaaS应用、网页应用服务器、Windows应用服务器等。电子邮件服务器可以包括交换服务器,Lotus Notes服务器等。文件共享服务器可以包括共享文件服务器等。SaaS应用可以包括Salesforce等。Windows应用服务器可以包括经构建提供旨在于本地Windows操作系统上运行的应用的任何应用服务器等。企业资源504可以是基于内建式(premise-based)的资源、基于云的资源等。企业资源504可以由移动装置502直接访问或通过接入网关560来访问。企业资源504可以由移动装置502经由传输网络562来访问。传输网络562可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。
[0083]企业服务508可以包括认证服务558、威胁检测服务564、装置管理器服务524、文件共享服务568、策略管理器服务570、社会整合服务572、应用控制器服务574等。认证服务558可以包括用户认证服务、装置认证服务、应用认证服务、数据认证服务等。认证服务558可以使用证书。证书可以由企业资源504等存储在移动装置502上。存储在移动装置502上的证书可以被存储在移动装置上的加密位置,证书可以被暂时存储在移动装置502上用于在认证时使用等等。威胁检测服务564可以包括入侵检测服务、未经授权的访问尝试检测服务等。未经授权的访问尝试检测服务可以包括未经授权尝试访问装置、应用、数据等。装置管理服务524可以包括配置、供应、安全、支持、监测、报告和停止使用服务。文件共享服务568可以包括文件管理服务、文件存储服务、文件协调服务等。策略管理器服务570可以包括装置策略管理器服务、应用策略管理器服务、数据策略管理器服务等。社会整合服务572可以包括联系人整合服务,协调服务,与社交网络(诸如Facebook、Twitter和Linkedln)的整合等。应用控制器服务574可以包括管理服务、供应服务、部署服务、分配服务、撤销服务、包装服务等。
[0084]企业移动技术架构500可以包括应用商店578。应用商店578可以包括打开的应用580、预包装应用582等。应用可以从应用控制器574被移置到应用商店578中。应用商店578可以由移动装置502通过接入网关560、通过公共互联网548等来访问。应用商店可以直观提供并易于使用用户界面。
[0085]软件开发工具包584可以通过包装如本说明书中先前描述的应用向用户提供由用户选择的应用安全的能力。使用软件开发工具包584进行包装的应用可以随后通过使用应用控制器574将其移置到应用商店578中来提供给移动装置502。
[0086]企业移动技术架构500可以包括管理和分析能力588。管理和分析能力588可以提供有关如何使用资源、多久使用资源等的信息。资源可以包括装置、应用、数据等。如何使用资源可以包括哪些装置下载哪些应用、哪些应用访问哪些数据等。多久使用资源可以包括应用多久被下载、指定数据集被应用访问多少次等。
[0087]图6是另一说明性企业移动管理系统600。为了简化起见,上面参考图5所述的移动管理系统500的某些组件已被省略。图6所示的系统600的架构在许多功能方面类似于上面参考图5所述的系统500的架构,并且可以包括未在上面提到的另外功能。
[0088]在此情况下,左手侧表示具有客户端代理604的登记的移动装置602,其与网关服务器606 (该网关服务器包括接入网关和应用控制器功能)交互以访问各种企业资源608和服务609 (诸如在上面右手侧所示的交换、网络平台(Sharepoint)、PKI资源、Kerberos资源、证书发行(Certificate Issuance)服务。虽然未具体示出,移动装置602还可以与企业应用商店(店面)交互用于选择和下载应用。
[0089]客户端代理604充当用于在企业数据中心中托管的Windows应用/桌面的UI (用户界面)中间件,使用HDX/ICA显示远程协议来访问Windows应用/桌面。客户端代理604还支持本地应用(诸如本地1S或安卓应用)在移动装置602上的安装和管理。例如,在上面图中示出的被管理应用610 (VPN(诸如指定应用策略受控VPN)可以连接到的邮件、浏览器、包装应用、安全容器)全部是在该装置上本地执行的本地应用。这种架构的客户端代理604和应用管理框架起到提供策略驱动管理能力以及诸如连接和SSO (单点登录)到企业资源/服务608的功能的作用。客户端代理604处理对企业、通常对具有SSO的接入网关(AG)、对其他网关服务器组件的主要用户认证。客户端代理604从网关服务器606获得策略以控制移动装置602上的被管理应用610的行为。
[0090]本地应用610与客户端代理604之间的安全IPC链接612表示管理通道,该管理通道允许客户端代理提供通过应用管理框架614 “包装”每个应用来执行的策略。IPC通道612也允许客户端代理604提供能够连接和SSO到企业资源608的凭证和认证信息。最后,IPC通道612允许应用管理框架614调用由客户端代理604所实施的用户界面功能(诸如在线认证和离线认证)。
[0091 ] 客户端代理604与网关服务器606之间的通信基本上是来自包装每个本地被管理应用610的应用管理框架614的管理通道的延伸。应用管理框架614从客户端代理604请求策略信息,客户端代理604相应从网关服务器606请求该策略信息。应用管理框架614请求认证,并且客户端代理604登录进入网关服务器606的网关服务部分中(例如,NetScaler接入网关)。客户端代理604还可以调用在网关服务器606上的支持服务,其可以产生获得用于本地数据仓库616的加密密钥的输入材料,或提供其可以允许对KPI受保护资源直接认证的客户端证书,如下面将更全面解释的。
[0092]更详细地,应用管理框架614 “包装”每个被管理应用610。这可以经由显式构建步骤或经由后构建处理步骤来并入。应用管理框架614可以在应用610的第一启动上与客户端代理604 “配对”以初始化安全IPC通道并获得用于该应用的策略。应用管理框架614可以执行本地应用的策略的相应部分(诸如客户端代理登录的依赖关系和限制如何可以使用本地OS服务或本地OS服务如何可以与应用610交互的遏制测量中的某些遏制策略)。
[0093]应用管理框架614可以使用客户端代理604在安全IPC通道612上所提供的服务以促进认证和内部网络访问。专用和共享数据仓库616 (容器)的密钥管理也可以通过被管理应用610与客户端代理604之间的适当交互来管理。仓库616可以只是在在线认证后可用,或如果策略允许,则可以在离线认证后可用。仓库616的第一次使用可以要求在线认证,并且离线访问可以在再次要求在线认证前被限制在至多策略更新阶段。
[0094]对内部资源的网络访问可以通过接入网关606从独立的被管理应用610直接发生。应用管理框架614负责精心安排代表每个应用610的网络访问。通过提供遵循在线认证获得的合适时间限制次级凭证,客户端代理604可以促进这些网络连接。可以使用多种网络连接模式,诸如逆向网络代理连接以及端到端VPN式隧道618。
[0095]邮件和浏览器被管理应用610具有特殊状态并且可以使用一般可能不适合随机包装应用的设备。例如,邮件应用可以使用特殊背景网络访问机制,该访问机制允许邮件应用在延长的时间段内访问交换而无需完全AG登录。浏览器应用可以使用多种专用数据仓库以分隔不同种类的数据。
[0096]这种架构支持各种其他安全功能的并入。例如,在某些情况下,网关服务器606(包括其网关服务)将不需要验证AD密码。这可以留给企业来判断AD密码是否用作某些情况下的某些用户的认证因素。如果用户在线或离线(即,连接到网络或未连接到网络),则可以使用不同的认证方法。
[0097]加强认证的功能在于网关服务器606可以识别经允许访问需要强认证的高度机密数据的被管理本地应用610,并且确保对这些应用的访问仅在执行适当的认证后被允许,即使这意味着在先前的较弱级别登录后用户需要再次认证。
[0098]这种解决方案的另一安全功能是移动装置602上的数据仓库616 (容器)的加密。仓库616可以被加密,使得所有装置上的数据(包括文件、数据库和配置)被保护。对于在线仓库,密钥可以被存储在服务器(网关服务器606)上,以及对于离线仓库,密钥的本地副本可以由用户密码或生物识别验证来保护。当数据被本地存储在装置602上的安全容器616中时,优选使用最少的AES 256加密算法。
[0099]还可以实施其他安全容器功能。例如,登录特征可以被包括,其中,发生在应用610内的所有安全事件被记入并报告给后端。可以支持数据擦除,诸如如果应用610检测到篡改,则相关的加密密钥可以用随机数据改写、没有留下对用户数据被破坏的文件系统的提示。屏幕截图保护是另一功能,其中,应用可以防止任何数据被存储在屏幕截图中。例如,密钥窗口的隐藏属性可以被设置为“是”。这可能会导致屏幕上当前显示的无论什么内容将被隐藏,产生任何内容将通常驻留其中的空白屏幕截图。
[0100]可以防止本地数据转移,诸如防止任何数据被本地转移到应用容器外面(例如通过复制本地数据或发送本地数据到外部应用)。可以运行键盘缓存功能以禁用敏感文本字段的自动更正功能。SSL证书验证可以是可运行的,使得应用具体验证服务器的SSL证书,而不是将其存储在密钥链中。可以使用加密密钥生成功能,使得用于加密装置上的数据的密钥使用用户提供的密码来生成(如果需要离线访问的话)。如果不需要离线访问,则可以与随机生成并存储在服务器侧上的另一密钥“异或”。可以运行密钥导出函数,使得根据用户密码生成的密钥(或生物识别因素)使用KDF (密钥导出函数,特别是PBKDF2)而不是形成它的密码散列。密码散列使得密钥易受蛮力或字典攻击。
[0101]此外,一个或多个初始化向量可用于加密方法。初始化向量会导致相同加密数据的多个副本以产生不同的密文输出,从而阻止重放和密码攻击两者。如果用于加密数据的特定初始化向量是未知的,则这也将防止攻击者(甚至用偷来的加密密钥)解密任何数据。此外,认证然后可以使用解密,其中,应用数据只在用户已在应用内被认证后才被解密。另一功能可能涉及到存储器中的敏感数据,只有当需要敏感数据时,该敏感数据会被保存在存储器中(而不是在磁盘中)。例如,登录凭据可以在登录后从存储器擦除,并且加密密钥和在对象C的实例变量中的其他数据不被存储,因为它们可以很容易被参考。相反,可以向存储器手动分配这些加密秘钥和其它数据。
[0102]可以实施休止超时,其中在策略定义的休止期后,用户对话被终止。
[0103]可以以其他方式阻止应用管理框架614的数据泄露。例如,当应用610被放在背景中时,存储器可以在预定(可配置)时间段后被清除。当被背景化时,可以对应用的最后显示屏幕拍快照以加快前景化过程。屏幕截图可能包含机密数据,并且因此应被清除。
[0104]另一安全功能涉及使用OTP(—次性密码)620,无需使用访问一个或多个应用的AD(活动目录)622密码。在某些情况下,某些用户不知道(或不允许知道)他们的AD密码,那么这些用户可以使用0TP620(诸如通过使用像securID的硬件OTP系统)(0ΤΡ也可以由不同的供应商(例如Entrust或Gemalto)来提供)来认证。在某些情况下,在用户利用用户ID认证后,文本被用OTP 620发送给该用户。在某些情况下,这可以仅在在线使用时,利用单一字段的提示来实施。
[0105]对于针对其经由企业策略允许离线使用的那些应用610,离线密码可以被实施用于离线认证。例如,企业可能想要企业应用以这种方式被访问。在此情况下,客户端代理604可以要求用户设置自定义的离线密码,并且不使用AD密码。网关服务器606可以提供策略以控制和执行关于最小长度、字符类组成和密码年限的密码标准(诸如通过标准的Windows服务器密码复杂性要求所描述的,尽管这些要求可以被更改)。
[0106]另一功能涉及到作为次级凭证用于特定应用610的客户端侧证书的启用(用于经由应用管理框架微VPN功能访问KPI受保护页面资源的目的)。例如,应用可以利用此类证书。在此情况下,可以支持使用ActiveSync协议的基于证书的认证,其中,来自客户端代理604的证书可以被网关服务器606检索并用在密钥链中。每个被管理应用可以具有通过在网关服务器606中定义的标签来识别的一个关联的客户端证书。
[0107]网关服务器606可以与企业特殊目的网页服务交互,以支持客户端证书的颁布,以允许相关的被管理应用认证内部PKI受保护资源。
[0108]客户端代理604和应用管理框架614可以被加强以支持获得和使用用于认证内部PKI受保护网络资源的客户端证书。可以支持一个以上的证书,诸如匹配各种安全级别和/或分隔要求的证书。该证书可以被邮件和浏览器被管理应用使用,并最终被随机包装的应用使用(假设那些应用使用网页服务方式的通信模式,其中这对于调解http请求的应用管理框架是合理的)。
[0109]在1S上的应用管理客户端证书支持可能依赖每次使用期间,将PKCS12BL0B(二进制大对象)输入到每个被管理应用的1S密钥链中。应用管理框架客户端证书支持可以使用具有专用存储器内密钥存储的HTTPS实施。客户端证书将不再存在于1S密钥链中,并且除了潜在的存在于受强保护的“只在线”数据值中以外,不会被存续。
[0110]通过要求移动装置602被企业认证,相互SSL也可以被实施以提供另外的安全,并且反之亦然。也可以实施用于对网关服务器606认证的虚拟智能卡。
[0111]受限和完全Kerberos支持两者可以是另外的功能。完全支持功能涉及使用AD密码或受信任的客户端证书进行完全Kerberos登录到活动目录(AD) 622,并获得Kerberos服务票据以对HTTP协商认证询问做出响应的能力。受限的支持功能涉及AFEE中的受约束委托,其中,AFEE支持调用Kerberos协议传输,因此,它可获得和使用Kerberos服务票据(月艮从受约束的委托)以对HTTP协商询问做出响应。这种机制以逆向网页代理(也叫做CVPN)模式工作,并且当http (但不是https)连接以VPN代理时,以微VPN模式工作。
[0112]另一功能涉及应用容器锁定和擦除,这可在越狱和获取了管理员权限(root)检测时自动出现,并且作为来自管理控制台的推送命令出现,并且可以包括远程擦除功能(即使当应用610不运行时)。
[0113]可以支持企业应用和应用控制器的多站点架构或配置,该多站点架构或配置允许用户在失效的 情况下从几个不同位置中的一个位置得到服务。
[0114]在某些情况下,被管理的应用610可以被允许经由API (示例OpenSSL)访问证书和专用密钥。企业的受信任被管理应用610可以被允许利用应用的客户端证书和专用密钥来执行指定的公共密钥操作。各种使用案例可以被识别并因此受信任(诸如当应用像浏览器一样表现并且不需要证书访问时,当应用读取“我是谁”的证书时,当应用使用证书构建安全对话令牌时,以及当应用使用专用密钥用于重要数据(例如,事务日志)的数字签名或用于暂时数据加密时)。
[0115]说明性实施例
[0116]许多移动资源管理(MRM)解决方案(在本文也被称为EMM、MDM和MAM,它们中的每个可以包括MRM)可能面临管理另外非受管理移动装置上的应用并确保由被管理应用使用的信息不能逃脱由IT管理员提供给他们的企业用户的受信企业应用的集合的挑战。信息可以以各种方式逃脱,并且稳健的EMM系统将提供策略和执行机制(其中IT管理员人为它是合适的,并且在适当情况下提供策略覆盖)以防止此类信息泄露。然而,即使有一套稳健的信息遏制策略,仍然有对移动装置上的应用所管理信息的安全的其他威胁。
[0117]一个此类威胁是各应用可以通过将文件或其他数据写入移动装置上的闪存或其他持久性储存器中来在该移动装置上持续存储某些信息。大多数的移动平台将由各应用记录的持久性数据隔离到专用的应用沙箱中。然而,这个沙箱可以被用能够获取管理员权限或越狱该装置的常见工具击败。获取管理员权限和越狱是寻求替代移动装置操作系统平台的部分往往具有挫败应用沙箱、应用完整性检查和其他操作系统提供的安全机制的目的的技术。用于最流行的移动平台的后门和越狱软件很容易在公共互联网得到并易于使用。由于获取管理员权限和越狱如此容易实现,大部分企业不希望依靠移动装置操作系统执行的沙箱作为应用可能需要坚持的保护数据的唯一手段。
[0118]某些移动装置平台此外允许信息以其持久形式被加密以及某些应用利用这些功能。不变的是,此类加密机制依赖于保持在装置自身上的加密密钥,其中密钥自身由用户提供的PIN或密码来保护。密钥被保持在装置上并由弱密码因素保护的这一事实意味着数据不是特别好地免受黑客攻击(特别是如果装置被盗,则黑客有足够的时间来试图解锁密钥)。而且,由于密钥由装置持有者拥有,企业无法删除它们或取消终止的员工访问,除非他们能回收该装置。
[0119]出现在移动平台上的应用沙箱的另一个问题是具有单一的文件储存库是有问题的,该文件可用于移动装置上的所有被管理应用并潜在同步离线于基于云的储存器。围绕沙箱工作的移动应用在各方面受到限制,所有这一切都有缺陷。通常,他们将与已登记接受特定固定类型的其他应用交换特定这些相同类型的文件。这里的缺陷是一个应用以每个应用的沙箱中的特定文件的多个副本结束。如果一个或多个应用希望编辑文件内容,则保持跟踪具有最新版本的应用对用户来说是有问题的。
[0120]如果用户受到训练总是把修改过的文件回送到可能也负责同步到基于云的储存器的文件或同步来自基于云的储存器的文件的常见的同步代理应用,则可以克服以上强调的问题。Citrix共享文件移动应用是允许这类数据与基于云的同步交换的应用的示例。这里的缺陷是这些额外步骤易于忘记。而且,当使用对在用于所有应用的共享文档的文件夹的概念进行操作的等价的桌面应用时,并不需要这些额外步骤。如果用户没有适当的训练,则这两个事实可能导致数据文件的一致性问题和差的用户体验。
[0121]这种问题的另一种方法是将希望共享的文件保存到支持这个概念的这些移动平台上的共享储存器中。这有缺点,即共享储存器是全局可读的并因此与所有应用共享。一旦信息被放置到共享储存器中,则该信息的遏制措施丢失,因为移动装置上的任何应用都可以读取它。而且,数据可以很容易被获得该装置物理访问的人使用标准的文件查看器和开发工具访问。
[0122]上面强调的受信应用之间的信息遏制措施和文档共享的挑战通过引入加密数据仓库的概念来克服。如图5和图6所示,本文描述的各个实施例提供例如用于移动装置的一个或多个被管理应用的加密数据仓库(在本文也被各种各样称为安全容器、容器、数据仓库、仓库或专用数据仓库)。加密的数据仓库可以被认为是由移动应用读取/写入的任何或所有持久性数据将被重定向到其中的逻辑接口(否则将在应用沙箱的可写文件中结束)。仓库的内容可以本身被写入保持在应用沙箱中的文件中。所有文件的内容和文件自身元数据(名称,大小,访问时间等)可以全部被加密。
[0123]返回参考图6(下面描述的各种组件也可以在图5的示意图中发现),该图示出其中其实施例可以被实践的说明性环境,移动装置602 (诸如智能手机、平板电脑、PDA等)已在其上安装了各种应用。应用包括由企业移动管理系统600来管理的一组被管理应用610 (诸如企业应用)。移动装置602还可以包括诸如个人应用的一个或多个非被管理应用(例如,存储在图5的非管理分区512中的应用,或以非被管理工作模式运行的应用),该应用不受企业管理。在某些示例中,客户端代理软件604也被安装在移动装置602上。客户端代理软件604在本文也称为“客户端代理”或“企业移动管理(EMM)客户端”,该客户端代理软件经配置例如经由网络(诸如互联网)与网关服务器或接入网关连接,网关服务器或接入网关通常提供对企业资源(例如,云资源)或服务器的接入,该服务器可以包括认证服务器、应用商店和密钥服务器。
[0124]所示出的移动装置602可以包括共享的数据仓库。共享的数据仓库可以包括被管理应用610中的每个可访问的加密文件和/或数据对象。
[0125]在某些示例中,每个被管理应用还可以与相应的专用数据仓库相关联。用于专用应用仓库的加密密钥以及用于共享仓库的加密密钥可以经由诸如来自密钥服务器的接入网关或接入网关本身获得,并可以暂时保持在移动装置内。
[0126]强加密算法(例如,被证明的FIPS 140-2)可以用来保护被放置到仓库中的具有被企业管理而不是用户本身管理的密钥的信息。密钥可以基于用户、装置和应用或应用组的元组来分配。这意味着不同的密钥集被用在用户、装置和应用或应用组的每个独特组合中。密钥可以在企业密钥管理服务器中保持对装置是关闭的。密钥可以被暂时下载(但只有在验证所述的用户、装置和应用之后)到移动装置以启用数据访问。如果这是长时间内首次访问被保护的文件,则用户可以被迫登录到接入网关来认证。这些密钥将需要被定期(如用于该密钥的有效策略设定所规定的时间)更新。只要用户保持与接入网关的有效登录,当更新时,密钥的这种更新可以发生而不需要用户交互。如果用户注销或他们的登录对话到期,则密钥的更新将需要再次强认证。这些方面和其他方面将结合图11来讨论。
[0127]为了支持对加密数据内任何字节范围的随机访问,使用加密块的方案可以被使用。用于加密/解密每个块的密钥可以从基本密钥和文件/块偏置量来数学导出。同样,不同的文件也可以使用用于密码术的初始化向量。
[0128]为了效率起见,系统可以在必要时提前读取数据仓库的数据或延迟写入数据到数据仓库中,以优化应用性能。在大多数情况下,加密数据的延迟写入应当在关闭文件或退出应用之前被清除。
[0129]应用可以以感知到仓库存在的方式来写入。以这种感知写入的应用可以利用任何数量的数据仓库,该应用可以以仓库名称标识符或资源名称对其明确标识。不过,应用不一定总是以这种感知来写入。对应地,各策略可以被用于配置用于每个应用的默认数据仓库。应用的默认数据仓库用于所有应用的文件I/o的透明重定向,否则所有应用的文件I/O将在应用的沙箱可写部分或共享储存器中结束。
[0130]每个被管理应用可以与相应的策略(例如,企业经由网关服务器或接入网关来提供的)相关联。在某些示例中,各策略可以以文件(诸如XML文件或JSON文件)的形式提供,在所述文件中,相应策略被表述为一组密钥对/值对。策略可以为结合相应的应用所处理的数据(例如,通过从应用读取操作和写入操作所指定的数据)指定加密数据仓库。因此,到/来自应用的读取操作和写入操作可以根据相应的策略来处理。
[0131]根据由各策略指定的设定或定义,被管理应用可以被约束只与被管理应用610的集合内的其他应用交换文件和/或数据。例如,来自指定文件读取或写入的应用的API调用可以被该应用的注入代码或该应用的“包装”拦截。用于该应用的策略可以被读取,并且根据该策略中的设定(或策略中不存在的设定),所指定的读取或写入操作被转向到加密仓库(例如,专用仓库或共享仓库)。
[0132]在各种实施例中,注入到该应用的代码或“包装”该应用的代码可以拦截该应用进行的API调用。基于被拦截的API调用,用于该应用的策略会被查阅,并且该API调用进一步基于该策略会被阻止、允许、重定向。此类过程可以被用于选择能够用于打开通过链接或图标来识别的文件或数据元(例如,使用打开方式(Open In))的应用。在另一示例中,上述过程可用于从一个应用复制数据或数据对象并将该数据或数据对象粘贴到另一应用中(例如,经由隐藏的加密的粘贴缓冲区)。在又一示例中,上述过程可用于将文件移入和/或移出如本文所述的受保护的数据仓库。从本质上讲,用于将数据移入和/或移出应用的任何操作可以使用上述技术。
[0133]在某些示例中,被管理应用可以被分配到不同的组。在此情况下,策略可以包括各组和组成员的记录。文件和/或数据在各应用之间的流动可以因此被进一步限制在特定组的成员。例如,每个组可以被提供其自己的共享仓库。提供在被管理应用610的集合内的移动应用的不同组可以帮助将处理高度敏感数据的应用与处理不怎么敏感数据的那些应用隔离。
[0134]各应用可以被分配到如策略所规定的默认仓库。在某些变型中,共享相同组的各应用可以继承相同的默认数据仓库。以这种方式,各应用不仅获得用于它们的数据的加密容器的安全,而且被配置了相同默认数据仓库的应用将看到与其他类似配置的文件应用共享的它们数据的单个一致的视图。
[0135]在某些实例中,如果策略不规定应用被配置到共享组中或规定用于该应用的默认仓库,那么所有的数据会被重定向到该应用的相应专用仓库(如图6所示的专用仓库)。不过,如果应用被配置到共享组中,则数据可以被限制在该共享的仓库。即使当某些数据被重定向到共享的仓库时,特定数据类型(诸如被指定用于特殊专用目录的数据像/tmp)将继续流到该应用的专用仓库。
[0136]例如,在具有共享数据仓库的实施例中,公共代理可以管理对代表所有应用的共享数据。在没有此类代理的情况下,在应用之间透明地共享数据可能更加困难。虽然某些实施例可以将此类代理实施为不在移动装置自身上存在的网络连接服务,但是此类实施例可以排除对加密数据仓库的离线访问。其他实施例可以将代理实施为安装在移动装置上的另一应用(“客户端代理”)。当然还有用于实施共享仓库的其他其它可能的设计。例如,应用可以使用与进程间同步机制耦接的共享的储存器以协调访问。
[0137]各企业可以使用与他们已选择部署的企业移动管理解决方案相关联的工具和SDK形成(或适配)他们的本地移动应用。在准备他们用于部署的应用时,他们当然具有写入(重写入)特定应用逻辑的自由,以在他们的应用需要时利用通过SDK暴露的加密的数据仓库服务。
[0138]不过,在某些实施例中,应用可以被用于该应用初始被开发用于其的平台的标准文件系统API。同样地,应用的文件访问服务可以被重定向到由策略规定的一个或多个数据仓库而不是重写他们的应用。这种方法也允许管理员重新配置目标仓库而无需直接更改和重新编译该应用。此类实施例将结合图7来进一步讨论。
[0139]当采用策略驱动方法时,应用开发者无需担心如何与专用仓库服务接合的细节。相反,通过将报头文件、库和框架代码的运行时间支持与应用集成,通过该应用调用的所有文件系统API可以被策略感知(policy-aware)拦截层拦截,在某些实施例中,其形成被管理应用的一部分。例如,策略感知拦截层可以通过被包括在应用中的框架或包装器代码来形成。从逻辑上讲,策略感知拦截层可以被定位在应用与操作系统服务之间。在策略感知拦截层执行拦截后,被拦截的API调用可以在某些变型中被重定向到客户端代理或对在拦截层的API调用进行处理(例如,对API调用进行加密/解密等)。
[0140]假设数据仓库功能被配置,那么基于着力于当前用户、装置和应用的策略,一组默认的仓库将被选择并且文件系统API拦截层将被配置成针对它们。使用策略驱动方法可以允许多个应用被绑定到相同的默认仓库并且还可以允许在正确配置的被管理应用之间安全共享数据。除了其他方面以外,这些方面中的某些方面将在下面结合图10来讨论。
[0141]在准备应用后,被管理应用可以被上传到为了发布该应用的服务器,企业用户例如经由应用商店来消费该应用。作为这个应用发布工作流程的一部分,IT管理员将选择应用于该应用和关联用户角色的策略和设定。一旦被上传和配置,应用可以基于员工在组织内的角色提供给该组织的员工来阅读和安装。另选地,此类应用可以被直接推送到已将他们的装置登记到公司的MDM服务器的各员工的移动装置。除了其他方面以外,这些方面中的某些方面将在下面结合图12来讨论。
[0142]当用户在移动装置上执行被管理应用时,用户通常被询问认证他们的公司身份和密码以及如该公司策略所规定的其他因素。在强认证用户、装置和应用后,系统的访问管理组件可以验证对该用户被授权该应用并下载用于这个指定应用和用户的配置策略和/或加密和解密密钥。除了其他方面以外,这些方面的某些方面将在下面结合图11来讨论。
[0143]基于这些策略,随被管理应用输送的应用管理框架可以自我配置(例如,利用客户端代理的帮助)。例如,一个或多个默认仓库可以被选择使用,并且策略感知拦截层可以被配置为针对该选定的仓库。如果配置的数据仓库不是已经存在,则新的空仓库被初始化。这确保将选择非先前使用仓库的数据仓库策略的变化将看起来该应用好像其最近被安装的(例如,空的可写目录)。除了其他方面以外,这些方面中的某些方面将在下面结合图10来讨论。
[0144]在应用开始利用文件系统API时,策略感知拦截层寻找交叉应用沙箱或共享储存器的可写部分的文件访问。此类文件被拦截层标记和跟踪,使得所有后续的文件I/O在被放置到保持数据的真实文件容器中之前经过加密/解密。
[0145]当数据仓库专用于应用时,数据仓库服务层可以直接使用移动平台的文件I/O功能来读取和写入数据的加密版本。而且,所有的文件目录访问功能可以同样被拦截,使得可以遮蔽真实的文件名和大小。
[0146]当数据仓库待与另一个应用共享时,上述的相同过程可以被使用,并且可以在公共文件系统储藏库中发生。例如,当拦截层在共享数据仓库上运行时,数据仓库服务不仅可以通过直接读取/写入加密数据来运行,而且通过经由远程程序调用机制将这些服务重定向到客户端代理来运行。在客户端代理内,用于专用仓库文件的相同本地数据仓库服务可以用于共享仓库的内容。
[0147]图7示出结合上面讨论的数据仓库的移动装置602 (以及图5的移动装置502)的各种功能。具体地,图7示出其中专用数据仓库和共享数据仓库可以被访问的示例图。在这里,应用705 (代表图6的被管理集合610的各应用中的任一个或图5的任何应用514)向移动装置上的持久性空间发出读取操作708和写入操作707。在这里,读取操作和写入操作被策略感知拦截层710拦截并被定向到适当的加密仓库。对于读取操作708,策略感知拦截层710可以检查要被读取的数据类型并咨询由与应用705相关联的移动装置所存储的策略706。如果策略706指定被识别类型的数据被存储在专用数据仓库715中,则策略感知拦截层710可以从专用数据仓库715中获得数据。不过,如果策略706指定被识别类型的数据被存储在共享数据仓库720中,则策略感知拦截层710可以从共享数据仓库720中获得数据。策略感知拦截层710随后可以解密数据(使用加密密钥,诸如经由接入网关获得的加密密钥)并向应用705返回该数据(如通过关于读取操作708的箭头所示)。
[0148]在写入操作707的情况下,策略感知拦截层710可以检查要被写入的数据类型并咨询策略706。如果策略706指定被识别类型的数据要被存储在专用数据仓库715中,则策略感知拦截层710可以加密该数据并将该数据存储在在专用数据仓库715中。不过,如果策略706指定被识别类型的数据要被存储在共享数据仓库720中,则策略感知拦截层710可以加密该数据并将该数据存储在共享数据仓库720中。
[0149]不同的密钥可被用于加密/解密到/来自专用数据仓库715和共享数据仓库720的数据。
[0150]数据仓库还可以每个包括提供用于数据在数据仓库中的逻辑存储的文件系统。如图7中所示,专用数据仓库715具有文件系统716,以及共享数据仓库720具有文件系统717。数据仓库(或容器)可包括访问管理器,其支配移动装置的应用和其他组件对文件系统的访问。如图7中所示,专用数据仓库715具有访问管理器718,以及共享数据仓库720具有访问管理器719。
[0151]一个或多个策略可以基于下列的各种设定或定义来限制对容器文件系统的访问,所述各种设定或定义例如(I)移动装置的哪个应用或其他组件在请求访问,(2)正被访问和处理的数据,(3)时间或日期,(4)移动装置的地理位置,(5)请求的应用或其他组件是否提供正确的证书或凭证,(6)移动装置的用户是否提供正确的凭证,(8)其他条件,或它们的任意组合。用户的凭证可以包括,例如,密码,安全问题的一个或多个答案(例如,你的高中的吉祥物是什么?)生物识别信息(例如,指纹扫描,眼睛扫描等),等等。因此,通过使用访问管理器,容器可以被配置为仅由被授权访问该容器的应用来访问。作为一个示例,访问管理器可以允许安装在移动装置上的被管理应用访问存储在容器中的数据并阻止非被管理应用访问存储在容器中的数据。
[0152]在某些变型中,时间和地理限制对数据访问可能是有用的。例如,企业管理员可以向指定时间窗口和/或地理区(例如,由移动装置的GPS芯片确定)部署限制数据可用性(存储在容器内的)的策略,移动装置当前必须位于该指定的时间窗口和/或地理区,以便访问数据。此外,当指定的时间期限届满或者如果移动装置位于定义的地理区之外时,则策略可以命令从容器删除数据或以其他方式使数据无法使用。从容器删除数据的一个示例将在下面结合图9来讨论。
[0153]另外,策略可以禁止数据被保存在容器内。在此类实施例中,只有当用户登录到企业系统中时,文档才可供在移动装置上查看。
[0154]访问管理器还可以被配置为执行远程装置(例如,企业资源或其他企业服务器)与容器之间的连接的特定模式。例如,访问管理器可以要求从远程装置接收和/或从容器发送到远程装置的数据通过隧道(例如如上所述结合微VPN)来传送。此类应用隧道可以使用企业系统的隧穿中间件。访问管理器可以要求传送到容器和从容器传送的所有数据是加密的。客户端代理、访问管理器或其他组件可以经配置加密从容器发送的文档和解密发送到容器的数据。容器中的数据也可以以加密的形式存储。
[0155]容器可以经配置阻止数据被移动装置或其他装置的未经授权的应用或组件使用。例如,经授权访问来自容器的文档的应用可以被编程以阻止用户复制数据并将其粘贴到另一文件或应用接口中,或将该数据本地保存为在容器外面的新文件。同样,容器可以与不允许此类复制/粘贴和本地保存操作的文档查看器和/或编辑器相关联。而且,访问管理器可以经配置阻止此类复制/粘贴和本地保存操作。此外,经授权访问来自容器数据的容器和应用可以经配置阻止用户将此类文档附接到电子邮件或其他形式的通信。
[0156]应用可以经编程只将企业相关的数据写入容器中。例如,应用的源代码可以设有容器的资源名称(例如,经由客户端代理和如由策略指定)。同样,企业资源可以经配置只向一个或多个容器发送数据。向容器存储数据可以自动(例如,在应用、客户端代理等的控制下)发生。将数据存储到容器的一个示例将在下面结合图8来讨论。
[0157]在某些变型中,被管理应用可以包括存储例如由远程或虚拟化应用使用 /生成的数据的容器。在此类变型中,例如,安全连接(例如,微VPN)可以将包括在被管理应用中的容器连接到一个或多个数据源(例如,其中应用被远程化或虚拟化的源),该数据源包括位于接入网关后面的源。
[0158]在进一步的变型中,被管理应用可以是虚拟化的应用,并且策略可以指定将存储由虚拟化应用所使用/生成的数据的容器。因此,在虚拟化应用生成数据时,该数据被存储到容器。
[0159]在某些实施例中,安全容器可以被距离移动装置远程定位。在此类实施例中,策略可以指定远程容器的位置。旨在要被存储到安全容器中的数据或被重定向到安全容器的读取/写入操作可以经由安全容器(诸如微VPN隧道或其他类型的指定应用的VPN隧道)被传送到远程容器。
[0160]在某些实施例中,容器可以基于特定行业策略(诸如医疗保健行业和金融行业的策略)来配置。当通过此类策略配置时,通过应用生成的数据(即例如也被分配到用于医疗保健行业的策略的数据)可以保存到由医疗保健行业的策略指定的容器。
[0161]在某些变型中,策略可以指定当需要存储数据时可供应用使用的多个容器。例如,当在特定地理位置时,被管理应用可以存储到第一容器(或其他第一标准),但当在不同的地理位置(或其他第二但不同的标准)时,可以存储到第二容器。作为特定示例,医生可以使用被管理应用输入患者数据,但是医生可以在不同医院进行工作。当在一个医院时,策略可以被配置成使得由医生使用的被管理应用存储到第一容器,但当在第二医院时,策略可以被配置为使得由医生使用的被管理应用存储到第二容器。以这种方式,如果医生停止在第一医院工作,则可以执行选择性擦除第一容器而不需删除或以其他方式影响由第二容器存储的数据。至于执行选择性擦除的进一步细节将在下面结合图9来执行。
[0162]此类专用数据仓库和共享数据仓库可以帮助防止企业信息传播到移动装置以及其他装置的不同应用和组件。图8示出用于结合被管理应用将数据存储到数据仓库或容器内的示例方法。图8示出当根据存储在移动装置的存储器中的各种软件构造运行时通过移动装置的处理线路来执行的一种方法。在某些布置中,图8的示例方法可以通过移动装置的客户端代理来执行。
[0163]在步骤801,移动装置可以接收数据供存储。例如,接入网关或其他企业计算装置可以向移动装置传送文档或其他数据,所述文档或其他数据在收到时被存储在移动装置。如在此背景下所使用的,在步骤801收到的数据可以包括任何形式的数据,诸如计算机可读文件或文档、文本、音频、视频和/或其他类型的信息或介质。数据可以包括任何单个介质类型或这些介质类型的组合。
[0164]在步骤803,移动装置可以确定数据是否要被存储在容器中。这可以包括:访问由移动装置存储的策略,分析该策略以确定该策略是否指定特定容器并相应进行。该策略还可以基于传送数据的源(例如,从接入网关接收的数据总是存储在安全容器中,从认证服务器收到的数据存储在专用于认证的容器中)和/或基于所收到的数据类型(例如,包括音频或视频的数据要被存储在用于介质的安全容器中,包括文档的数据要被存储在用于文档的安全容器中,包括策略的数据要被存储在用于策略的安全容器中)进一步指定关于该数据的默认动作或不同的目的地。
[0165]例如,如果移动装置确定策略指定特定容器,则该移动装置可以确定数据要被存储在容器中并因此进行到步骤807。否则,策略不可以指定用于该数据的容器或默认存储动作,并且移动装置可以确定该数据未被存储在容器中并因此可以进行到步骤805。在步骤805,数据可以被存储在如由客户端代理所指定的位置中。在某些实例中,移动装置(或客户端代理)可以将数据存储在由移动装置的操作系统共同提供的下载文件夹中或移动装置的未管理分区内(如结合图5所讨论的)。在其他情况下,移动装置(或客户端代理)可以将数据存储在默认安全容器(例如,应用的专用数据仓库)中,这可能需要以类似于步骤807的方式首次加密数据。
[0166]在步骤807,移动装置可以加密数据。在某些布置中,加密方法和密钥可以由策略指定。此外,密钥可以经由接入网关来接收。对数据进行加密可以包括访问移动装置上的一个或多个其他安全容器。例如,密钥可以被存储在安全容器中用于加密/解密密钥,并且密钥可以通过访问此类容器来获得。
[0167]在步骤809,移动装置可以将现在被加密的数据存储到容器(例如,由如在步骤803中所确定的策略指定的容器)内,诸如在图5-7中的任一个中所示的那些容器(例如,图5的容器528,图6的应用专用数据仓库或共享数据仓库,以及图7的仓库715、720)。
[0168]结合上述步骤并如上面结合图5-7所述的容器可以帮助阻止移动装置的未经授权的应用和其他组件访问容器内的信息。对于允许用户使用他们的移动装置用于访问、存储和使用企业数据的企业来说,提供容器有助于使企业数据安全。例如,容器可以将企业数据集中在每个装置上的一个位置,并且可以促进从该装置选择性删除或完全删除企业数据。
[0169]图9示出用于执行从移动装置删除数据的示例方法。具体地,图9示出适合于执行从移动装置的一个或多个安全容器选择性擦除数据的示例方法。另外,图9示出当根据存储在移动装置的存储器中的各种软件构造运行时通过移动装置的处理线路来执行的一种方法。在某些布置中,图9的示例方法可以通过移动装置的客户端代理来执行。
[0170]在步骤901,移动装置可以监测移动装置的工作条件。本文描述的实施例可以能够选择性(并远程)擦除用户移动装置的企业应用和公司数据(例如,当用户中断就业或违反公司策略(例如,如果他们用他们的装置越狱,或以其他方式以未经允许的配置使用所述应用和数据)时)。因此,移动装置可能需要监测违反公司策略或以其他方式将导致选择性擦除要被执行的此类条件。
[0171]在步骤903,移动装置可以基于所监测到的条件确定执行选择性擦除与一个或多个被管理应用相关联的数据。此类确定可以以各种方式来执行。例如,如果试图输入有效密码失败连续次数的阈值数(例如,5或10),则移动装置可以确定执行选择性擦除。如果与专用数据仓库相关联的应用被卸载,则移动装置可以确定执行选择性擦除。在某些实施例中,企业的IT部门可以通过向装置远程发出擦除命令(例如,经由接入网关)来促使移动装置做出此类决定。作为另一种情况,当应用从被管理应用切换到非被管理应用(例如,应用从被管理运行模式切换到非被管理运行模式)或从被存储在移动装置的被管理分区中切换到存储在非被管理分区时,移动装置可以确定执行选择性擦除。其他情况包括基于用户试图越狱他们的装置或以其它方式以未经允许的配置使用该应用或以违背置于此类访问的时间或地理限制的方式来试图访问企业数据来确定执行选择性擦除。
[0172]另一种情况与充当被发送到移动装置的文档和其他数据的临时储藏库的安全容器有关。企业资源可以经配置一次性或周期性发送数据到容器(例如,经由应用隧道)。例如,销售相关的企业资源可以被编程在每个早晨向经登记于企业中具有销售相关角色(例如,销售员)的用户团队的移动装置的特定安全容器发送销售相关的文档(例如,最近的价格表)。销售相关的文档可以具有文件访问策略,使得文档将在特定时间或在定义事件(例如,用户打开文档)开始的一段时间期满后“自毁”(例如造成被从容器删除或以其它方式选择性擦除)。
[0173]为了向容器发送来自此类储藏库的文档的目的,向一个或多个安全容器发送文档的企业资源可以例如通过与其他企业系统(例如,企业文档储藏库,诸如微软的网络平台(SharePoint) ?储藏库)或第三方云计算系统(例如,Box.net ?储藏库)整合来与其他储藏库整合。选择性擦除可以基于将文档发送到安全容器的此类储藏库来执行。另选地,选择性擦除可以基于与从此类储藏库收到的文档相关联的寿命标准来执行(例如,收到的文档可以存储在容器中2天,之后将执行选择性擦除)。
[0174]备份服务可以经配置用于安全容器。例如,安全容器可以向安全备份位置(例如,通过到接入网关的微VPN和/或在接入网关后面的另一位置)周期性发送它的内容。在备份进程完成后,安全容器可以被选择性擦除。
[0175]上述执行选择性擦除的任何(或其他)确定可以基于由移动装置所存储的策略。例如,当形成执行选择性擦除的确定时,移动装置可以将被监测的条件与一个或多个策略比较,并且如果该条件符合命令选择性擦除的策略中指定条件,则移动装置可以确定执行选择性擦除。
[0176]在步骤905,移动装置可以确定用于选择性擦除的一个或多个安全容器。例如,移动装置可以确定哪个安全容器包含一个或多个被管理应用的数据。这个确定可以基于由策略指定的信息或基于客户端代理已知的信息,或如由移动装置从企业网络收到的命令所指定的信息。
[0177]在步骤907,移动装置可以删除一个或多个安全容器的数据或以其他方式使一个或多个安全容器的数据无法访问。例如,容器可以经配置允许客户端代理或移动装置读取、写入和/或删除容器的文件系统的信息。从容器删除数据可以包括删除存储在容器中的实际数据,删除存储在容器中的数据的指针,删除用于解密存储在容器中的数据的加密密钥,等等。该容器可以允许存储在其文件系统中的部分或所有企业数据被删除,而无需更改存储在该容器外面的该移动装置上的其他数据。
[0178]在步骤909,移动装置可以向企业发送选择性擦除确认。此类确认可以向企业提供选择性擦除是成功的指示。该确认可以包括被选择性擦除影响/删除的应用的列表和/安全容器的列表。在收到后,企业(例如,接入网关)可以相应更新其存储记录。
[0179]如上所述,随被管理应用输送的应用管理框架可以自我配置(例如,利用客户端代理的帮助)。不过当被配置时,用户可能具有不满足本文所公开的应用管理框架的要求的遗留数据(legacy data)。例如,移动装置可能先前使用未对收件箱的数据进行加密的不同公司电子邮件的应用等,而用户将想要访问该收件箱数据。因此,当应用在配置时,此类应用数据必须被处理。图10示出其中被管理应用被配置的的示例过程。此外,图10示出当根据存储在移动装置的存储器中的各种软件构造运行时可以通过移动装置的处理线路来执行的一种方法。在某些布置中,图10的示例方法可以通过移动装置的客户端代理来执行。
[0180]在步骤1001,移动装置可以初始化用于被管理应用的配置过程。在某些实例中,配置直到应用首次尝试访问一种访问资源或接入网关才可能发生。在其他情况下,当被管理应用被安装在移动装置上时,配置可能发生。在某些实施例中,应用的配置可以包括包装应用(例如,经由图5的安全应用包装器520)。配置过程的另外的细节将结合图10的剩余步骤来讨论。
[0181]在步骤1003,移动装置可以获得用于被管理应用的策略信息。在某些布置中,移动装置可能已经具有用于存储在移动装置上的被管理应用的策略信息。如果策略信息不存在,则移动装置可以向接入网关发送关于策略信息的请求。另选地,如果策略信息确实存在,则移动装置可以通过向接入网关发送更新策略信息的请求来检查已更新的策略信息。随后,响应于移动装置的关于策略信息或关于更新策略信息的请求,可以收到策略信息。另选地,响应于用户、应用或移动装置的认证,可以收到策略信息。
[0182]在步骤1005,移动装置可以获得用于被管理应用的密钥信息。当被管理应用在运行时,密钥信息可用于读取、写入或以其他方式访问移动装置上的安全容器。密钥信息可以包括用于安全容器的一个或多个加密和/或解密密钥。包括在步骤1003得到的策略信息中的策略可以定义什么安全容器要被使用以及他们的资源名称或标识符。
[0183]在某些实例中,获取密钥信息可以简单地访问存储在移动装置上的密钥信息。不过,在某些实例中(例如,当密钥信息未被存储在移动装置上或密钥信息要被更新时),移动装置可以向接入网关发送关于密钥信息的请求。请求可以包括识别应用需要哪些加密密钥和解密密钥的信息。例如,密钥可以基于用户、装置和应用或应用组的元组来分配,以及关于密钥信息的请求可以包括识别该元组的信息。在某些实施例中,请求可以包括用户凭证,诸如证书或如单点登录(SSO)凭证。在某些变型中,用户凭证可以是元组或被包括作为上述元组的一部分。可以通过在步骤1003获得的策略来指定像应用组的某些信息。
[0184]在某些布置中,密钥信息可以作为策略信息的一部分来传送,因此,步骤1003和1005可以组合这样的布置中的一个或多个布置。另外,在某些变型中,策略信息和密钥信息可以经由诸如微VPN (如上所述)的VPN隧道来接收。
[0185]在步骤1007,移动装置可以配置一个或多个安全容器。例如,一个或多个安全容器可以通过用于被管理应用的策略来定义。在某些实例中,策略可以包括专用容器(例如,如图6所示的应用专用数据仓库)和/或共享容器(例如,如图6所示的共享数据仓库)的定义。基于策略,移动装置可以确定容器是否已在移动装置上正确形成和配置。如果容器已经不存在,则新的空仓库(包括用于该容器的文件系统(例如,空的目录树))被初始化。用于容器的访问管理器也可以被配置。
[0186]策略感知拦截层也可以被配置为要感知到安全容器。例如,策略感知拦截层可以被配置了将用于安全容器的标识符或资源标识符链接到在执行期间由应用发出的一个或多个API调用的信息,以及可以被配置了当加密/解密到/来自应用的数据时将被使用的密钥的位置。这样,策略感知拦截层可以拦截此类调用并根据策略将该调用重定向到适当的安全容器而无需该应用感知到拦截(例如参见图7)。
[0187]在步骤1009,移动装置可以确定用于被管理应用的遗留数据是否要被配置用于该应用。在某些实例中,这个确定可以基于用于该应用的策略。例如,遗留数据可以被存储在移动装置上(例如,被管理应用正在取代的用于电子邮件客户端的收件箱数据可以被存储在移动装置上)。因此,IT管理员可以配置策略,使得例如遗留数据的位置被定义在该策略内和/或当配置应用时指示移动装置将传送用于被管理应用的遗留数据。该策略可以指定遗留数据的位置,诸如外部数据存储的位置、位于移动装置上的文件夹或位于移动装置上的安全容器。该策略还可以定义移动到安全容器的一定量的遗留数据(例如,最大量的原始数据、许多天的电子邮件、所有数据等)。
[0188]在某些变型中,确定配置遗留数据可以基于除基于策略的标准以外的信息。例如,客户端代理可以配置成针对与被管理应用相关联的任何遗留数据执行应用沙箱的搜索(例如,递归搜索),并根据需要基于该搜索转换该遗留数据。另外,客户端代理可以配置了排除列表(例如,不应该被搜索/访问用于遗留数据的文件夹列表)。
[0189]在某些布置中,遗留数据可以诸如通过企业资源被远程存储。策略可以指示存储遗留数据的企业资源的位置。
[0190]如果移动装置确定用于被管理应用的遗留数据要被配置用于应用,则该方法可以进行到步骤1011。否则,方法可能结束,导致当执行应用时被管理应用被配置用于在移动装置上和使用的策略信息、密钥信息和安全容器一起执行。
[0191]在步骤1011,移动装置可以加密遗留数据。在某些变型中,加密可以根据策略来执行。例如,移动装置可以根据策略从其中存储遗留数据的位置检索数据量。移动装置随后可以根据策略加密数据(例如,使用由策略指定的协议和使用由策略指定的密钥)。某些数据可以基于其被将存储在其中的一个或多个安全容器使用不同密钥来加密。
[0192]在步骤1013,移动装置可以将现在被加密的遗留数据存储在一个或多个安全容器中。此类存储也可以根据策略。例如,某些数据可以被指定为存储在一个容器(例如,专用容器)中,而其他数据可以被指定为存储在不同的容器(例如,共享的容器)中。因此,数据可以以它们的加密形式存储在适当的容器中。此类存储可以通过更新或形成对加密数据在安全容器的文件系统中的位置的参照来执行。
[0193]在某些实例中,在步骤1011和1013已成功执行后,以其未加密形式保留在移动装置上的任何遗留数据可以被从移动装置删除。
[0194]虽然上述方法描述当初始配置用于在移动装置上执行的应用时配置数据仓库,但是当针对移动装置策略信息改变时,类似的方法可以被利用。事实上,移动装置(或客户端代理)可以针对当执行被管理应用时所使用的加密/解密策略和/或安全容器的变化分析已更新的策略信息。基于该变化,移动装置可以采取各种步骤(例如通过改变安全容器的配置、形成新容器、删除未使用的容器、再加密数据、解密数据、删除数据和/或将数据移到不同的存储位置)来确保策略被正确执行。
[0195]如上所述,当用户在移动装置上执行被管理应用时,用户通常被询问认证他们的公司身份和密码以及如该公司策略所规定的其他因素。在强认证用户、装置和应用后,系统的访问管理组件可以验证对该用户授权该应用并下载用于这个指定应用和用户的配置策略。访问/提供安全容器所需的密钥和其他数据也可以被下载到移动装置。图11示出结合访问安全容器用于提供认证的各个方面。具体地,图11示出提供用于安全容器的加密密钥和解密密钥的示例方法。另外,图11示出当根据存储在移动装置的存储器中的各种软件构造运行时通过移动装置的处理线路来执行的一种方法。在某些布置中,图11的示例方法可以通过移动装置的客户端代理来执行。
[0196]在步骤1101,移动装置可以结合认证用户、应用或移动装置通过接入网关来传送消息。例如,消息可以(例如,被传送导致移动装置或用户登录到企业以访问企业资源的消息)在允许在移动装置上执行的被管理应用访问企业资源之前结合认证用户的初始认证过程。在其他方面,消息可以在允许被管理应用被下载之前结合认证用户或移动装置。
[0197]在某些变型中,消息可以作为用于安全容器的密钥信息的周期性更新的一部分来传送。例如,用于安全容器的密钥可能需要周期性更新(例如,如各密钥的有效策略设定的时间所规定的)。只要用户保持接入网关的有效登录,当更新时,密钥的更新可以在没有用户交互的情况下发生。如果用户注销或他们的登录对话期满,那么,密钥的更新需要再次完全认证(例如,要求用户再次提供认证凭证,诸如用户名称和密码或证书)。在此类变型中,消息可以包括密钥信息的请求,并且可以包括用户、应用或移动装置的识别,使得接入网关能够确认对已更新密钥信息的认证(例如,基于有效登录对话)。
[0198]在步骤1103,移动装置可以接收用于读取、写入或以其他方式访问移动装置上的安全容器的密钥信息。例如,密钥可以基于用户、装置和应用或应用组的元组来分配。企业密钥管理服务器或接入网关可以具有特定用户、装置、应用或应用组的密钥和密钥相关联的知识。因此,密钥管理服务器或接入网关可以确定要被发送到移动装置的密钥信息,并且可以将该密钥信息传送到移动装置。
[0199]因此,由移动装置接收的密钥信息可以包括读取、写入或以其他方式访问安全容器(包括共享容器和专用容器两者)所需的加密密钥和/或解密密钥(参见例如图6和图7)。密钥信息可以包括识别每个密钥要用于哪些用户、装置、应用、应用组和/或安全容器的信息。在某些变型中,密钥信息可以采用安全容器标识符的列表的形式,其中每个标识符与用于该安全容器的相应加密密钥和解密密钥相关联。
[0200]在某些布置中,密钥信息可以作为对由移动装置存储的策略的更新的一部分被传送。另外,在某些变型中,密钥信息可以经由VPN隧道(诸如微VPN(如上所述))来接收。
[0201]在收到密钥信息时,移动装置可以在步骤1105存储密钥信息,使得例如密钥信息可以由安全容器和/客户端代理来使用。在某些布置中,密钥信息可以被存储在安全容器中或例如被存储在移动装置的被管理分区中。另外,在某些实例中,安全容器和客户端代理可能需要基于密钥信息来进一步配置。此类配置可以在步骤1107执行。例如,如果密钥信息指定用于还没有由移动装置形成的安全容器的密钥,则移动装置可以基于该密钥信息来确定形成一个或多个安全容器(例如,基于安全容器标识符的列表中的安全容器标识符中的一个,所示安全容器标识符不具有有在移动装置上形成的相匹配的容器),并因此,形成一个或多个安全容器(包括用于安全容器的文件系统和访问管理器)并配置客户端代理以促进访问安全容器。
[0202]如 上所述,在准备应用后,被管理应用可以被上传到为了发布该应用的服务器,企业用户例如经由应用商店来消费该应用。作为这个应用发布工作流程的一部分,IT管理员或其他用户可以选择应用于该应用和关联用户角色的策略。一旦被上传和配置,应用可以基于员工在组织内的角色提供给该组织的员工以阅读和安装。另选地,此类应用可以被直接推送到已将他们的装置登记到公司MDM服务器的各员工的移动装置。图12示出一种用于发布被管理应用的示例方法,使得例如用户能够下载该应用和任何相关的策略信息以及密钥信息。各个步骤可以通过企业网络(诸如接入网关或应用商店服务器(例如,图5的应用商店578))的一个或多个计算装置来执行。
[0203]在步骤1201,策略信息可以被确定并被链接到要发布的应用。策略信息可以包括用于应用的一个或多个策略,并且每个策略可以被指定给与企业相关联的不同用户角色(例如,用于销售员工的一个策略;用于设计师的不同策略等)或应用组。如贯穿本公开所讨论的,策略可以包括通过移动装置结合应用执行的各种约束,可能意味着所述约束被执行为移动装置上的被管理应用。策略信息可以包括一个或多个安全容器标识符,当应用由移动装置执行时,所述安全容器标识符将结合读取/写入或以其他方式处理数据来使用。安全容器可以是例如用于专用数据仓库和/或共享数据仓库的标识符。在某些布置中,IT管理员或其他用户可以选择或以其他方式配置策略信息的内容(例如,经由图形界面,IT管理员或其他用户可以提供促使策略信息被相应配置的输入)。
[0204]在步骤1203,密钥信息可以被确定并被链接到要发布的应用。密钥信息可以包括用于读取、写入或以其他方式访问在策略信息中识别的一个或多个安全容器的一个或多个加密密钥和/或解密密钥。在某些布置中,企业的IT管理员(或其他用户)可以选择或以其他方式配置密钥信息的内容(例如,经由图形界面,IT管理员或其他用户可以提供促使密钥信息被相应配置的输入)。
[0205]在某些布置中,密钥信息可以被包括在策略信息中。
[0206]在步骤1205,应用、策略信息和密钥信息可以被发布或以其他方式进行访问用于下载到移动装置。例如,应用、策略信息和密钥信息可以被发布到应用商店。
[0207]在步骤1207,应用、策略信息和密钥信息可以被传送到移动装置。在某些实施例中,此类传输可以响应于下载该应用的请求来执行。在其他实施例中,它可以响应于自动使得应用、策略信息和密钥信息到移动装置的推送命令来执行(例如,基于登记在此类的推送服务)。
[0208]另外,在步骤1209,对策略信息、密钥信息和/或应用的更新可以被传送到移动装置。例如,移动装置可以被登记到应用商店的更新服务中。因此,如果发布到应用商店的策略信息或密钥信息被更新,则已更新的策略信息或密钥信息可以被传送到移动装置(例如,基于更新服务中的登记)。在某些变型中,对策略信息和/或密钥信息的更新的传送可以不需对应用进行更新来执行。此外,移动装置的用户可能不知道对策略信息和/或密钥信息的更新。
[0209]在某些变型中,步骤1207和1209的传送可以使用一个或多个VPN隧道(诸如微VPN (如上所述))来执行。
[0210]描述一个或多个示例性实施例的第一声明集
[0211]1.一种方法,其包括:
[0212]由移动装置经由接入网关获得策略信息,被管理应用所需的资源通过所述接入网关是可访问的,其中所述策略信息定义当所述被管理应用在执行时要被使用的安全容器;
[0213]经由所述接入网关获得密钥信息,其中所述密钥信息包括用于加密或解密所述安全容器的数据的一个或多个密钥;
[0214]基于所述策略信息配置所述安全容器,其中所述安全容器是读取或写入操作被重定向到其中以及数据是以加密形式存在于其中的逻辑接口;
[0215]在所述被管理应用在所述移动装置上执行时,拦截来自所述被管理应用的读取或写入操作;以及
[0216]基于所述读取或写入操作访问所述安全容器。
[0217]2.如声明I所述的方法,其中配置所述安全容器包括配置所述安全容器的文件系统和所述安全容器的访问管理器,其中所述文件系统和所述访问管理器两者均不同于与所述移动装置的非安全位置相关联的文件系统和访问管理器,并且其中,访问所述安全容器通过安装在所述移动装置上的客户端代理来管理。
[0218]3.如声明I所述的方法,其中所述安全容器是只可由所述被管理应用访问的专用数据仓库。
[0219]4.如声明I所述的方法,其中所述安全容器是只可由所述被管理应用以及一个或多个其他被管理应用访问的共享数据仓库,其中所述策略信息被分配给所述被管理应用和所述一个或多个其他被管理应用。
[0220]5.如声明I所述的方法,还包括:
[0221]确定配置用于所述被管理应用的遗留数据;
[0222]加密所述遗留数据,从而产生加密的遗留数据;以及
[0223]将所述加密的遗留数据存储在所述安全容器中。
[0224]6.如声明I所述的方法,其中所述读取或写入操作包括特定数据的读操作,并且所述方法还包括:
[0225]基于所述安全容器的文件系统和访问管理器,从所述安全容器检索加密形式的所述特定数据;
[0226]解密所述加密形式的所述特定数据,从而产生解密形式的所述特定数据,其中所述解密使用经由所述接入网关接收的密钥;以及
[0227]向所述被管理应用提供所述解密形式的所述特定数据。
[0228]7.如声明I所述的方法,其中所述读取或写入操作包括特定数据的写入操作,并且所述方法还包括:
[0229]加密所述特定数据,从而产生加密形式的所述特定数据,其中所述加密使用经由所述接入网关接收的密钥;以及
[0230]向所述安全容器提供所述加密形式的所述特定数据供存储,所述存储基于所述安全容器的文件系统和访问管理器。
[0231]8.如声明I所述的方法,还包括初始化用于所述被管理应用的配置过程,并且其中所述声明I的所述步骤响应于所述初始化来执行。
[0232]9.如声明I所述的方法,还包括:
[0233]配置策略感知拦截层以执行所述读取或写入操作的所述拦截。
[0234]10.—种设备,其包括:
[0235]至少一个处理器;以及
[0236]存储可执行指令的存储器,所述可执行指令被配置为当由所述至少一个处理器执行时使得所述设备执行以下操作:
[0237]经由接入网关获得策略信息,被管理应用所需的资源可通过所述接入网关来访问,其中所述策略信息定义当所述被管理应用在执行时要被使用的安全容器;
[0238]经由所述接入网关获得密钥信息,其中所述密钥信息包括用于加密或解密所述安全容器的数据的一个或多个密钥;
[0239]基于所述策略信息配置所述安全容器,其中所述安全容器是读取或写入操作被重定向到其中以及数据是以加密形式存在于其中的逻辑接口;
[0240]在所述被管理应用在所述设备上执行时,拦截来自所述被管理应用的读取或写入操作;以及
[0241]基于所述读取或写入操作访问所述安全容器。
[0242]11.如声明10所述的设备,其中配置所述安全容器包括配置所述安全容器的文件系统和所述安全容器的访问管理器,其中所述文件系统和所述访问管理器两者均不同于与移动装置的非安全位置相关联的文件系统和访问管理器,并且其中,访问所述安全容器通过安装在所述移动装置上的客户端代理来管理。
[0243]12.如声明10所述的设备,其中所述安全容器是只可由所述被管理应用以及一个或多个其他被管理应用访问的共享数据仓库,其中所述策略信息被分配给所述被管理应用和所述一个或多个其他被管理应用。
[0244]13.如声明10所述的设备,其中所述读取或写入操作包括特定数据的读取操作,并且其中所述可执行指令被配置为当由所述至少一个处理器执行时,还使得所述设备执行以下操作:
[0245]基于所述安全容器的文件系统和访问管理器,从所述安全容器检索加密形式的所述特定数据;
[0246]解密所述加密形式的所述特定数据,从而产生解密形式的所述特定数据,其中所述解密使用经由所述接入网关接收的密钥;以及
[0247]向所述被管理应用提供所述解密形式的所述特定数据。
[0248]14.如声明10所述的设备,其中所述读取或写入操作包括特定数据的写入操作,并且其中,所述可执行指令被配置为,当由所述至少一个处理器执行时,还使得所述设备执行以下操作:
[0249]加密所述特定数据,从而产生加密形式的所述特定数据,其中,所述加密使用经由所述接入网关接收的密钥;以及
[0250]向所述安全容器提供所述加密形式的所述特定数据供存储,所述存储基于所述安全容器的文件系统和访问管理器。
[0251]15.如声明10所述的设备,其中所述可执行指令被配置为当由所述至少一个处理器执行时,还使得所述设备初始化用于所述被管理应用的配置过程,并且其中所述声明10的所述步骤响应于所述初始化来执行。
[0252]16.如声明10所述的设备,其中所述可执行指令被配置为,当由所述至少一个处理器执行时,还使得所述设备执行以下操作:
[0253]配置策略感知拦截层以执行所述读取或写入操作的所述拦截。
[0254]17.存储指令的一种或多种非暂时性计算机可读介质,所述指令被配置为当被执行时使得至少一个计算装置执行以下操作:
[0255]经由接入网关获得策略信息,被管理应用所需的资源通过所述接入网关是可访问的,其中所述策略信息定义当所述被管理应用在执行时要被使用的安全容器;
[0256]经由所述接入网关获得密钥信息,其中所述密钥信息包括用于加密或解密所述安全容器的数据的一个或多个密钥;
[0257]基于所述策略信息配置所述安全容器,其中所述安全容器是读取或写入操作被重定向到其中以及数据是以加密形式存在于其中的逻辑接口;
[0258]在所述被管理应用在所述至少一个计算装置上执行时,拦截来自所述被管理应用的读取或写入操作;以及
[0259]基于所述读取或写入操作访问所述安全容器。
[0260]18.如声明17所述的一种或多种非暂时性计算机可读介质,其中所述指令被配置为,当被执行时还使得所述至少一个计算装置初始化用于所述被管理应用的配置过程,并且其中声明17的所述步骤响应于所述初始化来执行。
[0261]19.如声明17所述的一种或多种非暂时性计算机可读介质,其中所述指令被配置为当被执行时还使得所述至少一个计算装置执行以下操作:
[0262]配置策略感知拦截层以执行所述读取或写入操作的所述拦截。
[0263]20.如声明17所述的一种或多种非暂时性计算机可读介质,其中所述读取或写入操作包括特定数据的读取操作,并且其中,所述指令被配置为,当被执行时还使得所述至少一个计算装置执行以下操作:
[0264]基于所述安全容器的文件系统和访问管理器,从所述安全容器检索加密形式的特定数据;
[0265]解密所述加密形式的所述特定数据,从而产生解密形式的所述特定数据,其中所述解密使用经由所述接入网关接收的密钥;以及
[0266]向所述被管理应用提供所述解密形式的所述特定数据。
[0267]虽然本主题以指定结构特征和/或方法行为的语言来描述,但应当理解,在任何权利要求中定义的主题不一定局限于上述的指定特征或行为。相反,上述的指定特征和行为被描述为所附权利要求的某些示例实施。
【主权项】
1.一种方法,其包括: 由移动装置拦截来自在所述移动装置上执行的被管理应用的读取或写入操作; 基于所述读取或写入操作访问安全容器,所述安全容器是读取或写入操作被重定向到其中以及数据是以加密形式存在于其中的逻辑接口; 确定执行选择性擦除与所述被管理应用相关联的数据; 从所述安全容器删除加密数据;以及 向接入网关传送选择性擦除确认,其中,所述确认包括安全容器的列表,所述安全容器包括在所述选择性擦除期间被删除的数据。2.如权利要求1所述的方法,其中所述安全容器包括位于不同于所述移动装置的非安全位置的位置的文件系统和访问管理器,并且其中,访问所述安全容器由安装在所述移动装置上的客户端代理来管理。3.如权利要求1所述的方法,其中所述安全容器是只可由所述被管理应用来访问的专用数据仓库。4.如权利要求1所述的方法,其中所述安全容器是只可由所述被管理应用以及一个或多个其他被管理应用来访问的共享数据仓库。5.如权利要求1所述的方法,其中所述读取或写入操作包括特定数据的读取操作,并且所述方法还包括: 基于所述安全容器的文件系统和访问管理器,从所述安全容器检索加密形式的特定数据; 解密所述加密形式的所述特定数据,从而产生解密形式的所述特定数据,其中所述解密使用经由所述接入网关接收的密钥,所述被管理应用所需的资源通过所述接入网关是可访问的;以及 向所述被管理应用提供所述解密形式的所述特定数据。6.如权利要求1所述的方法,其中所述读取或写入操作包括特定数据的写入操作,并且所述方法还包括: 加密所述特定数据,从而产生加密形式的所述特定数据,其中所述加密使用经由所述接入网关接收的密钥,所述被管理应用所需的资源通过所述接入网关是可访问的;以及 向所述安全容器提供所述加密形式的所述特定数据供存储,所述存储基于所述安全容器的文件系统和访问管理器。7.如权利要求1所述的方法,还包括监测所述移动装置的工作条件,并且其中确定执行所述选择性擦除是基于违背所述移动装置经由所述接入网关接收的策略的工作条件,所述被管理应用所需的资源通过所述接入网关是可访问的。8.如权利要求1所述的方法,还包括: 基于所述移动装置经由所述接入网关接收的策略配置所述安全容器,所述被管理应用所需的资源通过所述接入网关是可访问的;以及 配置策略感知拦截层以执行所述读取或写入操作的所述拦截。9.如权利要求1所述的方法,其中所述安全容器位于远离所述移动装置的位置,并且其中,访问所述安全容器包括经由指定应用的虚拟专用网络VPN隧道来传送所述读取或写入操作。10.如权利要求1所述的方法,其中所述被管理应用包括虚拟化应用,并且所述加密数据包括由所述虚拟化应用生成或使用的数据。11.一种设备,包括: 至少一个处理器;以及 存储可执行指令的存储器,所述可执行指令被配置为当由所述至少一个处理器执行时,使得所述设备执行以下操作: 拦截来自在所述设备上执行的被管理应用的读取或写入操作; 基于所述读取或写入操作访问安全容器,所述安全容器是读取或写入操作被重定向到其中以及数据是以加密形式存在于其中的逻辑接口; 确定执行选择性擦除与所述被管理应用相关联的数据; 从所述安全容器删除加密数据;以及 向接入网关传送选择性擦除确认,其中,所述确认包括安全容器的列表,所述安全容器包括在所述选择性擦除期间被删除的数据。12.如权利要求11所述的设备,其中所述安全容器包括位于不同于所述设备的非安全位置的位置的文件系统和访问管理器,并且其中,访问所述安全容器由安装在所述设备上的客户端代理来管理。13.如权利要求11所述的设备,其中所述安全容器是只可由所述被管理应用访问的专用数据仓库,或是只可由所述被管理应用以及一个或多个其他被管理应用访问的共享数据仓库。14.如权利要求11所述的设备,其中所述读取或写入操作包括特定数据的读取操作,并且其中,所述可执行指令还被配置为,当被所述至少一个处理器执行时,还使得所述设备执行以下操作: 基于所述安全容器的文件系统和访问管理器,从所述安全容器检索加密形式的所述特定数据; 解密所述加密形式的所述特定数据,从而产生解密形式的所述特定数据,其中,所述解密使用经由所述接入网关接收的密钥,所述被管理应用所需的资源通过所述接入网关是可访问的;以及 向所述被管理应用提供所述解密形式的所述特定数据。15.如权利要求11所述的设备,其中所述读取或写入操作包括特定数据的写入操作,并且其中,所述可执行指令被配置为,当被所述至少一个处理器执行时,还使得所述设备执行以下操作: 加密所述特定数据,从而产生加密形式的所述特定数据,其中所述加密使用经由所述接入网关接收的密钥,所述被管理应用所需的资源通过所述接入网关是可访问的;以及 向所述安全容器提供所述加密形式的所述特定数据供存储,所述存储基于所述安全容器的文件系统和访问管理器。16.如权利要求11所述的设备,其中所述可执行指令被配置为,当由所述至少一个处理器执行时还使得所述设备执行以下操作: 基于所述设备经由所述接入网关接收的策略配置所述安全容器,所述被管理应用所需的资源通过所述接入网关是可访问的;以及 配置策略感知拦截层以执行所述读取或写入操作的所述拦截;以及 监测所述设备的工作条件; 其中,确定执行所述选择性擦除是基于违背所接收的策略的工作条件。17.存储指令的一种或多种非暂时性计算机可读介质,所述指令被配置为,当被执行时使得至少一个计算装置执行以下操作: 拦截来自在所述至少一个计算装置上执行的被管理应用的读取或写入操作; 基于所述读取或写入操作访问安全容器,所述安全容器是读取或写入操作被重定向到其中以及数据是以加密形式存在于其中的逻辑接口; 确定执行选择性擦除与所述被管理应用相关联的数据; 从所述安全容器删除加密数据;以及 向接入网关传送选择性擦除确认,其中,所述确认包括安全容器的列表,所述安全容器包括在所述选择性擦除期间被删除的数据。18.如权利要求17所述的一种或多种非暂时性计算机可读介质,其中所述指令被配置为,当被执行时还使得所述至少一个计算装置监测所述至少一个计算装置的工作条件;以及 其中确定执行所述选择性擦除是基于违背由所述至少一个计算装置经由所述接入网关所接收的策略的工作条件,所述被管理应用所需的资源通过所述接入网关是可访问的。19.如权利要求17所述的一种或多种非暂时性计算机可读介质,其中所述指令被配置,当被执行时还使得所述至少一个计算装置执行以下操作: 基于由所述至少一个计算装置经由所述接入网关接收的策略配置所述安全容器,所述被管理应用所需的资源通过所述接入网关是可访问的;以及 配置策略感知拦截层以执行所述读取或写入操作的所述拦截。20.如权利要求17所述的一种或多种非暂时性计算机可读介质,其中所述读取或写入操作包括特定数据的读取操作,并且其中,所述指令被配置为,当被执行时还使得所述至少一个计算装置执行以下操作: 基于所述安全容器的文件系统和访问管理器,从所述安全容器检索加密形式的特定数据; 解密所述加密形式的所述特定数据,从而产生解密形式的所述特定数据,其中,所述解密使用经由所述接入网关接收的密钥,所述被管理应用所需的资源通过所述接入网关是可访问的;以及 向所述被管理应用提供所述解密形式的所述特定数据。
【专利摘要】本公开的各方面涉及提供用于一个或多个被管理应用的数据的安全容器或数据仓库。在某些实施例中,每个被管理应用可以被指定其自己的专用数据仓库,和/或可以被指定至少一个其他被管理应用可访问的共享数据仓库。在被管理应用执行时,访问数据的调用可以被拦截并被重定向到安全容器。存储在安全容器中的数据可以根据策略来加密。其他方面涉及例如经由选择性擦除与被管理应用相关联的数据来从安全容器删除数据。另外的方面涉及配置和形成安全容器,检索加密/解密存储在安全容器中的数据所需要的密钥信息,并且发布用于下载到移动装置的被管理应用、策略信息和密钥信息。
【IPC分类】G06F21/62, G06F21/88
【公开号】CN104903910
【申请号】CN201380065726
【发明人】盖瑞·巴顿, 忠民·朗, N·德赛, 詹姆斯·沃克
【申请人】思杰系统有限公司
【公开日】2015年9月9日
【申请日】2013年10月8日
【公告号】EP2909786A1, US8959579, US20140108793, US20140108794, US20150143120, WO2014062420A1

最新回复(0)