CN108600251A - 移动设备管理和安全 - Google Patents
移动设备管理和安全 Download PDFInfo
- Publication number
- CN108600251A CN108600251A CN201810422004.7A CN201810422004A CN108600251A CN 108600251 A CN108600251 A CN 108600251A CN 201810422004 A CN201810422004 A CN 201810422004A CN 108600251 A CN108600251 A CN 108600251A
- Authority
- CN
- China
- Prior art keywords
- mobile device
- enterprise
- attachment
- application
- gateway
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/08—Annexed information, e.g. attachments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
- H04W12/088—Access security using filters or firewalls
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请涉及移动设备管理和安全。公开了包括用于使企业用户能使用他们的移动设备安全地访问企业资源(文档、数据、应用服务器等)的部件和特征的***。企业可使用***的一些或所有部件来例如安全地但灵活地实现BYOD(携带自己的设备)策略,其中用户可在他们的移动设备上运行个人应用和安全企业应用。***可例如使用用于基于设备属性(例如什么移动应用被安装)、用户属性(例如用户的地位或部门)、行为属性和其它标准来控制移动设备对企业资源的访问的策略。安装在移动设备上的客户端侧代码还可通过例如创建用于本地地存储企业数据的安全容器、创建用于运行企业应用的安全执行环境和/或创建用于与企业***通信的安全应用隧道来进一步增强安全性。
Description
本申请是申请日为2013年9月18日,申请号为201380057326.1,发明名称为“移动设备管理和安全”的申请的分案申请。
通过引用的并入
本申请要求2012年9月18日提交的且通过引用被全部并入本文的美国临时专利申请序列号61/702,671的优先权。该美国申请也要求2012年 10月10日提交的标题为“GATEWAY FOR CONTROLLING MOBILE DEVICEACCESS TO ENTERPRISE RESOURCES”且通过引用被全部并入本文的美国专利申请序列号13/649,076的优先权。这个申请也通过引用被全部并入本文:2012年10月10日提交的标题为“PROTECTING ENTERPRISE DATA THROUGHPOLICY BASED ENCRYPTION OF MESSAGE ATTACHMENTS”的美国专利申请序列号13/649,064;2012年 10月10日提交的标题为“PROVIDING SECURE MOBILE DEVICE ACCESS TOENTERPRISE RESOURCES USING APPLICATION TUNNELS”的美国专利申请序列号13/648,993;2012年10月10日提交的标题为“SECURE EXECUTION OF ENTERPRISE APPLICATIONS ONMOBILE DEVICES”的美国专利申请序列号13/649,024;2012年10月10 日提交的标题为“MODIFYING PRE EXISTING MOBILE APPLICATIONS TO IMPLEMENT ENTERPRISE SECURITYPOLICIES”的美国专利申请序列号13/649,022;2012年10月10日提交的标题为“SECUREMOBILE BROWSER FOR PROTECTING ENTERPRISE DATA”的美国专利申请序列号13/649,063;2012年10月10日提交的标题为“SECURE CONTAINER FOR PROTECTING ENTERPRISE DATA ONA MOBILE DEVICE”的美国专利申请序列号13/649,069;2012年10月10日提交的标题为“RULES BASED DETECTION AND CORRECTION OF PROBLEMS ON MOBILE DEVICES OFENTERPRISE USERS”的美国专利申请序列号13/649,071; 2012年10月10日提交的标题为“CONTROLLING MOBILE DEVICE ACCESS TO ENTERPRISE RESOURCES”的美国专利申请序列号 13/649,073。此外,本申请特此通过引用并入美国临时专利申请号 61/546,021、61/546,922和61/649,134整个技术公开。本申请也特此通过引用并入Qureshi等人的美国专利号7,788,536(“Qureshi‘526”)的整个技术公开。
技术领域
本申请通常涉及移动计算设备(智能电话、平板计算机、PDA等)和相关应用程序,且涉及用于访问企业的被管理资源的设备的自动或半自动管理的***。
背景技术
很多企业(例如公司、合伙公司、学术机构等)维持允许企业用户访问企业资源例如硬件和电子邮件的软件应用、消费者关系管理(CRM)、文档管理、企业资源规划(ERP)等的企业计算机网络。此外,很多企业允许用户经由移动设备例如智能电话、平板计算机等访问企业网络。在一些情况下,在移动设备上运行的软件应用与企业网络交换数据,其中一些数据可被保存在移动设备的存储器硬件(例如硬盘驱动器、SD卡)上。
在企业当中的增长的趋势是允许雇员使用他们个人拥有的移动设备来访问公司资源和使用并访问它们的个人应用和数据。被称为BYOD(携带自己的设备)或BYOT(携带自己的技术)的这个趋势相当大地复杂化了保护企业资源——包括机密和/或敏感信息——的任务。
发明内容
根据本发明的一个方面,提供了一种企业***,其配置成控制移动设备对企业资源的访问,所述企业***包括:
企业资源,其配置成通过通信网络电子地与计算设备通信;以及
网关,其包括计算机硬件,所述网关配置成:
从移动设备接收对访问所述企业资源的请求,所述请求根据包括与所述移动设备相关的特性的协议而格式化;
从一个或多个网关规则提供者接收网关规则,每个网关规则包括:
所述协议的一个或多个所述特性的一个或多个值;以及
当所述请求具有相应于所述网关规则的一个或多个特性值的一个或多个特性值时采取选定行动的指示;
确定所述请求是否具有相应于任一所述网关规则的一个或多个特性值的一个或多个特性值;以及
当所述请求具有相应于所述网关规则中的一个网关规则的一个或多个特性值的一个或多个特性值时,基于在所述一个网关规则中的指示使在所述一个网关规则中指示的行动被采取。
在本发明的一些实施方式中,所述选定行动可包括允许对所述企业资源的访问或拒绝对所述企业资源的访问中的至少一个。
在本发明的一些实施方式中,所述协议的一个或多个特性可指示一个或多个移动应用存储在所述移动设备上,且其中所述网关可配置成基于所述一个或多个移动应用存储在所述移动设备上来确定是允许所述移动设备访问所述企业资源还是拒绝所述移动设备访问所述企业资源。
在本发明的一些实施方式中,所述网关可配置成当所述移动设备具有存储在其上的特定应用时基于所述网关规则的指示来拒绝对访问所述企业资源的请求。
在本发明的一些实施方式中,所述选定行动可包括对经由所述网关传输到所述移动设备的数据加密。
在本发明的一些实施方式中,所述选定行动可包括阻止所述移动设备接收电子邮件附件。
在本发明的一些实施方式中,所述网关规则可包括具有当所述移动设备的用户具有在企业中的不同角色时采取不同的行动的指令的规则。
在本发明的一些实施方式中,配置成实现所述网关的所述一个或多个计算设备可包括防火墙服务器、配置成控制防火墙服务器的计算设备或其它企业资源中的至少一个。
在本发明的一些实施方式中,所述网关规则可包括至少一个静态地定义的规则和从所述一个或多个网关规则提供者接收的至少一个规则。
在本发明的一些实施方式中,所述网关可配置成至少部分地通过检查所述请求的有效载荷并比较来自所述有效载荷的数据与至少一个所述网关规则来确定所述请求是否具有相应于任一所述网关规则的一个或多个特性值的一个或多个特性值。
在本发明的一些实施方式中,所述协议的所述特性可以与存储在所述移动设备上的移动设备应用相关。
在本发明的一些实施方式中,所述协议的所述特性可以与所述移动设备的用户相关。
根据本发明的另一个方面,提供了一种存储用于控制移动设备对企业资源的访问的网关部件的非临时计算机存储器,所述网关部件包括可执行代码,所述可执行代码引导计算***执行过程,所述过程包括:
从移动设备接收对访问企业资源的请求,所述请求根据包括与所述移动设备相关的特性的协议而格式化;
确定所述请求是否具有相应于一个或多个网关规则的一个或多个特性值的一个或多个特性值,每个网关规则包括:
所述协议的一个或多个所述特性的一个或多个值;以及
当所述请求具有相应于所述网关规则的一个或多个特性值的一个或多个特性值时要采取的行动的指示;以及
当所述请求具有相应于所述网关规则中的一个网关规则的一个或多个特性值的一个或多个特性值时,使在所述一个网关规则中指示的行动被采取。
在本发明的一些实施方式中,所述过程还可包括在具有相应于所述请求的一个或多个特性值的一个或多个特性值的多个网关规则当中确定相对优先级,其中所采取的行动可相应于所述多个网关规则中具有所述多个网关规则的最高相对优先级的网关规则中的指示。
根据本发明的另一个方面,提供了一种存储企业计算***的可执行网关软件的非临时计算机存储器,所述网关软件包括:
网关配置服务,其配置成从一个或多个网关规则提供者接收网关规则,每个网关规则包括:
所述协议的一个或多个所述特性的一个或多个值;以及
当根据所述协议被格式化的请求具有匹配所述网关规则的一个或多个特性值的一个或多个特性值时要采取的行动的指示;以及
网关过滤器,其配置成:
从移动设备接收对访问所述企业计算***的计算机实现的资源的请求,至少一些所述请求根据包括与所述移动设备、移动设备应用或移动设备用户中的至少一个相关的特性的协议而被格式化;
访问由所述网关配置服务接收的网关规则;
对于根据所述协议格式化的每个所述请求,确定所述请求是否具有匹配任一所述网关规则的一个或多个特性值的一个或多个特性值;以及对于具有匹配所述网关规则之一的一个或多个特性值的一个或多个特性值的每个所述请求,基于所述网关规则的指令来允许或拒绝所述请求。
在本发明的一些实施方式中,所述网关配置服务可配置成:周期性地向所述一个或多个网关规则提供者发送新网关规则请求;以及响应于所述新网关规则请求,从所述一个或多个网关规则提供者接收新网关规则。
在本发明的一些实施方式中,所述网关配置服务可配置成从元应用接收至少一个所述网关规则。
在本发明的一些实施方式中,待采取的所述行动可包括允许或拒绝所述请求。
根据本发明的又一个方面,提供了一种用于控制移动设备访问策略的***,所述***包括:
企业访问策略的第一机器可读仓库,所述企业访问策略规定执行与来自移动设备的对访问企业的计算机实现的资源的请求有关的行动时的条件;
与所述企业相关的移动设备和/或与所述移动设备相关的用户的属性的第二计算机可读仓库;以及
运行网关规则发生器的计算机***,所述网关规则发生器配置成:
从所述第一仓库读取所述企业访问策略;
查询所述第二仓库的所述属性;以及
创建网关规则以实施从所述第一仓库读取的所述访问策略,每个所述网关规则包括:
用于访问计算机实现的企业资源的移动设备请求的协议的一个或多个特性的一个或多个值,至少一些所述特性相应于特定移动设备;以及
当所述请求具有匹配所述网关规则的一个或多个特性值的一个或多个特性值时采取与根据所述协议而格式化的移动设备请求相关的行动的指示;
其中所述***配置成使所述网关规则传输到配置成接收对访问所述企业资源的移动设备请求的网关。
根据本发明的另一个方面,提供了一种便于在移动设备和企业计算***之间的通信的计算机实现的方法,所述方法包括:
在使用特定的可执行指令来编程的至少一个计算设备的控制下:
监控在移动设备和企业计算***的企业资源之间的通信;
检测在所述移动设备和所述企业资源之间的所述通信中的选定通信根据协议而被格式化;
确定在相应于所述协议的协议特定条件的一个或多个预定规则中识别的选定行动,所述协议特定条件与选定通信相关;以及
响应于所述确定而执行所述选定通信的所述选定行动。
在本发明的一些实施方式中,执行所述选定行动可以包括允许或拒绝来自所述移动设备的对访问所述企业资源的请求。
在本发明的一些实施方式中,所述选定行动可包括允许来自所述移动设备的对访问所述企业资源的请求,以及其中所述协议特定条件可包括与所述移动设备相关的所述用户在企业中的特定角色和所述移动设备的一个或多个特性。
在本发明的一些实施方式中,所述协议特定条件可以包括特定的应用是否安装在所述移动设备上。
在本发明的一些实施方式中,所述协议特定条件可以包括所述移动设备的地理位置。
在本发明的一些实施方式中,所述协议特定条件可以包括与所述通信相关的时间。
在本发明的一些实施方式中,所述协议可以是电子邮件协议。
在本发明的一些实施方式中,执行所述选定行动可包括对从所述企业资源呈递到所述移动设备的数据加密。
在本发明的一些实施方式中,加密的数据可包括加密的电子邮件附件。
附图说明
图1A是企业计算机***和与企业相关的移动计算设备的实施方式的示意图。
图1B是类似于图1A的实施方式,移动设备管理***位于云计算*** (“云”)中。
图1C是类似于图1A的实施方式,元应用位于云中。
图1D是类似于图1A的实施方式,安全移动网关位于防火墙中。
图1E是类似于图1A的实施方式,安全移动网关位于企业资源中。
图1F示出移动设备屏幕显示器,其包括用于暴露用于选择并启动企业应用的用户接口的可选择屏幕元件。
图1G示出用于选择并启动企业应用的用户接口。
图2是图1A的企业计算机***的移动设备管理***的实施方式的示意图。
图3A是移动设备的实施方式的示意图。
图3B示出可安装在移动设备上的安全相关部件和应用。
图4是用于安全地允许或拒绝来自移动设备的访问企业计算机***的请求的网关的实施方式的示意图。
图5是示出一种方法的实施方式的流程图,其中移动设备的企业代理通过应用隧道将移动设备应用的通信重定向到企业资源。
图6是示出一种方法的实施方式的流程图,其中企业计算机***参与在移动设备应用和企业资源之间的应用隧道的形成。
图7是示出一种方法的实施方式的流程图,其中企业计算机***管制由移动设备对企业资源的访问。
图8是部分地基于云的元应用的实施方式的示意图,该元应用用于管理企业计算机***、移动设备管理***和/或用于允许或拒绝来自移动设备的访问企业计算机***的请求的网关。
图9是示出一种方法的实施方式的流程图,其中移动设备使用编码规则和补救行动来检测并处理安全相关或生产率相关问题。
图10是示出一种方法的实施方式的流程图,其中移动设备响应于到企业计算机***的网络连接的失去而缓存由用户输入的数据。
图11是示出一种方法的实施方式的流程图,其中当到移动设备的网络连接被失去时企业计算机***缓存将被发送到移动设备的数据。
图12是用于远程地控制移动设备的控制器计算机的实施方式的示意图。
图13是示出一种方法的实施方式的流程图,其中控制器计算机参与与移动设备的远程控制会话。
图14示出参与与移动设备的远程控制会话的控制器计算机的屏幕显示器的实施方式,其包括移动设备的***信息。
图15示出参与与移动设备的远程控制会话的控制器计算机的屏幕显示器的实施方式,其包括对移动设备的任务管理器的访问。
图16示出参与与移动设备的远程控制会话的控制器计算机的屏幕显示器的实施方式,其包括用于在控制器计算机和移动设备之间的文件传输的接口。
图17示出参与与移动设备的远程控制会话的控制器计算机的屏幕显示器的实施方式,其包括用于编辑移动设备的注册表的接口。
图18是示出一种方法的实施方式的流程图,其中移动设备参与与控制器计算机的远程控制会话。
图19A示出参与与移动设备的远程控制会话的控制器计算机的屏幕显示器的实施方式,其包括聊天会话接口。
图19B示出在图19A中仿真的移动设备的实施方式。
图20示出参与与移动设备的远程控制会话的控制器计算机的屏幕显示器的实施方式,其包括共享白板特征。
图21示出根据一个实施方式的由移动设备网关记录的数据的例子,该数据可被提供到分析服务。
图22示出用于配置标准的接口的例子,在该标准下,分析服务基于由移动设备网关记录的数据来发送警告。
图23示出一种方法的实施方式,分析或网络智能服务通过该方法来帮助认证与移动设备访问请求相关的用户。
图24示出用于将例如企业保护功能嵌入移动设备软件应用中的软件开发工具包的实施方式。
图25示出实施方式,其中使用在移动设备上运行的代理来创建应用隧道。
图26示出用于使管理员能够创建在移动设备和应用服务器之间的隧道的用户接口(例如网页)。
图27示出对于图25的实施方式当在移动设备和应用服务器之间创建应用隧道时出现的代表性通信和事件。
图28示出当应用隧道被建立为安全应用隧道时出现的额外通信和事件。
图29示出使移动应用的行为能够被修改而不需要应用的源代码且不需要编程员或编程技能的应用修改***。
图30示出由图29的***使用来修改移动应用的过程的一个实施方式。
图31示出根据实施方式的当移动设备从企业资源取回具有附件的消息时出现的代表性通信和事件。
图32示出根据实施方式的当移动设备转发具有附件的消息时出现的代表性通信和事件。
图33示出根据另一实施方式的当移动设备转发具有附件的消息时出现的代表性通信和事件。
图34是示出对附件加密的方法的实施方式的流程图。
图35是示出对附件解密的方法的实施方式的流程图。
在这个说明书中使用的参考数字通常基于数字出现于的第一个图(在上面的列表中)。具有在100-199之间的值的参考数字首次出现在图1A-1G 中,具有在200-299之间的值的参考数字首次出现在图2中,依此类推。
技术人员将认识到,虽然本公开的某些附图示出很多物件,这些附图示出某些实施方式,且其它实施方式可涉及比所示的更多或更少的物件。
具体实施方式
现在参考附图描述各种发明和创造性特征。如将认识到的,很多所公开的特征和相关部件可独立于彼此被使用,并可与本文描述的不同地被实现。因此,在这个详细描述中(或在前面的背景章节中)没有任何事物意欲暗示所公开的***的任何特定的特征、部件或特性是必不可少的。而且,将理解,标题为了方便而被提供且并不一定影响权利要求的范围或意义。
介绍
在这个说明书中描述的体系结构可由公司或其它企业使用来灵活地实现用于允许企业用户使用他们的移动设备来安全地访问企业资源(文档、机密数据、公司应用和数据库服务器等)的策略,例如公司拥有的设备、 BYOD(携带自己的设备)策略。这通过例如使企业能够规定并实现用于控制移动设备对特定企业资源的访问的策略的各种安全特征来实现。策略可例如基于各种标准例如相应用户的角色(例如用户在哪个部门)、移动设备的配置(例如被记入黑名单中的任何移动应用是否被安装)、用户的所记录的行为、移动设备的位置和/或对企业资源的访问被请求时的时间来控制移动设备对企业资源的访问。在一些实施方式中,体系结构通过创建使企业移动应用能够通过网络与企业***安全地通信的应用隧道来进一步增强安全性。当例如用户中断雇用或违反公司策略时(例如,如果他们使其设备越狱或以其他方式在不被允许的配置中使用它),体系结构也可使IT职员能够从用户的移动设备选择性地(和远程地)抹掉企业应用和公司数据。
如在标题为“保护附件数据”的章节中描述的,所公开的体系结构也可实现附件加密策略,其中加密应用于被发送到企业用户的移动设备的电子邮件附件(或其它类型的消息例如SMS消息的附件)。这个特征减小了可以访问企业成员的移动设备的未授权用户将能够访问在企业用户之间作为附件发送的敏感企业文档的概率。
在一些实施方式中,所公开的体系结构有利地使最终用户能够在同一移动设备上同时运行企业移动应用(被配置或授权访问企业资源的那些应用)和个人(非企业)移动应用,而不危害安全性。这可部分地通过移动设备软件来实现,移动设备软件创建安全环境或外壳,其中企业移动应用可运行并存储数据。这个安全环境或外壳可例如防止安装在移动设备上的个人应用通过企业应用来访问文档和存储在移动设备上的其它数据。在一些实施方式中,在移动设备上运行的安全启动器使用用于启动安装在移动设备上的企业移动应用的UI来提高移动操作***的UI。当用户启动企业移动应用时,可例如给用户显现有用于输入运行企业移动应用所必需的个人密码的认证屏幕。
企业应用的密码(或其它类型的认证信息)的使用减小了当例如移动设备失去或被盗时或当移动设备由雇员的孩子使用来玩游戏时企业资源将被不恰当地使用的概率。在一些实施方式中,当例如用户试图但未能输入有效的密码阈值数量的连续次数(例如5或10)时,安全启动器(或安装在移动设备上的另一部件)通过执行移动设备的选择性抹掉进一步减小了这个风险。选择性抹掉操作从移动设备删除一些或所有企业应用和相关数据,而不删除任何个人应用或数据。在一些实施方式中,企业的IT部门可通过向设备远程地发出抹掉命令来发起特定的移动设备的选择性抹掉。
体系结构也可支持用于保护企业资源的各种其它类型的补救行动。一个这样的补救是锁住移动设备或在设备上的存储企业数据的企业容器,使得移动设备或容器只可以使用由IT职员提供的有效代码来被解锁。在一些实施方式中,这些和其它类型的补救办法可自动基于在移动设备上检测的条件来调用,或可由IT职员远程地发起。
这个说明书也公开了用于创建并提高移动应用以使它们能够使用各种企业安全特征的过程。下面在标题“修改预先存在的移动应用的行为”下描述了一种这样的方法。使用这种方法,组织可修改现有的移动应用以添加各种安全特征而不需要访问这样的应用的安全代码。被修改的移动应用可以例如是定制企业应用,或可以是配置成在企业内使用的市场上可买到的移动应用。通过这个过程,预先存在的移动应用可以例如配置成(a)使用应用隧道来与企业***通信,(b)使用加密库来对它存储在移动设备上的文档和其它数据加密,(c)当移动应用被发起时给用户显现登录或密码屏幕,(d)禁用剪切、复制和粘贴操作,(e)禁用离线访问,(f)使用特定类型的用户认证方法例如基于姿势的认证,或其组合。通过这个过程来修改预先存在的移动应用的能力给企业在选择提供给它们的成员的移动应用时的较大灵活性;例如,不是要求雇员使用用于访问基于云的存储的定制发展的企业应用,企业可修改(或已修改)用户已经熟悉的流行的市场上可买到的移动应用。此外,可为不同类型的雇员创建给定应用的不同版本(使用不同的认证方法、加密级别等)。
也公开了用于向移动应用有效地添加企业安全特征而很少或不需要修改这样的应用的应用代码的过程。一种这样的方法涉及与移动设备的操作***的虚拟机分离的安全虚拟机的使用。安全虚拟机实现或提供对各种企业安全特征(例如应用隧道、数据加密、密码提示等)的访问,且这些安全特征由在安全虚拟机内运行的移动应用继承或被强加在安全虚拟机内运行的移动应用上。可配置或迫使企业移动应用使用安全虚拟机,而非企业移动应用继续在移动操作***的固有虚拟机内运行。这个能力给企业额外的自由来灵活地选择移动应用以用作企业应用;例如通过这种方法,企业可有效地配置用户的移动设备以使用户能够使用流行/熟悉的移动应用来安全地访问企业资源。
安全虚拟机的使用可使企业能够提供较高级别的安全性用于在BYOD 设备上运行企业应用。例如,通过在由安全虚拟机创建的安全执行环境内运行应用,公司可为应用实施单独的一组策略,包括联网和存储策略。
在标题“安全Web浏览器”下描述的另一方法涉及实现各种企业安全特征的移动浏览器应用的使用。像安全虚拟机方法一样,配置成在安全浏览器内运行的移动应用(或由浏览器访问的网页)有效地继承了安全浏览器所实现的安全机制。这样的安全浏览器的使用也使企业能够实现内容过滤策略,其中例如雇员被阻止从他们的移动设备访问某些网站。安全浏览器可用于例如使移动设备用户能够访问公司内联网,而不需要虚拟专用网(VPN)。
所公开的体系结构也可包括监控总企业***——包括企业用户的移动设备——的元应用或***。元应用可通常如在Qureshi‘526中所述的操作,并可被实现为基于云的元应用。由元应用收集的数据可包括由在移动设备上运行的企业代理收集和报告的数据。在一些实施方式中,元应用基于所观察的行为——包括移动设备用户的行为——来产生规则。这些规则可包括由安全移动网关使用来允许和拒绝移动设备访问企业资源的请求的网关规则。
在下面的章节中详细描述了这些和其它安全特征和部件。如将认识到的,很多所公开的特征和部件可独立于彼此被使用。因此,在下面的描述中没有任何事物应被理解为暗示某些安全特征和部件必须组合地被使用。
***概述和术语
在很多情况下,当移动计算设备访问企业计算机/IT***时,与企业和 /或企业相关软件应用相关的敏感数据可被存储到移动设备上。企业相关数据可包括与企业相关的任何数据,没有限制地例如是生产信息、销售数据、消费者列表、企业性能数据、专有技术、发明、商业秘密等。因为这个信息可以是非常敏感的,企业可能希望保护这样的信息。
此外,企业可能希望管制用户如何使用他们的移动设备。例如,企业可能想对移动设备在哪里被使用、哪些移动设备特征可被使用、哪些软件应用可在设备上被安装和/或运行等有一些控制。企业也需要对违反他们的移动设备使用策略的用户控制并实现补救行动。
当在现场的用户经历他们的移动设备的问题或可受益于信息、数据、软件或关于如何使用设备执行某些操作的指导时,企业的IT支持提供高度有效的帮助可能很难。因此,也存在对与企业相关的移动设备的提高的安全管理和技术支持的需要。
在本申请中描述的实施方式处理这些和其它涉及的事。本申请公开了用于自动和半自动地管理访问企业计算机网络例如访问企业的计算机实现的资源的移动计算设备的计算机***和方法。如在本文使用的,“企业”可包括实质上任何类型的组织,没有限制地包括工商企业、合伙企业、公司等。“移动计算设备”可包括各种各样的设备中的任一种,没有限制地例如是移动电话、智能电话、个人数字助理、平板计算机、手持计算设备等。由所公开的***管理的移动设备可例如包括运行AndroidTM、IOS或 Windows Mobile操作***(或其某个子集)的移动设备或由运行 AndroidTM、IOS或Windows Mobile操作***(或其某个子集)的移动设备组成。然而如将认识到的,本文公开的体系结构可与其它移动设备操作***——例如可在未来发展的操作***——一起使用。
使用移动计算设备来访问企业计算机网络的个人、实体或用户组在本文被称为“用户”。用户可包括企业的成员,例如雇员、合伙人、高级职员等。可选地,用户可包括不是企业的成员但然而有访问企业计算机网络的需要或原因的个人或实体。例如,用户可以是企业消费者、供应商等。
“企业资源”可包括与企业相关的机器可访问资源。企业资源可包括各种各样不同类型的资源中的任一种,包括帮助用户或使用户能够履行用户的角色或与企业相关的职责的资源。例如,企业资源可包括存储在非临时计算机可读存储器上的原始数据、存储在非临时计算机可读存储器(例如物理服务器)上的文档、计算机硬件(例如物理服务器)、存储在非临时计算机可读存储器上的软件应用、存储在非临时计算机可读存储器上的软件应用的宏(例如字处理器宏)、电子邮件***、工作空间、消费者关系管理(CRM)***、文档管理***、企业资源规划(ERP)***、记账***、库存***、工程设计工具、表格、样式表和很多其它资源。企业资源可配置成由在移动计算设备上安装和运行的软件应用访问和使用。
图1A是与企业相关的计算机***110以及一个或多个用户115和与企业相关的移动计算设备120的实施方式的示意图。在这个例子中,每个移动设备120被分配给一个企业用户115,但可选方案是可能的(例如,多个用户115被分配到一个设备和/或单个用户被分配到多个设备120)。移动设备120优选地配置成通过通信网络125与企业***110(在本文也被称为“企业网络”)通信。通信网络125可包括无线载波网络、互联网、广域网、WIFI网络等。因此,网络125可包括例如一个或多个无线网络、一个或多个有线网络或有线和无线网络的组合。此外,企业***110可配置成由非移动计算设备例如桌上型计算机访问。
企业***110优选地包括外部防火墙122和内部防火墙124。每个防火墙122、124可包括设计成基于某个标准来允许或拒绝网络传输的设备或设备组。防火墙122和124可包括存储在非临时计算机可读存储器上的软件、硬件、固件或其组合。防火墙122和124可配置成执行基本路由功能。本发明的实施方式可与防火墙122和124中的一个或两个或企业***110的其它设备一起协作以基于一组网关规则来过滤移动设备的访问请求,以便保护企业***110免受未授权的访问,同时允许合法通信通过。如下面更详细描述的,这样的访问规则可用于基于例如移动设备特性、用户特性、特定的企业资源130(对其的访问被请求)或其任何组合来管制访问。
在两个所示出的防火墙122和124之间的物理或逻辑子网络可被称为“非军事区(DMZ)”或可选地被称为“周边网络”。一般,DMZ包含企业的外部服务并将企业的外部服务暴露于较大的不可信赖的网络,通常是互联网。通常,DMZ的目的是将额外的安全层添加到企业的局域网 (LAN);外部攻击者只访问在DMZ中的设备,而不是企业网络的任何其它部分。
所示企业***110包括移动设备管理***126、安全移动网关128和“元应用”150,其中每个在下面被更详细描述。企业***110还包括逻辑地位于内部防火墙124后面的企业资源130,其被示为资源1到N。至少以下企业资源130可配置成由移动设备120例如由在移动设备上安装和运行的软件应用访问和/或使用。
仍然参考图1A,移动设备120可经由最终连接到载波网络的连接142 例如蜂窝网络连接和/或WIFI连接与载波网络125通信。移动设备的企业访问请求可经由连接146被发送到安全移动网关128,且网关128可经由内部连接154将请求发送到企业资源1802。此外,企业***110可使用连接142、146来将信息发送回到移动设备120,例如对设备的企业访问请求做出响应的数据。
在一些实施方式中,在移动设备120上的软件应用可通过应用隧道经由连接142、144和152与企业资源130通信。下面更详细描述应用隧道。在所示实施方式中,移动设备管理***126充当在移动设备120(和一般在移动设备上运行的特定应用)和企业资源130之间的应用隧道内的“隧道中介”。
图1B和1C示出类似于图1A的实施方式,除了移动设备管理***126 和元应用150分别被装入(完全或至少部分地)云计算***或环境156 (“云”)中以外。(在这两种方法的混合中,移动设备管理***126和元应用150都存在于云中。)云计算***一般包括配置成实现在网络例如互联网上的服务的计算资源。例如,云计算***可包括多个分布式计算资源,例如物理服务器或其它计算设备。使用云计算***,计算资源可位于经由网络可访问的任何适当的位置处。云计算***可存储并处理通过网络接收的数据,同时从远程位置可访问。一般,云计算***由向企业和基于云的计算***的其他用户收取使用***的使用费的服务提供者操作。在某些实施方式中,移动设备管理***126和元应用150都至少部分地位于云156中。在图1B的实施方式中,基于云的设备管理***126可配置成经由连接158向安全移动网关128提供网关规则,如下面更详细描述的。此外,在移动设备120上的软件应用可通过应用隧道经由连接142、160和162 与企业资源130通信,移动设备管理***126充当隧道中介。在图1C的实施方式中,位于云156中的元应用部分151可配置成经由连接164向安全移动网关128提供网关规则,如下面更详细描述的。元应用151(或其规则引擎)可以可选地合并到移动设备管理***126中,在这种情况下它可协调移动设备管理***126的管理。
图1D是类似于图1A的实施方式,安全移动网关128在防火墙122 中实现。在图1D的实施方式中,可在威胁管理网关(TMG)服务器中实现安全移动网关128。如在图1D中所示的,可在没有内部防火墙124的情况下实现企业***110的一些实施方式。
图1E是类似于图1A的实施方式,安全移动网关128在企业资源130 中实现。在图1E的实施方式中,可在互联网信息服务(IIS)服务器中实现安全移动网关128。这样的IIS可被配置为企业资源130和/或内部防火墙124。
将理解,可在适当时使用本文描述的任何原理和优点实现任何企业***110。而且,也将理解,仅为了例证性目的来提供在图1A-1E中示出的企业***,且可根据本文所述的原理和优点实现其它适当的***。
图2是图1A的移动设备管理***126的实施方式的示意图。移动设备管理***126可包括一个或多个计算机、计算机服务器、存储设备和其它部件的***。如下面更详细解释的,移动设备管理***126可配置成管理或共同管理“移动设备规则”214对移动计算设备120的应用,和/或在移动设备120和企业资源130之间在其间的应用隧道的使用期间充当“隧道中介”。移动设备管理***126也可配置成例如在这样的应用隧道的使用期间管制移动设备对企业***110的访问。下面描述***126的所示部件。
图3A是移动计算设备120的实施方式的示意图。移动设备120可包括移动设备的多个普通或标准部件,例如电源301、处理器302、用户接口304、硬盘驱动存储器306、存储卡(例如安全数字(SD)卡)端口307、随机存取存储器308、网络接口310、用户识别模块(SIM)卡端口312、摄像机314和/或GPS芯片316。这些部件的实现和使用通常是公知的,且没有在本文被相当详细地讨论。电源301可包括电池端口、电池和/或用于从外部源接收电功率的端口(例如标准电源插座)。处理器302可配置成执行软件应用和各种其它可执行部件。用户接口304可包括各种已知的部件中的任一个,例如用于接收文本输入的袖珍键盘324(例如一组物理按钮或可选地,触摸屏袖珍键盘)、用于显示文本、图像和/或视频的屏幕或显示器326(其可以是触摸屏)、用于产生听得见的输出的扬声器328或音频输出端口和/或用于接收听得见的输入的麦克风330。硬盘驱动器306 可包括各种不同类型的非易失性和/或非临时计算机可读存储器中的任一个。存储卡端口307配置成接纳存储卡(例如SD卡),数据可存储在存储卡上。随机存取存储器308可用于存储在各种过程的运行期间使用的数据。网络接口310可用于通过网络(例如无线网络125,其可根据多个标准例如Wi-Fi、3G、4G等来操作)发送和接收数据。SIM卡端口312配置成接纳SIM卡,如在本领域中已知的。摄像机314可配置成捕获图像和/ 或视频。GPS芯片316可配置成处理GPS信号。移动设备120还可包括一个或多个已安装软件应用318。已安装软件应用318可例如存储在硬盘驱动器306上或非易失性固态存储器中。已安装应用可包括企业应用和个人应用。将认识到,代替或除了图3A所示的那些部件以外,移动设备120 还可包括任何其它计算机硬件部件,例如加速度计、收发机、电池充电器、 USB控制器、基带处理器、音频编码译码器等。
在所示实施方式中,移动设备120包括企业代理320,其优选地是软件应用或安装在移动设备上的其它可执行程序。企业代理320优选地与移动设备120的操作***分离。然而在一些实施方式中,企业代理320可以是移动设备的操作***的部件或部分地/完全嵌入移动设备120的操作***中。在下面更详细描述的各种实施方式中,企业代理320执行移动设备规则214并与企业***110协作来管制移动设备对企业***110、包括对企业资源130的访问。在一些实施方式中,企业***110可通过将文本消息(例如SMS)发送到移动设备120使用连接命令来提示企业代理320连接到***110(例如移动设备管理***126)。
企业代理320可安装到移动设备120上作为移动设备向移动设备管理***126登记的条件。企业可使用用于将企业代理320安装到与企业相关 (例如向企业登记)的移动设备120上的自动子***。例如,移动设备管理器202可配置成将企业代理320发送到移动设备120用于自动安装或由用户115手动安装。可选地,IT员工可将企业代理320手动地安装到移动设备120上,或最终用户可从市场上可买到的应用商店下载并安装企业代理320。可为不同的移动设备类型、平台、操作***等提供不同类型的企业代理320。移动设备管理器202或企业***110的另一软件部件可配置成基于移动设备120的这样的特性(例如图2的移动设备特性208)来为每个给定移动设备120选择适当的企业代理320。
企业代理和安装在移动设备上的其它***件
企业代理320可实现各种安全相关特征,包括控制移动设备对企业资源130的访问(或使移动设备对企业资源130的访问的控制变得可能)的特征。例如,安装在给定移动设备120上的企业代理320可执行(即指示或使移动设备120执行)下列任务中的一些或全部:(1)维持与企业***110的数据连接,该连接可用于应用隧道以及不涉及应用隧道的通信二者;(2)提供对公共或专用企业应用商店的访问,用户可从该公共或专用企业应用商店下载由特定的企业同意并为特定的企业配置的企业应用;(3)创建用于使安装在移动设备上的企业应用能够安全地访问某些企业资源的应用隧道;(4)收集关于移动设备的特性和配置例如其制造商、型号、操作***、屏幕尺寸、存储器尺寸、存储器可用性、GPS坐标以及哪些个人和企业移动应用被安装在设备上的“库存”数据并将这些数据传输到移动设备管理***126;(5)实现登录或当例如用户启动企业移动应用时请求并验证用户的认证信息(例如密码)的其它认证服务;(6)对从安全移动网关128接收的加密消息附件例如从用户的企业的其他成员接收的电子邮件消息的加密附件解密;(7)维持由企业应用可访问的安全密钥储存器用于得到用于对数据加密和解密的密钥;(8)检查安装在移动设备上的被记入黑名单的移动应用并向移动设备管理***报告任何这样的应用;(9)当满足某些条件时,例如当在移动设备上检测到被记入黑名单的移动应用或将设备报告为被盗时,执行预防行动,例如删除用于对消息附件解密的解密密钥;(10)结束任何记入黑名单的应用或被确定为造成安全风险的其它移动应用(终止任何记入黑名单的应用或被确定为造成安全风险的其它移动应用的执行);(11)提供用于将设备上的企业应用和数据与个人应用和数据保持分离的一个或多个额外的服务;以及 (12)当例如用户中断与企业的雇用时,从设备抹掉所有企业应用和数据(响应于从移动设备管理***接收的命令)。如下面描述的,在与企业代理320不同的单独移动应用或部件中可以可选地实现这些功能中的一些。
企业代理320使用标准操作***API和机制和/或使用其自己的API 和机制来收集关于移动设备的配置的信息。例如,在Android操作***的实现中,企业代理可查询封装管理器以得到安装在设备上的应用的列表。企业代理可类似地查询操作***以得到当前正运行的移动应用的列表,并可监控广播消息以识别被安装的新应用。由企业代理通过这个过程收集的设备配置信息可被报告给移动设备管理***126,其可使用该信息来产生由安全移动网关128应用以控制移动设备对企业资源130的访问的规则。企业代理320本身也可使用所收集的设备配置信息来采取各种预防行动,例如结束被记入黑名单的移动应用,如上面提到的。
在一个实施方式中,企业代理320是可从应用商店下载并安装在移动设备120上的移动应用(或的部分)。一旦企业代理被安装和启动,最终用户就提供配置信息,例如公司电子邮件地址和电子邮件密码,用于使代理能够与特定的企业***110通信。一旦被配置,代理320就提供对安全应用商店的用户访问,用户可从安全应用商店下载并安装由用户的企业同意且在一些情况下为用户的企业特别配置的企业移动应用。用于下载并安装企业移动应用的功能可以可选地嵌入结合企业代理来运行的单独“安全启动器”移动应用内。
图3B示出可使用企业代理320或作为企业代理320的部分在移动设备120上安装或实现的一些可执行安全相关部件350。如将认识到的,这些部件350中的一些可在没有其它部件的情况下被安装,且所示部件可以用各种方式组合。一个部件是存储一个或多个加密密钥的密钥储存器 350A。在一个实施方式中,密钥储存器由企业代理320实现并管理,企业代理320能够使企业应用访问密钥储存器以得到加密密钥。给定的企业应用可例如使用加密密钥来对文件和存储到存储器348的其它数据加密。
进一步参考图3B,安全启动器350B也可安装在移动设备120上用于启动企业应用。安全启动器可以是企业代理320的部分,或可以是单独的移动应用。安全启动器350B可实现或实施各种安全策略,例如当企业应用被启动时要求用户输入有效的密码。由安全启动器350B实现的用户接口的一个实施方式在图1F和1G中示出并在下面被描述。如下所述,企业应用可被修改或编写以使用安全启动器而不是包括在移动设备的操作***中的通用启动器。在一个实施方式中,安全启动器也包括用于响应于阈值数量的连续无效密码输入尝试或响应于来自企业的IT部门的远程发出的命令而从移动设备120抹掉所有企业应用和数据的功能。
如在图3B中进一步示出的,在一些实施方式中安全虚拟机350C可安装在移动设备120上以创建或提高用于运行一些或所有企业应用的安全执行环境。这个安全虚拟机(VM)补充移动操作***的默认VM并可与移动操作***的默认VM同时运行。例如,一个或多个企业移动应用可在安全VM内运行,而所有其它移动应用——包括所有个人移动应用——在操作***的默认VM中在同一设备上运行。如下面在标题“安全虚拟机”下描述的,安全VM 350C实现没有在移动操作***的默认VM中实现(或不适当地为企业应用实现)的各种策略和测量(例如安全、管理、存储、联网和/或过程执行策略)。例如,安全VM可能能够建立用于访问企业***的应用隧道,并可通过相应的应用隧道从企业应用按规定路线发送请求。安全VM也可防止企业应用运行,除非和直到用户输入有效密码或以其他方式成功地认证为止。安全VM可与安全VM所使用的一组代码库而不是操作***的相应代码库一起安装在移动设备上。
使用安全VM 350C的一个益处是,它减少或消除了对被特别编写或修改用于与企业***110一起使用的移动应用的需要。例如,企业可能希望使特定的市场上可买到的移动应用可供其雇员采用来访问公司资源,但可能没有修改该应用以实现本文描述的各种安全特征(例如认证、安全存储和安全联网)的许可。在这样的情形下,企业可配置移动应用或移动设备以使这个特定的应用在被执行时只在安全VM内运行。
安全VM优选地被实现为单独的移动应用,但可以可选地是另一应用或部件(例如企业代理320或安全启动器350B)的部分。可以用各种方式调用安全VM:例如,安全代理可请求安全VM运行特定的应用,或应用可在被启动时请求或规定安全VM为它的执行环境。在一些实施方式中,安全启动器350B和安全VM 350C组合地被使用以创建用于运行企业应用的安全空间,虽然每个可独立于彼此被使用。下面在标题为“安全虚拟机”的章节中描述安全VM的额外细节。
如在图3B中进一步示出的,安全容器部件350D也可安装在移动设备 120上,优选地作为单独的移动应用或作为企业代理320的部分。这个部件350D负责在移动设备上为企业应用创建安全容器以存储文档和其它信息。下面在标题“安全文档容器”下描述这个特征的一个实施方式。在一些实施方式中,当选择性抹掉操作被执行时,存储在安全容器中的一些或所有文档和数据从移动设备删除或以其他方式变得不可访问。
图3B还示出可安装在移动设备120上的两种类型的移动应用318:企业应用318A和个人应用318B。如所示,企业应用318可包括用于实现一些或所有所公开的客户端侧功能(应用隧道、密码验证、数据的加密等) 的可执行安全代码360(代码库等)。这个安全代码360可经由特殊SDK 被添加,或可经由下面在标题为“修改预先存在的移动应用的行为”的章节中描述的应用包装过程在开发后被添加。如上面提到的,在一些情况下,给定的企业应用可以不包括任何安全代码360,但可替代地在安全VM 350C或安全浏览器内运行,安全VM350C或安全浏览器在企业应用上强加一层安全。
除了图3B所示的部件以外,一个或多个代码库可安装在移动设备上用于实现各种安全功能,例如数据加密和应用隧道的功能。作为一个例子,定制SSL库可被安装并代替操作***的SSL库来使用以创建安全应用隧道,如下面在标题为“应用隧道”的章节中描述的。
用于启动企业应用的用户接口
在图1F和1G中描绘的一个实施方式中,安全启动器350B在移动设备的屏幕的边缘处显示持久性显示要素170(图1F)。这个显示要素优选地在设备的所有主屏幕中且当用户在应用中时保持可见。如果用户在这个显示要素170上点击或将它滑动到左边,则显示可旋转的传送带或“轮”(图1G),其包括相应于安装在设备上的特定企业应用或企业应用的组(文件夹)的相应图标174。(在图1G和1F中示出的其它图标175一般相应于安装在设备上的个人移动应用和/或这样的应用的文件夹。)通过经由向上或向下滑动手势来旋转轮174,用户可使相应于额外的企业应用或文件夹的额外图标174显现出来。在应用图标174上点击使相关企业应用被启动,且在文件夹图标174上点击使存储在文件夹中的企业应用被显示。用户也可将轮172滑动到右边以使它返回到图1F所示的收缩位置。在所示实施方式中,企业应用可以只从轮(使用安全启动器)启动,且不能使用设备的操作***的通用启动器启动。
在一些实施方式中,当用户经由轮172启动企业应用时,用户被提示输入密码,且应用不被启动,除非正确的密码被输入。请求和验证密码的任务可例如由企业代理320(图3A)、由单独的安全启动器350B(图3B)、由安全虚拟机350C(图3B)或由经由SDK或应用包装过程添加到企业应用的代码360执行。下面进一步详细描述用于提供用于运行企业移动应用的安全执行环境的这些和其它技术。
在图1F所示的一个实施方式中,轮172被显示为使用户能够观看并选择落在轮“后面”的主屏幕图标175的透明或半透明覆盖层,使得用户可启动相应于这些图标175的个人应用。在另一实施方式中,轮是不透明的,且因此阻碍落在它后面的任何图标175的视界。在又一实施方式中,当轮“被拉出”或被拉出到特定的点之外时,主屏幕图标175消失。
安全启动器的用户接口也可包括用于使用户能够例如将图标174布置在轮172上、控制轮的位置(例如,它从哪个屏幕边缘延伸)和控制轮被显示的广度的特征。用于拉出并缩回轮的可选择的要素170(图1F)优选地在设备的所有主屏幕中保持持久,使得企业应用可容易从这些屏幕中的任一个被访问。
移动设备管理***的概述
参考图1A和2,移动设备管理***126的实施方式配置成创建、编辑并提供网关规则到安全移动网关128,如下面详细讨论的。移动设备管理***126也可充当在移动设备120和企业资源130或在企业***110内或甚至之外的其它网络资源之间的应用隧道的隧道中介。现在描述所示移动设备管理***126的部件。
所示移动设备管理***126包括移动设备管理器部件202(图2),其优选地包括在一个或多个物理机上运行的软件应用。移动设备管理器202 可配置成预备并维持移动设备120向企业的登记。优选地,移动设备管理器202配置成操纵或参与与企业相关的移动设备120的预备和退役。
在图2的所示实施方式中,移动设备管理***126包括存储在计算机可读或机器可读存储器中的移动设备信息或属性204。移动设备信息204 优选地包括向移动设备管理器202登记的移动设备120的特性或属性208,例如设备类型或平台(例如iPhoneTM、AndroidTM、Windows MobileTM等的平台)、设备型号、操作***版本、设备能力和特征、已安装应用的标识符等。在某些实施方式中,移动设备特性208是永久的特性(例如设备类型、平台)。在一些实施方式中,移动设备特性208也可以是受到有规律或周期性变化的特性(例如软件或操作***版本、哪些移动应用被安装等)。如上面提到的,给定移动设备的各种特性可由安装在移动设备120 上的企业代理320确定并报告给移动设备管理***126。设备特性信息也可由***管理员提供。
移动设备信息204也可包括识别哪些用户115或用户帐户被分配到所登记的移动设备120的用户-设备分配记录210以及在企业内的用户115的角色206。用户的角色206一般使用户115与用户所参与的企业相关职责或活动相关。角色206可具有名称和可选地具有相关规定。角色206(和角色名称)可模仿企业的部门和职务等级结构。例如,企业可规定具有名称例如上层管理、高级职员、销售部门、会计、工程设计、字处理、人力资源等的角色。在这个方案中,销售人员可被给与角色“销售部门”,工程师可被给与角色“工程设计”,依此类推。此外,角色206可被规定为广泛或狭窄地规定为可适合企业的需要。例如,企业可给与它的所有工程师“工程设计”角色。可选地或此外,企业可能希望规定较窄的角色,例如“计算机工程师”、“材料工程师”、“半导体处理工程师”等,特别是如果企业希望区分开其不同类型的工程设计员工的移动设备授权。此外,用户115可根据与企业相关的用户职责或活动被分配到多个角色206。在某些实施方式中,企业可使用RBAC(基于角色的访问控制)***来帮助管制企业资源130,且用户角色206可与在RBAC***中规定的角色有关或相同。
移动设备120的企业代理320可配置成周期性地和/或每当移动设备 120连接到移动设备管理***126时(例如当应用隧道形成时)将设备相关数据发送到移动设备管理***126。例如,企业代理320可发送涉及安装在移动设备120上的软件应用、软件升级、***信息等的数据,如上所述。在一个实施方式中,代理320通过被用于应用隧道的相同的连接发送这样的设备特性信息,但不使用应用隧道。
继续参考图1A和2,移动设备管理***126可包括存储在计算机存储器中的一个或多个企业访问策略218。访问策略218优选地规定移动设备对企业资源130的访问将被允许或拒绝时的条件。在一些实施方式中,单个访问策略218可适用于不同品牌、型号、操作***或其任何组合的移动设备120。策略218可取决于用户角色206、移动设备特性208、被请求由移动设备120访问的特定的企业资源130或其任何组合。移动设备管理***126可使用访问策略218来处理直接由移动设备管理***126接收的移动设备访问请求,包括经由安全应用隧道接收的请求。此外,如下所述,安全移动网关128可以利用访问策略218以允许或拒绝直接由安全移动网关128接收的移动设备访问请求。
如图2所示,移动设备管理***126可包括用于编辑在移动设备120 上可执行的脚本的脚本编辑工具220,如下所述。移动设备管理***126 也可包括用于编辑移动设备规则214和补救行动216的工具221,如下所述。
移动设备管理***126可包括用于创建、编辑和/或发送网关规则到安全移动网关128的网关规则发生器222,如下所述。这些工具220、221可例如由IT管理员使用来实现各种安全相关特征和策略,如下所述。
移动设备管理***126可包括用于介导在移动设备120上运行的软件应用和另一资源例如企业资源130之间的应用隧道的隧道中介模块224,如下所述。隧道中介模块224也可配置成基于访问策略218和信息204来允许或拒绝访问请求。
移动设备管理***126也可包括用于执行由元应用150和/或151提供的补救行动的补救代理226,如下所述。补救代理226可基于例如由规则规定的条件来执行各种类型的补救行动,如通常在Qureshi‘526中描述的。
进一步参考图2,可在适当的计算机硬件上例如在一个或多个物理服务器或其它计算设备上运行的可执行程序代码模块中实现移动设备管理***126的上述功能部件202、224、220、221、222、226。这些部件可例如在单个物理服务器或其它机器上运行,或可分布在网络上的多个机器当中。在一些实施方式中,可以可选地在固件中或在专用硬件(ASIC、FPGA 等)中实现这些部件中的一些或全部。可使用数据库、平面文件和/或其它类型的数据存储布置在任何适当类型的计算机存储器(例如硬盘驱动器、固态存储器阵列、光学存储设备等)中实现移动设备管理***126的各种数据或数据存储部件210、212、218、228。
例如,企业可能希望使用多个移动设备管理***126。具有多个办公室的企业可为单独的办公室使用单独的***126。这可能是有用的,如果企业具有位于不同的地理区域中的办公室。例如,具有在英国、日本和美国的办公室的大企业可使用位于那些办公室位置内或附近的三个不同的移动设备管理***126。在这样的实施方式中,每个移动设备管理***126 可负责管理在不同的地理区域中的移动设备120,其中这样的移动设备管理可包括将规则包发送到移动设备120(如下所述)和/或管制对企业资源 130的访问。在这样的实施方式中,安全移动网关128优选地配置成为了本文所述的目的而与每个移动设备管理***126通信。在一些实现中,提供可用于观察与给定企业相关的各种***126的控制台。
管制移动设备对企业***的访问的安全移动网关的使用
参考图1A,企业可能希望管制它的移动设备用户115如何经由移动设备120访问企业资源130。任何给定的企业用户115一般只需要通常基于用户在企业内的职责或角色来访问企业资源130的子集。因此,因为不需要给用户115提供移动设备对很多资源130的访问,这么做可使企业暴露于不必要的安全风险。例如,企业可能希望防止很多用户115使用他们的移动设备120来访问企业的高度敏感、机密的信息,特别是如果用户不需要访问这样的信息来执行他们的与企业有关或相关的职责。这可防止例如心怀不满的雇员通过访问和也许散布敏感的企业相关信息来伤害企业。此外,安装在移动设备120上的应用和文件可具有可被转移到企业的计算机***110或可上传或盗窃敏感信息的恶意软件或病毒。限制移动设备对特定的企业资源130的访问可防止恶意软件和病毒感染其它企业资源130。如下面讨论的,移动设备管理***126和安全移动网关128优选地通过使企业能够限制移动设备只对经授权的企业资源130的访问以基于用户特性、移动设备特性和/或企业资源130(移动设备对企业资源130的访问被请求)可定制的方式来处理这些问题。
在移动设备的激增和期望使用移动设备的现有应用的情况下,存在在网络级采取行动来提供对企业资源的受控访问的需要。而且,因为企业实现BYOD(携带自己的设备)或BYOT(携带自己的技术)策略,存在对灵活性的需要,同时处理保护企业资源和敏感的企业数据的日益复杂的任务。这样的灵活性可包括允许多个不同的移动设备和/或在这样的移动设备上运行的应用访问企业资源,同时提供对企业资源的这样的访问的期望级别的控制。作为一个例子,允许具有各种不同的电子邮件客户端的移动设备120访问企业资源并使企业能够实现某些保护例如在企业可配置的某些情况下拒绝一些访问请求和/或基于企业策略对提供到移动设备的电子邮件客户端的数据的至少一部分加密同时允许各种电子邮件客户端访问企业数据可能是合乎需要的。允许各种现有的移动应用访问企业资源可消除对开发专用应用和/或修改现有的应用的需要,以便访问企业资源。同时,实现对企业数据的访问的期望级别的控制可允许企业在保护企业数据和使用户能够在移动设备120上访问企业数据之间达到平衡。
安全移动网关128可帮助灵活地保护移动设备120所访问的敏感企业数据。安全移动网关128可监控并记录在一个或多个企业资源130和移动设备120之间的业务。安全移动网关128可应用规则以实现应用于选定移动设备120的企业策略。基于特定的协议,安全移动网关128可采取行动来实现如应用于请求访问企业资源130的选定移动设备120的企业策略。因此,在与企业计算***110通信的移动设备120的上下文中,安全移动网关128可采取与协议和某些条件相关的行动以提供对企业资源130的访问。将理解,安全移动网关128可控制与任何适当的协议例如本文描述的协议相关的业务。本文描述的策略、规则和补救行动的任何组合可由安全移动网关128实现。而且,安全移动网关128可根据本文描述的原理和优点实现各种其它策略、规则、补救行动或其任何组合。
安全移动网关128可包括起协议分析器和规则补救器的作用的网关过滤器。网关过滤器可检测与企业业务相关的规定协议,例如ActiveSync或 HTTP。网关过滤器可实现对特定协议和一个或多个条件采取某些行动的网关规则。例如,当来自移动设备120的访问企业资源130的请求是 ActiveSync请求时,网关过滤器可实现ActiveSync协议所特有的规则。在这个例子中,条件可以是,移动设备120与可能接收敏感企业信息的企业的执行部门相关。网关过滤器可接着在将数据发送给主管人员的移动设备之前采取对附件数据加密的行动。在另一例子中,网关过滤器可能由于移动设备120具有在其上安装的某个应用而拒绝移动设备120访问企业资源 130的请求。
图4示意性示出图1A的安全移动网关128的实施方式的体系结构和操作。安全移动网关128可在计算***中的任何接合点处实现或控制计算***中的任何接合点,协议业务通过该接合点来流动。例如,安全移动网关128可在防火墙、企业服务器(例如应用服务器)中或在防火墙和企业服务器之间实现。作为另一例子,虚拟安全移动网关128可与企业服务器 (例如经由PowerShell接口)通信以实现对来自移动设备的请求的企业访问策略。安全移动网关128可被实现为企业网络的防火墙服务器400例如图1A的防火墙122的插件。例如,由Microsoft CorporationTM出售的大部分防火墙产品运行互联网信息服务(IIS),其为处理web服务器请求的服务。IIS具有允许网关128的实施方式被***防火墙产品中的插件体系结构。IIS的一个特定API是互联网服务器应用编程接口(ISAPI)。安全移动网关128的实施方式可与各种防火墙技术例如微软前沿威胁管理网关 (TMG)、微软前沿统一访问网关(UAG)、微软前沿身份管理器2010 (FIM 2010)、微软ISA 2006、Barracuda防火墙、Sonic防火墙、Cisco 防火墙等集成在一起。当安全移动网关128与某些防火墙例如TMG集成在一起时,安全移动网关128可由一个或多个企业资源130(图1E)或配置成控制一个或多个企业资源130的至少一个设备实现。在某些实施方式中,例如对于不使用***防火墙122(图1A)的企业,安全移动网关128 可与企业的内部服务器例如支持ActiveSync的客户端访问服务器(“CAS 服务器”)集成在一起。在一些其它实施方式中,安全移动网关128可由配置成与防火墙服务器通信的至少一个计算设备实现。以这种方式,安全移动网关128可在防火墙服务器不被修改的情况下通过防火墙控制一些或所有业务。这可使企业能够结合未修改的第三方防火墙来实现安全移动网关128。
虽然图1A-1E的安全移动网关128为了例证性目的被示为控制与单个企业***110有关的业务,将理解,一个安全移动网关128可被实现以操纵与两个或多个不同的企业***110——包括不同的公司或其它企业的***110——相关的请求。当操纵与多个不同的企业计算机***110相关的请求时,安全移动网关128可为每个不同的企业计算***110实现不同的规则。例如,可为几个不同的企业电子邮件***实现一个安全移动网关 128,每个电子邮件***具有不同的电子邮件策略。在这些实施方式的一些中,安全移动网关128可与不同公司的企业计算***110的不同移动设备管理***126通信。
在图4中所示的安全移动网关128包括可配置成接收并处理来自移动设备120的企业访问请求402的网关过滤器401,每个请求根据由安全移动网关128支持的协议来格式化。网关过滤器401可嵌入防火墙服务器400 内。在一些其它实现中,网关过滤器401可被实现来通过单独的防火墙服务器控制业务。网关过滤器401可配置成允许访问请求402到达企业资源 130或拒绝请求402。网关128可配置成支持一个或多个不同的请求协议,例如ActiveSync请求、SharePoint请求、EWS请求、SAP请求和/或与各种其它web服务器应用相关的请求。在一个实施方式中,在图4中的块401、 404、406、410和412代表可被添加(例如作为防火墙插件的部分)到市场上可买到的防火墙或防火墙服务器400以实现安全移动网关128的部件。
举配置成处理ActiveSync请求以使企业***数据与移动设备120同步的安全移动网关128的情况作为例子。ActiveSync是由MicrosoftTM开发的公知的移动数据同步技术和协议。通常被称为Exchange ActiveSync(或 EAS)的ActiveSync的一个实现提供联系人、日历、任务和在启用 ActiveSync的服务器与移动设备之间的电子邮件的推送同步。网关过滤器 401可配置成拦截每个进入的请求402,确定它是否是ActiveSync请求,并查阅网关规则401的数据库来确定网关过滤器401是应允许或还是拒绝请求。请求可以是例如HTTP请求。网关规则401的数据库可以是存储在企业防火墙服务器400上的本地数据库。在被允许的ActiveSync请求402 的情况下,网关过滤器401可将请求发送到企业资源130,其可包括Microsoft Exchange服务器。
网关过滤器401可通过检查请求的头部和可能主体以检测ActiveSync 协议的标记来检测请求402是否是ActiveSync请求。每个ActiveSync命令一般包括由移动设备120发出的统一资源***(URL)。在URL之后,请求一般包括查询参数和ActiveSync命令。为了说明,考虑下面的 ActiveSync请求:
http://myDomain.com/Microsoft-Server-
ActiveSync?User=XXX&DeviceId=XXX&DeviceType=XXX&Cmd=Ping
安全移动网关128可得到来自URL的DeviceId和DeviceType、来自 HTTP头部的UserAgent参数、来自HTTP会话的已认证User参数以及C md参数。安全移动网关128可配置成基于这些特性中的一个或多个来过滤请求402。注意,ActiveSync协议也允许URL参数使用base64编码表示以可选的形式被编码。在上面的例子中,网关128可根据字符串“Microsoft-Server-ActiveSync”确定请求是ActiveSync请求。
网关规则404可包括根据由安全移动网关128支持的协议来格式化的移动设备请求402的特性的一个或多个值。这样的特性可包括URL参数、头部值、命令等。网关过滤器401可配置成至少部分地基于这些特性来过滤请求402。在ActiveSync的情况下,请求特性可包括DeviceID和 DeviceType(从请求URL获取)、User和UserAgent参数(从HTTP头部获取)以及一个或多个ActiveSync命令参数(ActiveSync规定很多不同的命令,例如使邮箱同步、发送邮件、得到附件等)。网关规则404可规定条件,在所述条件下,请求将被网关过滤器401允许或拒绝。这样的条件可涉及逻辑表达式和/或由安全移动网关128支持的协议的请求特性的一个或多个值的组合。例如,网关规则404可使网关过滤器401阻挡具有特定的一组值DeviceID中的任一个并发出得到附件命令(用于下载电子邮件附件)的所有ActiveSync请求。如这个例子示出的,网关规则404可识别一个或多个移动设备120和/或用户115。如这个例子也示出的,网关规则 404可基于移动设备120正通过向企业***110发出访问请求402来试图做或实现什么来允许或拒绝访问。通过安全移动网关128,安全移动网关 128的操作员可为特定的企业计算***110定制网关规则404。
在一些实施方式中,安全移动网关128可配置成检查访问企业资源130 的请求402的主体或“有效载荷”,以便检测在评估是否允许或拒绝请求时可能有用的额外信息。有效载荷可提供关于正被请求的特定数据、移动设备应用将如何使用所请求的数据等的信息。访问策略(例如设备管理***126的策略218)可被创建以基于这样的信息来管制或限制访问。例如,安全移动网关128可检查根据选定协议例如ActiveSync、SharePoint、SAP 或基于HTTP的那些协议来格式化的消息的有效载荷。安全移动网关也可修改这些消息中的协议元数据以实现各种安全相关特征。例如,如下面在标题“保护附件数据”下所述的,安全移动网关可配置成检查ActiveSync 或其它请求402的有效载荷以确定它们是否与包括附件(例如电子邮件附件)的消息相关;安全移动网关128也可对一些或所有识别出的附件加密以防止它们以未加密格式存储在相关的移动设备120上。
网关规则404可基于由移动设备管理***126提供的数据和/或由安全移动网关128的操作员提供的数据。移动设备管理***126可将高级别规则转换成相对简单(较低级别)的规则,并向安全移动网关128提供相对简单的规则用于应用于所监控的业务。安全移动网关也可实现由或基于来自元应用150和/或云156中的元应用部分151的推断引擎(例如图8的推断引擎824)的输入提供的规则。在一些实施方式中,可使用在Qureshi‘526 中描述的方法和部件(包括征兆逻辑)来产生规则。
网关规则404可采取很多不同的形式,并可以用各种编程语言例如 SML来编写。在一个实施方式中,网关规则404包括“组”的列表加上默认“行动”的指示(例如访问请求的允许或拒绝或是否对附件数据加密)。在这个上下文中,组是“组成员”的集合加上该组的相应行动。组成员可以是移动设备请求402的一个、一些或所有特性的值的集合。每个组成员可通过由安全移动网关128支持的请求协议的特性的任何值来匹配进入的移动设备访问请求402。网关过滤器401可通过使组成员的所有特性值与请求402的相应特性值匹配来使进入的请求402与组成员匹配。如果组成员不包括一个或多个可能的请求特性的任何值,则网关过滤器401对于那些特定的特性可确定它与请求的值是什么无关。换句话说,组成员可有效地规定一个或多个请求特性的“任何”或“无关”。因此,不同的组成员可相应于同一移动设备120或用户115。例如,对于支持ActiveSync的安全移动网关128,组成员可通过DeviceID、User、UserAgent和DeviceType 以及ActiveSync Cmd值的任何组合来匹配进入的HTTP请求402。
这里是网关规则404的一个例子:
<Policy id="Static+ZDM Rules:Block Mode"default-action="Deny"
missing-param-action="Allow">
<GroupRef id="StaticAllow"action="Allow"/>
<GroupRef id="StaticDeny"action="Deny"/>
<GroupRef id="ZdmDeny"action="Deny"/>
<GroupRef id="ZdmAllow"action="Allow"/>
这个网关规则将默认行动规定为对由安全移动网关128从移动设备 120接收的进入的访问请求的拒绝。这个网关规则也规定“StaticAllow”组——其行动是“允许”、“StaticDeny”组——其行动是“拒绝”、“ZdmDeny”组——其行动是“拒绝”和“ZdmAllow”组——其行动是“允许”。组和行动一起可以是子规则。StaticAllow和StaticDeny组及其相关行动是安全移动网关128本地的子规则的例子。这样的子规则可独立于移动设备管理***126由安全移动网关的操作员修改。ZdmDeny和ZdmAllow组及其相关行动是从移动设备管理***126接收的子规则的例子。可以按任何适当的顺序设定规则的优先级。在上面的例子中,StaticAllow和StaticDeny组及其相关行动优先于ZdmDeny和ZdmAllow组及其相关行动。以这种方式,安全移动网关128的操作员可否决由移动设备管理***126提供的子规则。
可使用或代替上面提供的上述示例子规则来实现来自各种源的多个其它子规则。网关规则404可以可选地或此外规定安全移动网关128对各种组采取的多个其它行动,例如对某些组的附件加密,修改某些组的消息(例如电子邮件)的主体,阻止来自某些组的移动设备120在某些位置上接收消息,等等。
为了实施上面提供的示例网关规则404,安全移动网关128可访问这四组的所有组成员。这里是可被提供到安全移动网关128(例如由如下所述的提供者408)的“组列表”的例子:
这个组列表规定包含组成员的列表的文件的位置,其中每个组成员由网关128所支持的协议的访问请求402的特性的一个或多个值可识别。对于ActiveSync协议,每个组成员可包括DeviceID、User、UserAgent、 DeviceType和Cmd参数的值。
当安全移动网关128接收到进入的移动设备请求402时,网关过滤器 401可读取请求402的特性的值并使它们与组列表的组成员的相应特性值匹配。如果存在匹配,则网关过滤器401可实施与组相关的行动。如果没有匹配,则网关128对在网关规则404中列出的下一组执行相同的分析。如果没有与网关规则404的任何组的匹配,则网关128实施默认行动。在网关规则404的组之间可能存在冲突的程度上,安全移动网关128可配置成将优先级给与较早出现在规则中的组。
仍然参考网关规则404的上述例子,在网关过滤器401读取请求特性的值之后,网关过滤器401读取StaticAllow组的组成员的特性值并确定它们中的任一个是否匹配请求402的任何特性值。例如,对于支持ActiveSync 的网关128,请求402的DeviceID可匹配组成员之一的DeviceID。如果存在这样的匹配,则网关过滤器401实施与StaticAllow组相关的行动,该行动是允许请求402通过防火墙。如果不存在与StaticAllow组的任何组成员的任何特性值的匹配,则网关过滤器401读取StaticDeny组的组成员的特性值并确定它们中的任一个是否匹配请求402的任何特性值。如果存在这样的匹配,则网关过滤器401实施与StaticDeny组相关的行动,该行动是拒绝请求402。如果不存在与StaticDeny组的任何组成员的任何特性值的匹配,则网关过滤器401读取ZdmDeny组的组成员的特性值并确定它们中的任一个是否匹配请求402的任何特性值。如果存在匹配,则网关过滤器401实施与ZdmDeny组相关的行动,该行动是拒绝请求402。如果不存在与ZdmDeny组的任何组成员的任何特性值的匹配,则网关过滤器401 读取ZdmAllow组的组成员的特性值并确定它们中的任一个是否匹配请求 402的任何特性值。如果存在匹配,则网关过滤器401实施与ZdmAllow 组相关的行动,该行动是允许请求402。如果不存在与ZdmAllow组的任何组成员的任何特性值的匹配,则网关过滤器401实施默认行动,该行动是拒绝请求402。
安全移动网关128可包括允许用户(例如管理员、IT员工等)观看、编辑和/或创建网关规则404并然后将它们保存在本地数据库中的网关配置服务406。配置服务406可配置成允许管理员设定“静态”网关规则404。静态网关规则可识别总是被允许访问或拒绝访问的移动设备120或设备 120的组。例如,管理员可输入规定由总是被允许访问企业网络110的企业的CEO使用的移动设备120(例如由ActiveSync DeviceId识别)的规则 404。作为另一例子,管理员可输入拒绝对被已知有恶意软件或与企业网络110的不兼容性的设备120的访问的网关规则404。配置服务406也可配置成允许用户调节网关128的各种其它设置和特征,包括本文描述的那些设置和特征中的任一个。
网关配置服务406可允许网关规则404被静态地规定。此外,安全移动网关128可配置成从一个或多个外部“提供者”408接收网关规则404。提供者408可以是由网关128授权来提供用于管制对企业网络110的访问的网关规则404的任何实体。网关128可具有允许企业的IT员工添加、移除并配置提供者408的开放体系结构。优选地,网关128支持任何数量的提供者408。移动设备管理***126可以是提供者408之一。另一提供者 408可以是管理一些或所有企业网络110例如在防火墙124(图1A)后面的“后端”子网络的元应用150。示例性元应用实施方式在Qureshi‘536 中被描述,且至少部分地基于云的元应用(其可以是提供者408)在下面参考图8被描述。
每个提供者408可配置成创建一个或多个网关规则404并将一个或多个网关规则404发送到网关128。提供者408可配置成查询其自己的信息数据库以创建规则404。与网关128比较,提供者408可具有关于允许或拒绝移动设备访问请求402的明显更多的数据,例如关于用户115和/或移动设备120的信息。例如,所示移动设备管理***126(图2)可包括网关规则发生器222,其配置成基于企业访问策略218和移动设备信息204 (包括移动设备特性208、用户-设备分配记录210和用户角色206)来创建并编辑网关规则404,并接着将规则404发送到网关128的网关配置服务406。访问策略218可包括规定移动设备120是否可访问企业网络或其特定资源130的高级别规则。网关规则发生器222可配置成读取访问策略 218并接着查询移动设备信息204以找到匹配访问策略218的标准的特定设备120或用户115。从所检测的设备和用户中,网关规则发生器222可产生实施策略218的设备或用户特定的网关规则404。移动设备管理*** 126可配置成发送用户115或设备120(例如以如上面讨论的“组成员”的形式)(其对企业的访问被允许或拒绝)的列表,并将那些列表发送到网关128。网关128可配置成使用列表来实施网关规则404。
例如,如果访问策略218要求安装有FacebookTM应用的所有AndroidTM移动设备120都被拒绝访问企业网络110,则网关规则发生器222可查询移动设备信息204以得到这样的设备120的列表。网关规则发生器222可创建指示网关过滤器401拒绝所列出的设备120进行访问的一个或多个网关规则404,并将所创建的规则发送到网关配置服务406。在支持ActiveSync协议的网关128的情况下,网关规则发生器222可例如产生安装有FacebookTM应用的AndroidTM移动设备120的ActiveSync DeviceID的列表,并接着创建指示对这样的设备的访问的拒绝的一个或多个网关规则 404。
如上述例子示出的,访问策略218可包括可转换成网关规则404的任何逻辑组合。在上述例子中的策略218代表两个条件的联合(AND运算符):(1)移动设备是AndroidTM设备,以及(2)设备具有安装在其上的FacebookTM应用。将理解,条件的逻辑组合可包括OR运算符、XOR运算符、NOR运算符、NAND运算符、THEN运算符、数学运算符(包括“小于”和“大于”)和任何其它适当的运算符。
除了至少部分地基于移动设备信息204来产生网关规则404以外,网关规则发生器222还可配置成至少部分地基于从元应用150接收的信息例如企业网络110和移动设备120的模型或所检测的“特征”、“问题”和“根本原因”(见元应用的下面的讨论)的本地存储的数据库来产生规则。在元应用150管理Microsoft ExchangeTM的实施方式中,从元应用150接收的信息可包括ActiveSync合伙关系数据。
如上面提到的,元应用150(图1A-1C)可以是安全移动网关128的网关规则404的直接提供者408。元应用150可基于与企业网络110、用户115、移动设备120或其任何组合相关的各种数据产生网关规则404。元应用150可访问网关规则404可基于的各种信息。例如,在它的管理任务的支持中,元应用150可配置成进行企业网络110和移动设备120的“发现”以创建并维持其可查询的模型。此外,元应用150可配置成预测或检测“特征”、“问题”和/或“根本原因”,这些术语在Qureshi‘536中被使用。可基于模型、所检测的特征、问题和根本原因及由元应用150检测或计算的其它信息来创建新网关规则404。下面更充分描述元应用150的实施方式的管理和网关控制能力。
所示网关配置服务406配置成从提供者408接收网关规则404,并将它们保存在规则404的本地存储器中。网关配置服务406可被实现为web 服务并可具有与网关128相关的所有提供者408的列表。网关配置服务406 可配置成周期性地(例如每24小时、一小时或几分钟等)向提供者408 查询可用的任何新网关规则404。在这个意义上,配置服务406充当网关 128的网关规则404的收集器。
保护附件数据
移动设备普遍用于检查电子邮件,包括与企业电子邮件帐户相关的电子邮件。一些电子邮件包括包含敏感数据的附件。当用户使用移动设备检查电子邮件时,这些附件常常存储在移动设备上。存储在移动设备上的附件数据可能以多种方式被损害。当附件数据被损害时,与企业相关的敏感数据可被暴露。因此,存在保护存储在移动设备上的与企业相关的附件数据的需要。这个需要可根据个人在相关组织中的地位或角色来改变;例如,保护由公司的主管人员接收的消息的附件的需要可大于保护由公司的IT 职员接收的附件的需要。此外,如果公司的企业支持其它消息发送协议 (SMS、MMS、即时消息、AS、EWS、OWA、专用消息发送协议等)的使用以发送文档,则这个需要可扩展到这样的协议。
某些实施方式的方面涉及保护存储在移动设备上的企业附件例如企业电子邮件附件免受损害。附件可包括例如Word文档、Excel文档、 PowerPoint演示、文本文件以及使用其它应用程序创建的文档和文件。根据本文描述的原理和优点,可在具有非专用电子邮件应用例如出现为预先安装在或稍后安装在iPhone或Android设备上的电子邮件应用的移动设备上保护附件数据。因此,可使用任何适当的电子邮件客户端来实现与保护附件数据有关的特征。企业附件可在存储在移动设备上之前被保护,使得被保护的附件数据保持安全,即使存储在移动设备上的数据被损害。附件数据可安全地存储在移动设备的通用文件***中。附件数据可被识别出并从电子邮件消息剥离。附件数据可被加密并然后作为加密附件数据被发送到移动设备。安全移动网关可配置成对附件数据加密并向移动设备提供加密附件数据。根据一些实施方式,也可连同加密附件数据发送加密附件密钥。可提供对被保护附件数据的安全的基于策略的访问。企业代理可对加密附件数据解密。例如,企业代理可对加密附件密钥解密并接着使用附件密钥来对编码附件数据解密。当移动设备被损害时,企业代理可配置成使得加密附件数据保持被加密。例如,企业代理可破坏附件密钥和/或使附件密钥无效。在没有设备密钥来对加密附件密钥解密的情况下,加密附件数据可保持被加密。当加密附件数据存储在可移动存储器例如安全数字(SD) 卡上时,附件数据可在可移动存储器从移动设备移除时保持安全,因为附件数据被加密。
在一个实施方式中,企业用户使用安装在他们的移动设备上的企业代理从他们的移动设备访问其企业电子邮件帐户。企业代理可对电子邮件客户端和企业电子邮件服务器透明地操作。企业代理可要求最终用户在访问用户的电子邮件之前和/或在打开加密附件之前登录。企业代理可向移动设备的平台注册。当用户打开加密附件时,企业代理可被调用。加密附件可由特定的文件后缀识别。在被调用之后,企业代理可对用户透明地对附件解密。
虽然为了例证性目的在本文主要在电子邮件附件的上下文中描述了***,将理解,本文描述的原理和优点可应用于可用于将附件从企业资源发送到移动设备的任何其它适当的通信协议。例如,保护电子邮件附件的特征的任何组合可应用于保护即时消息、文本消息(例如SMS)等的附件。将理解,在某些实施方式中,本文描述的附件数据的基于策略的加密可结合应用于附件数据的其它加密来实现。而且,虽然附件数据在本文被描述为为了例证性目的而被加密,将理解,本文描述的原理和优点可应用于保护移动设备上的附件数据的任何其它适当的方式,例如扰码等。此外,在本文参考附件数据描述的原理和优点可应用于保护一些或所有消息,例如电子邮件消息。
参考图1A-1C,可在本文描述的任何企业计算***和移动设备中保护附件数据。可在具有与安全移动网关128通信的移动设备120的任何***中保护附件数据,安全移动网关128与企业资源130例如企业电子邮件服务器通信。一般,移动设备120经由外部防火墙122(图1A-1C)与安全移动网关128通信。在某些实施方式中,安全移动网关128可由企业资源130实现。在一个实施方式中,如上面讨论的,安全移动网关128可部署在企业***110的外部防火墙122和内部防火墙124之间。移动设备120 和/或安全移动网关128可与移动设备管理***126通信。移动设备管理***126可配置成实现与用于例如对附件数据加密的加密密钥有关的功能,如下面更详细描述的。根据某些实施方式,安全移动网关128和/或移动设备120的代理可配置成对附件解密。
安全移动网关128可配置成检测在进入和/或外发的电子邮件消息中的附件。在一些实施方式中,安全移动网关128可检查和/或修改被传输到移动设备120和/或从移动设备120传输的数据有效载荷,例如ActiveSync 数据有效载荷。进入和/或外发的数据有效载荷可以以WBXML——对低带宽环境优化的XML的二进制版本。安全移动网关128可包括对数据有效载荷进行操作的解析器和发生器。例如,解析器和发生器可处理WBXML。在这个例子中,解析器和发生器可根据ActiveSync WBXML方案来处理数据。安全移动网关128可程序化地识别哪些字符编码方案被使用。WBXML 消息可包括MIME有效载荷。安全移动网关128可包括配置成构造和解构这个数据的MIME解析器和发生器。使用解析器和发生器,安全移动网关128可识别附件,使得附件可与电子邮件分离并被保护。
根据一个实施方式,为了拦截和/或修改进入和/或外发的数据有效载荷,安全移动网关128可向互联网服务器应用编程接口(ISAPI)或其它服务器注册以接收通知。所接收的通知可相应于各种处理阶段。安全移动网关128可维持上下文状态以跟踪请求的各种处理阶段。安全移动网关128 可将请求和响应数据组块和解块。
安全移动网关128可修改或以其他方式标记附件和/或对附件的引用。例如,安全移动网关128可将特定的后缀例如“.zendata”附加到加密附件的名称以预示它们应由企业代理320预先处理。作为另一例子,安全移动网关128可将特定的后缀例如“.zendata”附加到对附件的引用的名称以预示附件应在分发到移动设备120之前稍后被加密。可选地或除了将后缀附加到文件或链接以外,安全移动网关128还可调节头部属性(例如在MIME 数据中)以识别出附件数据也被加密。安全移动网关128可对附件数据和 /或附件密钥加密和/或解密。安全移动网关128可配置成发起与移动设备管理***126的通信以得到设备特性、设备策略、公共设备密钥等或其任何组合。
移动设备120的设备代理例如操作***和/或企业代理320(图3A)可配置成向企业***110注册移动设备120并操纵加密数据文件类型(例如“.zendata”、对附件数据解密并在解密的附件数据上调用适当的再现和/ 或处理。移动设备120的设备代理可配置成得到和/或管理私有设备密钥。
移动设备管理***126可产生设备密钥。移动设备管理***126可将设备密钥或其部分分配到移动设备120和/或安全移动网关128。适当的密钥可由安全移动网关128使用来对附件数据加密,且另一适当的密钥可由移动设备120使用来对加密附件数据解密。例如,移动设备120可从移动设备管理***126接收私有设备密钥,且安全移动网关128可从移动设备管理***126接收公共设备密钥。根据一些实施方式,安全移动网关128 不需要包括特殊密钥管理和/或密钥归档。当附件被加密且相应的设备密钥随后被破坏、无效和/或代替时,加密附件可以是不可恢复的。
涉及保护附件的多个不同的规则和/或策略可由企业***110实现。例如,可基于接收附件数据的特定移动设备120的一个或多个特性来实现涉及保护附件的特征。在本例中,安装有特定的软件应用的某些移动设备120 可默认地启用附件保护。作为另一例子,可基于接收附件数据的移动设备 120的用户的一个或多个特性来启用和/或禁用保护附件。例如,可能接收具有敏感和/或机密信息的附件的企业的雇员例如主管人员和/或律师团的成员可默认地使附件被加密。相反,不可能接收具有敏感和/或机密数据的附件的雇员可默认地使附件保护被禁用。作为又一例子,可基于附件本身的一个或多个特性例如文件名、文件类型、包括在附件中的数据或其任何组合来保护附件。例如,可搜索附件以找到一个或多个关键字和短语,例如“机密的”、“私有的”、“律师-客户特许的”等,且如果这样的关键字或短语被找到,则附件可被加密。将认识到,规则和/或策略可允许企业基于移动设备特性、用户特性、附件特性、类似特性或其任何组合以灵活的方式配置与保护附件有关的特征。与保护附件有关的任何规则和/或策略可结合本文描述的任何其它规则、本文描述的规则包、本文描述的策略、类似规则或其任何组合来实现。
而且,与保护附件有关的这些规则和/或策略中的任一个可由本文描述的任何适当的计算机硬件实现。例如,安全移动网关128可配置成全局地启用和/或禁用与保护附件例如加密附件有关的特征。安全移动网关128可从移动设备管理***126得到与保护附件有关的策略。移动设备管理*** 126可配置成管理与保护附件有关的任何选择策略,例如哪些移动设备120 接收加密附件和/或什么类型的附件被加密。
在一般使用情况情形中,移动设备120可根据ActiveSync协议从企业电子邮件服务器例如Exchange服务器接收具有附件的电子邮件。移动设备 120可取回加密电子邮件附件,使得保存在移动设备120上的附件数据使用设备特定密钥被保护。根据某些实施方式,可以只使用在移动设备120 上运行的企业代理320来对所保存的附件数据解密。例如,企业代理320 可控制并管理用于对附件数据解密的设备特定密钥。移动设备管理*** 126可选择并指定对于其附件将被加密的移动设备120和/或用户。例如,可基于一个或多个移动设备管理***126策略和/或一个或多个安全移动网关128策略来排除所选择的移动设备120接收加密附件。
从移动设备120转发和/或发送的加密附件可在被分发到新接收者之前由安全移动网关128解密。作为结果,在企业内的新接收者可基于它的策略来接收附件。当新接收者是具有企业代理320的移动设备120时,附件数据可为那个特定的接收者移动设备120被重新加密。当新接收者是未管理的邮件客户时,附件数据可被未加密地分发。
将参考图31描述涉及与经由安全移动网关128将具有附件的电子邮件从企业资源130分发到移动设备120有关的示例通信和事件。然后,将参考图32或33描述与通过安全移动网关128或企业资源130从移动设备120 转发和/或发送电子邮件有关的示例通信和事件。
图31示出一个过程的例子,具有加密附件的电子邮件可通过该过程分发到移动设备120。在这个过程中,安全移动网关128识别被分发到移动设备120的电子邮件的附件。安全移动网关128可在将附件传输到移动设备120之前对附件数据加密。当电子邮件消息被发送到移动设备120之前或响应于移动设备120的用户试图打开附件,附件数据可被加密并发送到移动设备120。安全移动网关128也可对与加密附件数据相关的附件密钥加密。在图31的事件A中,移动设备120例如通过ActiveSync协议将同步请求传输到安全移动网关128。然后安全移动网关128在事件B中将同步请求传输到企业资源130。企业资源130可以例如是企业电子邮件服务器,例如Microsoft Exchange服务器。在事件C中,企业资源130将同步响应发送到安全移动网关128。同步响应可包括将被分发到移动设备120 的电子邮件消息。
在图31的事件D中,安全移动网关128处理被发送到移动设备120 的电子邮件消息。这样的处理可包括确定电子邮件消息是否包括附件。例如,当企业电子邮件服务器在事件C中发送包括电子邮件消息的响应时,安全移动网关128可解析响应并程序化地识别附件。例如,可从WBXML 消息中的名称和服务器引用识别附件。作为另一例子,可通过在MIME消息中内联来识别附件。安全移动网关128可以用可检测的方式标记和/或修改附件。例如,安全移动网关128可将附件重命名。在一个实施方式中,后缀可附加到附件文件的名称。例如,具有“Foo.xyz”的原始名称可被重命名为“Foo.xyz.zendata”。
当附件例如在MIME消息中被内联或以其他方式以实质上完整的形式的电子邮件包括在一起时,附件也可在图31的事件D中被加密。任何适当的附件例如文档(例如Word文档、PDF文档等)可被加密。安全移动网关128也可对与附件相关的附件密钥加密。附件密钥可由安全移动网关 128产生和/或由安全移动网关128例如从移动设备管理***126接收,如参考图34更详细讨论的。加密附件密钥可与加密附件文件一起包括在新附件文件中。
来自企业电子邮件服务器的同步响应和/或如安全移动网关128所修改的另一企业响应130在图31的事件E中分发到移动设备120。在一些情况下,这可给移动设备120提供加密附件数据。例如,可将具有嵌入的加密附件的MIME消息提供到移动设备120。对于一些其它类型的消息,可向移动设备120提供具有可与随后的请求一起用于取回附件的重命名的附件引用的电子邮件。
对于具有附件引用的电子邮件例如WBXML电子邮件,取回附件的请求可在图31的事件F中从移动设备120发送。然后在事件G中,安全移动网关128可检测到附件引用已被标记和/或修改。例如,安全移动网关 128可程序化地识别该附件引用包括以前由安全移动网关128添加的特定后缀,例如在上面提供的例子中的“zendata”。安全移动网关128可接着将附件引用解除映射,使得企业电子邮件服务器和/或另一企业资源130可处理请求以提供附件。在一些实施方式中,这可涉及URL重写。在事件H 中,安全移动网关128向企业电子邮件服务器和/或另一企业资源130请求附件。然后企业电子邮件服务器在事件I中将附件分发到安全移动网关 128。安全移动网关在事件J中将附件加密。安全移动网关128也可将与附件相关的附件密钥加密。加密附件密钥可与加密附件数据一起包括在文件中和/或被单独地提供到移动设备120。然后在事件K中,安全移动网关 128将加密附件数据分发到移动设备128。
存储在移动设备120上的电子邮件消息和相关附件能够从移动设备 120转发到新接收者。图32和33示出从移动设备120转发电子邮件消息的过程的例子。在图32所示的例子中,安全移动网关128在传输将具有附件的电子邮件消息从移动设备120转发到企业资源130的请求时可以起通道的作用。图32所示的过程可在下列情况中实现:具有附件的电子邮件存储在企业电子邮件服务器上或企业电子邮件服务器以其他方式能够访问附件数据。例如,移动设备120可将识别附件的信息例如引用经由安全移动网关128发送到企业电子邮件服务器。在一些实施方式中,图32 的过程可被实现有智能转发特征,其中标记被***具有附件的所转发的电子邮件消息中。企业资源130(例如Exchange服务器或其它企业电子邮件服务器)可将附件***由智能转发特征发送到接收者的所转发的电子邮件消息中。以这种方式,移动设备120可转发电子邮件,而不将整个电子邮件消息和附件下载到移动设备120。
在图32的事件A中,移动设备120向安全移动网关128发送转发包括对附件的引用的电子邮件消息的请求。然后安全移动网关128在事件B 中将电子邮件消息简单地传递到企业资源130。企业电子邮件服务器可接着使用引用来识别存储在企业电子邮件服务器上的附件。当接收者是与企业相关的移动设备120时,电子邮件和附件可接着经由图31所示的过程被发送到接收者。在事件C中,企业资源130对安全移动网关128做出响应以确认消息已被发送。安全移动网关128在事件D中将响应传递到移动设备120。
在图33所示的例子中,当将转发具有附件的电子邮件消息的请求从移动设备120发送到企业资源130例如企业电子邮件服务器时,安全移动网关128对来自移动设备120的加密附件数据解密。图33所示的过程可在下列情况中实现:具有附件的电子邮件消息从移动设备120被传输。这样的过程可例如在移动设备120上实现,其中不支持(例如不支持智能转发的移动设备120)和/或禁用图32所示的过程。
在图33的事件A中,移动设备120将转发具有附件的电子邮件消息的请求发送到安全移动网关128。请求可包括加密的附件数据。安全移动网关128在事件B中检测以前加密的附件并对加密附件数据解密。例如,安全移动网关128可程序化地识别被标记和/或修改以指示它们被加密的附件,例如在上面提供的例子中有后缀“.zendata”。将参考图35描述可在事件B中执行的关于一些示例解密方法的更多细节。在事件C中,转发包括解密的附件数据的电子邮件消息的请求被传输到企业资源130。企业资源130在事件D中对安全移动网关128做出响应以确认消息已被发送。安全移动网关128在事件E中将响应传递到移动设备120。
为了对电子邮件消息加密,各种密钥可产生、被分发到其它设备、被加密、用于对加密附件数据解密、类似操作或其任何组合。虽然为了例证性目的可在本文关于执行特定的功能的某些计算设备描述电子邮件附件的加密,将理解,与对本文描述的附件加密和/或解密有关的任何特征可由任何适当的计算设备执行。例如,与被描述为由安全移动网关128和/或移动设备管理***126执行的加密/解密有关的一些功能或其子组合可由移动设备120执行。作为另一例子,与被描述为由安全移动网关128和/或移动设备管理***126执行的加密/解密有关的一些功能或其子组合可以可选地或此外由这两个计算***中的另一个执行。
在某些实施方式中,安全移动网关128可产生与附件有关的密钥,且移动设备管理***126可产生选定移动设备120的密钥。例如,安全移动网关128可产生对称安全移动网关密钥Smgkey并将这个密钥存储在适当的数据存储库中。例如当安全移动网关128被安装时和/或当软件安装在其上时,可产生对称安全移动网关密钥Smgkey。根据一些实施方式,移动设备管理***126可产生与选定移动设备120相关的非对称密钥DeviceKey。可选地或此外,移动设备管理***126可产生与一组移动设备120、企业的用户或类似物或其任何组合相关的非对称密钥。可代替非对称密钥 DeviceKey或结合非对称密钥DeviceKey来使用这样的非对称密钥。移动设备管理***126可将非对称密钥DeviceKey的私有密钥DeviceKeyPr分配到选定移动设备120。移动设备管理***126可将非对称密钥DeviceKey的公共密钥DeviceKeyPb分配到安全移动网关128。
图34是示出对附件加密的方法的实施方式的流程图。可例如在图31 的事件D中和/或事件J中执行图34所示的一些或所有方法。在块3410,产生附件密钥AttachmentKey。附件密钥AttachmentKey可以是对称密钥。附件密钥AttachmentKey可由安全移动网关128产生。
附件密钥AttachmentKey在块3420被加密。例如,安全移动网关128 可使用安全移动网关密钥Smgkey对附件密钥AttachmentKey加密。这为安全移动网关128产生加密安全移动网关附件密钥EncyptedSmgAttachmentK ey,其可例如由安全移动网关128使用来对加密附件数据解密,如关于图 35描述的。此外,安全移动网关128可使用公共密钥DeviceKeyPb对附件密钥AttachmentKey加密。这为移动设备120产生加密设备附件密钥EncryptedDeviceAttachmentKey,其可例如由移动设备120使用来对加密附件数据解密,如关于图35描述的。
在块3430,使用附件密钥AttachmentKey来对附件数据加密以产生加密附件数据。安全移动网关128在块3440用加密附件数据代替以前的附件数据。加密附件密钥EncyptedSmgAttachmentKey和EncryptedDeviceAtta chmentKey也可与加密附件数据包括在一起。例如,安全移动网关128可用加密附件数据、加密安全移动网关附件密钥EncyptedSmgAttachmentKey 和加密设备附件密钥EncryptedDeviceAttachmentKey代替附件数据。
加密附件数据可被解密,以便访问附件数据。在某些实施方式中,当访问在移动设备120上的加密附件数据时,用户可被提示以登录或以其他方式提供访问证书。为了维持加密附件数据的保护,与附件数据相关的加密的密钥可被提供到特定的计算设备。例如,如关于图34的块3420讨论的,安全移动网关128可对附件密钥AttachmentKey加密,特别用于与选定移动设备120和/或安全移动网关128一起使用。图35是示出对附件解密的方法的实施方式的流程图。当存储在移动设备上的加密附件数据由在移动设备120上的应用和/或在图33的事件B中被访问时,图34所示的一些或所有方法步骤可例如由移动设备120或安全移动网关128执行。
在块3510,计算设备接收加密附件。在某些实施方式中,计算设备也可连同加密附件数据接收加密附件密钥。根据这些实施方式中的一些,加密附件数据和加密附件密钥都可包括在同一文件中。加密附件密钥在块 3520被解密。然后在块3530,使用附件密钥来对附件数据解密。
图35所示的方法可例如由在移动设备120上的企业代理320执行。根据图31所示的过程,这可包括移动设备120接收例如加密附件和加密附件密钥。移动设备120的企业代理320可使用私有设备密钥DeviceKeyPr 对加密设备附件密钥EncryptedDeviceAttachmentKey解密。解密的设备附件密钥可以是附件密钥AttachmentKey。使用附件密钥AttachmentKey,移动设备120的企业代理320可对加密附件数据解密。这可给移动设备120 提供由企业资源130发送到移动设备120例如企业电子邮件服务器的原始附件数据。这样的数据可例如是明文数据。
图35所示的方法可例如在安全移动网关128上被执行。这可包括例如当移动设备120转发具有加密附件的电子邮件消息时安全移动网关128接收加密附件。安全移动网关128可使用安全移动网关密钥Smgkey对加密安全移动网关附件密钥EncryptedSmgAttachmentKey解密。解密的设备附件密钥可以是附件密钥AttachmentKey。使用附件密钥AttachmentKey,安全移动网关128可对加密附件数据解密。这可给安全移动网关128提供由企业资源130例如企业电子邮件服务器以前发送到移动设备120的原始附件数据。安全移动网关128可接着将附件数据转发到企业资源130。
为了支持公共设备密钥例如公共设备密钥DeviceKeyPb的分配和/或更新,可提供web服务接口或其它适当的接口。接口可使用户能够规定设备 /密钥对和/或用户/密钥对。接口可使用户例如IT员工成员或企业网络管理员能够通过例如添加新对、替换现有的对、移除对、类似操作或其任何组合来更新密钥对。接口可使用户能够将移动设备120映射到一组特性(例如名称/值对)。这样的特性可包括附件公共密钥、阻止附件、阻止选定附件类型、阻止联系人同步、阻止日历同步、客户证书ID、本文描述的任何其它特性、类似特性或其任何组合。
应用隧道
参考图1A-1G和3A-3B,隧道中介例如移动设备管理***126的隧道中介224可配置成接收由安装在移动设备120上的软件应用318产生的、对访问企业资源130(特别是包括软件应用的企业资源130)的访问请求,并产生在设备应用318和企业资源130之间的应用隧道。应用隧道是一种技术,其中一个网络协议(例如分发协议)封装不同的网络协议。通过使用隧道,可能例如提供穿过不可信网络的安全路径。
使用用于在移动设备应用318和企业资源130之间的通信的应用隧道的一个益处是,它可能限制移动设备对那些企业资源130的访问,移动设备120的用户115需要那些企业资源130来用于履行他或她的企业角色 206。使用应用隧道的另一潜在优点是,可为预先存在的应用在应用级处提供访问控制。在优选实施方式中,在OSI模型中的应用层处规定应用隧道。这与虚拟专用网(VPN)——广泛用于提供远程办公室或个人用户对其组织的网络的安全访问的一种方法——相反。VPN在开放***互连 (OSI)模型的网络层(或更低)处操作,并通常给用户提供对在企业的计算机网络内的所有资源的完全访问。使用VPN连接的明显问题是,不存在用于通过移动应用(和可能包含恶意软件的移动应用)限制对VPN 连接的访问的适当机制。相反,如下所述,每个应用隧道可能对单个相应的移动应用是排他的(只可用于由单个相应的移动应用使用)。通过限制只对特定用户115所需的企业资源130的访问,应用隧道的使用可促进企业网络安全性。
如下面更详细解释的,使用用于在移动设备120和企业***110之间的通信的应用隧道的额外益处是,它允许企业提高用户的连接体验(例如通过在网络连接失去的情况下缓存数据)、记录数据流并实现其它特征。
为了实现应用隧道,可提供隧道中介,隧道式通信可通过该隧道中介来流动。隧道中介是接收根据封装协议格式化的移动设备应用通信、使用协议从通信“取出”或提取数据并将取出或提取的数据发送到由移动设备应用请求或规定的网络资源的部件。隧道中介对于经由隧道中介由网络资源发送到移动设备应用的通信也实质上相同。隧道中介可包括安装在服务器上的软件应用。隧道中介可位于企业***110(例如移动设备管理*** 126的隧道中介224)内,或可选地在企业***110之外(例如在如图1B 中的云计算环境156中)。
根据下面描述的方法,隧道中介或企业代理320可使用隧道定义来构造应用隧道。图2所示的移动设备管理***126包括隧道定义的仓库228。隧道定义可包括实现在移动设备应用318和远程资源(例如企业资源130) 之间的应用隧道的信息。隧道定义可以是特定应用318或其类型特有的。类似地,隧道定义可以是特定远程资源或其类型特有的。隧道定义可识别移动设备120的特定端口或/或远程资源被安装于的计算机服务器的URL 或特定端口。因此,隧道定义可包括应用或服务器端口和将这样的端口映射到客户端端口以规定应用隧道的端点的信息。隧道定义还可包括隧道中介的URL,其可以是有用的,特别是在涉及多个隧道中介的实现中。多个应用隧道可映射到移动设备120的特定端口和/或远程资源被安装于的计算机服务器的URL或特定端口,且多个应用隧道可被复用,使得移动设备120的单个端口和/或远程资源被安装于的计算机服务器的URL或特定端口用于实现多个应用隧道。移动设备管理***126可配置成将隧道定义 228的至少部分发送(例如推送)到移动设备120。例如,隧道定义可与下面描述的“规则包”一起被发送。企业代理320可配置成将隧道定义在本地存储在移动设备120上,并使用隧道定义来产生应用隧道信息请求,如下所述。
隧道中介或相关***可包括用于观看、创建并编辑隧道定义的接口,例如web控制台。接口也可允许管理员或其他人观看与适合于经由应用隧道连接的移动设备120相关的数据。可从移动设备信息204(图2)的仓库得到至少一些数据。
很多移动设备软件应用318能够发出网络通信(也被称为“应用产生的通信”),包括对访问企业资源130并与企业资源130通信的请求。企业代理320可配置成拦截和/或接收这些通信,并将与它们中的至少一些重定向到与一个或多个隧道中介例如中介224相关的URL。隧道中介可将应用产生的通信重定向到所请求的企业资源130,从企业资源130接收应答通信,并将应答通信转发回到移动设备120。有利地,隧道中介可通过应用访问策略218以允许或拒绝访问并将访问限制到仅仅所请求的企业资源 130来添加一层企业安全。
在一个实施方式中,当拦截和/或接收到应用产生的通信用于访问企业资源130(或另一资源)时,企业代理320搜索存储在本地存储器中的应用隧道定义以取回与生成应用产生的通信的软件应用318相关和/或与所请求的企业资源130(或其它资源)相关的隧道定义。企业代理320产生识别所取回的隧道定义的应用隧道形成请求,并将应用产生的通信的至少一部分封装在封装协议的一个或多个头部内。已封装应用产生的通信在本文也被称为“代理产生的通信”。企业代理320将应用隧道形成请求和已封装应用产生的通信(其可一起构成单个通信)发送到隧道中介224(例如经由图1A和1C的连接142和144或经由图1B的连接142和160)或在隧道定义中定义的另一这样的中介。技术人员将认识到,所定义的隧道中介可以是与代理320和企业***110相关的多个隧道中介之一。
隧道中介224接收应用隧道形成请求(其识别隧道定义)和代理产生的通信。隧道中介224可读取在隧道形成请求中识别的隧道定义,并接着从仓库228取回所识别的隧道定义。隧道中介224可从所取回的隧道定义或甚至从在隧道形成请求中提供的信息确定计算机服务器或所请求的企业资源130所位于的其它计算设备的URL和/或端口。隧道中介224打开到服务器端口的网络连接(例如图1A和1C的连接152或图1B的连接 162)。在一些实施方式中,隧道中介224总是或在预先安排的时间范围期间保持连接到企业资源130,使得当从移动设备120接收到应用隧道形成请求时连接可以是立即可用的。基于封装协议,隧道中介224从代理产生的通信提取应用产生的通信,并将应用产生的通信发送到与所请求的企业资源130相关的URL/服务器端口。此时,应用隧道在移动设备120和所请求的企业资源130之间形成。在一些实施方式中,隧道中介224将消息发送回到移动设备120以指示隧道的形成,并要求企业代理320在将应用产生的通信发送到企业资源130之前肯定地接受隧道。一旦隧道形成,企业代理320就可将额外的应用产生的通信(使用封装协议来封装的)发送到隧道中介224,其可将它们转发到企业资源130。
根据封装协议,在相反方向(例如从企业资源130到移动设备应用318) 上的通信可由隧道中介224封装,由隧道中介224发送到移动设备120,并接着由企业代理320解包。隧道中介224可与企业资源130通信,好像中介224是移动设备应用318一样,且使得由企业资源130产生的资源返回到隧道中介224(例如经由图1A和1C的连接152和图1B的连接162)。当隧道中介224接收到对应用产生的通信的这样的响应时,隧道中介224 可根据封装协议将这些“资源产生的响应”中的每个的至少一部分封装在一个或多个头部例如HTTP头部内,并接着将已封装响应发送到企业代理 320(例如经由图1A和1C的连接144或142及图1B的连接160或142)。隧道中介224可配置成将它的通信发送到移动设备120的特定端口,该端口在与操作应用隧道相关的隧道定义中被定义。企业代理320可配置成在该本地端口上“听”来自隧道中介224的隧道式通信。基于封装协议,企业代理320可从一个或多个头部提取资源产生的响应,并接着将资源产生的响应提供到应用318。
在这种类型的应用隧道中,安装在移动设备120上的软件应用318可被给与它与资源(例如企业资源130)直接连接的印象,该资源与应用318 所发出的网络请求的URL相关。事实上,应用318实际上经由隧道中介 (例如隧道中介224)与资源通信。因此,应用318不需要知道隧道的存在。
在一些实施方式中,企业代理320可配置成滤除满足预定和/或可配置的标准的那些应用产生的通信。这样的标准可包括例如下列标准以及各种其它标准中的任一个或多个:(1)(例如企业***110的、web站点(其访问被企业限制)的)URL,(2)服务器端口,应用318试图将请求发送到该服务器端口,(3)关于发出请求的应用的数据(例如名称、版本等),(4) 一天的时间,(5)一周的天,和/或(6)移动设备120的地理位置。这样的过滤标准可经由到企业代理320的无线通信由企业***110传递到移动设备120。
在发起应用隧道的形成的一种方法中,企业代理320配置成拦截来自软件应用318的应用产生的通信。例如,在运行某些MicrosoftTM操作*** (例如Windows MobileTM、Windows CETM)的移动设备120中,可能使用分层服务提供者(LSP)来过滤由移动设备应用318发出的网络请求。LSP ——其为Microsoft Windows Winsock 2服务提供者接口(SPI)的特征——是使用Winsock API来将本身***TCP/IP协议堆栈内的DLL。一旦在堆栈中,LSP就可拦截并修改进入和外发的互联网业务。LSP可允许处理在互联网和设备的软件应用318之间发生的所有TCP/IP业务。LSP可配置成由使用网络连接的任何应用318自动装入。LSP具有分层模型,像过滤器一样。因此,每当应用318进行网络调用时,它通过LSP。LSP允许企业代理320拦截试图将信息发送到一个或多个规定的URL的每个应用网络通信,并将通信重定向到隧道中介,例如与企业***110相关的中介224。以这种方式,企业代理320可检测来自应用318的对连接到企业资源130 的请求,并修改请求和将请求重定向到隧道中介的URL。企业代理320可配置成通过企业资源130的一个或多个识别出的端口来过滤来自应用318的请求。企业代理320可配置成至少部分地基于在请求内提供的企业资源端口来选择隧道中介的端口以发送重定向的请求。
如上面提到的,在隧道中介建立在中介和所请求的资源之间的应用隧道连接之后,中介可将其通知发送到企业代理320,且企业代理320可接受应用隧道连接。所有这些操作可相对于软件应用318透明地发生。根据某些实施方式,应用318可在没有应用318的修改或重新配置的情况下经由隧道中介发送网络请求。
不幸的是,在一些移动设备中,移动设备120拦截由软件应用318发出的网络连接请求很难或甚至不可能。一些移动设备操作***(例如iOSTM和AndroidTM)可限制不同的软件应用与彼此交互并共享数据的能力。这样的限制有时可被称为软件应用的“沙箱化”,并可能在防止恶意应用从移动设备120盗窃数据并将数据发送到未经授权的互联网位置中是有用的。这可防止企业应用320访问或修改由应用310发出的网络请求。
因此,发起应用隧道的形成的另一方法是重新配置软件应用318如何发送它们的网络请求(或它们中的至少一些)。在某些实施方式中,软件应用318重新配置成将它的网络请求发送到移动设备120的本地主机,其在规定的移动设备端口上。企业代理320可配置成“听”该端口并通过建立与隧道中介的连接(如果它没有已经被建立)而对应用的网络请求做出反应以打开具有由应用318请求的资源的应用隧道。企业代理320可咨询相关应用隧道定义,以便确定倾听应用隧道请求的端口。在其它实施方式中,软件应用318重新配置成将至少一些它的网络请求直接发送到隧道中介。此外,应用318也可配置成将从隧道中介接收的通信“解包”(经由封装协议封装的)。企业可使配置成产生如本文所述的应用隧道请求的可下载的移动设备应用318的应用商店变得可用。
现在进一步描述用于产生应用隧道的封装协议。企业代理320或软件应用318(取决于使用形成应用隧道的哪个特定的方法)可配置成使用各种不同的方法或封装协议中的任一个修改软件应用的网络连接请求。用于在应用隧道中使用的封装协议可为了各种目的而允许元数据的添加。例如,封装协议经由添加的元数据可识别特定的应用隧道,其允许隧道中介区分开该隧道与隧道中介可同时操纵的其它应用隧道。这可帮助防止在不同的应用隧道之间混合数据,帮助确保隧道式数据被分发到正确的资源 (例如企业资源130)。换句话说,封装协议可添加使多个应用隧道能够被复用用于在公共连接上传输的元数据。添加的元数据也可规定通过隧道发送的每个消息的长度。添加的元数据也可与应用隧道或发起隧道的应用 318例如安装在移动设备120上的软件应用318的列表或由移动设备管理***126发送到移动设备120的命令的结果无关。这样的数据可由移动设备管理***126使用来更新移动设备信息204。
由软件应用318产生的一般网络连接请求可使用涉及多个协议头部的多层通信协议。在简化的例子中,由软件应用318产生的访问请求可采取下列形式:
[IP header][TCP header][HTTP header][SOAP header][SOAP body],
其中“IP”指互联网协议,“TCP”指传输控制协议,“HTTP”指超文本传输协议,且“SOAP”指简单对象访问协议。在本例中,移动设备的企业代理320 可配置成在TCP层拦截这个通信(例如通过LSP的使用),并接着根据由企业代理320使用的封装协议在多层中重新包装或封装TCP有效载荷(其在本例中是[HTTP header][SOAP header][SOAP body])。例如,企业代理320 可在下面的多个层内重新包装或封装TCP有效载荷:SSL(安全套接层)、 TCP、IP等。企业代理320可接着将已封装请求发送到隧道中介。在如上所述的其它实施方式中,软件应用318可配置成将请求发送到移动设备120 的本地端口(企业代理320从该本地端口接收、封装请求或将请求重定向到隧道中介)或甚至封装请求并将它直接发送到隧道中介。
当从移动设备120接收到已封装请求时,隧道中介可根据封装协议对请求解包。在上面的例子中,隧道中介提取由移动设备的软件应用318产生的TCP有效载荷。隧道中介可接着将TCP有效载荷发送到所请求的企业资源130的URL/端口(从相关隧道定义228得到的)(例如所请求的企业资源130被安装于的服务器的服务器端口)。在上面的例子中,所提取的TCP有效载荷包含较高级协议、HTTP和SOAP。在某些实施方式中,封装协议使用HTTPS上的安全套接层(SSL)来形成隧道。
图5是示出一种方法的实施方式,其中移动设备120的企业代理320 通过应用隧道将移动设备应用318所产生的通信重定向到企业资源130。在步骤502中,应用318产生对访问企业计算机***110的企业资源130 的网络请求。如上面解释的,这个请求可包括对企业资源130的有效载荷,被封装在其它协议头部(“应用产生的通信”)内。在步骤504中,企业代理320拦截或接收请求。在步骤506中,企业代理320通过根据封装协议将一些或所有请求封装在一个或多个头部内(产生“代理产生的通信”) 来修改请求。例如,企业代理320可封装包含对企业资源130的有效载荷的一部分。在步骤508中,企业代理320打开在移动设备120和与企业***110相关的隧道中介(例如隧道中介224)之间的网络连接(例如图1A 和1C的连接142、144或图1B的连接142、160)。在步骤510中,企业代理320经由网络连接将代理产生的通信发送到隧道中介。在步骤512,企业代理320从隧道中介接收数据,所接收的数据对请求做出响应(“资源产生的响应”)。所接收的数据可根据封装协议而被封装,且企业代理320可能需要例如根据封装协议来将数据解包。最后,在步骤514中,企业代理320向应用318提供所接收的数据。
图6是从企业***110的观点看示出应用隧道方法的实施方式的流程图。如同本文描述的所有方法一样,一些所示步骤可以是可选的。在步骤 602中,企业***110的或与企业***110相关的隧道中介(例如隧道中介224)从移动设备应用318接收对访问企业资源130的请求。如上面解释的,请求可包括设备的企业代理320拦截或接收的、根据封装协议修改的并接着重定向到隧道中介(例如经由图1A的网络通信链路142和144) 的代理产生的通信-应用产生的通信。请求可包括对企业资源130的有效载荷。在步骤604中,企业***110可确定对企业资源130的访问是否被授权。例如,如下所述,移动设备管理器202或隧道中介224可确定请求是否在移动设备管理***126的一个或多个企业访问策略218下是可准许的。在步骤606中,在请求被授权之后,隧道中介从已封装请求提取对企业资源130的有效载荷。在步骤608中,隧道中介或企业***110的另一部件记录关于请求和/或有效载荷的信息。下面更详细描述这个记录功能。在步骤610中,隧道中介打开在隧道中介和与所请求的企业资源130相关的服务器端口之间的资源网络连接(例如图1A和1C的连接152或图1B 的连接162)。在步骤612中,隧道中介经由资源网络连接将至少企业资源有效载荷发送到服务器端口。在很多应用中,企业资源130通过将数据发送回到移动设备120来对请求做出响应(“资源产生的响应”)。因此,在步骤614中,隧道中介经由资源网络连接从企业资源130接收数据(例如多个数据分组)。数据一般对在步骤602中接收的请求做出响应。在步骤 616中,隧道中介(或另一部件)记录关于从企业资源130接收的数据的信息。最后在步骤618中,隧道中介将数据发送到移动设备120。
图6的所示记录步骤608和616可允许企业注意通过在隧道中介和企业资源130之间的资源网络连接(例如图1A-1C的连接152、162)流动的数据的进展。用于这样的记录的应用隧道的使用使用户和设备行为能够在更粒度级别处且在更大级别的控制下被跟踪。例如,因为每个应用隧道通常被绑到特定的移动设备120、用户和移动应用,在该隧道上传输的与这个移动设备、用户和应用相关的数据可被存储。这给企业对其移动设备用户115的活动较大的可见性。隧道中介(或与其相关的其它部件)可配置成记录各种类型的信息,例如通过资源网络连接发送的实际数据、通过资源网络连接发送的数据的量、通过资源网络连接发送的数据的类型、通过资源网络连接发送的文件的名称、特定用户访问一个或多个企业资源130 的次数、用户请求访问一个或多个企业资源130时的时间等。可从已记录数据产生分析。移动设备管理***126可基于这样的分析来设置规则。作为一个例子,可对具有大量下载的移动设备120限制对一个或多个企业资源130的访问。
如上所述的应用隧道也可用于除了访问企业资源130以外的目的。例如,如下面关于图12、13和18描述的,应用隧道可用于进行在移动设备 120和控制器计算机之间的“远程控制会话”。
应用隧道的另一使用涉及所谓的“web过滤”或“内容过滤”,其中企业可能希望限制网络站点(例如网站)或移动设备120被授权访问的其它在线信息资源。可使用与修改预先存在的移动应用有关的特征或/或通过如下所述的安全web浏览器的使用来实现使用应用隧道执行内容过滤。访问可例如总是、只在营业时间期间等被授权。在某些实施方式中,企业代理320可配置成通过应用隧道将由移动设备120产生的内联网和/或互联网请求(对于在万维网上可得到的信息资源,例如输入到web浏览器内的URL 或由web浏览器产生的HTTP请求)重定向到与企业相关的内容过滤服务器。内容过滤服务器充当隧道中介,并检查每个请求以确定所请求的站点是否被企业授权。例如,内容过滤服务器可维持被企业“记入黑名单中”的站点的列表,并可拒绝对访问被记入黑名单中的站点的请求。在某些实施方式中,这个确定可基于进行请求(例如基于用户角色206)的特定的移动设备120和用户115。内容过滤服务器可位于企业***110内或之外,并可以是至少部分地为了企业的利益而操作的第三方服务器。如果请求被授权,则内容过滤服务器可将请求发送到将被移动设备120访问的与经授权的站点相关的服务器。内容过滤服务器可配置成修改请求以除去由企业代理320产生的任何头部以形成具有内容过滤服务器的应用隧道(根据封装协议)。与所请求的站点相关的服务器可然后接收以好像它从未被发送到内容过滤服务器的形式的请求。
图25示出一个实施方式,其中使用在移动设备120(示出一个)上运行的企业代理320来创建应用隧道。在这个实施方式中,企业代理320包括或充当在移动设备120上运行的一个或多个移动应用的HTTP代理服务器320a。企业代理320经由无线网络(WIFI、蜂窝等)与移动设备管理***126通信,移动设备管理***126可例如在企业***110内的专用服务器上实现。在图25中示出的移动设备管理***126包括web管理控制台 126a,其使管理员能够经由基于web的接口配置并部署在移动设备120和应用服务器2500之间的应用隧道。图25所示的移动设备管理***126还包括隧道中介126b,其实现隧道封装协议并在移动设备120和应用服务器 2500之间按规定路线发送分组。
在图25的这个实施方式中,企业代理320在部署应用隧道时产生在使用应用隧道的移动应用已知的特定的端口上倾听的套接字。当移动应用写到这个端口(通过写到localhost:XXX,其中“XXX”是听端口号)时,用作移动应用的HTTP代理的企业代理320例如封装并转发消息,如上所述。更具体地,当移动应用产生指向企业***110的应用服务器2500(或其它资源)的HTTP请求时,企业代理320拦截请求,并通过在移动设备 120和移动设备管理***126之间建立的应用隧道发送请求。移动设备管理***126的隧道中介部件126b然后提取已封装的HTTP消息,并将它发送到相关应用服务器2500。
这种方法的一个潜在问题是,如果主机名不正确,则一些应用服务器例如Microsoft SharePoint将拒绝请求。为了处理这个问题,企业代理320 在一些实施方式中用目标应用服务器2500的正确主机名代替在所拦截的请求中的主机名(localhost:XXX)。这涉及修改从移动应用接收的原始 HTTP请求的一个或多个相关HTTP头部并接着经由应用隧道发送已修改的HTTP请求。在其它实施方式中,替换主机名的任务替代地由移动设备管理***126在接收和提取已封装HTTP请求时执行。
在图27中进一步示出HTTP请求在图25的配置中被拦截和修改的过程。在事件A中,管理员配置并部署在移动设备120和应用服务器2500 之间的应用隧道。这可使用如下面将描述的web管理控制台126a来实现。在事件B中,代理320响应于隧道的部署来创建套接字并开始在相关端口 (作为localhost:XXX可寻址)倾听。在事件C中,充当HTTP代理的代理320接收或“拦截”来自在移动设备120上运行的应用的HTTP请求,并将主机名修改为目标应用服务器2500的实际主机名。代理320然后封装已修改的HTTP请求并将它发送到移动设备管理***126。在事件D中,在移动设备管理***126上运行的隧道中介126b提取已修改的HTTP请求并将它发送到与隧道相关的应用服务器2500。隧道中介126b也封装应用服务器的响应用于传输到移动设备120。
图26示出由图25的web管理控制台126a提供的隧道配置页面/屏幕的一个实施方式。管理员可使用这个页面来在特定的移动设备120和应用服务器2500之间建立应用隧道。在图26所示的例子中,隧道将部署在单个移动设备120上且是单个移动设备120所特有的。“应用设备参数”部分包括用于规定代理320在移动设备120上倾听的端口的“客户端口”字段。“应用设备参数”部分还包括用于规定业务将如何被拦截并重定向的三个选项。页面还包括各种其它配置选项,包括使用安全(SSL)连接的选项。
再次参考图25,在一些配置中,定制SSL(安全套接层)库320b可安装在移动设备120上以支持安全应用隧道。定制SSL库320b可以使代理320(如图25所示)的部分或可以是不同的。定制SSL库320b补充由移动设备的操作***提供的标准SSL库,并以使SSL握手序列能够以在应用隧道上执行的方式来修改SSL握手协议。更具体地,定制SSL库使移动设备120能够接受应用服务器对数字证书的传输,即使通过使用这个数字证书传输的主机名不匹配预期主机名。相反,一般随现有的移动操作***提供的标准SSL库在这种情况下将拒绝应用服务器的数字证书。定制SSL 库320b可通过覆盖一些信任管理证书检查功能来执行这个任务以创建对主机名中的失配的例外作为证书的部分。为了支持定制SSL库320b的使用,可以给应用开发者提供API(例如Java文件),其使他们能够开发使用定制SSL库320b来建立SSL链接的移动应用。
图28示出当应用隧道在图25的配置中被建立为安全(SSL)隧道时执行的额外处理。在这个过程中,安装在移动设备120上的定制SSL库320b (在图25中示出)产生对应用服务器的数字证书必须规定与预期主机名匹配的主机名的要求的例外。在图28的事件A中,管理员优选地使用web 管理控制台126a配置并部署HTTPS应用隧道。在事件B中,代理320产生套接字并开始在端口localhost:XXX上倾听,如上面关于图27描述的。 (虽然没有在图27中示出,代理320在这个实施方式中使用与在图27中所示的相同的过程来拦截并修改来自应用的请求。)在事件C中,移动设备120使用定制SSL库320b来经由应用隧道发起与应用服务器2500的 SSL握手。这涉及移动设备120发送hello消息,包括SSL版本、加密和压缩信息和28字节随机数。这个消息由代理320(如上面关于图27描述的)拦截,并经由代理320发送到移动设备管理***126,其将消息转发到应用服务器2500。
在图28的事件D中,应用服务器2500通过返回包含公共密钥和密码套件的数字证书来做出响应。这个数字证书包含或规定代理320的本地主机的主机名(localhost:XXX)。通常(即,如果标准SSL库被使用),则 SSL库将拒绝这个数字证书,因为它预期数字证书规定应用服务器的主机名。如在图28的事件E中所示的,定制SSL库320b通过做出对这个要求的例外来避免这个问题。定制SSL库可通过更新SSL Trustmanager以允许在应用服务器的主机名和由代理320使用的本地主机的主机名之间的失配来产生这个例外。(虽然可为所有主机名产生例外,这可便于中间人攻击。) 如在事件E中进一步示出的,定制SSL库320b也向应用服务器2500发送使用应用服务器的公共密钥加密的认证代码密钥。因此,在SSL会话的持续时间期间,移动设备120和应用服务器2500可使用对称密钥用于加密。
管制移动设备对企业***的访问的移动设备管理***的使用
如果移动设备管理***126用作在移动设备120和企业资源130之间的应用隧道的隧道中介,***126可配置成管制设备对资源130的访问。***126可配置成读取来自应用隧道请求头部或主体的信息,比较它与移动设备数据204(图2)以确定关于与请求相关的用户115和/或移动设备 120的信息,并实施企业访问策略218以允许或拒绝应用隧道请求。可基于本地存储的用户角色206、移动设备特性208、用户设备分配210、其它数据或其任何组合来实施访问策略218。也将理解,除了中介224以外的任何隧道中介可配置成实施访问策略218,只要该隧道中介能够访问移动设备信息204。
图7是示出方法的实施方式的流程图,其中隧道中介例如图2中的中介224使用访问策略218来管制移动设备对企业资源130的访问。移动设备管理***126可配置成从移动设备120接收应用隧道访问请求(例如使用网络连接142或144经由应用隧道)以访问企业资源130。因此,在图 7的步骤702中,移动设备管理***126从移动设备120之一接收访问请求。在某些实施方式中,当这样的请求从移动设备120接收到时,隧道中介224配置成拒绝请求,如果移动设备120的一个或多个特性和/或分配给移动设备120的用户115的一个或多个特性不符合一个或多个访问策略 218。因此,在决策步骤704中,隧道中介224确定移动设备120的一个或多个特性是否符合一个或多个相关访问策略218(例如一般访问策略或与所请求的企业资源130相关的访问策略)。移动设备特性(隧道中介224 可对所述移动设备特性评估访问请求)可以是设备特性208或从请求本身确定的其它特性。如果从访问请求确定的移动设备特性不符合相关访问策略218,则在步骤710中,隧道中介224可拒绝访问请求。另一方面,如果移动设备特性符合一个或多个相关访问策略218,则方法继续进行到决策步骤706,其中隧道中介224确定分配给移动设备120的用户115的一个或多个特性是否符合一个或多个相关访问策略218。用户115的特性可以是例如用户的角色206或可以或可以不存储在移动设备信息204内的其它用户相关信息。隧道中介224可通过例如使用用户设备分配记录210来确定哪个用户115被分配到移动设备120。如果一个或多个用户特性符合一个或多个访问策略218,则隧道中介224允许移动设备120在步骤708 中(通过连接152或162)访问所请求的资源130。如果否,则隧道中介 224在步骤710中拒绝访问。将认识到,这种方法允许企业以非常灵活的方式基于移动设备特性和用户特性的各种组合来管制移动设备对企业资源130的访问。
如上面提到的,在一些实施方式中,隧道中介224位于企业***110 之外(例如在如图1B中的云计算***中)。将认识到,移动设备信息204、企业访问策略218、移动设备规则214和/或补救行动描述216也可例如随隧道中介224存储在企业***110之外。在那些实施方式中,隧道中介224 仍可配置成从移动设备120接收访问请求,并接着基于访问策略218来允许或拒绝请求。在这样的实施方式中,隧道中介224可配置成将允许的访问请求发送到位于企业***110内的网络节点,企业***110又将请求按规定路线发送到所请求的企业资源130。例如,网络节点可包括计算机服务器、安全移动网关128或另一网络设备。
用于控制移动设备对企业***资源的访问的策略的例子
存在很多可能的情况,其中企业可能希望基于移动设备特性和/或被分配到移动设备120的用户115的特性来管制或限制移动设备对企业资源 130的访问。现在描述这些“使用情况”中的几个。为了清楚,现在列举使用情况。此外,为了简单,在存储在移动设备管理***126中的访问策略218的上下文中描述使用情况。如上面讨论的,***126可以是安全移动网关128的网关规则404的提供者408,或/或可管制移动设备经由应用隧道对企业资源130的访问。然而,将认识到,这样的网关规则404可由任何其它提供者408创建并提供给网关128。
技术人员将理解,下面的例子仅代表企业访问可如何使用所公开的部件和/或过程被管制的可能性的完全范围的一小部分。例如,将认识到,访问策略218可取决于用户115的特性、移动设备120的特性(例如设备特性208)、特定企业资源130(对其的访问被请求)和其它信息的组合,以及下面提供的特定例子仅仅是例证性的且远远不是无遗漏的。此外,将理解,可组合一些使用情况。
使用情况1:一个或多个访问策略218可要求请求访问的移动设备120 (“访问请求设备”)向移动设备管理器202登记。这帮助防止将企业资源访问给与不与企业相关的人。
使用情况2:一个或多个访问策略218可要求访问请求设备120是某个设备类型(例如iPhoneTM、MobileTM等)。
使用情况3:一个或多个访问策略218可要求访问请求设备120具有某些设置,例如是密码保护的。这帮助防止将企业资源访问给与不与企业相关的人(例如不是用户115),但以某种方式得到移动设备120(例如被所分配的用户115放错地方或失去的设备120)并试图访问企业***110。
使用情况4:一个或多个访问策略218可要求访问请求设备120使用当前操作***版本。
使用情况5:一个或多个访问策略218可要求访问请求设备120符合企业的安全要求(例如防病毒要求)。如果移动设备120不符合安全(例如没有安装最新的防病毒软件或没有进行其文件、数据或应用的针对病毒的足够最近的自动扫描),则允许设备120访问企业资源130可使病毒感染资源130,可能危害企业***110或至少特定资源130(对其的访问被给予)的可操作性。因此,这些类型的访问策略218可防止这样的不希望有的结果。
使用情况6:一个或多个访问策略218可要求访问请求设备120不“被越狱”。越狱是允许移动设备120得到完全访问(“根访问”)以将它的操作***的所有特征解锁的过程,从而去除可由设备制造商强加的限制。一旦被越狱,移动设备120就可能能够下载以前不可用的应用和扩展文件。对移动设备120越狱可以访问其根文件***,允许修改和安装第三方软件部件。因此,越狱的设备常常是安全保护被移除的设备。因此,防止被越狱的设备访问企业资源130进一步保护企业***110免受安全威胁和漏洞。
使用情况7:一个或多个访问策略218可要求访问请求设备120不安装未经授权的应用。在本例中,“未经授权的应用”可以是未被授权安装在访问请求设备120上或/或特定的一组设备120(访问请求设备是该组的成员)上的软件应用。
使用情况8:一个或多个访问策略218可要求分配到访问请求设备120 的用户115有与企业相关的一个或多个预定角色206。例如,访问策略218 可拒绝移动设备对被分配给具有不与销售、工程设计或上层管理有关的角色206的用户115的移动设备120的一个或多个企业资源130的访问。
使用情况9:一个或多个访问策略218可取决于哪个特定的企业资源 130被请求由访问请求设备120访问。例如,企业可允许移动设备访问CRM 资源的条件可不同于企业可允许访问产品信息数据库的条件。因此,不同的访问策略218可被创建并用于不同的企业资源130。除了取决于所请求的企业资源130以外,访问策略218还可要求被分配到访问请求设备120 的用户115具有某些特性,例如特定的角色206(如在上面描述的使用情况8中的)或另一状态指示。例如,对于CRM资源130,企业可能希望只对具有涉及销售或上层管理的角色206的用户115给予移动设备访问权限。在那种情况下,CRM资源130的访问策略218可要求被分配到访问请求设备120的用户115具有销售或上层管理角色206,且移动设备管理员202可配置成拒绝来自被分配给没有那些角色206的用户的移动设备120的请求。访问策略218可进一步要求被分配到访问请求设备120的用户115遵守企业规定(例如雇佣没有终止且不在试用状态中的用户115)。
元应用
再次参考图1A,元应用150如果存在则可配置成发现、建模和/或监控企业***110的各种部件,包括通过在Qureshi‘536中描述的方法。元应用150也可配置成使用编码逻辑规则来检测“特征”和“问题”,执行“根本原因分析”,规划“补救行动”和/或在企业***110上执行补救行动,包括通过在Qureshi‘536中描述的方法。在这个上下文中,逻辑规则可包括被管理***110的特征的逻辑组合,并可相应于至少一个问题。此外,逻辑规则可包括对来自企业***的特定信息的查询(“遥测数据查询”) 或来自企业***的模型的查询(“企业模型查询”),其中企业模型由元应用150产生。问题可包括企业***110或移动设备120的任何软件、硬件或固件的任何成问题的状态。元应用150可通过满足相应的逻辑规则的逻辑来检测问题。特征可包括问题的条件。例如,逻辑规则可包含遥测数据查询或用于检测企业***110的特征的企业模型查询。根本原因分析可以指作为所观察的成问题的行为的“根本原因”的部件(再次,软件、硬件、固件或甚至在这样类型的部件之间的关系)的检测。元应用150可配置成通过规划或执行与问题相关的补救行动来处理所检测的问题。
由元应用150使用来检测问题的逻辑规则的输入(例如特征)可不仅来自企业***110的“后端”(在内部防火墙124后面的***110的部分),而且来自其它源,例如安全移动网关128、在移动设备120上的企业代理 320、或应用隧道中介例如移动设备管理***126的实施方式。例如,逻辑规则的输入可以是移动设备通过安全移动网关128进行的访问请求402的允许或拒绝。例如,逻辑规则可将特定的问题至少部分地规定为通过企业***的网关128对企业的CEO所使用的移动设备120的访问的拒绝。如果CEO被拒绝访问,则指示这个事件的数据满足逻辑规则的这个部分。在另一例子中,逻辑规则的输入可以是指示用户115在规定的时间段内下载大于某个阈值数量的数据的数据。这样的数据可由应用隧道中介提供到元应用150。在又一例子中,逻辑规则的输入可以是指示设备的配置或性能的数据,例如指示用户115在用户的移动设备120上安装了某个软件应用的数据。这样的数据可由用户的设备120的企业代理320提供到元应用 150。
在某些实施方式中,由元应用150所使用的逻辑规则定义的一种类型的补救行动可以是新网关规则404的创建或现有网关规则404的修改连同将新的或修改的网关规则发送到安全移动网关128。以这种方式,元应用 150可配置成程序化地控制网关128来以自动方式阻止移动设备访问。另一类型的补救行动可以是新访问策略218的创建或现有访问策略218的修改连同将新的或修改的策略发送到移动设备管理***126。另一类型的补救行动可以是移动设备规则214的创建或现有移动设备规则214的修改连同将新的或修改的移动设备规则发送到移动设备管理***126和/或一个或多个移动设备120。另一类型的补救行动可以是将命令直接发送到一个或多个移动设备120用于由企业代理320执行。以这种方式,元应用150 可在设备120上有效地执行行动,例如从设备120擦除数据或应用,锁定设备120(即,防止设备120的使用),防止安装在设备上的某些应用运行,开启或关闭设备特征,调节设备设置,等等。
在图1C的实施方式中,元应用包括存在于企业的后端中的部分150 和存在于云计算***或“云”156中的部分151。基于云的***156通常与企业***110分离和不同(例如这两个***不共享任何物理计算机或服务器),且通常主要由与企业分离和不同的云服务提供者商业实体操作。在某些实施方式中,后端元应用部分150从企业***110收集数据,将它发送到基于云的元应用部分151,并可能也检测如上面提到的“特征”。在某些实施方式中,基于云的元应用部分151使用数据来建模企业***110 来检测“问题”和“根本原因”,规划补救行动和/或执行补救行动。
图8示出部分地基于云的元应用的一个特定实施方式。元应用包括存在于企业服务器802上的几个部件和存在于云156内的服务器上的其它部件。此外,元应用与移动设备管理***126、安全移动网关128和在移动设备120上运行的企业设备代理320通信。
在所示实施方式中,企业***110包括一个或多个计算机服务器802,其可包括在图1A-1C的***110中所示的一些或所有元件。元应用代理804 可安装在每个服务器802上,服务器802具有需要被元应用150监控和/ 或管理的部件。每个元应用代理804可以“天生”(在安装时)有基于云的元应用部分的URL。可选地,代理804可配置成从管理员接收URL。将理解,将元应用代理804安装在企业***110的每个计算机服务器上是不必要的。元应用的基于企业的部分可配置成允许IT管理员选择安装有元应用代理804的企业服务器802作为元应用的安装过程的部分。
在所示实施方式中,元应用代理804包括企业建模处理器806、遥测数据处理器808、特征检测器810和补救代理812。现在描述这些部件。
企业建模处理器806可配置成访问和/或得到来自服务器802的信息,其对于构造企业***的可查询模型814是需要的或有用的。企业模型814 可描述企业***110的硬件、软件和/或固件,并可包括例如配置信息、注册表信息、数据库信息和对评估逻辑规则818有用的其它信息。企业模型 814可包括对象图形,所述对象代表硬件、软件、固件、其间的关系等。在Qureshi‘536、特别是与“发现”和“应用模型”有关的章节中描述了建模的示例性方法和途径。每个企业建模处理器806可配置成构造其所安装在的特定服务器802的模型。基于云的元应用部分可配置成从企业建模处理器806接收数据并使用该数据来构造总企业模型814。企业建模处理器806可配置成在持续进行的基础上将新数据发送到基于云的元应用部分,以支持企业模型814的动态更新。最后,将认识到,移动设备120的企业代理320也可配置成进行关于设备120的信息的发现并将所发现的信息发送到企业模型814,且企业模型814可从而模拟一个或多个设备120 以及企业***110。换句话说,代理320可包括企业建模处理器806或类似的功能。
遥测数据处理器808可配置成从基于云的元应用部分151接收对关于其所安装在的服务器802的特定数据的请求。遥测数据处理器808可配置成通过收集所请求的数据(在本文被称为“遥测数据”)并将它提供给特征检测器810用于分析来对这样的请求做出响应。遥测数据可包括关于企业***110的硬件、软件和/或固件的不同类型的数据,没有限制地包括配置数据、性能数据、关于移动设备120的数据和来自或关于移动设备管理***126、安全移动网关128和企业资源130的数据。遥测数据可包括如在Qureshi‘536中描述的“状态度量数据”。状态度量数据可包括指示服务器802或其任何部件的状态的原始时变数据。将认识到,设备120的企业代理320也可配置成基于来自元应用部分151的对设备数据的请求来收集设备数据,并将所收集的遥测数据发送到本地特征检测器810或发送回元应用部分151。换句话说,代理320可包括遥测数据处理器808或类似的功能。
特征检测器810可配置成分析从遥测数据处理器808接收的遥测数据,以检测逻辑规则818的特征。可在基于云的元应用部分发送到元应用代理 804的遥测数据查询内规定特征。与在云156内相反,至少部分地在企业***110内执行特征检测可明显减小用于在元应用代理804和云156之间的通信的带宽,因为在某些应用中不是所有遥测数据都被发送到云156。例如,元应用代理804可以只将检测到的特征发送到云156。技术人员将理解,特征可以比该特征所检测自的原始遥测数据更不数据敏感。例如,特征可简单地是特定条件为真的指示。在可选实施方式中,特征检测器810 存在于云156内,且遥测数据处理器808可将一些或所有所收集的遥测数据发送到云用于特征检测。将认识到,移动设备120的企业代理320也可配置成分析响应于来自元应用部分151的请求而收集的遥测数据,以便检测逻辑规则818的特征并将那些特征发送回元应用部分151。换句话说,代理320可包括特征检测器810或类似的功能。
补救代理812可配置成在其所安装在的服务器802上执行补救行动 820。元应用代理804可从基于云的元应用部分接收补救行动820。虽然未在图8中示出,移动设备管理***126可包括补救代理226(图2),且安全移动网关128也可以包括补救代理226。这样的补救代理可允许元应用对移动设备管理***126和安全移动网关128执行补救行动。将认识到,移动设备120的企业代理320也可配置成在设备120上执行补救行动820。换句话说,代理320可包括补救代理812或类似的功能。
仍然参考图8,所示基于云的元应用部分151包括遥测数据监控器822、企业模型814、逻辑规则仓库816、推断引擎824、检测到的问题和/或根本原因的仓库826、用户接口828、通知管理器830和补救工作流模块832。将理解,基于云的元应用部分不需要包括这些部件中的全部,且也可包括未在图8中示出的额外部件。
遥测数据监控器822可管理在基于云的元应用部分和元应用代理804 以及提供基于云的元应用部分可使用来评估逻辑规则818的数据的任何其它部件之间的通信,所述任何其它部件例如为移动设备120的企业代理 320、移动设备管理***126和安全移动网关128。因此,遥测数据监控器 822可接收由特征检测器810检测的特征,并可向推断引擎824提供特征。遥测数据监控器822可配置成对进入的特征和其它数据分出优先等级,使得更重要或紧急的信息在较不重要或较不紧急的信息之前被传递到元应用的其它部件。
推断引擎824可配置成访问逻辑规则818的仓库816并评估单独的规则818是否被部署的特征满足,其中每个被满足的规则相应于至少一个问题的检测。逻辑规则818可包括对信息的查询,例如遥测数据查询或企业模型查询。推断引擎824可配置成通过查询企业模型814或元应用代理804 的相关代理以得到所需的信息(例如规则的特征)来处理逻辑规则818的这些查询。推断引擎824也可配置成执行根本原因分析以检测企业***110 的有问题的行为的根本原因。根本原因可以是企业模型814的目标,其表示企业***110的部件。推断引擎824可配置成使用如在‘536Qureshi专利中教导的规则评估方法和根本原因分析方法(分别指“问题逻辑”和根本原因分析的讨论)。推断引擎824可进一步配置成在仓库826中记录检测到的问题和根本原因。
用户接口828可允许管理员与基于云的元应用部分交互。所示用户接口828包括web服务器接口以便于通过互联网访问。用户接口828也可包括服务器终端接口。
通知管理器830可配置成将关于由元应用检测或计算的信息例如问题和根本原因的通知发送到管理员。通知可包括例如电子邮件、语音消息、 SMS文本消息等。优选地,通知管理器830允许IT管理员设置并调节标准,在该标准下,通知管理器830发送通知。
补救工作流模块832可配置成选择补救行动820用于试图解决或应对由推断引擎824检测的问题或根本原因。补救行动820可存储在逻辑规则 818的仓库816中。可存储与一个或多个逻辑规则818相关的补救行动820。补救工作流模块832可配置成确定与检测到的问题或根本原因相关的补救行动820的执行的最佳序列。补救行动820对于很多不同类型的被管理计算机***110可以是抽象的或一般化的。在那种情况下,补救工作流模块 832可配置成将补救行动820定制到适合于由元应用管理的特定企业*** 110和移动设备120的计划中。补救工作流模块832可配置成将定制的计划和/或其它指令发送到元应用代理804的补救代理812、移动设备管理***126和安全移动网关128的类似补救代理或安装在移动设备120上的企业代理320。这些补救/企业代理可配置成在这样的***和设备上执行计划和/或其它指令。计划可能需要人(例如IT管理员)对计划的阶段的计划步骤进行确认。计划也可设计成由补救代理812执行而没有人干预或批准。
图1A和1B的元应用150可包括图8所示的所有部件,包括存在于云 156内的部件,且所有这样的部件可存在于企业***110内。
安装在移动设备120上(例如在企业代理320内或单独地)的元应用部件可配置成收集来自设备120的状态度量数据并将该数据发送回基于云的元应用部分150和/或企业***110。可有规律地(例如周期性地)或当由基于云或基于企业***的元应用部分明确请求时收集这样的数据。可分析这样的数据(例如通过推断引擎824使用逻辑规则818)以诊断涉及设备120的问题,并选择用于处理这样的问题的补救行动。可进行这样的分析,即使没有到设备120的当前可用的连接。
本领域中的普通技术人员将理解,元应用可配置成实施并实现涉及移动设备120的各种不同类型的逻辑规则818和补救行动820。例如,逻辑规则818可将问题规定为多于特定的阈值数量的数据下载到移动设备120。元应用的企业后端部分可检测被下载到用户设备120的数据的吞吐量,并确定它是否超过在规则818中规定的阈值。与规则818相关的补救行动820 可能需要禁用移动设备120,或也许仅仅禁用设备下载数据的能力。这样的补救行动820可涉及将配置成实施补救的命令或脚本发送到设备的企业代理320的元应用。可选地,补救行动820可能需要通过移动设备管理***126废除移动设备的证书。仍然进一步地,规则818可废除设备使用应用隧道用于与企业资源130或其它网络资源通信的许可。
在另一例子中,元应用150可配置成至少部分地基于移动设备120被“抹掉”(例如存储在设备上的一些或所有数据的删除或软件应用从设备的删除)时的时间来创建网关规则404。
在元应用150配置成管理Microsoft ExchangeTM的实施方式中,元应用 150可具有对与企业相关的移动设备120的ActiveSync合伙关系数据的完全可见性。元应用150可使用ActiveSync合伙关系数据来产生基于这样的数据过滤移动设备访问请求402的网关规则404。例如,ActiveSync合伙关系数据包括移动设备120的ActiveSync DeviceID。元应用150可使用这个信息来产生基于已知的DeviceID过滤访问请求402的网关规则404。
设备上存在的管理***
在某些实施方式中,企业可能希望调节与企业用户115所使用的移动设备120相关的设置、应用、使用、其它活动或其任何组合。这可防止对企业数据和资源的安全性的威胁和/或处理生产率风险——用户在满足用户对企业的责任时以可消极地影响用户生产率的方式使用移动设备120的风险。现在描述这样的实施方式。
继续参考图2,所示移动设备管理***126包括存储多个不同的移动设备规则214的计算机可读存储仓库212。存储仓库212可在任何适当的非临时计算机可读介质上实现。移动设备规则214可以是配置成由移动设备120(例如由安装在移动设备120上的企业代理320)使用来检测指示设备120可将企业暴露于的安全风险和/或生产率风险的问题的已编码计算机可读规则。下面描述可使用移动设备规则214检测到的问题的很多例子或“使用情况”。
移动设备规则214可能相对简单,采取例如IF-THEN语句和/或简单的陈述性逻辑规则的形式。在其它实施方式中,移动设备规则214例如在 Qureshi‘536中描述的逻辑规则可以复杂得多,Qureshi‘536描述配置成用于产生具有原子门和下游操作员门的虚拟电路的逻辑规则。移动设备规则 214可包括用于计算与规则和相关问题相关的各种参数例如指示与例如如 Qureshi‘536所教导的移动设备规则214相关的问题的检测中的置信度的置信度值的元数据。
在一些实施方式中,移动设备规则214具有下面的格式:
<rule name>
<security key><authentication information>
<encrypt><rule body>
规则名可以是特定的移动设备规则214的名称。如果规则214被加密,则安全密钥可允许企业代理320对规则主体解密。认证信息可包括涉及规则对移动设备120的适用性的数据。企业代理320可使用认证信息来确定规则214是否可在移动设备120上运行。规则主体包括规则的基本逻辑,并且是企业代理320评估的部分以便检测问题并执行一个或多个相关补救行动216。
在某些实施方式中,移动设备规则214将一个或多个移动设备状态度量数据值映射到指示设备120可将企业暴露于的安全风险和/或生产率风险的多个前面提到的问题之一。“状态度量”可以是指示移动设备状态的任何数据项目,例如错误日志条目、指示设备特征的激活的记录、操作***版本、所安装的软件应用318(包括企业可“记入黑名单中”为未被授权安装的应用)、移动设备120是否漫游、移动设备120的电池水平、由移动设备120所接收的信号的信号强度、移动设备120的可用存储器等。例如,“状态度量”可以是指示移动设备特征(例如摄像机、web浏览器、口令保护等)是否被激活的度量。状态度量的另一例子是移动设备的SIM 卡是否正确啮合移动设备120的指示器。状态度量的其它例子将从下面提供的移动设备规则应用的例子中明显可见。
继续参考图2,仓库212可包括用于应对问题的多个已编码计算机可读补救行动216。在一些实施方式中,每个补救行动216相应于与移动设备规则214相关的一个或多个问题。下面提供补救行动216的例子。在一些实施方式中,移动设备管理***126(或企业***110的另一部件)可包括帮助IT员工创建和/或编辑移动设备规则214和/或补救行动216的工具221。这样的工具221可包括例如定制的字处理器或具有扩充、指南等来帮助构造规则214和/或行动216的其它软件应用。
在某些实施方式中,移动设备规则214及其相关补救行动216被组织成单独的“规则包”,每个规则包包括一个或多个规则214和优选地,规则的相关补救行动216。可以使用特定类型的用户角色206和/或移动设备特性208为用户115设计或定制每个规则包。因此,每个规则包可与一个或多个用户角色206和/或与一个或多个移动设备特性208相关。例如,可为具有面向销售的角色206的所有用户115(例如企业的所有销售人员) 准备移动设备规则214和相关补救行动216的规则包。作为另一例子,可为使用iPhonesTM的人准备一个规则包,并为使用AndroidTM设备的人准备另一规则包。如果希望基于移动设备特性208中的差异来区分开与具有给定角色206的移动设备用户115相关的可允许的活动,则可为不同类型的移动设备120形成移动设备规则214和相关补救行动216的不同规则包。例如,企业可为使用iPhonesTM的销售人员形成移动设备规则214和补救行动216的一个规则包,为使用AndroidTM设备的销售人员形成移动设备规则214和补救行动216的另一规则包,等等。以这种方式,规则包可按照需要对不同的用户角色206和/或移动设备特性208进行定制。
将认识到,不同的移动设备规则包可共享公共移动设备规则214和/ 或补救行动216。例如,假设第一移动设备规则和相关补救行动适合于销售人员和公司董事会成员,第二移动设备规则和相关补救行动只适合于销售人员。作为销售人员的用户115的规则包可包括第一和第二移动设备规则及其补救行动,而作为公司企业的董事会成员的用户115的移动设备规则包可包括第一移动设备规则和补救行动但不包括第二移动设备规则和补救行动。很多其它例子是可能的并根据本文描述的原理和优点。
移动设备管理器202优选地负责基于例如移动设备的特性208和/或被分配到移动设备的用户115的角色206将适当的规则包发送到移动设备 120。在某些实施方式中,部署规则与每个规则包或单独移动设备规则214 及相关补救行动216相关。移动设备管理器202可配置成使用部署规则来确定哪些移动设备120发送规则包或单独移动设备规则214和相关补救行动216。部署规则可使移动设备管理器202访问移动设备信息204以识别移动设备120——其所分配的用户115具有与规则包或规则中的给定规则包或规则相关的角色206,和/或移动设备120——其特性208与给定规则包或规则相关。此外,移动设备管理器202可配置成将给定规则包(包括移动设备规则214和/或补救行动216)发送到所识别的移动设备120。以这种方式,移动设备管理器202可将适当的移动设备规则包发送到每个移动设备120。
例如,假设新移动设备用户115(例如新雇员)加入企业。可(由管理员和/或通过计算机自动过程)将新用户的角色信息206和/或移动设备特性208输入到企业的移动设备信息204中。在一个实施方式中,用户的角色信息206被输入到企业的RBAC***中,且软件模块(例如移动设备管理器202)将角色信息206传送到移动设备信息204。在另一实施方式中,移动设备信息204的用户角色信息206是直接支持RBAC***的RBAC 角色仓库。移动设备管理器202可配置成使用新用户的角色信息206和/ 或移动设备特性208来确定适当的移动设备规则包以发送到新用户的移动设备120。在另一实施方式中,移动设备信息204不来自或不支持RBAC ***。
在另一例子中,假设企业修改其关于特定的一组移动设备用户115的策略。IT员工可修改为特定的用户组定制的移动设备规则包。这可包括创建规则包的新移动设备规则214,从规则包删除规则214,和/或修改规则包的一些规则214。可选地或此外,修改移动设备规则包可包括创建、删除和/或修改规则包的补救行动216。移动设备管理器202可将更新的移动设备规则包发送到那个特定组的用户115的每个移动设备120。
在很多情况下,更新的移动设备规则包可以相当类似于已经被发送到用户的移动设备120的较老的移动设备规则包。在这样的情况下,移动设备管理器202可配置成只将新的和/或修改的移动设备规则214和/或补救行动216连同用于删除已从规则包删除的那些规则214和/或行动216的指令一起发送到每个移动设备120,这样的指令由每个移动设备120的企业代理320执行。以这种方式,移动设备管理器202可配置成将规则包更新发送到移动设备120。
在某些实施方式中,企业代理320配置成在移动设备120上实现和/ 或执行移动设备规则214。因此,企业代理320优选地配置成从与企业相关的移动设备管理***126接收(例如经由网络接口310)移动设备规则 214和/或补救行动216,并将所接收的规则214和/或补救行动216存储在移动设备120的计算机可读存储器例如硬盘驱动器306或被***存储卡口 307内的存储卡中。企业代理320可配置成从移动设备管理***126接收并存储前面提到的移动设备规则包和规则包更新,并将它们存储在硬盘驱动器306或存储卡上。在所示实施方式中,硬盘驱动器306存储多个移动设备规则214和补救行动216。在一些实施方式中,企业代理320配置成单独地存储规则包和/或规则包更新的移动设备规则214和补救行动216。在其它实施方式中,移动设备规则214及其相应的补救行动216彼此相关地被存储在一起。在一些实施方式中,移动设备120可从除了移动设备管理***126以外的源接收移动设备规则214和/或补救行动216。
图9是示出一种方法的实施方式的高级流程图,其中移动设备120应用移动设备规则214以检测与移动设备120相关的安全相关或生产率相关问题,且其中移动设备120处理该问题。根据图9所示的方法,在步骤902 中,企业代理320得到或接收与移动设备120相关的状态度量数据值。这些状态度量数据值优选地用于在一个或多个移动设备规则214中表示的状态度量。企业代理320可配置成从其它移动设备120的其它硬件、软件或固件部件得到或接收一个或多个状态度量数据。企业代理320可配置成例如通过发出对数据的API调用来主动收集某些状态度量的数据值。对于其它状态度量或操作***,代理320可订阅移动设备120的通知回呼机制,使得移动设备120向企业代理320通知关于出现在移动设备120上的某些事件。
继续参考图9,在步骤904中,企业代理320检测由移动设备规则214 规定的一个或多个问题。企业代理320优选地配置成至少部分地通过使用移动设备规则214分析所接收的状态度量数据值来程序化地检测问题的实例。在某些实施方式中,可结合其它数据值(例如用户特性、一天的时刻、日期等)来分析所接收的状态度量数据。此外,企业代理320可配置成通过在步骤906中在移动设备120上执行补救行动216来对问题之一的所检测的实例做出响应,其中所执行的补救行动216相应于在步骤904中检测的问题。在一些情况下,可以有相应于特定问题的多个补救行动216,且企业代理320可配置成基于各种因素例如成功地应对问题(例如基于运行补救行动的过去结果)的概率、与执行补救行动相关的计算成本、用户偏好、企业偏好等在可用的补救行动当中选择。在某些实例中,企业代理320 可响应于检测到特定的问题而执行两个或多个补救行动216。
一些补救行动216可包括产生警告,例如被分发到移动设备120的用户115的消息。消息可包括文本、图像、音频和/或视频。企业代理320可配置成产生消息并经由用户接口304将消息传送到用户115,例如在屏幕 326上显示消息和/或使用扬声器328播放可听得见的消息。消息可包括关于所检测的问题的信息和/或用户115在移动设备120上执行行动的指令,例如激活或去激活设备120的特征。可在补救行动216中静态地规定消息。可选地,当例如评估移动设备规则214(例如通过查询的解决)时,可使用可捆绑到实际数据值的变量来规定消息,如在Qureshi‘536中教导的。这可允许企业代理320对设备120的特定情况来定制消息。此外,指示代理320产生这样的消息的任何补救行动216可进一步包括在用户115(或操纵移动设备120的其他人)不执行由消息指示的行动时由企业代理320 进行的行动的指令。例如,如果用户115不在补救行动中规定的时间段内执行所指示的行动,则补救行动216可使企业代理320进行该行动。
企业可基于移动设备120和/或其用户115的特性来改变补救行动216 的惩办性以应用于移动设备规则214的所检测的问题或违反。例如,基于用户115的角色206改变补救可能是合乎需要的。在一个例子中,企业可能希望为企业的较高级主管人员应用较不严格的补救行动。
如上面提到的,一些补救行动216可包括由企业代理320在移动设备 120上执行的行动(除了产生消息和将消息传送到用户以外)。在某些实施方式中,补救行动216可包括移动设备120已经被设计成进行的行动,例如激活或去激活某些移动设备特征、调节设备设置等。在这样的情况下,企业代理320可配置成使用移动设备的API来进行这样的补救行动216。
在一些实施方式中,企业代理320包括脚本引擎322,且至少一个补救行动216包括脚本引擎322配置成在移动设备120上执行的脚本。可以用与移动设备120相关的脚本语言写脚本,脚本语言可以是以控制设备硬件、软件和/或操作***为目标的命令集合。脚本引擎322可配置成解释脚本和/或将脚本转换成字节码或可相对快地被解释的其它形式。在一些情况下,移动设备管理***126(或企业***110的另一部件)可包括帮助IT 员工创建脚本的一个或多个脚本创建工具或应用220。
在一些实施方式中,脚本可具有下面的高级格式:
#USE CASE:[description of what the script does]
import android
import zenlib
[decryption&authentication]
[rule body]
在这个例子中,脚本导入与AndroidTM操作***相关的代码(“android”) 库以及解释规则主体和解密及认证信息的编译代码(“zenlib”)的库。例如,“zenlib”代码可配置成解释逻辑、数学和/或布尔运算符,例如“AND”、“OR”、“THEN”、“LESS THAN”、“MORE THAN”等。
从下面描述的各种使用情况中,将认识到,可能提供很多不同类型的移动设备规则214,其使企业代理320检测并预防与移动设备120相关的各种类型的有问题事件。也可能提供很多不同类型的相应补救行动216,其使代理320通过进行各种类型的行动例如限制网络通信、实施密码保护、将报告发送回到企业***110(例如存储在移动设备120上的数据内容、在设备120上的数据使用、在移动设备120上运行的应用318和很多其它类型的信息的报告)、从设备120删除数据、从移动设备120卸载应用318 和很多其它行动来对这样的有问题事件做出反应。
移动设备规则214、补救行动216和/或由脚本引擎322运行的脚本的使用可以被用来进行移动设备120的符合性审计。在某些实施方式中,企业***110可配置成使向移动设备管理器202登记的所有或仅仅一些移动设备120的企业代理320应企业的请求运行一个或多个移动设备规则214。
例如,假设企业获悉新计算机病毒,企业的移动设备120可能特别易受该病毒的攻击。在这样的情况下,企业的IT员工可使移动设备管理器 202将指令发送到企业代理320,例如以运行对新病毒扫描或简单地确定移动设备120是否使用最新的抗病毒软件更新的特定的移动设备规则214。
在一些情况下,企业的IT员工可使移动设备管理器202将一个或多个“特殊”移动设备规则214发送到移动设备120。在某些实例中,特殊移动设备规则214可连同指令被发送,用于使企业代理320立即确定移动设备120是否符合这些规则。此外,可连同相关补救行动216发送特殊移动设备规则214,且将理解,不同类型的这些特殊移动设备规则214和补救行动216可被发送到不同类型的移动设备120。移动设备管理器202可将特殊移动设备规则214发送到所有移动设备120,其所分配的用户115具有特定的角色206。这些特殊移动设备规则214可以或可以不与在上面描述的定制规则包内提供的移动设备规则214和补救行动216相同。
当接收到这样的特殊移动设备规则214和可能特殊补救行动216时或当接收到运行已经存储在移动设备120上的移动设备规则214的指令时,移动设备的企业代理320可配置成立即确定移动设备120是否符合规则 214。如果移动设备120不符合,则企业代理320可配置成简单地实现特殊补救行动216。
可选地或此外,代理320可配置成将详述运行特殊移动设备规则214 的结果的符合性报告(例如详述与规则的符合或不符合和/或符合程度的报告)发送到移动设备管理器202。移动设备管理器202可配置成为了各种目的而使用这些报告。例如,移动设备管理器202可通过只向不符合所执行的移动设备规则的那些移动设备120发送(1)用于使代理320运行一个或多个额外的移动设备规则214的指令且如果移动设备120不符合额外的移动设备规则214则一个或多个额外的补救行动或(2)额外的特殊移动设备规则214和/或特征补救行动216来对报告做出响应。这些额外的移动设备规则214可基于下面的假设来检查其它形式的非符合:不符合一个移动设备规则214的移动设备120更可能不符合其他移动设备规则214。
设备上存在的管理***的示例使用情况
存在很多可能的“使用情况”,企业可能希望在移动设备120上对这些使用情况使用移动设备规则214和相关补救行动216。现在描述这样的使用情况的例子。将理解,下面的例子不是无遗漏的,以及很多不同类型的移动设备规则214和相关补救行动216可用于很多不同的目的。此外,技术人员将理解,可以可选地对任何其它移动设备规则、问题或使用情况执行下面对特定的使用情况描述的补救行动,如企业可能期望的。下面描述的一些使用情况包含也在下面描述的一个或多个子情况。最后,这些使用情况中的一些在某些方面重叠。
使用情况1:一个可能的使用情况涉及移动设备120从其所分配的用户115(图1A)失去或被盗的情况。移动设备规则214可规定用于断定设备被失去或被盗的条件。例如当不同的SIM卡被安装时、当某个时间段在没有用户登录的情况下消逝时或当移动设备被报告为失去或被盗时,移动设备规则214可明确说明移动设备120被失去或被盗。相关补救行动216 可使企业代理320从移动设备120移除数据和/或软件应用318,例如企业相关应用、所有应用、企业相关数据或所有数据。可选的补救行动216可使代理320锁定设备120以使它变得不可用。这些补救是有用的,因为移动设备120可包含被希望对不与企业相关的人保密的有价值的和/或机密的企业相关数据。在一些实现中,然后企业***110可向设备120发出命令以删除数据和/或损坏用于对数据解密的加密密钥。这个命令可由移动设备管理***通过无线运营商网络125发送到移动设备120。
使用情况2:这个使用情况与使用情况1有关。小偷可通过从SIM卡端口312移除设备的SIM卡(或取决于移动设备120,安全地存储例如用于识别移动设备120上的用户的服务用户密钥(IMSI)的类似或等效的卡) ——这可实际上禁止移动设备120到运营商网络125的连接——来阻止从企业***110发送的无线命令到达移动设备120。在这样的实例中,可防止企业从设备120删除数据,且小偷可能能够访问数据。可通过提供移动设备规则214来处理这个问题,企业代理320使用移动设备规则214来检测SIM卡从设备120的SEM卡端口312的脱离。在这个使用情况中,代理320可执行包括产生经由用户接口304分发的消息的补救行动216,该消息指示使用设备120的人(例如用户115或小偷)使SIM卡与SIM卡端口312重新啮合。例如,消息可指示人在规定的时间段(例如五分钟) 内使SIM卡与SIM卡端口312重新啮合,否则在移动设备120上的所有数据(或仅仅企业相关数据)将被删除。在那种情况下,代理320可进一步配置成删除数据,如果SIM卡在规定的时间段内未重新啮合。可选地或此外,用于对企业数据解密的加密密钥可被无效或删除,作为与和SIM卡脱离有关的问题相关的补救行动。
使用情况3:企业代理320可使用移动设备规则214来检测被规定为禁用对移动设备120的密码保护的问题。相应的补救行动216可使代理320 在用户接口304上产生消息,该消息指示用户115(也许在规定时间段内) 激活设备120上的密码保护。补救行动216还可包括在密码保护未激活的情况下对代理320的指令,例如禁用移动设备120、从设备120删除企业相关数据、使设备120退役(例如废除其证书和/或终止其对移动设备管理器202的登记)等。将理解,从移动设备120删除数据(在这个使用情况或任何其它情况的上下文中)可包括永久地删除数据,或可选地只删除数据的指针或删除和/或无效化数据解密密钥。在有关例子中,移动设备规则 214可能需要用户115周期性地例如每90天改变密码。
使用情况4:企业代理320可使用移动设备规则214来检测被规定为移动设备120位于经授权地理区之外或设备位于未经授权地理区内的问题。可以用各种不同的方式例如通过输入位置(例如在地图上或经度/纬度值)、地理区的形状和尺寸以及在所输入的位置和区的形状之间的位置关系来指定地理区。例如,可通过指定地理圆的半径来规定以所输入的位置为中心的圆形区。移动设备规则214也可包括时间范围(小时、天等),在该时间范围内,限制适用。代理320可使用GPS芯片316来检测设备 120的位置。
相应的补救行动216可使代理320产生经由用户接口304分发的消息,该消息指示用户115使设备120例如在规定时间段内返回到经授权地理区或离开未授权区。补救行动216还可包括在设备120如所指示的移动的情况下对代理320的指令,例如禁用移动设备120、禁用设备120的特征或软件应用(例如摄像机、蓝牙连接、Wi-Fi连接等)、从设备120删除企业相关数据等。补救行动216可简单地将讯息(例如SMS文本、电子邮件) 发送到企业的适当管理机构、向它们警告移动设备的位置。
使用情况5:如上面在使用情况4中所描述的,移动设备规则214可基于移动设备120的位置(例如,如通过使用GPS芯片316所确定的)和 /或时间数据来有效地导致移动设备特征的激活或去激活。讨论中的移动设备特征可以是用户接口304(键盘、触摸屏等)、网络接口310、摄像机314、麦克风330、USB连接等。
举摄像机314的例子来说。企业代理320可使用移动设备规则214来检测被规定为移动设备120位于企业的房屋内的问题,摄像机314可以加以使用。企业可能希望当移动设备120在企业房屋内时防止摄像机314的使用,以防止摄像机从房屋内捕获任何敏感或机密信息、图像或视频。如在本文使用的,“企业房屋”可包括任何建筑物、设施、工厂、校园、设计房或由企业拥有、使用或操作的其它结构或区域。在一个实施方式中,相应于这个问题的补救行动216可使代理320在没有用户的同意的情况下去激活或禁用摄像机314。在另一实施方式中,相应于这个问题的补救行动216可使代理320产生经由用户接口304分发的消息,该消息指示用户 115(也许在规定时间段内)去激活或禁用摄像机314。补救行动216还可包括在用户115不去激活或禁用摄像机314的情况下对代理320的指令,例如在没有用户的同意的情况下去激活或禁用摄像机314。优选地,在补救行动216被执行(以及摄像机314被禁用)之后,代理320配置成检测移动设备120何时离开企业房屋。在那个时候,代理320可配置成在没有用户的同意的情况下重新激活摄像机314,或产生经由用户接口304分发的消息,向用户115通知用户被授权重新激活摄像机314。
使用情况6:与使用情况5有关,可基于移动设备位置来调节的移动设备“特征”的另一例子是软件应用318,例如设备的web浏览器。例如,企业代理320可使用移动设备规则214来检测被规定为移动设备120位于企业的房屋内的问题,设备的web浏览器可以加以使用。相应的补救行动216可使代理320指示用户禁用web浏览器(通过在用户接口304上产生消息),或简单地在没有用户的同意的情况下禁用web浏览器。然后,当移动设备120随后离开企业房屋时,代理320可配置成检测此并通知用户 web浏览器可被使用或在用户不知悉或同意的情况下简单地重新启用web 浏览器。将认识到,也可类似地调节除了web浏览器以外的其它软件应用 318。
使用情况7:与使用情况4和5有关,当检测到移动设备120进入规定地理区域(例如企业房屋)时,企业代理320可配置成执行补救行动216,其使代理320要求用户115将密码输入到设备120中以便使用某些设备特征,例如摄像机314和/或web浏览器。这样的补救行动可更适合于用户 115,其角色206要求用户访问在地理区域内的这样的特征。一旦移动设备120离开规定区域,代理320就可配置成不再需要用户115的密码来使用这样的移动设备特征。
使用情况8:移动设备规则214可使企业代理320基于时间信息(可能没有考虑地理数据)例如一天的时间、一周的日子、日历的日期范围等来禁用某些移动设备特征(例如摄像机、麦克风)。
使用情况9:移动设备120可包括在商店或其它零售机构内使用的***扫描仪。当扫描仪的代理320检测到扫描仪物理地离开商店时,代理可执行指示扫描仪的用户115在规定时间段内将扫描仪返回到商店的补救行动216。补救行动216还可包括如果扫描仪没有被返回到商店则从扫描仪删除所扫描的***数据的指令。
使用情况10:可被调节的另一移动设备特征是设备的网络连接能力,例如网络接口310。企业代理320可使用移动设备规则214来检测被规定为移动设备使用网络连接能力来连接或试图连接到不安全的或被企业记入黑名单中的通信网络(例如伪Wi-Fi基站)的问题。例如,用户115可试图连接到不安全的Wi-Fi网络或被记入黑名单中的蜂窝服务塔,其可使移动设备120暴露于安全威胁。补救行动216可防止设备120访问被限制的网络。
在另一实施方式中,相应于这个问题的补救行动216可使代理320在没有用户的同意的情况下终止或防止移动设备到不安全的网络的连接。在另一实施方式中,补救行动216可使代理320在没有用户的同意的情况下去激活移动设备的网络连接能力(例如通过关闭网络接口310)。这样的行动可保持一种类型的网络通信能力(例如蜂窝网络,例如3G或4G网络) 可用,同时只终止与到不安全的网络相关的网络通信能力(例如Wi-Fi)。在另一实施方式中,补救行动216可使代理320产生对用户115的音频警告或经由用户接口304分发的消息,该消息指示设备120的用户115(也许在规定时间段内)终止到不安全的网络的连接。在又一实施方式中,补救行动216可使代理320产生经由用户接口304分发的消息,该消息指示设备120的用户115(也许在规定时间段内)去激活设备的网络连接能力。在代理320产生经由用户接口304分发的消息的实施方式中,补救行动216 还可包括在用户115不终止连接或去激活网络连接能力的情况下对代理 320的指令,例如在没有用户的同意的情况下采取这样的行动之一。在又一些其它实施方式中,补救行动216可使代理320锁定移动设备120以使它变得不稳定,也许直到设备从不安全的或被记入黑名单中的通信网络断开为止。
使用情况11:企业可能希望管制哪个软件应用318被授权安装在移动设备120上。例如,某些类型的软件应用318可消极地影响用户的生产率 (例如通过使用户从他或她的职责分心),而其它应用318可产生安全威胁(例如可允许其它设备复制存储在移动设备120上的加密数据的文件共享应用;或具有恶意软件或被确定为收集设备数据并将数据发送到恶意服务器的恶意应用)。企业代理320可使用移动设备规则214来检测被规定为移动设备120安装了企业记入黑名单中(即被禁止安装)或至少没有记入白名单中(明确地被允许安装)的软件应用318的问题。代理320可配置成使用设备特定API来确定哪个应用安装在移动设备120上。
因为不同的移动设备平台关于企业***110在没有用户的同意的情况下卸载未授权应用318的能力而改变,几个不同的补救行动216是可能的。在一个实施方式中,相应的补救行动216可使代理320在用户接口304上产生消息,该消息指示用户115(也许在规定时间段内)从移动设备120 卸载未授权软件应用318。补救行动216还可包括在用户115不卸载未授权应用318的情况下对代理320的指令,例如禁用移动设备120、卸载未授权应用318(例如通过使脚本引擎322运行卸载应用的脚本或计划)、防止未授权应用318启动或运行(例如通过使脚本引擎322运行终止与未授权应用318相关的一个或多个过程的脚本)、从设备120删除企业相关数据(这也可由运行适当脚本的脚本引擎322实现)、将关于被记入黑名单中的应用的安装的警告消息(SMS文本、电子邮件等)发送到企业管理机构等。在另一实施方式中,相应的补救行动216可使代理320在没有用户的同意的情况下从移动设备120卸载未授权应用318。对于不允许企业***110在没有用户的同意的情况下从移动设备120卸载未授权应用318的移动设备平台,企业可选择使代理320使用脚本引擎322来运行终止与未授权应用318相关的一个或多个过程的脚本,从而防止它在移动设备上运行。
企业可基于被分配到运行未授权软件应用318的移动设备120的用户 115的角色206来改变补救行动的惩办性。例如,考虑具有相应于高级主管人员的角色206的一些用户115的公司企业,具有相应于中级管理者的角色206的其他用户115和具有相应于低级雇员的角色206的其他用户。对于高级主管人员(其移动设备120具有未授权应用318),代理320可实现简单地指示用户115卸载应用318的补救行动216。对于中级管理者(其移动设备120具有未授权应用318),代理320可实现使脚本引擎322终止与未授权应用318相关的一个或多个过程的补救行动216,从而防止它在移动设备120上运行。而且,代理320可只在某些条件下(例如当移动设备在正常工作时间期间在企业房屋上时)运行这样的脚本。最后,对于低级雇员(其移动设备120具有未授权应用318),代理320可实现在没有用户的同意的情况下卸载应用318的补救行动216。技术人员将认识到,企业可基于不同组的标准以很多不同的方式改变其补救行动,以及这仅仅是一个例子。
企业可允许某些软件应用318安装在移动设备120上,但只在某些条件下,例如与用户角色206和/或移动设备特性208有关的条件。企业可允许具有特定角色206的用户115在他们的设备120上安装这样的应用,同时禁止其他用户115这么做。企业可允许具有某些特定类型的移动设备120 安装特定的软件应用318,同时对不同的设备类型禁止这些软件应用318。可通过规定适当的移动设备规则214来以非常灵活和可定制的方式管制对在移动设备120上的特定软件应用318的安装的禁止。
使用情况12:与使用情况11有关,移动设备规则214可将问题规定为违反规定的限制而运行(与安装相反)软件应用318的企图。这样的限制可以是时间的(应用被允许只在某些时间和/或天期间运行)、地理的(应用被允许只在移动设备120在一个或多个规定的地理区中时运行)、密码相关的(应用被允许只有用户提供与应用相关的正确密码时才运行)、其它类型的限制或条件或其组合。
在一个实施方式中,规则214包括被限制或记入黑名单中的应用318 的列表和可能甚至未被限制或记入白名单中的应用318的列表。企业代理 320可使用应用监控器服务334(其可以是代理320本身的部分或可选地,移动设备120的另一部分,如所示)来检测哪些应用318或过程正运行。例如,AndroidTM操作***提供用于收集并观看***输出的机制,由此,来自***的各种应用和部分的日志在一系列循环缓冲器中被收集,然后可通过“logcat”命令来被观看和过滤。“logcat”命令可从ADB(Android调试桥)壳被使用来读取日志消息。可选地,Android的Dalvik调试监控器服务器(DDMS)可经由到ADB的连接来自动报告“logcat”信息。因此,在运行AndroidTM操作***的移动设备120中,企业代理320可配置成“倾听”某些“logcat”信息并检测感兴趣的移动设备应用的调用。将认识到,其它移动设备操作***提供用于检测移动设备应用的调用的可选***和方法。
当代理320确定应用318被调用时,代理320确定应用是否被记入黑名单中(或记入白名单中)。如果应用318被记入白名单中或至少没有被记入黑名单中,代理320允许应用运行。如果应用318被记入黑名单中(或也许更严格地,未记入白名单中),则代理320可使用规则214来确定应用的规定限制以及是否限制适用。例如,如果限制是时间的,则代理320 可确定允许应用当前运行是否违反时间限制。如果限制是地理的,则代理 320可确定设备120是否在被限制的地理区中。如果限制是密码相关的,则代理320可调用给用户115提示与应用318相关的密码的密码输入活动 (其可以是补救行动216的部分)。如果任何限制被违反(例如未授权时间或天,在经授权地理区外部的设备120、所提供的不正确的密码、其它限制、这些限制的组合等,如规则214所规定的),则代理230可通过例如脚本引擎322运行结束应用的脚本来防止应用318运行。
在某些实施方式中,代理320配置成终止运行的应用318,如果在应用318被调用之后使用限制被违反。换句话说,如果使用条件在应用318 的调用时被满足,但然后随后在应用318的使用期间被违反,则代理320 可配置成结束应用318。例如,假设可应用的移动设备规则318允许应用 318只在规定时间窗期间被使用以及应用318只在被允许的时间窗期间被调用但接着当时间窗终止时保持在使用中。在这种情况下,规则318可指导代理320终止应用318。在另一例子中,假设移动设备规则318允许应用318只在移动设备120在规定地理区中被使用,以及应用318在这个条件被满足时被调用。进一步假设用户115在应用318的使用期间将设备120 带到规定地理区之外。在这种情况下,规则318可指导代理320终止应用318,只要设备120离开规定地理区。
使用情况13:移动设备规则214也可将问题规定为从移动设备120移除所需的软件应用318。用户115可意外地或有意地卸载应用。相关补救行动216可使企业代理320向用户115通知应用318的移除,以及它的重新安装是需要的。
使用情况14:与使用情况13有关,移动设备规则214也可由企业代理320使用来检测所需的软件应用318被安装但不在移动设备120上运行时的情况。相关补救行动216可使企业代理320通知用户115并指示用户运行所需的应用。
使用情况15:企业代理320可使用移动设备规则214来检测被规定为移动设备120存储企业相关数据的问题,设备未被授权存储该企业相关数据。在一个实施方式中,相应的补救行动216可使代理320在用户接口304 上产生消息,该消息指示用户115(也许在规定时间段内)从移动设备120 删除未授权的企业相关数据。补救行动216还可包括在用户未删除数据的情况下对代理320的指示,例如在没有用户的同意的情况下从设备120删除数据、禁用设备120等。在另一实施方式中,相应的补救行动216可使代理320在没有用户的同意的情况下从移动设备120删除企业相关数据。
使用情况16:移动设备规则214可由企业代理320使用来检测移动设备120何时在漫游网络中,且相关补救行动216可使代理320向用户115 警告其。补救行动216也可在设备正漫游时使代理320将设备120连接到可用的Wi-Fi网络。
使用情况17:补救行动216可使代理320开始在某个时间段期间例如当设备120正漫游时记录移动设备的位置。代理320可将这个信息报告回到企业***110。
使用情况18:移动设备规则214可使企业代理320激活或制定可适用的新移动设备规则214,如果移动设备120在某个时间段(例如几个小时或几天)运行而不连接到企业***110。
使用情况19:移动设备规则214可使企业代理320将移动设备120从其飞行模式切换,如果Wi-Fi或其它网络变成设备可用的。
使用情况20:如果移动设备120使用VPN,则移动设备规则214可使企业代理320禁用到网络热点的连接。
使用情况21:与使用情况11有关,移动设备规则214可使企业代理 320检测用户115或移动设备120何时试图使用软件应用318(例如 FacebookTM、DropboxTM、GmailTM、HotmailTM等)来发送敏感或机密的企业数据。相关补救行动216可使代理320结束软件应用318、卸载它或防止数据传送的其它行动。
使用情况22:与使用情况21有关,移动设备规则214可使企业代理320检测用户115或移动设备120何时连接到企业资源130并访问敏感或机密数据。在某些情况下,补救行动216可使代理320防止设备120将数据下载、复制和/或发送到任何其他人。
使用情况23:移动设备规则214可使企业代理320检测在移动设备收件箱中的SMS消息的数量何时超过规定数量,且相关补救行动216可使代理320向IT管理员警告其。
使用情况24:移动设备规则214可使企业代理320监控移动设备的消息收件箱并检测来自被记入黑名单中的成员的进入的SMS消息或包括机密或敏感的企业信息的消息。相关补救行动216可使代理320向IT管理员警告其,禁用设备120,删除敏感消息,禁用设备的消息发送能力,等等。
使用情况25:与使用情况24有关,移动设备规则214可使企业代理 320监控移动设备的外发消息队列并检测发往被记入黑名单中的电话号码的外发SMS消息或包括机密或敏感的企业信息的消息。相关补救行动216 可使代理320向IT管理员警告其,禁用设备120,删除敏感消息,禁用设备的消息发送能力,等等。
使用情况26:移动设备规则214可由企业代理320使用来检测新的或未授权的SIM卡何时被***移动设备120内。补救行动216可使代理320 将讯息发送到新SIM卡的企业管理机构,指示用户115移除SIM卡,等等。
使用情况27:移动设备规则214可由企业代理320使用来检测移动设备120的用户115的可疑行为的模式或签名。例如,规则214可规定涉及用户行为的某种逻辑组合,例如常去被记入黑名单中的或可疑的网站、被记入黑名单中的或可疑的IP地址的使用和/或被记入黑名单中的移动设备应用的安装或运行。如果代理320确定用户115的行为违反了规则214,则代理320可实施补救行动216,例如防止用户115登录到企业***110 中、从设备120删除所有企业数据等。
一些移动设备操作***不允许应用(例如企业代理320)看到其它应用正在设备120上做什么。这有时被称为在设备120上的应用的“沙箱化”。优选地,移动设备的应用(其使用是牵涉规定用户的可疑行为模式的移动设备规则214所必需的)被编程以将这些行为记录到下面更充分描述的安全文档容器336中。通过这么做,代理320可配置成通过访问容器336来读取那些可疑行为。
使用情况28:企业代理320可使用移动设备规则214来检测被规定为移动设备接收到未授权或可疑网络连接的问题。通常,移动设备120接收比它产生外发连接少得多的进入的网络连接,因为移动设备120的用户115 更多地向外连接(例如当用户115浏览网站、搜索在线商店等时)。因此,进入的网络连接可能是由于第三方由于邪恶的原因而侵入到移动设备120 内的企图,例如盗窃企业信息、禁用设备120等。当然,存在当进入的连接是经授权的或良性的时例如当移动设备120接收到电子邮件时的一些情况。然而,电子邮件一般通过设备120的公知端口被接收,代理可配置成确定该公知端口。因此,企业代理320可配置成通过检查连接的参数(例如连接的移动设备端口)来对进入的网络连接做出反应。如果检查导致确定进入的连接被授权,则代理320可配置成允许进入的连接。另一方面,如果检查导致确定进入的连接未被授权或是可疑,则代理320可配置成执行拒绝、防止或终止未授权或可疑的网络连接的相应的补救行动216。这个功能可被称为“移动防火墙”。
基于云的企业
在一些实施方式中,提供实质上或完全在云156内的企业***110。任何所需的移动设备管理***126、安全移动网关128和企业资源130在这样的基于云的企业***110中实质上或完全部署在云156内。元应用***可部署在云156和/或移动设备120内以帮助管理设备120。这样的实施方式可以或可以不包括非云企业***或部署在非云企业***内的元应用部件。
例如,企业(例如社会联网企业)可将移动设备120(例如iPadsTM) 提供给一组人,元应用部署在设备120内,且元应用部件和任何所需的***126、网关128和资源130只部署在云156内。在某些实施方式中,企业可使用存储在云156和/或设备120内的策略(例如访问策略218)以帮助管理或限制移动设备通信或对基于云的企业资源的访问。元应用也可用于监控/测量/补救由企业使用的云或基于云的服务。
在企业和移动设备之间的提高的通信体验
对于很多运营商网络125,一般存在一些地理区域,其中无线服务是弱的或不可用的。如果例如无线运营商在这样的区域有相对少的或没有蜂窝通信节点或塔,则会出现这种情况。参考图1A,在移动设备120和运营商网络125之间的网络连接142常常是不可靠的,特别是当移动设备120 位于具有弱或不存在的无线服务的这样的区域内时。因此,在移动设备120 和企业***110之间的网络连接142、144常常是不可靠的。
从移动设备120的观点看,当用户115输入待发送到企业***110的企业资源130的数据时,网络连接142的失去可能是不方便的。例如,软件应用318可配置成打开到移动设备管理***126或其它网络部件的网络连接142、144,并一般经由移动设备120的用户接口304从用户请求数据输入。例如,应用318可配置成在显示器326上提供一个或多个数据字段,数据字段配置成经由袖珍键盘324接收用户的数据作为文本输入。应用318 还可配置成一旦数据由用户115接收就将数据发送到企业资源130。然而,如果网络连接142在数据被发送到移动设备管理***126之前被失去,应用318就可丢弃用户115输入的数据。例如,在接收到报告失去的连接142 的TCP套接字错误时,应用318可丢弃数据。或者,应用318可试图将数据发送到移动设备管理***126并等待回复。因为连接142被失去,应用 318在某个时间段期间没有接收到回复时将最终超时。在任一情况下,应用318可丢弃用户115提供的数据,而数据不发送到移动设备管理*** 126。最终,一旦连接142恢复,这就使用户115重新输入数据。
从企业资源130和隧道中介224(或其它隧道中介)的观点看,可出现稍微类似的动态。特别是,当隧道中介224试图经由应用隧道将数据发送到移动设备120时,移动设备的网络连接142可变得失去。
在一些实施方式中,当在如上所述的移动设备120的软件应用318和企业资源130之间创建应用隧道时,设备的企业代理320和/或企业的隧道中介224(或其它隧道中介)可配置成通过缓存数据来增强在移动设备120 和企业资源130之间的通信。例如,代理320可将数据缓存在移动设备120 上,且隧道中介224可将数据缓存在移动设备管理***126内。
图10是示出一种方法的实施方式,其中移动设备120可响应于到企业计算机***110的网络连接142的失去而缓存由用户115输入的数据。该方法在图1A的上下文中被描述,但也可在其它计算***例如图1B-1E的任何***中被使用。该方法在步骤1002中开始,其中在移动设备120上的软件应用318向用户115提示输入数据。此时,应用隧道可经由隧道中介已经在应用318和企业资源130之间形成。在步骤1004中,应用318 例如经由移动设备120的用户接口304接收数据。在步骤1006中,应用 318产生请求以将所接收的数据发送到企业***110的企业资源130。在步骤1008中,企业代理320接收或拦截应用的请求以将所接收的数据发送到企业资源120。在决策步骤1010中,代理320确定在移动设备120和隧道中介224之间的网络连接142、144的可用性。如果网络连接142、144 是可用的,则在步骤1012中,代理320开始经由连接142、144将数据发送到隧道中介。例如,代理320可打开到隧道中介服务器的TCP套接字。如果代理能够发送从用户115接收的所有数据,则应用318可不采取与前面在步骤1004从用户接收的数据有关的进一步行动。在一些实施方式中,该方法可返回到步骤1004,如果用户115仍然将新数据输入到应用318。
如果网络连接142、144被失去和不可用,则在步骤1016中,代理320 可防止软件应用318检测到网络连接142、144的失去。例如,代理320 可防止应用318检测由连接142、144的失去引起的TCP套接字错误。然后在步骤1018中,代理320缓存还没有从移动设备120发送到隧道中介 224的所接收的数据的至少一部分(和优选地全部)。数据可缓存在任何适当的机器可读存储器设备例如随机存取存储器308、硬盘驱动器306、闪存或与移动设备120的存储卡端口307啮合的存储卡中。然后,在决策步骤1020中,代理320确定到隧道中介224的网络连接142、144是否恢复。在决策步骤1020中的确定可涉及代理320从代理订阅的通知服务接收通知。如果到隧道中介224的网络连接142、144没有恢复,则该方法可等待一段时间并接着返回到决策步骤1020。一旦网络连接142、144恢复,代理320就经由恢复的网络连接142、144将缓存的数据发送到隧道中介 224。
在所示实施方式中,企业代理320只在代理320确定到隧道中介224 的连接被失去(步骤1010)之后缓存用户提供的数据(步骤1018)。在其它实施方式中,代理320可配置成在确定到隧道中介224的连接是否被失去或不可用之前缓存用户提供的数据。例如,代理320可响应于在步骤1004 从用户接收到数据而缓存数据。在这样的实施方式中,在将数据发送到隧道中介224之后,可擦除缓存的数据。
将认识到,软件应用318可进行用户在几个连续的阶段中输入数据的过程,其中应用318试图在每个阶段之后发送所接收的数据。如果网络连接142、144在最终数据输入阶段之前被失去且应用318在连接142、144 被失去之后接收到额外的数据,则企业代理320可配置成缓存额外的数据的至少一部分(和优选地全部)。在那种情况下,代理320可通过经由恢复的网络连接142、144将缓存的额外数据发送到隧道中介来对网络连接 142、144的恢复做出响应。
如上面提到的,在步骤1016中,企业代理320可防止软件应用318 检测到网络连接142、144的失去。从软件应用318的观点看,连接142、 144在这样的情况下是可用的。就应用318来说,它具有IP地址和使用来通信的服务器端口。以这种方式,当事实上应用318只与代理320通信时 (当连接142、144被失去时)或经由代理320与隧道中介224通信时(当连接142、144是可用的时),可给应用318它正与企业资源130通信的印象。当连接142、144被失去时,代理320可给应用318企业资源130仍然在读取请求和对请求做出响应的过程中的印象,从而防止应用318超时。
移动设备用户的体验可类似于应用318的体验。用户的体验取决于应用318。所以如果代理320保持应用318不知道失去的网络连接142、144,用户也可保持不知道它。这种方法可防止例如在连接142、144失去时用户必须将数据重新输入到应用318中的前述问题。
在一些情况下,特别是当移动设备120正从企业***110下载大量数据时,通过将数据分组缓存在企业***110内来对失去的网络连接做出响应可能是有用的。图11是示出一种方法的实施方式,其中当到移动设备 120的网络连接142、144被失去时,企业计算机***110缓存待发送到移动设备120的数据。在企业资源130将数据发送到移动设备120的上下文中描述了该方法。虽然在图1A的上下文中描述了该方法,它可在其它计算***例如图1B-1E的任何***中被使用。该方法在步骤1102中开始,其中例如经由隧道中介224在移动设备应用318和企业资源130之间建立应用隧道,如上所述。例如,可响应于由软件应用318在移动设备120上产生的访问请求来建立应用隧道。在步骤1104中,隧道中介224从企业资源130接收一个或多个数据分组。在决策步骤1106中,隧道中介224确定在隧道中介224和移动设备120之间的网络连接142、144是否是可用的。如果网络连接142、144是可用的,则在步骤1108中,隧道中介224经由网络连接142、144将数据分组发送到移动设备120。另一方面,如果网络连接142、144不是可用的,则在步骤1110中,隧道中介224将一个或多个所接收的数据分组缓存在计算机可读存储器例如移动设备管理***126 的存储器中。在步骤1110中,隧道中介224可配置成代表移动设备120 向企业资源130发送数据的接收的一个或多个确认,如果资源130从设备 120预期这样的确认。在任一步骤1108和1110之后,隧道中介224在决策步骤1112中确定隧道中介224是否从企业资源130接收额外的数据分组。如果是,则该方法返回到决策步骤1106。如果否,则该方法可在步骤 1114中结束。
在所示实施方式中,隧道中介224只在中介224确定到移动设备120 的连接被失去(步骤1106)之后才缓存数据(步骤1110)。在其它实施方式中,隧道中介224可配置成在确定到移动设备120的连接被失去或是可用的之前缓存数据。例如,隧道中介224可响应于来自企业资源130的数据的接收而缓存数据。在这样的实施方式中,可在将数据发送到移动设备120之后擦除缓存的数据。
如上面提到的,在图10所示的方法期间,在移动设备120上的企业代理320使用上面描述的方法优选地给软件应用318(其可以是由企业资源 130发送的数据的预期接收者)网络连接142、144还没有被失去的印象。类似地,例如根据图11所示的方法,隧道中介(例如中介224)可配置成给企业资源130网络连接142、144还没有被失去的印象。
在一些实施方式中,隧道中介(例如中介224)和/或企业代理320配置成压缩通过应用隧道传输的数据。隧道中介可配置成压缩通过资源网络连接152从企业资源130(或在企业***110之外的另一资源)接收的数据,并通过网络连接142、144将所压缩的数据发送到移动设备120。当接收到所压缩的数据时,企业代理320可配置成在数据被提供到软件应用318 之前对数据解压缩,软件应用318是数据的预期接收者。因此,应用318 不需要能够对数据解压缩。
类似地,移动设备的企业代理320可配置成压缩从软件应用318拦截或接收的数据,并通过网络连接142、144将所压缩的数据发送到隧道中介。当接收到所压缩的数据时,隧道中介可配置成在数据被提供到企业资源130(或在企业***110之外的另一资源)之前对数据解压缩,企业资源130是数据的预期接收者。因此,企业资源130不需要能够对数据解压缩。
这个压缩功能在移动设备120正发送或接收大数据文件时或当移动设备120在网络连接142、144具有低带宽的区域中时可能是有用的。在某些实施方式中,数据被压缩大约20-95%。数据压缩的程度可取决于数据类型、网络连接142、144和152的可用数据带宽以及其它因素。而且,应用318和移动设备120的用户115都可保持不知道数据的压缩和解压缩。
在一些实施方式中,应用隧道可由企业***110使用来用于错误校正 (例如奇偶校验)、失去的数据分组的重发等。隧道中介224可用于线程不安全服务器应用的负载平衡或线程安全/同步。
移动设备的“远程控制”
在一些实施方式中,可提供“远程控制”***和方法以允许企业的移动设备120在相对于移动设备120位于远处的计算机(“控制器计算机”) 处由一个或多个帮助台操作员、管理员或其他人(在本文被共同称为“控制器”)诊断和控制。现在描述这样的***和方法。
关于图2和12,移动设备管理***126可配置成便于在移动设备120 和安装有远程控制模块1202的控制器计算机1200之间的“远程控制会话”。控制器计算机1200由在本文被称为控制器1204的用户操作,并可位于企业计算机***110(图1A)内或之外。在这个上下文中,隧道中介224可帮助形成在控制器计算机1200和移动设备120的企业代理320(图 3A)之间的应用隧道。
参考图12,远程控制模块1202优选地配置成向与隧道中介224相关的服务器(例如存储有隧道定义228的服务器或代理服务器)发起网络连接(例如通过互联网)。在一些实施方式中,这个连接是经由应用隧道,例如上面描述的那些应用隧道。将认识到,企业可具有多个移动设备管理***126。因此,远程控制模块1202可允许控制器1204指定要连接的一个或多个隧道中介224。
移动设备120的用户115可能与移动设备120的用户遇到技术困难,并可能希望从帮助台服务寻求帮助。可由或为企业或可选地为多个企业排他地操作帮助台服务。在一些实施方式中,用户115可通过联系帮助台服务(例如通过电话呼叫、电子邮件、文本消息等)请求与控制器计算机1200 的远程控制会话。在这样的实施方式中,与帮助台服务相关的控制器1204 可接着使控制器计算机1200的远程控制模块1202将对在控制器计算机 1200和移动设备120之间的远程控制会话的请求发送到用户的移动设备 120。在一些实施方式中,移动设备120的企业代理320允许用户115请求或发起与控制器计算机1200的远程控制会话。在一些实施方式中,远程控制会话可由控制器1204发起而不首先由用户115请求。
图13是示出一种方法的实施方式的流程图,其中控制器计算机1200 (图12)参与与移动设备120的远程控制会话。该方法在远程控制模块 1202连接到与隧道中介224(或与移动设备120的远程控制会话的另一中介)相关的服务器的时刻开始。
在步骤1302中,远程控制模块1202为控制器1204提供可用于远程控制会话的一个或多个移动设备120的识别。这可通过远程控制模块1202 为了这样的识别而将请求发送到移动设备管理***126和移动设备管理器 202通过查找在移动设备信息204中的信息做出响应并将所请求的信息发送到控制器计算机1200来实现。所提供的识别可包括例如被分配到移动设备120的用户115的名字或用户名。可根据任何标准例如由控制器1204 对远程控制模块1202规定的标准来过滤(例如通过移动设备管理器202 或远程控制模块1202)所识别的设备120。例如,远程控制模块1202可以列出仅仅当前连接到企业***110的那些移动设备120或仅仅是规定用户组的成员的那些移动设备120或用户115。此外,远程控制模块1202可配置成允许控制器1204对照所登记的移动设备120进行搜索,以例如搜索特定的设备120或用户115。除了对控制器1204识别移动设备120的用户115以外,远程控制模块1202也可配置成提供关于所识别的设备120 的额外信息,例如设备型号、操作***版本、平台等。移动设备管理器202 可从移动设备信息204得到这样的信息,例如移动设备特性208。
仍然参考图13,在步骤1304中,远程控制模块1202从控制器1204 接收对移动设备120中的至少一个的选择和/或发起与选定设备120的远程控制会话的指令。在步骤1306中,远程控制模块1202将对远程控制会话的请求发送到选定移动设备120。在远程控制会话经由应用隧道被进行的实施方式中,请求可被发送到隧道中介224。在其它实施方式中,请求被直接发送到选定移动设备120。在步骤1308中,控制器计算机1200开始从移动设备120重复地接收数批最近更新的“用户接口仿真数据”。在应用隧道上下文中,这个数据经由隧道中介224从移动设备120流动到控制器计算机1200。用户接口仿真数据可包括移动设备120的企业代理320使用各种设备显示“抓取”方法(也被称为“屏幕抓取”和/或“屏幕缓冲区捕获”)中的任一种来捕获的数据,如通常在桌面计算机领域中已知的。例如,在桌面计算机环境中,用于向另一计算机提供图形接口的一个已知的协议是由MicrosoftTM开发的远程桌面协议RDP。
继续参考图13,在步骤1310中,远程控制模块1202使用用户接口仿真数据来仿真移动设备120的用户接口304的当前状态。例如,图14示出控制器计算机1200的屏幕显示器的实施方式,其包括仿真在参加与控制器计算机1200的远程控制会话的移动设备120的用户接口304的虚拟用户接口1402。再次参考图13,步骤1308和1310通常重复地且一个接一个地出现。因此,一批用户接口仿真数据被接收到(步骤1308)并接着由远程控制模块1202使用以仿真移动设备的用户接口304(步骤1310),且然后新的一批用户接口仿真数据被接收到(步骤1308)并接着用于仿真用户接口304(步骤1310),等等。以这种方式,远程控制模块1202保持更新所仿真的用户接口以反映用户接口304的当前状态。
优选地,控制器计算机1200的远程控制模块1202允许控制器1204 向移动设备120发出命令。这样的命令在本文被称为“远程控制命令”。因此,仍然参考图13,远程控制模块1202可在步骤1312中从控制器1204 接收远程控制命令。在一些实施方式中,控制器1204可经由仿真用户接口1402提供这些命令。远程控制命令可用于访问安装在移动设备120上的资源。在这个上下文中,移动设备资源可包括操作***特征和功能、软件应用、移动设备硬件、数据资源、文件等。然后在步骤1314中,远程控制模块1202将远程控制命令发送到移动设备120。至少一些远程控制命令可以是用户115原本可直接输入到移动设备120中的命令。移动设备120 可对这样的远程控制命令做出反应,好像它们经由设备120的用户接口304被接收到一样。这些类型的远程控制命令一般将使移动设备120的用户接口304改变,这又将被反映在从移动设备接收的新的一批用户接口仿真数据中。因此在步骤1316中,远程控制模块1202从移动设备120接收更新的用户接口仿真数据,反映在设备120对至少一些远程控制命令做出反应之后的设备的用户接口304的状态,好像它们经由用户接口304被接收到一样。然后在步骤1318中,远程控制模块1202使用更新的用户接口仿真数据来仿真移动设备120的用户接口304的当前状态。
在某些实施方式中,远程控制模块1202可允许控制器1204查看关于移动设备120的信息。控制器对信息的查看可从移动设备120的用户接口 304分离。因此在步骤1320中,远程控制模块1202可从控制器1204接收对关于移动设备120的信息的请求。在步骤1322中,远程控制模块1202 可将对信息的请求发送到移动设备120。该请求可本质上使返回所请求的信息的移动设备特征的API(例如任务管理器、文件管理器、注册表编辑器等的API)自动化。在步骤1324中,远程控制模块1202可从移动设备 120接收所请求的信息,而优选地不将该信息显示在仿真用户接口1402内。在步骤1326中,远程控制模块1202可在与控制器计算机1200相关的显示器上显示所请求的信息,优选地在除了仿真用户接口1402以外的位置上。可在步骤1320和1322中请求的、在步骤1324中接收的、并在步骤 1326中显示的移动设备信息的例子包括移动设备的***信息、出现在移动设备上的过程、存储在移动设备上的文件、移动设备的注册表和其它数据。
例如,图14的屏幕显示器包括在仿真用户接口1402旁边显示的***信息显示器1404。***信息显示器1404可提供例如移动设备的操作***版本、平台、型号、硬件序列号、CPU类型、总存储容量、在使用中的存储器、空闲的存储器、总RAM、在使用中的RAM、空闲的RAM、总存储卡存储器(例如SD卡)容量、在使用中的存储卡存储器、空闲的存储卡存储器、AC功率可用性、剩余电池功率和/或从剩余电池功率可用的设备使用时间的一些或全部。将认识到,也可提供额外的信息。
在另一例子中,图15示出在参加与移动设备120的远程控制会话的控制器计算机1200的屏幕显示器的实施方式,其中屏幕显示器包括显示出现在移动设备120上的应用过程的任务管理器显示器1502。所示任务管理器显示器1502被示为在仿真用户接口1402旁边。任务管理器显示器1502 可显示例如与过程相关的应用的名称、由过程使用的RAM的数量、由过程利用的CPU功率的百分比、由过程消耗的CPU时间的数量、与过程相关的线程的数量和设备路径中的一些或全部。将认识到,也可提供涉及这样的过程的额外信息。在一些实施方式中,控制器1204可(向远程控制模块1202)发出与任务管理器相关的远程控制命令,例如终止在移动设备 120上的一个或多个过程。例如,可响应于经由任务管理器显示器1502做出的选择来发出这样的远程控制命令。
图16示出在参加与移动设备120的远程控制会话的控制器计算机 1200的屏幕显示器的实施方式,其包括用于查看存储在移动设备120上(在任一前面提到的存储器中)的文件、将文件从移动设备120下载到控制器计算机1200和/或将文件从控制器计算机1200或从不同的联网计算机上传到移动设备120的接口1602。由控制器1204向远程控制模块1202发出的查看文件、下载文件和/或上传文件的命令可作为远程控制命令发送到移动设备120。
在另一例子中,图17示出在参加与移动设备120的远程控制会话的控制器计算机1200的屏幕显示器的实施方式,其包括用于查看和/或编辑移动设备120的注册表的接口1702。所示注册表接口1702被示为在仿真用户接口1402旁边。
图18示出移动设备120参与与控制器计算机1200的远程控制会话的方法的实施方式的流程图。图18所示的方法可相应于图13所示的方法,除了图18的方法是从移动设备120的观点示出以外。如在本文其它地方描述的,移动设备120可包括配置成从移动设备120的用户115接收本地命令的用户接口304,用于访问安装在移动设备上的资源。此外,用户接口304一般配置成例如经由屏幕或显示器326将信息传送到用户115。
该方法在步骤1802中开始,其中移动设备120的企业代理320从控制器计算机1200接收请求以参与与控制器计算机的远程控制会话。在一些实施方式中,代理320可配置成自动接受这样的请求。在其它实施方式中,代理320配置成例如通过向用户提示许可的指示从用户115得到参与远程控制会话的许可。在所示方法中,代理320在决策步骤1804中确定是否接受请求。如果代理320不接受请求(例如由于用户115拒绝请求,或由于用户115简单地在预定时间段内不给出许可),则该方法可在步骤1806 中结束。
另一方面,如果企业代理320接受请求,则代理320通过请求或建立与控制器计算机1200的应用隧道连接并在步骤1808中从移动设备120得到用户接口仿真数据(上面描述的)来对请求做出响应。在步骤1810中,代理320将用户接口仿真数据发送到控制器计算机1200。代理320可例如以固定的时间间隔或也许只在改变对移动设备的用户接口304出现时重复地发送更新的用户接口仿真数据。
仍然参考图18,在步骤1812中,代理320可从控制器计算机1200接收远程控制命令,用于访问安装在移动设备120上的资源。如上面提到的,这样的移动设备资源可包括操作***特征和功能、软件应用、移动设备硬件、数据资源、文件等。这些远程控制命令中的至少一些可以是用户115 可原本经由用户接口304直接输入到移动设备120中的命令。因此在步骤 1814中,移动设备120对至少一些远程控制命令做出反应,好像它们经由用户接口304被接收一样。步骤1814可涉及代理320将远程控制命令用设备的自然语言转移和/或提供到设备的硬件和/或软件,方式与命令经由移动设备的用户接口304被接收到时设备的硬件和/或软件将接收命令的方式相同。因为步骤1814可导致对设备的用户接口304的变化,代理320 可配置成随后将更新的用户接口仿真数据发送到控制器计算机1200。
在步骤1816中,移动设备120的企业代理320从控制器计算机1200 接收对关于移动设备的信息的请求。例如,这样的信息可包括上面在图13 的步骤1320、1322、1324和1326中描述的信息。在步骤1818中,代理 320将所请求的信息发送到控制器计算机1200,而不在移动设备120的用户接口304上显示信息。
在进行与控制器计算机1200的远程控制模块1202相关的远程控制会话时,移动设备120的企业代理320可配置成允许控制器1204在移动设备120上执行行动。在一些情况下,这些可包括甚至设备120的用户115 也不能执行的形动(例如,如果远程控制模块1202具有在安装在移动设备120上的软件应用318的功能之外的功能)。
将认识到,远程控制模块1202可配置成允许控制器1204在远程控制会话期间对移动设备120进行很多其它操作。例如,远程控制模块1202 可配置成允许控制器1204关闭或重启移动设备120。在另一例子中,远程控制模块1202可配置成允许控制器1204将新软件安装到移动设备120上。这可涉及将软件应用安装文件从控制器计算机1200或另一联网计算机发送到移动设备120,以及然后安装应用。在另一例子中,远程控制模块1202 可配置成允许控制器1204从移动设备120卸载软件应用318。很多其它操作是可能的。
在一些实施方式中,控制器计算机1200的远程控制模块1202和移动设备120的企业代理320配置成使控制器1204和移动设备用户115能够使用控制器计算机1200和移动设备120与彼此通信。例如,远程控制模块 1202和企业代理320可配置成使允许控制器1204和用户115可听得见地向彼此讲话的互联网协议上话音(VOIP)会话变得可能。移动设备120可使用移动设备120的扬声器328来向用户115可听得见地广播控制器的语音(经由控制器计算机1200的麦克风)。可选地,用户115可通过将一对耳机连接到移动设备120的耳机插口来倾听控制器的语音。类似地,控制器计算机1200的扬声器可向控制器1204广播用户的语音(在移动设备120 的麦克风330处输入)。
在另一例子中,远程控制模块1202和企业代理320可配置成使在控制器1204和用户115之间的文本聊天会话变得可能。图19A示出参加与移动设备120的远程控制会话的控制器计算机1200的屏幕显示器的实施方式,其包括聊天会话接口。在所示实施方式中,远程控制模块1202产生聊天会话区域1902,其中控制器1204可输入待发送到用户115的文本讯息,且其中用户的文本讯息被显示给控制器1204。所示聊天会话区域1902 被示为在仿真用户接口1402旁边。图19B示出在图19A中仿真的移动设备120的实施方式。企业代理320优选地配置成在移动设备120的屏幕326 上显示在图19A的聊天会话区域1902中显示的实质上相同的文本通信。
在另一例子中,远程控制模块1202和企业代理320可配置成使在控制器1204和用户115之间的共享白板通信变得可能。图20示出参加与移动设备120的远程控制会话的控制器计算机1200的屏幕显示器的实施方式,其包括共享白板特征。在所示实施方式中,远程控制模块1202允许控制器1204将图像2002叠加到仿真用户接口1402上。移动设备120的代理320可配置成接收图像2002并接着将它们叠加到移动设备120的屏幕326 上。图像2002可包括例如文本、图等。在所示屏幕显示器中,控制器1204 圈住在仿真用户接口1402上的图标并叠加词“click here”(点击这里)。
在某些实施方式中,远程控制模块1202配置成允许控制器1204调节仿真用户接口1402的视图。例如在各种实施方式中,远程控制模块1202 配置成允许控制器1204调节仿真接口的分辨率、色彩配合、每像素比特 (BPP)、缩放水平、旋转方位等。此外,远程控制模块1202可配置成允许控制器1204调节“刷新率”,移动设备的企业代理320以该刷新率将更新的用户接口仿真数据发送到控制器计算机1200。远程控制模块1202也可配置成允许控制器1204规定从移动设备120接收的数据是否由企业代理320压缩,以及规定压缩的程度。
在某些实施方式中,远程控制模块1202配置成捕获并保存远程控制会话的方面。例如,远程控制模块1202可配置成允许控制器1204捕获仿真用户接口的图像,将图像打印到硬拷贝打印输出上,记录远程控制会话的视频,等等。远程控制模块1202可配置成允许控制器1204编辑所捕获的图像或视频,和/或经由电子邮件等将所捕获的媒体文件发送给其他人。
在一些实施方式中,远程控制模块1202可配置成允许控制器1204创建用于激活或执行移动设备120的某些特征、设置和/或软件应用的宏。
关于安全移动网关的分析
再次参考图4,安全移动网关128可包括已记录数据的仓库410。仓库 410可存储指示在移动设备120处产生或由安全移动网关128产生的状态信息的数据。例如,已记录数据可包括各种信息,例如关于通过网关过滤器401对移动设备访问请求的允许和拒绝的数据。已记录数据可以可选地或此外包括由被管理的移动设备120记录并从被管理的移动设备120提取的数据。这样的已记录数据可包括例如指示被下载到移动设备120的文档、在特定的移动设备120上的***状态、在特定的移动设备120上启动的程序、特定移动设备120所访问的网站或其它网络资源的记录、与在与被管理的移动设备120相关的消息上复制的用户的电子邮件账户相关的信息、附加到电子邮件或由移动设备120接收的其它消息的文档等的数据。已记录数据可包括从移动设备请求402得到的数据。例如,对于支持ActiveSync 的安全移动网关128,已记录数据可包括来自ActiveSync请求402的 DeviceId、DeviceType、User和/或UserAgent以及由该请求发出的 ActiveSync命令。在访问拒绝的情况下,已记录数据也可包括被违反的网关规则404的提供者408以及指示拒绝的原因的信息。如果访问基于移动设备管理***126的被违反的企业访问策略218被拒绝,则网关128可确定哪个策略218从移动设备管理***126被违反并将它存储在已记录数据的仓库410中。已记录数据也可包括移动业务数据和/或关于请求402的其它网络信息,例如发出请求的移动设备120的IP地址。可根据记录标准例如Syslog来存储已记录数据,使得数据由其它应用可读取。
已记录数据可提供给分析服务414或由分析服务414访问。在所示实施方式中,安全移动网关128包括周期性地读取已记录数据410并将它的一些或全部发送到分析服务414的日志重定向器服务412。日志重定向服务412优选地可配置成使得IT管理员可引导它只发送匹配可配置标准的已记录数据的那些部分。例如,日志重定向器服务412可配置成只发送涉及被拒绝的请求402的已记录数据或只发送涉及被允许的请求402的已记录数据或基于不同的标准的已记录数据。此外,日志重定向器服务412和/ 或已记录数据的仓库410可包括使其它***(例如分析服务414)能够查询或提取涉及已记录请求402的数据例如用户数据、移动设备数据、移动业务数据(例如发送者设备的IP地址)等的数据共享接口。将理解,为了安全或其它目的,参考关于安全移动网关128的分析描述的原理和优点可应用于实现各种数据挖掘和关联。作为例子,如果已记录数据指示移动设备120已访问某些被禁止的站点以及也最近下载然后被转发到外部电子邮件的机密文档,则这个信息可以是对企业资源的访问的拒绝的基础。
分析服务414可包括例如安全信息管理(SIM)***、安全事件管理 (SEM)***或安全信息和事件管理(SIEM)***。SIEM解决方案是SIM 和SEM解决方案的组合。分析服务414可配置成基于已记录数据监控、分析和/或产生并发送警告、通知或报告。分析服务414可配置成检测已记录数据中的模式,提供对进一步的分析或行动有用的度量,并诊断与数据相关的问题。分析服务414可配置成处理根据各种标准例如Syslog格式化的数据。例如,分析服务414可利用Splunk——一种具有这些类型的特征的软件程序。分析服务414可以是企业***110的部分,或可选地可以是用于分析在仓库410中记录的类型的数据的第三方***的部分。
例如,分析服务414可配置成通过将讯息(例如电子邮件或SMS消息) 发送到被拒绝的用户115来处理安全移动网关128所拒绝的访问,可能指定访问的拒绝的原因(例如“你对XYZ公司的网络的访问的请求被拒绝,因为你的移动设备不符合企业反对安装AngryBirdsTM软件应用的策略”)。
图21示出根据一个实施方式的可被提供到分析服务414的已记录数据的例子。在这个例子中,已记录数据包括行和列的表格。每行相应于移动设备访问请求402。列2102和2104包括分别指示安全移动网关128记录相应行的数据时的日期和时间的数据。关于列2106,“优先级”是识别消息的收集者和级别的可配置Syslog设置。优先级是在所有Syslog收集类型当中适用的可配置项目。在标题“Hostname”下的列2108是提供相应行的数据的主机的IP地址。在所示实施方式中,主机名2108是网关128的 IP地址。在标题“消息”下的列2110包括关于选定移动设备访问请求402 的各种信息。所示消息数据包括请求被接收到时的日期和时间、网关128 对请求采取的行动(允许或拒绝)、与请求相关的用户(在第一行中,“jmcginty”)、移动设备类型和当提交访问请求时使用的移动设备的IP地址。
图22示出用于配置标准的分析服务414的接口的例子,在该标准下,分析服务基于安全移动网关128所记录的数据来发送警告。所示接口是 Splunk SIEM工具的部分。接口允许管理员输入警告将被发送时的条件 (“Splunk警告:允许ActiveSync用户警告”)、警告的内容(“包括搜索结果”)等。
移动设备用户的认证
企业网络一般在用户的计算机与企业资源的事务开始时认证其用户。在现有***中,认证通常涉及从用户的客户端设备接收用户名和密码的登录过程,验证用户名相应于经授权用户,并验证密码是用户名的证明密码。虽然一些企业资源130可配置成对与设备的所有事务消费用户名数据(例如以基于用户ID、用户角色206或其它组成员关系等来允许访问),其它资源130并不是如此。对于一些类型的企业资源130,在认证之后,用户被允许进行与资源130的至少一些事务,而不提供登录信息。对于在与经认证用户的最后一次事务之后的规定时间段,在企业的防火墙下游的一些企业资源130假设使用经认证的IP地址(即向企业网络发送用户的登录信息的设备的IP地址)的新请求来自经授权用户。这样的企业资源通常不对与用户的计算设备的每次事务请求并确认用户的登录信息。
虽然该方法通常适合于非移动客户端设备,它可呈现移动设备特有的安全风险。移动设备在使用中时常常改变它们的IP地址。例如,当在移动的车辆中时连接到蜂窝网络的移动设备可在不同的蜂窝塔之间切换。类似地,移动设备可在不同的Wi-Fi网络之间切换。移动设备也可在与单个蜂窝塔或Wi-Fi网络相关的不同IP地址之间切换。因此,通过只检查请求的 IP地址来确定与进入的移动设备请求相关的用户的企业资源130冒着与不是用户的人进行事务的风险。
图23示出一种方法的实施方式,分析服务414可通过该方法利用安全移动网关128(图4)以帮助确定是否和/或如何对移动设备对访问或使用企业资源130的请求2302做出响应。例如,企业资源130可经由不同于安全移动网关128的网关接收移动设备请求2302。可经由应用隧道接收请求2302。虽然所示实施方式描绘查询分析服务414以找到用户信息(例如用户115的ID号)到移动业务数据(例如IP地址)的绑定的资源130,除了资源130以外的部件(例如隧道中介224)也可配置成完成相同的操作。
在所示实施方式中,安全移动网关128包括例如网关过滤器401和已记录数据的仓库410,如上所述。已记录数据可包括来自由例如网关过滤器401接收的移动设备访问请求402的数据。例如,如果网关128支持 ActiveSync,则已记录数据可包括来自ActiveSync请求402的DeviceId、 DeviceType、User和/或UserAgent特性值以及由请求402发出的ActiveSync 命令。
请求2302可包括移动业务数据,例如发送请求2302的移动设备120 的IP地址。请求2302可以或可以不包括关于发送请求2302的移动设备 120的数据。企业资源130可接收请求2302并向分析服务414发送用户确定请求2304。用户确定请求2304包括请求2302的移动业务数据。用户确定请求2304可此外包括企业资源130接收到请求2302时的时间、关于发送请求的移动设备120的数据以及与请求2302相关的其它数据。在一些实施方式中,用户确定请求2304可包括企业资源130或另一企业部件认为是请求2302的发送者的用户115的标识,使得分析服务414本质上被请求验证所识别的用户115是否是发送请求2302的实际人。
分析服务414可使用用于确定与由企业资源130接收的请求2302相关的用户信息的用户确定算法。在这个上下文中,用户信息可包括请求2302 是否由用户115(与不和企业相关或向企业登记的人相反)发送的确定、在用户确定请求2304中识别的用户115是否是将请求2302发送到企业资源130的人的确定和/或发送请求2302的用户115的识别(例如用户名)。用户确定算法可此外确定指示在所计算的绑定中的置信度级别的可靠性分数——特定的用户115是发送请求2302的实际人的置信程度。分析服务 414可产生并发送包含由用户确定算法产生的结果的响应2306。算法的结果可包括用户信息和/或可靠性分数。
在图23所示的实施方式中,企业资源130接收请求2302并将用户确定请求2304发送到分析服务414,且分析服务414将响应2306发送回企业资源130。在这样的实施方式中,企业资源130可配置成使用在响应2306 内的数据来确定如何对请求2302做出响应。例如,企业可通过对发送请求2302的设备120做出响应、忽略请求2302、将警告发送到IT管理员等来对请求2302做出响应。企业资源130可配置成至少部分地基于可靠性分数(如果被提供)和/或在请求2302内发出的特定行动或命令来做出这个确定。例如,企业资源130可配置成需要相对高的可靠性分数,如果请求2302企图下载敏感或机密的企业数据,同时强加相对低的可靠性分数,如果请求2302企图将数据上传到资源130。企业资源130可配置成允许管理员配置可靠性分数阈值,资源130将响应于请求2302在该可靠性分数阈值处采取任何给定的行动。
在其它实施方式中,在企业资源130的上游的部件(例如网关、防火墙、代理服务器、DLP监控设备、隧道中介、SSL业务检查设备或除了安全移动网关128以外的其它部件)接收请求2302,产生用户确定请求2304,并将用户确定请求2304发送到分析服务414,且分析服务414将响应2306 发送到在企业资源130的上游的所述部件。在这些实施方式中,上游部件可配置成使用在资源2306内的数据来确定是否将请求2302传递到企业资源130。此外,上游部件可配置成至少部分地基于可靠性分数和/或在请求 2302内发出的行动或命令来做出这个确定。例如,如果请求2302企图下载敏感或机密企业数据,上游部件可配置成只有当可靠性分数超过相对高的值时才将请求2302发送到企业资源130。在另一例子中,如果请求2302 企图将数据上传到企业资源130,则上游部件可配置成需要相对低的可靠性分数用于将请求2302传递到资源130。上游部件可配置成允许管理员配置可靠性分数阈值,上游部件将响应于请求2302在该可靠性分数阈值处采取任何给定的行动。
在一些实施方式中,分析服务414将用户115到移动业务数据(例如 IP地址)的它的所计算的绑定主动发送到企业资源130。分析服务414可将绑定直接发送到资源130和/或在资源130的上游的一个或多个部件,其将绑定或相关数据附加到被传输到资源130的移动设备通信。在这些方法中,资源130可使用所计算的绑定而不从分析服务414请求它们。
由分析服务414使用的用户确定算法可包括扫描移动业务数据的一些或所有已记录数据(从由安全移动网关128接收的移动设备请求402),其匹配在用户确定请求2304内接收的移动业务数据。对于具有与请求2302 的移动业务数据匹配的移动业务数据的任何请求402,算法也可包括从已记录数据410确定在请求402内提供的用户数据或移动设备数据。例如,用户数据和移动设备数据可分别包括ActiveSync请求402的User特性和 DeviceID特性的值。分析服务414可通过例如从移动设备管理***126请求用户数据和/移动设备数据来确定相应于用户数据和/移动设备数据的用户115。例如,User和DeviceID特性值可相应于在移动设备信息204中的特定用户115。如果已记录数据不包括(或分析服务414不能找到)与请求2302的移动业务数据匹配的移动业务数据,则分析服务414可确定请求2302不由用户115发送。
为了确定用户信息并计算可靠性分数,用户确定算法可评估各种因素。在某些实施方式中,用户确定算法比较在请求2302由企业资源130接收时的时间与具有匹配请求2302的数据的移动业务数据的移动设备访问请求402的接收时间(由安全移动网关128)。例如,假设ActiveSync请求 402具有相应于用户115的User和DeviceID特性值。进一步假设在请求 402内的发送者IP地址与请求2302的发送者IP地址相同,以及从企业资源130(或上游部件)接收到请求2302时的时间起在相对窄的时间段内(之前或之后)请求402由安全移动网关128接收。在这样的情况下,分析服务414可计算指示与请求402相关的用户115是将请求2302发送到企业资源130的人的高可靠性分数。当在请求2302的接收和具有相同的发送者 IP地址的时间上最接近的请求402的接收之间的时间段增加时,用户确定算法可计算较低可靠性分数。另一方面,如果在请求402内的发送者IP地址不同于请求2302的发送者IP地址,则分析服务414可计算相对低的可靠性分数和/或确定与请求402相关的用户115可能不是将请求2302发送到企业资源130的人。此外,如果在从请求2302的接收的时间起(之前或之后)的规定的或动态地计算的时间窗内网关128没有接收到具有与请求2302相同的发送者IP地址的请求402,则分析服务414可计算相对低的可靠性分数。
在某些实施方式中,用户确定算法评估频率,企业网络以该频率看到与某些移动业务数据例如IP地址相关的特定用户115。例如,假设安全移动网关128在包含企业资源130接收到请求2302时的时间的相对短的时间窗内接收到具有相应于特定用户115的用户值的很多ActiveSync请求 402。进一步假设所有所述ActiveSync请求402包括与请求2302的发送者 IP地址相同的发送者IP地址。在这些条件下,分析服务414可计算指示与请求402相关的用户115是将请求2302发送到企业资源130的人的非常高的可靠性分数。另一方面,如果在请求402内的发送者IP地址不同于请求2302的发送者IP地址,则分析服务414可计算非常低的可靠性分数和/ 或确定与请求402相关的用户115可能不是将请求2302发送到企业资源 130的人。
在某些实施方式中,用户确定算法评估与特定的用户115相关的不同访问请求402具有不同的移动业务数据的程度。例如,来自特定用户115 的访问请求402的字符串具有很多不同的发送者IP地址的事实可能指示用户115在活动中并不断地切换IP地址,同时与企业***110通信。在这些情况下,分析服务414可计算比如果来自特定用户115的所有访问请求402 具有与请求2302相同的发送者IP地址相对更低的可靠性分数。在一个特定的方法中,分析服务414确定(1)具有相应于感兴趣的特定用户115 的用户数据、(2)具有不匹配在用户确定请求2304内接收的移动业务数据的移动业务数据以及(3)由安全移动网关128在包含在用户确定请求 2304中的接收时间的预定的或动态地计算的时间窗内接收的访问请求402 的总数。当所确定的访问请求402的总数增加时,分析服务414可减小所计算的可靠性分数(在请求2302来自特定用户115的置信度水平中)。
在某些实施方式中,用户确定算法考虑请求2302的IP地址是否来自向企业***110登记或以其他方式与企业***110相关的IP地址的已知块或子集。IP地址的这样的块或子集可经由企业自己的设备是可用的,主要用于由企业员工使用,例如Wi-Fi网络、企业VPN分配块或漫游外部IP 地址。可向安全移动网关128登记IP地址的块或子集。如果请求2302从与企业相关的IP地址发送,则算法可配置成计算较高的可靠性分数。
将理解,用于计算可靠性分数的用户确定算法除了上面描述的因素以外还可包括其它因素。还将理解,算法不需要考虑上面描述的所有因素,并可使用其任何子组合。
在图23所示的实施方式中,分析服务414配置成检查在安全移动网关 128的仓库410中的已记录数据以建立用户和/或移动设备到移动业务数据 (例如IP地址)的绑定。然而,分析服务414可配置成查询移动请求数据的多个不同的日志以计算这样的绑定。如果企业***110具有多个不同的安全移动网关128(例如对于移动设备通信的不同类型或协议),则分析服务414可配置成查询来自每个网关128的已记录数据。
分析服务414可配置成产生用户和移动设备到移动业务数据(例如IP 地址)的绑定的报告和显示。企业***110可包括用于查看这样的绑定的基于web的或其它类型的用户接口。例如,可经由移动设备管理***126 的用户接口来显示这样的信息。
在优选实施方式中,企业***110的各种部件可使用由分析服务414 产生的、用户和/或设备到移动业务数据的绑定来跟踪或记录一个或多个移动设备120的网络使用事件。分析服务414可以是可查询的并配置成经由例如web服务与其它部件共享它的信息。
如上面提到的,分析服务414可配置成基于已记录数据产生并发送通知给用户115或IT管理员。此外,分析服务414可配置成至少部分地基于根据用户确定算法计算的一个或多个可靠性分数来发送这样的通知。例如,如果大量请求被拒绝,且如果与其相关的可靠性分数满足规定阈值,则分析服务414可配置成发送适当的警告。另一方面,分析服务414可配置成忽略涉及低可靠性分数的情况。如果存在大量访问拒绝,但它们都具有低可靠性分数,则可能不值得产生并发送通知。
为了安全目的,分析服务414可配置成对服务414产生的用户、设备和移动业务数据绑定加密。
安全文档容器
再次参考图3A。在一些实施方式中,移动设备120可包括可被称为“容器”的安全文档容器336。如在本文解释的,容器336可帮助防止企业信息扩展到移动设备120的不同应用和部件以及其它设备。企业***110(其可部分地或全部在云156内)可将文档传输到设备120,文档可存储(例如通过企业代理320)在容器336内。容器336可防止未授权应用318和设备120的其它部件访问在容器336内的信息。对于允许用户115使用他们自己的移动设备120用于访问、存储和使用企业数据的企业,在设备120 上提供容器336帮助保护企业数据。例如,在设备120上提供容器336可将企业数据集中在每个设备120上的一个位置中,并可便于从设备120选择性地或完全删除企业数据。
如在这个上下文中使用的,“文档”可包括任何计算机可读文件,包括文本、音频、视频和/或其它类型的信息或媒体。文档可包括这些媒体类型的任何单个类型或组合。
安全文档容器336可包括实现存储文档和/或其它类型的文件的文件***338的应用。文件***338可包括移动设备120的计算机可读存储器的一部分。文件***338可与移动设备120的计算机可读存储器的其它部分逻辑地分离。以这种方式,企业数据可存储在安全文档容器336中,且私人数据可存储在移动设备120的计算机可读存储器的单独部分中。容器 336可允许企业代理320、移动设备应用318和/或设备120的其它部件从文件***338读取信息、将信息写到文件***338和/或从文件***338删除信息(如果被授权这么做)。从容器336删除数据可包括删除存储在容器336中的实际数据,删除存储在容器336中的数据的指针,删除用于对存储在容器336中的数据解密的加密密钥,等等。容器336可由例如代理320、企业***110的IT管理员或设备120的制造者安装。容器336可使存储在文件***338中的一些或所有企业数据能够被删除,而不修改存储在容器336外部的移动设备120上的私人数据。文件***338可便于从文件***338选择性地或完全删除数据。例如,企业***110的部件可基于例如编码规则从文件338删除数据。在一些实施方式中,代理320响应于从企业***110接收到删除命令而从文件***338删除数据。在其它实施方式中,例如如果未提供代理320,则在没有代理320的帮助下删除数据。
安全文档容器336可包括通过应用318和移动设备120的其它部件管理对文件***338的访问的访问管理器340。可基于存储在文档和/或文件***338中的文档访问策略(例如编码规则)来管理对文件***338的访问。文档访问策略可基于(1)哪个应用318或设备120的其它部件正请求访问、(2)哪些文档正被请求、(3)时间或日期、(4)设备120的地理位置、(5)请求的应用318或其它部件是否提供一个或多个正确的证书、 (6)设备120的用户是否提供正确的证书、(7)其它条件或其任何组合来限制对文件***338的访问。用户的证书可包括例如密码、对安全问题 (例如什么是你高中的吉祥物?)的一个或多个答案、生物统计信息(例如指纹扫描、眼扫描等)和类似信息。因此,通过使用访问管理器340,容器336可配置成只由被授权访问容器336的应用318访问。作为一个例子,访问管理器340可使安装在移动设备120上的企业应用能够访问存储在容器336内的数据并防止非企业应用访问存储在容器336内的数据。
对文档访问的时间和地理限制可能是有用的。例如,企业管理员可使用将文档(存储在容器336内)的可用性限制到规定时间窗和/或地理区(例如,如GPS芯片316所确定的)的文档访问策略,设备120必须存在于该时间窗或地理区内,以便访问文档。此外,当规定时间段终止时或如果移动设备120被带出规定地理区之外,文档访问策略可指示容器336或代理 320从容器336删除文档或以其他方式使它们变得不可用。
一些文档可具有禁止文档保存在安全文档容器336内的访问策略。在这样的实施方式中,只有当用户115登录到企业***110上时文档才可在移动设备120上查看。
访问管理器340也可配置成实施远程设备(例如企业资源130或其它企业服务器)和容器336之间的某些连接模式。例如,访问管理器340可要求通过例如应用隧道传输由容器336从远程设备接收和/或从容器336发送到远程设备的文档,如上所述。这样的应用隧道可使用企业***110的隧道中介224。访问管理器340可要求传输到容器336和从容器336传输的所有文档被加密。企业代理320或访问管理器340可配置成对从容器336 发送的文档加密并对发送到容器336的文档解密。在容器336中的文档也可存储在加密形式中。
安全文档容器336可配置成防止包括在文档内的文档或数据由未授权应用和移动设备120的部件或其它设备使用。例如,具有对访问来自容器 336的文档的授权的移动设备应用318可被编程以防止用户复制文档的数据并将它粘贴到另一文件或应用接口中或在本地将文档或文档数据保存为在容器336之外的新文件。类似地,容器336可包括不允许这样的拷贝 /粘贴和本地保存问题的文档查看器和/或编辑器。而且,访问管理器340 可配置成防止这样的拷贝/粘贴和本地保存问题。此外,容器336和被编程和授权访问来自容器336的文档的应用318可配置成防止用户将这样的文档附加到电子邮件或其它形式的讯息。
移动设备应用318可被编程以查找并找到安全文档容器336(或下面描述的包括容器336的安全web浏览器332)作为移动设备120的资源。在某些实施方式中,应用318可在与移动设备120的操作***的虚拟机分离的安全虚拟机中运行。根据一些其它实施方式,应用可在安全web浏览器332内运行。应用318可被编程以只将企业相关数据写到容器336。例如,可给应用318的源代码提供容器336的资源名称。类似地,远程应用 (例如企业资源130)可配置成将数据或文档发送到一个或多个移动设备 120的容器336(与设备120的其它部件或存储器位置相反)。将数据存储到容器336可例如在应用318、企业代理320或web浏览器332的控制下自动出现。应用318可被编程以对存储或将存储在容器336内的文档加密或解密。在某些实施方式中,容器336可只由被编程以寻找并使用容器336 并具有这么做的授权的应用(在设备120上或远程的)使用。
安全文档容器336可用作被发送到移动设备120的文档和其它文件的临时仓库。远程应用可配置成在一次或周期性基础上将文档发送到容器 336(例如经由应用隧道)。例如,销售相关企业资源130可被编程以每天早晨将销售相关文档(例如最近的价格单)发送到具有销售相关角色206 的一组用户115(例如销售人员)的容器336。销售相关文档可具有文档访问策略,使得文档将在某个时间或在规定事件(例如用户打开文档)时开始的一段时间终止时“自毁”(例如从容器336自动删除——删除由例如容器336本身或企业代理320执行)。文档分布策略(例如编码规则)可被提供(例如在移动设备管理***126内)以控制远程应用(例如企业资源130)何时和如何将文档发送到容器336,文档发送到哪些用户115,对文档(例如以如上所述的文档访问策略的形式)的使用和可用性强加什么限制(例如时间或地理限制),等等。
为了将文档从这样的仓库发送到容器336的目的,将文档发送到移动设备120的一个或多个安全文档容器336的远程应用可配置成与其它仓库集成。这样的其它仓库可例如存储在企业***110(例如企业文档仓库如 Microsoft SharepointTM仓库)内或云计算***(例如Box.netTM仓库)中。
移动设备应用的软件开发工具包
某些实施方式的另一方面涉及使应用开发者能够将本文描述的一个或多个功能嵌入移动设备软件应用例如软件应用318内的软件开发工具包。如在本文使用的,“嵌入”可包括应用的源代码的修改。图24示出包括用于创建移动设备应用2406的SDK 2404的软件开发***2402。软件开发***2402可由任何适当的计算机硬件实现。软件开发者可例如通过产生程序代码并将它编译到与移动设备120兼容的可执行程序中来创建应用2406。
SDK 2404可包括提供不同功能的开发工具2408的库。开发工具2408 可包括代码片段、数据结构、协议、例程等。SDK 2404可提供使应用2406 能够与开发工具2408通过接口连接的应用编程接口(API)2410。SDK 2404 可包括用于产生应用2406的代码的程序编辑器2412和用于将代码转换成机器可读格式的编译器2414。SDK 2404可包括用于调试所开发的代码的调试工具2416。将认识到,SDK 2404除了这些以外还可包括其它特征。还将认识到,SDK 2404不需要包括所有所示的特征。
开发工具2408可包括用于将本文描述的一个或多个功能嵌入移动设备软件应用2406中的工具。将认识到,这些工具的任何子组合可嵌入应用2406中,以及本文未描述的其它功能也可被这样嵌入。现在描述不同的开发工具2408。
在某些实施方式中,SDK 2404包括开发工具2408,其允许应用开发者在应用2406内嵌入用于形成和维持与网络资源的应用隧道(例如,如上所述)的功能并通过经由隧道发送和接收通信来与网络资源通信的功能。网络资源可包括例如企业资源130。工具2408可配置成添加与企业代理320一起参与的应用隧道功能。如上面在应用隧道章节中描述的,企业代理320可从应用2406接收网络通信,根据封装协议来封装它们,将所封装的通信发送到隧道中介,从隧道中介接收类似的通信(其来自隧道端点资源),将可从隧道中介接收的所封装的通信解包,并将解包的通信发送到应用2406。可选地,工具2408可提供用于形成应用隧道的功能而没有企业代理320的参与,其中应用2406本身使用如上所述的封装协议来执行这些行动。
在某些实施方式中,SDK 2404包括开发工具2408,其允许应用开发者在应用2406内嵌入用于提高在移动设备120和网络资源例如网络资源 130之间的通信体验的功能,特别是对于应用隧道通信。这样的功能可包括在到网络的连接失去的情况下在本地将用户输入的数据缓存在移动设备120上,如上所述。这样的功能可同样包括待发送到网络资源的数据的压缩,从网络资源接收的数据的解压缩,如上所述。再次,这样嵌入的功能可与企业代理320一起参与以使这些特征变得可能,或可提供与企业代理320分离的这些特征。
在某些实施方式中,SDK 2404包括开发工具2408,其允许应用开发者在应用2406内嵌入用于参与在移动设备120和帮助台操作员之间的远程控制会话的功能,如上所述。这样的功能可允许帮助台操作员查看关于安装在移动设备120上的应用2406的数据和/或控制应用2406的方面和可能移动设备120的其它特征。这样的功能可包括将用户接口仿真数据发送到帮助台操作员的计算机,如上所述。这样的功能可包括从帮助台操作员接收用于执行在移动设备120上的行动的命令。再次,这样嵌入的功能可与企业代理320一起参与以使这些特征变得可能,或可提供与企业代理320 分离的这些特征。
在某些实施方式中,SDK 2404包括开发工具2408,其允许应用开发者在应用2406内嵌入用于找到安全文档容器336、向安全文档容器336提供证书、从安全文档容器336读取和/或写到安全文档容器336的功能,如上所述。这可允许应用2406访问并更新在容器336内的信息。这也可允许应用2406访问由移动设备120从网络资源例如企业资源130或企业***110的其它应用或部件安全地接收的文档。开发工具2408可配置成修改应用2406的源代码,使得应用2406可按照其在设备120上的资源名称找到容器336。开发工具2408可配置成修改应用2406的源代码,使得应用 2406将所有数据(或也许仅仅与企业110有关的数据)写到容器内。例如,开发工具2408可配置成解析应用的源代码以找到用于将数据写入存储器的命令(例如用于允许用户停止使用应用并接着稍后以用户离开时的确切状态重新启动该应用的应用状态数据)或从存储器读取数据的命令,并调节源代码的那些部分中的一个或多个以将数据写到容器336内并从容器 336读取数据。
在一些实施方式中,SDK的开发工具2408可在应用2406内嵌入对存储在容器336内的文档加密的能力和/或对从容器336得到的文档解密的能力。开发工具2408可在应用2406内嵌入用于允许移动设备120的用户115 查看和/或编辑从容器336得到的文档的编辑器。编辑器也可允许用户115 将所编辑或最新创建的文档上传到容器336或网络资源(例如企业***110 的企业资源130)。
在某些实施方式中,SDK 2404包括开发工具2408,其允许应用开发者在应用2406内嵌入移动设备规则,例如上面描述的规则214。此外,开发工具2408可允许开发者嵌入用于评估移动设备规则的功能,包括查询设备120或其它网络资源以找到评估所需的数据。嵌入的功能也可包括与移动设备规则相关的补救行动,例如上面描述的补救行动216。嵌入的功能还可包括用于在移动设备上自动执行补救行动的补救代理,如上所述。与前面提到的移动设备规则218(其在上面被主要描述为用户特定和设备特定规则)比较,软件开发者可嵌入被定制到特定应用2406的规则和补救行动。在某些实施方式中,SDK 2404包括用于创建并编辑移动设备规则和补救行动的工具,例如上面描述的工具221。软件开发者可使用创建/ 开发工具来创建移动设备规则和补救行动,并将它们嵌入应用2406内。某些实施方式提供软件开发者可在有或没有修改的情况下使用并嵌在应用2406内的移动设备规则和补救行动的在线库。
在某些实施方式中,SDK 2404包括开发工具2408,其允许应用开发者在应用2406内嵌入用于应用故障检测(例如使用如上所述的移动设备规则)、应用性能测量和相关事件的检测的功能。嵌入的功能可包括所检测的故障、性能测量、相关事件、事件时间、事件地点和在移动设备120 的本地存储器内的其它数据的记录。开发工具2408可允许应用2406配置成将这样的数据报告到网络资源例如企业***110的部件和/或分析服务例如上面描述的分析服务414。这个嵌入的功能可给与IT管理器对在移动设备上正发生的可见性,至少它涉及安装在其上的特定应用2406。此外,分析服务可在运行特定应用2406的多个不同的移动设备120当中分析数据。嵌入的功能可包括对在移动设备120上记录和/或经由网络通信报告到其它部件的数据加密。
在某些实施方式中,SDK 2404包括开发工具2408,其允许应用开发者在应用2406内嵌入用于与元应用例如基于企业***的元应用部分150 和/或基于云的元应用部分151协作的功能。嵌入的功能可包括用于发现关于所安装的应用2406或它被安装于的移动设备120的信息并将所发现的信息发送到元应用用于在例如构造可查询模型(类似于图8的企业模型 814)时使用的发现过程,应用2306和/或移动设备120形成可查询模型的至少一部分。嵌入的功能可包括从元应用接收查询,通过从移动设备120 取回所查询的数据而对该查询做出响应,以及将所查询的数据发送到元应用。如上面讨论的,元应用可使用所查询的数据来检测问题,执行根本原因分析,和/或选择补救行动。因此,嵌入的功能可包括从元应用接收补救行动,在移动设备120上执行补救行动,并将执行补救行动的结果报告给元应用。在一些实施方式中,嵌入的功能与在设备上存在的企业代理320 分担来提供这些特征,而在其它实施方式中,嵌入的功能在不与企业代理 320协作的情况下提供这些特征。
安全Web浏览器
某些实施方式的另一方面涉及web浏览器,其它移动设备软件应用可在该web浏览器内运行。Web浏览器可设置有一些或所有企业安全性和本文描述的其它特征,并可扩展那些特征用于与在浏览器内运行的移动设备应用一起使用。以这种方式,浏览器可用于实现BYOD策略,同时维持对在企业用户115的移动设备120上运行的应用的控制的期望水平。企业可能需要一些或所有其用户115安装并使用这个web浏览器,以减少与这样的移动设备应用的使用相关的企业安全风险。此外,在一些情况下,这样的web浏览器可使应用开发者为不同的移动设备平台开发移动设备应用的不同版本变得不必要。如上面提到的,安全浏览器也可用于使移动设备用户能够访问公司内联网而不需要虚拟专用网(VPN)。
参考图3A,移动设备120可包括专用web浏览器332。Web浏览器 332可配置成执行常规web浏览器的功能,包括在互联网站点上冲浪,显示和/或播放从web浏览器接收的多媒体内容,等等。Web浏览器332可将经由网络访问的数据存储在安全文档容器336中和/或在安全浏览器高速缓存器中。可在企业的指导下删除这样的数据。例如,移动设备管理***126可发起存储在安全文档容器336或/或安全浏览器高速缓存器中的数据的删除或以其他方式使存储在安全文档容器336或/或安全浏览器高速缓存器中的数据变得不可访问。此外,web浏览器332优选地配置成充当安装在移动设备120上的至少一些其它软件应用318的容器,以允许那些应用318在浏览器332内运行。软件应用318可配置成当应用318本身由用户115启动时启动浏览器332。而且,应用318可配置成启动浏览器332 并以对用户115透明的方式在浏览器332内运行。换句话说,可以给用户 115应用318照惯例运行而不涉及web浏览器332的印象。Web浏览器332 可以利用便于其作为其它软件应用318的容器的使用的协议。例如,web 浏览器332可为了这个目的利用HTML5。
Web浏览器332可提供本文描述的一些或所有功能。例如,web浏览器332可包括由上面描述的SDK 2404和/或企业代理320提供的一些或所有功能。因此,web浏览器332可配置成使用应用隧道用于与网络资源(例如企业资源130)通信。Web浏览器332可从移动设备管理***126或企业***110的另一部件接收(或嵌入)移动设备规则214和补救行动216。Web浏览器332可以可选地嵌入移动设备规则和补救行动。Web浏览器332 可在应用隧道内利用缓存和/或压缩方法以如上所述提高用户的通信体验。 Web浏览器332可配置成向安全文档容器336提供证书、从安全文档容器 336读取、写到安全文档容器336和/或提供编辑器用于显示并剪辑从移动设备120的安全文档容器336得到的文档,如上所述。在某些实施方式中, web浏览器332可实现安全文档容器336。Web浏览器332可提示用户115 在将在浏览器332内运行的应用318的功能暴露于用户115之前提供访问证书并验证访问证书。可选地或此外,web浏览器332可使由在web浏览器332内运行的应用318存储到移动设备120的数据被加密。Web浏览器 332可配置成参与与帮助台操作员的远程控制会话,如上所述。Web浏览器332可配置成记录故障检查、性能测量、相关事件、事件时间和其它数据,并将这样的数据提供到如上面关于SDK 2404描述的分析服务。Web 浏览器332可配置成参与与元应用的通信,再次如上所述。通过提供这些和/或其它功能中的至少一些,web浏览器332可使移动设备应用开发者将这样的功能嵌入移动设备应用318内变得不必要。
在一些实施方式中,web浏览器332可配置成使得这些功能中的一个或多个可在可由远程计算机***例如企业***110例如远程地配置的规定条件下被激活或去激活。可规定的条件包括时间条件、位置条件、移动设备特性、用户特性(例如角色206)等。时间条件可以是一天中的时间。例如,web浏览器332可配置成迫使所有移动业务(至少对于配置成启动浏览器332的应用318)只在工作时间(例如周一到周五的8am到5pm) 期间通过应用隧道,在那些时间之外,照惯例发送业务。位置条件可以是移动设备120的位置。例如,浏览器332可配置成当设备120在被已知具有不良的无线连接的地理区域中激活前面提到的压缩和缓存特征。
可为不同的移动设备平台创建不同的web浏览器332,每个浏览器版本使用单个标准来运行移动设备应用。这可有利地允许移动设备应用开发者以仅仅一种编程语言来开发移动设备应用318,与为各种移动设备平台创建不同的版本相反。这可为开发者实质上减少应用开发工作量。
企业可能需要它的用户115将web浏览器332安装到他们的移动设备 120上,并可禁止其它web浏览器的使用。所需的浏览器332可配置成通过隧道将至少一些移动设备业务引导到企业控制的隧道中介,例如上面描述的中介224。这给企业对业务的较大控制,减少来安全风险。企业可使用移动设备规则214,其使设备上存在的企业代理320或web浏览器332 本身能够检测在移动设备120上的被禁止的web浏览器的安装和/或使用。相关补救行动216可根据上面描述的方法例如通过卸载它、防止它运行等来防止被禁止的web浏览器的使用。
在一些实施方式中,安全web浏览器332可配置成将一些或所有web 冲浪请求引导到如上所述的内容过滤服务器。
修改预先存在的移动应用的行为
现在将描述用于使非开发者例如公司的IT部门的成员能够添加或以其他方式修改现有移动应用例如Android、IOS或Windows Mobile应用的行为的***和过程。该***或过程可作为一个例子用于基于用户在企业内的角色来创建移动应用的不同版本(具有不同的特权、访问权利等)。例如,可为不同的工作类别(例如主管人员、非管理雇员、实习生等)和/ 或不同的部门(销售、IT、人力资源等)创建移动应用的不同版本。可在使用所公开的***的企业可利用的应用修改或“包装”工具或实用程序中实现在这个章节中描述的过程。这个实用程序例如可被托管在企业可访问的服务器(例如作为web服务)上或可被提供到企业(例如作为PC应用)。
在一般使用情况情形中,待修改的移动应用是为特定的企业开发的定制应用。然而,这不需要是这种情况。例如,所公开的***和过程也可应用于在应用商店中可得到的市场上可买到的移动应用。移动应用可被修改而不被特别写入以支持这样的修改或使这样的修改变得可能。例如,开发者不需要包括应用中的任何特殊代码或功能以使修改变得可能或便于修改,且不需要在修改应用的所公开的过程中被涉及。
所修改的行为一般包括涉及标准API调用或类的行为或由涉及标准 API调用或类的行为组成。下面是可经由所公开的过程被添加或修改的一些类型的行为的例子:
1.通常通过移动设备操作***例如Android和IOS来提供的剪切和粘贴能力可在特定的移动应用例如提供对机密公司数据的访问的应用内被禁用。这个行为变化可能对禁止雇员(或某一类别的雇员)将机密数据意外地或恶意地发送或移动到未经授权的位置是合乎需要的。
2.以非加密格式存储输出的移动应用可被修改来以加密格式存储其输出。在一个实施方式中,这部分地通过修改移动应用的输入/输出参考以使应用使用加密库以对它写到存储器或从存储器读取的数据加密和解密来完成。也可***使移动应用从企业代理得到密钥用于在对数据加密和解密时使用的代码。
3.使用某个级别或类型的加密的移动应用可被修改以使用不同级别或类型的加密。例如,如果联邦政府需要企业来开始使用特定的加密库,则现有的移动应用可被修改以有效地用新加密库替换现有加密库。
4.企业可修改移动应用以使它使用到企业的网络或企业***的特殊安全连接。例如,移动应用可配置成使用如上所述的安全应用隧道。
5.可修改移动应用以添加登录或其它认证提示或屏幕。
6.移动应用可配置成记录和/或报告关于其使用的数据。这个数据可包括例如使用的时间和持续时间、使用的位置(基于例如GPS坐标)、所调用的应用特征、所访问的接入点等。(现有移动设备操作***例如Android 和IOS提供用于使应用能够得到这些和其它类型的使用参数的功能)。这个使用数据可由企业使用来例如监控雇员符合企业的使用限制策略,以识别并校正特定的企业移动应用的问题或确定是否继续为特定的用户支付应用许可证。在移动设备120上收集的应用使用数据可例如由企业代理320 报告给移动设备管理***126或某个其它***用于分析。
7.可修改移动应用,以使企业能够在特定雇员的特定移动设备120 上远程地发起应用的数据的删除,而不影响应用的其他用户。如上面提到的,也可在例如用户未能输入有效的企业密码阈值次数时执行这样的选择性擦除操作。
8.可修改移动应用,使得它可由安全启动器350B(图3B)而不是由移动设备的操作***的一般启动器启动。这可通过例如改变在移动应用中的一个或多个对移动操作***的通用启动器的参考,使得它们替代地指向安全启动器来完成。如上面解释的,安全启动器可实现一个或多个安全策略,例如在企业应用被启动之前需要有效密码的输入。安全启动器也可例如通过使企业应用使用与移动操作***的虚拟机分离的安全虚拟机(图 3B)被执行来使企业应用在安全执行环境中运行。(见下面的章节。)
9.可修改移动应用以使它在虚拟机350C(图3B)中启动。这可通过例如修改在应用中的参考(例如在Android应用的清单(manifest)中或以任何方式,其中应用被启动)来完成以使它在安全VM中被启动。如下面在标题为“安全虚拟机”的章节中解释的,安全VM可实现本文描述的一些客户端侧安全功能(加密、应用隧道等),减少或消除将这样的功能添加到移动应用本身的需要。这可使企业应用能够在安全执行环境中运行,而私人应用在默认VM中运行。
其它例子包括禁用离线访问、添加URL过滤、添加API过滤、禁用到本地存储器的写入以及防止文档在新应用中打开。
图29示出应用修改***的一个实施方式。***包括基于操作员选择的策略来进行修改的应用变换器2900。对于Android应用,变换器2900 接收应用的.APK(应用封装)文件,并输出表示已修改的应用的新.APK 文件。对于IOS,变换器2900接收.IPA(iPhone应用档案)文件,并输出表示已修改的应用的新.IPA文件。可支持各种其它文件格式和移动设备操作***。如图29所示,应用变换器2900优选地包括反汇编程序2900A(用于反汇编应用的可执行代码)、代码分析器/映射器2900B、代码修改器/***器2900C和应用重建器2900D。
如在图29中所示的,变换器2900访问包含对各种策略和相关行为例如上面列出的那些策略和相关行为的策略描述的策略库2902。例如,可提供“禁用剪切和粘贴”策略。可以任何适当的语言和格式来描述策略。例如,策略描述被存储为smali文件。如在图29中进一步所示的,***还包括控制接口2904或使管理员能够选择一个或多个策略来应用于给定应用的“控制台”。控制台2904也可包括用于使管理员能够规定新策略的工具。例如,可规定添加认证序列、禁用剪切和粘贴并使所有文件以加密形式被存储的新策略。这个策略可接着用作用于修改多个移动应用的基础。
在一般使用情况情形中,公司的IT部门的成员使用控制接口2904来:选择待修改的移动应用,选择待应用的一个或多个策略,并发起变换过程。已修改的应用然后被分配给相关雇员或其他用户(例如通过特殊应用商店,其通过企业代理是可访问的,如上所述)。这个过程可以在不同的策略选择的情况下重复以为不同的用户创建应用的不同版本。策略库2902 可例如包括用于实现上面描述的一些或所有类型的策略(和各种其它策略)的策略文件。
图30示出可由变换器2900执行来基于选定的一组一个或多个策略来修改Android应用的一序列步骤。类似的过程可用于变换为其它操作***编写的应用,例如IOS和Windows Mobile。图30所示的整个过程优选地是完全自动化的,意味着不需要人工干预。在块3000中,打开.APK文件。如在本领域中已知的,这个文件包含各种应用部件,例如应用的可执行代码、图像、XML文件、清单和其它资源。在块3002中,反汇编程序2900A 反汇编应用的可执行代码以产生一个或多个文本smali文件。如将认识到的,除了smali以外的中间语言可用于实现所公开的修改任务。
在块3004,分析器/映射器2900B分析并映射应用代码(以smali格式) 以产生关于将可能被替换的API调用的信息。在块3006中,用新API调用替换相关API调用用于实现一个或多个选定策略。此外,来自策略库2902 的相关代码被添加。例如,如果剪切和粘贴功能被禁用,则由应用使用来访问操作***的切换和粘贴功能的任何API调用可被移除或替换。
作为一个例子,可产生Java I/O文件输入流(Java.io.FileInputStream) 类的新版本,且对原始类的所有引用可被修改以指向这个新版本。新版本可例如包括用于分别在文件写和读操作上对数据加密和解密的代码。
在图30的块3008中,如果可适用,可添加额外的代码以实现不需要任何现有的API调用的替换的一个或多个特征或行为。作为一个例子,可添加代码用于使经授权的管理员能够在用户特定或移动设备特定基础上远程地触发存储在特定的移动设备上的应用的数据的删除。在本例中,在块3008中添加的代码将添加用于接收并处理包含执行这样的选择性擦除或删除操作的命令的消息的功能。
为了提供额外的安全层,可使用本领域中已知的混淆化方法和功能来混淆在前面的块中修改的代码的部分。混淆化的使用损害其他人对添加到应用的安全功能进行逆向工程的能力。混淆化可应用于反汇编的代码(例如smali代码)或可在不同的级别处被应用。
在图30的块3010中,如果必要,应用的清单(例如 AndroidManifest.xml)被修改以反映已修改的行为。作为一个例子,如果应用被修改以在安全壳中启动,则清单将被修改以指示Android操作***使用安全壳来启动应用。在一些实施方式中,这涉及用对安全启动器350B (图3B)的引用代替对操作***的通用启动器的引用。在块3012中,修改的smali代码和清单连同其它所提取的应用部件一起被编译成新.APK文件。在块3014中,使用数字证书来在这个新.APK文件上签名。
可以用类似的方式修改为IOS操作***编写的移动应用。一般,这样的应用作为IPA文件被分布,IPA包括以Mach-O格式的可执行文件、P 列表和资源。一旦可执行文件被反汇编以产生ARM汇编代码,它就被映射以识别可能被替换的类,并接着通过(1)识别待替换的一个或多个特定的类、(2)添加/修改代码以替换这样的类、(3)调节类结构以反映修改使得每个新类是原始代码的子类以及(4)更新参考以指向一个或多个新类来被修改。
在一些实施方式中,可以以一个或多个测试扩大上面描述的过程用于验证待修改的移动应用不包含恶意软件或否则不呈现对企业安全的风险。一个这样的测试涉及产生一些或所有应用文件的散列并接着比较这个散列和与已知恶意软件相关的散列库。如果找到匹配(指示应用可能包括恶意软件),则可终止应用修改过程。
另一这样的测试涉及检查由应用做出的API调用和URL请求以检查可疑活动。可疑活动的例子包括读取存储在设备上的私人联系人,将电子邮件发送到云存储设备,以及发送位置信息而不首先请求用户许可。基于这个分析,可产生代表由移动应用引起的风险的级别的分数(例如按1到 100的标度)。如果这个分数超过阈值,则修改过程可终止。分数可此外或可选地包括在详述所检测到的可疑活动的报告中。应用修改工具可例如输出这个报告用于审查,并可提示管理员-用户确认或指示修改过程是否应继续进行。
图29所示的应用修改***可例如在服务器、个人计算机、工作站或在公司的企业***内的其它计算机或***上实现。可选地,应用修改***可被实现为公司客户通过互联网可访问的托管的服务。***的各种部件 2900-2904可被实现为存储在任何类型的非临时计算机存储设备或***上的代码模块。
图29所示的***的部件2900、2902、2904可作为较大***(例如在这个说明书的其它章节中描述的***)的部分被提供到公司用于使公司能够管理移动设备并保护由这样的设备访问的数据。例如,这些部件可与在本公开中描述的各种其它部件捆绑在一起并被给予许可。可选地,图29 的应用修改***可作为独立的产品或作为由服务提供者托管并通过网络访问的***被提供到公司。
安全虚拟机
如上面提到的,用于将安全层有效地添加到企业移动应用的一种方法是配置或迫使这样的应用在安装在移动设备上的安全VM 350C(图3B) 内运行。安全VM可类似于移动操作***的VM,但可指向被添加到移动设备的特殊代码库,包括用于执行诸如对数据加密/解密的功能和使用应用隧道的代码库。安全VM的使用使企业的IT部门能够在对应用本身有很少修改或没有修改的情况下将安全层有效地添加到预先存在的移动应用。这在例如企业希望使用流行的市场上可买到的移动应用作为企业应用但没有授权来(或以其他方式不希望)对应用进行某些类型的修改时可能是合乎需要的。
安全VM 350C可载入其自己的用于存储、联网、策略管理等的专用库。例如,由在安全VM 350C中运行的应用存储的一些或所有数据可使用某种加密策略。安全VM 350C可实现一组策略(例如认证、剪切/粘贴的禁用、对某些ULR的访问的防止、对某些API的访问的防止等)以控制在安全VM 350C内的应用的执行。
安全VM 350C可基于检测到某些条件例如指示具有病毒或是恶意软件的应用的条件来阻止在其中运行的应用的执行。钩子可被添加到安全 VM 350C以防止在某些条件被检测到时程序被执行。安全VM 350C可观察在其中运行的应用的执行特征以确定应用不展示恶意行为。
通过使用定制VM,所有公司内容可本质上与存储在设备上的其它内容分离。这样的定制VM可防止与在移动设备120的默认VM中执行的应用共享数据或应用。而且,由在定制VM中运行的应用访问和/或操纵的数据可存储在安全数据容器336中,如上所述。
在一个实施方式中,单个安全VM设置在移动设备120上用于运行企业应用,并可用于同时运行多个企业应用。在另一实施方式中,多个安全 VM设置在移动设备上,使得每个企业应用在单独的安全VM内运行。这两种方法的混合也是可能的。
各种方法可用于迫使或配置预先存在的移动应用使用安全VM。一种这样的方法涉及修改移动应用以使它使用安全启动器350B,如在前面的章节中描述的。当应用被启动时,安全启动器启动安全VM,并接着将移动应用有效地传递到安全VM用于执行。另一方法涉及通过用对安全VM的引用代替对操作***的默认虚拟机的引用来修改移动应用。另一方法涉及在应用安装的时间指示移动设备的操作***在安全VM中执行移动应用。
在一个实施方式中,每当在安全VM中运行的移动应用执行文件读或写操作时,安全VM就使用加密库来处理正被读或写的数据。安全VM从而将加密应用于由企业应用在本地存储的企业数据。
由安全VM使用的库文件在一些实施方式中可合并到操作***中或以其他方式在OS开发者、设备制造/销售者或具有对制造这样的附加物的适当许可水平的其它方的合作下安装在移动设备上。添加这样的库文件的能力通常增加安全VM的安全能力,但不是必不可少的。
在安全VM中运行应用的一个益处是安全VM可载入用于存储、联网、策略管理等的可选的一组专用库。例如,可装入库,其使由应用存储的所有数据使用某个加密库被加密。也可装入库,其例如禁用剪切/复制/粘贴操作,需要用户认证,防止对某些URL的访问,防止对某些API的访问,等等。可例如根据用户在企业内的角色或地位、被启动的特定应用或/或其它标准来装入特定的库。
在安全或定制VM中运行应用的另一益处是应用的执行可被阻止,如果应用展示存在于恶意软件或病毒中的类型的可疑行为。这可通过将钩子添加到安全VM来实现以使应用的执行能够被监控或/或阻止。
安全或定制VM还提供用于保持企业内容与存储在设备上的其它内容分离的机制。例如,通过安全VM的使用,由企业存储的数据可存储在安全容器中,如上所述。该数据有利地是设备的默认VM或在它内运行的应用以未加密形式不可访问的。
在Android OS的上下文中,可用于在安全VM中启动应用的一种方法涉及app_process命令的使用以修改标准启动序列。例如,一旦Zygote 初始化子过程,就可使用下列格式的命令:execvp(“/system/bin/app_proces s”,..<args>..)。(Zygote是当Android引导时创建的特殊过程;一旦被创建,它就打开服务器套接字以倾听过程创建请求。)这个调用以新的可执行映象代替老的可执行映像,并使安全VM能够用一些现有的库/jar并用实现例如企业策略推送、安全存储和安全联网特征的一些新的库/jar被装入。新实例不是Zygote或任何其它父过程的共享,而更确切地是具有其自己的执行环境和增加的行为组的完全新的过程。一旦安全VM被装入,下面的步骤就可被执行以在安全VM中启动应用:(1)最新创建的过程执行“附加”操作;(2)一旦ActivityManagerService从最新创建的过程接收到附加请求,它就将所存储的意图发送给它,使得ActivityThread将寻找在应用的清单中的意图,并将创建该活动;以及(3)它接着开始运行应用。这三个步骤与当应用在Android中被启动时通常执行的最后三个步骤相同。 Android运行时间或任何其它可兼容的运行时间可装入安全VM中,使得应用与安全VM可兼容。这个上面的过程可由本领域中的技术人员改变,用于与其它操作***一起使用。
应用可被配置或“标记”以用各种方式使用安全/定制VM。例如,在 Android的上下文中,标准命令“adb shell pm enable(包名)”可用于设置应用包的“启用”状态或标志。作为另一例子,安装在设备上的企业代理可在安装时进行对这个API的调用并指定将在安全/定制VM中运行的所有应用。当稍后启动这样的应用时,可检查“启用”标志(在Zygote被请求创建新过程/使新过程分支之前),并可基于这个标志的状态来创建新安全VM实例。这个过程可由本领域中的技术人员改变,用于与其它操作***一起使用。
结论
安全移动网关128和移动设备管理***126每个可由计算机***实现,计算机***由可以但不需要位于同一位置的一个或多个计算设备(例如物理服务器、工作站等)构成。每个这样的计算设备一般包括执行存储在存储器或其它非临时计算机可读存储介质或设备中的程序指令或模块的处理器(或多个处理器)。安全移动网关128和移动设备管理***126可在公共硬件上或在分离和不同的硬件上实现。
上面描述的所有方法和过程可体现在由一个或多个计算机设备(例如智能电话、平板计算机、其它类型的移动设备、物理服务器等)执行的软件代码模块中并经由所述软件代码模块被完全自动化。每个这样的计算机设备一般包括执行存储在存储器或其它非临时计算机可读存储介质或其它计算机存储设备中的程序指令或模块的处理器(或多个处理器)。代码模块可存储在任何类型的计算机可读存储介质或其它计算机存储设备上。一些或所有方法可以可选地体现在专用计算机硬件(例如ASIC或FPGA) 中。在给定软件部件(例如企业代理或安全启动器)在本文被描述为执行或实现给定功能的场合,应理解,部件通过可执行指令指示一个或多个处理器(移动设备的处理器)执行或实现功能。
对在本公开中描述的实现的各种修改对本领域中的技术人员可以是容易明显的,且在本文规定的一般原理可应用于其它实现,而不偏离本公开的精神或范围。因此,在这个说明书中没有任何事物用来暗示所公开的***和过程的任何特征、特性或属性是必不可少的。
也可结合单个实现来实现在单独的实现的上下文中在这个说明书中描述的某些特征。相反,也可在多个实现中单独地或以任何适当的子组合实现在单个实现的上下文中描述的各种特征。而且,虽然特征可在上面被描述为在某些组合中起作用且甚至最初被这样主张,来自所主张的组合的一个或多个特征可在一些情况下从组合删除,且所主张的组合可指向子组合或子组合的变形。
类似地,虽然操作在附图中以特定的顺序被描述,这不应被理解为要求这样的操作以所示的特定顺序或以连续的顺序被执行,或所有所示的操作都被执行来实现期望的结果。在某些情况下,多任务化和并行处理可能是有利的。而且,在上面描述的实现中的各种***部件的分离不应被解释为在所有实现中都需要这样的分离,且应理解,所述程序部件和***可通常一起集成在单个软件产品或封装到多个软件产品中。
范例实施方式
本公开的范例实施方式包括:
1.一种存储可执行部件的非临时计算机存储器,所述可执行部件配置成提供用于选择性地保护被呈递到移动设备的附件数据的功能,所述可执行部件包括引导一个或多个计算设备执行过程的指令,所述过程包括:
从企业资源接收消息的附件,所述消息被呈递到移动设备;
基于企业的一个或多个可配置访问策略来确定是否对所述附件加密;以及
当做出对所述附件加密的确定时,
对所述附件加密;以及
使加密附件代替所述附件传输到所述移动设备,所述移动设备配置成检测所述加密附件被加密并对所述加密附件解密。
2.如实施方式1所述的计算机存储器,其中确定至少部分地基于在所述企业中的所述移动设备的用户的角色。
3.如实施方式1所述的计算机存储器,其中确定至少部分地基于所述移动设备的一个或多个特性。
4.如实施方式3所述的计算机存储器,其中确定至少部分地基于特定的移动应用是否安装在所述移动设备上。
5.如实施方式1所述的计算机存储器,其中确定至少部分地基于所述附件的一个或多个特性。
6.如实施方式1所述的计算机存储器,其中所述过程还包括下列操作中的至少一个:
给所述加密附件命名后缀,所述后缀不同于在所述附件的加密之前的相应附件,其中所述移动设备配置成基于所述后缀检测到所述加密附件被加密;以及
给所述附件的链接命名后缀,所述后缀不同于未加密附件的相应链接。
7.如实施方式1所述的计算机存储器,其中所述过程还包括将用于对所述附件加密的附件密钥加密以及使加密的附件密钥随所述加密附件传输到所述移动设备。
8.如实施方式1所述的计算机存储器,其中所述消息是电子邮件消息。
9.如实施方式8所述的计算机存储器,其中所述附件的加密对所述移动设备的电子邮件客户端是透明的。
10.如实施方式1所述的计算机存储器,其中所述过程还包括修改所述企业的所述一个或多个可配置访问策略。
11.如实施方式1所述的计算机存储器,其中使具有所述加密附件的所述消息传输到选定移动设备包括使所述消息经由企业计算***的防火墙来传输。
12.如实施方式1所述的计算机存储器,其中所述过程还包括当做出不对所述附件加密的确定时,使所述附件以未加密的形式传输到所述选定移动设备。
13.如实施方式1所述的计算机存储器,其中所述过程还包括:
从所述移动设备接收转发所述消息的请求;
对所述加密附件解密;以及
使具有解密附件的所述消息传输到所述企业资源。
14.如实施方式13所述的计算机存储器,其中所述解密对安装在所述移动设备上的电子邮件客户端是透明的。
15.如实施方式13所述的计算机存储器,其中所述过程还包括当所转发的消息被呈递到不同的移动设备时,基于所述企业的所述一个或多个可配置访问策略中的至少一个是否指示对所述不同的移动设备的所述附件加密来确定是否对所述附件重新加密。
16.一种***,包括:
数据存储器,其配置成存储规定对附件加密时的条件的一个或多个规则;以及
与所述数据存储器通信的一个或多个计算设备,所述一个或多个计算设备配置成:
监控来自企业计算***的被呈递到移动设备的消息;以及
至少部分地通过比较与所述选定消息相关的条件与在存储在所述数据存储器中的所述一个或多个规则中的所述条件相关的值来确定是否对所述消息中的选定消息的附件加密。
17.如实施方式16所述的***,其中所述条件包括所述移动设备的特性。
18.如实施方式16所述的***,其中所述条件包括与所述移动设备相关的用户的特性。
19.如实施方式16所述的***,其中所述条件包括所述附件的特性。
20.如实施方式16所述的***,其中所述消息是来自企业电子邮件服务器的电子邮件消息,所述电子邮件消息被呈递到所述移动设备。
21.如实施方式20所述的***,其中所述一个或多个计算设备配置成对所述移动设备的电子邮件客户端透明地将所述附件加密。
22.如实施方式20所述的***,其中所监控的消息根据ActiveSync 协议被格式化。
23.如实施方式16所述的***,其中所述一个或多个计算设备还配置成:
对用于加密所述附件的附件密钥加密;以及
使加密的附件密钥传输到所述移动设备。
24.如实施方式23所述的***,其中所述一个或多个计算设备配置成对所述附件密钥加密,使得只有所述移动设备配置成对所述附件密钥解密。
25.如实施方式16所述的***,其中所述一个或多个计算设备还配置成基于比较与所述选定消息相关的条件和与在所述数据存储器中存储的所述一个或多个规则中的条件相关的值来对所述选定消息的至少一部分加密。
26.如实施方式16所述的***,其中所述一个或多个计算设备包括防火墙服务器、应用服务器、配置成控制防火墙服务器的计算设备或配置成控制应用服务器的计算设备中的至少一个。
27.如实施方式16所述的***,其中所述一个或多个计算设备配置成与所述消息到所述移动设备的传输分开地使所述加密附件传输到所述移动设备。
28.如实施方式16所述的***,其中所述一个或多个计算设备配置成:
响应于对所述附件加密的确定来对所述附件加密;以及
使加密附件代替所述附件传输到所述移动设备。
29.一种选择性地保护被呈递到移动设备的电子邮件附件数据的方法,所述方法包括:
监控来自企业资源的被呈递到移动设备的电子邮件消息;
检测由所述移动设备从所述企业资源请求的数据包括所述电子邮件消息中的选定电子邮件消息的附件;
至少部分地通过比较在至少一个规则中的特性的值和与下列项中的至少一个相关的特性来确定是否对所述附件加密用于传输到所述移动设备:所述选定电子邮件消息、所述附件、所述移动设备的用户和所述移动设备;以及
当做出对所述附件加密的确定时,使所述附件加密:
所述方法由包括一个或多个计算设备的计算***执行。
30.一种存储可执行部件的非临时计算机存储器,所述可执行部件配置成安装在移动设备上以提供用于安全地访问来自企业计算***的数据的功能,所述可执行部件包括引导所述移动设备执行过程的指令,所述过程包括:
确定由所述移动设备接收的电子邮件消息包括由与所述企业计算***相关的网关加密的附件;以及
使用从所述企业计算***得到的密钥对存储在所述移动设备上的所述附件解密,所述解密对安装在所述移动设备上的电子邮件客户端透明地出现,所述解密也对所述企业计算***的企业电子邮件服务器透明地出现。
31.如实施方式30所述的非临时计算机存储器,其中所述过程还包括提示所述移动设备的用户以提供访问证书,且其中所述解密响应于检测到从所述用户接收的所述访问证书指示根据一个或多个企业访问策略所述用户被授权来访问附件。
32.如实施方式31所述的非临时计算机存储器,其中所述访问证书包括密码。
范例实施方式
本公开的另一范例实施方式包括:
1.一种计算机可读介质,其上存储有代理部件,所述代理部件配置成安装在用户的移动设备上以通过网络提供对企业***的企业资源的安全访问,所述代理部件包括实现过程的可执行代码,所述过程包括:
拦截由安装在所述移动设备上的应用产生的HTTP请求;
根据隧道协议封装所述HTTP请求的表示;以及
将所述HTTP请求的封装表示通过网络发送到隧道中介,该隧道中介配置成提取所述HTTP请求的所述表示并将所述HTTP请求的所述表示转发到相应的企业资源。
2.如实施方式1所述的计算机可读介质,其中封装所述HTTP请求的表示包括通过用所述企业资源的主机名代替主机名来修改所述HTTP请求,以及封装已修改的HTTP请求。
3.如实施方式1所述的计算机可读介质,其中所述代理部件配置成作为HTTP代理服务器拦截所述HTTP请求。
4.如实施方式1所述的计算机可读介质,其中所述代理部件配置成结合安装在所述移动设备上的所述应用特有的隧道定义来发送所述HTTP请求的所述封装表示。
5.如实施方式1所述的计算机可读介质,其中所述代理部件配置成经由应用隧道发送所述HTTP请求的所述封装表示,所述应用隧道专用于在安装在所述移动设备上的所述应用和所述企业资源之间的通信。
6.如实施方式1所述的计算机可读介质,其中所述过程还包括复用来自安装在所述移动设备上的多个应用的封装通信用于通过公共连接传输到所述隧道中介,使得多个应用隧道通过所述公共连接被复用。
7.如实施方式1所述的计算机可读介质,其中所述代理部件配置成使用定制SSL(安全套接层)库来建立与所述企业资源的安全会话,并使用所述安全连接来发送所述HTTP请求的所述封装表示,所述定制SSL库配置成接受由所述企业资源返回的数字证书,而不考虑主机名失配,使得主机名匹配要求被忽视。
8.一种包括一个或多个计算设备的计算***,所述计算设备被编程以实现:
应用隧道定义的仓库,每个隧道定义相应于移动设备应用并指示与所述计算机***的资源相关的服务器端口;以及
隧道中介,其配置成:
从安装在移动设备上的代理接收应用隧道形成请求,所述应用隧道形成请求识别所述隧道定义之一;
从所述仓库检索所识别的隧道定义;
从所检索的隧道定义确定所述计算机***的资源的服务器端口;
从所述代理接收至少一个代理产生的通信,所述代理产生的通信包括来自安装在所述移动设备上的应用的应用产生的通信,所述应用与所识别的隧道定义相关,所述应用产生的通信由所述代理封装在封装协议的一个或多个头部内;
从所述代理产生的通信提取所述应用产生的通信;以及
经由资源网络连接将所述应用产生的通信发送到所述服务器端口。
8.如实施方式8所述的计算机***,其中所述隧道中介还配置成:
经由所述资源网络连接从所述资源接收对所述应用产生的通信的响应;
将所述响应封装在所述封装协议的一个或多个头部内;以及
将封装响应发送到所述移动设备的所述代理。
10.如实施方式8所述的计算机***,其中:
所述移动设备应用包括web浏览器;
所述应用产生的通信包括在万维网上可用的信息资源的统一资源定位符(URL);以及
所述隧道中介配置成:
应用管理对所述URL的访问是否被与所述计算机***相关的企业允许的策略;
通过将所述应用产生的通信发送到URL来对所述URL的访问被允许的确定作出响应;以及
通过不将所述应用产生的通信发送到URL来对所述URL的访问不被允许的确定作出响应。
11.如实施方式8所述的计算机***,还包括与所述隧道中介相关的移动设备管理器,所述移动设备管理器配置成如果所述移动设备或被分配到所述移动设备的用户的一个或多个特性不符合与所述移动设备管理器相关的一个或多个策略则拒绝所述请求。
12.如实施方式8所述的计算机***,其中所述隧道中介还配置成:
经由所述资源网络连接从所述资源接收数据;
经由在所述隧道中介和所述移动设备之间的移动设备网络连接开始将所述数据发送到所述移动设备;
通过缓存还未发送到所述移动设备的数据的至少一部分来对所述移动设备网络连接的失去做出响应;以及
通过经由所恢复的网络连接将缓存的数据发送到所述移动设备来对所述移动设备网络连接的恢复做出响应。
13.如实施方式8所述的计算机***,其中所述隧道中介还配置成记录关于下列项中的至少一个的信息:(1)从特定应用接收并经由所述资源网络连接由所述隧道中介发送到所述资源的应用产生的通信;以及(2) 从所述资源接收并由所述隧道中介发送到所述移动设备的资源产生的通信。
14.一种包括处理器和存储器的移动设备,所述移动设备包括:
存储在所述存储器中的一个或多个应用隧道定义,每个隧道定义相应于移动设备应用并指示本地移动设备端口;
安装在所述移动设备上的代理,所述代理与所述远程计算机***相关并配置成:
接收由安装在所述移动设备上的应用产生的应用产生的通信,所述应用配置成与远程计算机***的资源通信;
搜索所述存储器以检索与所述应用相关的隧道定义;
基于所检索的隧道定义产生应用隧道形成请求;
将所述应用产生的通信的至少一部分封装在封装协议的一个或多个头部内;以及
将所述应用隧道形成请求和封装的应用产生的通信发送到所述远程计算机***的隧道中介。
15.如实施方式14所述的移动设备,其中所述应用产生的通信包括 HTTP请求,且所述代理配置成(1)通过用所述资源的主机名代替所述 HTTP请求中的主机名来修改所述HTTP请求,以及(2)将已修改的HTTP 请求封装在所述封装协议的所述一个或多个头部内。
16.如实施方式14所述的移动设备,其中所述代理配置成作为所述应用的HTTP代理服务器来操作。
17.如实施方式14所述的移动设备,其中所述代理还配置成:
经由在所检索的隧道定义中定义的本地移动设备端口从所述隧道中介接收对所述应用产生的通信的响应,所述响应被封装在所述封装协议的一个或多个头部内;
从所述一个或多个头部提取资源产生的响应;以及
向第一应用提供所述资源产生的响应。
18.如实施方式17所述的移动设备,其中所述响应由所述资源产生并由所述隧道中介封装。
19.如实施方式14所述的移动设备,其中所述代理配置成通过缓存还没有发送到所述隧道中介的数据来对移动设备连接的失去做出响应;并配置成通过经由所恢复的移动设备连接将缓存的数据发送到所述隧道中介来对所述移动设备连接的恢复做出响应。
20.一种包括可执行指令的非临时计算机存储器,所述可执行指令引导移动设备执行过程,所述过程包括:
拦截由在所述移动设备上运行的移动应用发送的消息;
修改由所述消息规定的主机名以相应于目标应用服务器;
根据应用隧道协议来封装已修改的消息;以及
在无线网络上发送所封装的已修改消息用于经由应用隧道分发到所述应用服务器。
21.如实施方式20所述的非临时计算机存储器,其中指令形成实现所述过程的HTTP代理服务器部件。
22.如实施方式20所述的非临时计算机存储器,其中所述应用隧道专用于在所述移动应用和所述目标应用服务器之间的通信。
23.一种包括可执行代码的非临时计算机可读存储器,所述可执行代码配置成安装在移动设备上以实现用于使安装在所述移动设备上的移动应用能够通过网络经由安全应用隧道与应用服务器通信的过程,所述过程包括:
创建与所述应用服务器的安全SSL(安全套接层)会话,其中创建所述安全SSL会话包括在从所述应用接收的数字证书的检查期间忽视主机名失配,使得所述数字证书不被拒绝;以及
实现代理服务器,该代理服务器拦截来自在所述移动设备中的移动应用的消息,根据封装协议来封装所述消息,并使用所述安全SSL连接在所述网络上发送所述封装消息。
24.如实施方式23所述的非临时计算机可读存储器,其中所述过程在所述移动设备上创建对主机名匹配要求的例外,所述例外使所述移动设备能够接受规定由所述代理服务器使用的本地主机的主机名的数字证书。
范例实施方式
本公开的额外范例实施方式包括:
1.一种提供用于在移动设备执行企业应用的安全环境的方法,所述方法包括:
将安全启动器安装在所述移动设备上,所述安全启动器与包括在所述移动设备的操作***内的通用启动器分离,所述通用启动器提供用于启动安装在所述移动设备上的非企业应用的功能;以及
将企业应用安装在所述移动设备上,使得所述企业应用能够只使用所述安全启动器而不是使用通用启动器被启动,所述企业应用包括用于访问企业***的功能;
其中所述安全启动器配置成实施认证策略,其中用户启动企业应用时必须输入有效认证信息。
2.如实施方式1所述的方法,还包括在所述移动设备上安装与所述移动设备的操作***的虚拟机分离的安全虚拟机,并配置所述移动设备,使得至少一些所述企业应用但没有一个非企业应用在所述安全虚拟机内运行。
3.如实施方式2所述的方法,其中所述安全虚拟机包括用于实施企业数据加密策略的功能,其中由所述企业应用存储在所述移动设备上的数据被加密。
4.如实施方式1所述的方法,还包括在所述移动设备上安装可执行代码,所述可执行代码配置成在所述移动设备上创建安全容器并使用所述安全容器来存储由所述企业应用输出的文档,所述安全容器与由所述非企业应用使用来存储数据的存储空间分离。
5.如实施方式1所述的方法,还包括在所述移动设备上安装可执行代码,所述可执行代码配置成创建用于使所述企业应用能够通过网络与所述企业***安全地通信的应用隧道,每个应用隧道是相应的企业应用特有的。
6.如实施方式1所述的方法,还包括在将所述企业应用安装在所述移动设备上之前经由应用修改实用程序修改至少一个所述企业应用,以配置所述企业应用来使用加密库对存储在所述移动设备上的数据加密。
7.如实施方式1所述的方法,其中所述方法包括通过用对所述安全启动器的引用代替对所述通用启动器的引用来修改至少一个所述企业应用,以从而使所述企业应用使用所述安全启动器。
8.一种包括处理器和存储器的移动设备,所述移动计算设备在其上安装有:
多个企业应用,其配置成通过网络与企业***通信;以及
安全启动器,其提供用于在所述移动设备上启动所述企业应用的用户接口,所述安全启动器与用于在所述移动设备上启动非企业应用的通用启动器分离,所述通用启动器是所述移动设备的操作***的一部分,且所述安全启动器与所述操作***分离,所述企业应用能够只使用所述安全启动器而不是所述通用启动器在所述移动设备上被启动;
其中所述安全启动器配置成当用户试图启动企业应用时认证所述移动设备的用户,并配置成当所述用户未能提供有效认证信息时阻止所述企业应用的执行。
9.如实施方式8所述的移动设备,其中所述安全启动器的所述用户接口包括在所述移动设备的多个屏幕中显示的持久显示元件,所述持久显示元件使用户能够选择性地使与特定的企业应用相关的企业应用图标的布置显现,所述企业应用图标是可选择的以发起相应企业应用的启动,企业应用图标的所述布置与用于启动非企业应用的应用图标的布置分离。
10.如实施方式9所述的移动设备,其中应用图标的所述布置包括可旋转轮显示元件,所述可旋转轮显示元件经由滑动操作可旋转以显现和隐藏沿着所述轮显示元件定位的企业应用图标。
11.如实施方式8所述的移动设备,还包括安装在所述移动设备上的安全虚拟机,所述安全虚拟机与所述操作***的虚拟机分离,其中所述移动设备配置成使得至少一些所述企业应用由所述安全虚拟机执行并使得所述非企业应用由所述操作***的虚拟机执行。
12.如实施方式11所述的移动设备,其中所述安全虚拟机包括用于使由企业应用存储在所述移动设备的所述存储器中的数据被加密的功能。
13.如实施方式11所述的移动设备,其中所述安全启动器配置成启动所述安全虚拟机,并使由用户选择的企业应用由所述安全虚拟机执行。
14.如实施方式8所述的移动设备,其中所述安全启动器配置成执行选择性抹掉操作,其中与所述企业应用相关的数据从所述移动设备被删除而不删除与所述非企业应用相关的数据。
15.如实施方式8所述的移动设备,其中所述移动设备在其上安装了与所述企业***通信的企业代理部件,所述代理部件包括用于创建应用隧道的可执行代码,所述应用隧道使所述企业应用能够通过所述网络与所述企业应用通信,每个应用隧道是特定的企业应用特有的。
16.如实施方式15所述的移动设备,其中所述代理配置成收集识别安装在所述移动设备上的所述非企业应用的信息并向所述企业***的移动设备管理部件报告所述信息。
17.一种提供安全环境用于在移动设备上的企业应用的执行的方法,所述移动设备在其上包括非企业应用,所述方法包括:
在所述移动设备上安装安全虚拟机,所述安全虚拟机与包括在移动设备的操作***内包括的虚拟机分离;以及
配置所述移动设备以使至少一个企业应用但没有一个所述非企业应用在所述安全虚拟机中运行,由此,所述非企业应用继续使用包括在所述操作***内的所述虚拟机;
其中所述安全虚拟机包括用于实现加密策略的功能,其中由所述企业应用存储在所述移动设备上的数据被加密。
18.如实施方式17所述的方法,其中所述安全虚拟机此外包括用于创建在所述移动设备和企业***之间的应用隧道并使用所述应用隧道用于在所述企业应用和所述企业***之间的通信的功能。
19.如实施方式17所述的方法,其中所述方法包括将对所述安全虚拟机的引用包括在所述企业应用中。
20.如实施方式17所述的方法,还包括将安全启动器安装在所述移动设备上,并配置所述企业应用以使用所述安全启动器,所述安全启动器与包括在所述移动设备的所述操作***内的通用启动器分离。
范例实施方式
本公开的额外范例实施方式包括:
1.一种非临时计算机存储器,其存储应用修改实用程序,该应用修改实用程序使预先存在的移动应用能够被配置成由企业的成员使用来安全地访问移动设备上的企业数据,所述实用程序包括引导计算机***实现过程的可执行代码,所述过程包括:
反汇编所述移动应用的可执行代码;
分析反汇编的代码;
修改所述反汇编的代码以增加用于实现至少一个企业安全策略的功能,所述修改包括替换与待修改的一个或多个行为相关的一个或多个API (应用程序接口)调用;以及
使用所修改的反汇编的代码重建所述移动应用。
2.如实施方式1所述的计算机存储器,其中修改所述反汇编的代码包括增加使所述移动应用使用加密库来对存储在移动设备上的数据加密的功能。
3.如实施方式1所述的计算机存储器,其中修改所述反汇编的代码包括增加使所述移动应用使用安全应用隧道来通过网络与企业资源通信的功能。
4.如实施方式1所述的计算机存储器,其中修改所述反汇编的代码包括增加当所述移动应用被启动时使用户被提示输入密码的功能。
5.如实施方式1所述的计算机存储器,其中所述过程还包括混淆所述移动应用的至少一个已修改部分以禁止相关安全特征的逆向工程。
6.如实施方式1所述的计算机存储器,其中修改所述反汇编的代码包括禁用剪切和粘贴功能。
7.如实施方式1所述的计算机存储器,其中修改所述反汇编的代码包括增加使所述企业能够远程地发起从特定移动设备删除与所述移动应用相关的数据的代码。
8.如实施方式1所述的计算机存储器,其中所述过程还包括用对安全启动器的引用代替在所述移动应用中对移动设备操作***的通用启动器的引用,以从而使所述移动应用使用所述安全启动器。
9.如实施方式1所述的计算机存储器,其中所述过程还包括修改所述移动应用中的引用以使所述移动应用在与操作***虚拟机分离的安全虚拟机中运行。
10.如实施方式1所述的计算机存储器,其中分析所述反汇编的代码包括检查代表潜在安全风险的行为。
11.如实施方式1所述的计算机存储器,其中所述实用程序配置成产生代表与所述移动应用相关的风险的级别的分数,所述分数至少部分地基于所述反汇编的代码的分析。
12.一种配置预先存在的移动应用来供企业的成员使用来使用移动设备安全地访问企业资源的计算机实现的方法,所述方法包括:
反汇编所述移动应用的可执行代码;
分析反汇编的代码;
修改所述反汇编的代码以增加用于实现至少一个企业安全策略的功能,所述修改包括替换与待修改的一个或多个行为相关的一个或多个API 调用;以及
使用所修改的反汇编的代码重建所述移动应用;
所述方法由计算机***在可执行指令的控制下执行。
13.如实施方式12所述的计算机实现的方法,其中修改所述反汇编的代码包括增加使所述移动应用使用加密库来对存储在移动设备上的数据加密的功能。
14.如实施方式12所述的计算机实现的方法,其中修改所述反汇编的代码包括增加使所述移动应用使用应用隧道来通过网络与企业资源通信的功能。
15.如实施方式12所述的计算机实现的方法,其中修改所述反汇编的代码包括增加当所述移动应用被启动时使用户被提示输入密码的功能。
16.如实施方式12所述的计算机实现的方法,还包括混淆所述移动应用的至少一个已修改部分以禁止相关安全特征的逆向工程。
17.如实施方式12所述的计算机实现的方法,其中修改所述反汇编的代码包括禁用剪切和粘贴功能。
18.如实施方式12所述的计算机实现的方法,其中修改所述反汇编的代码包括增加使所述企业能够远程地发起从特定移动设备删除与所述移动应用相关的数据的代码。
19.如实施方式12所述的计算机实现的方法,还包括用对安全启动器的引用代替对在所述移动应用中的移动设备操作***的通用启动器的引用,以从而使所述移动应用使用所述安全启动器。
20.如实施方式12所述的计算机实现的方法,还包括修改所述移动应用中的引用以使所述移动应用在与操作***虚拟机分离的安全虚拟机中运行。
范例实施方式
本公开的额外范例实施方式包括:
1.一种包括用户接口、存储器和配置成运行存储在所述存储器上的应用的至少一个处理器的移动设备,所述移动设备包括:
Web浏览器,其安装在所述移动设备的所述存储器上;以及
企业应用,其安装在所述移动设备的所述存储器上,所述企业应用配置成通过启动所述web浏览器并在所述web浏览器内运行来对被运行做出响应;
其中所述web浏览器配置成根据一个或多个企业策略管制所述企业应用的操作。
2.如实施方式1所述的移动设备,其中所述web浏览器配置成通过被配置为代理服务器的一个或多个计算设备将通信从所述移动设备路由到企业资源以使内容过滤变得可能。
3.如实施方式1所述的移动设备,其中所述web浏览器配置成经由应用隧道通过所述企业计算***的隧道中介与企业计算***的企业资源通信。
4.如实施方式1所述的移动设备,其中所述web浏览器配置成使由所述软件应用写到所述存储器的数据被加密。
5.如实施方式1所述的移动设备,其中所述web浏览器配置成在将所述企业应用的功能显现于所述用户之前验证用户经由所述用户接口提供的访问证书。
6.如实施方式5所述的移动设备,其中所述访问证书包括密码。
7.如实施方式1所述的移动设备,其中所述web浏览器配置成:
接收或拦截由所述企业应用发送到网络资源的请求;
将所述请求的至少一部分封装在封装协议的一个或多个头部内;以及
将所述请求的封装部分发送到与所述网络资源相关的隧道中介,以与所述隧道中介一起建立通信隧道。
8.如实施方式7所述的移动设备,其中所述企业应用配置成经由所述用户接口接收数据并产生将所述数据发送到网络资源的请求,且其中所述web浏览器配置成:
通过缓存还没有发送到所述隧道中介的所述数据的至少一部分来对失去网络连接做出响应;以及
通过经由所恢复的网络连接将所缓存的数据发送到所述隧道中介来对所述网络连接的恢复做出响应。
9.如实施方式7所述的移动设备,其中所述企业应用配置成产生将第一数据发送到网络资源的请求,且其中所述web浏览器配置成:
压缩所述第一数据;
经由所述通信隧道将所压缩的第一数据发送到所述隧道中介;
将经由所述通信隧道从所述隧道中介接收的第二数据解压缩;以及
向所述企业应用提供解压缩的第二数据。
10.如实施方式1所述的移动设备,其中一个或多个企业策略配置成当所述移动设备在规定地理区中的位置上时和/或当对所述网络资源的访问在规定时间范围期间被请求时限制所述企业应用对网络资源的访问。
11.如实施方式1所述的移动设备,其中一个或多个企业策略包括规定条件的一个或多个企业访问规则,在所述条件下,所述移动设备被允许访问企业资源。
12.如实施方式1所述的移动设备,其中所述企业应用配置成基于时间条件、位置条件、移动设备特性或所述移动设备的用户的特性中的至少一个通过启动所述web浏览器并在所述web浏览器内运行来对被运行做出响应。
13.如实施方式1所述的移动设备,其中所述web浏览器配置成:
接收与所述移动设备相关的一个或多个状态度量的一个或多个数据值;
至少部分地通过使用机器可读逻辑规则分析所接收的一个或多个数据值来检测与所述移动设备相关的问题的实例;以及
执行机器可读补救行动用于应对所检测的问题实例。
14.一种非临时计算机可读介质,其具有存储在其上的计算机可读指令,当所述计算机可读指令被执行时使移动设备执行操作,所述操作包括:
响应于经由所述移动设备的用户接口接收的运行安装在所述移动设备上的软件应用的请求,调用web浏览器并在所述web浏览器内运行所述软件应用,所述web浏览器配置成经由网络来访问信息资源;以及
根据一个或多个企业策略经由所述web浏览器控制所述软件应用的操作以保护企业数据。
15.如实施方式14所述的非临时计算机可读介质,其中所述调用所述web浏览器并在所述web浏览器内运行所述软件应用实质上对所述移动计算设备的用户是透明的。
16.如实施方式14所述的非临时计算机可读介质,其中控制所述软件应用的操作包括经由应用隧道在所述软件应用和企业资源之间发送通信。
17.如实施方式14所述的非临时计算机可读介质,其中控制所述软件应用的操作包括通过被配置为代理服务器的一个或多个计算设备将通信从所述移动设备路由到企业资源以使内容过滤变得可能。
18.如实施方式14所述的非临时计算机可读介质,其中所述操作还包括经由所述web浏览器使由所述软件应用写到所述存储器的数据被加密。
19.如实施方式14所述的非临时计算机可读介质,其中所述操作还包括在运行所述软件应用之前所述web浏览器提示用户输入密码并验证所述密码。
20.如实施方式14所述的非临时计算机可读介质,其中控制所述软件应用的操作包括基于比较与所述移动设备相关的条件与存储在所述非临时计算机可读介质上的企业访问规则中的条件的值来管制所述移动设备对企业资源的访问。
21.如实施方式14所述的非临时计算机可读介质,其中操作操作还包括:
基于指示由所述用户接口接收的统一资源定位符(URL)的信息来将对信息资源的请求发送到服务器;
从所述服务器接收所述信息资源;以及
经由所述移动设备的所述用户接口使所述信息资源变得可用。
22.一种非临时计算机可读介质,其具有存储在其上的计算机可读指令,所述可执行指令配置成实现安全浏览器,所述安全浏览器配置成至少:
在企业用户的移动设备上运行;以及
控制配置成在所述安全浏览器内运行的至少一个企业应用的执行,以便实施至少一个企业安全策略来保护企业数据,其中所述至少一个企业应用存储在所述移动设备上。
23.如实施方式22所述的非临时计算机可读介质,其中所述安全浏览器配置成通过下列操作中的一个或多个来控制所述至少一个企业应用的执行:
经由应用隧道通过所述企业计算***的隧道中介来与企业计算***的企业资源通信,所述应用隧道使用协议封装来通过网络发送数据;
通过被配置为代理服务器的一个或多个计算设备将通信从所述至少一个企业应用路由到外部计算设备以执行内容过滤;以及
基于比较与所述移动设备相关的条件与一个或多个企业访问规则中的条件的值来管制所述移动设备对所述至少一个企业资源的访问。
24.如实施方式26所述的移动设备,其中所述安全浏览器配置成使由所述至少一个企业应用写到所述移动设备的数据加密。
25.如实施方式26所述的移动设备,其中所述安全浏览器配置成在使所述至少一个企业应用的功能显现于用户之前验证由所述用户提供的密码。
26.一种移动设备,包括:
非临时存储器,其配置成存储第一应用和第二应用,所述第一应用包括可执行指令以自动使所述移动设备响应于所述第一应用被执行而启动所述第二应用,所述第二应用包括可执行指令以在所述第二应用内运行所述第一应用,且所述第二应用还包括可执行指令以实现一个或多个企业访问策略来管制对至少一个企业资源的访问;以及
至少一个处理器,其与所述非临时存储器通信,所述至少一个处理器配置成运行所述第一应用和所述第二应用。
27.如实施方式26所述的移动设备,其中实现一个或多个企业访问策略的所述可执行指令配置成使所述第二应用执行下列操作中的一个或多个:
经由应用隧道通过企业计算***的隧道中介与所述企业资源通信,所述企业计算***包括所述一个或多个企业资源:
通过被配置为代理服务器的一个或多个计算设备将通信从所述移动设备路由到所述至少一个企业资源以执行内容过滤;以及
基于比较与所述移动设备相关的条件与存储在所述非临时计算机可读介质上的一个或多个企业访问规则中的条件的值来管制所述移动设备对所述至少一个企业资源的访问。
28.如实施方式26所述的移动设备,其中实现一个或多个企业访问策略的所述可执行指令配置成使所述第二应用使由所述第一应用写到所述非临时存储器的数据加密,并在使所述第一应用的功能显现于用户之前验证由所述用户提供的访问证书。
范例实施方式
本公开的额外范例实施方式包括:
1.一种包括计算机可读存储器和配置成执行存储在所述计算机可读存储器上的计算机可执行代码的至少一个处理器,所述移动设备包括:
文件***,其包括所述移动设备的所述计算机可读存储器的第一部分,所述文件***配置成存储包括企业文档的企业数据;
所述计算机可读存储器的第二部分,其配置成存储与在企业中的用户的角色之外的所述移动设备的所述用户的活动相关的私人数据,所述第二部分逻辑地与所述文件***分离;以及
访问管理器,其由存储在所述移动设备的所述计算机可读存储器上的计算机可执行代码实现,所述访问管理器配置成在所述文件***上存储所述企业文档,使得所述企业文档与所述私人数据逻辑地分离,并基于与所述企业文档相关的一个或多个文档访问策略来限制安装在所述移动设备上的软件应用对企业文档的访问,使得所述软件应用具有与所述私人数据不同的对访问所述企业文档的限制。
2.如实施方式1所述的移动设备,其中所述访问管理器配置成使所述企业能够远程地发起存储在所述文件***上的所述企业数据的至少一部分的删除,而不修改存储在所述计算机可读存储器的所述第二部分上的所述私人数据。
3.如实施方式1所述的移动设备,其中所述访问管理器配置成基于在所述移动设备和所述企业计算***之间的通信的模式来确定是否将从企业计算***接收的企业文档存储在所述文件***上。
4.如实施方式3所述的移动设备,其中所述访问管理器配置成当所述企业文档经由应用隧道通过所述企业计算***的隧道中介传输到所述移动设备时将所接收的企业文件存储在所述文件***上。
5.如实施方式1所述的移动设备,其中所述访问管理器配置成基于所述一个或多个访问策略来防止所述软件应用执行下列操作中的至少一个:
复制来自所述企业文档的数据;
将所述移动设备上的所述企业文档保存在所述文件***之外;或
将所述企业文档附加到从所述移动设备发送到另一计算设备的通信。
6.如实施方式1所述的移动设备,其中所述一个或多个文档访问策略基于由所述用户或所述软件应用中的至少一个提供的访问证书来限制对在所述文件***中的所述企业文档的访问。
7.如实施方式1所述的移动设备,其中所述一个或多个文档访问策略基于所述软件应用或请求对所述企业文档的访问的所述移动设备的部件的特性中的至少一个来限制对在所述文件***中的所述企业文档的访问。
8.如实施方式1所述的移动设备,其中所述访问管理器配置成使安装在所述移动设备上的企业应用能够访问存储在所述文件***中的所述企业文档并防止非企业应用访问存储在所述文件***中的所述企业文档。
9.如实施方式1所述的移动设备,其中所述访问管理器配置成要求存储在所述文件***中的所述企业文档被加密。
10.一种保护存储在移动设备上的企业数据的方法,所述方法包括:
通过所述移动设备从企业资源接收企业数据;
将所述企业数据存储在所述移动设备的安全文档容器中,使得所述企业数据与非企业数据逻辑地分离,所述安全文档容器包括计算机可读存储器,所述存储在所述移动设备上运行的企业代理的控制下自动出现;以及
根据一个或多个文档访问策略选择性地控制对存储在所述移动设备的所述安全文档容器中的所述企业数据的访问,所述一个或多个文档访问策略规定用于访问所述企业数据的条件,其中对所述非企业数据的访问独立于所述一个或多个文档访问策略。
11.如实施方式10所述的方法,还包括响应于所述移动设备被损坏的指示或所述设备的用户不再与所述企业相关的指示中的至少一个而删除所述安全文档容器中的所述企业数据并保持所述非企业数据不修改。
12.如实施方式10所述的方法,还包括响应于接收到一段时间终止或所述移动设备的位置在地理区之外的一个或多个的指示而删除所述企业数据。
13.如实施方式10所述的方法,其中所述条件包括一段时间终止或所述移动设备的位置在地理区之外的一个或多个。
14.如实施方式10所述的方法,其中所述条件包括下列项中的一个或多个:
存储在所述移动设备上的哪个应用请求对所述企业数据的访问;
所述移动设备的哪个部件请求对所述企业数据的访问;或
与随访问所述企业数据的请求提供的证书相关的信息。
15.如实施方式10所述的方法,其中所述企业数据经由在所述企业资源和在所述移动设备上运行的应用之间形成的应用隧道接收自所述企业资源,所述应用隧道使用协议封装来通过网络发送数据。
16.如实施方式15所述的方法,其中将所述企业数据存储在所述移动设备的所述安全文档容器中至少部分地响应于检测到所述企业数据由所述应用隧道接收到。
17.如实施方式10所述的方法,还包括防止存储在所述移动设备的所述安全文档容器中的所述企业数据存储在所述移动设备上的所述安全文档容器之外。
18.一种非临时存储介质,其包括存储在其上的指令,所述指令由移动设备可执行来执行过程,所述过程包括:
在所述移动设备的存储器的一部分内创建用于存储企业数据的安全文档容器,所述安全文档容器与用于存储非企业数据的存储空间分离;
将从企业计算***接收的企业数据存储在所述移动设备的所述安全文档容器中;以及
基于规定用于允许对存储在所述安全文档容器中的所述企业数据的访问的条件的一个或多个规则来限制对存储在所述安全文档容器中的所述企业数据的访问,其中对存储在所述移动设备上的所述非企业数据的访问独立于所述一个或多个规则。
19.如实施方式18所述的存储介质,其中所述过程包括经由在所述企业资源和在所述移动设备上运行的应用之间形成的应用隧道来使在所述移动设备上运行的所述应用与所述企业计算***的企业资源通信,所述应用隧道使用协议封装来通过网络发送企业数据。
20.如实施方式18所述的存储介质,其中所述过程还包括响应于检测或接收到在所述一个或多个规则的至少一个中规定的条件的指示这两个操作中的至少一个而删除在所述安全文档容器中的所述企业数据,而与对存储在所述安全文档容器之外的所述移动设备上的其它数据的修改无关。
21.如实施方式18所述的存储介质,其中所述一个或多个规则配置成基于地理限制或时间限制中的至少一个来限制对所述企业数据的访问。
22.如实施方式21所述的存储介质,其中所述过程还包括当规定时间段终止或所述移动设备位于规定地理区之外时从所述安全文档容器删除所述企业数据的至少一部分。
23.如实施方式18所述的存储介质,其中所述条件包括由所述移动设备的用户提供的访问证书经过了验证。
24.如实施方式18所述的存储介质,其中所述过程还包括从在安全虚拟机中运行的应用得到所述企业数据,所述安全虚拟机与所述移动设备的操作***的虚拟机分离。
25.如实施方式18所述的存储介质,其中所述过程还包括经由安装在所述移动设备上的安全浏览器中运行的应用得到所述企业数据,所述安全浏览器配置成管制所述应用对所述安全文档容器的访问。
26.如实施方式18所述的存储介质,其中所述一个或多个规则配置成当非企业应用请求对所述企业数据的访问时拒绝对存储在所述安全文档容器中的所述企业数据的访问。
范例实施方式
本公开的额外范例实施方式包括:
1.一种移动设备,包括:
处理器和存储器;
企业代理,其安装在所述移动设备上,所述企业代理包括用于使安装在所述移动设备上的企业应用能够安全地访问企业的企业***的资源的功能,所述企业代理配置成收集与所述移动设备相关的多个状态度量的数据值;
多个规则,其存储在所述存储器中,至少一些所述规则将由一个或多个所述状态度量数据值指示的状态映射到指示与所述企业相关的安全风险和/或生产率风险的问题;
补救行动数据,其存储在所述存储器中,所述补救行动数据规定用于处理特定问题的补救行动,每个补救行动相应于一个或多个所述问题;
其中所述代理配置成:
至少部分地通过使用所述规则分析所述状态度量数据值来程序化地检测所述问题的实例;以及
通过在所述移动设备上执行所述补救行动之一对所述问题之一的所检测到的实例做出响应,所执行的补救行动相应于所检测到的问题实例的问题。
2.如实施方式1所述的移动设备,其中至少一些所述问题指示对所述企业的安全风险。
3.如实施方式1所述的移动设备,其中至少一些所述问题指示对所述企业的生产率风险。
4.如实施方式1所述的移动设备,其中所述代理还配置成基于从所述企业***接收的规则信息来更新所述规则。
5.如实施方式1所述的移动设备,其中所述补救行动包括包含在所述移动设备的用户接口上产生消息的补救行动,所述消息指示所述设备的用户在所述设备上执行行动。
6.如实施方式5所述的移动设备,其中所述补救行动相应于被规定为使SIM卡从所述移动设备脱离的问题,且由所述消息指示的所述行动包括使所述SIM卡与所述设备重新啮合。
7.如实施方式5所述的移动设备,其中所述补救行动相应于被规定为禁用对所述设备的密码保护的问题,且由所述消息指示的所述行动包括激活对所述设备的密码保护。
8.如实施方式1所述的移动设备,其中所述补救行动中的特定补救行动相应于被规定为所述设备接收未授权网络连接的问题,所述特定的补救行动包括防止所述未授权网络连接。
9.如实施方式1所述的移动设备,其中所述补救行动中的特定补救行动包括下列行动中的一个:
激活或去激活所述移动设备的特征;以及
在所述设备的用户接口上产生消息,所述消息指示所述设备的用户激活或去激活所述移动设备的所述特征。
10.如实施方式9所述的移动设备,其中:
所述特征包括所述设备的摄像机;
所述特定的补救行动相应于被定义为所述设备位于所述企业的房屋内且所述摄像机可供使用;
所述特定的补救行动包括下列操作之一:
去激活所述摄像机;以及
在所述设备的所述用户接口上产生所述消息,所述消息指示所述设备的所述用户去激活所述摄像机。
11.如实施方式9所述的移动设备,其中:
所述特征包括所述设备的网络连接能力;
所述特定的补救行动相应于被定义为所述设备使用所述网络连接能力来连接或试图连接到不安全网络;
所述特定的补救行动包括下列操作之一:
终止或防止到所述不安全网络的连接;
去激活所述网络连接能力;
在所述设备的所述用户接口上产生所述消息,所述消息指示所述设备的所述用户终止到所述不安全网络的所述连接;以及
在所述设备的所述用户接口上产生所述消息,所述消息指示所述设备的所述用户去激活网络连接能力。
12.如实施方式1所述的移动设备,其中所述补救行动中的特定补救行动包括下列操作之一:
从所述设备卸载应用;以及
在所述设备的所述用户接口上产生所述消息,所述消息指示所述设备的所述用户从所述设备卸载所述应用。
13.如实施方式12所述的移动设备,其中所述特定补救行动相应于被规定为所述应用未被授权安装在所述移动设备上的问题。
14.如实施方式1所述的移动设备,其中所述补救行动中的至少一个包括下列操作中的至少一个:
从所述企业删除数据,所删除的数据与所述企业有关;以及
在所述设备的所述用户接口上产生所述消息,所述消息指示所述设备的所述用户删除与所述企业有关的数据。
15.一种非临时存储介质,其具有存储在其上的可执行指令,所述可执行指令引导移动设备执行过程,所述过程包括:
收集与所述移动设备相关的多个状态度量的数据值;
在所述移动设备上接收和存储多个规则,至少一些所述规则将由一个或多个所述状态度量数据值指示的状态映射到指示与企业相关的安全风险和/或生产率风险的问题,
接收并存储用于规定处理特定的问题的补救行动的补救行动数据,每个补救行动相应于一个或多个所述问题;
至少部分地通过使用所述规则分析所收集的状态度量数据值来检测所述问题的实例;以及
通过在所述移动设备上执行所述补救行动之一来对所述问题之一的所检测的实例做出响应,所执行的补救行动相应于所检测的问题实例的问题。
16.一种***,包括:
网关,其包括一个或多个计算设备,所述网关配置成:
从移动设备接收访问企业***的资源的访问请求;
基于可配置标准来允许或拒绝所述访问请求;以及
记录与所述网关对所述访问请求的允许和拒绝相关的数据;以及
分析服务,其配置成:
接收包含与从移动计算设备发送到所述企业***的资源的通信相关的移动业务数据的用户确定请求;
搜索所记录的数据以找到与在所述用户确定请求内接收的所述移动业务数据匹配的移动业务数据;
确定由所述网关接收的移动设备访问请求,所述移动设备访问请求包含匹配的移动业务数据;
确定包含在所述访问请求内的用户数据,所述访问请求包含所述匹配的移动业务数据;以及
计算指示移动设备用户相应于发起所述通信的用户数据的置信度水平的可靠性分数。
17.如实施方式16所述的***,其中:
所述通信的移动业务数据包括IP地址;以及
所述匹配的移动业务数据包括IP地址。
18.如实施方式16所述的***,其中:
所述用户确定请求包含所述通信的接收时间;以及
所述分析服务配置成至少部分地基于比较所述接收时间与所述网关接收到包含所述匹配的移动业务数据的所述访问请求时的时间来计算可靠性分数。
19.如实施方式16所述的***,其中:
所述用户确定请求包含所述通信的接收时间;以及
所述分析服务配置成:
搜索所记录的数据以确定(1)具有与在所述用户确定请求内接收的所述移动业务数据匹配的移动业务数据以及(2)由所述网关在包含所述接收时间的时间窗内接收的访问请求的总数;以及
至少部分地基于访问请求的所述总数来计算所述可靠性分数。
范例实施方式
本公开的额外范例实施方式包括:
1.一种用于控制移动设备对企业***的企业资源的访问的***,所述***包括:
企业代理,其在企业用户的移动设备上运行,所述企业代理配置成使所述移动设备收集并报告移动设备特性信息,包括关于安装在所述移动设备上的应用的信息;以及
移动设备管理***,其配置成存储至少(1)由所述移动设备报告的所述移动设备特性信息,(2)关于所述移动设备的用户的用户信息,包括规定在企业中的所述用户的相应角色的信息,以及(3)规定所述企业的企业访问策略的数据,包括与特定的企业资源相关的访问策略,所述移动设备管理***包括一个或多个计算设备;
所述移动设备管理***配置成结合规定所述企业访问策略的所述数据来使用所存储的移动设备特性信息和与所述移动设备相关的用户信息,以控制所述移动设备对所述企业资源的访问。
2.如实施方式1所述的***,其中所述移动设备管理***配置成至少部分地基于如从所述移动设备经由所述企业代理所报告的信息确定的所述移动设备是否具有安装在其上的未授权应用来确定是否允许移动设备对访问企业资源的请求。
3.如实施方式1所述的***,其中所述移动设备管理***配置成通过查找所述移动设备特性信息和与所述设备相关的用户信息并通过确定所查找的移动设备特性信息和用户信息是否符合与所述企业资源相关的至少一个企业访问策略来对来自移动设备的对访问企业资源的请求做出响应。
4.如实施方式3所述的***,其中来自所述移动设备的对访问所述企业资源的所述请求是形成在所述企业资源和在所述移动设备上运行的应用之间的应用隧道的请求。
5.如实施方式3所述的***,其中所述移动设备管理***配置成至少部分地基于所述移动设备的所述用户在所述企业内的角色来允许或拒绝所述请求。
6.如实施方式1所述的***,其中所述移动设备管理***配置成至少部分地基于如经由所述企业代理由所述移动设备报告的所述移动设备的位置来允许或拒绝所述请求。
7.如实施方式1所述的***,其中所述移动设备管理***配置成基于规定所述企业访问策略的所存储的数据结合所述移动设备特性信息和/ 或用户信息来产生网关规则,并至少部分地通过向管制移动设备对企业资源的访问的移动网关提供所述网关规则来控制访问。
8.如实施方式7所述的***,其中所述移动设备管理***配置成至少基于所存储的移动设备特性信息和用户信息至少部分地通过将企业访问策略转换成较低级网关规则来产生所述网关规则。
9.如实施方式7所述的***,还包括配置成将所述规则应用于从所述移动设备接收的访问请求的移动网关,所述移动网关包括配置成在企业防火墙服务器上运行的移动网关过滤器。
10.如实施方式1所述的***,其中所述企业代理能够响应于确定未授权应用安装在移动设备上来在所述移动设备上执行补救行动。
11.如实施方式1所述的***,其中所述补救行动包括下列操作中的至少一个:(1)阻止所述未授权应用执行,以及(2)从所述移动设备删除数据。
12.如实施方式1所述的***,其中所述移动设备管理***配置成向所述移动设备发送规则,包括指示需要相关补救行动的特定条件的规则,且其中所述企业代理配置成在所述企业代理安装于的相应的移动设备上应用所述规则。
13.一种非临时计算机可读介质,其上存储有代理部件,所述代理部件配置成安装在企业用户的移动设备上,所述代理部件配置成至少:
向安装在所述移动设备上的一个或多个授权应用提供安全路径以访问企业***的企业资源;
识别安装在所述移动设备上的应用;
确定安装在所述移动设备上的应用中的任一个是否是未授权应用;以及
响应于确定所述未授权应用安装在所述移动设备上而在所述移动设备上执行补救行动。
14.如实施方式13所述的非临时计算机可读介质,其中所述补救行动包括防止所述未授权应用在所述移动设备上运行。
15.如实施方式13所述的非临时计算机可读介质,其中所述补救行动包括从所述移动设备卸载所述未授权应用。
16.如实施方式13所述的非临时计算机可读介质,其中所述补救行动包括阻止所述移动设备访问所述企业***。
17.如实施方式13所述的非临时计算机可读介质,其中所述补救行动包括从所述移动设备删除对存储在所述移动设备上的加密企业数据解密所必需的信息。
18.如实施方式13所述的非临时计算机可读介质,其中所述代理部件通过使用协议封装以创建在特定的经授权应用和特定的企业资源之间的应用隧道来创建所述安全路径。
19.如实施方式13所述的非临时计算机可读介质,其中所述代理部件配置成向与所述企业***相关的移动设备管理***报告设备特性信息,包括关于安装在所述移动设备上的应用的信息。
20.如实施方式19所述的非临时计算机可读介质,与所述移动设备管理***结合,其中所述移动设备管理***配置成结合与所述移动设备相关的其它信息来使用关于哪些应用安装在所述移动设备上的信息以确定是否允许所述一个或多个经授权应用对访问企业资源的请求。
21.一种非临时计算机可读介质,其上存储有企业代理,所述企业代理配置成安装在企业的成员的移动设备上,所述企业代理包括可执行代码,所述可执行代码引导移动设备来:
维持移动设备规则的仓库,包括从与所述企业相关的移动设备管理***接收的规则,所述移动设备规则中的至少一些规定用于保护企业资源的条件和相关补救行动;
收集移动设备特性信息,包括关于安装在所述移动设备上的应用的信息;以及
在所述移动设备上应用所述移动设备规则,其中应用所述移动设备规则包括使用所收集的移动设备特性信息来确定所述条件是否存在,并执行与所检测的条件相关的补救行动。
22.如实施方式21所述的计算机可读介质,其中所述企业代理经由移动设备规则的应用配置成确定未授权应用是否安装在所述移动设备上并在未授权应用被安装时执行补救行动。
23.如实施方式21所述的计算机可读介质,其中所述企业代理经由移动设备规则的应用配置成确定SIM卡是否从所述移动设备脱离并响应于检测到这样的脱离而执行补救行动。
24.如实施方式21所述的计算机可读介质,其中所述企业代理经由移动设备规则的应用配置成响应于确定密码保护在所述移动设备上禁用而指示用户激活密码保护。
25.如实施方式21所述的计算机可读介质,其中所述企业代理经由移动设备规则的应用配置成响应于确定所述移动设备位于摄像机的使用未被授权的区域中而禁用所述移动设备的所述摄像机。
26.如实施方式21所述的计算机可读介质,其中所述企业代理配置成在所述移动设备上维持安装在所述移动设备上的经授权应用可访问的安全文档容器,并配置成响应于检测到代表企业安全风险的条件而从所述安全文档容器删除数据。
27.如实施方式21所述的计算机可读介质,其中所述企业代理配置成使用协议封装来对安装在所述移动设备上的相应经授权应用创建应用隧道用于通过网络与特定的企业资源进行安全通信。
Claims (10)
1.一种用于选择性地保护被呈递到移动设备的附件数据的***,所述***被配置成:
从企业资源接收消息的附件,所述消息被呈递到移动设备;
基于企业的一个或多个可配置访问策略并且基于特定的移动应用是否被安装在所述移动设备上来确定是否对所述附件加密;以及
当做出对所述附件加密的确定时:
使用附件密钥对所述附件加密;
使加密附件代替所述附件传输到所述移动设备;
将用于对所述附件加密的所述附件密钥加密;以及
使被加密的附件密钥随所述加密附件传输到所述移动设备。
2.如权利要求1所述的***,其中,确定是否对所述附件加密基于在所述企业中的所述移动设备的用户的角色。
3.如权利要求1所述的***,其中,确定是否对所述附件加密基于所述移动设备的一个或多个特性。
4.如权利要求1所述的***,其中,确定是否对所述附件加密基于所述附件的一个或多个特性。
5.如权利要求4所述的***,其中,所述附件的一个或多个特性包括所述附件中的关键词,并且其中所述附件响应于确定所述附件包括所述关键词而被加密。
6.如权利要求1所述的***,其中,所述***被配置成执行下列功能中的至少一个:
给所述加密附件命名后缀,所述后缀不同于在所述附件的加密之前的相应附件,其中所述移动设备被配置成基于所述后缀来检测所述加密附件被加密;或
给所述附件的链接命名后缀,所述后缀不同于未加密附件的相应链接。
7.如权利要求1所述的***,其中,所述消息是电子邮件消息。
8.如权利要求7所述的***,其中,所述附件的加密对所述移动设备的电子邮件客户端是透明的。
9.如权利要求1所述的***,被配置成:
修改所述企业的所述一个或多个可配置访问策略。
10.如权利要求1所述的***,其中,使具有所述加密附件的所述消息传输到所述移动设备包括使所述消息经由企业计算***的防火墙来传输。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261702671P | 2012-09-18 | 2012-09-18 | |
US61/702,671 | 2012-09-18 | ||
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 | ||
CN201380057326.1A CN104798355A (zh) | 2012-09-18 | 2013-09-18 | 移动设备管理和安全 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380057326.1A Division CN104798355A (zh) | 2012-09-18 | 2013-09-18 | 移动设备管理和安全 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108600251A true CN108600251A (zh) | 2018-09-28 |
CN108600251B CN108600251B (zh) | 2021-09-17 |
Family
ID=50341906
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380057326.1A Pending CN104798355A (zh) | 2012-09-18 | 2013-09-18 | 移动设备管理和安全 |
CN201810422004.7A Active CN108600251B (zh) | 2012-09-18 | 2013-09-18 | 移动设备管理和安全 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380057326.1A Pending CN104798355A (zh) | 2012-09-18 | 2013-09-18 | 移动设备管理和安全 |
Country Status (3)
Country | Link |
---|---|
EP (2) | EP2898652B1 (zh) |
CN (2) | CN104798355A (zh) |
WO (1) | WO2014047168A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032647A (zh) * | 2018-10-17 | 2018-12-18 | 北京京航计算通讯研究所 | 基于软件监控和策略的软件升级方法 |
CN110113356A (zh) * | 2019-05-22 | 2019-08-09 | 北京明朝万达科技股份有限公司 | 一种数据监测方法及装置 |
CN110781493A (zh) * | 2019-09-30 | 2020-02-11 | 奇安信科技集团股份有限公司 | 一种运行应用程序的处理方法、终端及服务器 |
CN111882842A (zh) * | 2020-08-04 | 2020-11-03 | 珠海格力电器股份有限公司 | 一种共享设备的预警方法及共享设备 |
CN113407967A (zh) * | 2021-06-25 | 2021-09-17 | 上海卓悠网络科技有限公司 | 一种基于应用市场架构的服务安全方法及设备 |
CN114884993A (zh) * | 2022-05-07 | 2022-08-09 | 杭州天宽科技有限公司 | 增强数据安全性的虚拟化安卓*** |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201315931D0 (en) * | 2013-09-06 | 2013-10-23 | Bae Systems Plc | Secured mobile communications device |
US9979751B2 (en) * | 2013-09-20 | 2018-05-22 | Open Text Sa Ulc | Application gateway architecture with multi-level security policy and rule promulgations |
CN104125223B (zh) * | 2014-07-22 | 2017-07-21 | 浪潮电子信息产业股份有限公司 | 一种移动设备隐私数据的安全防护*** |
US20160087993A1 (en) * | 2014-09-19 | 2016-03-24 | Microsoft Corporation | Selectively Managing Datasets |
US9729542B2 (en) * | 2014-09-24 | 2017-08-08 | Oracle International Corporation | Compartmentalizing application distribution for disparate electronic devices |
US9369537B1 (en) | 2015-03-31 | 2016-06-14 | Lock2Learn, LLC | Systems and methods for regulating device usage |
KR102002203B1 (ko) * | 2015-09-24 | 2019-10-02 | 주식회사 케이티 | Wlan 무선자원을 이용한 데이터 송수신 방법 및 그 장치 |
CN105376309B (zh) * | 2015-10-30 | 2021-08-13 | 青岛海尔智能家电科技有限公司 | 接入网关分配方法及装置 |
CN105516088B (zh) * | 2015-11-26 | 2019-05-03 | 北京那个网络科技有限公司 | 设备信息的访问方法及装置 |
CN105653943B (zh) * | 2015-12-24 | 2018-08-07 | 北京奇虎科技有限公司 | Android应用的日志审计方法及*** |
US20170230419A1 (en) * | 2016-02-08 | 2017-08-10 | Hytrust, Inc. | Harmonized governance system for heterogeneous agile information technology environments |
US10609042B2 (en) * | 2016-02-15 | 2020-03-31 | Cisco Technology, Inc. | Digital data asset protection policy using dynamic network attributes |
US10389705B2 (en) * | 2016-03-30 | 2019-08-20 | Airwatch Llc | Associating user accounts with enterprise workspaces |
US10405182B2 (en) * | 2016-06-30 | 2019-09-03 | Huawei Technologies Co., Ltd. | Systems devices and processes to support mobile device management of multiple containers in virtualization environment |
CN107786486B (zh) * | 2016-08-18 | 2020-03-24 | 成都鼎桥通信技术有限公司 | 操作***的激活方法及装置 |
CN106851574A (zh) * | 2017-01-22 | 2017-06-13 | 山东鲁能软件技术有限公司 | 一种基于gis的终端安全管理***及方法 |
CN108696546B (zh) * | 2017-02-15 | 2021-08-24 | 中兴通讯股份有限公司 | 一种企业移动专用网的用户终端访问公网的方法及装置 |
CN106599708A (zh) * | 2017-02-21 | 2017-04-26 | 柳州桂通科技股份有限公司 | 一种防止网络之间互访时访客恶意破坏原始数据的实时访问方法及其*** |
US10708785B2 (en) * | 2017-02-21 | 2020-07-07 | Scorpion Security Products, Inc. | Mobile device management system and method |
US10419488B2 (en) * | 2017-03-03 | 2019-09-17 | Microsoft Technology Licensing, Llc | Delegating security policy management authority to managed accounts |
CN107133150B (zh) * | 2017-05-15 | 2020-12-15 | 杭州时趣信息技术有限公司 | 一种Android防重发的方法及装置 |
CN107181801B (zh) * | 2017-05-22 | 2020-08-04 | 深圳市连用科技有限公司 | 一种电子附件存储方法及终端 |
CN107256362B (zh) * | 2017-06-13 | 2020-11-27 | 深信服科技股份有限公司 | 一种应用级文件***隔离方法及装置 |
US11095678B2 (en) * | 2017-07-12 | 2021-08-17 | The Boeing Company | Mobile security countermeasures |
CN109379738B (zh) * | 2017-08-02 | 2022-08-30 | 威睿公司 | 双sim移动设备的企业移动管理 |
CN107515924A (zh) * | 2017-08-24 | 2017-12-26 | 南京农纷期电子商务有限公司 | 一种基于react‑native的页面信息收集方法 |
CN108282511B (zh) * | 2017-09-15 | 2021-08-13 | 阿里巴巴(中国)有限公司 | 网络数据访问方法、装置、***、存储介质及用户终端 |
US20200220945A1 (en) * | 2017-09-18 | 2020-07-09 | Privacy Software Solutions Ltd. | A method for creating a pre-defined virtual mobilephone profile environment |
US10798103B2 (en) * | 2017-11-21 | 2020-10-06 | VWware, Inc. | Adaptive device enrollment |
CN108490914B (zh) * | 2018-03-23 | 2019-09-17 | 上海工业控制安全创新科技有限公司 | 新能源汽车中控***安全检验方法 |
CN110324274B (zh) * | 2018-03-28 | 2022-05-31 | 华为技术有限公司 | 控制终端接入网络的方法及网元 |
CN110362355B (zh) * | 2018-04-02 | 2022-06-28 | 青岛海信移动通信技术股份有限公司 | 一种应用界面显示方法及装置 |
CN108668260B (zh) * | 2018-04-17 | 2021-12-24 | 北京华大智宝电子***有限公司 | 一种sim卡数据自毁方法、sim卡、装置及服务器 |
CN108810840B (zh) * | 2018-04-18 | 2021-02-19 | 天津大学 | 协作定位中基于efim和距离协作的节点选择方法 |
US20200028879A1 (en) * | 2018-07-17 | 2020-01-23 | Microsoft Technology Licensing, Llc | Queryless device configuration determination-based techniques for mobile device management |
CN109344620B (zh) * | 2018-09-07 | 2021-08-31 | 国网福建省电力有限公司 | 一种基于对hadoop安全配置的检测方法 |
US11196714B2 (en) | 2018-11-07 | 2021-12-07 | Citrix Systems, Inc. | Systems and methods for encrypted browser cache |
US10715493B1 (en) | 2019-07-03 | 2020-07-14 | Centripetal Networks, Inc. | Methods and systems for efficient cyber protections of mobile devices |
CN110503478B (zh) * | 2019-08-26 | 2020-08-18 | 北京深演智能科技股份有限公司 | 一种app推送方法及装置 |
US11477650B2 (en) | 2019-08-26 | 2022-10-18 | Bank Of America Corporation | Controlling access to enterprise centers using a dynamic enterprise control system |
CN111629038B (zh) * | 2020-05-19 | 2023-08-08 | 北京达佳互联信息技术有限公司 | 虚拟资源分享处理方法、装置、服务器及存储介质 |
CN111756718B (zh) * | 2020-06-15 | 2022-09-30 | 深信服科技股份有限公司 | 终端及访问方法、***、服务器和计算机可读存储介质 |
CN111988314A (zh) * | 2020-08-19 | 2020-11-24 | 杭州铂钰信息科技有限公司 | 一种动态部署网络安全服务的***架构及其方法 |
CN112653609B (zh) * | 2020-12-14 | 2022-05-27 | 北京指掌易科技有限公司 | 一种vpn识别应用方法、装置、终端及存储介质 |
CN113297615A (zh) * | 2021-05-20 | 2021-08-24 | 青岛海信移动通信技术股份有限公司 | 移动终端及其数据加密方法 |
US20230018433A1 (en) * | 2021-07-13 | 2023-01-19 | Vmware, Inc. | Accessing corporate resources through an enrolled user device |
CN114024767B (zh) * | 2021-11-25 | 2023-06-02 | 郑州信大信息技术研究院有限公司 | 密码定义网络安全体系构建方法、体系架构及数据转发方法 |
US11855997B1 (en) * | 2023-02-24 | 2023-12-26 | The Bank Of New York Mellon | System and methods for controlled access to computer resources |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716303A (zh) * | 1996-09-04 | 2006-01-04 | 英特托拉斯技术公司 | 一种从用户站点向外部站点发布使用数据的方法 |
CN101026450A (zh) * | 2005-12-30 | 2007-08-29 | 英特尔公司 | 使用基于可信平台的共享秘密推导和基于wwan基础设施的登记来建立本地安全信道 |
US20080313527A1 (en) * | 2007-04-16 | 2008-12-18 | Clenet Technologies (Beijing) Co., Ltd. | Region-based controlling method and system for electronic documents |
CN102037710A (zh) * | 2008-05-19 | 2011-04-27 | 思杰***有限公司 | 用于远程处理多媒体插件调用的方法和*** |
US20110238984A1 (en) * | 2010-03-24 | 2011-09-29 | Oracle International Corporation | Multi-level security cluster |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE527561C2 (sv) * | 2003-09-12 | 2006-04-11 | Secured Email Goeteborg Ab | Metod, system och datorprogram för kryptografisk kommunikation av elektroniska meddelanden |
US8050653B2 (en) * | 2004-03-22 | 2011-11-01 | Research In Motion Limited | System and method for viewing message attachments |
JP2006013747A (ja) * | 2004-06-24 | 2006-01-12 | Murata Mach Ltd | 電子メールサーバ装置および電子メールネットワークシステム |
US7865888B1 (en) | 2004-12-21 | 2011-01-04 | Zenprise, Inc. | Systems and methods for gathering deployment state for automated management of software application deployments |
CN101170401B (zh) * | 2006-10-27 | 2011-02-02 | 鸿富锦精密工业(深圳)有限公司 | 邮件加密/解密***及方法 |
EP2028805A1 (en) * | 2007-08-20 | 2009-02-25 | Research In Motion Limited | System and method for displaying a security encoding indicator associated with a message attachment |
EP2034687B1 (en) * | 2007-09-04 | 2012-06-13 | Research In Motion Limited | System and method for processing attachments to messages sent to a mobile device |
US8607304B2 (en) * | 2008-03-07 | 2013-12-10 | At&T Mobility Ii Llc | System and method for policy-enabled mobile service gateway |
CN101572678B (zh) * | 2008-04-30 | 2012-09-19 | 北京明朝万达科技有限公司 | 一种邮件附件透明保密控制方法 |
WO2012016091A2 (en) * | 2010-07-28 | 2012-02-02 | Nextlabs, Inc. | Protecting documents using policies and encryption |
US8359016B2 (en) * | 2010-11-19 | 2013-01-22 | Mobile Iron, Inc. | Management of mobile applications |
US8806569B2 (en) * | 2011-02-07 | 2014-08-12 | Tufin Software Technologies Ltd. | Method and system for analyzing security ruleset by generating a logically equivalent security rule-set |
-
2013
- 2013-09-18 EP EP13771691.6A patent/EP2898652B1/en active Active
- 2013-09-18 EP EP19152128.5A patent/EP3499839B1/en active Active
- 2013-09-18 WO PCT/US2013/060388 patent/WO2014047168A1/en active Application Filing
- 2013-09-18 CN CN201380057326.1A patent/CN104798355A/zh active Pending
- 2013-09-18 CN CN201810422004.7A patent/CN108600251B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716303A (zh) * | 1996-09-04 | 2006-01-04 | 英特托拉斯技术公司 | 一种从用户站点向外部站点发布使用数据的方法 |
CN101026450A (zh) * | 2005-12-30 | 2007-08-29 | 英特尔公司 | 使用基于可信平台的共享秘密推导和基于wwan基础设施的登记来建立本地安全信道 |
US20080313527A1 (en) * | 2007-04-16 | 2008-12-18 | Clenet Technologies (Beijing) Co., Ltd. | Region-based controlling method and system for electronic documents |
CN102037710A (zh) * | 2008-05-19 | 2011-04-27 | 思杰***有限公司 | 用于远程处理多媒体插件调用的方法和*** |
US20110238984A1 (en) * | 2010-03-24 | 2011-09-29 | Oracle International Corporation | Multi-level security cluster |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032647A (zh) * | 2018-10-17 | 2018-12-18 | 北京京航计算通讯研究所 | 基于软件监控和策略的软件升级方法 |
CN109032647B (zh) * | 2018-10-17 | 2020-05-19 | 北京京航计算通讯研究所 | 基于软件监控和策略的软件升级方法 |
CN110113356A (zh) * | 2019-05-22 | 2019-08-09 | 北京明朝万达科技股份有限公司 | 一种数据监测方法及装置 |
CN110781493A (zh) * | 2019-09-30 | 2020-02-11 | 奇安信科技集团股份有限公司 | 一种运行应用程序的处理方法、终端及服务器 |
CN110781493B (zh) * | 2019-09-30 | 2023-04-18 | 奇安信科技集团股份有限公司 | 一种运行应用程序的处理方法、终端及服务器 |
CN111882842A (zh) * | 2020-08-04 | 2020-11-03 | 珠海格力电器股份有限公司 | 一种共享设备的预警方法及共享设备 |
CN113407967A (zh) * | 2021-06-25 | 2021-09-17 | 上海卓悠网络科技有限公司 | 一种基于应用市场架构的服务安全方法及设备 |
CN113407967B (zh) * | 2021-06-25 | 2023-02-07 | 上海卓悠网络科技有限公司 | 一种基于应用市场架构的服务安全方法及设备 |
CN114884993A (zh) * | 2022-05-07 | 2022-08-09 | 杭州天宽科技有限公司 | 增强数据安全性的虚拟化安卓*** |
CN114884993B (zh) * | 2022-05-07 | 2023-12-22 | 杭州天宽科技有限公司 | 增强数据安全性的虚拟化安卓*** |
Also Published As
Publication number | Publication date |
---|---|
EP3499839A1 (en) | 2019-06-19 |
CN108600251B (zh) | 2021-09-17 |
EP3499839B1 (en) | 2021-03-17 |
EP2898652A1 (en) | 2015-07-29 |
WO2014047168A1 (en) | 2014-03-27 |
EP2898652B1 (en) | 2019-03-06 |
CN104798355A (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11134104B2 (en) | Secure execution of enterprise applications on mobile devices | |
CN108600251A (zh) | 移动设备管理和安全 | |
EP3706022B1 (en) | Permissions policy manager to configure permissions on computing devices | |
US10924517B2 (en) | Processing network traffic based on assessed security weaknesses | |
CA2982463C (en) | Determining source of side-loaded software | |
CN104838630B (zh) | 基于策略的应用程序管理 | |
US9213850B2 (en) | Policy-based application management | |
JP2018533864A (ja) | 遠隔制御方法、装置及び携帯端末 | |
US11929992B2 (en) | Encrypted cache protection | |
WO2022208045A1 (en) | Encrypted cache protection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |