基于vpdn专网的无线通讯方法

文档序号:10555567阅读:505来源:国知局
基于vpdn专网的无线通讯方法
【专利摘要】本发明公开了一种基于VPDN专网的无线通讯方法,由发射端设备的3G模块通过后端路由器进行专网拨号,通过预先在服务端设定的账号、密码与服务端进行chap认证或者pap认证,认证通过后进入专用网络,利用发射端设备中安装的vpn软件通过IKE进行协商,采用国密对称密码SM1分组算法,对密钥协商数据以及报文数据进行加密保护,采用预共享密钥进行终端合法校验、采用DH算法进行密钥交换;采用密码杂凑算法MD5对对称密钥生成以及完整性进行校验;协商完成后建立安全通讯隧道,数据传输通过ipsec esp协议认证算法MD5认证,通过专线传输。本发明由于采用国密算法,且在vpdn专网通信的基础上实现无线加密通信,安全性高,可用于手机、PDA设备等。
【专利说明】
基于VPDN专网的无线通讯方法
技术领域
[0001]本发明属于通讯技术领域,具体涉及一种基于VPDN专网的无线通讯方法。
【背景技术】
[0002]目前无线通信虽然较有线带来了许多方便,但它在安全性方面也领人担忧,特别是商业领域,如银行、军方对数据的保密性要求很高,无线加密传输刚好弥补了它的不足,目前无线加密传输主要应用在路由行业,路由对路由通过点对点或者一点对多点数据传输,然而在手持设备上无法嵌入路由进行通信,而且目前android系统所用到的加密算法主要包含对称性加密(DES、AES)、非对称性加密,其算法公开、计算量小、安全性得不到保证,易被人拦截、破解。

【发明内容】

[0003]本发明的目的是提供一种基于VPDN专网的无线通讯方法,是在安全传输数据之后采用国密算法进行密钥协商,协商完成建立安全通讯隧道后,采用ESP安全封装协议进行数据传输。
[0004]本发明是这样实现的:一种基于VPDN专网的无线通讯方法,由发射端设备的3G模块通过后端路由器进行专网拨号,通过预先在服务端设定的账号、密码与服务端进行chap认证或者pap认证,认证通过后进入专用网络,利用发射端设备中安装的vpn软件通过IKE进行协商,采用国密对称密码SMl分组算法,对密钥协商数据以及报文数据进行加密保护,采用预共享密钥进行终端合法校验、采用DH算法进行密钥交换;采用密码杂凑算法MD5对对称密钥生成以及完整性进行校验;协商完成后建立安全通讯隧道,数据传输通过ipsec esp协议认证算法MD5认证,通过专线传输。
[0005]进一步地,所述报文数据通过UDP协议500端口传输的过程,包括两个阶段,第一阶段为身份认证,采用公私钥密钥对方式,发射端设备与接收端设备根据对称密码算法SMl预先配置好对方的公钥和自身的私钥;第二阶段为消息的完整性检验和数据源的身份验证,利用hash进行,将hash载荷添加在ISAKMP头之后,使用对称密码算法的CBC模式对ISAKMP之后的载荷nonce、ID进行加密。
[0006]进一步地,所述安全通讯隧道中信号发送由虚拟网卡驱动,所述虚拟网卡驱动由Tun/tap 驱动。
[0007]进一步地,所述Tun/tap驱动实现虚拟网卡驱动的处理为:当打开一个tun/tap设备时,open函数将调用tun_Chr_0pen()函数,以完成初始化过程,包括设置网卡驱动的初始化函数、网络缓冲区链表的初始化以及等待队列的初始化;Tun/tap驱动中网卡的注册被嵌入了字符驱动的1ct I例程中,通过对字符设备文件描述符利用自定义的1ctl设置标志TUNSETIFF完成网卡注册;使用1ctl()函数操作字符设备文件描述符,将调用字符设备中tun_chr_1ctl来设置已经open好的tun/tap设备,如果设置标志为TUNSETIFF,则调用tun_set_iff ()函数,对网卡驱动进行注册register_netdev(&tun_>dev),网卡驱动的各个处理例程的挂接在open操作时由tun_chr_open()函数初始化好了。
[0008]进一步地,Tun/tap设备的工作过程为:Tun/tap设备驱动通过字符设备文件来实现数据从用户区获取,发送数据时tun/tap设备是通过字符设备发送至用户区,再由用户区程序通过其他渠道发送。
[0009]进一步地,tun/tap设备发送数据过程为:tun/tap网卡的程序经过协议桟把数据传送给驱动程序,驱动程序调用注册好的hard_start_xmit函数发送,hard_start_xmit函数又会调用tun_net_xmit函数,skb被加入到skb链表,然后唤醒被阻塞的使用tun/tap设备字符驱动读数据的进程,接着tun/tap设备的字符驱动部分调用其tun_chr_read()过程读取skb链表,并将每一个读到的skb发往用户区,完成虚拟网卡的数据发送。
[00?0]进一步地,Tun/tap设备接收数据过程为:当使用¥1^6()系统调用向1:1111八3?设备的字符设备文件写入数据时,tun_chr_write函数将被调用,使用tun_get_user从用户区接受数据,并将数据存入skb中,然后调用关键的函数netif_rx(skb)将skb送给tcp/ip协议桟处理,完成虚拟网卡的数据接收。
[0011]进一步地,所述发射端设备包括手机、PDA设备。
[0012]与现有技术相比,本发明的有益效果:在安全传输数据之后采用国密算法进行密钥协商,协商完成建立安全通讯隧道后,采用ESP安全封装协议进行数据传输;由于采用国密算法即国家密码局认定的国产密码算法安全性高,不易被破解;另外在vpdn专网通信的基础上实现无线加密通信,安全性更高,可用于在手机、PDA设备等;其通过直接连接到路由器,使用方便。
【附图说明】
[0013]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图只是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1是本发明基于VPDN专网的无线通讯系统结构示意图;
[0015]图2是本发明Tun/tap驱动程序示意图;
[0016]图3是本发明Tun/tap驱动中实现的网卡驱动的处理例程;
[0017]图4是本发明Tun/tap设备发送和接收数据程序示意图。
【具体实施方式】
[0018]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例只用以解释本发明,并不用于限定本发明。
[0019]需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者可能同时存在居中元件。当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。
[0020]还需要说明的是,本发明实施例中的左、右、上、下等方位用语,仅是互为相对概念或是以产品的正常使用状态为参考的,而不应该认为是具有限制性的。
[0021 ] 如图1所示,一种基于VPDN专网的无线通讯系统,包括TOA设备I,3G站点2、路由器3和服务器LPDA设备I的3G模块通过3G站点2与路由器4相连,PDA设备I进行专网拨号时,通过在TOA设备I上输入账号、密码的方式在服务端4进行chap认证或者pap认证,当认证通过后,进入专用网络,在专用网络的基础上进行vpn ipsec协议封装。
[0022]PDA设备I中安装的vpn软件通过IKE进行协商,采用国密对称密码SMl分组算法,对密钥协商数据以及报文数据进行加密保护,采用预共享密钥进行终端合法校验、采用DH算法进行密钥交换;采用密码杂凑算法MD5对对称密钥生成以及完整性进行校验。
[0023]在安全传输数据之后采用国密算法进行密钥协商,协商完成建立安全通讯隧道后,采用ESP安全封装协议进行数据传输。
[0024]密钥协商的主要功能就是在通信双方协商SA;在传输数据之前,需经过密钥协商。
[0025]密钥交换技术主要用于协商、建立、修改和删除安全联盟。
[0026]报文是通过UDP协议500端口进行传输,其过程分为两个阶段,第一阶段用于保护PDA设备I与接收端设备之间的通讯而使用的共享策略和密钥,实现通讯双方的身份认证和密钥协商,得到工作密钥,建立ISAKMP SA,第二阶段是使用第一阶段建立的ISAKMP SA建立IPSEC SA,确定通讯双方的IPSEC安全策略和会话密钥。
[0027]第一阶段身份认证采用公私钥密钥对方式,通讯双方都事先配置好对方的公钥和自己的私钥,此过程使用了对称密码算法SMl。
[0028]第二阶段使用了hash进行消息的完整性检验和数据源的身份验证,将hash载荷添加在ISAKMP头之后,ISAKMP之后的载荷nonce、ID等都使用对称密码算法的CBC模式加密。
[0029]如果设备是穿越NAT,则在第一阶段部分消息需要发送NAT_D载荷,其他载荷不变。响应方接收此包解密并认证通过后,要将原来处理500端口状态改为处理4500端口,后续的协商过程都使用4500端口进行,以后500端口收到的不是新协商的包都将被丢弃。
[0030]数据传输采用的ESP封装协议,该协议提供了数据的机密性、数据源鉴别、无连接的完整性、抗重放攻击及有限信息流量的保护等,使工业设备得到很好的安全保障及数据传输的安全。
[0031]安全通讯隧道中信号发送由虚拟网卡驱动,所述虚拟网卡驱动由Tun/tap驱动。
[0032]做为虚拟网卡驱动,Tun/tap驱动程序的数据接收和发送并不直接和真实网卡打交道,而是通过用户态来转交。在Iinux下,要实现核心态和用户态数据的交互,有多种方式:可以通用socket创建特殊套接字,利用套接字实现数据交互;通过proc文件系统创建文件来进行数据交互;还可以使用设备文件的方式,访问设备文件会调用设备驱动相应的例程,设备驱动本身就是核心态和用户态的一个接口,Tun/tap驱动就是利用设备文件实现用户态和核心态的数据交互。
[0033]从结构上来说,Tun/tap驱动并不单纯是实现网卡驱动,同时它还实现了字符设备驱动部分。以字符设备的方式连接用户态和核心态。
[0034]如图2所示,Tun/tap驱动程序中包含两个部分,一部分是字符设备驱动,还有一部分是网卡驱动部分。利用网卡驱动部分接收来自TCP/IP协议栈的网络分包并发送或者反过来将接收到的网络分包传给协议栈处理,而字符驱动部分则将网络分包在内核与用户态之间传送,模拟物理链路的数据接收和发送,Tun/tap驱动很好的实现了两种驱动的结合。
[0035]如图3所示,Tun/tap驱动中实现网卡驱动的处理例程为:当打开一个tun/tap设备时,open函数将调用tUn_Chr_0pen()函数,以完成一些重要的初始化过程,包括设置网卡驱动部分的初始化函数、网络缓冲区链表的初始化以及等待队列的初始化。Tun/tap驱动中网卡的注册被嵌入了字符驱动的1ctl例程中,它是通过对字符设备文件描述符利用自定义的1ctl设置标志TUNSETIFF完成网卡的注册的。使用1ct 1函数操作字符设备文件描述符,将调用字符设备中tun_chr_1ctl来设置已经open好的tun/tap设备,如果设置标志为TUNSETIFF,则调用tun_set_iff O函数,此函数将完成很重要的一步操作,就是对网卡驱动进行注册:register_netdev(&tun_>dev),网卡驱动的各个处理例程的挂接在open操作时由tun_chr_open()函数初始化好了。
[0036]Tun/tap设备的工作过程:Tun/tap设备提供的虚拟网卡驱动,从tcp/ip协议桟的角度而言,它与真实网卡驱动并没有区别。从驱动程序的角度来说,它与真实网卡的不同表现在tun/tap设备获取的数据不是来自物理链路,而是来自用户区,Tun/tap设备驱动通过字符设备文件来实现数据从用户区的获取。发送数据时tun/tap设备也不是发送到物理链路,而是通过字符设备发送至用户区,再由用户区程序通过其他渠道发送。
[0037]如图4所示,tun/tap设备发送数据过程:使用tun/tap网卡的程序经过协议栈把数据传送给驱动程序,驱动程序调用注册好的hard_start_xmit函数发送,hard_start_xmit函数又会调用tun_net_xmit函数,其中skb将会被加入skb链表,然后唤醒被阻塞的使用tun/tap设备字符驱动读数据的进程,接着tun/tap设备的字符驱动部分调用其tun_chr_readO过程读取skb链表,并将每一个读到的skb发往用户区,完成虚拟网卡的数据发送。
[0038]如图4所示,tun/tap设备接收数据过程:当使用write()系统调用向tun/tap设备的字符设备文件写入数据时,tun_chr_write函数将被调用,它使用tun_get_user从用户区接受数据,其中将数据存入skb中,然后调用关键的函数netif_rx(skb)将skb送给tcp/ip协议栈处理,完成虚拟网卡的数据接收。
[0039]整个数据传输过程:首先通过TOA设备的vpn软件跟服务端路由将vpn隧道建立,然后TOA设备采集数据通过串口将数据发给3g模块,3g模块再通过专网vpn隧道将数据发到服务端,整个过程vpn实现了无线数据的加解密处理,确保数据的安全可靠。
[0040]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于VPDN专网的无线通讯方法,其特征在于,由发射端设备的3G模块通过后端路由器进行专网拨号,通过预先在服务端设定的账号、密码与服务端进行chap认证或者pap认证,认证通过后进入专用网络,利用发射端设备中安装的vpn软件通过IKE进行协商,采用国密对称密码SMl分组算法,对密钥协商数据以及报文数据进行加密保护,采用预共享密钥进行终端合法校验、采用DH算法进行密钥交换;采用密码杂凑算法MD5对对称密钥生成以及完整性进行校验;协商完成后建立安全通讯隧道,数据传输通过ipsec esp协议认证算法MD5认证,通过专线传输。2.根据权利要求1所述的基于VPDN专网的无线通讯方法,其特征在于,所述报文数据通过UDP协议500端口传输的过程,包括两个阶段,第一阶段为身份认证,采用公私钥密钥对方式,发射端设备与接收端设备根据对称密码算法SMl预先配置好对方的公钥和自身的私钥;第二阶段为消息的完整性检验和数据源的身份验证,利用hash进行,将hash载荷添加在ISAKMP头之后,使用对称密码算法的CBC模式对ISAKMP之后的载荷nonce、ID进行加密。3.根据权利要求1所述的基于VPDN专网的无线通讯方法,其特征在于,所述安全通讯隧道中信号发送由虚拟网卡驱动,所述虚拟网卡驱动由Tun/tap驱动。4.根据权利要求3所述的基于VPDN专网的无线通讯方法,其特征在于,所述Tun/tap驱动实现虚拟网卡驱动的处理例程为:当打开一个tun/tap设备时,open函数将调用tun_Chr_open()函数,以完成初始化过程,包括设置网卡驱动的初始化函数、网络缓冲区链表的初始化以及等待队列的初始化;Tun/tap驱动中网卡的注册被嵌入了字符驱动的1ctl例程中,通过对字符设备文件描述符利用自定义的1ctl设置标志TUNSETIFF完成网卡注册;使用1ctlO函数操作字符设备文件描述符,将调用字符设备中tun_Chr_1Ctl来设置已经open好的tun/tap设备,如果设置标志为TUNSETIFF,则调用tun_set_iff()函数,对网卡驱动进行注册register_netdev(&tun_>dev),网卡驱动的各个处理例程的挂接在open操作时由tun_chr_open()函数初始化好了。5.根据权利要求3所述的基于VPDN专网的无线通讯方法,其特征在于,Tun/tap设备的工作过程为:Tun/tap设备驱动通过字符设备文件来实现数据从用户区获取,发送数据时tun/tap设备是通过字符设备发送至用户区,再由用户区程序通过其他渠道发送。6.根据权利要求3所述的基于VPDN专网的无线通讯方法,其特征在于,tun/tap设备发送数据过程为:tun/tap网卡的程序经过协议栈把数据传送给驱动程序,驱动程序调用注册好的 hard_start_xmit 函数发送,hard_start_xmit 函数又会调用tun_net_xmit函数,skb 被加入到skb链表,然后唤醒被阻塞的使用tun/tap设备字符驱动读数据的进程,接着tun/tap设备的字符驱动部分调用其tun_chr_read()过程读取skb链表,并将每一个读到的skb发往用户区,完成虚拟网卡的数据发送。7.根据权利要求3所述的基于VPDN专网的无线通讯方法,其特征在于,Tun/tap设备接收数据过程为:当使用write()系统调用向tun/tap设备的字符设备文件写入数据时,tun_chr_write函数将被调用,使用tun_get_user从用户区接受数据,并将数据存入skb中,然后调用关键的函数netif_rx( skb)将skb送给tcp/ip协议桟处理,完成虚拟网卡的数据接收。8.根据权利要求1所述的基于VPDN专网的无线通讯方法,其特征在于,所述发射端设备包括手机、PDA设备。
【文档编号】H04L29/06GK105915511SQ201610228433
【公开日】2016年8月31日
【申请日】2016年4月13日
【发明人】刘连生
【申请人】深圳市融钞科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1