一种在Android设备中实施动态访问控制的方法和系统

文档序号:37826070发布日期:2024-04-30 17:35阅读:8来源:国知局
一种在Android设备中实施动态访问控制的方法和系统

本发明属于计算机,具体涉及一种在android设备中实施动态访问控制的方法和系统。


背景技术:

1、在android系统中,现有的动态访问技术基于虚拟网卡技术与云端动态访问控制网关协作来实现。如图1所示,其基本思想是在android设备中安装一个客户端程序,利用该客户端程序与动态访问控制网关建立数据传输隧道,以隧道为粒度进行动态访问控制。基本原理是客户端程序读取android系统tun虚拟网卡中的数据,根据隧道封装格式对数据包进行封装,从而与动态访问控制网关建立数据传输隧道,使android系统中的应用数据经由传输隧道发送至动态访问控制网关,并由动态访问控制网关转发/代理至应用服务端。

2、现有方案的基本流程如下:

3、a)系统启动时动态访问控制客户端启动tun网卡,并绑定该网卡,同时在操作系统中配置路由表项,指明需要路由至tun网卡的数据包;

4、b)应用app客户端发起业务访问时,终端操作系统根据路由表信息将数据包转发至tun网卡;

5、c)动态访问控制客户端监听tun网卡并读取数据包,根据自身与动态访问控制网关之间的通讯协议格式对数据包进行封装;

6、d)动态访问控制客户端将封装完成的数据包再次经由操作系统协议栈发送出去;

7、e)终端操作系统根据路由信息将动态访问控制客户端封装后的数据包转发至物理网卡;

8、f)数据通过物理网卡发送至动态访问控制网关;

9、g)动态访问控制网关根据协议格式对数据包进行解封装,并由动态访问控制网关将业务数据转发或代理至应用服务端。

10、现有的android动态访问控制技术在用户设备tun网卡已被其他应用程序占用的情况下将无法正常工作。由于android操作系统的限制,android设备上同时只能有1块tun网卡处于工作状态,若动态访问控制客户端再启动一块tun网卡,将导致原先的tun网卡停止工作,从而影响业务正常运行。

11、例如,在android设备使用vpn远程访问企业内部网络时,将导致动态访问控制技术无法与vpn技术同时正常运行。因为vpn技术的实现也依赖于tun网卡,其基本原理是在android设备中运行vpn客户端,该客户端读取android系统tun虚拟网卡中的数据,将数据按照vpn协议格式进行封装,最终经由android设备物理网卡发送至vpn网关,从而建立vpn安全传输通道。但是,由于android操作系统的限制,系统同一时刻只能使用一个tun网卡,这使得在已运行vpn客户端的android设备中,无法进行动态访问控制。然而在企业日常生产工作中,由于员工可能会出差等原因,需要借助vpn技术实现在企业外部通过互联网接入企业内部网络的场景十分常见,因此需要解决动态访问控制客户端与vpn客户端同时工作的问题。


技术实现思路

1、本发明的目的是解决在android设备中tun网卡已被vpn客户端占用的情况下,如何实现动态访问控制的问题。

2、本发明采用的技术方案如下:

3、一种在android设备中实施动态访问控制的方法,包括以下步骤:

4、vpn客户端与动态访问控制客户端进行协商,确定数据交互端口与兴趣流;

5、vpn客户端从tun网卡第一次读取数据包,并根据与动态访问控制客户端协商的兴趣流通过协商的数据交互端口将对应数据包转发至动态访问控制客户端;

6、动态访问控制客户端根据自身与动态访问控制网关的通讯协议格式对数据包进行第一次封装,操作系统根据路由表信息将第一次封装后的数据包转发至tun网卡;

7、vpn客户端从tun网卡第二次读取数据包,根据vpn格式进行第二次封装,操作系统根据路由表信息将第二次封装后的数据包转发至物理网卡,通过物理网卡将第二次封装后的数据包发送至vpn网关。

8、进一步地,上述方法还包括以下步骤:

9、vpn网关收到数据包后,进行第一次解封装操作,将第一次解封装后的数据包转发至动态访问控制网关;

10、动态访问控制网关对数据包进行第二次解封装操作,并将第二次解封装后的数据包转发至应用服务端。

11、进一步地,所述动态访问控制客户端对数据包进行所述第一次封装时,将数据包目的地址填写为动态访问控制网关地址,然后将封装后的数据包经由操作系统协议栈发送出去;所述vpn客户端对数据包进行所述第二次封装后,将封装后的数据包经由操作系统协议栈发送出去。

12、进一步地,在所述tun网卡已被所述vpn客户端占用的情况下,所述动态访问控制客户端采用普通用户态app与所述vpn客户端交互的方式,依次封装数据包。

13、进一步地,所述vpn客户端与所述动态访问控制客户端交互的方式为aidl或本地socket通信等;所述vpn客户端与所述动态访问控制客户端交互的信息包括兴趣流、数据交互端口号、动态访问控制网关ip地址信息。

14、进一步地,所述vpn客户端与所述动态访问控制客户端的保活机制,包括:将动态访问控制客户端加入操作系统白名单,或者vpn客户端检查动态访问控制客户端的服务,若服务不存在则主动启动动态访问控制客户端。

15、进一步地,所述动态访问控制网关获取当前android终端的环境状态变化,自动编排访问控制策略,动态地对用户访问行为进行阻断。

16、一种android终端,所述android终端包括vpn客户端、动态访问控制客户端、tun网卡和物理网卡;其中:

17、vpn客户端与动态访问控制客户端进行协商,确定数据交互端口与兴趣流;

18、vpn客户端从tun网卡第一次读取数据包,并根据与动态访问控制客户端协商的兴趣流通过协商的数据交互端口将对应数据包转发至动态访问控制客户端;

19、动态访问控制客户端根据自身与动态访问控制网关的通讯协议格式对数据包进行第一次封装,操作系统根据路由表信息将第一次封装后的数据包转发至tun网卡;

20、vpn客户端从tun网卡第二次读取数据包,根据vpn格式进行第二次封装,操作系统根据路由表信息将第二次封装后的数据包转发至物理网卡,通过物理网卡将第二次封装后的数据包发送至vpn网关。

21、一种在android设备中实施动态访问控制的系统,包括android终端、vpn网关、动态访问控制网关和应用服务端;所述android终端包括vpn客户端、动态访问控制客户端、tun网卡和物理网卡;其中:

22、vpn客户端与动态访问控制客户端进行协商,确定数据交互端口与兴趣流;

23、vpn客户端从tun网卡第一次读取数据包,并根据与动态访问控制客户端协商的兴趣流通过协商的数据交互端口将对应数据包转发至动态访问控制客户端;

24、动态访问控制客户端根据自身与动态访问控制网关的通讯协议格式对数据包进行第一次封装,操作系统根据路由表信息将第一次封装后的数据包转发至tun网卡;

25、vpn客户端从tun网卡第二次读取数据包,根据vpn格式进行第二次封装,操作系统根据路由表信息将第二次封装后的数据包转发至物理网卡,通过物理网卡将第二次封装后的数据包发送至vpn网关;

26、vpn网关收到数据包后,进行第一次解封装操作,将第一次解封装后的数据包转发至动态访问控制网关;

27、动态访问控制网关对数据包进行第二次解封装操作,并将第二次解封装后的数据包转发至应用服务端。

28、本发明的有益效果如下:

29、a)在android设备虚拟网卡已被vpn客户端占用的情况下,能够以对上层应用客户端无感知的形式,实现动态访问控制;

30、b)本方法不改变现有的业务访问方式,不颠覆已有的业务对接成果,应用客户端和应用系统服务端对于数据交互的调用方式不变,用户使用体验没有改变,更易于用户使用。

31、c)本方法中,动态访问控制网关可以支持采用旁路部署或串接方式部署。旁路方式不改变业务系统现有设备部署模式,系统改造量小;串接部署可使动态访问控制网关成为业务系统数据的必经之路,进一步增强业务系统安全性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1