维普资讯 http://www.cqvip.com
基于隧道模式I PSec的NAT穿越 杨名川 (深圳职业技术学院计算机应用工程系,深圳518055) 摘 要:阐述了IPSec和NAT的原理,分析了在NAT下应用IPSec可能出现的问题,提出了应用 ESP隧道模式解决NAT穿越的方法.阐遗在路由器上如何配置。 关键词:IPSec;NAT;ESP:隧道;IKE 0引言 NAT虽然可以让局域网内韵多台计算机共享一 将信息加密。 ESP隧道模式的新隧道包头还是保留原状阱没 有被IPSec签名和加密,但是TCP/UDP端口却被加 密,因而无法读取。虽然NAT可以改变隧道模式中的 隧道端点的IP地址,但是NAT却无法改变端口.更 何况端口还被签名。不允许改变。 个Public IP同时连接Internet,但如果同时采用IPSec 来确保信息传送安全性的话,就有问题产生,因为 NAT会改变数据包的包头 ,然而IPSec不允许变更数 据包的包头。 1 协议分析 1.1 NAT对AH协议的影响 AH利用消息摘要算法对整个IP包产生一个加 密后的散列值。该散列值的作用范围是整个IP包,包 括那些不发生变化的IP头.如源IP地址和目的IP地 l包头f} JI 包头L包头 匕 上『Data J l逸utlI 加密 签名 图2 ESP隧道模式 1.3 NAT对IKE协议的影响 无论是AH还是ESP,其对一个IP包执行操作之 址。接收方利用该散列值认证收到的IP包。如果在发 送过程中原始IP包中的任何字段(不包括可变字段. 如TTI 等)发生变化,都将会导致接收方的认证失败, 接收方将据此丢弃该包。AH的目的是为了防止对IP 前首先必须建立一个IPSec SA。IPSec使用IKE自动 建立和维护安全SA,并对对端做认证。目前最基本和 最常见的认证方式是预共享密钥。但这种方法使用IP 包的源地址和端口号做认证标志,如果在端点之间插 入NAT,则外部源IP地址将被翻译成NAT路由器的 包的未授权的修改、源地址欺骗以及中间人攻击。但 NAT将会改变IP包的地址字段的值,从而导致消息 完整性认证失效。 地址,IP包所携带的地址标志是安全网关的起点.那 么IKE就会丢弃这样的IP包,验证检查就会失败。 狃包头 }TCP/UDP包头IData ] 现 AH 2 IPSec穿越NAT的解决方法 NAT穿越(NAT Traversal,NAT一 就是为解决这 个问题而提出的,在RFC3947、3948中定义.在 RFC4306中也加入了NAT—T的说明。由于AH是对 整个数据包做签名验证,而ESP没有对“新隧道包 代 计 图1 AH隧道模式 算 机 1.2 NAT对ESP协议的影响 ^ 总 第 是它可以确认收到的信息没有被篡改.可以确认信息 二 ESP也采用消息摘要算法做IP包的认证,也就 头”部分进行加密和签名,所以选择使用ESP方式来 解决NAT穿越的问题。该方法将ESP协议包封装到 确实是由所要通信的计算机传过来的.而且ESP会 收稿日期:2007—03—21修稿日期:2007-05—06 五 九 期 作者简介:杨明川(1971-),黑龙江哈尔滨人,讲师,研究方向为计算机网络 维普资讯 http://www.cqvip.com
安全技术 UDP包中(在原ESP协议的IP包头外添加新的IP头 和UDP头),这样,当此数据包穿过NAT网关时,被 / IPSec数据包封装到IKE协商所使用的连接隧道里。 NAT穿越要求必须使用IPSec的ESP封装方式。在使 用隧道模式进行UDP封装传送报文时,内部IP头中 可能会包含不适合当前网络的地址。这时需要根据本 地策略对数据包做如下检查:如果在策略中,已为对 端的封装报文定义了一个有效的源IP地址空间,则 修改的只是最外层的IP/UDP数据,而对其内部真正 的IPSec数据没有进行改动;在目的主机处再把外层 的IP/UDP封装去掉.就可以获得完整的IPSec数据 包。+这样在NAT的内部网中可以有多个IPSec主机 建立VPN通道进行通信。这项技术的实现分为两个 步骤:IKE协商和UDP封装。 2.1 IKE协商 应检查在内部报文中的IP源地址是否属于有效范 围:如果已经为远程对端分配了一个地址,则应检查 内部报文中的IP源地址是否与该地址一致。对报文 在IKE协商时首先是判断通信的双方是否支持 NAT-T.这主要通过IKE协商时彼此发送的第一个数 据包来判断。在判断双方均支持NAT—T后,进入到第 二个阶段.去发现在上方的链路中间是否存在NAT 设备,这一个阶段通常称为NAT发现(NAT Discov— ery)。NAT发现的原理实际上就是判断通信双方的 IP地址或者端口是否发生了改变。当发现NAT设备 以后.NAT—T双方开始协商所采用的数据包封装方 式,至此完成协商过程。IKE协商过程如下: (1)IKE通过Cookie载荷交换来确定远程主机 是否支持NAT穿越。如果协商双方支持NAT穿越, 则协商双方在阶段1的前两条消息中应加入一个 Cookie载荷,载荷的内容是对本地秘密、对方标识和 当前时间进行MD5运算得出的散列值。该字串需标 明它所支持的NAT穿越方法应遵循的要求。 (2)NAT发现(NAT Discovery)载荷不仅用于探测 两个IKE实体之间是否存在NAT,也用于探测NAT 所处的位置。Keepa|ive消息能从位于NAT后面的实 体发出。为了探测出两台主机之间的NAT,需要检查 IP地址和端口是否沿着传输路径发生改变。协商双 方只需各自向对端发送源方和目的方的IP地址与端 口的散列值.就可以检测地址和端口在传输过程中是 否发生改变。如果协商双方计算出的散列值与其收到 的散列值相同,则表示它们之间没有NAT。反之,则 是在传输中对地址或端口进行了转换,说明所通过的 IPSec报文进行了NAT穿越的处理。如果发送者不能 确定自己的IP地址f比如拥有多个网络接口,并且不 能确定包路由选择到哪一个接口).它可以在报文中 包含多个本地IP地址的散列值。在这种情况下,仅当 所有的散列值均不匹配时,才表明NAT的存在。 2.2 UDP封装 经过IKE协商.如果发现途中的NAT网关设备, 则将在之后的IPSec数据传输中使用UDP封装,即将 执行NAT转换,使其适合在本地网络中传输。 隧道模式下ESP封装的报文格式如图3。隧道模 式下ESP封装的步骤为:普通的ESP封装处理;插入 一个适当格式的UDP头部。 包头ll嚣{包头l 包头 包头 I加密 }P【D…Iata I尾部I Aut h 签名 图3隧道模式下ESP封装 隧道模式下ESP解封装的步骤为:从报文中删 除UDP头;编辑IP头中的总长字段、协议字段以及 校验和字段,使之与所得的报文相匹配;应用普通的 ESP解封装处理过程;应用隧道模式解封装NAT处 理过程。 显然.NAT—T加大了数据包的长度和负载,大约 为每个数据包增加了20 Bytes的长度。这增加了设备 处理的时间和负担。但是对应NAT—T的实现简单和 安全而言,这是非常值得的,因此NAT—T实际上已成 为VPN设备的必备功能,由于NAT技术在国内的广 泛应用.不具备这种功能的IPSec VPN使用环境会大 大受到,所以用户在选用VPN设备时应该将这 一功能作为一个重要的考核指标。 3 配置IPSec穿越NAT 现 代 计 算 机 ^ 总 第 二 五 图4 IPSeC穿越NAT 九 期 v MODEI ̄N c0MPuTER舢.5 o 维普资讯 http://www.cqvip.com
\\\ :兰兰 IPSec的访问控制列表可称为加密访问控制列表。加 密访问控制列表匹配(permit)的报文将被保护,加密 访问控制列表拒绝(deny)的报文将不被保护。加密访 问控制列表既可用于加密人口数据流,也可用于加密 出口数据流。 通过图4说明使用华为路由器配置IPSec穿越 NAT的步骤;路由器A是某企业分部的出口路由器, 只负责NAT转换:路由器B是某企业分部内IPSec 加密的路由器,不做NAT:路由器C是某企业总部路 由器.有固定IP;路由器B和C的IPSec穿透了路由 器A的NAT转换。 该实例为路由器B和C之间通过IPSec构造的 3.4配置IPSec安全提议 安全提议保存IPSec需要使用的特定安全性协 议以及加密/验证算法,为IPSec协商SA提供各种安 VPN通信。但是数据包在通信的途中经过网关A,需 做地址转换,也就是IPSec数据包要穿越NAT。解决 问题思路为首先配置IKE安全提议一配置IKE对等 体一配置IPSec访问控制列表一配置IPSec安全提 议一应用IPSec安全策略。 3.1配置IKE安全提议 IKE提议定义了一套属性数据来描述IKE协商 怎样进行安全通信。配置IKE提议包括创建IKE提 议、选择加密算法、选择验证方法、选择验证算法、选 择D e—Hellman组标识和设置安全联盟生存周期。 用户可以按照优先级创建多条IKE提议,但是 协商双方必须至少有一条匹配的IKE提议才能协商 成功。协商时将从优先级最高的提议开始匹配一条双 方都相同的提议,匹配的原则是:协商双方具有相同 的加密算法、验证算法、验证方法和DH组标识。 3.2配置IKE对等体 IKE对等体是成功实现第一阶段协商的关键配 置。在对等体中,需要设置协商模式,其中模式支持 NAT穿越,而主模式不支持;需要配置IKE协商所使 用的身份认证字,以保证双方协商的合法性;无论使 用地址协商(id—type IP)还是NAME协商(id—type NAME).IPSec SA的发起方必须配置对端安全网关 设备的IP地址,当发起协商时,发起方会发送自己的 IP地址给对端来标识自己的身份。若使用NAME协 商方式.则必须指定对端的NAME.且需要保证对方 指定的IKE NAME与之相同,否则将代之以路由器 名.这很可能发生校验错误而引起IKE协商失败;根 现 据穿越NAT的需要.可选择配置NAT穿越功能。此 代 外,还可以配置本端安全网关ID的类型、指定对端安 计 算 全网关设备的ID、配置子网类型等。 机 3.3配置IPSec访问控制列表 ^ 用于IPSec的访问控制列表的作用不同于在防 总 第 火墙中的访问控制列表。一般的访问控制列表是用来 二 决定一个接口上哪些数据可通过,哪些要被拒绝;而 五 IPSec是根据访问控制列表中的规则来确定哪些报文 九 需要安全保护,哪些报文不需要安全保护.故用于 期 o MODERN COMPUTER舢.5 全参数。为了能够成功地协商IPSec的SA,两端必须 使用相同的安全提议。 3.5配置IPSec安全策略 安全策略规定了对数据流采用何种安全提议。 安全策略分为手工安全策略和IKE协商安全策略,前 者需要用户手工配置密钥、SPI等参数,在隧道模式下 还需要手工配置安全隧道两个端点的IP地址:后者 则由IKE自动协商生成这些参数。IPSec穿越NAT必 须使用IKE自动协商方式配置安全策略。 3.6应用IPSec安全策略 为使定义的SA生效,应在每个要加密的出站数 据、解密的人站数据所在接口(逻辑的或物理的)上应 用一个安全策略组。由这个接口根据所配置的安全策 略组和对端加密路由器配合进行报文的加密处理。当 安全策略组从接口上被删除后.此接口便不再具有 IPSec的安全保护功能。 4结语 在应用IPsec穿越NAT时可能会出现下面的问 题:攻击者可监听网络中的所有通信流,修改报文顺 序,在已发现的报文之前注入新的报文时,对每个有 效验证的报文更新IKE SA报文和ESP UDP封装报 文的IP地址和端口,则会造成DoS攻击。攻击者可从 位于NAT后面的主机截取已验证的报文,修改报文 的UDP源方和目的方的IP地址与端口,并在真正的 报文到达之前发送给对端。如果不是在NAT后面的 主机接收到伪造报文后,将根据伪造报文更新它的 IP地址和端口映射,并将随后的通信流发送至错误 的主机或端口。这种情况在攻击者停止攻击并接收到 第一个正确报文后才能修正。所以用户应该每次审计 映射的改变.一般情况下它不应经常发生。 在一些系统中,ESP封装UDP可能引发DoS攻 击,特别是使用普通操作系统的UDP功能。因此,建 议用户勿打开普通的UDP端口。 (下转第46页) 维普资讯 http://www.cqvip.com
\ 安全技术 要加强网络硬件的物理安全,而且应在关键的网络层 次上采用成熟的加密技术和严格的访问控制技术,这 6to4隧道技术存在对6to4伪接口的攻击、本地定向 广播攻击和业务盗用的危险,在使用时需要加载一系 列的安全策略:6over4隧道技术可以采用一定的策略 样才能提高IPv6网络的安全性能。 参考文献 来保证网络安全.但是该技术要求IPv4网络支持组 播,应用范围有限,建议尽量不要使用。 …胡道元,阂京华.网络安全.北京:清华大学出版社,2004 5结语 欺骗攻击是攻击者在对网络安全知识相当了解. 对网络技术和基本原理相当熟悉的基础上,采用的非 【2】张岳公,李大兴.IPv6下的网络攻击和入侵分析.计算机 科学。2006.33(2) I3】刘耀东,戴冠中.移动IPv6协议及其安全机制分析.计算 机应用研究,2005(9):149~151 常专业化的攻击手段。在IPv6网络下。IPSec的引入 提高了网络的安全性能.但不能期望IPSec能解决所 有的安全问题.更应该看到IPSec引入后对现有的网 『41郑晓红,刘知贵,陆荣杰.IPv6与IPv4网络攻击方式研 究.2006(12):159~161 络安全体系和网络监管带来的新的挑战 在此情况 下,防止欺骗攻击,应该从网络的各个层次着眼,不仅 『5】姚树宇.IPv6协议及其过渡技术的安全问题.现代计算 机.2005.225:46~49 . Defense of Spoofing Attack in I Pv6 XU Ai_jun,LIN Jing—zhang,WANG Jin—lan (Guangzhou Institue of Railway Technology,Guangzhou 510430) Abstract:The performance and security of IPv6 has been errhanced observably,but it brings lots of problems and challenges at the same time.Analyzes the spoofing attack,puts forward all the fonT】of attacks and their defense mechanisms in IPv6. Keywords:IPv4;IPv6;Spoofing Attack;Network Security (上接第40丽) 参考文献 http://www.vlan9.COITI,2005.12 【3】戴有炜.Windows Server 2003网络专业指南.清华大学出 【1】华为3Com技术有限公司.华为3Com网络学院教材(第 八学期).2006 【2]IPSec穿越NAT兼容性问题及技术要求. 版社.2004(6) 【4]RFC2709.Security Model with Tunnel—mode IPSec for NAT Domains NAT TraversaI Based on I PSec Tunnel-mode 现 代 计 算 机 ^ Yang Ming——chuan (Department of Computer Engineer,Shenzhen Polytechnic,Shenzhen 5 1 8055) Abstract:Discusses the principle of the NAT and IPSec,analyses the problem of applying IPSec to traversal NAT,puts forward a way of ESP tunnel—mode to solve NAT,describes how to con. 总 第 二 五 ifgureinthe router. 九 斯 、一 Keywords:IPSec(IP Security);NAT(Network Address Translation);EsP(Encapsulation Security Protoco1);Tunnel; IKE(Internet Key Exchange) o MODERN Co肘PUTER 2007.5