CN102065125A - 一种嵌入式ssl vpn的实现方法 - Google Patents

一种嵌入式ssl vpn的实现方法 Download PDF

Info

Publication number
CN102065125A
CN102065125A CN2010105497135A CN201010549713A CN102065125A CN 102065125 A CN102065125 A CN 102065125A CN 2010105497135 A CN2010105497135 A CN 2010105497135A CN 201010549713 A CN201010549713 A CN 201010549713A CN 102065125 A CN102065125 A CN 102065125A
Authority
CN
China
Prior art keywords
vpn
client
server
embedded
data
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.)
Pending
Application number
CN2010105497135A
Other languages
English (en)
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.)
Guangzhou Zhiyuan Electronics Co Ltd
Original Assignee
Guangzhou Zhiyuan Electronics 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 Guangzhou Zhiyuan Electronics Co Ltd filed Critical Guangzhou Zhiyuan Electronics Co Ltd
Priority to CN2010105497135A priority Critical patent/CN102065125A/zh
Publication of CN102065125A publication Critical patent/CN102065125A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及嵌入式通信系统技术领域,采用嵌入式SSL VPN的方法解决了在不同嵌入式设备之间通信的数据安全性问题和资源的统一管理性问题。本发明的特征在于:(1)VPN服务器通过自定义的VPN通信协议标准进行通信;(2)VPN客户端通过采用虚拟网卡技术获取相关数据包并进行统一封装,同时,可以通过虚拟网卡定位虚拟局域网中嵌入式设备的位置;(3)VPN客户端通过采用统一抽象接口技术,针对不同的链路通信模块和嵌入式主板之间的接口进行了统一化的处理。由于本发明在嵌入式领域实现了SSL VPN方法,保证了数据传输的安全性,并在很大程度上优化了多嵌入式平台资源管理的现状,所以对于嵌入式领域的发展有着重要的影响。

Description

一种嵌入式SSL VPN的实现方法 
技术领域
本发明涉及嵌入式通信系统技术领域,特别是一种使用Internet协议和SSL协议的嵌入式VPN安全通信系统。 
背景技术
随着Internet和嵌入式技术的迅速发展,嵌入式设备(探测器、智能家居、个人医疗、移动设备等)连接入网的数量急剧增长,并且这种增长的趋势将会持续下去。具有通信功能的嵌入式设备使得计算机技术应用于现场监控、医疗紧急响应、战场管理和家居自动化等设备中成为可能,这些设备种类复杂,通过各种不同的方式连入Internet,这些嵌入式设备都需具备高安全性保障,如果没有足够的安全性,攻击者可能窃取通信数据,破坏数据完整性,甚至控制这些设备并引发灾难性的后果。 
嵌入式设备除了存在一些通信安全问题外,在资源管理方面也有很多问题需要改进。越来越多的嵌入式设备应用于远程控制,例如:水利系统监控、电力系统监控、油田数据采集等。在数据采集或监控的过程中,每一个设备节点采集的数据最终被汇集在公司内部中央数据库统一管理。随着远程化办公趋势的到来,工作人员常常希望能够在世界各地通过像手机、手持电脑等移动嵌入式设备直接访问公司内部中央数据库或者各个设备节点的数据,这使得解决嵌入式系统资源统一管理的问题迫在眉睫。 
嵌入式设备所面临的通信安全问题和资源统一管理问题在全社会各行业应用中逐渐凸显。例如:银行作为国家的重要金融机构,位于城市的各个角落,它具有规模多样、重要设施繁多、出入人员管理复杂、涉及领域广等特点。而今高科技犯罪越来越多,因此,银行需要建立一套先进、可靠的嵌入式监控系统。该系统保证24小时全天候不间断地工作,且进行安全实时的数据传输,能满足扩大营业网点或机构调整,可随时增大监控的规模。 
银行的监控系统主要应用在:收银柜台监控、储蓄所现场、ATM机监控等,有了监控系统能有效地解决抢劫、信息被盗等案件。尤其对ATM业务来说,其犯罪现象越来越多,在全国各地出现了多起盗取合法持卡人钱款的犯罪活动以及各种破坏ATM的恶性事件,如何保护用户的合法财产及银行的利益,防范各种针对银行的犯罪行为是一个亟待解决的问题,因此许多银行都开始积极推进嵌入式监控系统的深入应用。 
目前大多数银行通过专网进行业务传送,专网的带宽往往不能支撑监控等视频信息的传 送。专网的高带宽是以高成本为代价,如1M的DDN专线每个月的线路费用为两千元,因此用户无法将监控业务通过网络集中管理、集中保存监控数据。由于带宽限制,目前绝大部分的监控图像只能在本地保存,这样一方面由于数据分散,设备的投入和维护工作量都较大,数据丢失风险就更高;另一方面由于无法实现集中管理,使得系统的随意性较大,增加了数据丢失风险。近年来基于Internet协议通过VPN(Virtual Private Network,虚拟专用网络)技术来实现的集中监控系统开始逐渐为银行所接受,由于其廉价的宽带接入,并且有足够的带宽保证银行集中监控系统,同时还可通过VPN技术获得了很好的数据安全保障,可谓是一举两得。目前,Ethernet、ADSL等接入线路一般都能够提供1~100M的带宽,完全能满足传送多媒体等业务。 
目前主流的VPN技术主要有两类:IPSec VPN和SSL(Secure Socket Layer,安全套接层)VPN。 
IPSec VPN是基于IPSec协议的,属于OSI模型第三层VPN技术,协议定义了完整的安全机制,对用户数据的完整性和私密性都有完善的保护措施。过去,大多数公司都是使用传统的IPSec VPN来解决远程接入的问题,但是IPSec VPN最初是为了解决网对网(Lan To Lan)的安全问题而制定的协议,因此在此基础上建立的远程接入方案在面临越来越多的点对网(End To Lan)或者点对点(End To End)应用情况下已经力不从心。由于IPSec VPN自身的局限性,导致其还存在以下缺点: 
1.部署IPsec VPN网络时,需要在用户设备上安装复杂的客户端软件,而远程用户的移动性要求VPN可以快速部署客户端,并动态建立连接;远程终端的多样性还要求VPN的客户端具有跨平台、易于升级和维护等特点,这些问题基于IPSec协议实现VPN技术难度很大。 
2.传统的IPSec解决方案无法检查用户设备的安全性。如果用户通过不安全的嵌入式终端设备访问公司内部网络,可能引起公司内部网络感染病毒。 
3.访问控制不够细致。由于IPsec是在网络层实现的,对IP报文的内容无法识别,因而不能控制高层应用的访问请求。随着企业经营模式的改变,企业需要建立Extranet(外联网),与合作伙伴共享某些信息资源,以便提高企业的运作效率。对合作伙伴的访问必须进行严格有效地控制,才能保证企业信息系统的安全,而IPsec VPN很难实现访问权限的控制。 
4.在复杂的组网环境中,IPsec VPN部署比较困难。在使用NAT的场合,IPsec VPN需要支持NAT穿越技术,在部署防火墙的网络环境中,由于IPsec协议在原TCP/UDP头的前面增加了IPsec报文头,因此,需要在防火墙上进行特殊的配置,允许IPsec报文通过。 
5.设备支持问题。随着未来嵌入式技术的发展,嵌入式终端的种类将会越来越多,IPSec客户端需要有更多的版本来适应这些终端,但随着终端种类的爆炸性增长,这几乎是不可能 的。 
SSL协议是Netscape(美国网景)公司提出一种基于WEB应用的安全协议,主要是使用公开密钥体制和数字证书技术保护信息传输的机密性和完整性,适用于点对点之间的信息传输。 
SSL协议位于TCP/IP协议与各种应用层协议之间,它可以为任何基于TCP或UDP协议的应用层协议提供安全性保证,高层的应用层协议(例如:HTTP,FTP,TELNET...)能透明的建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作,在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。 
如图2所示为SSL协议分层结构图,SSL协议本身分为两层: 
(1)上层为SSL握手协议、SSL改变密码规则协议和SSL报警协议; 
(2)底层为SSL记录协议(SSL record protocol)。 
其中: 
SSL握手协议:是SSL协议非常重要的组成部分,用来协商通信过程中使用的加密套件(加密算法、密钥交换算法和MAC算法等)、在服务器和客户端之间安全地交换密钥、实现服务器和客户端的身份验证。 
SSL密码变化协议:客户端和服务器端通过密码变化协议通知对端,随后的报文都将使用新协商的加密套件和密钥进行保护和传输。 
SSL警告协议:用来向通信对端报告告警信息,消息中包含告警的严重级别和描述。 
SSL记录协议:主要负责对上层的数据(SSL握手协议、SSL密码变化协议、SSL警告协议和应用层协议报文)进行分块、计算并添加MAC值、加密,并把处理后的记录块传输给对端。 
SSL VPN是基于SSL协议实现的VPN技术。SSL VPN克服了之前所述的IPsec VPN技术的缺点,以其跨平台、免安装、免维护的客户端,丰富有效的权限管理而成为远程接入方式中的首选。 
虽然我们可以通过SSL VPN方案来解决嵌入式智能设备的网络安全及资源的统一管理问题,但将其应用到嵌入式设备上还存在以下几个难点: 
1.嵌入式系统可以采用有线或者无线方式接入Internet网络,在远程控制中常采用ZigBee、GPRS,WiFi等无线接入方式,这就很难保证网络中不同平台的客户端之间数据的安全共享,身份的合法性以及网络的稳定性。 
2.嵌入式系统大多会受到资源的严格限制,其系统本身经过裁剪定制,安全性和稳定性有待于长时间的检测,如果采用复杂的网络安全协议对于嵌入式智能设备的性能也是一个新的挑战。 
3.嵌入式系统相对传统PC设备数据处理能力较差、存储器较小、系统功能单一,安全性较低,所以更加难以保证网络通信时其数据的安全性和身份的合法性。如果不能很好地解决安全问题,这些嵌入式智能设备的安全将成为一个严重的漏洞。 
4.嵌入式系统平台差异性较大,对于多个不同平台的嵌入式智能设备要想在同一个网络内互联通信,直接采用传统的VPN实施部署方案是行不通的。 
本发明专利针对上述各难点结合不同的嵌入式智能平台的特点提出相应的解决方法,从根本上解决了嵌入式系统多平台、多链路网络通信的安全问题,以及改善嵌入式系统多平台资源难以统一管理的问题。 
发明内容
如图1所示,一种嵌入式SSL VPN的实现方法所阐述的主要思想为:利用虚拟网卡统一封装技术解决多嵌入式平台多链路数据包封装格式不统一的问题;利用自定义VPN通信协议解决嵌入式资源难以统一管理的问题,简化VPN服务器同时支持基于MAC地址和IP地址进行数据转发的实现方法,方便兼容多协议版本的VPN客户端;利用抽象接口技术解决嵌入式设备通过多链路进行数据通信时难以统一通信设备接口的问题。 
一、虚拟网卡 
嵌入式平台种类繁多,个体差异性较大。不同的嵌入式平台之间可能会使用不同的通信链路进行通信,按照不同的链路协议标准,最终在数据链路层封装的数据帧格式也各不相同。如果采用传统方式实现SSL VPN系统,在进行数据转发时就会出现如下问题: 
(1)VPN服务器一般只能针对多台使用相同链路协议的嵌入式设备进行数据转发。如果多台设备使用不同链路协议通信,服务器需要针对每种协议的数据帧进行解析、重组,构造新的数据帧进行转发。如果服务器能够支持各种协议帧的转换,并假设链路层协议共有M种,那么服务器则需要实现M*(M-1)种转换模块。然而由于很多链路协议标准决定了协议帧的格式不能够进行二次转换,所以要实现这样的服务器转发模块成本太高,甚至无法实现。 
(2)VPN服务器针对不同的通信链路传递过来的数据帧采用所对应的通信协议标准进行解析、转发,而现有的链路协议标准就达10种以上,随着电子信息技术的发展,新技术、新协议、新标准产生的更快。如果依然采用传统方式进行数据帧转发,VPN服务器端的数据转发模块将会因为无限制的增加新协议解析而会出现模块过度膨胀,代码激增,这都将导致VPN服务器的稳定性下降,效率降低。VPN服务器是VPN系统的核心模块,如果服务器的稳定性和效率无法保证,整个VPN系统将会十分脆弱和低效。 
(3)安装了VPN客户端的主机上的数据包可以分为两类:一类是属于VPN专用隧道内的数据包,另一类是普通数据包,如何区分这两类数据包,是实现VPN系统的一个重点。常见的做法是对数据包加上标志位,通过标志位来进行判别,或者使用NDIS中间层驱动进行过滤操作,但是前一种做法会让数据包的解析变的十分复杂,后一种做法会导致整个系统架构十分混乱,不利于系统的扩展。 
针对以上问题,本发明提出了一种虚拟网卡的解决方法解决了嵌入式SSL VPN的关键性问题。 
使用虚拟网卡解决方案,特点如下: 
(1)通过使用虚拟网卡使所有的VPN数据包统一封装为以太网数据包格式,这样就避免了VPN服务器需要对数据包进行复杂的协议格式转换,并且VPN服务器针对不同的通信链路传递过来的数据帧不需要分类处理。这样,就在很大程度上降低了VPN服务器的负荷,简化了VPN服务器的转发规则,提高了转发效率。 
(2)由于SSL VPN系统可以方便地使用虚拟网卡从TCP/IP协议栈获取相关的数据包,不需要另外编写程序来区分是否为VPN数据包,并且将这些数据包送入系统的VPN专用隧道,从而可以保证数据包在公网中的安全传输。使用了虚拟网卡解决方案,对数据包的过滤是在驱动层进行,对数据包的处理(含加解密)是在应用层进行,这种架构设计保证了系统的稳定性和在嵌入式平台的可扩展性。 
(3)所有VPN客户端的虚拟网卡在分配了一个虚拟IP之后,可以方便系统定位到每一台VPN客户端,这种方式较其他方式更为方便、快捷。 
虚拟网卡的设计原理如下:虚拟网卡一般包括两个部分,一部分是虚拟网卡驱动,负责与TCP/IP协议栈进行交互;另一部分是交互驱动,负责与处于用户态的VPN处理进程进行交互。交互驱动与虚拟网卡驱动进行数据包传递的方式在不同平台下是不同的,取决于交互驱动的具体实现。交互驱动在不同的平台下实现也是不同的,如在Linux平台下是字符驱动,在WinCE平台下是NDIS协议驱动。总之,虚拟网卡驱动和交互驱动需要一起完成数据包在用户态VPN处理进程和对应的应用程序之间的传递。 
虚拟网卡的设计原理如图3所示,数据在整个系统中的流向是双向可逆的,单独的发送和接收数据是单向不可逆。 
虚拟网卡的工作流程如下: 
(1)发送数据包:当应用程序发送一个数据包之后,这个数据包会被传送到TCP/IP协议栈。在这个协议栈中,数据包会根据自身的目的IP进行分流,从而选择被发送到虚拟网卡还是物理网卡。当对应的数据包进入虚拟网卡之后,交互驱动会将数据包从虚拟网卡的缓冲 区中读取出来,并传递到VPN处理进程。 
(2)接收数据包:当物理网卡从VPN虚拟专用隧道收到数据包之后,物理网卡会将数据包通过TCP/IP协议栈提交给VPN处理进程,然后由交互驱动从VPN处理进程读取这个数据包,并传送到虚拟网卡驱动。虚拟网卡驱动收到数据包之后,会由自身的回调函数将数据包经TCP/IP协议栈传递给对应的应用程序。 
虚拟网卡的具体实现取决于各个平台,不同平台虚拟网卡的实现是有差异的。 
在Linux平台下,虚拟网卡驱动包括两个组成部分,交互驱动部分对应字符设备驱动,还有一部分是网卡驱动部分。利用网卡驱动部分接收来自TCP/IP协议栈的网络分包并发送,同时将接收到的网络分包传给TCP/IP协议栈进行处理,而字符驱动部分则负责网络分包在内核与用户态之间传送,模拟物理链路的数据接收和发送。网卡驱动的设备结构见代码清单1。 
程序清单1网卡驱动的设备结构示意代码 
struct virnic_struct{ 
    char                    name[8];       /*设备名*/
    struct fasync_struct    *fasync;       /*文件异步通知结构*/
    wait_queue_head_t       read_wait;     /*等待队列*/
    struct net_device       dev;           /*linux 抽象网络设备结构*/
    struct sk_buff_heak     txq;           /*网络缓冲区队列*/
    struct net_device_stats stats;         /*网卡状态信息结构*/
}; 
struct net_device结构是Linux内核提供的统一网络设备结构,定义了系统统一的访问接口。 
网卡驱动中需要实现的处理例程见程序清单2。 
程序清单2网卡驱动实现的处理例程示意代码 
/*网络设备初始化例程*/ 
int net_init(struct net_device*dev); 
/*打开网络设备*/ 
static int net_open(struct net_device*dev); 
/*数据包发送例程*/ 
static int net_send(struct sk_buff*skb,struct net_device*dev); 
/*数据包接收例程*/ 
static int ent_recv(struct sk_buff*skb,struct net_device*dev); 
/*关闭网络设备/* 
static int net_close(struct net_device*dev); 
在Linux中,字符设备和块设备统一以文件的方式访问,都是使用open()函数打开设备文件或普通文件,用read()和write()函数实现读写文件等等。虚拟网卡驱动部分定义的字符设备的访问接口见程序清单3。 
程序清单3Linux驱动字符设备访问接口示意代码 
static struct file_operations fops={ 
owner:THIS_MODULE, 
llseek:chr_lseek, 
reda:chr_read, 
write:chr_write; 
poll:chr_poll, 
ioctl:chr_ioctl; 
open:chr_open, 
release:chr_close, 
fasync:chr_fasync 
}; 
在WinCE平台下,虚拟网卡驱动也包括两个组成部分,一部分是NDIS协议驱动,另一部分是NDIS小端口驱动。类似于Linux下虚拟网卡驱动的实现,利用NDIS小端口驱动部分接收来自TCP/IP协议栈的网络分包并发送,同时将接收到的网络分包传给TCP/IP协议栈处理,而NDIS协议驱动部分则将网络分包在内核与用户态之间传送,模拟物理链路的数据接收和发送。 
NDIS协议驱动需要实现的处理例程见程序清单4。 
程序清单4NDIS协议驱动实现例程示意代码 
pDriverObject->MajorFunction[IRP_MJ_CREATE] =NdisProtOpen; 
pDriverObject->MajorFunction[IRP_MJ_CLOSE]  =NdisProtClose; 
pDriverObject->MajorFunction[IRP_MJ_READ]   =NdisProtRead; 
pDriverObject->MajorFunction[IRP_MJ_WRITE]  =NdisProtWrite; 
pDriverObject->MajorFunction[IRP_MJ_CLEANUP]=NdisProtCleanup; 
pDriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL]=NdisProtIoControl; 
pDricerObject->DriverUnload=NdisProtUnload; 
NDIS协议驱动需要实现的一些回调函数见程序清单5。 
程序清单5NDIS协议驱动需要实现的回调函数 
protocolChar.OpenAdapterCompleteHandler =NdisProtOpenAdapterComplete; 
protocolChar.CloseAdapterCompleteHandler=NdisProtCloseAdapterComplete; 
protocolChar.SendCompleteHandler        =NdisProtSendComplete; 
protocolChar.TransferDataCompleteHandler=NdisProtTransferDataComplete; 
protocolChar.ResetCompleteHandler       =NdisProtResetComplete; 
protocolChar.RequestCompleteHandler     =NdisProtRequestComplete; 
protocolChar.ReceiveHandler             =NdisProtReceive; 
protocolChar.ReceiveCompleteHandler     =NdisProtReceiveComplete; 
protocolChar.StatusHandler              =NdisProtStatus; 
protocolChar.StatusCompleteHandler      =NdisProtStatusComplete; 
protocolChar.BindAdapterHandler         =NdisProtBindAdapter; 
protocolChar.UnbindAdapterHandler       =NdisProtUnbindAdapter; 
protocolChar.UnloadHandler              =NULL; 
protocolChar.ReceivePacketHandler       =NdisProtReceivePacket; 
protocolChar.PnPEventHandler            =NdisProtPnPEventHandler; 
NDIS小端口驱动需要实现的回调函数见程序清单6。 
程序清单6NDIS小端驱动需要实现的回调函数 
    MPChar.InitializeHandler      =MPInitialize; 
    MPChar.HaltHandler              =MPHalt; 
    MPChar.SetInformationHandler  =MPSetInformation; 
    MPChar.QueryInformationHandler   =MPQueryInformation; 
    MPChar.SendPacketsHandler        =MPSendPackets; 
    MPChar.ReturnPacketHandler       =MPReturnPacket; 
    MPChar.ResetHandler              =MPReset; 
    MPChar.CheckForHangHandler       =MPCheckForHang;//optional 
#ifdef NDIS51_MINIPORT 
        MPChar.CancelSendPacketsHandler=MPCancelSendPackets; 
        MPChar.PnPEventNotifyHandler   =MPPnPEventNotify; 
        MPChar.AdapterShutdownHandler  =MPShutdown; 
#endif 
二、通信协议 
嵌入式VPN通信协议是自定义通信协议,基于该协议可以实现系统资源统一管理,客户端IP动态分配,获取客户端实时状态信息等功能。采用协议的方式实现VPN系统的第三方功能扩展只需要在协议的基础上进行,有些功能只需要一个命令就能实现,这很大程度上降低了VPN系统功能扩展的开发难度,提高了开发效率,同时也方便代码的统一化管理。为了保证该系统的可扩展性,该协议在制定过程中还另外增加了相应的预留域。 
VPN协议封装数据包结构如图4所示。 
1.VPN封装数据包格式 
客户端与服务器通信过程中所有标志信息封装在数据包头部,经过封装后的数据包结构如下所示。 
  VPN协议头   数据包   外带数据
2.VPN协议头格式 
VPN协议头大小为:8字节,VPN协议头详细组织结构如下所示。 
  请求/应答 客户端/服务器 协议版本号 命令码 数据长度   外带数据长度
  1字节 1字节 1字节 1字节 2字节   2字节
VPN协议头实现的示例代码见代码清单7。 
程序清单7VPN协议头结构体示意代码 
struct  { 
        byte         ucAckFlg; 
        byte         ucPeerFlg; 
        byte         ucVersioNo; 
        byte         ucCmdNo; 
        u_short      usDataLen; 
        u_short      usExtraDataLen; 
  }VPNProtocolType; 
其中: 
(1)ucAckFlg 
表示本数据基本请求/应答属性,为请求、应答标识,或为无效位。 
(2)ucPeerFlg 
表示本端在连接中的角色,为客户端或服务器端。 
(3)ucVersionNo 
表示发送端封装数据所采用的协议版本号。 
(4)ucCmdNo 
表示该数据包的功能属性,为命令码或为无效位。 
(5)usDataLen 
表示该数据包不包括VPN协议头的实际数据长度。 
(6)usExtraDataLen 
表示外带数据长度。 
3.VPN协议头内容详述 
VPN协议头各项内容的详细描述如表1所示。 
表1VPN协议字段 
4.命令码详述 
命令码分为三类:无效位、单命令、状态命令,命令码段的命令详细分类和代表的意思如表2所示。 
表2VPN协议命令码 
命令码段不同的请求命令要求有对应格式的数据返回,针对不同的命令请求返回的命令数据详细描述如表3所示。 
表3VPN协议命令字段返回值 
Figure BSA00000351135600112
5.VPN协议通信规则 
(1)VPN通信协议规定在发送请求命令时发送端发送的请求命令码,接收端针对该命令回复的数据在命令码段也要填充上发送端发送过来的请求命令码。 
(2)利用VPN通信协议进行数据通信时,如果发送的数据包为数据转发包,则将命令码段置为无效位,如果发送的数据包为请求命令,则将命令码端置位相应的命令。 
6.通信步骤 
VPN通信协议规定了通信协议的处理流程,如图5是数据流按照VPN通信协议规范在VPN系统中传输的整个过程。 
以下是客户端与服务器按照VPN通信的具体步骤: 
(1)客户端从虚拟网卡中读取原始数据帧; 
(2)由VPN处理模块对原始数据帧添加上VPN协议头和附加数据段; 
(3)客户端通过物理网卡将再封装的数据帧发送到服务器端; 
(4)服务器接收到客户端发送过来的数据,解析数据帧的VPN协议头,根据协议头命令码段判断是否为命令数据帧。如果是命令数据帧,则将该数据帧转交给服务器端的命令处理模块处理。如果不是命令数据帧,则按照按照步骤5处理; 
(5)转发数据帧:根据协议版本号,解析数据帧的IP地址或MAC地址,查找IP或MAC转发表获取相关的上下文转发给对应的客户端; 
(6)接收到转发数据帧的客户端将数据写入客户端虚拟网卡做相应处理。 
7.协议实现的功能 
采用VPN协议可以扩展实现VPN的基本管理功能,如:标识数据帧的详细类型、获取客户端状态信息,实现VPN客户端动态IP分配,添加外带数据等。下面以动态IP分配、生成自动网络拓扑图、根据不同客户端版本进行相应的数据转发三个应用为例说明VPN通信协议的基本实现步骤。 
(1)VPN客户端和服务器通过VPN协议实现IP动态分配的方法步骤如下: 
a.客户端向服务器发送IP动态分配的请求帧,该数据帧的VPN协议头命令码字段的值为IP动态分配的请求命令; 
b.服务器接收到该请求帧,解析VPN协议头,得知该数据帧为请求命令帧,请求命令为IP动态分配。服务器根据该命令计算获取给客户端分配的IP地址,并在服务器端的数据转发表中记录下IP地址; 
c.服务器构造返回数据帧,填充VPN协议头命令字段的值为IP动态分配的请求命令,最终发送给请求的客户端。 
(2)为了更加方便地管理虚拟网络,VPN服务器通过VPN通信协议实现动态生成网络拓扑图的方法如下: 
a.服务器以广播的形式向客户端发送命令请求,请求客户端的属性,包括:物理地址、硬件标识,软件标识; 
b.客户端收到请求帧,解析VPN协议头判断该数据帧为请求命令帧,请求命令为获取客户端所有状态的请求命令,客户端根据该命令获取所有状态信息; 
c.客户端构造返回数据帧,填充VPN协议头命令字段的值为获取客户端所有状态的请 求命令,最终发送给服务器端;
d.服务器汇集所有客户端的信息,将该信息在服务器端分类,以该信息作为源信息生成拓扑图。 
(3)为了兼容各种不同版本VPN客户端的需求,VPN可通过VPN协议中版本号字段实现基于IP或MAC地址转发,该方法的基本步骤如下: 
a.客户端向服务器发送转发数据帧; 
b.服务器接收到客户端的数据帧,解析VPN协议头部分,判断版本号字段的值,如果该值为根据MAC地址转发的协议版本号,服务器根据MAC转发表进行转发数据;如果该值为根据IP地址转发的协议版本号,服务器根据IP转发表进行转发数据。服务器端需要维护IP转发表和MAC转发表两张表。 
三、抽象接口 
嵌入式设备连接Internet的方式有多种多样,如:GPRS链路、WiFi链路、Ethernet链路、PPP链路等,而嵌入式设备接入网络一般都通过不同的链路模块来完成此功能。对于网络通信的整个流程来说,不同的链路在网络处理时差异性较大,协议多变,很难统一化处理。一般嵌入式设备通过多链路入网多采用外接模块的方式进行收发数据,接入网络模块主要有:GPRS模块,WIFi模块等。不同的模块与嵌入式主板之间的接口多采用标准协议接口,如:RS-232、RS-485,USB2.0等。为了方便客户端安装部署,在SSL VPN客户端中针对不同的链路通信模块和嵌入式主板之间的接口做了统一化处理,通过采用抽象接口技术,结合客户端配置文件通过软件枚举的方式实现客户端针对不同链路接口进行选择通信,避免针对不同通信链路模块修改VPN客户端代码。抽象接口结构如表4所示。 
表4抽象接口示例表 
Figure BSA00000351135600141
所谓抽象接口技术将不同的通信模块接入嵌入式设备的方式抽象化,在VPN客户端处理程序中采用统一接口对这些连接方式进行描述,开发上层应用程序的开发者在需要发送数据时,就可不用考虑下层使用的具体连接方式以及通信模块,只需直接调用发送数据的抽象接口即可以实现发送数据。抽象接口在实现时要枚举所有通用的通信模块连接方式,并逐一实 现数据在嵌入式设备和其对应通信模块之间的传递。通用的抽象接口示例代码见程序清单8。 
程序清单8多链路通信模块抽象接口示例代码 
/*接口类型*/ 
enum 
    COM=1,          /*串口方式*/
    USB,             /*USB方式*/
    ETHERNET          /*以太网接口*/
}InterFaceType; 
/*初始化接口*/ 
int InitInterface(enum InterFaceType type); 
/*发送数据*/ 
int SendData(const void*buff,int iLen); 
/*接收数据*/ 
int RecvData(void*buff,int iLen); 
/*卸载设备*/ 
int UninitInterface(enum InterFaceType type); 
抽象接口模块是将抽象函数接口与系统配置文件一起使用的。例如:目前VPN客户端采用GPRS模块接入Internet,GPRS模块与嵌入式设备主板是以RS232标准通信接口相连接,抽象接口实现的基本原理和步骤如下: 
(1)首先配置本地系统文件,如:sysCfg.ini,将TYPE节中name参数的值置为COM,在下面的COM节中的将所有的参数赋上对应的值。如文件格式示例1所示为sysCfg.ini文件的基本内容。 
文件格式示例1客户端本地配置文件格式 
[TYPE] 
name=COM 
[COM] 
com=1 
BaudRate=9600 
DataBit=8 
StopBit=1 
Parity=0 
DTR=0 
RTS=0 
(2)VPN客户端启动时首先读取本地的配置文件sysCfg.ini,根据TYPE节中的参数name的值选择接口所对应的初始化信息。 
(3)读取完配置文件信息,客户端调用InitInterface接口进行初始化硬件接口信息,调用SendData接口向通信模块发送数据,调用RecvData接口从终端模块读数据,在VPN客户端结束时调用UninitInterface做系统接口清除处理。 
四、VPN系统描述 
上面详细说明了嵌入式SSL VPN实现过程的中的一些关键性技术创新点,下面将对整个系统架构做一个描述。 
本发明中的VPN客户端与传统的嵌入式设备相比(如图6所示),本实例在VPN设备内部添加了数据发送过程中的压缩处理和加密处理。VPN客户端由压缩/解压缩模块、SSL加/解密模块、日志模块、智能配置模块、数据转发模块、身份认证模块、协议模块、自动恢复模块、升级模块、防火墙模块、多嵌入式平台虚拟网络适配器模块组成,如图7所示。 
其中部分主要模块的具体功能如下: 
(1)压缩/解压缩模块负责对待发送的数据包进行压缩以及对接收到的数据包进行解压缩操作; 
(2)SSL加/解密模块负责使用SSL协议加/解密数据包; 
(3)智能配置模块主要负责通过VPN服务器采用类DHCP方式或直接在本机使用U盘方式配置虚拟网卡的网络配置信息; 
(4)身份认证模块负责与VPN服务器之间进行彼此身份认证。 
(5)日志模块负责提供信息日志、告警日志、错误日志、调试日志等; 
(6)系统信息管理模块负责向VPN服务器发送本机的系统信息,它主要包含七个方面的内容:系统类型标识(标识PC、工控板、手机客户端等),产品标识(标识产品型号),软件标识(标识客户端操作系统),版本标识(标识协议版本),数据包统计信息,当前链路信息 及状况,以及其他扩展信息; 
(7)多嵌入式平台虚拟网络适配器模块主要根据各个平台的系统特性定制虚拟网卡,例如WinCE是通过Mini Port实现的虚拟网卡驱动。 
本嵌入式智能控制设备的操作系统可以是WinCE、μC/OS、VxWorks、Linux等。嵌入式VPN客户端与服务器之间的通信可通过PSTN、ISDN、WIFI、GPRS、3G等方式接入Internet。 
本发明中的VPN服务器设备主要是由身份认证模块、日志模块、配置模块、状态报告模块、域管理模块、权限管理模块、自动恢复模块、双机热备份模块、协议模块、负载均衡模块、智能Qos模块、多线路备份模块、客户端安全性检查模块、系统信息管理模块、多线路智能选路模块、压缩/解压缩模块、SSL加/解密模块、VPN数据包转发模块组成(如图8所示)。 
其中部分主要模块的具体功能如下: 
(1)日志模块负责提供服务器的信息日志、告警日志、错误日志、调试日志等; 
(2)智能配置模块通过类DHCP方式配置VPN客户端的虚拟网卡网络配置信息; 
(3)状态报告模块负责记录服务器当前的状态,便于管理员查看管理; 
(4)智能Qos模块负责负责进行流量控制,从而保证重要的控制数据能实时传递; 
(5)负载均衡模块负责当访问服务器的客户端数目过多时,能够自动为其他客户端分配较为空闲的VPN服务器; 
(6)双机热备份模块负责对VPN服务器的信息进行增量备份; 
AVPN客户端通过VPN服务器与远程的B VPN客户端通信具体过程如图9所示,为: 
(1)AVPN和VPN服务器相互进行身份确认。 
(2)AVPN客户端加密、封装待发送的数据包并发送给VPN服务器。 
(3)接收数据包之后VPN服务器对该包进行解封装和解密。 
(4)VPN服务器得到目的MAC地址,参照MAC地址转发表,如果不存在相应的设备,丢弃该包,如果存在则接着往下走。 
(5)VPN服务器解封装、解密的对数据包进行再次加密、封装并转发。 
(6)B VPN客户端接收VPN服务器发送过来的数据包。 
(7)B VPN客户端解封装、解密该数据包。 
嵌入式智能控制设备、应用服务器、办公客户端(PC、PDA等)、数据库服务器等VPN客 户端之间的通信都需要经由VPN服务器转发。VPN客户端可以通过VPN服务器采用类DHCP方式或是在本机上使用U盘方式安装部署VPN客户端。 
附图说明
图1多嵌入式平台SSLVPN系统框图 
图2SSL协议分层示图 
图3VPN客户端数据处理流程原理图 
图4VPN协议及协议头格式示例图 
图5VPN协议处理流程图 
图6VPN客户端与普通客户端数据处理流程对比图 
图7VPN客户端功能结构图 
图8VPN服务器功能结构图 
图9VPN系统通信过程示图 
图10VPN系统实例实施框架图 
图11VPN系统实例工作流程图 
具体实施方式
如图1所示,本发明方法的具体工作流程如下: 
(1)假设有不同的客户端四台,各安装了不同的操作系统,分别为WinCE、Linux、WinXP、uCOS。这些客户端各处于不同的内网环境,通过不同的链路与VPN服务器相连接。 
(2)WinCE客户端要与VPN服务器取得连接,必须先拥有CA发放的证书和密钥,这样VPN服务器才允许WinCE客户端连接,并进入虚拟专用网。同理,其他客户端也必须拥有对应的证书和密钥才能与VPN服务器取得连接。一旦客户端与服务器取得连接,服务器端会通过预定的协议来获取客户端的各类信息,包括客户端类型、产品型号、使用的OS标识、使用的协议版本号、当前使用链路。 
(3)当WinCE客户端与服务器取得连接之后,会向服务器发送一个请求虚拟网卡IP的数据包,服务器根据嵌入式VPN协议向WinCE客户端返回一个可用的虚拟IP,这个虚拟IP可以定位虚拟局域网中的每一台机器。同理,其他客户端也用类似的方法获取自身的虚拟网 卡的IP。 
(4)当各客户端初始化完毕之后,服务器端会形成一个虚拟局域网的网络拓扑,这个网络拓扑会随着连接客户端的变化而动态改变,通过这个网络拓扑,管理员可以方便地对整个虚拟局域网进行监控和管理。 
(5)当WinCE客户端希望同Linux客户端进行通信时,winCE客户端上的原始数据包(目的IP为Linux客户端的虚拟网卡IP)会被WinCE客户端的虚拟网卡获取,并将数据包封装成以太网数据帧的格式再传递给用户态的VPN处理进程。同理,虚拟局域网内任意客户端要同其他客户端通信,原始数据包都会被虚拟网卡封装为以太网格式的数据帧,这样可以方便服务器对收到的数据包进行统一处理。 
(6)WinCE客户端的VPN处理进程需要将这个封装之后的以太网数据帧发往服务器,因为其使用的是WiFi链路,所以VPN处理进程自动识别链路类型后,选用WiFi转发模块(此处转发接口是统一的),并将数据封装为对应的格式发送出去(此时,数据包目的IP为VPN服务器IP地址)。同理,其他客户端的VPN处理进程也是这样做类似的处理。 
(7)VPN服务器会收到WinCE客户端发送过来的数据,经过解封装、解密、解压缩,VPN服务器就可以得到原虚拟网卡封装的以太网数据帧。这时,VPN服务器会根据当前使用的协议版本号来决定是基于MAC转发还是基于IP转发。根据转发表,这个以太网数据帧会被再封装,然后发往相应的目的客户端。 
(8)Linux客户端的VPN处理进程收到VPN服务器转发来的数据,并经过解封装、解密、解压缩,将原始的以太网数据帧传送到虚拟网卡,再由虚拟网卡传递给相应的应用程序。 
下文结合说明书中的附图来说明本发明应用于智能监控领域的一个具体应用实例。
如图10所示,整个系统的组成如下:ARM工控机(用于石油管道数据采集及处理,图例中分别处于A油田和B油田)、无线连接基站、抢修队伍、使用笔记本或手机的远程办公人员、监控中心、公司总部、VPN服务器、防火墙、处于内网的应用服务器和数据库服务器。 
整个系统的软件部署情况如下:在以下组成部分中,需要先安装VPN客户端服务程序,其中包括用于石油管道数据采集和处理的ARM工控机、抢修队伍使用的手机或计算机、远程办公人员使用的笔记本或手机、监控中心内部的计算机、公司总部的计算机、处于内网的应用服务器和数据库服务器。部署好客户端的应用环境之后,接下来要为VPN服务器安装相应的VPN服务器应用程序。各客户端与服务器的应用环境部署完毕之后,整个系统就可以正常工作了。 
系统的数据包传递过程如下: 
(1)ARM工控机需要将采集得到的数据通过虚拟网卡发送出去,发送之前,会对待发送的数据进行加密和封装的操作。 
(2)一般ARM工控机会将经过处理的数据送入VPN隧道,无论数据最终要发送到什么设备,数据都先会被传送到VPN服务器。 
(3)VPN服务器的VPN处理程序要对收到的数据进行解封装、解密,这时数据包被还原成原始数据,VPN服务器根据数据包的目的MAC地址和自身的MAC地址转发表对数据包进行转发。
(4)在数据包进行转发之前,VPN服务器的处理程序会对数据包进行加密和再封装,这样,经过转发的数据会进入VPN隧道,并最终到达数据包的目的地。 
(5)同样当数据包到达它的目的地时,数据包必须先经过解封装和解密才能被使用。 
系统的工作流程如图11所示。 
下文详细介绍了系统的工作过程: 
(1)ARM工控机需要采集管道各个节点的压力和温度等参数,以便确认管道是否出现故障或者有人利用非法手段偷取石油,然后将采集的数据通过VPN服务器转发到内网的数据库服务器。 
(2)监控中心通过VPN服务器从数据库服务器中实时读取数据,如果发现读取的数据出现异常,则启动报警机制。 
(3)报警机制的具体实现是监控中心通过VPN服务器向抢修人员的手机发送信息,并且向报警中心发出报警信息。数据要经过不同的网络链路才能到达传输的目的地,首先经过Internet,然后进入GPRS链路,最后才被转发到抢修人员的手机。 
(4)公司总部可以通过VPN服务器访问监控中心,从而获取到最新的监控信息,也可以通过VPN服务器访问数据库服务器,从而获得最近的和历史的所有数据信息。 
(5)远程办公人员的手机或者计算机可以通过VPN服务器访问监控中心,从而手动控制是否报警等相关操作,并查阅相关数据。由于远程办公人员经常使用不同的网络连入Internet,所以数据要经过不同的网络链路才能到达传输的目的地,如WiFi或者3G。 
(6)VPN服务器会对所有接入的客户端进行认证,没有认证的客户端将无法进入虚拟局域网中,也将无法和虚拟局域网中的其他机器进行通信。 
(7)VPN服务器会对所有接入的客户端进行权限控制,经过认证的不同的客户端会拥有不同的权限。 
(8)VPN服务器转发数据的依据是查阅MAC地址转发表或者IP地址转发表。 
(9)VPN服务器会对所有接入的客户端进行标识,这样可以方便管理员查看当前的网络拓扑,并进行资源统一管理。 
本发明在嵌入式设备系统中结合虚拟网卡技术、VPN自定义协议、多链路通信设备统一抽象接口技术,SSL协议等相关技术实现一种嵌入式设备上的SSL VPN系统。在很大程度上解决了多嵌入式平台资源难以统一管理的问题,并保证数据传输的安全性,这对于嵌入式通信系统领域的发展有着巨大的推动作用。 
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权力要求书的保护范围为准。 

Claims (11)

1.一种嵌入式SSL VPN的实现方法,具备由网络连接的VPN服务器及多个嵌入式设备中的VPN客户端,其特征在于所述VPN服务器按照自定义VPN通信协议标准进行通信;所述VPN客户端使用虚拟网卡获取相关数据包并进行统一封装,并通过虚拟网卡定位虚拟局域网中嵌入式设备的位置;所述VPN客户端通过统一抽象接口,针对不同的链路通信模块和嵌入式主板之间的接口进行统一化处理。
2.根据权利要求1所述的一种嵌入式SSL VPN的实现方法,其特征在于VPN客户端与服务器基于所述VPN通信协议的通信步骤如下:
(1)客户端从虚拟网卡中读取原始数据帧;
(2)由VPN处理模块对原始数据帧添加上VPN协议头和附加数据段;
(3)客户端通过物理网卡将再封装的数据帧发送到服务器端;
(4)服务器接收到客户端发送过来的数据,解析数据帧的VPN协议头,根据协议头命令码段判断是否为命令数据帧,如果是命令数据帧,则将该数据帧转交给服务器端的命令处理模块处理,如果不是命令数据帧,则按照步骤5处理;
(5)根据协议版本号,解析数据帧的IP地址或MAC地址,查找IP或MAC转发表获取相关的上下文转发给对应的客户端;
(6)接收到转发数据帧的客户端将数据写入客户端虚拟网卡做相应处理。
3.根据权利要求1或2所述的一种嵌入式SSL VPN的实现方法,其特征在于所述自定义的VPN通信协议,能够对客户端动态分配虚拟IP地址,步骤如下:
(1)客户端向服务器发送IP动态分配的请求帧,该数据帧的VPN协议头命令码字段的值为IP动态分配的请求命令;
(2)服务器接收到该请求帧,解析VPN协议头,得知该数据帧为请求命令帧,请求命令为IP动态分配,服务器根据该命令计算获取给客户端分配的IP地址,并在服务器端的数据转发表中记录下IP地址;
(3)服务器构造返回数据帧,填充VPN协议头命令字段的值为IP动态分配的请求命令,最终发送给请求的客户端。
4.根据权利要求1或2所述的一种嵌入式SSL VPN的实现方法,其特征在于所述自定义的VPN通信协议,可在服务器端根据客户端的接入系统情况自动形成网络拓扑图,步骤如下:
(1)服务器以广播的形式向客户端发送命令请求,请求客户端的属性,包括:物理地址、硬件标识,软件标识;
(2)客户端收到请求帧,解析VPN协议头判断该数据帧为请求命令帧,请求命令为获取客户端所有状态的请求命令,客户端根据该命令获取所有状态信息;
(3)客户端构造返回数据帧,填充VPN协议头命令字段的值为获取客户端所有状态的请求命令,最终发送给服务器端;
(4)服务器汇集所有客户端的信息,将该信息在服务器端分类,以该信息作为源信息生成拓扑图。
5.根据权利要求1或2所述的一种嵌入式SSL VPN的实现方法,其特征在于所述自定义的VPN通信协议,可在服务器端根据客户端的版本信息,决定根据虚拟MAC地址或者虚拟IP地址进行数据帧转发,步骤如下:
(1)客户端向服务器发送转发数据帧;
(2)服务器接收到客户端的数据帧,解析VPN协议头部分,判断版本号字段的值,如果该值为根据MAC地址转发的协议版本号,服务器接下来根据MAC转发表进行转发数据,如果该值为根据IP地址转发的协议版本号,服务器接下来根据IP转发表进行转发数据。
6.根据权利要求1所述的一种嵌入式SSL VPN的实现方法,其特征在于所述虚拟网卡对多种嵌入式平台不同数据链路的数据包统一封装为以太网数据帧。
7.根据权利要求1所述的一种嵌入式SSL VPN的实现方法,其特征在于所述虚拟网卡自动识别并获取用户发送的VPN原始数据,再将该数据传递到用户态处理程序进行处理。
8.根据权利要求1所述的一种嵌入式SSL VPN的实现方法,其特征在于所述虚拟网卡通过自身的虚拟IP,能够在嵌入式SSL VPN整个系统虚拟的局域网中定位每一台设备。
9.根据权利要求1所述的一种嵌入式SSL VPN的实现方法,其特征在于所述虚拟网卡包括两个部分,一部分是虚拟网卡驱动,负责与TCP/IP协议栈进行交互,另一部分是交互驱动,负责与处于用户态的VPN处理进程进行交互。
10.根据权利要求1或9所述的一种嵌入式SSL VPN的实现方法,其特征在于所述虚拟网卡的工作步骤如下:
(1)应用程序发送一个数据包至TCP/IP协议栈,数据包根据自身的目的IP进行分流,选择被发送到虚拟网卡或物理网卡,对应的数据包进入虚拟网卡后,交互驱动从虚拟网卡的缓冲区中读取数据包,并将其传递到VPN处理进程;
(2)物理网卡从VPN虚拟专用隧道收取数据包,将其通过TCP/IP协议栈提交给VPN处理进程,由交互驱动从VPN处理进程读取此数据包,并传送到虚拟网卡驱动,虚拟网卡驱动收到数据包之后,由自身的回调函数将数据包经TCP/IP协议栈传递给对应的应用程序。
11.根据权利要求1所述的一种嵌入式SSL VPN的实现方法,其特征在于在SSL VPN客户端中通过采用抽象接口技术,结合客户端配置文件通过软件枚举的方式实现客户端针对不同链路接口进行选择通信,其中抽象接口技术工作的基本步骤如下:
(1)配置本地系统文件;
(2)VPN客户端启动时首先读取本地的配置文件;
(3)读取完配置文件信息,客户端调用InitInterface接口进行初始化硬件接口信息,调用SendData接口向通信模块发送数据,调用RecvData接口从终端模块读数据,在VPN客户端结束时调用UninitInterface做系统接口清除处理。
CN2010105497135A 2010-11-18 2010-11-18 一种嵌入式ssl vpn的实现方法 Pending CN102065125A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105497135A CN102065125A (zh) 2010-11-18 2010-11-18 一种嵌入式ssl vpn的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105497135A CN102065125A (zh) 2010-11-18 2010-11-18 一种嵌入式ssl vpn的实现方法

Publications (1)

Publication Number Publication Date
CN102065125A true CN102065125A (zh) 2011-05-18

Family

ID=44000224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105497135A Pending CN102065125A (zh) 2010-11-18 2010-11-18 一种嵌入式ssl vpn的实现方法

Country Status (1)

Country Link
CN (1) CN102065125A (zh)

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102307232A (zh) * 2011-08-23 2012-01-04 北京新联铁科技发展有限公司 一种空心车轴探伤机的远程监控系统
CN102340553A (zh) * 2011-09-26 2012-02-01 瑞斯康达科技发展股份有限公司 一种ip地址的分配及确定方法、装置
CN102710441A (zh) * 2012-05-31 2012-10-03 朱峻茂 一种基于统一接口的多平台信息采集方法和信息采集系统
CN102801695A (zh) * 2011-05-27 2012-11-28 华耀(中国)科技有限公司 虚拟专用网通信设备及其数据包传输方法
WO2013173973A1 (zh) * 2012-05-22 2013-11-28 华为技术有限公司 网络通信方法和装置
CN103812751A (zh) * 2014-02-28 2014-05-21 成都卫士通信息产业股份有限公司 一种基于ndis的ssl vpn终端数据交互方法
CN103905384A (zh) * 2012-12-26 2014-07-02 北京握奇数据系统有限公司 基于安全数字证书的嵌入式终端间会话握手的实现方法
CN104065556A (zh) * 2014-07-11 2014-09-24 深圳市海派通讯科技有限公司 基于嵌入式ARM-Linux平台任意链路的虚拟专用网络
CN104579879A (zh) * 2014-12-05 2015-04-29 上海斐讯数据通信技术有限公司 一种虚拟专用网络通信系统、连接方法及数据包传输方法
CN104735821A (zh) * 2015-03-05 2015-06-24 广东翼卡车联网服务有限公司 一种具有usb转串口功能的无线网卡及其实现方法
CN105187423A (zh) * 2015-08-28 2015-12-23 宇龙计算机通信科技(深圳)有限公司 网络资源的隔离方法、网络资源的隔离系统和移动终端
WO2016019717A1 (zh) * 2014-08-08 2016-02-11 华为技术有限公司 虚拟专用网络的实现方法及客户端设备
CN105516984A (zh) * 2015-07-29 2016-04-20 哈尔滨工业大学(威海) 一种公共WiFi的安全接入系统
CN105933198A (zh) * 2016-04-21 2016-09-07 浙江宇视科技有限公司 一种建立直连vpn隧道的装置
CN106470185A (zh) * 2015-08-17 2017-03-01 红云红河烟草(集团)有限责任公司 基于c/s模式的数据处理方法及系统
CN106506263A (zh) * 2016-10-20 2017-03-15 广州爱九游信息技术有限公司 应用程序信息获取系统、设备、装置及方法
CN106533880A (zh) * 2016-11-02 2017-03-22 天脉聚源(北京)传媒科技有限公司 一种在云服务器上搭建vpn服务的方法及装置
CN107046495A (zh) * 2016-02-06 2017-08-15 阿里巴巴集团控股有限公司 用于构建虚拟专用网络的方法、装置和系统
CN107306214A (zh) * 2016-04-18 2017-10-31 华为技术有限公司 终端连接虚拟专用网的方法、系统及相关设备
CN107517150A (zh) * 2016-06-17 2017-12-26 深圳市信锐网科技术有限公司 基于虚拟专用网络vpn的内网资源访问方法及装置
CN107688331A (zh) * 2017-08-30 2018-02-13 深圳增强现实技术有限公司 机器操作监督系统及其通信方法
CN108063712A (zh) * 2016-11-09 2018-05-22 北京国双科技有限公司 一种网络请求的发送方法及装置
CN108111619A (zh) * 2017-12-28 2018-06-01 西安抱朴通信科技有限公司 一种数据分流方法及装置、计算机设备、存储介质
CN108270826A (zh) * 2016-12-30 2018-07-10 中国移动通信集团广东有限公司 移动终端点对点通信方法及协商节点
CN108712308A (zh) * 2018-06-06 2018-10-26 郑州云海信息技术有限公司 虚拟网络中检测网络设备的方法和装置
CN108718268A (zh) * 2017-04-07 2018-10-30 格尔软件股份有限公司 一种提高vpn服务端并发处理性能的方法
CN109587028A (zh) * 2018-11-29 2019-04-05 麒麟合盛网络技术股份有限公司 一种控制客户端流量的方法和装置
CN109842585A (zh) * 2017-11-27 2019-06-04 中国科学院沈阳自动化研究所 面向工业嵌入式系统的网络信息安全防护单元和防护方法
CN110401672A (zh) * 2019-08-06 2019-11-01 郑州信大捷安信息技术股份有限公司 一种基于虚拟网卡的网络访问控制系统及方法
CN110417632A (zh) * 2018-04-26 2019-11-05 腾讯科技(深圳)有限公司 一种网络通信方法、系统及服务器
CN110505244B (zh) * 2019-09-19 2020-06-02 南方电网数字电网研究院有限公司 远程隧道访问技术网关以及服务器
CN111953595A (zh) * 2019-10-24 2020-11-17 北京大学 一种基于虚拟主机的数据传输架构
CN112073505A (zh) * 2020-09-04 2020-12-11 优刻得科技股份有限公司 在云服务器上进行卸载的方法、控制装置、存储介质
CN112822308A (zh) * 2021-04-19 2021-05-18 德思信息科技(南京)有限公司 一种高速安全虚拟网络代理的方法及其系统
US11190490B2 (en) 2018-10-02 2021-11-30 Allstate Insurance Company Embedded virtual private network
CN113947169A (zh) * 2021-10-29 2022-01-18 中国建设银行股份有限公司 硬件设备操作方法、装置、设备、存储介质和程序产品
CN113973028A (zh) * 2021-10-26 2022-01-25 亿次网联(杭州)科技有限公司 一种vpn通信方法、虚拟网卡、节点设备及存储介质
CN114070606A (zh) * 2021-11-12 2022-02-18 山东方寸微电子科技有限公司 一种基于国产操作系统的网络安全终端装置及工作方法
CN114124584A (zh) * 2022-01-28 2022-03-01 卓望数码技术(深圳)有限公司 远程接入办公网络的方法、装置、系统、接网设备及介质
CN114244569A (zh) * 2021-11-18 2022-03-25 广东电网有限责任公司 Ssl vpn远程访问方法、系统和计算机设备
CN115277308A (zh) * 2022-07-20 2022-11-01 杭州迪普科技股份有限公司 云资源池sslvpn设备部署方法和装置
CN117201405A (zh) * 2023-11-07 2023-12-08 成都卓拙科技有限公司 一种网络包分流方法及装置、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1588884A (zh) * 2004-07-06 2005-03-02 北京航空航天大学 IPv6因特网网络拓扑自动发现方法
US20060005240A1 (en) * 2004-06-30 2006-01-05 Prabakar Sundarrajan System and method for establishing a virtual private network
CN1866202A (zh) * 2005-05-18 2006-11-22 大唐移动通信设备有限公司 嵌入式设备的驱动方法
CN101442565A (zh) * 2008-12-18 2009-05-27 成都市华为赛门铁克科技有限公司 一种固定虚拟网络地址的分配方法和网关

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060005240A1 (en) * 2004-06-30 2006-01-05 Prabakar Sundarrajan System and method for establishing a virtual private network
CN1588884A (zh) * 2004-07-06 2005-03-02 北京航空航天大学 IPv6因特网网络拓扑自动发现方法
CN1866202A (zh) * 2005-05-18 2006-11-22 大唐移动通信设备有限公司 嵌入式设备的驱动方法
CN101442565A (zh) * 2008-12-18 2009-05-27 成都市华为赛门铁克科技有限公司 一种固定虚拟网络地址的分配方法和网关

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《计算机工程》 20080731 田权斌、李立新、周雁舟 "基于虚拟以太网的VPN系统" 第129-131、134页 1-2、5-10 第34卷, 第14期 *
田权斌、李立新、周雁舟: ""基于虚拟以太网的VPN系统"", 《计算机工程》 *

Cited By (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102801695B (zh) * 2011-05-27 2015-10-14 华耀(中国)科技有限公司 虚拟专用网通信设备及其数据包传输方法
CN102801695A (zh) * 2011-05-27 2012-11-28 华耀(中国)科技有限公司 虚拟专用网通信设备及其数据包传输方法
CN102307232B (zh) * 2011-08-23 2013-09-18 北京新联铁科技股份有限公司 一种空心车轴探伤机的远程监控系统
CN102307232A (zh) * 2011-08-23 2012-01-04 北京新联铁科技发展有限公司 一种空心车轴探伤机的远程监控系统
CN102340553B (zh) * 2011-09-26 2014-08-27 瑞斯康达科技发展股份有限公司 一种ip地址的分配及确定方法、装置
CN102340553A (zh) * 2011-09-26 2012-02-01 瑞斯康达科技发展股份有限公司 一种ip地址的分配及确定方法、装置
WO2013173973A1 (zh) * 2012-05-22 2013-11-28 华为技术有限公司 网络通信方法和装置
CN102710441B (zh) * 2012-05-31 2014-04-02 朱峻茂 一种基于统一接口的多平台信息采集方法和信息采集系统
CN102710441A (zh) * 2012-05-31 2012-10-03 朱峻茂 一种基于统一接口的多平台信息采集方法和信息采集系统
CN103905384A (zh) * 2012-12-26 2014-07-02 北京握奇数据系统有限公司 基于安全数字证书的嵌入式终端间会话握手的实现方法
CN103905384B (zh) * 2012-12-26 2017-11-24 北京握奇数据系统有限公司 基于安全数字证书的嵌入式终端间会话握手的实现方法
CN103812751A (zh) * 2014-02-28 2014-05-21 成都卫士通信息产业股份有限公司 一种基于ndis的ssl vpn终端数据交互方法
CN104065556A (zh) * 2014-07-11 2014-09-24 深圳市海派通讯科技有限公司 基于嵌入式ARM-Linux平台任意链路的虚拟专用网络
CN105337831B (zh) * 2014-08-08 2018-10-09 华为技术有限公司 虚拟专用网络的实现方法及客户端设备
US10375025B2 (en) 2014-08-08 2019-08-06 Huawei Technologies Co., Ltd. Virtual private network implementation method and client device
CN105337831A (zh) * 2014-08-08 2016-02-17 华为技术有限公司 虚拟专用网络的实现方法及客户端设备
WO2016019717A1 (zh) * 2014-08-08 2016-02-11 华为技术有限公司 虚拟专用网络的实现方法及客户端设备
CN104579879A (zh) * 2014-12-05 2015-04-29 上海斐讯数据通信技术有限公司 一种虚拟专用网络通信系统、连接方法及数据包传输方法
CN104735821A (zh) * 2015-03-05 2015-06-24 广东翼卡车联网服务有限公司 一种具有usb转串口功能的无线网卡及其实现方法
CN105516984A (zh) * 2015-07-29 2016-04-20 哈尔滨工业大学(威海) 一种公共WiFi的安全接入系统
CN106470185A (zh) * 2015-08-17 2017-03-01 红云红河烟草(集团)有限责任公司 基于c/s模式的数据处理方法及系统
CN105187423A (zh) * 2015-08-28 2015-12-23 宇龙计算机通信科技(深圳)有限公司 网络资源的隔离方法、网络资源的隔离系统和移动终端
CN105187423B (zh) * 2015-08-28 2019-04-12 宇龙计算机通信科技(深圳)有限公司 网络资源的隔离方法、网络资源的隔离系统和移动终端
CN107046495A (zh) * 2016-02-06 2017-08-15 阿里巴巴集团控股有限公司 用于构建虚拟专用网络的方法、装置和系统
US11165604B2 (en) 2016-04-18 2021-11-02 Huawei Technologies Co., Ltd. Method and system used by terminal to connect to virtual private network, and related device
CN107306214A (zh) * 2016-04-18 2017-10-31 华为技术有限公司 终端连接虚拟专用网的方法、系统及相关设备
CN107306214B (zh) * 2016-04-18 2020-04-03 华为技术有限公司 终端连接虚拟专用网的方法、系统及相关设备
CN105933198A (zh) * 2016-04-21 2016-09-07 浙江宇视科技有限公司 一种建立直连vpn隧道的装置
CN105933198B (zh) * 2016-04-21 2020-01-14 浙江宇视科技有限公司 一种建立直连vpn隧道的装置
CN107517150A (zh) * 2016-06-17 2017-12-26 深圳市信锐网科技术有限公司 基于虚拟专用网络vpn的内网资源访问方法及装置
CN107517150B (zh) * 2016-06-17 2020-08-04 深圳市信锐网科技术有限公司 基于虚拟专用网络vpn的内网资源访问方法及装置
CN106506263A (zh) * 2016-10-20 2017-03-15 广州爱九游信息技术有限公司 应用程序信息获取系统、设备、装置及方法
CN106506263B (zh) * 2016-10-20 2020-03-20 广州爱九游信息技术有限公司 应用程序信息获取系统、设备、装置及方法
CN106533880A (zh) * 2016-11-02 2017-03-22 天脉聚源(北京)传媒科技有限公司 一种在云服务器上搭建vpn服务的方法及装置
CN108063712A (zh) * 2016-11-09 2018-05-22 北京国双科技有限公司 一种网络请求的发送方法及装置
CN108063712B (zh) * 2016-11-09 2021-01-08 北京国双科技有限公司 一种网络请求的发送方法及装置
CN108270826A (zh) * 2016-12-30 2018-07-10 中国移动通信集团广东有限公司 移动终端点对点通信方法及协商节点
CN108270826B (zh) * 2016-12-30 2021-06-01 中国移动通信集团广东有限公司 移动终端点对点通信方法及协商节点
CN108718268A (zh) * 2017-04-07 2018-10-30 格尔软件股份有限公司 一种提高vpn服务端并发处理性能的方法
CN107688331A (zh) * 2017-08-30 2018-02-13 深圳增强现实技术有限公司 机器操作监督系统及其通信方法
CN109842585B (zh) * 2017-11-27 2021-04-13 中国科学院沈阳自动化研究所 面向工业嵌入式系统的网络信息安全防护单元和防护方法
CN109842585A (zh) * 2017-11-27 2019-06-04 中国科学院沈阳自动化研究所 面向工业嵌入式系统的网络信息安全防护单元和防护方法
CN108111619A (zh) * 2017-12-28 2018-06-01 西安抱朴通信科技有限公司 一种数据分流方法及装置、计算机设备、存储介质
CN108111619B (zh) * 2017-12-28 2021-08-24 西安抱朴通信科技有限公司 一种数据分流方法及装置、计算机设备、存储介质
CN110417632A (zh) * 2018-04-26 2019-11-05 腾讯科技(深圳)有限公司 一种网络通信方法、系统及服务器
CN108712308A (zh) * 2018-06-06 2018-10-26 郑州云海信息技术有限公司 虚拟网络中检测网络设备的方法和装置
CN108712308B (zh) * 2018-06-06 2021-11-26 郑州云海信息技术有限公司 虚拟网络中检测网络设备的方法和装置
US11190490B2 (en) 2018-10-02 2021-11-30 Allstate Insurance Company Embedded virtual private network
CN109587028A (zh) * 2018-11-29 2019-04-05 麒麟合盛网络技术股份有限公司 一种控制客户端流量的方法和装置
CN109587028B (zh) * 2018-11-29 2021-11-26 麒麟合盛网络技术股份有限公司 一种控制客户端流量的方法和装置
CN110401672A (zh) * 2019-08-06 2019-11-01 郑州信大捷安信息技术股份有限公司 一种基于虚拟网卡的网络访问控制系统及方法
CN110505244B (zh) * 2019-09-19 2020-06-02 南方电网数字电网研究院有限公司 远程隧道访问技术网关以及服务器
CN111953595A (zh) * 2019-10-24 2020-11-17 北京大学 一种基于虚拟主机的数据传输架构
CN112073505A (zh) * 2020-09-04 2020-12-11 优刻得科技股份有限公司 在云服务器上进行卸载的方法、控制装置、存储介质
CN112822308A (zh) * 2021-04-19 2021-05-18 德思信息科技(南京)有限公司 一种高速安全虚拟网络代理的方法及其系统
CN112822308B (zh) * 2021-04-19 2021-07-13 德思信息科技(南京)有限公司 一种高速安全虚拟网络代理的方法及其系统
CN113973028A (zh) * 2021-10-26 2022-01-25 亿次网联(杭州)科技有限公司 一种vpn通信方法、虚拟网卡、节点设备及存储介质
CN113947169A (zh) * 2021-10-29 2022-01-18 中国建设银行股份有限公司 硬件设备操作方法、装置、设备、存储介质和程序产品
CN114070606A (zh) * 2021-11-12 2022-02-18 山东方寸微电子科技有限公司 一种基于国产操作系统的网络安全终端装置及工作方法
CN114244569A (zh) * 2021-11-18 2022-03-25 广东电网有限责任公司 Ssl vpn远程访问方法、系统和计算机设备
CN114244569B (zh) * 2021-11-18 2024-04-09 广东电网有限责任公司 Ssl vpn远程访问方法、系统和计算机设备
CN114124584A (zh) * 2022-01-28 2022-03-01 卓望数码技术(深圳)有限公司 远程接入办公网络的方法、装置、系统、接网设备及介质
CN115277308A (zh) * 2022-07-20 2022-11-01 杭州迪普科技股份有限公司 云资源池sslvpn设备部署方法和装置
CN115277308B (zh) * 2022-07-20 2023-04-25 杭州迪普科技股份有限公司 云资源池sslvpn设备部署方法和装置
CN117201405A (zh) * 2023-11-07 2023-12-08 成都卓拙科技有限公司 一种网络包分流方法及装置、存储介质及电子设备
CN117201405B (zh) * 2023-11-07 2023-12-29 成都卓拙科技有限公司 一种网络包分流方法及装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
CN102065125A (zh) 一种嵌入式ssl vpn的实现方法
US7958226B2 (en) Identifying a computer device
US7392537B2 (en) Managing a network security application
CN102904749B (zh) 采用安全设备保护网络装置的方法、安全设备和数据网络
JP3492865B2 (ja) 移動計算機装置及びパケット暗号化認証方法
CN103236941B (zh) 一种链路发现方法和装置
CN100531229C (zh) 通用外部代理
CN102724175B (zh) 泛在绿色社区控制网络的远程通信安全管理架构与方法
CN104767748B (zh) Opc服务器安全防护系统
CN109922160A (zh) 一种基于电力物联网的终端安全接入方法、装置及系统
CN102035904A (zh) 一种将tcp网络通信服务端转换为客户端的方法
CN101227470B (zh) 一种业务管理系统及业务管理方法
CN110324227A (zh) 一种vpn服务器中的数据传输方法及vpn服务器
US20040168049A1 (en) Method for encrypting data of an access virtual private network (VPN)
CN116155649A (zh) 基于二层隧道协议的工业互联网络的构建方法
CN103139189B (zh) 一种IPSec隧道共用方法、系统及设备
CN111726328B (zh) 用于对第一设备进行远程访问的方法、系统以及相关设备
CN117527840A (zh) 一种居民服务用一卡通管理平台系统
CN107995086A (zh) 一种基于vpdn和ipsec的智能制造物联中业务数据加密传输的方法
Raja et al. Internet of things: A research-oriented introductory
CN113852544A (zh) 一种基于LoraWan和区块链的安全网关
CN106909505A (zh) 基于java的服务器操作系统的远程测试方法及装置
CN100375464C (zh) 网络互连时各终端的数据通信方法
Cagalaban et al. Scada network insecurity: Securing critical infrastructures through scada security exploitation
US8036218B2 (en) Technique for achieving connectivity between telecommunication stations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110518