本发明涉及移动通信领域,具体而言,本发明涉及一种移动终端支付类应用程序安全支付方法及其装置。
背景技术:
::随着智能移动终端的不断发展,出现了越来越多的移动终端应用程序,而应用程序在为用户提供服务的过程中,需要连网与其服务器进行通信,由于移动网络提供的套餐流量有限,限制了用户的使用,所以通常用户更喜欢连接不受限制使用的无线网络,如免费WiFi,也因此促进了免费WiFi的发展势头,用户使用免费WiFi工具和使用免费WiFi联网快速得到普及,随时随地找免费WiFi已经成为用户移动上网的日常习惯。但如果在通信过程中连接了不安全的无线局域网,会造成一定的风险。如连接到植入了钓鱼功能的WiFi路由器,通信过程中发送的数据包就可能被劫持,造成用户的信息泄露,特别是对于一些如支付宝、微信、网银等重要的支付类应用,信息泄露会给用户带来极大损失。不法分子通过恶意DNS、ARP欺骗、ICMP劫持等恶意网络劫持手段,窃取用户的身份、账号、交易等敏感信息,甚至对交易过程进行劫持或钓鱼欺诈。针对这种不安全通信情况,Android系统提供了VPN服务,但当所有应用的流量都通过VPN服务,那么必然会超出VPN服务器的处理能力,造成网络阻塞,使得用户的应用体验变差。因此,如何在所接入网络未经安全确认或者并不安全的情况下保证支付类应用程序的安全交互,避免重要数据或信息泄露,变成了亟待解决的问题。技术实现要素:本发明的目的旨在解决上述至少一个问题,提供一种移动终端支付类应用程序安全支付方法及相应装置,有选择性地对支付类应用程序进行保 护,提供安全通道,在保证支付安全的同事避免给VPN服务器带来过大压力。为了实现上述目的,本发明提供一种移动终端支付类应用程序安全支付方法,包括以下步骤:监听支付类应用程序进入支付场景;通过预先向系统注册的VPN服务向VPN服务器发送连接请求,以建立与VPN服务器之间的安全通道;基于该安全通道向远程服务器发送支付数据以完成支付操作。进一步,所述建立安全通道的步骤还包括:所述VPN服务与VPN服务器建立连接后进行通信以确定建立通道采用的通信协议、加密算法、密钥及相关参数信息。可选的,所述安全通道基于PPTP、L2TP、IPSec中的任意一种协议实现。进一步,所述建立安全通道之前还包括提供安全DNS服务,具体包括以下步骤:捕获所述移动终端发送的DNS请求数据包,将所述DNS数据包转换为对应的DNSSEC请求数据包;发送所述DNSSEC请求数据包至DNS服务器,以接收所述DNS服务器返回的DNSSEC响应数据包;捕获所述移动终端接收的所述DNSSEC响应数据包,将所述DNSSEC响应数据包转换为对应的DNS响应数据包。具体的,利用钩子函数捕获移动终端系统应用层的DNS解析接口以获取DNS请求数据包。更进一步,还包括步骤:提供一用户界面,用于询问是否建立通道,以用户选定为依据确定是否建立所述安全通道。优选的,所述支付类应用程序进行支付之前,先执行清场操作。优选的,建立所述安全通道后,对经所述安全通道传输的支付数据包进行加密。具体的,所述支付数据包的加密采用非对称加密算法。进一步,还包括建立白名单,用于记录支付应用程序的身份标识信息,仅对白名单中的支付应用程序建立所述安全通道。进一步,还包括步骤,获取支付应用程序的身份标识信息,依据该身份标识信息判断该支付应用程序是否存在于所述白名单中。更进一步,还包括接收用户指令,对白名单中的支付应用程序进行增加或删除操作。进一步,接收用户对已安装支付应用程序的选定指令,将选定的支付应用程序的标识信息记录于所述白名单。具体的,所述支付应用程序的身份标识信息包括该应用程序的UID、包名。一种移动终端支付类应用程序安全支付装置,包括:监听模块:用于监听支付类应用程序进入支付场景;安全通道建立模块:用于通过预先向系统注册的VPN服务向VPN服务器发送连接请求,以建立与VPN服务器之间的安全通道;支付模块:用于基于该安全通道向远程服务器发送支付数据以完成支付操作。具体的,所述安全通道建立模块执行的步骤包括:所述VPN服务与VPN服务器进行通信以确定建立通道采用的通信协议、加密算法、密钥及相关参数信息。可选的,所述通道基于PPTP、L2TP、IPSec中的任意一种协议实现。进一步,在安全通道建立模块执行之前,还包括DNS服务模块,用于提供安全DNS服务,执行以下步骤:捕获所述移动终端发送的DNS请求数据包,将所述DNS数据包转换为对应的DNSSEC请求数据包;发送所述DNSSEC请求数据包至DNS服务器,以接收所述DNS服务器返回的DNSSEC响应数据包;捕获所述移动终端接收的所述DNSSEC响应数据包,将所述DNSSEC响应数据包转换为对应的DNS响应数据包。具体的,所述DNS服务模块利用钩子函数捕获移动终端系统应用层 的DNS解析接口以获取DNS请求数据包。进一步,还包括交互模块,被配置为提供一用户界面,用于询问是否建立通道,以用户选定为依据确定是否建立所述安全通道。优选的,还包括清场模块,用于支付类应用程序进行支付之前,先执行清场操作。进一步,还包括加密模块,用于建立安全通道后,对经通道传输的支付数据包进行加密。具体的,所述支付数据包的加密采用非对称加密算法。具体的,还包括白名单模块,建立用于记录支付应用程序的身份标识信息的白名单,仅对白名单中的支付应用程序建立所述安全通道。进一步,还包括判断模块,用于获取支付应用程序的身份标识信息,依据该身份标识信息判断该支付应用程序是否存在于所述白名单中。进一步,所述白名单模块还用于接收用户指令,对白名单中的支付应用程序进行增加或删除操作。更进一步,所述白名单模块还用于接收用户对已安装支付应用程序的选定指令,将选定的支付应用程序的标识信息记录于所述白名单。具体的,所述支付应用程序的身份标识信息包括该应用程序的UID、包名。相比现有技术,本发明的方案具有以下优点:首先,本发明利用Android系统的VPN框架,专门为支付类应用程序提供一个公共的VPN服务,通过基于VPN服务建立的通道提供安全传输通道,使得支付类应用程序在进行支付时,可以通过该安全通道与其服务器进行安全交互,保证传输过程中用户信息的安全,防止用户的隐私数据被窃取。其次,本发明进一步为支付过程提供安全DNS服务,并对通信数据进行加密,通过安全DNS服务器改变真实的IP地址,防止恶意DNS劫持通信数据;同时,对通信数据进行加密,更进一步增强了传输数据的安全性,为用户带来更安全的支付体验。再者,本发明建立白名单,以在建立通道之前确定应用程序的合法性,以避免不合法的或恶意应用程序借由安全通道交互信息。同时,对于不合法的应用程序提供用户界面,以提示用户对不合法应用程序做处理,并提供相应的处理项按钮,以引导用户对恶意或不合法程序执行相应处理。由此,可提高对需要建立通道进行安全交互的应用程序的识别度,为用户提供智能化服务,以引导用户对不合法应用程序做出合理的处理,提高用户体验度。最后,本发明仅对支付类应用程序进行保护,且根据连接的WiFi的安全性决定是否自动开启安全通道,并且提供对白名单的支付类应用程序进行动态增删的操作,从而实现在不超过VPN服务器的处理能力是情况下,即使网络环境具有一定的风险,依然能保证用户通过移动终端进行安全支付,保护用户的相关数据。本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本发明所述移动终端支付类应用程序安全支付方法的原理示意图;图2为本发明实施例中所述安全DNS服务的操作方法示意图;图3为本发明实施例中所述安全通道的建立方法流程示意图;图4为本发明所述移动终端支付类应用程序安全支付方法的又一实施例的流程示意图;图5为本发明所述移动终端支付类应用程序安全支付装置的结构框图。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本
技术领域:
:技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。本
技术领域:
:技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。本
技术领域:
:技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunicationsService,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(PersonalDigitalAssistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(GlobalPositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他 设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(MobileInternetDevice,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。本
技术领域:
:技术人员可以理解,这里所使用的远端网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(CloudComputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。本领域技术人员应当理解,本发明所称的“应用”、“应用程序”、“应用软件”以及类似表述的概念,是业内技术人员所公知的相同概念,是指由一系列计算机指令及相关数据资源有机构造的适于电子运行的计算机软件。除非特别指定,这种命名本身不受编程语言种类、级别,也不受其赖以运行的操作系统或平台所限制。理所当然地,此类概念也不受任何形式的终端所限制。随着互联网的发展,通信安全变得日益重要,其中对于移动终端的通信安全来说,第三方应用的通信安全问题是最重要的问题之一。通常,安全软件能给出一些移动设备连接到无线路由器过程的检测结果,但对路由以及网上通信的过程却无能为力,只能由加密VPN负责安全,目前VPN服务一般都是个人授权的服务。而接入公共网络进行通信的过程中,很容易被黑客将通信数据包拦截,以此获取到用户的隐私数据,特别是用户利用公共网络进行移动支付的过程中,很容易被窃取移动支付的账号、密码、 验证码等数据包,进一步破译获取其中的数据,从而给用户带来无可弥补的损失,基于此,以本发明提供的方法对支付类应用程序的通信过程进行加密,以实现对用户数据的保护。由于用户习惯使用免费公共WiFi,以节省流量费用,因此本发明实施例着重对接入WiFi的支付行为建立安全通道。基于此,首先检测用户是否接入WiFi,通常用户选择将移动终端接入各种类型的网络,包括移动运营商提供的各种网络制式的移动通信网络(如CDMA、TD-CDMA、LTE等),无线局域网(如WiFi)。其中,对于无线局域网来说,又分为加密网络和公共网络。而一些公共网络往往由恶意的WiFi热点提供,当移动终端接入该网络时,容易被截取通信的数据包,从而获取用户的隐私信息。因此,先对用户移动终端接入的网络的安全性进行检测,以确定接入的网络是否存在风险,具体可由本发明实现的检测模块执行所述检测过程,检测路由器的WAN口的DNS是否被恶意篡改,路由器的DHCP服务的DNS是否被篡改,以及路由器是否允许被远程控制等。当检测到移动终端当前接入的网络为存在信息泄露风险的无线公共传输网络时,即为不安全的公共网络时,移动终端的应用程序采用本发明实施例所提供的方法进行信息交互,以避免用户的信息被窃取,保证用户隐私数据的安全。参阅图1所示,本发明所述移动终端支付类应用程序安全支付方法具体包括以下步骤:S11、监听支付类应用程序进入支付场景;所述支付类应用程序包括支付宝、网页、微信等各种具备支付功能的应用程序,系统预设监听模块,监听支付类应用程序的启动,当支付类应用程序开启时,系统发送广播消息,监听模块接收到系统发送的支付类应用程序启动的广播消息,对其进行解析,获取该支付类应用程序的身份标识信息。对该应用程序的入口函数进行挂钩,以监控其是否进入支付场景。其中,当监控到其进行支付场景时,调用相应的安全模块,以对系统进行扫描,确定当前是否存在隐藏的后台程序,是否存在缓存记录信息,是否存在执行监听的程序,并对该些程序进行处理,强制关闭或清除记录,完成支付前的清场操作。S12、通过预先向系统注册的VPN服务向VPN服务器发送连接请求,以建立与VPN服务器之间的安全通道;为了实现对安全通道的建立,本发明所述方法预先向系统注册一个VPN服务,以通过该服务取得建立和维护通道的控制权。其中,所述通道是指基于虚拟专用网协议实现的通道,具体而言,可以采用PPTP、L2TP、IPSec中的任意一种协议实现。在具体实施例中,基于Android系统建立VPN服务的原理如下:1、应用程序使用socket将数据包发送到真实的网络设备;2、系统通过iptables,使用NAT,将所有数据包转发到TUN虚拟网络设备,端口为tun0;3、系统VPN服务程序打开TUN设备并读取相应的数据,获得所有转发到TUN虚拟网络设备上的IP包;4、VPN服务程序对上述获取的IP数据包做处理,通过真实的网络设备发送出去。基于上述原理,通过Android系统提供的Vpnservice框架,利用系统提供的API,获得应用程序的所有IP数据包,以对IP数据包进行处理,与远端VPN服务器进行连接交互,实现将应用程序的IP数据包经通道进行安全传输。在具体实施例中,所述安全通道在预设时间内由移动终端向VPN服务器发送连接请求,并由服务器进行响应完成连接,若在该预设时间内,通常为5s之内未连接成功,则自动执行第二次连接操作,以建立安全通道。如图2所示,本发明进一步在建立安全通道之前提供安全DNS服务。当应用程序访问远程服务器时,会通过一个域名解析服务器把域名转换成IP地址。域名解析服务器则通过查询根域名服务器、顶级域名服务器、权威域名服务器等多级服务器节点,以递归的方式获取目标远程服务器的IP地址,并将该IP地址传输到应用程序客户端。而在此过程中,很容易泄露服务器IP地址的信息,从而造成用户信息的泄露。恶意DNS通常可以假冒应答方给请求方发送一个伪造的响应数据包,其中包括一个错误的IP 地址,从而把请求方发送的数据包重定向到错误的服务器地址,造成用户信息的严重泄露。基于此,国际互联网工程任务组制定了一套配合现有DNS系统的安全扩展系统,即DNSSEC,以解决恶意DNS欺骗、劫持等不安全行为。其中,所述DNSSEC的工作原理如下:DNSSEC为DNS中的数据添加数字签名信息,使每个节点的DNS服务器在得到应答信息后可以通过检查该数字签名信息判断应答数据的真实性,由此为DNS数据提供来源验证和完整性检验。所述DNSSEC数据包具体包括:用于存储验证DNS数据的公钥;用于存储DNS资源记录的数字签名;上级授权签名等信息。本发明提供的安全DNS服务具体包括以下步骤:S101:捕获所述移动终端发送的DNS请求数据包,将所述DNS数据包转换为对应的DNSSEC请求数据包;S102:发送所述DNSSEC请求数据包至DNS服务器,以接收所述DNS服务器返回的DNSSEC响应数据包;S103:捕获所述移动终端接收的所述DNSSEC响应数据包,将所述DNSSEC响应数据包转换为对应的DNS响应数据包。其中,所述捕获DNS请求数据包的步骤,采用预先构建的钩子函数,对系统应用层的DNS解析接口进行挂钩,以捕获相应的DNS请求数据包。当然,所述捕获DNS请求数据包也可以通过钩子函数对协议驱动层的相应接口进行挂钩,进而获取相应的DNS请求数据包。本发明实施例通过为支付过程提供安全DNS服务,改变访问的远程服务器的真实IP地址,防止恶意DNS劫持通信数据或恶意篡改IP,从而避免用户信息被窃取。在具体实施例中,所述VPN服务在未建立所述通道之前,可以先向用户界面弹框,即提供一用户界面,以提示用户是否对当前的应用程序建立通道。当用户选择建立所述通道时,由该VPN服务调用系统的相应功能,建立基于虚拟专用网协议的通道;否则,不建立通道。即,是否建立所述通道的控制权交给用户,以用户选定为依据决定是否建立所述通道。在具体实施例中,进一步的,所述支付类应用程序在与远程服务器进行支付数据交换的过程中,首先通过上述提供的DNS安全服务将DNS请 求数据包转换为对应的DNSSEC请求数据包,并将该对应的DNSSEC请求数据包发生至DNS服务器,接收DNS服务器反馈的DNSSEC响应数据包,并将该对应的DNSSEC响应数据包转换成DNS响应数据包,以获取远程服务器的IP地址。基于该IP地址建立与远程服务器之间的安全通道,如图3所示,所述安全通道的建立步骤如下:步骤1:VPN服务向VPN服务器发送连接请求;步骤2:建立VPN服务与VPN服务器之间的连接;步骤3:所述VPN服务与VPN服务器进行通信以确定建立通道采用的通信协议、加密算法、密钥及相关参数信息。建立上述安全通道后,使得支付类应用程序在进行支付时,可以通过该安全通道与其服务器进行安全交互,保证传输过程中用户信息的安全,防止用户的隐私数据被窃取。进一步的,本发明所述实施例对基于该通道进行信号传输的应用程序的通信数据包依照上述步骤3确定加密算法进行加密,并按照步骤3确定的通信协议将通信数据包进行重新封装,以使封装后的加密数据包在建立的通道中安全传输。其中,对所述应用程序的通信数据包进行加密采用的加密算法为非对称加密算法。由此,更进一步增强了传输数据的安全性,为用户带来更安全的支付体验。更进一步地,为了避免不合法的或恶意应用程序借由安全通道交互信息,本发明建立白名单,以在建立通道之前确定应用程序的合法性,仅对所述白名单中的应用程序建立所述安全通道。如果应用程序不属于预设的白名单中的应用程序,则不建立所述安全通道,直接将该应用程序的数据包经无线局域网传输至其目标服务器,以完成应用程序与其目标服务器之间的通信。其中,所述白名单用于记录支付应用程序的身份标识信息,该身份标识信息包括所述应用程序的UID、包名等能够唯一性确定应用程序身份的信息。具体的,所述白名单由用户预先设置生成,具体可提供一用户界面,接收用户对已安装支付类应用程序的选定指令,将选定的支付类应用程序的标识信息记录于所述白名单,以对该白名单中的支付类应用程序建立所 述安全通道。当获取到当前运行应用程序的身份标识信息时,查询其是否存在于预设的白名单中,以确实是否对该应用程序建立安全通道。为进一步方便用户操作,提高体验度,还提供对白名单中的应用程序进行增加或删除操作的功能。即当用户欲卸载某支付类应用程序,或重新下载安装了新的支付类应用程序,可通过对白名单进行删除或增加操作,以更新白名单中记录的信息。由此,基于该记录的白名单选择性地为应用程序建立安全通道,使安全通道的建立更加合理化。同时,对于不合法的应用程序提供用户界面,以提示用户对不合法应用程序做处理,并提供相应的处理项按钮,以引导用户对恶意或不合法程序执行相应处理。由此,可提高对需要建立通道进行安全交互的应用程序的识别度,为用户提供智能化服务,以引导用户对不合法应用程序做出合理的处理,提高用户体验度。进一步地,对于本发明而非某一具体实施例而言,可以通过加强对网络环境的识别而加强移动终端应用程序通信安全的防护。如WiFi接入点可以分为两类,一是具有一定安全性的专有接入点,如办公室、家庭等私有环境接入点;二是在公共场所使用的公共网络接入点,如餐厅、咖啡厅,以及各运营商提供的接入点等。本发明所述方法可以独立或于诸如360免费WiFi之类的应用相结合使用,检测网络接入点的安全性,如果为公共网络接入点,则强制对移动终端的诸如支付宝等支付类应用或其他重要应用建立所述通道,也可以基于其他需要保护的应用程序弹框提示用户,由用户选择是否对相应的应用程序建立通道,由此以确保移动终端安装的应用程序在存在信息泄露的公共网络中进行通信的安全性。而对于安全性较高的私人环境的网络接入点,可提供相关的预设置项,由用户自主决定是否默认为相应的应用程序建立通道进行数据的远程传输。综上所述,本发明仅对支付类应用程序进行保护,且根据连接的WiFi的安全性决定是否自动开启安全通道,并且提供对白名单的支付类应用程序进行动态增删的操作,从而实现在满足用户需求的情况下,避免对VPN服务器造成过大压力,防止其崩溃。S13、基于该安全通道向远程服务器发送支付数据以完成支付操作。通过建立的安全通道,支付类应用程序与其远程服务器进行数据交互,获取用户通过支付界面输入的支付信息,将相应的支付信息封装成数据包,并按照与远程服务器约定的密钥进行加密,以生成加密后的数据包,通过该安全通道及约定的通信协议,将该数据包发送至远程服务器。远程服务器接收到所述支付类应用程序发送的数据包,对其进行解析,获取相应的支付数据,并对其进行确认处理,返回应答包。采用与移动终端的支付类应用程序客户端约定的密钥进行加密,生成加密后的数据包,通过所述安全通道及约定的通信协议,将应答数据包反馈至所述客户端,从而完成所述支付过程。参考图4所示,为了进一步采用程序化语言说明本发明所述的方法,提供以下实施例,以通过流程化的方式描述本发明所述方法的原理,具体包括:S201、支付类应用程序进入支付场景并完成了清场;S202、判断移动终端是否接入WiFi;若是则转到S203,若否则转到S211;S203、弹出风险提示界面,建议用户使用安全通道进行支付;S204、用户是否选择安全支付通道;若是则转到S205,若否则转到S211;S205、尝试建立安全通道;S206、安全通道5s内建立成功与否;如果成功转到S211,如果不成功转到S207;S207、自动进行第二次安全通道的建立;如果建立失败转到S209,如果建立成功转到S208;S208、询问是否再次建立安全通道,如果是则转到S205,如果否则转到S211;S209、弹出安全通道建立失败提示界面;S210、用户是否选择暂不进行支付操作;如果是转到退出支付场景,如果否转到执行支付操作;S211、执行支付操作;S212、退出支付场景。基于上述对本发明所述移动终端支付类应用程序安全支付方法的原理进行的说明,为了进一步模块化地解释本发明所述方法,参考图5所示,提供一种移动终端支付类应用程序安全支付装置,包括监听模块11、安全通道建立模块12、支付模块13,以及部分变换实施例中所述的DNS服务模块14、交互模块15、清场模块16、加密模块17、判断模块18、白名单模块19,其中,监听模块11用于监听支付类应用程序进入支付场景;所述支付类应用程序包括支付宝、网页、微信等各种具备支付功能的应用程序,系统预设监听模块11,监听支付类应用程序的启动,当支付类应用程序开启时,系统发送广播消息,监听模块接收到系统发送的支付类应用程序启动的广播消息,对其进行解析,获取该支付类应用程序的身份标识信息。对该应用程序的入口函数进行挂钩,以监控其是否进入支付场景。其中,当监控到其进行支付场景时,调用相应的安全模块,以对系统进行扫描,确定当前是否存在隐藏的后台程序,是否存在缓存记录信息,是否存在执行监听的程序,并调用清场模块16对该些程序进行处理,强制关闭或清除记录,完成支付前的清场操作。安全通道建立模块12用于通过预先向系统注册的VPN服务向VPN服务器发送连接请求,以建立与VPN服务器之间的安全通道;为了实现对安全通道的建立,本发明所述方法预先向系统注册一个VPN服务,以通过该服务取得建立和维护通道的控制权。其中,所述通道是指基于虚拟专用网协议实现的通道,具体而言,可以采用PPTP、L2TP、IPSec中的任意一种协议实现。在具体实施例中,基于Android系统建立VPN服务的原理如下:1、应用程序使用socket将数据包发送到真实的网络设备;2、系统通过iptables,使用NAT,将所有数据包转发到TUN虚拟网络设备,端口为tun0;3、系统VPN服务程序打开TUN设备并读取相应的数据,获得所有转发到TUN虚拟网络设备上的IP包;4、VPN服务程序对上述获取的IP数据包做处理,通过真实的网络设备发送出去。基于上述原理,通过Android系统提供的Vpnservice框架,利用系统提供的API,获得应用程序的所有IP数据包,以对IP数据包进行处理,与远端VPN服务器进行连接交互,实现将应用程序的IP数据包经通道进行安全传输。在具体实施例中,所述安全通道在预设时间内由移动终端向VPN服务器发送连接请求,并由服务器进行响应完成连接,若在该预设时间内,通常为5s之内未连接成功,则自动执行第二次连接操作,以建立安全通道。如图2所示,本发明进一步在建立安全通道之前提供安全DNS服务。当应用程序访问远程服务器时,会通过一个域名解析服务器把域名转换成IP地址。域名解析服务器则通过查询根域名服务器、顶级域名服务器、权威域名服务器等多级服务器节点,以递归的方式获取目标远程服务器的IP地址,并将该IP地址传输到应用程序客户端。而在此过程中,很容易泄露服务器IP地址的信息,从而造成用户信息的泄露。恶意DNS通常可以假冒应答方给请求方发送一个伪造的响应数据包,其中包括一个错误的IP地址,从而把请求方发送的数据包重定向到错误的服务器地址,造成用户信息的严重泄露。基于此,国际互联网工程任务组制定了一套配合现有DNS系统的安全扩展系统,即DNSSEC,以解决恶意DNS欺骗、劫持等不安全行为。其中,所述DNSSEC的工作原理如下:DNSSEC为DNS中的数据添加数字签名信息,使每个节点的DNS服务器在得到应答信息后可以通过检查该数字签名信息判断应答数据的真实性,由此为DNS数据提供来源验证和完整性检验。所述DNSSEC数据包具体包括:用于存储验证DNS数据的公钥;用于存储DNS资源记录的数字签名;上级授权签名等信息。本发明所述装置的DNS服务模块14执行的具体步骤如下:S101:捕获所述移动终端发送的DNS请求数据包,将所述DNS数据包转换为对应的DNSSEC请求数据包;S102:发送所述DNSSEC请求数据包至DNS服务器,以接收所述DNS服务器返回的DNSSEC响应数据包;S103:捕获所述移动终端接收的所述DNSSEC响应数据包,将所述DNSSEC响应数据包转换为对应的DNS响应数据包。其中,所述DNS服务模块14执行捕获DNS请求数据包的步骤,采用预先构建的钩子函数,对系统应用层的DNS解析接口进行挂钩,以捕获相应的DNS请求数据包。当然,所述捕获DNS请求数据包也可以通过钩子函数对协议驱动层的相应接口进行挂钩,进而获取相应的DNS请求数据包。本发明实施例通过为支付过程提供安全DNS服务,改变访问的远程服务器的真实IP地址,防止恶意DNS劫持通信数据或恶意篡改IP,从而避免用户信息被窃取。在具体实施例中,所述VPN服务在未建立所述通道之前,由交互模块14向用户界面弹框,即提供一用户界面,以提示用户是否对当前的应用程序建立通道。同时,接收用户的选定指令,即当用户选择建立所述通道时,由该VPN服务调用系统的相应功能,建立基于虚拟专用网协议的通道;否则,不建立通道。即,是否建立所述通道的控制权交给用户,以用户选定为依据决定是否建立所述通道。在具体实施例中,进一步的,所述支付类应用程序在与远程服务器进行支付数据交换的过程中,首先通过上述提供的DNS安全服务将DNS请求数据包转换为对应的DNSSEC请求数据包,并将该对应的DNSSEC请求数据包发生至DNS服务器,接收DNS服务器反馈的DNSSEC响应数据包,并将该对应的DNSSEC响应数据包转换成DNS响应数据包,以获取远程服务器的IP地址。基于该IP地址建立与远程服务器之间的安全通道,如图3所示,所述安全通道建立模块12建立安全通道的步骤如下:步骤1:VPN服务向VPN服务器发送连接请求;步骤2:建立VPN服务与VPN服务器之间的连接;步骤3:所述VPN服务与VPN服务器进行通信确定采用的通信协议、 加密算法、密钥及相关参数信息。建立上述安全通道后,使得支付类应用程序在进行支付时,可以通过该安全通道与其服务器进行安全交互,保证传输过程中用户信息的安全,防止用户的隐私数据被窃取。进一步的,本发明所述实施例通过加密模块17对基于该通道进行信号传输的应用程序的通信数据包依照上述步骤3确定加密算法进行加密,并按照步骤3确定的通信协议将通信数据包进行重新封装,以使封装后的加密数据包在建立的通道中安全传输。其中,对所述应用程序的通信数据包进行加密采用的加密算法为非对称加密算法。由此,更进一步增强了传输数据的安全性,为用户带来更安全的支付体验。更进一步地,为了避免不合法的或恶意应用程序借由安全通道交互信息,本发明通过白名单模块19建立白名单,以在建立通道之前确定应用程序的合法性,仅对所述白名单中的应用程序建立所述安全通道。由判断模块18依据获取的支付类应用程序的身份标识信息判断该支付应用程序是否存在于所述白名单中,如果应用程序不属于预设的白名单中的应用程序,则不建立所述安全通道,直接将该应用程序的数据包经无线局域网传输至其目标服务器,以完成应用程序与其目标服务器之间的通信。其中,所述白名单用于记录支付应用程序的身份标识信息,该身份标识信息包括所述应用程序的UID、包名等能够唯一性确定应用程序身份的信息。具体的,所述白名单由用户预先设置生成,具体可提供一用户界面,接收用户对已安装支付类应用程序的选定指令,将选定的支付类应用程序的标识信息记录于所述白名单,以对该白名单中的支付类应用程序建立所述安全通道。当获取到当前运行应用程序的身份标识信息时,查询其是否存在于预设的白名单中,以确实是否对该应用程序建立安全通道。为进一步方便用户操作,提高体验度,还提供对白名单中的应用程序进行增加或删除操作的功能。即当用户欲卸载某支付类应用程序,或重新下载安装了新的支付类应用程序,可通过对白名单进行删除或增加操作,以更新白名单中记录的信息。由此,基于该记录的白名单选择性地为应用程序建立安全通道,使安全通道的建立更加合理化。同时,对于不合法的应用程序提供用户界面,以提示用户对不合法应用程序做处理,并提供相应的处理项按钮,以引导用户对恶意或不合法程序执行相应处理。由此,可提高对需要建立通道进行安全交互的应用程序的识别度,为用户提供智能化服务,以引导用户对不合法应用程序做出合理的处理,提高用户体验度。进一步地,对于本发明而非某一具体实施例而言,可以通过加强对网络环境的识别而加强移动终端应用程序通信安全的防护。如WiFi接入点可以分为两类,一是具有一定安全性的专有接入点,如办公室、家庭等私有环境接入点;二是在公共场所使用的公共网络接入点,如餐厅、咖啡厅,以及各运营商提供的接入点等。本发明所述方法可以独立或于诸如360免费WiFi之类的应用相结合使用,检测网络接入点的安全性,如果为公共网络接入点,则强制对移动终端的诸如支付宝等支付类应用或其他重要应用建立所述通道,也可以基于其他需要保护的应用程序弹框提示用户,由用户选择是否对相应的应用程序建立通道,由此以确保移动终端安装的应用程序在存在信息泄露的公共网络中进行通信的安全性。而对于安全性较高的私人环境的网络接入点,可提供相关的预设置项,由用户自主决定是否默认为相应的应用程序建立通道进行数据的远程传输。综上所述,本发明仅对支付类应用程序进行保护,且根据连接的WiFi的安全性决定是否自动开启安全通道,并且提供对白名单的支付类应用程序进行动态增删的操作,从而实现在满足用户需求的情况下,避免对VPN服务器造成过大压力,防止其崩溃。支付模块13用于基于该安全通道向远程服务器发送支付数据以完成支付操作。通过建立的安全通道,支付类应用程序调用支付模块13与其远程服务器进行数据交互,获取用户通过支付界面输入的支付信息,将相应的支付信息封装成数据包,并按照与远程服务器约定的密钥进行加密,以生成加密后的数据包,通过该安全通道及约定的通信协议,将该数据包发送至远程服务器。远程服务器接收到所述支付类应用程序发送的数据包,对其进行解析,获取相应的支付数据,并对其进行确认处理,返回应答包。采 用与移动终端的支付类应用程序客户端约定的密钥进行加密,生成加密后的数据包,通过所述安全通道及约定的通信协议,将应答数据包反馈至所述客户端,从而完成所述支付过程。以上所述仅是本发明的部分实施方式,应当指出,对于本
技术领域:
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3