潘晓瑜
摘要:部署IPSec VPN时,在不同封装模式中需使用不同协议下的数据封装格式,并且IPSec通过在不同场景中使用不同的封装模式提供差异化安全服务。在阐述数据包封装格式基础上,详细分析不同场景中的封装模式选择并分析其原因,探讨IPSec封装模式在不同场景下的应用,为无保护的IP网络提供信息安全传输服务。
关键词:IPSec;传输模式;隧道模式;GRE
DOIDOI:10.11907/rjdk.172487
中图分类号:TP319
文献标识码:A 文章编号:1672-7800(2017)012-0169-03
Abstract:To everyone in the deployment of IPSec VPN in different encapsulation mode when using different protocols provide certain reference data encapsulation format, at the same time, through in different scenarios, in order to IPSec use different encapsulation mode to provide diversity of security services. This paper elaborates the packaging format of the packets, analyzes the selection of packaging modes in different scenarios and analyzes the reasons.Different deployment plans are selected according to the actual needs in different scenarios, and different packaging modes are selected in consideration of security, resource utilization and efficiency.Thus, secure transmission services for unprotected IP networks are provided.
Key Words:IPSec; transmission mode; tunnel mode; GRE
0 引言
TCP/IP體系中网络层的核心协议是由RFC 791定义的IP,IP是一个网络协议,其提供的数据传送服务是不可靠的、无连接的[1]。因此,IP网络只是一个尽力而为的网络,其本身不提供对信息的安全服务。
IPSec是由Internet工程任务组(IETF)开发的开放标准框架,它定义了在网络层中使用安全服务,其功能包括数据加密、网络单元访问控制、数据源地址验证、数据完整性检查和防止重放攻击[2]。
IPSec对信息的保护主要由AH(Authentication Header,身份验证报头)协议和ESP(Encapsulating Security Payload,封装安全性有效负载)协议负责[3]。AH协议可对整个数据包(IP 报头与数据包中的数据负载)提供身份验证、完整性与抗重播保护,但它不对数据进行加密。ESP协议虽然只为IP 负载提供身份验证、完整性和抗重播保护,但能提供加密功能。
完整集成化企业范围的VPN安全主要通过在公网上的安全双向通信及透明的加密方案予以保证,以确保数据的完整性和保密性。VPN大多采用IPSec协议,IPSec作为在IPv4及IPv6上的加密通信框架,已为大多数厂商所支持,是VPN实现的Internet标准[4]。
1 IPSec的两种封装模式
IPSec有两种封装模式:传输(Transport)模式和隧道(Tunnel)模式。当使用传输模式时,IPSec只对IP数据包中上层协议的负载进行封装;当使用隧道模式时,IPSec对IP报头和有效负载都进行封装,从而提供对整个IP数据包的保护[5]。
不管在哪种封装模式下,既可以使用AH对整个IP数据包进行身份验证,也可以使用ESP对IP负载进行验证和加密。AH和ESP可以独立使用,也可以组合使用。假如既要为IP报头提供数据完整性与身份验证,又要为IP负载提供加密服务,就必须组合使用ESP与AH协议。
1.1 传输模式下的IPSec数据包封装
使用传输模式时,IPSec通过AH或ESP报头对IP负载提供保护,不保护原IP报头,即IP报头不封装就被传送。
(1)AH传输模式。使用AH可对整个数据包进行签名以提供身份验证,但它不提供加密服务,也即数据一直以明文形式传输。完整性与身份验证是通过在IP报头与IP负载间插入的AH报头所承担,具体的IPSec封装结构如图1所示。
(2)ESP传输模式。ESP不仅为IP负载提供身份验证、完整性和抗重播保护,与AH不同的是还提供对负载的加密功能,但所有身份验证、加密服务只针对IP负载部分,也即不对报头进行认证与加密。此模式下,ESP报头置于IP负载之前,ESP尾端与ESP验证摘要置于IP负载之后,具体的IPSec封装结构如图2所示。
1.2 隧道模式下的IPSec数据包封装
使用隧道模式时,会通过AH或ESP报头与新IP报头封装整个IP数据包。外部新IP报头中的IP地址是隧道的起始点和终点地址,封装的原IP报头中的IP地址是最终的源地址和目标地址。
(1)AH隧道模式。使用AH对整个数据进行摘要签名形成AH认证头以获得完整性并进行身份验证,同时将AH认证头与新IP报头一起对整个数据包进行封装从而形成新的IPSec封装包,具体的IPSec封装结构如图3所示。endprint
(2)ESP隧道模式。通过ESP对IP负载加密,对密文及ESP头和ESP尾形成摘要,并与新IP报头、ESP头和ESP尾部一起对原IP数据包进行封装。尽管使用ESP时的加密服务只针对IP数据负载部分,但在封装时将原IP报头一起封装,从而使原IP报头得到保护,具体的IPSec加密过程与封装结构如图4所示。
2 一般场景中的模式选择
2.1 IPSec VPN的一般应用场景
IPSec技术的常见网络部署有对称型网络和不对称型网络两种[6]。对称型网络一般适用于企业总部与分部之间或企业与企业之间,通过互联网络上的两台安全网关协商IPSec隧道,加密所有流经的机密数据;不对称型网络一般适用于远端接入,用于经常在外的企业人员需要访问企业内部网络时,可以随时在网络上向企业安全网关发起IPSec隧道协商,通过加密隧道访问企业内部网络。
IPSec VPN的一般应用场景分为以下3种情形:
(1)Site-to-Site(网关到网关):对称型网络的典型应用场景,在两台安全网关之间建立VPN隧道,用于实现同一企业不同分部之间通过安全网关间的VPN隧道进行保密通信。
(2)End-to-Site(PC到网关):不对称型网络的典型应用场景,在PC与安全网关之间建立VPN隧道,用于处于异地的PC与企业内部网络进行保密通信。
(3)End-to-End(PC到PC):在两个PC间建立安全VPN隧道,保护两台PC间的通信,用于实现主机与服务器间的安全访问。
2.2 几种场景下的模式选择
(1)Site-to-Site场景中的模式选择。Site-to-Site场景中的访问都是由处于不同地域企业内部网络中主机之间的通信发起,而这种通信使用的IP地址往往都是内部私有地址。由于传输模式只封装IP数据包的有效负载,并不封装IP头部,也即不会改变原数据包中的IP地址,这样的数据包是不会通过安全网关进入Internet中被转发的;即使是由于其它原因,使这种数据包被转发,最终到达目的主机时,也会因为接收主机没有参与IPSec隧道协商以致无法解密而被丢弃。因此,在这种场景中只能使用隧道模式,用包含隧道起始地址和终端地址的新报头重新封装原始IP数据包成为IPSec数据包,这种数据包才会在公网上被转发。
(2)End-to-Site场景中的模式选择。End-to-Site场景中的通信往往是外部终端主机需要访问企业的内部网络而与企业安全网关间建立的IPSec安全隧道,例如企业在外人员通过Internet访问异地企业内部网络。虽然在外员工接入Internet的方式无法确定,但可以肯定的是,通信的另一方(即企业内部主机)使用内部私有地址,因此在此场景中与Site-to-Site场景中一样,也必须使用隧道模式进行封装。
(3)End-to-End场景中的模式选择。End-to-End场景多用于内部网络中保护主机与服务间的通信而在主机与服务器之间建立IPSce安全隧道。一般情况下,该场景主要在企业内部网络中应用而不需要跨越Internet,因此在双方都使用内部私有地址且路由可达的情况下使用传输模式。在此场景中应用隧道模式也是可行的,只是重新封装后的新IP报头中的地址与原IP报头地址相同,因此从节省资源的角度而言,建议使用传输模式。
3 其它场景中的模式选择
通用路由封装(GRE:Generic Routing Encapsulation)在RFC1701/RFC1702中定义,它规定了怎样用一种网络层协议去封装另一种网络层协议的方法[7]。GRE只提供数据包的封装,没有防止网络侦听和攻击的加密功能,因此在实际环境中它常与IPSec一起使用,由IPSec给用户数据加密,为用户提供更好的安全服务[8]。
3.1 GRE over IPSec时的模式选择
一般情况下,GRE over IPSec多用于Site-to-Site场景中,目的是将不同地域的总部网络与分部网络从逻辑上联接成一个网络。
由于IPSec不支持对多播和广播数据包的加密[9],因此使用IPSec的隧道时,动态路由协议等依靠多播和广播的协议就不能正常通告,单纯用IPSec VPN无法实现最终目的。
GRE隧道会将多播和广播数据包封装到单播包中,可以通过GRE隧道向邻居通告本地路由信息[10]。此外,由于GRE建立比较简单,不用加密VPN隧道,可通过在物理链路中使用IP地址和路由穿越互联网络。使用IPSec结合GRE,发挥两者各自优势,为总部与分部网络之间的数据通信提供安全保证,并最终达到联接目的。
当本地IP数据包通过GRE隧道进行路由转发时,首先需要进行GRE封装,使GRE隧道的起始地址和结束地址作为数据包最外层的地址,该地址可以直接路由至对端设备。此时IPSec VPN两端的地址与GRE隧道两端物理地址完全一样,在这种情形下就不需要使用隧道模式再次封装,因此推荐使用传输模式以节省资源,提高通信速率。
3.2 IPSec over GRE时的模式选择
与GRE over IPSec一样,IPSec over GRE也多用于Site-to-Site場景中,不同的是后者先进行IPSec封装,然后再进行GRE封装。一般情况下,IPSec感兴趣的数据流是两端内部网络主机间的通信数据,其中目的地址为对方内部私有地址,与IPSEC设置时用set peer指定的对端地址不一致。这种情况下,不管指定的是哪种模式,IPSec都会强行使用隧道模式,否则数据包无法到达对方网络。由此得知,数据包会被相同的地址封装两次,一次是IPSec封装,一次是GRE封装。
4 结语
IPSec为无保护的IP网络(如Internet)上传输敏感数据提供了安全性服务,它服务于所有基于IP的网络通讯,对于上层协议应用而言完全透明。目前,IPSec最主要的应用是构造虚拟专用网(VPN),它作为一个第三层隧道协议,是实现VPN通信的主要方式。IPSec提供了两种不同的封装模式,在不同的场景中根据实际需要选择不同的部署方案,并考虑安全性、资源利用率、实现效率等多方面因素选择不同的封装模式。
参考文献:
[1] 杭州华三.路由交换技术[M].第1卷(上册).北京:清华大学出版社,2011.
[2] 陈波.路由器与网络层安全的研究[D].成都:西南交通大学,2002.
[3] 周贤伟.IPSec解析[M].北京:国防工业出版社,2006.
[4] 张蒲生.网络安全应用技术[M].北京:电子工业出版社,2008.2
[5] 陈平.IPSec在路由器中的实现[J].微型电脑与应用,2005,21(5):48-50.
[6] 张彬,郭军.IPSec的应用与实现分析[C].第六届全国计算机应用联合学术会议论文集,2002:271-273.
[7] 王丽娜,刘炎,何军.基于IPSec和GRE的VPN实验仿真[J].实验室研究与探索.2013,32(9):70-75.
[8] 李志球.计算机网络基础[M].北京:电子工业出版社,2014.
[9] 林雁.IPSec-网络层安全的协议[J].电脑与应用,2005,2:83-85.
[10] 朱蕾,张勇,自英彩.基于IPSec的安全路由器的设计与实现[J].计算机工程,2001,27(6):144-145,133.
(责任编辑:孙 娟)endprint