CN101753531B - 利用https/http协议实现IPsec协议封装的方法 - Google Patents
利用https/http协议实现IPsec协议封装的方法 Download PDFInfo
- Publication number
- CN101753531B CN101753531B CN2008102073497A CN200810207349A CN101753531B CN 101753531 B CN101753531 B CN 101753531B CN 2008102073497 A CN2008102073497 A CN 2008102073497A CN 200810207349 A CN200810207349 A CN 200810207349A CN 101753531 B CN101753531 B CN 101753531B
- Authority
- CN
- China
- Prior art keywords
- tcp
- ipsec
- encapsulation
- udp
- protocol
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种利用https/http协议实现IPsec协议封装的方法,利用TCP协议实现IPsec协议封装,将UDP协议封装的IKE/IPSec报文进一步封装成TCP报文进行传输。本发明是一种创新型的IPSec VPN隧道封装方法,通过TCP协议对IKE和IPSec数据报文进行封装,克服了当前IPSec隧道只能通过UDP进行封装的局限性,同时具有保持对UDP封装等兼容性的优点,提供了一种解决异地网络安全互连的加密通信的新方法。
Description
技术领域
本发明属于网络、通信技术领域,涉及解决异地网络安全互连的加密通信技术。
背景技术
随着通信基础设施建设和互联网络技术的飞速发展,各行各业纷纷借助互联网络技术来加快总公司和分公司信息的流动速度,提升企业的综合竞争力。VPN技术,就是一种目前业界主流的解决异地网络安全互连的加密通信协议。
VPN(Virtual Private Network)指综合利用包封装技术、加密技术,密钥交换技术、PKI技术,在公用的互联网络上,建立安全虚拟专用网络。数据在通信时通过VPN技术封装和加密。这样VPN技术能够有效保证,在一个开放的、没有安全保障的互联网上传输的数据的安全,保证数据信息的“机密性”、“完整性”和“不可抵赖性”。
目前主流的VPN技术中,主要的技术标准是IPSec VPN。
IPSec VPN技术:标准参加RFC 2401-RFC2409,主要应用两个协议:IKE协议和IPSec协议。IKE协议通过UDP 500端口 进行通信,用来协商隧道加密密钥。ESP协议是报文加密封装协议。
IPSec VPN作为主流的VPN协议,具有传输效率高、实现简单、应用范围广的优势,但技术局限性在于其协议IKE和ESP对NAT设备的要求,由于NAT协议早于IPSec协议开发,因此NAT设备并不能有效地识别ESP协议,并做出正确的转换。为了让IPSec报文能穿越NAT设备,提出了使用UDP 4500协议封装IKE和IPSec保文的方案,该方案大大提升了IPSec协议的应用范围。但其要求网络环境开放UDP 4500端口,仍然具有一定的局限性。
综上所述,目前面临的主要技术问题是:
1、IPSec VPN要求开放UDP 4500端口,但是网络环境往往只开放了TCP80端口或者TCP 443端口。
2、数据包的处理要求高效,不能经过应用层的处理之后再转入内核网络层,因此TCP隧道的封装不能使用***TCP协议栈。
3、对于已有的IPSec协议,新方案改动要求对***的影响降到最低,并且能保持对标准协议的兼容性。
发明内容
本发明的目的在于提供一种利用https/http协议实现IPsec协议封装的方法,克服现有技术的上述缺点。
本发明IPSEC通信的两端,一端作为服务器,另外一端作为客户端。客户端首先通过同服务器建立一个TCP连接;第二步客户端请求服务器准备进行TCP封装通信;第三步服务器端为客户端分配一个虚拟UDP端口作为客户端的唯一标识,同时维护客户端TCP信息和UDP端口的映射表;第四步,客户端和服务器之间通过TCP连接信息和虚拟UDP端口信息进行隧道封装和解封装;第五步,当通信结束之后,服务器端释放所占用的资源。
包括:
1.TCP封装格式。将IPSec和IKE报文封装在TCP协议之中,从而能解决网络适应性问题。
2.TCP封装处理模块。在内核态直接完成TCP头部的封装和解封装,从而保证数据包的高效处理。
3.TCP隧道维护模块。TCP隧道建立维护模块负责TCP隧道的建立和撤销,由客户端和服务器端共同完成。TCP Client同TCP Server建立一个TCP连接,并且由服务器方分配一个虚拟UDP端口,完成UDP和TCP的映射。
由于采用了上述方案,本发明的优点是:
在IPSEC VPN用户进行VPN通信接入时,不仅可以通过UDP协议封装的方式穿透防火墙,还可以通过TCP协议穿透防火墙,增强IPSEC协议的网络适应性和应用范围。
附图说明
图1是IKE/IPSec报文通过TCP进行封装格式示意图。
图2是IPSec Over TCP模块结构图。
具体实施方式
以下结合附图所示实施例对本发明作进一步的说明。
利用TCP协议实现IPsec协议封装的方法有三个重要的组成部分,一是:IPSec封装包的形式;二是:IKE/IPSEC文的TCP封装模块;三是:TCP通道的建立和删除模块。
一、TCP封装IKE/IPSec数据包的格式
TCP封装IPSec封装包的格式如图1,数据包从IP依次开始是IP头部、TCP头部、UDP头部、以及最后的IKE/IPSEC数据。
二、TCP Client和TCP Server的交互流程以及映射表项的使用
第一步,TCP Client向TCP Server发起一个TCP连接请求;
第二步,TCP Server监听在服务端口,收到请求之后,接受该连接;
第三步,TCP Client发送一个自定义请求保文,要求建立一个TCP封装通道;
第四步,TCP Server接受该请求,分配一个未使用的虚拟UDP端口号,并将该虚拟UDP端口号附带在应答报文中发送给客户端;同时,TCP Server将(虚拟端口号、客户端IP地址、TCP客户端端口、TCP服务端端口、TCP序列号、TCP确认号、TCP窗口)7元组信息写入本地映射表中;
第五步,TCP Server定期检查该表,如果长时间没有使用,将主动清除表项,回收虚拟UDP端口资源。
三、TCP封装处理模块
TCP的封装处理模块介于IKE/IPSEC模块和网卡之间,当网卡收到数据包之后,先经过TCP封装模块的解封装处理,然后再到IKE/IPSEC模块处理。对于发包,当IKE/IPSEC模块处理完毕之后,最后在发包之前交给TCP封装处理模块,进行TCP的协议格式封装,然后发送。客户端和服务端的处理流程相似,以服务端为例,流程如下:
1.发送流程
如附图1封包格式所示,当UDP封装的数据包到达TCP封装模块的时候,处理流程如下:
(1)根据数据包中查找TCP-UDP映射表,如果目的IP地址和端口不在映射表中,直接发送,否则进行后续步骤;
(2)在报文中***一个TCP头部,依照步骤(1)找到的映射表项信息填充TCP头部的20个字节;其中重要的是源和目的端口号、序列号和确认号以及校验和;
(3)根据本次发送到数据的长度,更新发送序列号;
(4)计算TCP校验和;
(5)重新计算IP头部校验和;
(6)发送数据包;
(7)结束。
2.收包处理流程
如附图1封包格式所示,当TCP封装的数据包到达TCP封装模块的时候,TCP封装模块需要将数据包进行TCP头部的解封装处理流程如下:
(1)根据TCP地址端口信息查找TCP-UDP映射表,如果没有找到,按原有流程处理;否则,继续步骤(2)
(2)如果找到,检查TCP,UDP头部的合法性;
(3)更新映射表项的确认序列号;
(4)去掉TCP头部;
(5)重新计算IP头部校验和;
(6)提交给IKE/IPSEC处理模块;
(7)结束。
上述的对实施例的描述是为便于该技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对这些实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于这里的实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。例如,本发明所述通过TCP进行IPSEC封装的方法,比较常用的TCP端口是HTTP 80端口和HTTPS 443端口,但本发明不仅限于IPSec Over HTTP/HTTPS,依据本发明的方法使用其他TCP端口进行封装也在本发明的保护范围之内。
Claims (6)
1.一种解决异地网络安全互连的加密通信方法,其特征在于:利用TCP协议实现IPsec协议封装,将UDP协议封装的IKE/IPSec报文进一步封装成TCP报文进行传输,且在内核态完成TCP头部的封装和解封装;所述TCP封装IKE/IPSec数据包的格式:数据包从IP依次开始是IP头部、TCP头部、UDP头部、以及最后的IKE/IPSec数据;所述加密通信方法还包括:发送流程和收包处理流程,其中:当UDP封装的数据包到达TCP封装模块的时候:
(1-1)根据数据包中查找TCP-UDP映射表,如果目的IP地址和端口不在映射表中,直接发送,否则进行后续步骤;
(1-2)在报文中***一个TCP头部,依照步骤(1-1)找到的映射表项信息填充TCP头部的20个字节,其中重要的是源和目的端口号、序列号和确认号以及校验和;
(1-3)根据本次发送到数据的长度,更新发送序列号;
(1-4)计算TCP校验和;
(1-5)重新计算IP头部校验和;
(1-6)发送数据包;
(1-7)结束;
当TCP封装的数据包到达TCP封装模块的时候,TCP封装模块需要将数据包进行TCP头部的解封装处理:
(2-1)根据TCP地址端口信息查找TCP-UDP映射表,如果没有找到,按原有流程处理;
否则,继续步骤(2-2);
(2-2)如果找到,检查TCP,UDP头部的合法性;
(2-3)更新映射表项的确认序列号;
(2-4)去掉TCP头部;
(2-5)重新计算IP头部校验和;
(2-6)提交给IKE/IPSEC处理模块;
(2-7)结束。
2.根据权利要求1所述的解决异地网络安全互连的加密通信方法,其特征在于:虚拟UDP端口的分配和使用。
3.根据权利要求2所述的解决异地网络安全互连的加密通信方法,其特征在于:TCP客户端同TCP服务器之间建立一个TCP连接,由服务器方分配一个唯一的虚拟UDP端口,并且通过客户端IP地址和该虚拟端口对客户端进行唯一标识。
4.根据权利要求2所述的解决异地网络安全互连的加密通信方法,其特征在于:服务器端维持一个TCP和UDP端口映射表,根据该映射表完成TCP协议头的封装与解封装。
5.根据权利要求2所述的解决异地网络安全互连的加密通信方法,其特征在于:在IPSEC VPN用户进行VPN通信接入时,不仅可以通过UDP封装的方式穿透防火墙,还可以通过TCP协议穿透防火墙。
6.根据权利要求1所述的解决异地网络安全互连的加密通信方法,其特征在于:所述TCP协议中包括但不限于TCP 80或者HTTPS 443协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102073497A CN101753531B (zh) | 2008-12-19 | 2008-12-19 | 利用https/http协议实现IPsec协议封装的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102073497A CN101753531B (zh) | 2008-12-19 | 2008-12-19 | 利用https/http协议实现IPsec协议封装的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101753531A CN101753531A (zh) | 2010-06-23 |
CN101753531B true CN101753531B (zh) | 2013-04-10 |
Family
ID=42479943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102073497A Expired - Fee Related CN101753531B (zh) | 2008-12-19 | 2008-12-19 | 利用https/http协议实现IPsec协议封装的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101753531B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166996B (zh) * | 2011-12-14 | 2016-06-08 | 华为技术有限公司 | Http连接和https连接自适应方法、装置及*** |
CN102437951A (zh) * | 2012-01-29 | 2012-05-02 | 山东黄金矿业(莱州)有限公司焦家金矿 | Gprs通讯动态ip的管理方法 |
CN102843281B (zh) * | 2012-09-18 | 2014-12-10 | 汉柏科技有限公司 | 一种访问局域网的方法 |
CN103220818B (zh) | 2013-01-30 | 2015-12-23 | 中兴通讯股份有限公司 | 一种建立X2口IPSec隧道的方法和装置 |
CN103618596B (zh) * | 2013-05-15 | 2017-06-20 | 盛科网络(苏州)有限公司 | Vxlan隧道中内层信息的加密方法 |
CN105227896B (zh) * | 2015-08-27 | 2020-10-16 | 北京华夏创新科技有限公司 | 一种在透明模式下视频会议优化技术方法和*** |
CN107046495B (zh) * | 2016-02-06 | 2020-08-18 | 阿里巴巴集团控股有限公司 | 用于构建虚拟专用网络的方法、装置和*** |
CN106850804A (zh) * | 2017-02-07 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种海量存储***减少网络连接数量的方法 |
CN107426193A (zh) * | 2017-06-30 | 2017-12-01 | 重庆大学 | 一种https应用中针对硬件加速的新型I/O通路设计 |
CN110191098A (zh) * | 2019-05-05 | 2019-08-30 | 厦门网宿有限公司 | 一种传输数据的方法、第一网络设备及第二网络设备 |
CN112583685A (zh) * | 2019-09-27 | 2021-03-30 | 厦门网宿有限公司 | 一种Ipsec VPN的数据传输方法及装置 |
CN111224855B (zh) * | 2019-12-16 | 2021-11-30 | 武汉思为同飞网络技术股份有限公司 | 基于Linux的虚拟网卡实现方法、装置、设备及介质 |
CN111614796B (zh) * | 2020-04-30 | 2023-03-24 | 网络通信与安全紫金山实验室 | 使用手工密钥配置IPsec隧道穿越NAT的方法及装置 |
CN116723037A (zh) * | 2020-06-03 | 2023-09-08 | 瞻博网络公司 | 选择性的传送层安全加密 |
CN111835728B (zh) * | 2020-06-15 | 2023-09-01 | 广州海颐信息安全技术有限公司 | 隐匿特权访问真实网络和协议的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1398090A (zh) * | 2001-07-18 | 2003-02-19 | 华为技术有限公司 | 一种无线虚拟私有网的隧道封装方法 |
CN1770767A (zh) * | 2005-09-01 | 2006-05-10 | 武汉思为同飞网络技术有限公司 | 对vpn报文进行tcp应用层协议封装的***及其方法 |
-
2008
- 2008-12-19 CN CN2008102073497A patent/CN101753531B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1398090A (zh) * | 2001-07-18 | 2003-02-19 | 华为技术有限公司 | 一种无线虚拟私有网的隧道封装方法 |
CN1770767A (zh) * | 2005-09-01 | 2006-05-10 | 武汉思为同飞网络技术有限公司 | 对vpn报文进行tcp应用层协议封装的***及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101753531A (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101753531B (zh) | 利用https/http协议实现IPsec协议封装的方法 | |
US20080075073A1 (en) | Security encapsulation of ethernet frames | |
EP2777217B1 (en) | Protocol for layer two multiple network links tunnelling | |
CN105940644A (zh) | 在保持端对端数据安全的同时具有分发优化的虚拟专用网络(vpn)即服务 | |
CN104067565A (zh) | 用于多租户访问网络的连接*** | |
CN106341404A (zh) | 基于众核处理器的IPSec VPN***及加解密处理方法 | |
US20150288651A1 (en) | Ip packet processing method and apparatus, and network system | |
CN104219217A (zh) | 安全关联协商方法、设备和*** | |
CN104993993B (zh) | 一种报文处理方法、设备和*** | |
CN103188351A (zh) | IPv6 环境下IPSec VPN 通信业务处理方法与*** | |
CN102348210A (zh) | 一种安全性移动办公的方法和移动安全设备 | |
CN102761494A (zh) | 一种ike协商处理方法及装置 | |
CN101222412B (zh) | 网络地址转换穿越方法和*** | |
CN101764825A (zh) | 虚拟专用网的数据传输方法、***及终端、网关设备 | |
CN101471839B (zh) | 多核异步实现IPSec vpn的方法 | |
CN104954339B (zh) | 一种电力应急抢修远程通信方法及*** | |
Xu et al. | Research on network security of VPN technology | |
CN103888450A (zh) | 一种Windows平台IPSec处理方法 | |
CN103167489B (zh) | 电力***中带安全防护的无线公网通讯方法 | |
CN108064441B (zh) | 一种加速网络传输优化方法以及*** | |
CN105635076B (zh) | 一种媒体传输方法和设备 | |
CN102724133A (zh) | 一种ip报文传输的方法及装置 | |
CN106027387B (zh) | 一种语音业务的处理方法、网关设备及*** | |
CN105245430A (zh) | 一种虚拟机通讯数据加密方法及*** | |
CN109257174A (zh) | 一种量子密钥在vpws业务中的应用方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130410 Termination date: 20201219 |
|
CF01 | Termination of patent right due to non-payment of annual fee |