CN107690793B - 用于移动平台的隧穿的方法、设备和计算机可读存储媒体 - Google Patents

用于移动平台的隧穿的方法、设备和计算机可读存储媒体 Download PDF

Info

Publication number
CN107690793B
CN107690793B CN201680033578.4A CN201680033578A CN107690793B CN 107690793 B CN107690793 B CN 107690793B CN 201680033578 A CN201680033578 A CN 201680033578A CN 107690793 B CN107690793 B CN 107690793B
Authority
CN
China
Prior art keywords
processor
application
network
server
dedicated network
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.)
Active
Application number
CN201680033578.4A
Other languages
English (en)
Other versions
CN107690793A (zh
Inventor
瓦吉什·卡利古德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN107690793A publication Critical patent/CN107690793A/zh
Application granted granted Critical
Publication of CN107690793B publication Critical patent/CN107690793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/825Involving tunnels, e.g. MPLS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/12Setup of transport tunnels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

提供用于以每移动应用为基础提供虚拟专用网络服务的方法和系统。在一些实施例中,连接到专用网络的移动装置可确定其移动应用中的一个正请求与专用网络通信。所述移动装置可拦截由所述移动应用发布的与所述专用网络通信的一个或多个系统调用。所述移动装置可在所述移动装置的端口上产生到虚拟专用网络VPN服务器的通信链路,经由所述通信链路将来自所述移动应用的通信发射到所述专用网络。所述移动装置可指示所述VPN服务器将来自所述移动应用的一个或多个消息发射到接入网关以供转发到所述专用网络。

Description

用于移动平台的隧穿的方法、设备和计算机可读存储媒体
相关申请的交叉参考
本申请主张2015年5月11日提交的标题为“用于移动平台的微VPN隧穿(MICRO VPNTUNNELING FOR MOBILE PLATFORMS)”的第14/708,464号美国非临时专利申请的优先权。先前申请以全文引用的方式并入本文中。
技术领域
本文中所描述的方面大体涉及移动计算装置的移动应用。更确切地说,本文中所描述的方面涉及用于以每应用为基础提供到移动装置的安全隧穿的技术。
背景技术
越来越多的人正在个人和商业环境中出于多种目的使用移动装置。这些装置常常由雇员使用以有时从远程或不寻常的位置访问公司资源。逐渐地,公司和其它组织正向其雇员和其他伙伴提供和/或以其它方式使其有机会使用智能电话、平板计算机和其它移动计算装置等移动装置。因为这些装置的普及性持续增长且提供增加数目的商业应用,所以企业移动应用正向雇员提供从其移动装置访问联网的企业应用的手段。
许多移动用户经由虚拟专用网络(VPN)从其移动装置连接到在专用网络上执行的企业服务器。常规VPN系统使用装置层级VPN连接使得由来自移动装置的移动应用发布的所有网络业务投送到所述专用网络。在此类常规装置层级VPN系统中,还自动拦截从移动装置上执行的不需要与专用网络的任何部分通信的应用指定到公用网络地址的应用业务。并不指定到专用网络的应用业务的此拦截不必要地增加了VPN连接和装置电池的负担,且常常对终端用户造成隐私风险。在常规装置层级VPN系统中,拦截来自安装在移动装置上的所有应用的包,包含不需要拦截包的非企业应用。由企业VPN系统对移动装置上的个人应用的此拦截导致隐私问题,因为个别移动用户的私密应用数据正被企业装置层级VPN拦截。此外,在常规装置层级VPN系统中,每一移动应用依赖于移动装置的操作系统来进行包拦截和隧穿网络接口的创建,且在此类系统中可能仅存在在给定时间运行的必须经由其拦截和隧穿所有网络业务的一个装置层级VPN。
发明内容
以下提出本文中所描述的各种方面的简化概述。此概述并非广泛综述,且并不希望指出关键或重要要素或划定权利要求书的范围。以下概述仅按简化形式提出一些概念,作为对以下提供的更详细描述的介绍性序言。
为了克服上文描述的现有技术的局限性,且为了克服在阅读和理解本说明书后将显而易见的其它局限性,本文中所描述的方面针对以每应用为基础向移动装置提供安全隧穿。
本文中所描述的第一方面提供一种确定移动装置上执行的移动应用请求与专用网络通信的方法。可拦截由移动装置上执行的移动应用发布的用以与专用网络通信的一个或多个系统调用。可在移动装置的端口上产生到虚拟专用网络(VPN)服务器的通信链路,经由其将来自移动应用的通信发射到专用网络。可指示VPN服务器将来自移动应用的一个或多个消息发射到接入网关以转发到专用网络。
在一些实施例中,可识别与所述一个或多个系统调用相关联的至少一个消息的目的地网络地址。可通过使用目的地网络地址到移动装置的端口的映射来识别待用于将来自移动应用的通信投送到专用网络的端口,使得经识别的端口对应于所述映射中所述至少一个消息的目的地网络地址。
在一些实施例中,所述端口可以是移动装置的动态端口。动态端口可经分配以用于通过将不同动态端口指派到请求与专用网络通信的多个移动应用中的每一个来投送来自移动应用的通信。VPN服务器可以是发射控制协议(TCP)服务器。为产生到VPN服务器的通信链路,可在动态端口上产生TCP服务器,且可在动态端口和TCP服务器之间产生TCP连接。
在一些实施例中,可确定所述一个或多个消息指定到多个不同网络地址。可产生多个TCP服务器使得所述多个TCP服务器的每一TCP服务器在移动装置的不同动态端口上产生,且使得多个动态端口的每一动态端口经产生以针对所述多个不同网络地址中的每一个将来自移动应用的通信发射到专用网络。可产生多个TCP连接使得每一TCP连接对应于一通信链路,经由所述通信链路将来自来自于所述多个动态端口中的每一个的移动应用的通信发射到专用网络。
在一些实施例中,所述端口可以是移动装置的固定端口,且所述VPN服务器可以是用户数据报协议(UDP)服务器。为产生到VPN服务器的通信链路,可在固定端口上产生UDP服务器,且可在固定端口和UDP服务器之间产生UDP连接。
在一些实施例中,可确定来自移动应用的所述一个或多个消息指定给专用网络。所述一个或多个消息的有效负载可发射到移动装置的端口处的VPN服务器。
在一些实施例中,为指示VPN服务器将来自移动应用的所述一个或多个消息发射到接入网关,可指示VPN服务器根据用于将所述一个或多个消息发射到专用网络的通信链路的隧道协议从所述一个或多个消息产生一个或多个包。可指示VPN服务器经由通信链路将根据隧道协议处理的所述一个或多个包发射到专用网络。
本文中所描述的另一方面提供一种将域名系统(DNS)消息隧穿到专用网络的方法。可确定移动装置上执行的移动应用请求与专用网络通信。可拦截由移动装置上执行的移动应用发布的用以与专用网络通信的一个或多个系统调用。响应于确定所述一个或多个系统调用寻址到域套接字路径,所述一个或多个系统调用中的域套接字路径可用对应于移动应用的沙盒路径替换。可产生到沙盒路径处的VPN服务器的通信链路,经由其将来自移动应用的通信发射到专用网络。可指示VPN服务器将来自移动应用的一个或多个消息发射到接入网关以转发到专用网络。
在一些实施例中,可确定所述一个或多个系统调用包括寻址到系统层级DNS过程的至少一个DNS询问。为了用沙盒路径替换所述一个或多个系统调用中的域套接字路径,可在本地域套接字处产生沙盒路径,经由所述本地域套接字将来自移动应用的通信发射到专用网络。可针对所述移动应用产生VPN服务器使得VPN服务器以通信方式耦合到本地域套接字。
在一些实施例中,可在以通信方式耦合到本地域套接字的VPN服务器处产生应用特定DNS过程。可识别与所述一个或多个系统调用相关联的至少一个消息的目的地网络地址。所述至少一个消息可发射到以通信方式耦合到本地域套接字的VPN服务器以用于DNS解析。可指示VPN服务器处的应用特定DNS过程将所述一个或多个消息发射到接入网关以供转发到专用网络。响应于确定所述至少一个DNS询问需要由系统层级DNS过程解析,与所述一个或多个系统调用相关联的所述至少一个消息可发射到系统层级DNS过程以用于DNS解析。
在一些实施例中,为指示VPN服务器将来自移动应用的所述一个或多个消息发射到接入网关,可指示沙盒路径处的VPN服务器根据用于将所述一个或多个消息发射到专用网络的通信链路的DNS协议从所述一个或多个消息产生一个或多个包。可指示VPN服务器经由通信链路将根据DNS协议处理的所述一个或多个包发射到专用网络。
在一些实施例中,可确定来自移动装置上执行的多个不同移动应用的多个不同消息指定给专用网络。可产生多个沙盒路径使得所述多个沙盒路径的每一沙盒路径在多个本地域套接字的不同本地域套接字处产生以将来自所述多个不同移动应用的对应移动应用的通信发射到专用网络。可针对移动应用产生多个VPN服务器使得所述多个VPN服务器中的每一个以通信方式耦合到所述多个本地域套接字的对应本地域套接字。可产生多个应用特定DNS过程使得每一应用特定DNS过程在所述多个VPN服务器的以通信方式耦合到所述多个本地域套接字的对应本地域套接字的对应VPN服务器处执行。
本文中所描述的额外方面提供一种具有一个或多个处理器、一个或多个显示屏和存储指令的存储器的设备,所述指令在由所述处理器中的至少一个执行时致使计算装置执行上述方法。
通过在下文进一步详细论述的本公开的益处,将了解这些和额外方面。
附图说明
可通过参考考虑附图的以下描述来获取对本文中描述的方面和其优点的更完整理解,附图中相同参考标号指示相同特征,且其中:
图1描绘可根据本文中描述的一个或多个说明性方面使用的说明性计算机系统架构。
图2描绘可根据本文中描述的一个或多个说明性方面使用的说明性远程访问系统架构。
图3描绘根据本文中所描述的一个或多个说明性方面的说明性企业移动性管理系统。
图4描绘根据本文中所描述的一个或多个说明性方面的另一说明性企业移动性管理系统。
图5描绘根据本文中所描述的一个或多个说明性方面使用TCP隧道协议管理移动VPN的说明性移动应用VPN系统。
图6描绘根据本文中所描述的一个或多个说明性方面使用UDP隧道协议管理移动VPN的说明性移动应用VPN系统。
图7描绘根据本文中所描述的一个或多个说明性方面使用DNS隧道协议管理移动VPN的说明性移动应用VPN系统。
图8A描绘说明根据本文中所描述的一个或多个说明性方面以每应用为基础产生移动TCP VPN连接的方法的流程图。
图8B描绘说明根据本文中所描述的一个或多个说明性方面以每应用为基础产生移动UDP VPN连接的方法的流程图。
图8C描绘说明根据本文中所描述的一个或多个说明性方面以每应用为基础产生移动DNS VPN连接的方法的流程图。
具体实施方式
在各种实施例的以下描述中,参考上文指出且形成本文的一部分的附图,且其中借助于说明展示可实践本文中描述的方面的各种实施例。应理解,在不脱离本文中描述的范围的情况下,可利用其它实施例,且可进行结构和功能修改。各个方面能够有其它实施例并且以各种不同方式实践或实行。
作为下文更详细地描述的主题的一般序言,本文中所描述的方面针对经由可用于移动装置的公用网络连接产生从移动装置上执行的移动企业应用到专用企业网络的移动VPN连接。不同于拦截来自装置的所有出埠业务的常规装置层级VPN连接,本文中所描述的移动VPN连接可拦截和隧穿仅针对受管理应用的业务。移动装置管理(MDM)简档或移动应用管理(MAM)策略指定安装在移动装置上的哪些移动应用适于产生到专用企业网络的移动VPN连接。一旦产生,移动VPN连接(下文中也称为microVPN和/或微VPN)仅将来自一个或多个指定企业移动应用的业务隧穿到专用企业网络。来自其它移动应用的业务不被拦截,也不会隧穿穿过针对企业移动应用产生的移动VPN。多个移动VPN连接可同时在具有多个移动企业应用的移动装置上操作,其中每一移动VPN连接根据特定通信协议隧穿其相应企业移动应用的数据。贯穿本发明,描述产生此类每应用移动VPN的不同实施方案。不同移动应用可使用不同数据传输/通信协议传送数据,例如发射控制协议(TCP)、用户数据报协议(UDP)和域名系统(DNS)寻址协议。用于产生microVPN的系统架构和方法取决于这些数据传输协议中的每一个而不同。
当前VPN系统经由单一装置层级VPN连接拦截来自装置(例如,移动装置)上执行的所有应用的业务。在此类传统VPN系统中,拦截来自不需要拦截包的非企业应用以及企业应用的包。此外,当前VPN系统使用系统层级后台程序拦截来自受管理和未管理应用两者的所有包。系统层级后台程序的此连续包拦截致使电池耗竭。然而,本文中所描述的移动VPN实施方案拦截来自受管理应用的低层级系统调用、受管理应用和第三方库之间交换的系统调用,以及企业移动应用参考以便确保所有应用业务(直接和间接两者)隧穿到目的地的第三方库发布的任何系统调用。
应理解,本文中使用的措词和术语是出于描述的目的且不应被看作是限制性的。相反地,应对本文中使用的短语和术语给予其最广泛的解释和含义。“包含(including)”和“包括(comprising)”和其变体的使用意图涵盖其后列出的项目和其同等物以及额外项目和其同等物。术语“安装”、“连接”、“耦合”、“定位”、“啮合”和类似术语的使用意图包含直接和间接安装、连接、耦合、定位和啮合两者。
计算架构
可在尤其包含独立式、联网、远程访问(又名,远程桌面)、虚拟化和/或基于云的环境的多种不同系统环境中利用计算机软件、硬件和网络。图1说明可用以在独立式和/或联网环境中实施本文中描述的一个或多个说明性方面的系统架构和数据处理装置的一个实例。各种网络节点103、105、107和109可经由例如因特网等广域网(WAN)101互连。也可或替代地使用其它网络,包含专用内联网、公司网络、LAN、城域网(MAN)无线网络、个人网络(PAN)和类似物。网络101是出于说明的目的,且可由较少或额外计算机网络替换。局域网(LAN)可具有任何已知LAN拓扑中的一个或多个,且可使用多种不同协议(例如以太网)中的一个或多个。装置103、105、107、109和其它装置(未展示)可经由双绞线电线、同轴电缆、光纤、无线电波或其它通信媒体连接到网络中的一个或多个。
如本文中所使用且在图式中描绘的术语“网络”不仅指远程存储装置经由一个或多个通信路径耦合在一起的系统,而且指可不时地耦合到具有存储能力的此类系统的独立装置。因此,术语“网络”不仅包含“物理网络”,而且包含“内容网络”,其包括可归于驻留在所有物理网络上的单一实体的数据。
组件可包含数据服务器103、网络服务器105和客户端计算机107、109。数据服务器103提供数据库和控制软件的总体访问、控制和管理,以用于执行本文中描述的一个或多个说明性方面。数据服务器103可连接到网络服务器105,经由所述网络服务器105,用户按请求与数据交互和获得数据。替代地,数据服务器103可充当网络服务器自身且直接连接到因特网。数据服务器103可经由网络101(例如,因特网)经由直接或间接连接或经由某一其它网络连接到网络服务器105。用户可使用远程计算机107、109与数据服务器103交互,例如,使用网络浏览器经由由网络服务器105代管的一个或多个外部暴露的网站连接到数据服务器103。可与数据服务器103一致地使用客户端计算机107、109以访问存储于其中的数据,或客户端计算机107、109可用于其它用途。举例来说,从客户端装置107,用户可使用因特网浏览器(如此项技术中已知)或通过执行在计算机网络(例如因特网)上与网络服务器105和/或数据服务器103通信的软件应用来访问网络服务器105。
服务器与应用可在相同物理机器上组合,且保留单独的虚拟或逻辑地址,或可驻留于单独的物理机器上。图1说明可使用的网络架构的仅一个实例,且所属领域的技术人员将了解,使用的特定网络架构和数据处理装置可变化,且对于其提供的功能性是次要的,如本文中进一步描述。举例来说,由网络服务器105和数据服务器103提供的服务可在单个服务器上组合。
每一组件103、105、107、109可以是任一类型的已知计算机、服务器或数据处理装置。数据服务器103例如可包含控制速率服务器103的总体操作的处理器111。数据服务器103可进一步包含随机存取存储器(RAM)113、只读存储器(ROM)115、网络接口117、输入/输出接口119(例如,键盘、鼠标、显示器、打印机等),和存储器121。输入/输出(I/O)119可包含用于读取写入、显示和/或印刷数据或文件的多种接口单元和驱动器。存储器121可进一步存储用于控制数据处理装置103的总体操作的操作系统软件123、用于指示数据服务器103执行本文中描述的方面的控制逻辑125,和提供可或可不结合本文中描述的方面使用的次要、支持和/或其它功能性的其它应用软件127。控制逻辑也可在本文中被称作数据服务器软件125。数据服务器软件的功能性可指基于译码成控制逻辑的规则自动作出、由将输入提供到系统内的用户手动作出和/或依据自动处理基于用户输入(例如,询问、数据更新等)的组合而作出的操作或决策。
存储器121还可存储本文中所描述的一个或多个方面的执行过程中使用的数据,包含第一数据库129和第二数据库131。在一些实施例中,第一数据库可包含第二数据库(例如,作为单独表、报告等)。也就是说,取决于系统设计,信息可存储于单个数据库中,或分成不同逻辑、虚拟或物理数据库。装置105、107、109可具有与相对于装置103描述类似或不同的架构。所属领域的技术人员将了解,如本文中所描述的数据处理装置103(或装置105、107、109)的功能性可跨多个数据处理装置散布,例如,以跨多个计算机分布处理负载,以基于地理位置、用户访问层级、服务质量(QoS)等分隔交易。
一个或多个方面可以由如本文中所描述的一个或多个计算机或其它装置执行的计算机可用或可读数据和/或计算机可执行指令来体现,例如在一个或多个程序模块中体现。通常,程序模块包含在由计算机或其它装置中的处理器执行时执行特定任务或实施特定抽象数据类型的例程、程序、对象、组件、数据结构等。模块可按随后被编译以供执行的源代码编程语言来编写,或可按例如(但不限于)超文本标记语言(HTML)或可扩展标记语言(XML)等脚本语言来编写。计算机可执行指令可存储于例如非易失性存储装置等计算机可读媒体上。可利用任何合适的计算机可读存储媒体,包含硬盘、CD-ROM、光学存储装置、磁性存储装置和/或其任何组合。此外,表示如本文所描述的数据或事件的各种发射(非存储)媒体可在源和目的地之间呈行进穿过信号传导媒体的电磁波的形式传递,所述信号传导媒体例如金属线、光纤和/或无线发射媒体(例如,空气和/或太空)。本文中所描述的各种方面可体现为方法、数据处理系统或计算机程序产品。因此,可全部或部分地以软件、固件和/或硬件或硬件同等物(例如,集成电路、现场可编程门阵列(FPGA)等)来体现各种功能性。可使用特定数据结构更有效地实施本文中描述的一个或多个方面,且预期此类数据结构在本文中描述的计算机可执行指令和计算机可用数据的范围内。
进一步参看图2,可在远程访问环境中实施本文中描述的一个或多个方面。图2描绘可根据本文中所描述的一个或多个说明性方面使用的包含说明性计算环境200中的通用计算装置201的实例系统架构。通用计算装置201可以是配置成在安全环境中向其用户提供对受管理应用的访问的移动计算装置。通用计算装置201可具有用于控制服务器和其相关联组件(包含RAM 205、ROM 207、I/O模块209和存储器215)的总体操作的处理器203。
I/O模块209可包含通用计算装置201的用户可经由其提供输入的鼠标、小键盘、触摸屏、扫描仪、光学读取器和/或触笔(或其它输入装置),且还可包含用于提供音频输出的扬声器和用于提供文本、视听和/或图形输出的视频显示装置中的一个或多个。软件可存储于存储器215和/或其它存储装置内以将用于将通用计算装置201配置成专用计算装置以便执行如本文中描述的各种功能的指令提供到处理器203。举例来说,存储器215可存储由计算装置201使用的软件,例如操作系统217、应用程序219和相关联数据库221。
计算装置201可在支持到例如终端240(也被称作客户端装置)等一个或多个远程计算机的连接的联网环境中操作。终端240可以是包含以上相对于通用计算装置103或201描述的许多或所有元件的个人计算机、移动装置、膝上型计算机、平板计算机或服务器。图2中描绘的网络连接包含局域网(LAN)225和广域网(WAN)229,但也可包含其它网络。当在LAN联网环境中使用时,计算装置201可经由网络接口或适配器223连接到LAN 225。当在WAN联网环境中使用时,计算装置201可包含用于在WAN229(例如计算机网络230(例如,因特网))上建立通信的调制解调器227或其它广域网接口。将了解,所展示的网络连接是说明性的,且可使用在计算机之间建立通信链路的其它构件。计算装置201和/或终端240还可以是移动终端(例如,移动电话、智能电话、个人数字助理(PDA)、笔记本计算机等),包含各种其它组件,例如电池、扬声器和天线(未图示)。
本文中描述的方面也可与众多其它通用或专用计算系统环境或配置一起操作。可适合与本文中描述的方面一起使用的其它计算系统、环境和/或配置的实例包含(但不限于)个人计算机、服务器计算机、手持式或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费型电子装置、网络个人计算机(PC)、微型计算机、大型计算机、包含以上系统或装置中的任一个的分布式计算环境等。
如图2中所展示,一个或多个客户端装置240可与一个或多个服务器206a-206n(通常在本文中被称作“服务器206”)通信。在一个实施例中,计算环境200可包含安装于服务器206与客户端机器240之间的网络设备。所述网络设备可管理客户端/服务器连接,且在一些情况下可使多个后端服务器206间的客户端连接负载平衡。
客户端机器240可在一些实施例中被称作单个客户端机器240或客户端机器240的单个群组,而服务器206可被称作单个服务器206或服务器206的单个群组。在一个实施例中,单个客户端机器240与一个以上服务器206通信,而在另一实施例中单个服务器206与一个以上客户端机器240通信。在又一实施例中,单个客户端机器240与单个服务器206通信。
在一些实施例中,客户端机器240可由以下非详尽术语中的任一个参考:客户端机器;客户端;客户端计算机;客户端装置;用户端计算装置;本地机器;远程机器;客户端节点;端点;或端点节点。在一些实施例中,服务器206可由以下非详尽术语中的任一个参考:服务器、本地机器;远程机器;服务器集群,或主机计算装置。
在一个实施例中,客户端机器240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施例中虚拟机可以是由1型或2型管理程序管理的任何虚拟机,所述管理程序例如由思杰系统公司(Citrix Systems)、IBM、VMware开发的管理程序或任何其它管理程序。在一些方面,虚拟机可由管理程序管理,而在各方面中,虚拟机可由在服务器206上执行的管理程序或在客户端240上执行的管理程序管理。
一些实施例包含客户端装置240,其显示由在服务器206上远程执行的应用或其它远程定位的机器产生的应用输出。在这些实施例中,客户端装置240可执行虚拟机接收器程序或应用以在应用窗口、浏览器或其它输出窗中显示输出。在一个实例中,应用是桌面,而在其它实例中,应用是产生或呈现桌面的应用。桌面可包含图形壳层,其提供用于其中可整合本地和/或远程应用的操作系统的例项的用户接口。如本文中所使用的应用是在已加载操作系统(且任选地,以及桌面)的例项之后执行的程序。
在一些实施例中,服务器206使用远程呈现协议或其它程序将数据发送到精简客户端或客户端上执行的远程显示应用,以呈现由服务器206上执行的应用产生的显示输出。精简客户端或远程显示协议可以是以下非详尽协议列表中的任一个:由佛罗里达劳德代尔堡(Ft.Lauderdale,Florida)的思杰系统公司开发的独立计算架构(ICA)协议;或由华盛顿雷德蒙德(Redmond,Washington)的微软(Microsoft)公司制造的远程桌面协议(RDP)。
远程计算环境可包含一个以上服务器206a-206n,使得服务器206a-206n例如在云计算环境中一起逻辑分组为服务器集群206。服务器集群206可包含地理上分散但逻辑上分组在一起的服务器206,或彼此接近定位同时逻辑上分组在一起的服务器206。在一些实施例中,在服务器集群206内的地理上分散的服务器206a-206n使用WAN(广)、MAN(都市)或LAN(本地)通信,其中不同地理区域可表征为:不同大陆;大陆的不同区域;不同国家;不同州;不同城市;不同园区;不同房间;或先前地理位置的任何组合。在一些实施例中,可将服务器集群206作为单个实体管理,而在其它实施例中,服务器集群206可包含多个服务器集群。
在一些实施例中,服务器集群可包含执行大体上类似类型的操作系统平台(例如,WINDOWS、UNIX、LINUX、iOS、ANDROID、SYMBIAN等)的服务器206。在其它实施例中,服务器集群206可包含执行第一类型的操作系统平台的一个或多个服务器的第一群组,和执行第二类型的操作系统平台的一个或多个服务器的第二群组。
服务器206可按需要被配置为任一类型的服务器,例如,文件服务器、应用服务器、网络服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、安全套接字层(SSL)VPN服务器、防火墙、网络服务器、应用服务器,或作为主应用服务器、执行活动目录的服务器,或执行提供防火墙功能性、应用功能性或负载平衡功能性的应用加速程序的服务器。还可使用其它服务器类型。
一些实施例包含第一服务器106a,其接收来自客户端机器240的请求,将请求转发到第二服务器106b,且用来自第二服务器106b的响应来响应由客户端机器240产生的请求。第一服务器106a可获取可用于客户端机器240的应用的枚举,以及与代管在应用的枚举内识别的应用的应用服务器206相关联的地址信息。第一服务器106a可随后使用网络接口呈现对客户端的请求的响应,且与客户端240直接通信以向客户端240提供对经识别应用的访问。一个或多个用户端240和/或一个或多个服务器206可经由例如网络101等网络230发射数据。
图2展示说明性桌面虚拟化系统的高层级架构。如所展示,桌面虚拟化系统可以是单服务器或多服务器系统或云系统,包含被配置以对一个或多个客户端访问装置240提供虚拟桌面和/或虚拟应用的至少一个虚拟化服务器206。如本文中所使用,桌面指可其中代管和/或执行一个或多个应用的图形环境或空间。桌面可包含图形壳层,其提供用于其中可整合本地和/或远程应用的操作系统的例项的用户接口。应用可包含在已加载操作系统(且任选地,以及桌面)的例项之后执行的程序。操作系统的每一例项可以是物理(例如,每装置一个操作系统)或虚拟(例如,单一装置上运行的OS的许多例项)的。每一应用可在本地装置上执行,或在远程定位的装置(例如,远程)上执行。
第一和第二移动性应用展示是第一和
企业移动性管理架构
图3表示用于在BYOD环境中使用的企业移动性技术架构300。所述架构使移动装置302的用户能够访问来自移动装置302的企业或个人资源,以及将移动装置302用于个人用途。用户可使用由用户购买的移动装置302或由企业提供给用户的移动装置302访问此类企业资源304或企业服务308。用户可仅将移动装置302用于商业用途,或用于商业和个人用途。移动装置可运行iOS操作系统,和Android操作系统等。企业可选择实施管理移动装置304的策略。可按以下方式经由防火墙或网关植入所述策略:移动装置可被识别,安全化或安全验证,并提供对企业资源的选择性或完全访问。所述策略可以是移动装置管理策略、移动应用管理策略、移动数据管理策略,或移动装置、应用与数据管理策略的某种组合。经由移动装置管理策略的应用管理的移动装置304可被称作已登记装置。
在一些实施例中,移动装置的操作系统可被分成受管理分割区310和未管理分割区312。受管理分割区310可具有施加到其以使在受管理分割区上运行的应用和存储于受管理分割区中的数据安全的策略。在受管理分割区上运行的应用可以是安全应用。在其它实施例中,所有应用可根据与应用分开接收的一个或多个策略文件的集合而执行,且所述一个或多个策略文件定义一个或多个安全参数、特征、资源限制和/或当所述应用正在装置上执行时由移动装置管理系统施行的其它访问控制。通过根据其相应策略文件操作,可允许或限制每一应用与一个或多个其它应用和/或资源通信,借此产生虚拟分割区。因此,如本文中所使用,分割区可指存储器的物理上分割的部分(物理分割区)、存储器的逻辑上分割的部分(逻辑分割区)和/或由于一个或多个策略和/或策略文件跨多个应用的施行而创建的虚拟分割区(虚拟分割区)。换句话说,通过对受管理应用施行策略,那些应用可限于仅能够与其它受管理应用和可信的企业资源通信,借此创建不能由未管理应用和装置渗透的虚拟分割区。
安全应用可以是电子邮件应用、网络浏览应用、软件即服务(software-as-a-service,SaaS)访问应用、Windows Application访问应用等。安全应用可以是安全本机应用314、由安全应用启动程序318执行的安全远程应用322、由安全应用启动程序318执行的虚拟化应用326等。安全本机应用314可由安全应用包装器320包装。安全应用包装器320可包含当在装置上执行安全本机应用时在移动装置302上执行的整合策略。安全应用包装器320可包含元数据,所述元数据将在移动装置302上运行的安全本机应用314指向在企业处代管的资源,在执行安全本机应用314后,安全本机应用314可能需要所述资源来完成所请求的任务。由安全应用启动程序318执行的安全远程应用322可在安全应用启动程序应用318内执行。由安全应用启动程序318执行的虚拟化应用326可利用移动装置302上、企业资源304处和类似地点的资源。由安全应用启动程序318执行的虚拟化应用326在移动装置302上使用的资源可包含用户交互资源、处理资源等。用户交互资源可用以收集和发射键盘输入、鼠标输入、相机输入、触觉输入、音频输入、视觉输入、示意动作输入等。处理资源可用以呈现用户接口,处理从企业资源304接收的数据,和类似情况。由安全应用启动程序318执行的虚拟化应用326在企业资源304处使用的资源可包含用户接口产生资源、处理资源等。用户接口产生资源可用以汇编用户接口,修改用户接口,刷新用户接口和类似情况。处理资源可用以创建信息,读取信息,更新信息,删除信息和类似情况。举例来说,虚拟化应用可记录与图形用户接口(GUI)相关联的用户交互,且将其传送到服务器应用,其中服务器应用将使用用户交互数据作为到在服务器上操作的应用的输入。在此布置中,企业可选择维持服务器侧上的应用,以及与应用相关联的数据、文件等。虽然企业可通过使一些应用安全以供在移动装置上部署来根据本文中的原理选择“调动”一些应用,但也可以针对特定应用选择此布置。举例来说,虽然可使一些应用安全以供在移动装置上使用,但是其它应用可能未做准备,或可能不适合在移动装置上部署,因此企业可选择通过虚拟化技术向移动用户提供到未准备的应用的访问。作为另一实例,企业可具有拥有大且复杂的数据集的大且复杂的应用(例如,材料资源计划应用),其中对于移动装置来说定制应用将很困难或不合需要,因此企业可选择通过虚拟化技术提供对应用的访问。作为又一实例,企业可具有维持高度安全的数据(例如,人力资源数据、客户数据和工程数据)的应用,所述高度安全的数据可被企业认为对于即使安全的移动环境也过于敏感,因此企业可选择使用虚拟化技术来准许对此类应用和数据的移动访问。企业可选择在移动装置上提供充分安全且充分功能性的应用,以及提供虚拟化应用,以允许对被认为在服务器侧上操作更恰当的应用的访问。在一实施例中,虚拟化应用可在安全存储位置中的一个中将一些数据、文件等存储在移动电话上。举例来说,企业可选择允许在电话中存储某些信息,而不准许其它信息。
关于虚拟化应用,如本文中所描述,移动装置可具有被设计成呈现GUI且接着记录与GUI的用户交互的虚拟化应用。应用可将用户交互传送到服务器侧,以由服务器侧应用用作与所述应用的用户交互。作为响应,服务器侧上的应用可将新GUI发射回到移动装置。举例来说,新GUI可以是静态页、动态页、动画等,借此提供对远程定位的资源的访问。
安全应用可访问存储于移动装置的受管理分割区310中的安全数据容器328中的数据。安全数据容器中安全的数据可由安全包装的应用314、由安全应用启动程序322执行的应用、由安全应用启动程序322执行的虚拟化应用326等访问。存储于安全数据容器328中的数据可包含文件、数据库等。存储于安全数据容器328中的数据可包含限于特定安全应用330、在安全应用332之间共享和类似情况的数据。限于安全应用的数据可包含安全一般数据334和高度安全数据338。安全一般数据可使用例如高级加密标准(AES)128位加密等强加密形式,而高度安全数据338可使用例如AES 256位加密等极强加密形式。在从装置管理器324接收到命令后,可从装置删除存储于安全数据容器328中的数据。安全应用可具有双模式选项340。双模式选项340可给用户呈现在不安全或未管理模式中操作安全的应用的选项。在不安全或未管理模式中,安全应用可访问存储于移动装置302的未管理分割区312上的不安全数据容器342中的数据。存储于不安全数据容器中的数据可以是个人数据344。存储于不安全数据容器342中的数据也可以由正在移动装置302的未管理分割区312上运行的不安全应用348访问。当从移动装置302删除存储于安全数据容器328中的数据时,存储于不安全数据容器342中的数据可保持在移动装置302上。企业可能想要从移动装置删除由企业拥有、许可或控制的所选定的或所有数据、文件和/或应用(企业数据),同时留下或以其它方式保存由用户拥有、许可或控制的个人数据、文件和/或应用(个人数据)。此操作可被称作选择性擦拭。对于根据本文中描述的方面布置的企业和个人数据,企业可执行选择性擦拭。
移动装置可连接到在企业处的企业资源304和企业服务308,连接到公用因特网348等等。移动装置可经由虚拟专用网络连接而连接到企业资源304和企业服务308。虚拟专用网络连接(也被称作microVPN或应用特定VPN)可特定针对特定应用350、特定装置、移动装置上的特定安全区域等352。举例来说,电话的安全区域中的经包装应用中的每一个可经由应用特定VPN来访问企业资源,使得将可能结合用户或装置属性信息基于与应用相关联的属性来授予对VPN的访问。虚拟专用网络连接可携载微软交换(Microsoft Exchange)业务、微软活动目录(Microsoft Active Directory)业务、超文本传送协议(HTTP)业务、安全超文本传送协议(HTTPS)业务、应用管理业务等。虚拟专用网络连接可支持和实现单点登录验证(single-sign-on authentication)过程354。单点登录过程可允许用户提供验证证书的单个集合,所述验证证书接着由验证服务358检验。验证服务358可接着准予用户访问多个企业资源304,而不需要用户将验证证书提供到每一个别企业资源304。
虚拟专用网络连接可由接入网关360建立和管理。接入网关360可包含管理、加速和改进企业资源304到移动装置302的递送的性能增强特征。接入网关还可重新投送从移动装置302到公用因特网348的业务,从而使移动装置302能够访问在公用因特网348上运行的公开可用且不安全的应用。移动装置可经由传输网络362连接到接入网关。传输网络362可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公用网络、专用网络等。
企业资源304可包含电子邮件服务器、文件共享服务器、SaaS应用、Web应用服务器、Windows应用服务器等。电子邮件服务器可包含Exchange服务器、Lotus Notes服务器等。文件共享服务器可包含ShareFile服务器等。SaaS应用程序可包含Salesforce等。Windows应用服务器可包含经建造以提供既定在本地Windows操作系统等上运行的应用的任何应用服务器。企业资源304可以是内建式资源、基于云的资源等。企业资源304可由移动装置302直接或经由接入网关360访问。企业资源304可由移动装置302经由传输网络362访问。传输网络362可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公用网络、专用网络等。
企业服务308可包含验证服务358、威胁检测服务364、装置管理器服务324、文件共享服务368、策略管理器服务370、社交整合服务372、应用控制器服务374等。验证服务358可包含用户验证服务、装置验证服务、应用验证服务、数据验证服务等。验证服务358可使用证书。证书可由企业资源304等存储在移动装置302上。存储在移动装置302上的证书可存储于移动装置上的经加密位置中,所述证书可临时存储于移动装置302上,以供在验证时使用,和类似情况。威胁检测服务364可包含入侵检测服务、未授权访问尝试检测服务等。未授权访问尝试检测服务可包含访问装置、应用、数据等的未授权尝试。装置管理服务324可包含配置、布建、安全、支持、监视、报告和退除服务。文件共享服务368可包含文件管理服务、文件存储服务、文件合作服务等。策略管理器服务370可包含装置策略管理器服务、应用策略管理器服务、数据策略管理器服务等。社交整合服务372可包含联系人整合服务、合作服务、与例如Facebook、Twitter和LinkedIn等社交网络的整合等。应用控制器服务374可包含管理服务、布建服务、部署服务、指派服务、撤销服务、包装服务等。
企业移动性技术架构300可包含应用商店378。应用商店378可包含未包装应用380、预包装应用382等。应用可从应用控制器374填充在应用商店378中。应用商店378可由移动装置302经由接入网关360、经由公用因特网348等访问。应用商店可具备直观且易于使用的用户接口。
软件开发工具包384可给用户提供通过包装应用(如先前在本说明书中所描述)而使由用户选择的应用安全的能力。接着通过使用应用控制器374将已使用软件开发工具包384包装的应用填充于应用商店378中,可使所述应用可供移动装置302使用。
企业移动性技术架构300可包含管理和分析能力588。管理和分析能力588可提供与使用资源的方式、使用资源的频率等有关的信息。资源可包含装置、应用、数据等。使用资源的方式可包含哪些装置下载哪些应用,哪些应用访问哪些数据,等等。使用资源的频率可包含已下载应用的频率、特定数据集已由应用访问多少次等。
图4是另一说明性企业移动性管理系统400。为简单起见,已省略以上参看图3描述的移动性管理系统300的组件中的一些。图4中描绘的系统400的架构在许多方面类似于以上参看图3描述的系统300的架构,且可包含以上未提到的额外特征。
在此情况下,左侧表示已向客户端代理404登记的移动装置402,其与网关服务器406(其包含接入网关和应用控制器功能性)交互以访问各种企业资源408和服务409,例如Exchange、Sharepoint、公钥基础架构(PKI)资源、Kerberos资源、证书发布服务,如在右侧上方所展示。虽然未具体展示,但移动装置402还可与企业应用商店(StoreFront)交互以进行应用的选择和下载。
客户端代理404充当用于在企业数据中心中代管的Windows应用/桌面的UI(用户接口)中介,使用高清用户体验(HDX)/ICA显示远程协议来访问所述Windows应用/桌面。客户端代理404还支持在移动装置402上的本机应用(例如本机iOS或Android应用)的安装和管理。举例来说,在上图中展示的管理的应用410(邮件、浏览器、经包装应用)都是在装置上本地执行的本机应用。此架构的客户端代理404和应用管理框架用以提供策略驱动管理能力和特征,例如到企业资源/服务408的连接性和SSO(单点登录)。客户端代理404通过到其它网关服务器组件的SSO来处置对企业的主要用户验证,通常是对接入网关(AG)的主要用户验证。客户端代理404获得来自网关服务器406的策略以控制移动装置402上受管理应用410的行为。
本机应用410与客户端代理404之间的安全进程间通信(IPC)链路412表示管理信道,其允许客户端代理供应将由“包装”每一应用的应用管理框架414施行的策略。IPC信道412还允许客户端代理404供应实现到企业资源408的连接性和SSO的证书和验证信息。最后,IPC信道412允许应用管理框架414调用由客户端代理404实施的用户接口功能,例如线上和离线验证。
客户端代理404与网关服务器406之间的通信基本上为从包装每一本机受管理应用410的应用管理框架414的管理信道的扩展。应用管理框架414请求来自客户端代理404的策略信息,客户端代理404继而向网关服务器406请求所述信息。应用管理框架414请求验证,且客户端代理404登录网关服务器406(也称为NetScaler接入网关)的网关服务部分。客户端代理404还可调用网关服务器406上的支持服务,其可产生输入材料以导出用于本地数据库416的加密密钥,或提供针对PKI受保护资源可实现直接验证的客户端证书,如下文更充分阐述。
更详细地,应用管理框架414“包装”每一受管理应用410。这可经由明确的建造步骤或经由后建造处理步骤来并入。应用管理框架414可在应用410的第一次启动后与客户端代理404“配对”以初始化安全IPC信道和获得用于所述应用的策略。应用管理框架414可施行策略的本地施加的相关部分,例如客户端代理登录相依性和限制可使用本地OS服务的方式的包容策略中的一些,或其可与应用410交互的方式。
应用管理框架414可使用由客户端代理404在安全IPC信道412上提供的服务以促进验证和内网访问。用于专用和共享数据库416(容器)的密钥管理还可通过受管理应用410与客户端代理404之间的适当交互来管理。库416可仅在线上验证之后可用,或如果策略允许,可在离线验证之后使之可用。库416的第一次使用可能需要线上验证,且离线访问可限于至多在再次需要线上鉴验证之前的策略刷新周期。
对内部资源的网络接入可经由接入网关406直接从个别受管理应用410发生。应用管理框架414负责代表每一应用410编排网络接入。客户端代理404可通过提供在线上验证之后获得的合适时间有限次要证书来促进这些网络连接。可使用多个网络连接模式,例如反向网络代理连接和端对端VPN样式隧道418。
邮件和浏览器管理的应用410具有特殊状态,且可利用通常可能不可用于任意包装的应用的设施。举例来说,邮件应用可使用允许其在延长的时间周期内访问Exchange而不需要完全AG登录的特殊背景网络接入机制。浏览器应用可使用多个专用数据库分隔不同种类的数据。
此架构支持各种其它安全特征的并入。举例来说,在一些情况下,网关服务器406(包含其网关服务)将不需要校验活动目录(AD)密码。其可留给企业判断来决定:在一些情况下,是否将AD密码用作一些用户的验证因素。如果用户在线上或离线(即,连接或未连接到网络),那么可使用不同验证方法。
设置验证是如下特征:网关服务器406可识别允许能够访问需要强验证的高程度分类的数据的受管理本机应用410,且确保仅在执行适当验证之后准许对这些应用的访问,即使这意味着在先前较弱等级的登录之后需要用户进行重新验证。
此解决方案的另一安全特征是移动装置402上的数据库416(容器)的加密。库416可经加密使得包含文件、数据库和配置的所有装置上数据受到保护。对于线上库,可将密钥存储于服务器(网关服务器406)上,且对于离线库,密钥的本地副本可受到用户密码或生物计量校验保护。当将数据本地存储于安全容器416中的装置402上时,优选地,利用AES 256加密算法的最小值。
也可实施其它安全容器特征。举例来说,可包含记录特征,其中应用410内部发生的所有安全事件被记录和报告给后端。可支持数据擦拭,例如,如果应用410检测到篡改,那么可用随机数据重写相关联的加密密钥,从而在文件系统上不留下用户数据被毁坏的提示。截屏保护是另一特征,其中应用可防止任何数据存储于截屏中。举例来说,可将密钥窗的隐藏性质设定成是(YES)。这可致使当前显示于屏幕上的任何内容都被隐藏,从而导致任何内容将通常驻留的空白截屏。
可例如通过防止任何数据在本地传递到应用容器外部(例如,通过将其复制或将其发送到外部应用)而防止本地数据传递。键盘高速缓存特征可操作以针对敏感文本框停用自动校正功能性。SSL证书校验可为可操作的,因此应用特定地校验服务器SSL证书,而非将其存储于密钥链中。可使用加密密钥产生特征,使得使用由用户供应的通行短语或生物计量数据(如果需要离线访问)产生用以加密装置上的数据的密钥。如果不需要离线访问,那么可将其与随机产生且存储于服务器侧上的另一密钥进行异或运算。密钥导出函数可操作,使得从用户密码产生的密钥使用KDF(密钥导出函数,值得注意的是,基于密码的密钥导出函数2(PBKDF2)),而非创建其密码散列。后者使密钥对蛮力或词典攻击敏感。
另外,可在加密方法中使用一个或多个初始化向量。初始化向量将使相同加密数据的多个副本产生不同编密文本输出,从而防止重放和密码分析攻击。如果用以加密数据的特定初始化向量并不已知,那么这也将防止攻击者甚至用被盗的加密密钥解密任何数据。另外,可使用先验证后解密,其中仅在用户已在应用内验证之后解密应用数据。另一特征可涉及存储器中的敏感数据,仅当需要时,可将敏感数据保持在存储器中(并且不在磁盘中)。举例来说,可在登录之后从存储器擦拭登录证书,且不存储在面向对象的C语言例项变量内部的加密密钥和其它数据,因为它们可易于参考。实际上,可针对这些手动分配存储器。
可实施不活动超时,其中在不活动的策略定义周期之后,终止用户会话。
可以其它方式防止来自应用管理框架414的数据泄漏。举例来说,当将应用410放置在背景中时,可在预定(可配置)时间周期之后清除存储器。当作为背景时,可拍摄应用的最后显示的屏幕的快照以使前台过程稳固。截屏可含有机密数据且因此应被清除。
另一安全特征涉及使用OTP(一次性密码)420,不使用AD(活动目录)422密码,用于对一个或多个应用的访问。在一些情况下,一些用户并不知道(或不被准许知道)其AD密码,因此这些用户可例如通过使用比如SecurID等硬件OTP系统来使用OTP 420进行验证(OTP也可由不同销售商提供,例如Entrust或Gemalto)。在一些情况下,在用户用用户ID验证之后,将文本与OTP 420一起发送给用户。在一些情况下,这可仅针对线上使用来实施,其中提示为单个字段。
对于经由企业策略准许离线使用的那些应用410,可实施离线密码,以用于离线验证。举例来说,企业可能想要以此方式访问StoreFront。在此情况下,客户端代理404可需要用户设定定制离线密码,且不使用AD密码。网关服务器406可提供策略来控制和施行关于最小长度、字符类别组成和密码的年限的密码标准,例如,通过标准Windows服务器密码复杂度要求来描述,但可修改这些要求。
另一特征涉及针对某些应用410启用客户端侧证书,作为次要证书(出于经由应用管理框架微VPN特征访问PKI保护的网络资源的目的)。举例来说,应用可利用此证书。在此情况下,可支持使用ActiveSync协议的基于证书的验证,其中来自客户端代理404的证书可由网关服务器406检索且用于密钥链中。每一受管理应用可具有由在网关服务器406中定义的标签识别的一个相关联的客户端证书。
网关服务器406可与企业专用网络服务交互以支持客户端证书的发布以允许相关受管理应用对内部PKI保护的资源进行验证。
客户端代理404和应用管理框架414可被增强以支持获得和使用客户端证书用于对内部PKI保护的网络资源的验证。可支持多于一个证书,以便匹配各种层级的安全和/或分隔要求。所述证书可由邮件和浏览器管理的应用使用,且最终由任意包装的应用使用(假设那些应用使用网络服务样式通信模式,在所述模式中,应用管理框架调节https请求是合理的)。
iOS上的应用管理客户端证书支持可依赖于在每一使用周期内将公钥密码术标准(PKCS)12BLOB(二进制大对象)导入到每一受管理应用中的iOS密钥链内。应用管理框架客户端证书支持可使用具有专用存储器内密钥存储的HTTPS实施方案。客户端证书将决不存在于iOS密钥链中,且将不维持,潜在地在受到强保护的“仅线上”数据值中除外。
也可通过需要将移动装置402对企业验证来实施互SSL以提供额外安全,且反之亦然。也可实施用于对网关服务器406验证的虚拟智能卡。
有限和完全的Kerberos支持两者都可以是额外特征。完全支持特征涉及使用活动目录(AD)密码或可信客户端证书进行到AD 422的完全Kerberos登录和获得Kerberos服务票以响应HTTP协商验证挑战的能力。有限支持特征涉及在Citrix接入网关企业版(AGEE)中的受约束的委托,其中AGEE支持调用Kerberos协议转变,因此其可响应于HTTP协商验证挑战获得且使用Kerberos服务票(经受受约束的委托)。此机制在反向网络代理(也称为公司虚拟专用网络(CVPN))模式中且当http(但不是https)连接在VPN和MicroVPN模式中代理时工作。
另一特征涉及应用容器锁定和擦除,其可在越狱或生根检测后自动发生,和随着来自管理控制台的推送的命令而发生,且即使当应用410不在运行中时也可包含远程擦拭功能性。
可支持企业应用商店和应用控制器的多位点架构或配置,在有故障的情况下,其允许用户为来自若干不同位置中的一个的服务。
在一些情况下,可允许受管理应用410经由API(实例OpenSSL)访问证书和专用密钥。可允许企业的可信受管理应用410用应用的客户端证书和专用密钥执行特定公用密钥操作。可相应地识别和处理各种使用情况,例如,当应用表现得像浏览器且不需要证书访问时,当应用针对“我是谁”读取证书时,当应用使用证书建造安全会话符记时,以及当应用使用专用密钥用于重要数据(例如,交易记录)的数字签名或用于临时数据加密时。
已论述可用于提供和/或实施本发明的各方面的计算架构和企业移动性管理架构的若干实例,现将更详细地论述若干实施例。确切地说且如上文所介绍,本发明的一些方面大体涉及使每一移动应用的应用网络业务隧穿穿过应用特定VPN服务器到专用网络。应用特定VPN服务器可管理针对仅一个给定移动应用的VPN连接,且可拦截由其相应移动应用发布的系统调用以将所有相关网络业务隧穿到专用网络。
移动VPN隧穿
图5描绘使用TCP隧道协议管理移动VPN连接的说明性移动VPN系统500。根据图5中描绘的实施例,由MDM系统管理的企业移动应用可经由到专用网络的安全VPN连接访问企业资源。举例来说,受管理应用502可经由公用网络例如使用microVPN连接到接入网关516,且可经由可能不可由不安全和/或未管理移动应用访问的接入网关516访问安全门户,所述不安全和/或未管理移动应用例如不受MDM系统(例如,图4的企业移动性管理系统400)管理的移动应用。
在一些实施例中,移动VPN系统500可管理来自受管理应用502的入埠和出埠业务。在其上正执行受管理应用502的移动装置(例如,图4的移动装置402)可监视是否受管理应用502请求与能够访问公用网络520的装置无法访问的专用网络520通信。举例来说,专用网络520可通过防火墙与公用网络(例如,因特网)分离,仅具有访问权的企业应用可能够经由虚拟专用网络连接访问所述防火墙。受管理应用502的移动装置可连接到公用网络。移动装置上执行的未管理移动应用可访问公用网络。受管理应用520还可访问公用网络。为了访问专用网络520,受管理应用520可需要经由公用网络建立到专用网络520的VPN连接。举例来说,受管理应用可发布经由移动装置的端口设置到接入网关516的VPN连接的请求,所述端口可将受管理应用502的出埠业务转发到专用网络520。另外或替代地,接入网关516还可发射来自指定用于受管理应用502的专用网络520的通信,且将其发射回到受管理应用502。
受管理应用502可使用若干不同通信协议与专用网络520通信。举例来说,受管理应用502可使用不同隧道和/或通信协议建立与专用网络520的隧穿连接和/或虚拟专用网络连接。用于建立受管理应用502和专用网络520之间的VPN连接的移动VPN系统的系统架构可取决于受管理应用502所支持的隧道和/或通信协议的类型而变化。对于将经由VPN连接与专用网络520通信的每一受管理应用502,移动装置可确定待使用的隧道协议的类型。在确定隧道协议后,移动装置可因此确定如何处理待经由VPN连接隧穿的应用网络业务506和/或库网络业务508。图5中所描绘的实施例描绘移动VPN系统500,其用于促进TCP专用网络连接和依赖于与TCP隧道协议类似的网络架构的其它专用网络连接。图6描绘移动VPN系统600,其用于促进UDP专用网络连接和依赖于与UDP隧道协议类似的网络架构的其它专用网络连接。图7描绘移动VPN系统600,其用于促进DNS专用网络连接和依赖于与DNS隧道协议类似的网络架构的其它专用网络连接。UDP专用网络连接和DNS专用网络连接在下文分别在图6和7中更详细地描述。
在一些实施例中,移动装置和/或受管理应用502拦截受管理应用502作出的所有系统调用和受管理应用502与之通信的任何相关动态库504。为了拦截由受管理应用502调用的动态库504产生的所有应用网络业务506和库网络业务508,可拦截由受管理应用502和相关联动态库504作出的所有系统调用。代替于不同于常规系统拦截高层级应用业务,移动VPN系统500可拦截最低层级的应用业务(例如,系统调用)。通过拦截受管理应用502和其相关联库向移动装置的操作系统作出的所有系统调用,移动装置可以能够识别所有系统调用以起始本地装置套接字518上的连接。举例来说,移动装置可识别所有系统调用(例如connect()和connectx())以起始在移动装置的本地装置套接字518上到专用虚拟网络520的隧道和/或虚拟专用网络连接。通过识别由受管理应用502和其相关动态库504作出的移动装置上的套接字连接的所有此类例项,移动装置可确保其已拦截受管理应用502与专用虚拟网络520通信和/或将应用网络业务506和库网络业务508隧穿穿过虚拟专用网络连接的所有请求和/或尝试。应用网络业务506和/或库网络506可包含连接到VPN的此类系统调用连同含有待传送到专用网络520的业务有效负载的消息。通过拦截应用网络业务和/或库网络业务508中存在的连接到VPN的系统调用(例如,在此实例中,connect()和connectx()系统调用),移动装置可拦截来自受管理应用502的所有VPN业务。尽管connect()和connectx()在本发明中用作实例,移动装置可监视应用网络业务506和库网络业务508中的系统调用以查看已知待由各种不同类型的移动操作系统(例如,iOS、Android、FirefoxOS、Windows Phone OS、Blackberry OS、Tizen OS、Ubuntu Touch OS等)作出的所有系统调用。
在一些实施例中,一旦拦截连接到VPN的系统调用,使用此类系统调用的应用网络业务506和/或库网络业务508就重导向到动态端口。移动装置可产生动态端口,将在其上建立来自移动装置的TCP连接以将与被拦截的VPN系统调用相关联的应用网络业务506和/或库网络业务508隧穿到专用网络520。移动装置可在本地装置套接字518上产生多个不同动态端口510a-n。每一移动装置可具有多个受管理移动应用,例如请求与专用网络520通信的受管理应用502。对于每一受管理应用502,移动装置可在移动装置上分配来自所有动态端口510a-n的一个或多个动态端口510a-510c。动态端口可通过确定业务的目的地网络地址而指派到特定类型的应用网络业务506和/或库网络业务508。移动装置可查询映射表520以基于所述一个或多个消息的目的地网络地址确定哪一动态端口指派所述一个或多个消息(例如,应用网络业务506和/或库网络业务508)。映射表520可包括移动装置的所有动态端口510a-510n与不同目的地网络地址512a-n的映射。当从被拦截的系统调用接收针对不同目的地网络地址的新请求时,移动装置可在移动装置的本地装置套接字518中产生新动态端口以将业务投送到此类目的地网络地址,且更新映射表520以标注新产生的动态端口经创建以将业务隧穿到的专用网络520中新产生的动态端口和对应目的地网络地址之间的关联。
在一些实施例中,在每一动态端口处产生应用特定代理TCP服务器514以处置业务到专用网络的投送。在每一动态端口处,产生来自本地装置套接字518处的动态端口的连接以将动态端口连接到代理TCP服务器514来处置将针对每一TCP VPN连接的业务消息投送到专用网络520。代理服务器514可使用线上网络服务器创建代理,经由所述代理将来自受管理移动应用502的应用网络业务506隧穿到专用网络520。代理服务器514可以是应用特定服务器且仅处置其配置成服务的移动应用的应用网络业务。另外或替代地,移动装置的动态端口处产生的每一TCP连接和/或TCP隧道可专用于仅服务一个受管理应用502。VPN连接可因此是仅隧穿针对仅一个受管理移动应用的应用网络业务的应用特定VPN。
在一些实施例中,移动VPN系统500可设置和维持针对每一受管理应用502的一个或多个TCP隧穿连接。一旦已建立到接入网关516的TCP连接,就可根据映射表520中指定的此关联将指定映射表520中已经标注且对应于本地装置套接字518中的已经产生的动态端口的目的地网络地址的应用网络业务和/或系统调用投送到对应于所述目的地网络地址的动态端口。一旦已经创建TCP连接(例如,已在本地装置套接字518中的动态端口510b处产生到应用特定TCP代理服务器514的套接字连接,且代理服务器514已打开到接入网关516的套接字),就可由移动VPN系统500主动地维持从动态端口510b到接入网关516之间的TCP连接(例如,VPN隧道)。举例来说,可在接入网关516和对应于TCP连接的动态端口之间交换TCP确认消息和其它网络管理消息以监视TCP连接的状态、带宽使用和安全。TCP连接可在任何将来应用网络业务需要使用所述TCP连接时使用。
在一些实施例中,每一移动装置上的MDM简档(或MAM策略)可维持需要与专用网络520的VPN连接的企业受管理应用的列表。受管理移动应用502的源代码可包含编程和/或指令以产生专用于仅将受管理应用502的业务隧穿到专用网络520的TCP microVPN连接。在一些实施例中,当受管理应用502在移动装置上启动时,移动装置502可针对受管理应用502配置成与之通信的各种不同目的地网络地址起始移动装置的多个不同动态端口(例如,动态端口510a-c)上的多个不同microVPN连接。移动装置可标注目的地网络地址512a-c和动态端口510a-c与这些动态端口上的对应的应用特定TCP代理服务器514之间的关联。一旦已启动受管理应用502,随着受管理应用502产生针对额外目的地网络地址的应用网络业务506和/或库网络业务508,移动装置可在移动装置的本地装置套接字518上产生额外动态端口,创建到额外专门代理服务器的套接字连接以将业务隧穿穿过所请求的新目的地地址,且更新映射表520以标注新目的地网络地址和新分配的动态端口之间的关联。
在一些实施例中,可存在用于相同移动应用的多个不同VPN连接。可存在多个不同动态端口和其相关联代理服务器以服务相同移动应用的应用网络业务。每一动态端口和动态端口上运行的代理服务器514可针对受管理移动应用处置给定TCP连接的应用网络业务。因为移动装置可包含一个以上受管理应用,所以多个不同组的动态端口和TCP代理服务器可同时设置用于移动装置上执行的这些不同受管理应用的TCP隧道以将业务隧穿到专用网络520。
在一些实施例中,一旦应用网络业务506和/或库网络业务508到达本地装置套接字518上的动态端口,来自受管理应用502的此类网络业务的有效负载就可传递到动态端口处的代理服务器514。举例来说,如图5的实例实施例中所展示,来自受管理应用506的应用网络业务506可包含目的地IP地址512b的目的地网络地址。通过识别目的地IP地址512b与动态端口510b相关联,与连接到目的地IP地址512b的系统调用相关联的应用网络业务可投送到动态端口510b。可在动态端口510b处创建来自本地装置套接字518的套接字连接以连接到应用特定代理TCP服务器514。应用特定代理TCP服务器514可为microVPN服务器。应用特定代理TCP服务器514可产生到接入网关516的套接字连接,其可处置来自移动装置可接入的公用网络的业务到专用网络520的投送。在应用特定代理TCP服务器514处,来自受管理应用502的应用网络业务506可再打包以经由接入网关516隧穿到专用网络520。举例来说,应用网络业务506的有效负载可根据到专用网络520的TCP连接使用的TCP协议来提取和格式化。接入网关516可需要根据隧道协议将传入的有效负载包再打包以发送到专用网络520。相应地,应用特定代理TCP服务器514可识别由接入网关516和/或专用网络520使用的协议,且再打包待正确地格式化的传入的应用网络业务506包以供发射到专用网络520。
根据移动VPN系统500,一旦已经拦截来自受管理移动应用502的指定目的地网络地址的系统调用,就可产生应用特定TCP VPN隧道以隧穿与连接到VPN隧道的被拦截系统调用相关联的应用网络业务506和/或库网络业务508。在拦截指定目的地网络地址的VPN连接系统调用后,移动VPN系统500可以能够在本地装置套接字518中自动产生和分配动态端口以隧穿与VPN连接系统调用相关联的应用网络业务,在对应于VPN连接系统调用的目的地网络地址的经分配动态端口上产生应用特定代理TCP服务器514,产生到接入网关516的套接字连接以隧穿所述应用网络业务,且处置应用特定代理TCP服务器514处网络业务的再打包以将所述业务隧穿到接入网关516。
图6描绘使用UDP隧道协议管理移动VPN的说明性移动VPN系统600。移动VPN系统600的系统架构尽管类似于移动VPN系统500的系统架构,但其密钥特性与移动VPN系统500的密钥特性不同。在确定受管理应用502使用UDP协议通信后和/或在确定接入网关516需要UDP隧穿连接后,受管理应用502使用移动VPN系统600创建经由接入网关516到专用网络520的UDP隧穿连接。因为UDP是不同于TCP的无连接协议,所以不需要移动装置维持与接入网关516的主动UDP连接,这与TCP移动VPN系统500中不同。此外,经由移动装置上的固定端口(例如,固定端口610)而不是如TCP移动VPN系统500中的动态端口在移动装置和接入网关516之间建立UDP VPN连接。此外,因为UDP是无连接协议且仅一个固定端口用于将每一移动应用的业务隧穿到专用网络520,所以仅使用每移动应用一个代理VPN服务器将业务经由接入网关516隧穿到专用网络520。
在一些实施例中,一旦移动装置确定受管理应用502使用UDP通信协议,就可拦截由受管理应用502作出的连接到VPN的UDP系统调用。通过拦截受管理应用502和其相关联库向移动装置的操作系统作出的所有系统调用,移动装置可以能够识别在套接字上起始连接的所有系统调用。举例来说,移动装置可识别所有UDP系统调用(例如connect()和sendto())以在移动装置的装置套接字上起始到专用虚拟网络520的隧道和/或虚拟专用网络连接。通过识别由受管理应用502和其相关动态库504作出的移动装置上的套接字连接的所有此类例项,移动装置可确保其已拦截受管理应用502与专用虚拟网络520通信和/或将应用网络业务506和库网络业务508隧穿穿过虚拟专用网络连接的所有请求和/或尝试。应用网络业务506和/或库网络506可包含连接到VPN的此类系统调用连同含有待传送到专用网络520的业务有效负载的消息。通过拦截应用网络业务和/或库网络业务508中存在的连接到VPN的UDP系统调用(例如,在此实例中,connect()和sendto()系统调用),移动装置可拦截来自受管理应用502的所有VPN业务。尽管connect()和sendto()在本发明中用作实例,移动装置可监视应用网络业务506和库网络业务508中的系统调用以查看已知待由各种不同类型的移动操作系统(例如,iOS、Android、Firefox OS、Windows Phone OS、BlackberryOS、Tizen OS、Ubuntu Touch OS等)作出的所有UDP系统调用。
在一些实施例中,一旦连接到VPN的系统调用被拦截,使用用于受管理应用502的此类系统调用的应用网络业务506和/或库网络业务508就重导向到固定端口610。移动装置可分配有固定端口,在其上将建立来自移动装置的UDP VPN连接以将与被拦截的VPN系统调用相关联的应用网络业务506和/或库网络业务508隧穿到专用网络520。每一移动装置可具有请求与专用网络520通信的多个受管理移动应用,例如受管理应用502。对于每一受管理应用502,移动装置可分配来自移动装置上的所有固定端口的一个固定端口。因为每一UDP系统调用指定每一应用业务包待导向的实际目的地IP地址,所以移动UDP VPN系统600可使用固定端口610上的应用特定代理UDP服务器614经由接入网关516将与系统调用相关联的业务直接导向目的地。一旦VPN连接UDP系统调用被拦截,移动装置就可将此类应用网络506和/或库网络业务508重导向到固定端口610。
在一些实施例中,在固定端口610处产生应用特定代理UDP服务器614以处置业务到专用网络520的投送。在移动装置的每一固定端口(例如固定端口610)处,产生套接字以将固定端口连接到代理UDP服务器614以处置每一UDP VPN连接的业务消息到专用网络520的投送。代理服务器614可使用线上网络服务器创建代理,经由所述代理将来自受管理移动应用502的应用网络业务506隧穿到专用网络520。代理服务器614可以是应用特定服务器,且仅处置其配置成服务的移动应用的应用网络业务。另外或替代地,移动装置的固定端口处产生的每一UDP连接和/或UDP隧道可专用于仅服务一个受管理应用502。VPN连接可因此是仅隧穿针对仅一个受管理移动应用的应用网络业务的应用特定VPN。
在一些实施例中,当受管理应用502拦截具有UDP连接请求的应用业务和/或系统调用时,移动装置502可在移动装置的固定端口610上起始一个microVPN连接。因为移动装置可包含一个以上受管理应用,所以多个不同固定端口和UDP代理服务器可同时设置用于移动装置上执行的这些不同受管理应用中的每一个的一个UDP隧道以将业务隧穿到专用网络520。
在一些实施例中,一旦应用网络业务506和/或库网络业务508到达固定端口610,来自受管理应用502的此类网络业务的有效负载就可传递到固定端口610处的UDP VPN代理服务器614。套接字可在动态端口610处创建以连接到应用特定代理UDP服务器614。应用特定代理UDP服务器614可以是microVPN服务器。应用特定代理UDP服务器614可产生到接入网关516的套接字,其可处置来自移动装置可接入的公用网络的业务到专用网络520的投送。在应用特定代理T UDP服务器614处,来自受管理应用502的应用网络业务506可再打包以经由接入网关516隧穿到专用网络520。举例来说,应用网络业务506的有效负载可根据到专用网络520的UDP连接使用的UDP协议来提取和格式化。接入网关516可需要根据隧道协议将传入的有效负载包再打包以发送到专用网络520。相应地,应用特定代理UDP服务器614可识别由接入网关516和/或专用网络520使用的协议,且再打包待正确地格式化的传入的应用网络业务506包以供发射到专用网络520。
根据移动VPN系统500,一旦已经拦截来自受管理移动应用502的指定目的地网络地址的系统调用,就可产生应用特定UDP VPN隧道以隧穿与连接到VPN隧道的被拦截系统调用相关联的应用网络业务506和/或库网络业务508。在拦截指定目的地网络地址的VPN连接系统调用后,移动VPN系统600可以能够自动分配固定端口以隧穿与VPN连接系统调用相关联的应用网络业务,在对应于受管理应用的所分配端口上产生应用特定代理UDP服务器614,产生到接入网关516的套接字以隧穿所述应用网络业务,且处置应用特定代理UDP服务器614处网络业务的再打包以将所述业务隧穿到接入网关516。
在一些实施例中,移动VPN系统600可重导向直接从VPN连接系统调用导向专用网络520的应用网络业务506和/或库网络业务508。举例来说,移动VPN系统600可提取UDP VPN连接系统调用(例如,connect()和sendto()UDP系统调用)中发现的实际目的地IP地址,且在固定端口610上将此类业务直接重导向到应用特定代理UDP服务器614。因为UDP VPN连接系统调用已经包含目的地IP地址,所以不需要重导向到不同于TCP系统调用的动态端口来解析实际目的地IP地址。应用特定代理UDP服务器614可以能够经由接入网关516格式化到专用网络520的UDP业务。一旦应用业务已发射到专用网络520,就不可维持受管理应用502和接入网关516和/或专用网络520之间的主动UDP连接。
图7描绘使用DNS隧道协议管理移动VPN的说明性移动VPN系统700。根据图7中描绘的实施例,受管理应用502可经由公用网络(例如,使用microVPN)连接到接入网关516,且可经由接入网关516访问安全门户。
在一些实施例中,移动装置和/或受管理应用502拦截受管理应用502作出的所有系统调用和受管理应用502与之通信的任何相关动态库504。移动VPN系统700可确定受管理应用502使用DNS隧道协议和/或DNS通信协议以连接到专用网络520。响应于确定受管理应用502使用DNS协议,移动VPN系统可监视连接到VPN的所有DNS系统调用。在传统DNS VPN系统中,可存在全局(例如,系统层级)DNS后台程序714,其接收来自受管理应用502的所有DNS询问、其相关动态库504,和移动装置上执行的其它移动应用。在常规系统中,来自所有移动应用的每一DNS询问寻址到全局DNS后台程序714。然而,在本发明中,描述用以产生仅处置单一移动应用的DNS业务的应用特定DNS服务器708的系统和方法。
在一些实施例中,移动VPN系统700可拦截由受管理应用502和其相关动态库504发布的所有系统调用以便拦截连接到VPN的所有系统调用。由受管理应用502和/或动态库504作出的DNS VPN系统调用可包含到全局DNS后台程序714的路径用于对与系统调用相关联的DNS询问进行DNS解析。例如全局DNS后台程序714和应用特定DNS后台程序710等DNS后台程序可配置成解析来自受管理应用502和动态库504的DNS询问,且引导与此类系统调用相关联的应用网络业务506和库网络业务508。
在一些实施例中,一旦移动VPN系统700拦截由受管理应用502和/或动态库504发布的连接到专用网络520和/或与专用网络520通信的DNS系统调用,移动VPN系统就可将与此类DNS系统调用相关联的应用网络业务506和/或库网络业务508重导向到应用特定DNS后台程序710。对于每一受管理移动应用502,移动VPN系统700可在应用沙盒路径704处产生本地域套接字706。移动VPN系统700可在应用沙盒路径704处产生以通信方式耦合到本地域套接字706的应用特定DNS代理服务器708。应用特定DNS代理服务器708可包括应用特定DNS后台程序710,其可用于处置应用网络业务506和/或库网络业务到专用网络520的投送。举例来说,应用特定DNS后台程序710可对重导向应用网络业务506和/或库网络业务508中的DNS询问执行DNS解析以将此类业务经由公用网络716(例如,因特网)引导到接入网关516,以供转发到专用网络520和/或转发到全局DNS后台程序714用于进一步DNS解析。
在一些实施例中,移动VPN系统700可用应用特定DNS代理服务器708所位于的应用沙盒路径704替换和/或重写包含在每一DNS VPN连接系统调用中的DNS路径。通过将与由受管理应用502发布的每一DNS VPN连接系统调用相关联的应用网络业务506和库网络508重导向到应用沙盒路径704处的本地域套接字706,移动VPN系统700可将每一移动应用的应用业务重导向到外部用户/过程无法出于恶意目的(例如,侵入DNS后台程序以重导向业务)跟踪和/或检测的唯一沙盒路径。移动VPN系统700可产生本地域套接字706以连接到应用特定DNS代理服务器708来处置受管理应用502的业务消息到专用网络520的投送。代理服务器708可使用线上网络服务器来创建代理,经由所述代理将来自受管理移动应用502的应用网络业务506隧穿到专用网络520。代理服务器708可以是应用特定服务器,且仅处置其配置成服务的移动应用的应用网络业务。另外或替代地,本地域套接字706处产生的每一DNS连接和/或DNS隧道可专用于仅服务一个受管理应用502。VPN连接可因此是仅隧穿针对仅一个受管理移动应用的应用网络业务的应用特定VPN。
在一些实施例中,每一移动装置上的MDM简档可维持需要与专用网络520的VPN连接的企业管理的应用的列表。受管理移动应用502的源代码可包含编程和/或指令以在接收到从受管理应用502发布的DNS VPN连接系统调用后产生专用于仅将受管理应用502的业务隧穿到专用网络520的DNS microVPN连接。
在一些实施例中,多个不同受管理应用可能正在相同移动装置上执行,且可需要到专用网络520的DNS隧道。因为移动装置可包含一个以上受管理应用,所以多个不同组的本地域套接字和应用特定DNS代理服务器可同时设置针对移动装置上执行的这些不同受管理应用的DNS业务转发以将业务隧穿到专用网络520。
在一些实施例中,一旦应用网络业务506和/或库网络业务508在成功重导向后到达应用沙盒路径704处的本地域套接字706,来自受管理应用502的此类网络业务的有效负载就经由本地域套接字708传递到应用特定DNS代理服务器708。举例来说,如图5的实例实施例中所展示,来自受管理应用506的应用网络业务506可包含指定专用网络520处的域名的DNS询问。应用特定DNS代理服务器708可处理此类网络业务内的DNS询问且识别网络业务的目的地网络地址。应用特定DNS代理服务器708可以是microVPN服务器。应用特定DNS代理服务器708可产生到接入网关516的套接字,其可处置来自移动装置可接入的公用网络的业务到专用网络520的投送。在应用特定DNS代理服务器708处,来自受管理应用502的应用网络业务506可再打包以经由接入网关516隧穿到专用网络520。举例来说,可根据由到专用网络520的DNS连接使用的DNS协议提取和格式化应用网络业务506的有效负载。应用特定DNS代理服务器708可经由公用网络716将应用网络业务506的这些格式化有效负载发射到接入网关516。举例来说,应用特定DNS代理服务器708可与可经由其接入接入网关516的公用网络716直接通信。相应地,应用特定DNS代理服务器708可格式化待经由公用网络716发射到接入网关516的应用网络业务506的有效负载。接入网关516可需要根据隧道协议再打包传入有效负载包以发送到专用网络520。相应地,应用特定DNS代理服务器708可识别由接入网关516和/或专用网络520使用的协议,且再打包待正确地格式化的传入应用网络业务506包以供发射到专用网络520。
在一些实施例中,应用特定DNS后台程序710可将应用网络业务506和/或库网络业务508导向全局DNS后台程序以供进一步DNS解析和/或处理。应用特定DNS后台程序710可使用由接入网关516和/或移动VPN系统700使用的策略处理应用网络业务506和/或库网络业务508的相关联DNS询问。举例来说,应用特定DNS后台程序710可确定是否经由应用502的应用沙盒路径704接收的DNS请求和/或相关应用网络业务506和/或库网络业务508可由应用特定DNS后台程序710在本地解析。应用特定DNS后台程序710处无法执行的需要根据接入网关516的策略进一步重新格式化的DNS请求可转发到全局DNS后台程序714。应用特定DNS后台程序710可将其已从本地域套接字706接收的应用网络业务506和/或库网络业务508重导向到系统层级DNS路径702,系统层级DNS路径702处可存在客户端套接字712以连接到全局DNS后台程序714。应用特定DNS后台程序710可将应用网络业务506和/或库网络业务508的DNS询问中的目的地路径替换为系统层级DNS路径702以在路径702处将业务发射到客户端套接字712。一旦应用网络业务506和/或库网络业务508到达客户端套接字712,业务就可由以通信方式耦合到客户端套接字712的全局DNS后台程序714接收。全局DNS后台程序714可根据接入网关516的策略处理和/或重新格式化应用网络业务506和/或库网络业务508以准备将此类业务经由接入网关516发射到专用网络520。全局DNS后台程序714可间接经由公用网络716与接入网关通信。全局DNS后台程序714可使用移动装置上配置的DNS网络服务器经由公用网络716将网络业务发射到接入网关516。全局DNS后台程序714可与经由其可接入接入网关516的公用网络716直接通信。相应地,全局DNS后台程序714可指示移动装置上配置的DNS服务器格式化应用网络业务506的有效负载以经由公用网络716发射到接入网关516。
全局DNS后台程序714可解析应用特定DNS后台程序710可能尚未在此类重导向业务包上执行的DNS询问。在处理应用网络业务506和/或库网络业务508后,全局DNS后台程序714可将其发射到接入网关516。
图8描绘说明根据本文中所描述的一个或多个说明性方面以每应用为基础产生移动TCP VPN连接的方法的流程图。在一个或多个实施例中,图8的方法和/或其一个或多个步骤可由计算装置(例如,通用计算装置201)执行。在其它实施例中,图8中说明的方法和/或其一个或多个步骤可体现在存储于计算机可读媒体(例如非暂时性计算机可读存储器)中的计算机可执行指令中。
如图8A所示,方法可在步骤802处开始,其中移动装置可确定由移动应用使用的隧道协议。举例来说,移动装置可检查移动应用的源代码和/或通信协议以确定由移动应用使用以与公共网络和/或专用网络通信的通信协议。移动应用可使用其具有接入权的公用网络来接入接入网关以创建到专用网络的VPN隧道。另外或替代地,用于从公用网络接入专用网络的接入网关的通信协议和/或隧道协议可经检查以确定移动应用必须使用以与接入网关通信来设置VPN连接的通信协议的类型。
在步骤804处,移动装置可确定是否移动应用使用TCP隧道协议。移动装置可通过监视在步骤802中检查的系统调用和/或通信协议是否包括正使用的TCP通信和/或隧道协议的指示来确定是否移动VPN系统使用TCP隧道协议。举例来说,移动装置可检查来自移动应用的通信和/或系统调用以查看指示TCP通信协议的已知TCP系统调用、通信过程和/或钩子(hook)。在确定移动应用不使用TCP隧道协议后,方法可继续到图8B的步骤832。
在步骤806处,在确定移动应用使用TCP隧道协议后,移动装置可拦截来自移动应用和由移动应用使用的第三方库的系统调用。移动装置可检查由移动应用和/或其相关联库发布的所有系统调用以查看连接到VPN网络的特定TCP系统调用(例如,connect()和connect()系统调用)。移动装置可识别连接到VPN网络的所有系统调用,且还可识别与此类被拦截的系统调用相关联的所有应用网络业务和/或库网络业务。
在步骤808处,移动装置可从由移动应用和/或其相关联第三方库作出的每一拦截系统调用识别目的地网络。举例来说,VPN连接系统调用和/或其相关联业务消息可包含一个或多个目的地网络地址和/或中间地址。移动装置可从移动应用和/或其相关联库识别包含在应用业务消息和/或系统调用中的此类网络地址以确定如何最佳地投送此类应用业务。如果检测到移动装置先前尚未遇到的针对所述特定应用的目的地地址,那么可产生新动态端口以服务于新目的地网络。确切地说,移动装置可产生动态端口且使所述动态端口与其已产生以将业务投送到的网络地址相关联。移动装置可用新产生的动态端口与其相应目的地网络地址的关联更新移动装置的动态端口与目的地网络地址的映射。
在步骤810处,移动装置可通过使用目的地网络地址识别经由其投送业务的动态端口。通过查询动态端口到目的地网络地址的映射,移动装置可识别应使用哪一动态端口将来自移动应用和/或其相关联动态库的业务投送到目的地网络地址。
在步骤812处,移动装置可在经识别的动态端口处产生应用特定代理服务器。在动态端口处,可创建到代理服务器的套接字,所述代理服务器配置成维持受管理应用的业务经由接入网关到专用网络的TCP连接。举例来说,代理服务器可经产生以起始对应动态端口上的移动装置和必须经由其引导到专用网络的应用业务的接入网关之间的TCP连接且保持所述TCP连接运作。应用特定代理服务器可配置成拦截由受管理移动应用作出的系统调用,且选择指定给其配置成服务的网络地址的业务。应用特定代理服务器可产生到接入网关的套接字,其可处置来自移动装置可接入的公用网络的业务到专用网络的投送。在应用特定代理服务器处,来自受管理应用的应用网络业务可再打包以经由接入网关隧穿到专用网络。举例来说,应用网络业务的有效负载可根据由到专用网络的TCP连接使用的TCP协议来提取和格式化。接入网关可需要根据隧道协议再打包传入的有效负载包以发送到专用网络。相应地,应用特定代理服务器可识别由接入网关和/或专用网络使用的协议,且可再打包待正确地格式化的传入的应用网络业务消息以供发射到专用网络。
在步骤814处,移动装置可建立经识别的动态端口处的代理服务器和接入网关之间的TCP连接。举例来说,可由代理服务器产生应用特定TCP VPN隧道以将待连接到VPN隧道的应用网络业务和/或库网络业务经由接入网关隧穿到专用网络。移动装置还可指示相关应用特定代理服务器产生到接入网关的套接字。移动装置可指示应用特定代理服务器针对可导向对应动态端口的将来TCP业务维持与接入网关的经建立的TCP连接。移动装置可指示应用特定代理服务器交换网络管理消息以维持TCP连接用于将来使用,只要移动应用正在移动装置上执行。
在步骤816处,移动装置可检测指定给目标目的地网络地址的应用业务。举例来说,应用特定代理服务器和/或移动装置可检测受管理应用已发布连接到VPN连接的系统调用。另外或替代地,应用特定代理服务器可检测到具有配置成服务的目的地地址的应用网络业务已由受管理应用产生。受管理应用可在移动装置和/或应用特定代理服务器的指令下经由到代理服务器的对应动态端口的套接字将应用业务引导到应用特定代理服务器。
在步骤818处,移动装置可将动态端口处的所检测应用业务的有效负载传递到代理服务器。举例来说,移动装置可指示相关应用特定代理服务器根据由应用网关使用的TCP协议和/或通信标准再打包应用网络业务的有效负载。
在步骤820处,移动装置可确定有效负载是否可直接发射到应用业务的目的地地址。移动装置可确定网络业务待经由移动装置可接入的公用网络发送到公用网络地址还是发送到专用网络。举例来说,在一些实施例中,应用业务的目的地网络地址可以是仅可经由接入网关接入的专用网络地址,移动装置可经由公用网络(例如,因特网)接入所述接入网关。在其它实施例中,应用业务的目的地网络地址可由移动装置访问,而不必经由接入网关投送业务。移动装置可检查应用网络业务的目的地网络地址以确定是否需要进一步处理和/或打包以将应用业务发送到其最终目的地(例如格式化待经由接入网关投送到其目的地的应用业务)。在确定有效负载是否可直接发射到目的地网络地址或是否其需要隧穿穿过接入网关的过程中,移动装置可确定应用特定TCP服务器是否能够访问应用业务的目的地网络地址和/或能够根据目的地网络地址的要求格式化应用网络。应用特定TCP服务器不能够执行的需要进一步重新格式化的应用网络业务可转发到接入网关。
在步骤822处,响应于确定有效负载可直接从移动装置发射到目的地网络地址,移动装置可将应用业务直接发射到其目的地网络地址。举例来说,应用特定TCP代理服务器可指定业务应寻址到的目的地网络地址。应用特定后台程序可根据由目的地网络地址使用的通信协议再打包所接收的应用业务的有效负载以恰当地转发应用业务。
在步骤824处,响应于确定有效负载无法直接发射到目的地地址,移动装置可将来自代理服务器的应用业务发射到接入网关。一旦应用业务已由应用特定代理服务器恰当地格式化,移动装置可指示代理服务器将再打包的应用业务发射到接入网关。移动装置可指示接入网关将应用业务发送到专用网络。应用特定TCP代理服务器可将应用网络业务和/或库网络业务中的目的地路径替换为接入网关的目的地路径。一旦应用网络业务和/或库网络业务到达接入网关,移动装置就可指示接入网关根据接入网关的策略处理和/或重新格式化应用网络业务和/或库网络业务以准备此类业务以供经由接入网关发射到专用网络。
图8B描绘说明根据本文中所描述的一个或多个说明性方面以每应用为基础产生移动UDP VPN连接的方法的流程图。在一个或多个实施例中,图8B的方法和/或其一个或多个步骤可由计算装置(例如,通用计算装置201)执行。在其它实施例中,图8B中说明的方法和/或其一个或多个步骤可体现在存储于计算机可读媒体(例如非暂时性计算机可读存储器)中的计算机可执行指令中。
如图8B所示,在步骤832处,移动装置可确定移动应用是否使用UDP隧道协议。移动装置可通过监视在步骤802中检查的系统调用和/或通信协议是否包括正使用的UDP通信和/或隧道协议的指示来确定是否移动VPN系统使用UDP隧道协议。举例来说,移动装置可检查来自移动应用的通信和/或系统调用以查看指示UDP通信协议的已知UDP系统调用、通信过程和/或钩子。在确定移动应用不使用UDP隧道协议后,方法可继续到图8C的步骤852。
在步骤834处,在确定移动应用使用UDP隧道协议后,移动装置可拦截来自移动应用和由移动应用使用的第三方库的系统调用。移动装置可检查由移动应用和/或其相关联库发布的所有系统调用以查看连接到VPN网络的特定UDP系统调用(例如,connect()和sendto()系统调用)。移动装置可识别连接到VPN网络的所有系统调用,且还可识别与此类被拦截的系统调用相关联的所有应用网络业务和/或库网络业务。
在步骤836处,移动装置可从由移动应用和/或其相关联第三方库作出的每一拦截系统调用识别目的地网络。举例来说,VPN连接系统调用和/或其相关联业务消息可包含一个或多个目的地网络地址(例如专用网络地址的IP地址)。移动装置可从移动应用和/或其相关联库识别包含在应用业务消息和/或系统调用中的此类网络地址以确定如何最佳地投送此类应用业务。
在步骤838处,移动装置可使用对应于目的地网络地址的固定端口的映射识别经由其投送应用业务的固定端口。举例来说,移动装置可识别移动装置的哪一固定通信端口已经被分配以将来自对应受管理应用的业务隧穿到用于将业务转发到接入网关的代理服务器上。在识别用于隧穿来自受管理应用的应用业务的固定端口的过程中,移动装置可确定哪些通信端口可用和/或已经专用于服务受管理应用。
在步骤840处,移动装置可在经识别的固定端口处产生应用特定UDP代理服务器。在移动装置的经识别固定通信端口处,可产生到代理服务器的套接字,其配置成处置受管理应用的业务且经由接入网关将所述业务隧穿到专用网络。应用特定代理服务器可配置成拦截由其配置成服务的受管理移动应用作出的系统调用。应用特定代理服务器可产生到接入网关的套接字,其可处置来自移动装置可接入的公用网络的业务到专用网络的投送。在应用特定代理服务器处,来自受管理应用的应用网络业务可再打包以经由接入网关隧穿到专用网络。举例来说,可根据由接入网关使用以与专用网络通信的UDP协议来提取和格式化应用网络业务的有效负载。接入网关可需要根据UDP隧道协议再打包传入的有效负载包以发送到专用网络。相应地,应用特定代理服务器可识别由接入网关和/或专用网络使用的协议,且可再打包待正确地格式化的传入的应用网络业务消息以供发射到专用网络。
在步骤842处,移动装置可检测指定给目标目的地地址的应用业务。举例来说,应用特定代理服务器和/或移动装置可检测受管理应用已发布连接到VPN连接的系统调用。另外或替代地,应用特定代理服务器可检测到具有配置成服务的目的地地址的应用网络业务已由受管理应用产生。受管理应用可在移动装置和/或应用特定代理服务器的指令下经由到代理服务器的对应固定端口的套接字将应用业务引导到应用特定代理服务器。
在步骤844处,移动装置可将固定端口处的应用业务的有效负载传递到UDP代理服务器。举例来说,移动装置可指示相关应用特定代理服务器根据由应用网关使用的TCP协议和/或通信标准再打包应用网络业务的有效负载。
在步骤846处,移动装置可确定有效负载是否可直接发射到应用业务的目的地地址。移动装置可确定网络业务待经由移动装置可接入的公用网络发送到公用网络地址还是发送到专用网络。举例来说,在一些实施例中,应用业务的目的地网络地址可以是仅可经由接入网关接入的专用网络地址,移动装置可经由公用网络(例如,因特网)接入所述接入网关。在其它实施例中,应用业务的目的地网络地址可由移动装置访问,而不必经由接入网关投送业务。移动装置可检查应用网络业务的目的地网络地址以确定是否需要进一步处理和/或打包以将应用业务发送到其最终目的地(例如格式化待经由接入网关投送到其目的地的应用业务)。在确定有效负载是否可直接发射到目的地网络地址或是否其需要隧穿穿过接入网关的过程中,移动装置可确定应用特定UDP代理服务器是否能够访问应用业务的目的地网络地址和/或能够根据目的地网络地址的要求格式化应用网络。应用特定UDP代理服务器不能够执行的需要进一步重新格式化的应用网络业务可转发到接入网关。
在步骤848处,响应于确定有效负载可直接从移动装置发射到目的地网络地址,移动装置可将应用业务直接发射到其目的地网络地址。举例来说,应用特定UDP代理服务器可指定业务应寻址到的目的地网络地址。应用特定后台程序可根据由目的地网络地址使用的通信协议再打包所接收的应用业务的有效负载以恰当地转发应用业务。
在步骤850处,响应于确定有效负载无法直接发射到目的地地址,移动装置可将应用业务从UDP代理服务器发射到接入网关。一旦应用业务已由应用特定代理服务器恰当地格式化,移动装置可指示代理服务器将再打包的应用业务发射到接入网关。移动装置可指示接入网关将应用业务发送到专用网络。应用特定UDP代理服务器可将应用网络业务和/或库网络业务中的目的地路径替换为接入网关的目的地路径。一旦应用网络业务和/或库网络业务到达接入网关,移动装置就可指示接入网关根据接入网关的策略处理和/或重新格式化应用网络业务和/或库网络业务以准备此类业务以供经由接入网关发射到专用网络。
图8C描绘说明根据本文中所描述的一个或多个说明性方面以每应用为基础产生移动DNS VPN连接的方法的流程图。在一个或多个实施例中,图8C的方法和/或其一个或多个步骤可由计算装置(例如,通用计算装置201)执行。在其它实施例中,图8C中说明的方法和/或其一个或多个步骤可体现在存储于计算机可读媒体(例如非暂时性计算机可读存储器)中的计算机可执行指令中。
如图8C所示,在步骤852处,移动装置可确定移动应用是否使用DNS隧道协议。移动装置可通过监视在步骤802中检查的系统调用和/或通信协议是否包括正使用的DNS通信和/或隧道协议的指示来确定是否移动VPN系统使用DNS隧道协议。举例来说,移动装置可检查来自移动应用的通信和/或系统调用以查看指示DNS通信协议的已知DNS系统调用、DNS询问、通信过程和/或钩子。在确定移动应用不使用DNS隧道协议且已确定移动应用也不使用TCP或UDP隧道协议后,所述方法可终止。
在步骤854处,在确定移动应用使用DNS隧道协议后,移动装置可拦截来自移动应用和由移动应用使用的第三方库的系统调用。移动装置可检查由移动应用和/或其相关联库发布的所有系统调用以查看连接到VPN网络的特定DNS系统调用。移动装置可识别连接到VPN网络的所有系统调用,且还可识别与此类被拦截的系统调用相关联的所有应用网络业务和/或库网络业务。
在步骤856处,移动装置可在本地域套接字处产生应用特定代理服务器。移动装置可产生应用沙盒路径,应用特定DNS代理服务器可在其处接收待隧穿到专用网络的业务。移动装置可产生到代理服务器的本地套接字,其配置成处置受管理应用的业务且将所述业务经由接入网关隧穿到专用网络。移动装置还可在此产生应用特定代理服务器,其以通信方式耦合到应用沙盒路径处的所产生的本地套接字。可产生应用特定代理服务器,专用于仅一个受管理应用且将其业务经由接入网关隧穿到专用网络。应用特定代理服务器可配置成拦截由其配置成服务的受管理移动应用作出的系统调用。应用特定代理服务器可产生到接入网关的套接字,其可处置来自移动装置可接入的公用网络的业务到专用网络的投送。移动装置可在应用特定DNS代理服务器处产生应用特定DNS后台程序以解析可导向其的DNS应用业务的DNS询问。在应用特定代理服务器处,来自受管理应用的应用网络业务可再打包以经由接入网关隧穿到专用网络。举例来说,代理服务器可配置成提取应用网络业务的有效负载,且根据由接入网关使用以与专用网络通信的DNS协议对其进行格式化。接入网关可需要根据DNS隧道协议再打包传入的有效负载包以发送到专用网络。相应地,应用特定代理服务器可识别由接入网关和/或专用网络使用的协议,且可再打包待正确地格式化的传入的应用网络业务消息以供发射到专用网络。
在步骤858处,移动装置可产生应用服务器和系统范围DNS后台程序之间的链路。举例来说,移动装置可产生应用特定代理DNS服务器和系统范围DNS后台程序之间的套接字。此链路可经产生以转发应用特定DNS后台程序不能够解析且可需要系统范围DNS后台程序的辅助的任何应用业务。
在步骤860处,移动装置可从被拦截的系统调用识别DNS后台程序地址。连接到与被拦截系统调用相关联的VPN连接和/或应用网络业务和/或库网络业务的此类被拦截的系统调用可经检查以识别系统调用和/或应用业务指定到的DNS后台程序的地址。DNS业务和/或系统调用可包含需要由DNS后台程序解析的DNS询问,且可包含DNS后台程序的路径和/或地址。
在步骤862处,移动装置可用到本地域套接字的应用沙盒路径替换DNS后台程序地址以连接到应用特定代理服务器。在步骤860处从被拦截的系统调用识别DNS后台程序地址和/或路径后,移动装置可用应用特定DNS后台程序可在其处执行的应用沙盒路径替换系统调用和/或应用网络业务中的DNS后台程序的路径。移动装置可确定哪一应用产生待经由VPN发送的系统调用和/或应用业务,且识别在其上执行用于对应的经识别移动应用的应用特定DNS后台程序的应用代理服务器。移动装置可将此类系统调用和/或相关联应用业务引导到经识别的代理服务器。
在步骤864处,来自应用特定DNS后台程序处的应用的DNS询问可在本地域套接字处接收。一旦移动装置已确定使用哪一应用特定代理服务器来转发针对给定应用的DNS询问、系统调用和/或应用业务,移动装置就识别DNS询问从所述移动应用到经识别的代理服务器处的应用特定DNS后台程序的转发。应用特定代理服务器的本地套接字可接收此类业务消息,且确切地说接收针对此类业务消息的DNS询问。
在步骤866处,移动装置可确定应用特定后台程序是否可解析所接收的DNS询问。移动装置可指示应用特定代理服务器确定其是否可解析其在步骤864处已接收的DNS询问。举例来说,可指示应用特定DNS后台程序使用由接入网关使用的策略处理应用网络业务和/或库网络业务的相关联DNS询问。举例来说,应用特定DNS后台程序可确定是否经由对应应用的应用沙盒路径接收的DNS请求和/或相关应用网络业务和/或库网络业务可由应用特定DNS后台程序在本地解析。需要根据接入网关的策略进一步重新格式化且无法在应用特定DNS后台程序处执行的DNS请求可转发到系统层级DNS后台程序。
在步骤868处,响应于确定应用特定后台程序不能解析DNS询问,移动装置可将DNS询问发射到系统层级DNS后台程序。举例来说,应用特定DNS后台程序可将其已从本地域套接字接收的应用网络业务和/或库网络业务经由步骤858中产生的链路(例如套接字)重导向到系统层级DNS路径。应用特定DNS后台程序可将代理服务器处无法解析的应用网络业务和/或库网络业务的DNS询问中的目的地路径替换为系统层级DNS路径的目的地路径以将业务发射到系统层级后台程序。一旦应用网络业务和/或库网络业务到达系统层级DNS后台程序,移动装置就可指示系统层级DNS后台程序可根据接入网关的策略处理和/或重新格式化应用网络业务和/或库网络业务以准备此类业务以供经由接入网关发射到专用网络。系统层级DNS后台程序可解析应用特定DNS后台程序可能尚未在此类重导向业务包上执行的DNS询问。
在步骤870处,响应于确定应用特定后台程序能够解析DNS询问,移动装置可指示应用特定代理服务器处的应用特定后台程序根据接入网关的VPN协议解析DNS询问。举例来说,应用特定后台程序可指定专用网络中的业务应寻址到的目的地网络地址。应用特定后台程序可根据由接入网关使用的DNS和/或其它通信协议再打包所接收的应用业务的有效负载以将应用业务经由接入网关转发到专用网络。
在步骤872处,移动装置可在DNS解析后将应用业务从应用特定代理服务器发射到接入网关。一旦应用业务已恰当地格式化和解析,移动装置就可指示代理服务器将再打包的应用业务发射到接入网关。移动装置可指示接入网关将应用业务发送到专用网络。
虽然已以特定针对结构特征和/或方法动作的语言来描述主题,但应理解,所附权利要求书中所界定的主题未必限于上文所描述的特定特征或动作。相反地,以上描述的特定特征和动作被描述为所附权利要求的实例实施方案。

Claims (41)

1.一种用于移动平台的隧穿的方法,包括:
由移动装置的处理器确定所述移动装置上执行的移动应用请求与专用网络通信;
由所述处理器拦截由所述移动装置上执行的所述移动应用发布的与所述专用网络通信的一个或多个系统调用;
由所述处理器通过将不同动态端口指派到请求与所述专用网络通信的多个移动应用中的每一个而分配所述移动装置的动态端口以用于投送来自所述移动应用的通信;
由所述处理器且在所述移动装置的所述动态端口上产生到虚拟专用网络VPN服务器的通信链路,经由所述通信链路将来自所述移动应用的通信发射到所述专用网络;以及
由所述处理器指示所述VPN服务器将来自所述移动应用的一个或多个消息发射到接入网关以供转发到所述专用网络。
2.根据权利要求1所述的方法,其中分配所述动态端口包括:
由所述处理器识别与所述一个或多个系统调用相关联的至少一个消息的目的地网络地址;以及
由所述处理器使用目的地网络地址到所述移动装置的动态端口的映射来识别待用于将来自所述移动应用的通信投送到所述专用网络的所述动态端口,其中所述动态端口对应于目的地网络地址的所述映射中所述至少一个消息的所述目的地网络地址。
3.根据权利要求1所述的方法,其中所述VPN服务器是发射控制协议TCP服务器,且其中产生到所述VPN服务器的所述通信链路进一步包括:
由所述处理器在所述动态端口上产生所述TCP服务器;以及
由所述处理器产生所述动态端口和所述TCP服务器之间的TCP连接。
4.根据权利要求1所述的方法,进一步包括:
由所述处理器确定所述一个或多个消息指定到多个不同网络地址;
由所述处理器产生多个TCP服务器,其中所述多个TCP服务器的每一TCP服务器在所述移动装置的不同动态端口上产生,且其中多个动态端口的每一动态端口被产生以针对所述多个不同网络地址中的每一个将来自所述移动应用的通信发射到所述专用网络;以及
由所述处理器产生多个TCP连接,其中每一TCP连接对应于经由其将来自所述移动应用的通信从所述多个动态端口中的每一个发射到所述专用网络的通信链路。
5.根据权利要求1所述的方法,进一步包括:
由所述处理器分配所述移动装置的固定端口以用于将来自第二移动应用的通信投送到所述专用网络;以及
由所述处理器且在所述移动装置的所述固定端口上产生到用户数据报协议UDP服务器的、经由其将来自所述第二移动应用的通信发射到所述专用网络的通信链路,且其中产生到所述UDP服务器的所述通信链路进一步包括:
由所述处理器产生所述固定端口和所述UDP服务器之间的UDP连接。
6.根据权利要求1所述的方法,进一步包括:
由所述处理器确定来自所述移动应用的所述一个或多个消息指定给所述专用网络;以及
由所述处理器将所述一个或多个消息的有效负载发射到所述移动装置的所述动态端口处的所述VPN服务器。
7.根据权利要求1所述的方法,其中指示所述VPN服务器将来自所述移动应用的所述一个或多个消息发射到所述接入网关进一步包括:
由所述处理器指示所述动态端口处的所述VPN服务器根据用于将所述一个或多个消息发射到所述专用网络的所述通信链路的隧道协议从所述一个或多个消息产生一个或多个包;以及
由所述处理器指示所述VPN服务器经由所述通信链路将根据所述隧道协议处理的所述一个或多个包发射到所述专用网络。
8.根据权利要求1所述的方法,其中所述指示所述VPN服务器将来自所述移动应用的所述一个或多个消息发射到所述接入网关以供转发到所述专用网络进一步包括:
用所述接入网关的地址替换所述一个或多个消息中的专用网络目的地地址;以及
指示所述接入网关将所述一个或多个消息转发到所述专用网络目的地地址。
9.一种用于移动平台的隧穿的方法,包括:
由移动装置的处理器确定所述移动装置上执行的移动应用请求与专用网络通信;
由处理器拦截由所述移动装置上执行的所述移动应用发布的与所述专用网络通信的一个或多个系统调用;
响应于确定所述一个或多个系统调用寻址到域套接字路径,用对应于所述移动应用的沙盒路径替换所述一个或多个系统调用中的所述域套接字路径;
由所述处理器产生到所述沙盒路径处的虚拟专用网络VPN服务器的通信链路,
经由所述通信链路将来自所述移动应用的通信发射到所述专用网络;以及
由所述处理器指示所述VPN服务器将来自所述移动应用的一个或多个消息发射到接入网关以供转发到所述专用网络。
10.根据权利要求9所述的方法,进一步包括:
由所述处理器确定所述一个或多个系统调用包括寻址到系统层级DNS过程的至少一个DNS询问;以及
其中用所述沙盒路径替换所述一个或多个系统调用中的所述域套接字路径进一步包括:
由所述处理器在本地域套接字处产生所述沙盒路径,经由所述沙盒路径将来自所述移动应用的通信发射到所述专用网络;以及
由所述处理器且针对所述移动应用产生以通信方式耦合到所述本地域套接字的所述VPN服务器。
11.根据权利要求10所述的方法,进一步包括:
由所述处理器在以通信方式耦合到所述本地域套接字的所述VPN服务器处产生应用特定DNS过程。
12.根据权利要求10所述的方法,进一步包括:
由所述处理器识别与所述一个或多个系统调用相关联的至少一个消息的目的地网络地址;以及
由所述处理器将所述至少一个消息发射到以通信方式耦合到所述本地域套接字的所述VPN服务器以进行DNS解析;以及
由所述处理器指示所述VPN服务器处的应用特定DNS过程将所述一个或多个消息发射到所述接入网关以供转发到所述专用网络。
13.根据权利要求9所述的方法,其中指示所述VPN服务器将来自所述移动应用的所述一个或多个消息发射到所述接入网关进一步包括:
由所述处理器指示所述沙盒路径处的所述VPN服务器根据用于将所述一个或多个消息发射到所述专用网络的所述通信链路的DNS协议从所述一个或多个消息产生一个或多个包;以及
由所述处理器指示所述VPN服务器经由所述通信链路将根据所述DNS协议处理的所述一个或多个包发射到所述专用网络。
14.根据权利要求9所述的方法,进一步包括:
由所述处理器确定来自所述移动装置上执行的多个不同移动应用的多个不同消息指定给所述专用网络;
由所述处理器产生多个沙盒路径,其中所述多个沙盒路径的每一沙盒路径在多个本地域套接字的不同本地域套接字处产生以将来自所述多个不同移动应用的对应移动应用的通信发射到所述专用网络;
由所述处理器且针对所述移动应用产生多个VPN服务器,其中所述多个VPN服务器中的每一个以通信方式耦合到所述多个本地域套接字的对应本地域套接字;以及
由所述处理器产生多个应用特定DNS过程,其中每一应用特定DNS过程在所述多个VPN服务器的以通信方式耦合到所述多个本地域套接字的对应本地域套接字的对应VPN服务器处执行。
15.根据权利要求10所述的方法,进一步包括:
响应于确定所述至少一个DNS询问需要由所述系统层级DNS过程解析,由所述处理器将与所述一个或多个系统调用相关联的至少一个消息发射到所述系统层级DNS过程以进行DNS解析。
16.一种用于移动平台的隧穿的设备,包括:
至少一个处理器;
至少一个动态端口;以及
至少一个存储器,其存储计算机程序,所述计算机程序当由所述至少一个处理器执行时致使所述设备:
确定所述设备上执行的移动应用请求与专用网络通信;
拦截由所述设备上执行的所述移动应用发布的与所述专用网络通信的一个或多个系统调用;
由所述处理器通过将不同动态端口指派到请求与所述专用网络通信的多个移动应用中的每一个而分配所述至少一个动态端口中的动态端口以用于投送来自所述移动应用的通信;
在所分配的动态端口处产生到虚拟专用网络VPN服务器的通信链路,经由所述通信链路将来自所述移动应用的通信发射到所述专用网络;以及
指示所述VPN服务器将来自所述移动应用的一个或多个消息发射到接入网关以转发到所述专用网络。
17.根据权利要求16所述的设备,其中分配所述动态端口包括:
识别与所述一个或多个系统调用相关联的至少一个消息的目的地网络地址;以及
使用目的地网络地址到所述设备的动态端口的映射识别所述动态端口,其中所述动态端口对应于目的地网络地址的所述映射中所述至少一个消息的所述目的地网络地址。
18.根据权利要求16所述的设备,其中所述至少一个存储器还存储计算机程序,该计算机程序当由所述至少一个处理器执行时还致使所述设备:
确定所述一个或多个消息指定到多个不同网络地址;
产生多个TCP服务器,其中所述多个TCP服务器的每一TCP服务器在所述设备的不同动态端口上产生,且其中所述至少一个动态端口的每一动态端口被产生以针对所述多个不同网络地址中的每一个将来自所述移动应用的通信发射到所述专用网络;
以及
产生多个TCP连接,其中每一TCP连接对应于经由其将来自所述移动应用的通信从所述至少一个动态端口中的每一个发射到所述专用网络的通信链路。
19.根据权利要求16所述的设备,还包括固定通信端口,且其中所述至少一个存储器还存储计算机程序,该计算机程序当由所述至少一个处理器执行时还致使所述设备:
分配所述固定通信端口以用于将来自第二移动应用的通信投送到所述专用网络;以及
由所述处理器且在所述固定通信端口上产生到用户数据报协议UDP服务器的、经由其将来自所述第二移动应用的通信发射到所述专用网络的通信链路,且其中用以产生到所述UDP服务器的所述通信链路的所述计算机程序当由所述至少一个处理器执行时致使所述设备:
产生所述固定通信端口和所述UDP服务器之间的UDP连接。
20.根据权利要求16所述的设备,其中用以指示所述VPN服务器将来自所述移动应用的所述一个或多个消息发射到所述接入网关的所述计算机程序当由所述至少一个处理器执行时致使所述设备:
指示所述至少一个动态端口处的所述VPN服务器根据用于将所述一个或多个消息发射到所述专用网络的所述通信链路的隧道协议从所述一个或多个消息产生一个或多个包;以及
指示所述VPN服务器经由所述通信链路将根据所述隧道协议处理的所述一个或
多个包发射到所述专用网络。
21.一种非暂时性计算机可读存储媒体,其存储计算机程序,所述计算机程序当由数据处理系统的一个或多个处理器执行时致使所述数据处理系统执行:
确定所述数据处理系统上执行的应用请求与专用网络通信;
拦截由所述数据处理系统上执行的所述应用发布的与所述专用网络通信的一个或多个系统调用;
通过将不同动态端口指派到请求与所述专用网络通信的多个应用中的每一个而分配动态端口以用于投送来自所述应用的通信;
在所分配的动态端口上产生到虚拟专用网络VPN服务器的通信链路,经由所述通信链路将来自所述应用的通信发射到所述专用网络;以及
指示所述VPN服务器将来自所述应用的一个或多个消息发射到接入网关以供转发到所述专用网络。
22.根据权利要求21所述的非暂时性计算机可读存储媒体,其中分配所述动态端口包括:
识别与所述一个或多个系统调用相关联的至少一个消息的目的地网络地址;以及
使用目的地网络地址到所述数据处理系统的动态端口的映射来识别待用于将来自所述应用的通信投送到所述专用网络的所述动态端口,其中所述动态端口对应于目的地网络地址的所述映射中所述至少一个消息的所述目的地网络地址。
23.根据权利要求21所述的非暂时性计算机可读存储媒体,其中所述VPN服务器是发射控制协议TCP服务器,且其中产生到所述VPN服务器的所述通信链路进一步包括:
在所述动态端口上产生所述TCP服务器;以及
产生所述动态端口和所述TCP服务器之间的TCP连接。
24.根据权利要求21所述的非暂时性计算机可读存储媒体,进一步包括当由所述一个或多个处理器执行时还致使所述数据处理系统执行以下操作的计算机程序:
确定所述一个或多个消息指定到多个不同网络地址;
产生多个TCP服务器,其中所述多个TCP服务器的每一TCP服务器在所述数据处理系统的不同动态端口上产生,且其中多个动态端口的每一动态端口被产生以针对所述多个不同网络地址中的每一个将来自所述应用的通信发射到所述专用网络;以及
产生多个TCP连接,其中每一TCP连接对应于经由其将来自所述应用的通信从所述多个动态端口中的每一个发射到所述专用网络的通信链路。
25.根据权利要求21所述的非暂时性计算机可读存储媒体,进一步包括当由所述一个或多个处理器执行时还致使所述数据处理系统执行以下操作的计算机程序:
分配所述数据处理系统的固定端口以用于将来自第二移动应用的通信投送到所述专用网络;以及
在所述数据处理系统的所述固定端口上产生用户数据报协议UDP服务器,经由所述UDP服务器将来自所述第二移动应用的通信发射到所述专用网络,且其中产生到所述VPN服务器的所述通信链路进一步包括:
产生所述固定端口和所述UDP服务器之间的UDP连接。
26.根据权利要求21所述的非暂时性计算机可读存储媒体,包括当由所述一个或多个处理器执行时还致使所述数据处理系统执行以下操作的计算机程序:
确定来自所述应用的所述一个或多个消息指定给所述专用网络;以及
将所述一个或多个消息的有效负载发射到所述数据处理系统的所述动态端口处的所述VPN服务器。
27.根据权利要求21所述的非暂时性计算机可读存储媒体,其中指示所述VPN服务器将来自所述应用的所述一个或多个消息发射到所述接入网关进一步包括:
指示所述动态端口处的所述VPN服务器根据用于将所述一个或多个消息发射到所述专用网络的所述通信链路的隧道协议从所述一个或多个消息产生一个或多个包;
以及
指示所述VPN服务器经由所述通信链路将根据所述隧道协议处理的所述一个或
多个包发射到所述专用网络。
28.一种非暂时性计算机可读存储媒体,其存储计算机程序,所述计算机程序当执行时致使移动装置执行方法,所述方法包括:
由所述移动装置的处理器确定所述移动装置上执行的移动应用请求与专用网络通信;
由所述处理器拦截由所述移动装置上执行的所述移动应用发布的与所述专用网络通信的一个或多个系统调用;
响应于确定所述一个或多个系统调用寻址到域套接字路径,用对应于所述移动应用的沙盒路径替换所述一个或多个系统调用中的所述域套接字路径;
由所述处理器产生到所述沙盒路径处的虚拟专用网络VPN服务器的通信链路,经由所述通信链路将来自所述移动应用的通信发射到所述专用网络;以及
由所述处理器指示所述VPN服务器将来自所述移动应用的一个或多个消息发射到接入网关以供转发到所述专用网络。
29.根据权利要求28所述的非暂时性计算机可读存储媒体,所述方法进一步包括:
由所述处理器确定所述一个或多个系统调用包括寻址到系统层级DNS过程的至少一个DNS询问;以及
其中用所述沙盒路径替换所述一个或多个系统调用中的所述域套接字路径进一步包括:
由所述处理器在本地域套接字处产生所述沙盒路径,经由所述沙盒路径将来自所述移动应用的通信发射到所述专用网络;以及
由所述处理器且针对所述移动应用产生以通信方式耦合到所述本地域套接字的所述VPN服务器。
30.根据权利要求29所述的非暂时性计算机可读存储媒体,所述方法进一步包括:
由所述处理器在以通信方式耦合到所述本地域套接字的所述VPN服务器处产生应用特定DNS过程。
31.根据权利要求29所述的非暂时性计算机可读存储媒体,所述方法进一步包括:
由所述处理器识别与所述一个或多个系统调用相关联的至少一个消息的目的地网络地址;以及
由所述处理器将所述至少一个消息发射到以通信方式耦合到所述本地域套接字的所述VPN服务器以进行DNS解析;以及
由所述处理器指示所述VPN服务器处的应用特定DNS过程将所述一个或多个消息发射到所述接入网关以供转发到所述专用网络。
32.根据权利要求28所述的非暂时性计算机可读存储媒体,其中指示所述VPN服务器将来自所述移动应用的所述一个或多个消息发射到所述接入网关进一步包括:
由所述处理器指示所述沙盒路径处的所述VPN服务器根据用于将所述一个或多个消息发射到所述专用网络的所述通信链路的DNS协议从所述一个或多个消息产生一个或多个包;以及
由所述处理器指示所述VPN服务器经由所述通信链路将根据所述DNS协议处理的所述一个或多个包发射到所述专用网络。
33.根据权利要求28所述的非暂时性计算机可读存储媒体,所述方法进一步包括:
由所述处理器确定来自所述移动装置上执行的多个不同移动应用的多个不同消息指定给所述专用网络;
由所述处理器产生多个沙盒路径,其中所述多个沙盒路径的每一沙盒路径在多个本地域套接字的不同本地域套接字处产生以将来自所述多个不同移动应用的对应移动应用的通信发射到所述专用网络;
由所述处理器且针对所述移动应用产生多个VPN服务器,其中所述多个VPN服务器中的每一个以通信方式耦合到所述多个本地域套接字的对应本地域套接字;以及
由所述处理器产生多个应用特定DNS过程,其中每一应用特定DNS过程在所述多个VPN服务器的以通信方式耦合到所述多个本地域套接字的对应本地域套接字的对应VPN服务器处执行。
34.根据权利要求29所述的非暂时性计算机可读存储媒体,所述方法进一步包括:
响应于确定所述至少一个DNS询问需要由所述系统层级DNS过程解析,由所述处理器将与所述一个或多个系统调用相关联的至少一个消息发射到所述系统层级DNS过程以进行DNS解析。
35.一种移动装置,包括:
处理器;以及
存储器,其存储计算机程序,所述计算机程序当由所述处理器执行时致使所述移动装置执行:
由所述处理器确定所述移动装置上执行的移动应用请求与专用网络通信;
由所述处理器拦截由所述移动装置上执行的所述移动应用发布的与所述专用网络通信的一个或多个系统调用;
响应于确定所述一个或多个系统调用寻址到域套接字路径,用对应于所述移动应用的沙盒路径替换所述一个或多个系统调用中的所述域套接字路径;
由所述处理器产生到所述沙盒路径处的虚拟专用网络VPN服务器的通信链路,经由所述通信链路将来自所述移动应用的通信发射到所述专用网络;以及
由所述处理器指示所述VPN服务器将来自所述移动应用的一个或多个消息发射到接入网关以供转发到所述专用网络。
36.根据权利要求35所述的移动装置,其中所述计算机程序当由所述处理器执行时还致使所述移动装置执行:
由所述处理器确定所述一个或多个系统调用包括寻址到系统层级DNS过程的至少一个DNS询问;以及
其中用所述沙盒路径替换所述一个或多个系统调用中的所述域套接字路径进一步包括:
由所述处理器在本地域套接字处产生所述沙盒路径,经由所述沙盒路径将来自所述移动应用的通信发射到所述专用网络;以及
由所述处理器且针对所述移动应用产生以通信方式耦合到所述本地域套接字的所述VPN服务器。
37.根据权利要求36所述的移动装置,其中所述计算机程序当由所述处理器执行时还致使所述移动装置执行:
由所述处理器在以通信方式耦合到所述本地域套接字的所述VPN服务器处产生应用特定DNS过程。
38.根据权利要求36所述的移动装置,其中所述计算机程序当由所述处理器执行时还致使所述移动装置执行:
由所述处理器识别与所述一个或多个系统调用相关联的至少一个消息的目的地网络地址;以及
由所述处理器将所述至少一个消息发射到以通信方式耦合到所述本地域套接字的所述VPN服务器以进行DNS解析;以及
由所述处理器指示所述VPN服务器处的应用特定DNS过程将所述一个或多个消息发射到所述接入网关以供转发到所述专用网络。
39.根据权利要求35所述的移动装置,其中指示所述VPN服务器将来自所述移动应用的所述一个或多个消息发射到所述接入网关进一步包括:
由所述处理器指示所述沙盒路径处的所述VPN服务器根据用于将所述一个或多个消息发射到所述专用网络的所述通信链路的DNS协议从所述一个或多个消息产生一个或多个包;以及
由所述处理器指示所述VPN服务器经由所述通信链路将根据所述DNS协议处理的所述一个或多个包发射到所述专用网络。
40.根据权利要求35所述的移动装置,其中所述计算机程序当由所述处理器执行时还致使所述移动装置执行:
由所述处理器确定来自所述移动装置上执行的多个不同移动应用的多个不同消息指定给所述专用网络;
由所述处理器产生多个沙盒路径,其中所述多个沙盒路径的每一沙盒路径在多个本地域套接字的不同本地域套接字处产生以将来自所述多个不同移动应用的对应移动应用的通信发射到所述专用网络;
由所述处理器且针对所述移动应用产生多个VPN服务器,其中所述多个VPN服务器中的每一个以通信方式耦合到所述多个本地域套接字的对应本地域套接字;以及
由所述处理器产生多个应用特定DNS过程,其中每一应用特定DNS过程在所述多个VPN服务器的以通信方式耦合到所述多个本地域套接字的对应本地域套接字的对应VPN服务器处执行。
41.根据权利要求36所述的移动装置,其中所述计算机程序当由所述处理器执行时还致使所述移动装置执行:
响应于确定所述至少一个DNS询问需要由所述系统层级DNS过程解析,由所述处理器将与所述一个或多个系统调用相关联的至少一个消息发射到所述系统层级DNS过程以进行DNS解析。
CN201680033578.4A 2015-05-11 2016-05-10 用于移动平台的隧穿的方法、设备和计算机可读存储媒体 Active CN107690793B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/708,464 US9735943B2 (en) 2015-05-11 2015-05-11 Micro VPN tunneling for mobile platforms
US14/708,464 2015-05-11
PCT/US2016/031580 WO2016183049A1 (en) 2015-05-11 2016-05-10 Micro vpn tunneling for mobile platforms

Publications (2)

Publication Number Publication Date
CN107690793A CN107690793A (zh) 2018-02-13
CN107690793B true CN107690793B (zh) 2019-05-03

Family

ID=56069264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680033578.4A Active CN107690793B (zh) 2015-05-11 2016-05-10 用于移动平台的隧穿的方法、设备和计算机可读存储媒体

Country Status (6)

Country Link
US (2) US9735943B2 (zh)
EP (1) EP3295643B8 (zh)
JP (1) JP6594449B2 (zh)
KR (1) KR102115837B1 (zh)
CN (1) CN107690793B (zh)
WO (1) WO2016183049A1 (zh)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9386447B2 (en) 2009-07-21 2016-07-05 Scott Ferrill Tibbitts Method and system for controlling a mobile communication device
US8761821B2 (en) 2009-07-21 2014-06-24 Katasi Llc Method and system for controlling a mobile communication device in a moving vehicle
US9615213B2 (en) 2009-07-21 2017-04-04 Katasi Llc Method and system for controlling and modifying driving behaviors
US11863529B2 (en) * 2011-09-09 2024-01-02 Kingston Digital, Inc. Private cloud routing server connection mechanism for use in a private communication architecture
US11290425B2 (en) * 2016-02-01 2022-03-29 Airwatch Llc Configuring network security based on device management characteristics
US10528734B2 (en) 2016-03-25 2020-01-07 The Mitre Corporation System and method for vetting mobile phone software applications
US20210105275A1 (en) * 2016-03-28 2021-04-08 Zscaler, Inc. Adaptive multipath tunneling in cloud-based systems
US10361970B2 (en) * 2016-08-15 2019-07-23 Fujitsu Limited Automated instantiation of wireless virtual private networks
US10630555B1 (en) * 2016-08-26 2020-04-21 Berryville Holdings, LLC Network appliance for providing configurable virtual private network connections
US11477159B1 (en) 2016-12-28 2022-10-18 Verisign, Inc. Systems, devices, and methods for polymorphic domain name resolution
US10310872B2 (en) * 2017-02-21 2019-06-04 Red Hat, Inc. Transparent fast application launcher
CN107038358B (zh) * 2017-04-20 2020-12-25 北京安云世纪科技有限公司 一种自启动处理方法和装置及移动终端
WO2018227899A1 (zh) * 2017-06-14 2018-12-20 北京小米移动软件有限公司 应用交互方法、交互方法及装置
US11283694B2 (en) * 2017-07-20 2022-03-22 Movius Interactive Corportion System and method providing usage analytics for a mobile device
US10798059B1 (en) 2017-10-06 2020-10-06 Juniper Networks, Inc Apparatus, system, and method for applying firewall rules at dynamic offsets within packets in kernel space
US10581798B2 (en) 2017-10-27 2020-03-03 At&T Intellectual Property I, L.P. Network based distribution for compute resource and application accessibility
US10666616B2 (en) * 2017-10-31 2020-05-26 Ca, Inc. Application identification and control in a network device
US11190492B2 (en) * 2017-12-01 2021-11-30 Twingate, Inc. Local interception of traffic to a remote forward proxy
WO2019183522A1 (en) 2018-03-22 2019-09-26 Akamai Technologies, Inc. Traffic forwarding and disambiguation by using local proxies and addresses
CN108959902A (zh) * 2018-06-07 2018-12-07 北京百悟科技有限公司 一种多系统集成平台和方法、计算机可读存储介质
US10958480B2 (en) 2018-07-19 2021-03-23 Vmware, Inc. Per-app virtual private network tunnel for multiple processes
US11082254B2 (en) * 2018-08-07 2021-08-03 Dh2I Company User datagram protocol tunneling in distributed application instances
WO2020091736A1 (en) * 2018-10-30 2020-05-07 Hewlett Packard Enterprise Development Lp Software defined wide area network uplink selection for a cloud service
CN109274684B (zh) * 2018-10-31 2020-12-29 中国—东盟信息港股份有限公司 基于eSIM通讯与导航服务为一体的物联网终端系统及其实现方法
US11283763B2 (en) 2018-12-28 2022-03-22 Mcafee, Llc On-device dynamic safe browsing
US11082451B2 (en) 2018-12-31 2021-08-03 Citrix Systems, Inc. Maintaining continuous network service
CN110278181B (zh) * 2019-01-29 2021-09-17 广州金越软件技术有限公司 一种关于跨网数据交换的即时协议转换系统
KR102158424B1 (ko) * 2019-02-11 2020-09-21 김한수 가상 사설 망 연결 장치 및 방법
US20220159432A1 (en) * 2019-03-04 2022-05-19 Katasi, Inc Method and system for detecting, monitoring, and controlling a mobile communication device
GB201904224D0 (en) * 2019-03-27 2019-05-08 Sec Dep For Foreign And Commonwealth Affairs A network filter
US11368430B2 (en) * 2019-03-29 2022-06-21 Verizon Patent And Licensing Inc. Domain name server based validation of network connections
US11362999B2 (en) * 2019-03-29 2022-06-14 Mcafee, Llc Client-only virtual private network
US11405237B2 (en) 2019-03-29 2022-08-02 Mcafee, Llc Unencrypted client-only virtual private network
CN110099403B (zh) * 2019-05-17 2022-07-19 腾讯科技(深圳)有限公司 一种数据传输方法、装置、设备及存储介质
US11575757B2 (en) 2019-06-17 2023-02-07 Dh2I Company Cloaked remote client access
US11635990B2 (en) 2019-07-01 2023-04-25 Nutanix, Inc. Scalable centralized manager including examples of data pipeline deployment to an edge system
US11501881B2 (en) 2019-07-03 2022-11-15 Nutanix, Inc. Apparatus and method for deploying a mobile device as a data source in an IoT system
WO2021060858A1 (ko) * 2019-09-24 2021-04-01 프라이빗테크놀로지 주식회사 터널 및 데이터 플로우에 기반하여 노드의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor
WO2021061942A1 (en) * 2019-09-25 2021-04-01 Valimail, Inc. Centralized session key issuance and rotation
US11463463B1 (en) * 2019-12-20 2022-10-04 NortonLifeLock Inc. Systems and methods for identifying security risks posed by application bundles
US11563802B2 (en) 2020-11-06 2023-01-24 Dh2I Company Systems and methods for hierarchical failover groups
US11726764B2 (en) 2020-11-11 2023-08-15 Nutanix, Inc. Upgrade systems for service domains
US11665221B2 (en) 2020-11-13 2023-05-30 Nutanix, Inc. Common services model for multi-cloud platform
US11983287B2 (en) * 2020-12-02 2024-05-14 Capital One Services, Llc Non-persistent data caching web server
CN112653609B (zh) * 2020-12-14 2022-05-27 北京指掌易科技有限公司 一种vpn识别应用方法、装置、终端及存储介质
US11736585B2 (en) 2021-02-26 2023-08-22 Nutanix, Inc. Generic proxy endpoints using protocol tunnels including life cycle management and examples for distributed cloud native services and applications
JP7146124B1 (ja) * 2021-03-31 2022-10-03 アドソル日進株式会社 端末装置、方法およびプログラム
US11909723B2 (en) * 2021-06-15 2024-02-20 Microsoft Technology Licensing, Llc Mobile VPN autostart through app-only management
US11489808B1 (en) 2021-08-03 2022-11-01 Oversec, Uab Providing a split-configuration virtual private network
CN113825258B (zh) * 2021-08-18 2024-04-09 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于FirefoxOS的多模通信方法及操作系统
CN116340014A (zh) * 2021-12-24 2023-06-27 北京字节跳动网络技术有限公司 函数处理方法、装置、设备及存储介质
KR102427663B1 (ko) * 2022-01-14 2022-08-02 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
US11444911B1 (en) * 2022-02-22 2022-09-13 Oversec, Uab Domain name system configuration during virtual private network connection
CN114710548B (zh) * 2022-03-22 2024-04-05 阿里巴巴(中国)有限公司 报文转发方法及装置
CN117354276A (zh) * 2022-06-27 2024-01-05 中移(杭州)信息技术有限公司 一种网络穿透系统的启动方法及报文收发方法、通信设备
CN115278925A (zh) * 2022-07-04 2022-11-01 广西电网有限责任公司桂林供电局 一种基于4g通信的无固定ip数据互通方法及系统
CN115277838B (zh) * 2022-07-28 2024-01-02 天翼云科技有限公司 云缓存数据库服务方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101416171A (zh) * 2004-06-30 2009-04-22 塞特里克斯网络应用有限责任公司 用于建立虚拟专用网络的系统和方法
CN101523865A (zh) * 2006-08-03 2009-09-02 思杰系统有限公司 用于使用http-察觉的客户端代理的系统和方法
CN102333306A (zh) * 2010-06-30 2012-01-25 丛林网络公司 用于移动设备的多服务vpn网络客户端
CN103840994A (zh) * 2012-11-23 2014-06-04 华耀(中国)科技有限公司 一种用户端通过 vpn 访问内网的系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7317717B2 (en) * 2004-04-26 2008-01-08 Sprint Communications Company L.P. Integrated wireline and wireless end-to-end virtual private networking
US8997208B2 (en) 2013-08-15 2015-03-31 Mocana Corporation Gateway device for terminating a large volume of VPN connections

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101416171A (zh) * 2004-06-30 2009-04-22 塞特里克斯网络应用有限责任公司 用于建立虚拟专用网络的系统和方法
CN101523865A (zh) * 2006-08-03 2009-09-02 思杰系统有限公司 用于使用http-察觉的客户端代理的系统和方法
CN102333306A (zh) * 2010-06-30 2012-01-25 丛林网络公司 用于移动设备的多服务vpn网络客户端
CN103840994A (zh) * 2012-11-23 2014-06-04 华耀(中国)科技有限公司 一种用户端通过 vpn 访问内网的系统及方法

Also Published As

Publication number Publication date
EP3295643B1 (en) 2019-12-11
US9954664B2 (en) 2018-04-24
JP6594449B2 (ja) 2019-10-23
KR20180006413A (ko) 2018-01-17
EP3295643B8 (en) 2020-02-26
US20170310445A1 (en) 2017-10-26
EP3295643A1 (en) 2018-03-21
US9735943B2 (en) 2017-08-15
JP2018525858A (ja) 2018-09-06
US20160337104A1 (en) 2016-11-17
CN107690793A (zh) 2018-02-13
WO2016183049A1 (en) 2016-11-17
KR102115837B1 (ko) 2020-06-05

Similar Documents

Publication Publication Date Title
CN107690793B (zh) 用于移动平台的隧穿的方法、设备和计算机可读存储媒体
US11722465B2 (en) Password encryption for hybrid cloud services
KR102038842B1 (ko) 관리 브라우저 제공
CN109155781A (zh) 对托管应用程序的动态访问
CN105637523B (zh) 安全客户端驱动映射和文件存储系统
CN109558721A (zh) 客户端应用程序的安全单点登录和条件访问
CN105308923B (zh) 对具有多操作模式的应用的数据管理
CN106471783B (zh) 经由网关的企业系统认证和授权
EP2979417B1 (en) Providing mobile device management functionalities
CN109074274A (zh) 虚拟浏览器集成
US20160191645A1 (en) Containerizing Web Applications for Managed Execution
JP2017168109A (ja) クラウド同期型データの使用によるネイティブデスクトップの提供
US20140297840A1 (en) Providing mobile device management functionalities
CN105340309A (zh) 具有多个操作模式的应用
CN105378744A (zh) 在企业系统中的用户和设备认证
CN106031128B (zh) 移动设备管理的方法和装置
CN107924431B (zh) 匿名应用程序包装
CN107636603A (zh) 基于位置的装置可用性
US8813179B1 (en) Providing mobile device management functionalities

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