CN103812751A - 一种基于ndis的ssl vpn终端数据交互方法 - Google Patents

一种基于ndis的ssl vpn终端数据交互方法 Download PDF

Info

Publication number
CN103812751A
CN103812751A CN201410070776.0A CN201410070776A CN103812751A CN 103812751 A CN103812751 A CN 103812751A CN 201410070776 A CN201410070776 A CN 201410070776A CN 103812751 A CN103812751 A CN 103812751A
Authority
CN
China
Prior art keywords
ssl vpn
ndis
data
ssl
network
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
CN201410070776.0A
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.)
Chengdu Westone Information Industry Inc
Original Assignee
Chengdu Westone Information Industry Inc
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 Chengdu Westone Information Industry Inc filed Critical Chengdu Westone Information Industry Inc
Priority to CN201410070776.0A priority Critical patent/CN103812751A/zh
Publication of CN103812751A publication Critical patent/CN103812751A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于NDIS的SSL VPN终端数据交互方法。SSL VPN网关通过虚拟网卡与NDIS中间驱动实现连接,NDIS再通过TCP/IP协议栈与网络应用程序实现通信;在SSL VPN网关与虚拟网卡之间引入SSL VPN客户端作为这两者之间的中间传递媒介,实现数据双向转输。有效降低了网络数据中转所产生的时延,确保在接收到数据后,即时通知相应的模块进行处理。

Description

一种基于NDIS的SSL VPN终端数据交互方法
技术领域
本发明涉及一种基于NDIS的SSL VPN终端数据交互方法,特别是涉及一种适用于通信技术领域中基于NDIS的SSL VPN终端数据交互方法。
背景技术
SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。目前,利用公开密钥技术的SSL协议,已成为Internet上保密通讯的工业标准。
VPN(Virtual Private Network,虚拟专用网络)被定义为通过公用网络(通常是因特网)建立临时的、安全的连接,是一条穿过公用网络的安全、稳定隧道。VPN 可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接, 用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。VPN 主要采用隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术。
SSL VPN 是一种采用SSL加密连接实现远程访问的VPN技术。如图1所示,用户终端与SSL VPN网关之间建立SSL连接,以加密方式在Internet 上传送SSL数据;而SSL VPN网关收到数据后,解密并验证用户终端发送来的数据,然后通过与内网的服务器建立TCP(Transmission Control Protocol,传输控制协议)连接(TCP接入方式)或者通过直接IP转发(IP接入方式),以明文方式传送用户终端发来的请求,并将服务器的应答通过SSL连接发给用户终端。
SSLVPN客户端前期负责建立SSL隧道并发起安全认证、SSL隧道建立成功后,负责SSL隧道的管理控制、数据加解密、数据在SSL隧道及虚拟网卡之间的传递。
NDIS小端口驱动(Network Driver Interface Specification 网卡驱动接口标准),是微软与一些网卡厂商及其他一些业界领导共同制定的。实际上,它是一组定义好的函数接口,工作在网卡与操作系统之间,它具备拦截通过物理网卡的网络数据。执行相应处理后,可按开发人员意图,执行处理网络数据。SSLVPN客户端正是利用这些特性,拦截数据后转递至SSLVPN客户端或是向TCP/IP协议栈传送从SSLVPN客户端获得的网络数据。
但基于NDIS的SSL VPN终端数据交互由于网络数据中转所产生的时延,无法确保在接收到数据后,即时通知相应的模块进行处理。
发明内容
本发明要解决的技术问题是提供一种能够有效降低网络数据中转所产生的的时延的基于NDIS的SSL VPN终端数据交互方法。 
本发明采用的技术方案如下:一种基于NDIS的SSL VPN终端数据交互方法,其特征在于:SSL VPN网关通过虚拟网卡与NDIS中间驱动实现连接,NDIS再通过TCP/IP协议栈与网络应用程序实现通信。
作为优选,在SSL VPN网关与虚拟网卡之间引入SSL VPN客户端作为这两者之间的中间传递媒介,实现数据双向转输。
作为优选,SSL VPN客户端在SSL隧道建立后,创建子线程进行数据通信。
作为优选,所述子线程包括负责从SSL隧道读取数据的线程A、负责向SSL隧道写入数据的线程B和负责虚拟网卡读写数据的线程C。 
与现有技术相比,本发明的有益效果是:本发明综合利用Windows 平台内核提供的NDIS中间驱动框架、虚拟网卡、OPENSSL、Windows多线程等技术高效稳定地实现本地应用程序与SSLVPN网关进行数据通信功能。在SSLVPN网关与虚拟网卡之间引入SSLVPN客户端作为这两者之间的中间传递媒介,实现数据双向转输。有效降低了网络数据中转所产生的时延,确保在接收到数据后,即时通知相应的模块进行处理,也简化了数据交换处理过程,提高了数据处理效率。
附图说明
图1为SSL VPN功能示意图。
图2为本发明其中一实施例的数据传输流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
如图2所示,一种基于NDIS的SSL VPN终端数据交互方法,SSL VPN网关通过虚拟网卡与NDIS中间驱动实现连接,NDIS再通过TCP/IP协议栈与网络应用程序实现通信。
在SSL VPN网关与虚拟网卡之间引入SSL VPN客户端作为这两者之间的中间传递媒介,实现数据双向转输。
以客户端本地应用程序发送为例, SSL客户端向网关发起认证并成功建立SSL隧道连接后,客户端根据网关下发的相关的网络配置信息,配置好虚拟网卡的IP地址、默认网关等等后,本地应用程序即可与远程虚拟局域网提供的服务,数据转输流程大概如下:应用程序向目地地址发送网络数据,NDIS中间驱动截获数据后,通知SSLVPN客户端有数据需要发送,SSLVPN客户端获取通知后,从Windows内核驱动中读取数据,并将整个网络数据通过SSL隧道转输给SSL VPN网关,网关最终将数据传输到目地地址,应用程序接收数据过程与之相反,SSL VPN网关数据通过SSL隧道发送给SSL VPN客户端,SSL VPN客户端接收到数据后,通知虚拟网卡接收到新的数据,并将原始网络数据转发给虚拟网卡驱动,网卡驱动接收到数据后,按照TCP/IP协议栈,向上层协议驱动  转递网络数据包,协议驱动最终将数据包解析后,再次向TCP/IP应用层传递数据,最终交给相应的应用程序。
整个数据交换过程中,网络通信对于应用程序来说是完全透明的,它无需关心网络拓扑,仅直接向虚拟网卡发送或接收数据。
SSL VPN客户端在SSL隧道建立后,创建子线程进行数据通信。
所述子线程包括负责从SSL隧道读取数据的线程A、负责向SSL隧道写入数据的线程B和负责虚拟网卡读写数据的线程C。
三个线程创建成功后,线程A立即从SSL隧道读取数据,如若没有数据,则进入阻塞状态,等待新的数据来临。线程B创建SSL隧道写数据同步事件,等待此事件的激活。线程C创建读、写虚拟网卡数据同步事件,线程退出事件。等待多个事件的激活。
有新的数据从SSL隧道传输过来,线程A首先读取数据,然后激活线程C的写数据事件,通知线程C有新的数据需要写入虚拟网卡。随后线程A再次进入等待数据来临的阻塞状态。
线程C的写入事件接收到通知后,直接将线程A读取到的数据直接写入内核驱动中,交由NDIS向协议栈向上传递。
NDIS中间驱动至TCP/IP协议栈接收到数据后,激活SSL客户端的线程C得到读取事件,线程C读取事件激活后,直接从内核驱动中读取数据,读取成功,则激活线程B的隧道写入事件。B随后数据写入SSL隧道。
多线程特性高效率地实现了SSLVPN客户端与NDIS小端口驱动的数据交换。有效降低网络数据中转所产生的时延,确保在接收到数据后,即时通知相应的模块进行处理。多线程的结构设计也简化了数据交换处理过程,提高了数据处理效率。 

Claims (4)

1.一种基于NDIS的SSL VPN终端数据交互方法,其特征在于:SSL VPN网关通过虚拟网卡与NDIS中间驱动实现连接,NDIS再通过TCP/IP协议栈与网络应用程序实现通信。
2.根据权利要求1所述的基于NDIS的SSL VPN终端数据交互方法,其特征在于:在SSL VPN网关与虚拟网卡之间引入SSL VPN客户端作为这两者之间的中间传递媒介,实现数据双向转输。
3.根据权利要求2所述的基于NDIS的SSL VPN终端数据交互方法,其特征在于:SSL VPN客户端在SSL隧道建立后,创建子线程进行数据通信。
4.根据权利要求3所述的基于NDIS的SSL VPN终端数据交互方法,其特征在于:所述子线程包括负责从SSL隧道读取数据的线程A、负责向SSL隧道写入数据的线程B和负责虚拟网卡读写数据的线程C。
CN201410070776.0A 2014-02-28 2014-02-28 一种基于ndis的ssl vpn终端数据交互方法 Pending CN103812751A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410070776.0A CN103812751A (zh) 2014-02-28 2014-02-28 一种基于ndis的ssl vpn终端数据交互方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410070776.0A CN103812751A (zh) 2014-02-28 2014-02-28 一种基于ndis的ssl vpn终端数据交互方法

Publications (1)

Publication Number Publication Date
CN103812751A true CN103812751A (zh) 2014-05-21

Family

ID=50708986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410070776.0A Pending CN103812751A (zh) 2014-02-28 2014-02-28 一种基于ndis的ssl vpn终端数据交互方法

Country Status (1)

Country Link
CN (1) CN103812751A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789756A (zh) * 2016-12-26 2017-05-31 腾讯科技(深圳)有限公司 一种基于操作系统内核网桥的数据发送方法和装置
CN108667675A (zh) * 2018-08-14 2018-10-16 浙江亿邦通信科技有限公司 一种通信方法、通信设备及通信专线备网方法
CN109617897A (zh) * 2018-12-28 2019-04-12 北京指掌易科技有限公司 一种对公共移动应用提供安全传输的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080183853A1 (en) * 2007-01-30 2008-07-31 Microsoft Corporation Private virtual lan spanning a public network for connection of arbitrary hosts
CN102065125A (zh) * 2010-11-18 2011-05-18 广州致远电子有限公司 一种嵌入式ssl vpn的实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080183853A1 (en) * 2007-01-30 2008-07-31 Microsoft Corporation Private virtual lan spanning a public network for connection of arbitrary hosts
CN102065125A (zh) * 2010-11-18 2011-05-18 广州致远电子有限公司 一种嵌入式ssl vpn的实现方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
侯宾: "《SSL VPN记录层协议的分析与改进》", 《电子技术与应用》 *
张磊: ""基于安全套接层协议的虚拟专用网实现技术改进研究"", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
张磊等: ""一种远程移动用户访问企业虚拟网的方法"", 《计算机技术与发展》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789756A (zh) * 2016-12-26 2017-05-31 腾讯科技(深圳)有限公司 一种基于操作系统内核网桥的数据发送方法和装置
US11201760B2 (en) 2016-12-26 2021-12-14 Tencent Technology (Shenzhen) Company Limited Data forwarding method and apparatus based on operating system kernel bridge
CN108667675A (zh) * 2018-08-14 2018-10-16 浙江亿邦通信科技有限公司 一种通信方法、通信设备及通信专线备网方法
CN109617897A (zh) * 2018-12-28 2019-04-12 北京指掌易科技有限公司 一种对公共移动应用提供安全传输的方法

Similar Documents

Publication Publication Date Title
CN107018134B (zh) 一种配电终端安全接入平台及其实现方法
US10425384B1 (en) Optimizing connections over virtual private networks
US20170142100A1 (en) Secure distribution of session credentials from client-side to server-side traffic management devices
US9231918B2 (en) Use of virtual network interfaces and a websocket based transport mechanism to realize secure node-to-site and site-to-site virtual private network solutions
US8418244B2 (en) Instant communication with TLS VPN tunnel management
US9160527B2 (en) Systems, methods, and computer-readable media for secure digital communications and networks
EP2681874B1 (en) Ipsec connection to private networks
US11729042B2 (en) IPSec acceleration method, apparatus, and system
US10554689B2 (en) Secure communication session resumption in a service function chain
US10129217B2 (en) Secure shell authentication
US10291600B2 (en) Synchronizing secure session keys
CN106878133A (zh) 报文转发方法及装置
CN103812751A (zh) 一种基于ndis的ssl vpn终端数据交互方法
CN101471839A (zh) 多核异步实现IPSec vpn的方法
CN114500351A (zh) 网络性能测试方法、装置、设备及存储介质
CN102480473A (zh) 基于fsk的安全性信息交互系统及方法
CN110474884B (zh) 以太坊网络系统及通信方法、设备及计算机可读存储介质
CN103067282B (zh) 数据备份方法、装置及系统
CN101510901B (zh) 一种分布式设备间的通信方法、通信设备和通信系统
CN100583891C (zh) 一种通讯加密的方法与系统
CN107370598B (zh) 以智能手机作为个人电脑电子密钥的方法
JP4996514B2 (ja) ネットワークシステム及び電文の転送方法
CN108494744A (zh) 一种IPsec VPN客户端报文处理方法及装置
JP2003069597A (ja) 大規模IPSecVPN構築方法、大規模IPSecVPNシステム、プログラム及び鍵共有情報処理装置
CN102594785A (zh) Ip安全隧道建立方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20140521

RJ01 Rejection of invention patent application after publication