CN111934972B - 应用程序vpn管理方法、装置及电子设备 - Google Patents

应用程序vpn管理方法、装置及电子设备 Download PDF

Info

Publication number
CN111934972B
CN111934972B CN202010810058.8A CN202010810058A CN111934972B CN 111934972 B CN111934972 B CN 111934972B CN 202010810058 A CN202010810058 A CN 202010810058A CN 111934972 B CN111934972 B CN 111934972B
Authority
CN
China
Prior art keywords
application program
vpn
tunnel
target application
component
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
CN202010810058.8A
Other languages
English (en)
Other versions
CN111934972A (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.)
Beijing Zhizhangyi Technology Co ltd
Original Assignee
Beijing Zhizhangyi Technology Co ltd
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 Beijing Zhizhangyi Technology Co ltd filed Critical Beijing Zhizhangyi Technology Co ltd
Priority to CN202010810058.8A priority Critical patent/CN111934972B/zh
Publication of CN111934972A publication Critical patent/CN111934972A/zh
Application granted granted Critical
Publication of CN111934972B publication Critical patent/CN111934972B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/12Setup of transport tunnels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/30Connection release
    • H04W76/32Release of transport tunnels

Abstract

本申请提供一种应用程序VPN管理方法、装置及电子设备,涉及虚拟专用网络技术领域。方法包括:获取需要VPN服务的应用程序、隧道管理组件及动态库组件;将隧道管理组件及动态库组件添加于应用程序中,得到目标应用程序,动态库组件用于监听目标应用程序的运行状态,并在运行状态表征目标应用程序进入前台时,通过隧道管理组件启动VPN隧道,或者在运行状态表征目标应用程序进入后台时,通过隧道管理组件注销VPN隧道,基于此,目标应用程序可以在进入前台时,通过隧道管理组件自动启动VPN隧道,从而实现VPN的访问,能够改善在应用程序上配置VPN存在限制的问题。

Description

应用程序VPN管理方法、装置及电子设备
技术领域
本发明涉及虚拟专用网络技术领域,具体而言,涉及一种应用程序VPN管理方法、装置及电子设备。
背景技术
虚拟专用网络(Virtual Private Network,VPN)是在公用网络上建立专用网络,进行加密通讯。目前,移动终端的应用程序需要VPN服务时,可以对整个移动终端配置VPN,实现设备级VPN的配置。该方式下,移动终端的任何进程均有可能通过VPN隧道提供的路由传输流量,不利于保护移动终端的隐私信息。因此,存在在移动终端的应用程序单独上配置VPN的需求,以使应用程序通过VPN访问数据。目前在应用程序上配置VPN存在限制,不便于在应用程序上配置VPN。例如,在应用程序上配置VPN时,通常是将移动终端的身份标识注册到移动设备管理(Mobile Device Management,MDM)系统中。普通用户一般不会注册将移动设备注册到MDM中,从而无法对相应的应用程序配置VPN。
发明内容
本申请提供一种应用程序VPN管理方法、装置及电子设备,能够改善在应用程序上配置VPN存在限制的问题。
为了实现上述目的,本申请实施例所提供的技术方案如下所示:
第一方面,本申请实施例提供一种应用程序VPN管理方法,应用于开发终端,所述方法包括:
获取需要VPN服务的应用程序、隧道管理组件及动态库组件;
将所述隧道管理组件及所述动态库组件添加于所述应用程序中,得到目标应用程序,所述动态库组件用于监听所述目标应用程序的运行状态,并在所述运行状态表征所述目标应用程序进入前台时,通过所述隧道管理组件启动VPN隧道,或者在所述运行状态表征所述目标应用程序进入后台时,通过所述隧道管理组件注销VPN隧道。
在本实施例中,通过在应用程序中添加隧道管理组件及动态库组件,以得到目标应用程序,基于此,目标应用程序可以在进入前台时,通过隧道管理组件自动启动VPN隧道,从而实现VPN的访问,能够改善在应用程序上配置VPN存在限制的问题。
结合第一方面,在一些可选的实施方式中,在获取需要VPN服务的应用程序、隧道管理组件及动态库组件之前,所述方法还包括:
根据终端设备操作系统的应用程序接口,创建所述隧道管理组件及所述动态库组件。
在上述的实施方式中,隧道管理组件及动态库组件可以用于添加在应用程序中,以使得到的目标应用程序具有提供VPN服务的能力。
结合第一方面,在一些可选的实施方式中,所述方法还包括:
运行所述目标应用程序,通过所述动态库组件,监听所述目标应用程序的运行状况;
当所述运行状态表征所述目标应用程序进入前台时,通过所述隧道管理组件启动VPN隧道,以建立VPN连接;
当所述运行状态表征所述目标应用程序进入后台时,通过所述隧道管理组件注销VPN隧道,以断开所述VPN连接。
在上述的实施方式中,动态库组件可以用于监控目标应用程序的运行状况,可以在目标应用程序进入后台时,自动注销VPN隧道,避免目标应用程序在后台时,仍开启VPN而占用VPN服务器的服务资源。
结合第一方面,在一些可选的实施方式中,所述方法还包括:
通过所述VPN隧道从VPN服务器接收数据,或发送数据至所述VPN服务器。
在上述的实施方式中,在得到目标应用程序后,便可以在启动VPN隧道时,访问VPN服务器,实现与VPN服务器的交互。
结合第一方面,在一些可选的实施方式中,获取需要VPN服务的应用程序、隧道管理组件及动态库组件,包括:
从服务器获取需要VPN服务的所述应用程序、所述隧道管理组件及所述动态库组件。
在上述的实施方式中,通过服务器存储需要VPN服务的应用程序、隧道管理组件及动态库组件,便于远程获取需要VPN服务的应用程序、隧道管理组件及动态库组件。
结合第一方面,在一些可选的实施方式中,将所述隧道管理组件及所述动态库组件添加于所述应用程序中,得到目标应用程序,包括:
通过重签名机制,将所述隧道管理组件及所述动态库组件添加于所述应用程序中,得到所述目标应用程序。
在上述的实施方式中,通过重签名机制,对目标应用程序进行认证签名,以提高目标应用程序的可靠性,便于推广目标应用程序。
第二方面,本申请实施例还提供一种应用程序VPN管理方法,应用于移动终端,所述移动终端安装有上述的目标应用程序,所述方法还包括:
通过所述目标应用程序中的动态库组件,监听所述目标应用程序的运行状况;
当所述运行状态表征所述目标应用程序进入前台时,通过所述目标应用程序中的隧道管理组件启动VPN隧道,以建立VPN连接;
当所述运行状态表征所述目标应用程序进入后台时,通过所述隧道管理组件注销VPN隧道,以断开所述VPN连接。
第三方面,本申请实施例还提供一种应用程序VPN管理装置,所述装置包括:
获取单元,用于获取需要VPN服务的应用程序、隧道管理组件及动态库组件;
添加单元,用于将所述隧道管理组件及所述动态库组件添加于所述应用程序中,得到目标应用程序,所述动态库组件用于监听所述目标应用程序的运行状态,并在所述运行状态表征所述目标应用程序进入前台时,通过所述隧道管理组件启动VPN隧道,或者在所述运行状态表征所述目标应用程序进入后台时,通过所述隧道管理组件注销VPN隧道。
第四方面,本申请实施例还提供一种电子设备,所述电子设备包括相互耦合的存储器、处理器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行上述的方法。
第五方面,本申请实施例还提供一种计算机可读存储介质,所述可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的开发终端的结构示意图。
图2为本申请实施例提供的应用程序VPN管理方法的流程示意图之一
图3为本申请实施例提供的应用程序VPN管理装置的功能框图。
图4为本申请实施例提供的应用程序VPN管理方法的流程示意图之二
图标:10-电子设备;11-处理模块;12-存储模块;13-通信模块;100-应用程序VPN管理装置;110-获取单元;120-添加单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
申请人发现,在iOS系统中,当需要在移动终端的应用程序上单独配置VPN时,需要将移动终端/开发终端的身份标识注册到移动设备管理(Mobile Device Management,MDM)系统中,然后才能配置VPN;而普通用户通常不会将移动终端/开发终端的身份标识注册到MDM中,从而无法实现应用程序上配置VPN。鉴于上述问题,本申请申请人经过长期研究探索,提出以下实施例以解决上述问题。下面结合附图,对本申请实施例作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
第一实施例
请参照图1,本申请实施例提供一种电子设备10,电子设备10可以包括相互耦合的处理模块11、存储模块12,存储模块12内存储计算机程序,当计算机程序被处理模块11执行时,使得电子设备10可以执行下述的应用程序VPN管理方法中的各步骤。
在本实施例中,电子设备10还可以包括其他模块,例如还可以包括通信模块13、应用程序VPN管理装置100,处理模块11、存储模块12、通信模块13以及应用程序VPN管理装置100各个元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
电子设备10可以是开发终端,或者移动终端,电子设备10的操作系统可以为MacOS系统或iOS系统。其中,开发终端可以是,但不限于,智能手机、个人电脑(PersonalComputer,PC)、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动上网设备(Mobile Internet Device,MID)等。
在本实施例中,处理模块11可以是一种集成电路芯片,具有信号的处理能力。上述处理模块11可以是通用处理器。例如,该处理器可以是中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。
存储模块12可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。在本实施例中,存储模块12可以用于存储需要VPN服务的应用程序、隧道管理组件及动态库组件。当然,存储模块12还可以用于存储其他程序,处理模块11在接收到执行指令后,执行该程序。
通信模块13用于通过网络建立电子设备10与VPN服务器的通信连接,并通过网络收发数据。
其中,VPN服务器可以基于VPN隧道,通过加密通讯协议给位于不同地理位置的内网(如企业内网、校园内网)、电子设备10搭建一条专有的通讯桥梁,以使安装有相应的应用程序的电子设备10可以通过该应用程序访问内网的网络资源。其中,VPN服务器的工作原理为本领域技术人员所熟知,这里不再赘述。
请参照图2,本申请实施例还提供一种应用程序VPN管理方法,可以应用于上述的开发终端,由开发终端执行或实现方法中的各步骤。方法可以包括以下步骤:
步骤S210,获取需要VPN服务的应用程序、隧道管理组件及动态库组件;
步骤S220,将所述隧道管理组件及所述动态库组件添加于所述应用程序中,得到目标应用程序,所述动态库组件用于监听所述目标应用程序的运行状态,并在所述运行状态表征所述目标应用程序进入前台时,通过所述隧道管理组件启动VPN隧道,或者在所述运行状态表征所述目标应用程序进入后台时,通过所述隧道管理组件注销VPN隧道。
在本实施例中,通过在应用程序中添加隧道管理组件及动态库组件,以得到目标应用程序,基于此,无需用户将移动终端/开发终端的身份标识注册到移动设备管理系统中,目标应用程序可以在进入前台时,通过隧道管理组件自动启动VPN隧道,从而实现VPN的访问,能够改善在应用程序上配置VPN存在限制的问题。
下面将对方法中的各步骤进行详细阐述,如下:
在步骤S210中,开发终端可以获取到需要VPN服务的应用程序、隧道管理组件及动态库组件。其中,隧道管理组件可以理解为一种程序插件,可以在启动后,监听所述目标应用程序的运行状态。动态库组件可理解为另一种程序插件,可以在启动后,在隧道管理组件的控制下,启动VPN隧道或注销VPN隧道。比如,动态库组件监听到目标应用程序进入前台时,通过所述隧道管理组件启动VPN隧道,或者在目标应用程序进入后台时,通过隧道管理组件注销VPN隧道。启动VPN隧道后,便可以利用目标应用程序通过VPN隧道访问相应的VPN服务器;注销VPN隧道后,便无法提供VPN服务,也就无法通过VPN隧道访问相应的VPN服务器。
在本实施例中,开发终端的存储模块中,预先存储有需要VPN服务的应用程序、隧道管理组件及动态库组件,当需要获取这类数据时,开发终端可以从本地的存储模块获取到需要VPN服务的应用程序、隧道管理组件及动态库组件等。
作为一种可选的实施方式,步骤S210可以包括:从服务器获取需要VPN服务的所述应用程序、所述隧道管理组件及所述动态库组件。
例如,需要VPN服务的应用程序、隧道管理组件及动态库组件预先存储于服务器中,开发终端与该服务器通过网络建立有通信连接。当需要对相应的应用程序进行VPN配置时,便可以从服务器获取到需要VPN服务的应用程序、隧道管理组件及动态库组件。其中,在执行步骤S210之前,需要VPN服务的应用程序、隧道管理组件及动态库组件可以存储于同一设备,或者可以存储于不同设备,可以根据实际情况进行存储,这里不作具体限定。
通常而言,不同的应用程序的隧道管理组件及动态库组件存在差异,比如,不同应用程序对应的VPN服务器不相同时,隧道管理组件及动态库组件便存在差异。
在本实施例中,需要VPN服务的应用程序、隧道管理组件及动态库组件,三者之间可以预先建立有关联关系。例如,需要VPN服务的应用程序设置有唯一的第一身份标识,与该应用程序对应的隧道管理组件设置有唯一的第二身份标识,与该应用程序对应的动态库组件设置有唯一的第三身份标识,可以通过将第二身份标识、第三身份标识与第一身份标识进行绑定(当然,在其他实施方式中,还可以通过其他方式进行绑定,例如,第一身份标识、第二身份标识与第三身份标识进行绑定),从而建立得到应用程序、隧道管理组件及动态库组件之间的关联关系。如此,针对不同的应用程序,开发终端可以基于该关联关系,获取到与应用程序的第一身份标识对应的隧道管理组件及动态库组件,能够快速准确地找到与应用程序匹配的隧道管理组件及动态库组件。即,所获取的隧道管理组件及动态库组件是能够适用于该应用程序,而不是无法适用于该应用程序。
在步骤S220中,开发终端所获取到的需要VPN服务的应用程序通常为一个封装后的程序包。在添加隧道管理组件及动态库组件时,需要将应用程序包进行解封,然后在解封后的文件夹中,将隧道管理组件添加于第一文件夹目录下,将动态库组件添加于第二文件夹目录下。第一文件夹目录、第二文件夹目录可以根据实际情况进行设置,通常为不同的目录。示例性地,第一文件夹目录为“Payload/A.app/Plugins/”,第二文件夹目录为“Payload/A.app/”。然后再将解封后的文件夹进行封装,得到目标应用程序。在得到目标应用程序后,在打开运行目标应用程序后,无论目标应用程序是在前台运行还是在后台运行,隧道管理组件及动态库组件均处于开启状态,动态库组件可以检测目标应用程序的运行状态。当目标应用程序彻底关闭后,也就是目标应用程序退出前台与后台时,隧道管理组件及动态库组件便处于关闭状态。运行状态包括目标应用程序进入前台的第一工作状态或目标应用程序进入后台的第二工作状态。
作为一种可选的实施方式,在步骤S210之前,方法还可以包括:根据终端设备操作系统的应用程序接口,创建所述隧道管理组件及所述动态库组件。
开发终端上可以相应的软件工具,用于创建隧道管理组件及动态库组件,软件工具可以根据实际情况进行选择。例如,可以为Xcode软件工具。可理解地,Xcode是一种运行在操作系统Mac OS集成开发环境(Integrated Development Environment,IDE)工具,可以用于根据终端设备操作系统的应用程序接口(Application Programming Interface,API),创建隧道管理组件及动态库组件。其中,创建得到的隧道管理组件及动态库组件可以存储与服务器中,以便于后续需要相同的隧道管理组件及动态库组件时,可以直接从服务器获取隧道管理组件及动态库组件,而无需再单独创建。另外,隧道管理组件及动态库组件可以设置有相应的身份标识,以便于与适用该隧道管理组件及动态库组件的应用程序建立关联关系。
作为一种可选的实施方式,步骤S220可以包括:通过重签名机制,将所述隧道管理组件及所述动态库组件添加于所述应用程序中,得到所述目标应用程序。
例如,目标应用程序运行的操作系统为iOS系统时,在添加隧道管理组件及动态库组件的过程中,基于重签名机制,先将应用程序包进行解封,然后将隧道管理组件及动态库组件添加于应用程序,然后进行封装,并通过重签名机制进行认证,认证通过后的应用程序即为目标应用程序。其中,重签名机制为本领域技术人员所熟知,这里不再赘述。
另外,得到的目标应用程序可以发送至应用商店服务器。需要下载该目标应用程序的用户,可以通过移动终端从应用商店服务器下载目标应用程序,然后安装使用目标应用程序,如此,便可以基于目标应用程序实现VPN的访问服务。
基于上述设计,开发用户无需将移动终端/开发终端的身份标识注册到移动设备管理系统中,也可以通过上述的方法,对需要VPN服务的应用程序单独配置VPN。另外,开发用户也无需对运行目标应用程序的整个电子设备进行设备级的VPN配置,以提高电子设备隐私数据的安全性,避免整个电子设备在设备级VPN的工作模式下,电子设备的任何进程均有可能通过VPN隧道提供的路由传输流量,从而增大隐私数据泄露的风险。其中,进行设备级的VPN配置的方式为本领域技术人员所熟知,这里不再赘述。
作为一种可选的实施方式,方法还可以包括:运行所述目标应用程序,通过所述动态库组件,监听所述目标应用程序的运行状况;当所述运行状态表征所述目标应用程序进入前台时,通过所述隧道管理组件启动VPN隧道,以建立VPN连接;当所述运行状态表征所述目标应用程序进入后台时,通过所述隧道管理组件注销VPN隧道,以断开所述VPN连接。
在上述的实施方式中,动态库组件可以用于监控目标应用程序的运行状况,可以在目标应用程序进入后台时,自动注销VPN隧道,避免目标应用程序在后台时,仍开启VPN而占用VPN服务器的服务资源。可理解地,对于单个或少量应用程序需要配置VPN服务的场景,通过对每个应用程序配置设备级VPN,结合对VPN启动、注销的控制来达到为应用程序单独配置VPN的效果。由于无需对整个电子设备配置设备级VPN,因此,可以减少以及避免其他应用程序的流量都经过VPN服务器处理,以减轻VPN服务器的负担。
在目标应用程序进入前台时,隧道管理组件启动VPN隧道,使得电子设备可以与VPN服务器建立通信连接,实现VPN的访问。此时,电子设备通过VPN隧道从VPN服务器接收数据,或发送数据至所述VPN服务器。电子设备所接收/发送的数据可以根据实际情况进行确定,这里不作具体限定。基于此,便可以使得普通用户(开发者)无需将移动终端/开发终端的身份标识注册到MDM中,也可以在应用程序上实现配置VPN的配置,改善在应用程序上配置VPN存在限制的问题。
为便于理解方法的实现过程,下面将以应用程序的运行的操作系统为iOS系统为例,进行举例阐述应用程序配置VPN的实现过程,如下:
操作系统为Mac OS的开发终端,预先安装Xcode软件工具,根据iOS移动终端提供的API,创建管理类VPNManager,以及结合VPN服务器的接口创建PacketTunnel.appex(隧道管理组件)。管理类VPNManager用于管理PacketTunnel(分组隧道);比如,用于调用移动终端的启动以及注销PacketTunnel的接口:startVPNTunnel以及stopVPNTunnel。
利用Xcode工具,创建动态库组件,如“vpn.framework”插件,动态库组件用于监听目标应用程序的工作状态。在应用启动进入到前台的时候调用VPNManager类中启动PacketTunnel.appex(隧道管理组件),在应用进入后台的时候调用注销VPN的方法。
创建动态库vpn.framework,动态库组件可以用于注册监听应用程序的工作状态,例如:
当检测到“UIApplicationDidEnterBackgroundNotification”,表示目标应用程序进入后台;
当检测到“UIApplicationDidBecomeActiveNotification”,表示目标应用程序进入前台;
当检测到“UIApplicationWillTerminateNotification”,表示目标应用程序退出后台与前台,终止运行。
其中,当应用监听到目标应用程序启动进入到前台后,调用VPNManager类中启动PacketTunnel.appex(隧道管理组件),从而自动启动VPN服务。当监听到目标应用程序进入后台或者退出时,调用VPNManager类中注销VPN,主动注销VPN服务。
基于此,目标应用程序的VPN服务的启动与注销与应用的运行状态保持一致,用户使用目标应用程序时(目标应用程序进入前台),可以自动启动VPN服务,实现VPN访问;目标应用程序进入后台时,VPN主动注销。
在创建得到PacketTunnel.appex(隧道管理组件)以及vpn.framework(动态库组件)后,根据iOS应用程序的重签名原理,可以将PacketTunnel.appex以及vpn.framework注入到需要使用VPN服务的应用程序中,得到目标应用程序,如此,需要VPN服务的应用程序就具有访问VPN服务器的能力。
示例性地,将PacketTunnel.appex以及vpn.framework注入到需要使用VPN服务的应用程序的过程可以为:
比如,需要VPN的应用程序为应用A,将应用A的ipa包文件A.ipa进行解压得到文件夹Payload,解压之后将vpn.framework拷贝到解压后的文件Payload/A.app/这个目录下,将PacketTunnel.appex拷贝到Payload/A.app/Plugins/这个目录下,之后再压缩Payload文件夹得到Payload.zip,重命名为A.ipa就完成了初步的注入。此时,这个A.ipa包还不能安装到移动终端(比如智能手机)上,需要使用开发者账号中的创建好的证书跟描述文件,根据iOS的重签名原理,用开发终端自带的命令codesign进行重签名。重签名之后的包A.ipa就可以正常安装与使用。创建好的目标应用程序可以通过市面上的安装ipa包的助手工具,将应用A的ipa包安装到移动终端上,或者,通过搭建MDM服务器或者应用商店服务器,把A.ipa包下发到多个用户的移动终端,从而实现应用A的ipa包的安装与使用。
请参照图3,本申请实施例还提供一种应用程序VPN管理装置100,可以应用于电子设备中,用于执行或实现方法中的各步骤。电子设备可以为上述的开发终端或移动终端。应用程序VPN管理装置100包括至少一个可以软件或固件(Firmware)的形式存储于存储模块中或固化在电子设备操作系统(Operating System,OS)中的软件功能模块。处理模块用于执行存储模块中存储的可执行模块,例如应用程序VPN管理装置100所包括的软件功能模块及计算机程序等。例如,应用程序VPN管理装置100可以包括获取单元110、添加单元120。
获取单元110,用于获取需要VPN服务的应用程序、隧道管理组件及动态库组件。
添加单元120,用于将所述隧道管理组件及所述动态库组件添加于所述应用程序中,得到目标应用程序,所述动态库组件用于监听所述目标应用程序的运行状态,并在所述运行状态表征所述目标应用程序进入前台时,通过所述隧道管理组件启动VPN隧道,或者在所述运行状态表征所述目标应用程序进入后台时,通过所述隧道管理组件注销VPN隧道。
可选地,应用程序VPN管理装置100还可以包括创建单元。在获取单元110执行步骤S210之前,创建单元用于根据终端设备操作系统的应用程序接口,创建所述隧道管理组件及所述动态库组件。
可选地,应用程序VPN管理装置100还可以包括监听单元及隧道控制单元。监听单元用于运行所述目标应用程序,通过所述动态库组件,监听所述目标应用程序的运行状况;当所述运行状态表征所述目标应用程序进入前台时,隧道控制单元用于通过所述隧道管理组件启动VPN隧道,以建立VPN连接;或者,当所述运行状态表征所述目标应用程序进入后台时,隧道控制单元用于通过所述隧道管理组件注销VPN隧道,以断开所述VPN连接。
可选地,应用程序VPN管理装置100还可以包括数据传输单元,用于通过所述VPN隧道从VPN服务器接收数据,或发送数据至所述VPN服务器。
可选地,获取单元110可以用于从服务器获取需要VPN服务的所述应用程序、所述隧道管理组件及所述动态库组件。
可选地,应用程序VPN管理装置100还可以包括签名单元,用于通过重签名机制,将所述隧道管理组件及所述动态库组件添加于所述应用程序中,得到所述目标应用程序。
需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备、应用程序VPN管理装置100的具体工作过程,可以参考前述方法中的各步骤对应过程,在此不再过多赘述。
第二实施例
请参照图4,本申请实施例还提供另一种应用程序VPN管理方法,可以应用于上述的移动终端,其中,移动终端安装有如通过第一实施例得到的目标应用程序。移动终端可以执行方法中的各步骤。移动终端可以是但不限于智能手机、平板电脑等,例如,移动终端为iOS系统的智能手机。方法可以包括如下步骤:
步骤S310,通过所述目标应用程序中的动态库组件,监听所述目标应用程序的运行状况;
步骤S320,当所述运行状态表征所述目标应用程序进入前台时,通过所述目标应用程序中的隧道管理组件启动VPN隧道,以建立VPN连接;
步骤S330,当所述运行状态表征所述目标应用程序进入后台时,通过所述隧道管理组件注销VPN隧道,以断开所述VPN连接。
可理解地,第二实施例中,移动终端在打开目标应用程序后,执行步骤S310至步骤S330的具体过程可以参照第一实施例中开发终端打开目标应用程序后的执行过程。区别在于,在第二实施例中,目标应用程序运行在移动终端;在第一实施例中,目标应用程序运行在开发终端。第二实施例所提供的方法的实现过程与取得的技术效果与第一实施例中开发终端打开目标应用程序后的实现过程及取得的技术效果相类似,这里不再赘述。
本申请实施例还提供一种计算机可读存储介质。可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行如上述第一实施例、第二实施例中所述的应用程序VPN管理方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
综上所述,本申请提供一种应用程序VPN管理方法、装置及电子设备。方法包括:获取需要VPN服务的应用程序、隧道管理组件及动态库组件;将隧道管理组件及动态库组件添加于应用程序中,得到目标应用程序,动态库组件用于监听目标应用程序的运行状态,并在运行状态表征目标应用程序进入前台时,通过隧道管理组件启动VPN隧道,或者在运行状态表征目标应用程序进入后台时,通过隧道管理组件注销VPN隧道。在本方案中,通过在应用程序中添加隧道管理组件及动态库组件,以得到目标应用程序,基于此,目标应用程序可以在进入前台时,通过隧道管理组件自动启动VPN隧道,从而实现VPN的访问,能够改善在应用程序上配置VPN存在限制的问题。
在本申请所提供的实施例中,应该理解到,所揭露的装置、系统和方法,也可以通过其它的方式实现。以上所描述的装置、系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (8)

1.一种应用程序VPN管理方法,其特征在于,应用于开发终端,所述方法包括:
根据移动终端操作系统的应用程序接口,创建管理类,以及结合VPN服务器的接口创建隧道管理组件及动态库组件;
获取需要VPN服务的应用程序、所述隧道管理组件及所述动态库组件;
所述需要VPN服务的应用程序设置有第一身份标识,与所述应用程序对应的所述隧道管理组件设置有第二身份标识,与所述应用程序对应的所述动态库组件设置有第三身份标识,通过将第二身份标识、第三身份标识与第一身份标识进行绑定,建立得到所述应用程序、所述隧道管理组件及所述动态库组件之间的关联关系;
将所述隧道管理组件及所述动态库组件添加于所述应用程序中,得到目标应用程序,所述动态库组件用于监听所述目标应用程序的运行状态,并在所述运行状态表征所述目标应用程序进入前台时,通过所述隧道管理组件启动VPN隧道,或者在所述运行状态表征所述目标应用程序进入后台时,通过所述隧道管理组件注销VPN隧道,包括:
运行所述目标应用程序,通过所述动态库组件,监听所述目标应用程序的运行状况;
当所述运行状态表征所述目标应用程序进入前台时,通过调用管理类中的所述隧道管理组件启动VPN隧道,以建立VPN连接;
当所述运行状态表征所述目标应用程序进入后台时,通过调用管理类中的所述隧道管理组件注销VPN隧道,以断开所述VPN连接。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述VPN隧道从VPN服务器接收数据,或发送数据至所述VPN服务器。
3.根据权利要求1所述的方法,其特征在于,获取需要VPN服务的应用程序、隧道管理组件及动态库组件,包括:
从服务器获取需要VPN服务的所述应用程序、所述隧道管理组件及所述动态库组件。
4.根据权利要求1所述的方法,其特征在于,将所述隧道管理组件及所述动态库组件添加于所述应用程序中,得到目标应用程序,包括:
通过重签名机制,将所述隧道管理组件及所述动态库组件添加于所述应用程序中,得到所述目标应用程序。
5.一种应用程序VPN管理方法,其特征在于,应用于移动终端,所述移动终端安装有如权利要求1-4中任一项所述的目标应用程序,所述方法还包括:
通过所述目标应用程序中的动态库组件,监听所述目标应用程序的运行状况;
当所述运行状态表征所述目标应用程序进入前台时,通过所述目标应用程序中的隧道管理组件启动VPN隧道,以建立VPN连接;
当所述运行状态表征所述目标应用程序进入后台时,通过所述隧道管理组件注销VPN隧道,以断开所述VPN连接。
6.一种应用程序VPN管理装置,其特征在于,所述装置包括:
创建单元,用于根据移动终端操作系统的应用程序接口,创建管理类,以及结合VPN服务器的接口创建隧道管理组件及动态库组件;
获取单元,用于获取需要VPN服务的应用程序、所述隧道管理组件及所述动态库组件;
绑定模块,所述需要VPN服务的应用程序设置有第一身份标识,与所述应用程序对应的所述隧道管理组件设置有第二身份标识,与所述应用程序对应的所述动态库组件设置有第三身份标识,所述绑定模块用于通过将所述第二身份标识、所述第三身份标识与所述第一身份标识进行绑定,建立得到所述应用程序、所述隧道管理组件及所述动态库组件之间的关联关系;
添加单元,用于将所述隧道管理组件及所述动态库组件添加于所述应用程序中,得到目标应用程序,所述动态库组件用于监听所述目标应用程序的运行状态,并在所述运行状态表征所述目标应用程序进入前台时,通过所述隧道管理组件启动VPN隧道,或者在所述运行状态表征所述目标应用程序进入后台时,通过所述隧道管理组件注销VPN隧道,包括:
运行所述目标应用程序,通过所述动态库组件,监听所述目标应用程序的运行状况;
当所述运行状态表征所述目标应用程序进入前台时,通过调用管理类中的所述隧道管理组件启动VPN隧道,以建立VPN连接;
当所述运行状态表征所述目标应用程序进入后台时,通过调用管理类中的所述隧道管理组件注销VPN隧道,以断开所述VPN连接。
7.一种电子设备,其特征在于,所述电子设备包括相互耦合的存储器、处理器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行如权利要求1-4中任一项所述的方法,或执行如权利要求5所述的方法。
8.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-4中任一项所述的方法,或执行如权利要求5所述的方法。
CN202010810058.8A 2020-08-12 2020-08-12 应用程序vpn管理方法、装置及电子设备 Active CN111934972B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010810058.8A CN111934972B (zh) 2020-08-12 2020-08-12 应用程序vpn管理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010810058.8A CN111934972B (zh) 2020-08-12 2020-08-12 应用程序vpn管理方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN111934972A CN111934972A (zh) 2020-11-13
CN111934972B true CN111934972B (zh) 2022-09-30

Family

ID=73310912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010810058.8A Active CN111934972B (zh) 2020-08-12 2020-08-12 应用程序vpn管理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN111934972B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102891802A (zh) * 2012-09-19 2013-01-23 深圳市深信服电子科技有限公司 数据分流方法、移动终端及数据分流系统
CN108011896A (zh) * 2017-12-26 2018-05-08 珠海市君天电子科技有限公司 基于应用程序的安全通信方法、装置和电子设备
CN109450766A (zh) * 2018-09-21 2019-03-08 北京奇安信科技有限公司 一种工作区级vpn的访问处理方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090260074A1 (en) * 2008-04-10 2009-10-15 Qlayer Nv System and method for application level access to virtual server environments
US8990920B2 (en) * 2011-02-11 2015-03-24 Mocana Corporation Creating a virtual private network (VPN) for a single app on an internet-enabled device or system
CN102984044B (zh) * 2012-11-16 2016-08-10 深圳市深信服电子科技有限公司 基于虚拟专用网络实现数据传输安全性的方法和装置
CN104869043B (zh) * 2015-06-04 2019-04-16 魅族科技(中国)有限公司 一种建立vpn连接的方法及终端
CN105630584A (zh) * 2015-06-16 2016-06-01 宇龙计算机通信科技(深圳)有限公司 应用程序的运行控制方法、系统和终端
US10142293B2 (en) * 2015-12-15 2018-11-27 International Business Machines Corporation Dynamically defined virtual private network tunnels in hybrid cloud environments
CN106789530B (zh) * 2016-12-16 2019-07-16 Oppo广东移动通信有限公司 一种网络连接方法、装置及移动终端
CN110768886B (zh) * 2019-09-17 2021-11-02 广东电网有限责任公司广州供电局 应用程序自动连接vpn方法、装置、计算机设备和介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102891802A (zh) * 2012-09-19 2013-01-23 深圳市深信服电子科技有限公司 数据分流方法、移动终端及数据分流系统
CN108011896A (zh) * 2017-12-26 2018-05-08 珠海市君天电子科技有限公司 基于应用程序的安全通信方法、装置和电子设备
CN109450766A (zh) * 2018-09-21 2019-03-08 北京奇安信科技有限公司 一种工作区级vpn的访问处理方法及装置

Also Published As

Publication number Publication date
CN111934972A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
CN108701017B (zh) 一种更新操作系统的方法及装置
KR102406757B1 (ko) 보안 모듈의 가입자 프로파일 프로비저닝 방법
US8990920B2 (en) Creating a virtual private network (VPN) for a single app on an internet-enabled device or system
CN110601902B (zh) 一种基于区块链网络的交互数据处理方法及装置
US10244392B2 (en) Over-the-air personalization of network devices
CN104168557A (zh) 操作系统的升级方法和操作系统的升级装置
CN109558739B (zh) 程序运行方法、装置、终端及可读介质
CN111245699B (zh) 远程通信服务控制方法、服务器及客户端
CN108900324B (zh) 校验虚拟机通信性能的方法及装置
CN108154026B (zh) 基于Android系统的免Root无侵入的安全通信方法及系统
CN112838925A (zh) 数据传输方法、装置和系统、电子设备、存储介质
CN103034811B (zh) 一种文件处理的方法、系统及装置
CN111726328A (zh) 用于对第一设备进行远程访问的方法、系统以及相关设备
US20170048097A1 (en) Managing devices through secondary communication channels
CN111934972B (zh) 应用程序vpn管理方法、装置及电子设备
US20210334164A1 (en) Device recovery mechanism
CN115150113A (zh) 访问内网应用的方法及相关设备
KR101592323B1 (ko) 서버 장애 시 원격 서버 복구 시스템 및 방법
CN114884771B (zh) 基于零信任理念的身份化网络构建方法、装置和系统
CN114844672B (zh) 一种应用可信身份的确认方法、管理单元及设备
CN110351394B (zh) 网络数据的处理方法及装置、计算机装置及可读存储介质
CN112994909A (zh) 管理Kubernetes集群的方法、装置、设备及存储介质
CN113873041B (zh) 报文传输方法、装置、网络设备及计算机可读存储介质
CN113206844A (zh) 防止数据泄露的数据共享方法
US20230363021A1 (en) Method and system of universal integrated circuit card (uicc) management without cellular connectivity

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