ipsec与nat兼容性研究论文-_第1页
ipsec与nat兼容性研究论文-_第2页
ipsec与nat兼容性研究论文-_第3页
ipsec与nat兼容性研究论文-_第4页
ipsec与nat兼容性研究论文-_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IPSec 与 NAT 兼容性研究论文摘要网络地址转换技术与 IPSec 在因特网上都是得到广泛应用的技术,但是它们之间却是不兼容的。该文首先分别介绍了 NAT 和 IPSec 两种协议的基本原理,分析了两者的不兼容性,然后讨论了解决该问题必须满足的要求,最后给出了利用 UDP 封装法实现 NAT 透明穿透的解决方案。关键词IPSec;NAT;IkE;UDP 封装 1 引言基于 IP 技术的虚拟专用网(VirtualProfessionalNetwork,简称VPN)是通过 Internet 平台将局域网扩展到远程网络和远程计算机用户的一种成本效益极佳的方法。随着网络安全技术的飞快发展,越来越多大型企业利用互联网采用 IPSec 技术建立 VPN 网络,IPSec已逐渐成为 VPN 构建的主流技术。IP 安全协议(IPSecurityProtocol,简称 IPSec)是由互联网工程工业组(InternetEngineeringTaskForce,简称 IETF)1998 年底规划并制定的网络 IP 层标准。IPSec 不仅可以为 IP 协议层以上所有的高层协议和应用提供一致性的安全保护,而且除了可用于IPv4 之外,也可用于下一代 IP 协议 IPv6。另外,NAT(NetworkAddressTranslation)技术通过改变进出内部网络的 IP 数据包的源和目的地址,把无效的内部网络地址翻译成合法的 IP 地址在Internet 上使用。该技术一方面可以把私有 IP 地址隐藏起来,使外界无法直接访问内部网络,对内部网络起到保护作用;另一方面,它可以缓解由于IPv4 先天设计上的不足,而导致的 IP 地址严重短缺的现状。但是,被广泛使用的网络地址转换(NAT)设备却制约着基于 IPSec 技术的 VPN 的发展,这是因为 IPSec 协议在 VPN 中承担保护传输数据的安全性任务。在数据传输过程中,任何对 IP地址及传输标志符的修改,都被视作对该协议的违背,并导致数据包不能通过安全检查而被丢弃。但在 VPN 中运用 NAT 技术,则不可避免地要将私网地址映射为公网地址,即对 IP 地址要进行修改。因此,在 VPN 网络中如何使 IPSec 和 NAT 协同工作,实现 NAT 的透明穿透具有现实意义。2 协议介绍2.1IPSecIPSec 包括安全协议和密钥管理两部分。其中,AH 和 ESP 是两个安全协议,提供数据源验证、面向无连接的数据完整性、抗重放、数据机密性和有限抗流量分析等安全任务。为了能够将相应的安全服务、算法和密钥应用于需要保护的安全通道,IPSec 规定两个通信实体进行 IPSec 通信之前首先构建安全关联 SA。SA 规定了通信实体双方所需要的具体安全协议、加密算法、认证算法以及密钥。IkE 提供了用来协商、交换和更新 SA 以及密钥的完整机制。IPSec 定义了两种类型的封装模式传输模式和隧道模式。传输模式只对 IP 分组应用 IPSec 协议,对 IP 报头不进行任何修改,它只能应用于主机对主机的 IPSec 虚拟专用网 VPN 中。隧道模式中 IPSec 将原有的 IP 分组封装成带有新的 IP 报头的 IPSec 分组,这样原有的 IP 分组就被有效地隐藏起来了。隧道主要应用于主机到网关的远程接入的情况。2.2NATNAT 能解决目前 IP 地址紧缺的问题,而且能使得内外网络隔离,提供一定的网络安全保障。它解决问题的办法是:在内部网络中使用内部地址,通过 NAT 把内部地址翻译成合法的 IP 地址在 Internet 上使用,其具体的做法是把 IP 包内的地址或用合法的 IP 地址来替换。NAT功能通常被集成到路由器、防火墙、ISDN 路由器或者单独的 NAT 设备中。NAT 有三种类型:静态NAT、动态地址 NAT、网络地址端口转换 NAPT。其中静态 NAT 设置起来最为简单,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。而动态地址 NAT 则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。NAPT 则是把内部地址映射到外部网络的一个 IP 地址的不同端口上。根据不同的需要,三种 NAT 方案各有利弊。3IPSec 与 NAT 的不兼容性分析根据协议的定义,我们知道 IPSec 和 NAT 两个协议之间存在一定的不兼容性。其不兼容性主要有以下几种形式:1)NAT 对 AH 的影响 IPSecAH 进行验证的时候,处理的是整个 IP 包,包括源地址和目的地址。如果 IPSec 通信双方存在 NAT 设备,NAT 设备就会修改外层 IP 包头的源地址并修改其校验和,这样接收方会因认证失败而丢弃该包。2)NAT 对 ESP 的影响 TcP/UDP 校验和地计算涉及一个虚构的 IP 包头,该包头含有 IP 源和目的地址。因此,当 NAT设备改变 IP 地址时也需要更新 IP 头和 TcP/UDP 校验和。如果采用 ESP 传输模式,IP 包经过 NAT 设备时,NAT 设备修改了 IP 包头,但是 TcP/UDP 校验和由于处于加密负载中而无法被修改。这样,该信包经过 IPSec 层后将因为 TcP 协议层的校验和的错误而被丢弃。另外,由于 TcP/UDP 校验和只与内层原始 IP 包头有关,外层 IP 包头的修改并不对其造成影响,因此采用 ESP 隧道模式和仅静态或动态NAT 的情况下不存在 TcP 校验和的问题。但是,在NAPT 情况下,因为 NAPT 需要 TcP/UDP 端口来匹配出入信包,而端口号受到 ESP 加密保护,所以 ESP分组通信将会失败。3)NAT 对 IkE 的影响 IkE 主模式与快速模式中如果使用 IP 地址作为身份信息,经过 NAT 后,会导致 IkE 协商的失败。IkE 协议使用固定目的端口 500,当 NAPT 设备后的多个主机向同一响应者发起 SA 协商时,为了实现多路分发返回的 IkE 包,NAPT 修改外出的 IkE 包的 UDP 源端口。因此,响应者应该能处理端口号并非 500的 IkE 协商请求,但往往 NAPT 对 UDP 端口的映射很快会被删除,再协商的过程就将出现一些不可预见的问题,很容易导致 NAPT 设备无法将协商包送到正确的目的地。综上所述,IPSec 组件的支持能力从表 1 中可以看出,只有在隧道模式和地址转换情况下才可以实现 IPSec 数据流的 NAT 穿越。这一方法既降低了 IPSec 协议的安全性,又限制了 NAT的工作方式,因此在实际应用中可行度较差。4IPSec 与 NAT 的兼容性要求在现有的条件下,为了推动基于 IPSec 的 VPN 的发展,IPSec 和 NAT 兼容性解决方案需要满足下列要求:1)可部署性IPSec 和 NAT 兼容性解决方案作为一个过渡的解决办法必须比 IPv6 易于部署。应该只需修改主机,无需改变路由器,在短时间内能与现存的路由器和NAT 产品协同工作。2)远程访问 IPSec 的一个重要应用是远程访问公司的内部网络。NAT 穿越方案必须考虑远程客户端与 VPN 网关之间存在多个 NAT的情况。3)防火墙兼容性 IPSec 和 NAT 兼容性方案应该避免对 IkE 或 IPSec 目的端口的动态分配,使防火墙管理员进行简单的配置,就可以控制穿越NAT 的 IPSec 数据流。4)可扩展性 IPSec 和 NAT兼容性方案应具有良好的扩展性,必须保证在大规模远程访问的环境中,在大量远程接入的环境下,同一时间段多个主机和远程安全网关建立连接。5)后向兼容性 IPSec 和 NAT 兼容性方案中必须能与已有的 IPSec 实现互操作。穿越方案应该能自动检测是否存在 NAT,能判断通信对方的 IkE 实现是否支持 NAT 穿越。6)安全性 IPSec 和 NAT 兼容性解决方案的引入必须保证不得带来新的安全漏洞。5 利用 UDP 封装法实现 NAT 的穿透本文中的解决方案是采用 UDP 封装法实现 NAT 的透明穿透,不需要修改现有的 NAT 网关和路由器。所以该方案具有简单且易于实现的优点,缺点是由于添加了一个 UDP报文头,而加大了带宽开销,但相对于目前持续扩大的传输带宽来说,这个 UDP 报文头的带宽开销可以忽略不计。下面详细讨论其原理和实现过程。5.1 封装格式 UDP 封装法是在原有的 IP 包的 IP 头和 AH/ESP 的数据之间再封装一个 UDP 头,这样封装后的数据包端口值对 NAT 可见,就可以正确的实现端口转换。UDP 封装格式如图 1 所示。端口,为了简化配置和避免多个端口带来的安全隐患,UDP封装的 ESP 也使用该端口。这样就需要采取一定的方法来区分端口 500 的数据包是 IkE 消息还是 UDP封装的 ESP。为了区分两者,我们采用在 IkE 报头添加 Non-ESP 标记。在确定存在一个中间 NAT 之后,支持 IPSecNAT-T 的对话方开始使用新的 IkE 报头。5.2IkE 协商过程 IPSec 通信实体双方是否采用 UDP封装取决于对话对方是否支持该方法以及是否存在NAT 设备,这个过程通过 IkE 协商来完成。在 IkE协商过程中增添了新的 NAT-D 和 NAT-oA 有效载荷和以及 UDP 通道类型。1)新的 NAT-Discovery 有效载荷这个新的有效载荷包含一个散列值,它整合了一个地址和端口号。在主模式协商期间,即 IkE协商第一阶段第三、四条消息中,IPSec 对话方包括两个 NAT-Discovery 有效载荷一个用于目标地址和端口,另一个用于源地址和端口。接收方使用 NAT-Discovery 有效载荷来发现 NAT 之后是否存在一个经 NAT 转换过的地址或端口号,并基于被改变的地址和端口号来确定是否有对话方位于 NAT 之后。2)新的 NAT-originalAddress 有效载荷:这个新的有效载荷包含 IPSec 对话方的原始地址。对于 UDP 封装的 ESP 传输模式,每个对话方在快速模式协商期间发送 NAT-oA 有效载荷。接收方将这个地址存储在用于 SA 的参数中。3)用于 UDP 封装的ESP 传输模式和隧道模式的新的封装模式这两种新的封装模式是在快速模式协商期间指定的,用于通知 IPSec 对话方应该对 ESP 使用 UDP 封装。5.3 地址通告和 keepalive 包由于用 UDP 来封装 IPSec 分组的思想只解决了 NAPT 设备不支持 AH 和 ESP 通信的问题。例如 TcP 校验和错误、UDP 端口映射的保持等问题还需要辅助方法来解决。为保证校验和正确无误,通信双方需将自身的原始 IP 地址和端口发送给对方,即实现地址通告。地址通告的实现通过 IkE 第二阶段的前两条消息中的 NAT-oA 有效载荷。因为 NAT-oA 有效载荷中包含 IPSec 对话方的原始地址,为此,接收方就拥有了检验解密之后的上层校验和所需的信息。消息发起者在 NAT 中创建了一个 UDP 端口映射,它在初始主模式和快速模式IkE 协商期间使用。然而,NAT 中的 UDP 映射通常超过一定时间没用就会被删除掉。如果响应者随后向发起者发送 IkE 消息却没有提供 UDP 端口映射,那么这些消息将被 NAT 丢弃。这个问题的解决办法是通过定期发送 keepalive 包,用于后续 IkE 协商和 UDP 封装的 ESP 的 UDP 端口映射同时在 NAT 中得到刷新,从而保证通信的正常运行。6 结束语IPSec 作为网络层的安全协议,目前的应用越来越广泛,已成为构建 VPN 的基础协议之一。而由于IPv6 取代 IPv4 将是一个漫长的过程,NAT 设备的广泛存在极大地限制了 IP 层安全协议 IPSec 的推广,因此在目前的条件下,UDP 封装方法无疑是一种在当前环境下无需修改 NAT 网关和路由器、简单可接受的解决 IPSec 和 NAT 兼容性的方法,具有一定的现实意义。但是该方案还不完善,有待进一步讨论和研究。参考文献1RFc3022-XX.TraditionalIPnetworkaddresstranslatorS.2 RFc2401-1998.SecurityArchitectureoftheInternetProtocolS. 3 RFc2402-1998.IPAuthenticationHeaderS.4 RFc2406-1998.IPEncapsulatingSecurityPayloadS.5 RFc2409-1998.TheInternetkeyExchangeS.6RFc3103-XX.RealmSpecificIPProtocolSpecificationS.7 AbobaB,williamDixon.IPSec-NATcompatibilityrequirementsZ.Internetdraft,draft-ietf-ipsec-nat-reqtstxt,XX8 AriHuttunen.UDPencapsulateofIPSecpacketsZ.Internetdraft,draft-ietf-ipsec-udp-encapstxt,XX.9 kivirenT.NegotiationofNAT-traversalintheIkEZ.Internetdraft,draft-ietf-ipsec-udp-iketxt,XX摘要网络地址转换技术与 IPSec 在因特网上都是得到广泛应用的技术,但是它们之间却是不兼容的。该文首先分别介绍了 NAT 和 IPSec 两种协议的基本原理,分析了两者的不兼容性,然后讨论了解决该问题必须满足的要求,最后给出了利用 UDP 封装法实现 NAT 透明穿透的解决方案。关键词IPSec;NAT;IkE;UDP 封装 1 引言基于 IP 技术的虚拟专用网(VirtualProfessionalNetwork,简称VPN)是通过 Internet 平台将局域网扩展到远程网络和远程计算机用户的一种成本效益极佳的方法。随着网络安全技术的飞快发展,越来越多大型企业利用互联网采用 IPSec 技术建立 VPN 网络,IPSec已逐渐成为 VPN 构建的主流技术。IP 安全协议(IPSecurityProtocol,简称 IPSec)是由互联网工程工业组(InternetEngineeringTaskForce,简称 IETF)1998 年底规划并制定的网络 IP 层标准。IPSec 不仅可以为 IP 协议层以上所有的高层协议和应用提供一致性的安全保护,而且除了可用于IPv4 之外,也可用于下一代 IP 协议 IPv6。另外,NAT(NetworkAddressTranslation)技术通过改变进出内部网络的 IP 数据包的源和目的地址,把无效的内部网络地址翻译成合法的 IP 地址在Internet 上使用。该技术一方面可以把私有 IP 地址隐藏起来,使外界无法直接访问内部网络,对内部网络起到保护作用;另一方面,它可以缓解由于IPv4 先天设计上的不足,而导致的 IP 地址严重短缺的现状。但是,被广泛使用的网络地址转换(NAT)设备却制约着基于 IPSec 技术的 VPN 的发展,这是因为 IPSec 协议在 VPN 中承担保护传输数据的安全性任务。在数据传输过程中,任何对 IP地址及传输标志符的修改,都被视作对该协议的违背,并导致数据包不能通过安全检查而被丢弃。但在 VPN 中运用 NAT 技术,则不可避免地要将私网地址映射为公网地址,即对 IP 地址要进行修改。因此,在 VPN 网络中如何使 IPSec 和 NAT 协同工作,实现 NAT 的透明穿透具有现实意义。2 协议介绍2.1IPSecIPSec 包括安全协议和密钥管理两部分。其中,AH 和 ESP 是两个安全协议,提供数据源验证、面向无连接的数据完整性、抗重放、数据机密性和有限抗流量分析等安全任务。为了能够将相应的安全服务、算法和密钥应用于需要保护的安全通道,IPSec 规定两个通信实体进行 IPSec 通信之前首先构建安全关联 SA。SA 规定了通信实体双方所需要的具体安全协议、加密算法、认证算法以及密钥。IkE 提供了用来协商、交换和更新 SA 以及密钥的完整机制。IPSec 定义了两种类型的封装模式传输模式和隧道模式。传输模式只对 IP 分组应用 IPSec 协议,对 IP 报头不进行任何修改,它只能应用于主机对主机的 IPSec 虚拟专用网 VPN 中。隧道模式中 IPSec 将原有的 IP 分组封装成带有新的 IP 报头的 IPSec 分组,这样原有的 IP 分组就被有效地隐藏起来了。隧道主要应用于主机到网关的远程接入的情况。2.2NATNAT 能解决目前 IP 地址紧缺的问题,而且能使得内外网络隔离,提供一定的网络安全保障。它解决问题的办法是:在内部网络中使用内部地址,通过 NAT 把内部地址翻译成合法的 IP 地址在 Internet 上使用,其具体的做法是把 IP 包内的地址或用合法的 IP 地址来替换。NAT功能通常被集成到路由器、防火墙、ISDN 路由器或者单独的 NAT 设备中。NAT 有三种类型:静态NAT、动态地址 NAT、网络地址端口转换 NAPT。其中静态 NAT 设置起来最为简单,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。而动态地址 NAT 则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。NAPT 则是把内部地址映射到外部网络的一个 IP 地址的不同端口上。根据不同的需要,三种 NAT 方案各有利弊。3IPSec 与 NAT 的不兼容性分析根据协议的定义,我们知道 IPSec 和 NAT 两个协议之间存在一定的不兼容性。其不兼容性主要有以下几种形式:1)NAT 对 AH 的影响 IPSecAH 进行验证的时候,处理的是整个 IP 包,包括源地址和目的地址。如果 IPSec 通信双方存在 NAT 设备,NAT 设备就会修改外层 IP 包头的源地址并修改其校验和,这样接收方会因认证失败而丢弃该包。2)NAT 对 ESP 的影响 TcP/UDP 校验和地计算涉及一个虚构的 IP 包头,该包头含有 IP 源和目的地址。因此,当 NAT设备改变 IP 地址时也需要更新 IP 头和 TcP/UDP 校验和。如果采用 ESP 传输模式,IP 包经过 NAT 设备时,NAT 设备修改了 IP 包头,但是 TcP/UDP 校验和由于处于加密负载中而无法被修改。这样,该信包经过 IPSec 层后将因为 TcP 协议层的校验和的错误而被丢弃。另外,由于 TcP/UDP 校验和只与内层原始 IP 包头有关,外层 IP 包头的修改并不对其造成影响,因此采用 ESP 隧道模式和仅静态或动态NAT 的情况下不存在 TcP 校验和的问题。但是,在NAPT 情况下,因为 NAPT 需要 TcP/UDP 端口来匹配出入信包,而端口号受到 ESP 加密保护,所以 ESP分组通信将会失败。3)NAT 对 IkE 的影响 IkE 主模式与快速模式中如果使用 IP 地址作为身份信息,经过 NAT 后,会导致 IkE 协商的失败。IkE 协议使用固定目的端口 500,当 NAPT 设备后的多个主机向同一响应者发起 SA 协商时,为了实现多路分发返回的 IkE 包,NAPT 修改外出的 IkE 包的 UDP 源端口。因此,响应者应该能处理端口号并非 500的 IkE 协商请求,但往往 NAPT 对 UDP 端口的映射很快会被删除,再协商的过程就将出现一些不可预见的问题,很容易导致 NAPT 设备无法将协商包送到正确的目的地。综上所述,IPSec 组件的支持能力从表 1 中可以看出,只有在隧道模式和地址转换情况下才可以实现 IPSec 数据流的 NAT 穿越。这一方法既降低了 IPSec 协议的安全性,又限制了 NAT的工作方式,因此在实际应用中可行度较差。4IPSec 与 NAT 的兼容性要求在现有的条件下,为了推动基于 IPSec 的 VPN 的发展,IPSec 和 NAT 兼容性解决方案需要满足下列要求:1)可部署性IPSec 和 NAT 兼容性解决方案作为一个过渡的解决办法必须比 IPv6 易于部署。应该只需修改主机,无需改变路由器,在短时间内能与现存的路由器和NAT 产品协同工作。2)远程访问 IPSec 的一个重要应用是远程访问公司的内部网络。NAT 穿越方案必须考虑远程客户端与 VPN 网关之间存在多个 NAT的情况。3)防火墙兼容性 IPSec 和 NAT 兼容性方案应该避免对 IkE 或 IPSec 目的端口的动态分配,使防火墙管理员进行简单的配置,就可以控制穿越NAT 的 IPSec 数据流。4)可扩展性 IPSec 和 NAT兼容性方案应具有良好的扩展性,必须保证在大规模远程访问的环境中,在大量远程接入的环境下,同一时间段多个主机和远程安全网关建立连接。5)后向兼容性 IPSec 和 NAT 兼容性方案中必须能与已有的 IPSec 实现互操作。穿越方案应该能自动检测是否存在 NAT,能判断通信对方的 IkE 实现是否支持 NAT 穿越。6)安全性 IPSec 和 NAT 兼容性解决方案的引入必须保证不得带来新的安全漏洞。5 利用 UDP 封装法实现 NAT 的穿透本文中的解决方案是采用 UDP 封装法实现 NAT 的透明穿透,不需要修改现有的 NAT 网关和路由器。所以该方案具有简单且易于实现的优点,缺点是由于添加了一个 UDP报文头,而加大了带宽开销,但相对于目前持续扩大的传输带宽来说,这个 UDP 报文头的带宽开销可以忽略不计。下面详细讨论其原理和实现过程。5.1 封装格式 UDP 封装法是在原有的 IP 包的 IP 头和 AH/ESP 的数据之间再封装一个 UDP 头,这样封装后的数据包端口值对 NAT 可见,就可以正确的实现端口转换。UDP 封装格式如图 1 所示。端口,为了简化配置和避免多个端口带来的安全隐患,UDP封装的 ESP 也使用该端口。这样就需要采取一定的方法来区分端口 500 的数据包是 IkE 消息还是 UDP封装的 ESP。为了区分两者,我们采用在 IkE 报头添加 Non-ESP 标记。在确定存在一个中间 NAT 之后,支持 IPSecNAT-T 的对话方开始使用新的 IkE 报头。5.2IkE 协商过程 IPSec 通信实体双方是否采用 UDP封装取决于对话对方是否支持该方法以及是否存在NAT 设备,这个过程通过 IkE 协商来完成。在 IkE协商过程中增添了新的 NAT-D 和 NAT-oA 有效载荷和以及 UDP 通道类型。1)新的 NAT-Discovery 有效载荷这个新的有效载荷包含一个散列值,它整合了一个地址和端口号。在主模式协商期间,即 IkE协商第一阶段第三、四条消息中,IPSec 对话方包括两个 NAT-Discovery 有效载荷一个用于目标地址和端口,另一个用于源地址和端口。接收方使用 NAT-Discovery 有效载荷来发现 NAT 之后是否存在一个经 NAT 转换过的地址或端口号,并基于被改变的地址和端口号来确定是否有对话方位于 NAT 之后。2)新的 NAT-originalAddress 有效载荷:这个新的有效载荷包含 IPSec 对话方的原始地址。对于 UDP 封装的 ESP 传输模式,每个对话方在快速模式协商期间发送 NAT-oA 有效载荷。接收方将这个地址存储在用于 SA 的参数中。3)用于 UDP 封装的ESP 传输模式和隧道模式的新的封装模式这两种新的封装模式是在快速模式协商期间指定的,用于通知 IPSec 对话方应该对 ESP 使用 UDP 封装。5.3 地址通告和 keepalive 包由于用 UDP 来封装 IPSec 分组的思想只解决了 NAPT 设备不支持 AH 和 ESP 通信的问题。例如 TcP 校验和错误、UDP 端口映射的保持等问题还需要辅助方法来解决。为保证校验和正确无误,通信双方需将自身的原始 IP 地址和端口发送给对方,即实现地址通告。地址通告的实现通过 IkE 第二阶段的前两条消息中的 NAT-oA 有效载荷。因为 NAT-oA 有效载荷中包含 IPSec 对话方的原始地址,为此,接收方就拥有了检验解密之后的上层校验和所需的信息。消息发起者在 NAT 中创建了一个 UDP 端口映射,它在初始主模式和快速模式IkE 协商期间使用。然而,NAT 中的 UDP 映射通常超过一定时间没用就会被删除掉。如果响应者随后向发起者发送 IkE 消息却没有提供 UDP 端口映射,那么这些消息将被 NAT 丢弃。这个问题的解决办法是通过定期发送 keepalive 包,用于后续 IkE 协商和 UDP 封装的 ESP 的 UDP 端口映射同时在 NAT 中得到刷新,从而保证通信的正常运行。6 结束语IPSec 作为网络层的安全协议,目前的应用越来越广泛,已成为构建 VPN 的基础协议之一。而由于IPv6 取代 IPv4 将是一个漫长的过程,NAT 设备的广泛存在极大地限制了 IP 层安全协议 IPSec 的推广,因此在目前的条件下,UDP 封装方法无疑是一种在当前环境下无需修改 NAT 网关和路由器、简单可接受的解决 IPSec 和 NAT 兼容性的方法,具有一定的现实意义。但是该方案还不完善,有待进一步讨论和研究。参考文献1RFc3022-XX.TraditionalIPnetworkaddresstranslatorS.2 RFc2401-1998.SecurityArchitectureoftheInternetProtocolS. 3 RFc2402-1998.IPAuthenticationHeaderS.4 RFc2406-1998.IPEncapsulatingSecurityPayloadS.5 RFc2409-1998.TheInternetkeyExchangeS.6RFc3103-XX.RealmSpecificIPProtocolSpecificationS.7 AbobaB,williamDixon.IPSec-NATcompatibilityrequirementsZ.Internetdraft,draft-ietf-ipsec-nat-reqtstxt,XX8 AriHuttunen.UDPencapsulateofIPSecpacketsZ.Internetdraft,draft-ietf-ipsec-udp-encapstxt,XX.9 kivirenT.NegotiationofNAT-traversalintheIkEZ.Internetdraft,draft-ietf-ipsec-udp-iketxt,XX摘要网络地址转换技术与 IPSec 在因特网上都是得到广泛应用的技术,但是它们之间却是不兼容的。该文首先分别介绍了 NAT 和 IPSec 两种协议的基本原理,分析了两者的不兼容性,然后讨论了解决该问题必须满足的要求,最后给出了利用 UDP 封装法实现 NAT 透明穿透的解决方案。关键词IPSec;NAT;IkE;UDP 封装 1 引言基于 IP 技术的虚拟专用网(VirtualProfessionalNetwork,简称VPN)是通过 Internet 平台将局域网扩展到远程网络和远程计算机用户的一种成本效益极佳的方法。随着网络安全技术的飞快发展,越来越多大型企业利用互联网采用 IPSec 技术建立 VPN 网络,IPSec已逐渐成为 VPN 构建的主流技术。IP 安全协议(IPSecurityProtocol,简称 IPSec)是由互联网工程工业组(InternetEngineeringTaskForce,简称 IETF)1998 年底规划并制定的网络 IP 层标准。IPSec 不仅可以为 IP 协议层以上所有的高层协议和应用提供一致性的安全保护,而且除了可用于IPv4 之外,也可用于下一代 IP 协议 IPv6。另外,NAT(NetworkAddressTranslation)技术通过改变进出内部网络的 IP 数据包的源和目的地址,把无效的内部网络地址翻译成合法的 IP 地址在Internet 上使用。该技术一方面可以把私有 IP 地址隐藏起来,使外界无法直接访问内部网络,对内部网络起到保护作用;另一方面,它可以缓解由于IPv4 先天设计上的不足,而导致的 IP 地址严重短缺的现状。但是,被广泛使用的网络地址转换(NAT)设备却制约着基于 IPSec 技术的 VPN 的发展,这是因为 IPSec 协议在 VPN 中承担保护传输数据的安全性任务。在数据传输过程中,任何对 IP地址及传输标志符的修改,都被视作对该协议的违背,并导致数据包不能通过安全检查而被丢弃。但在 VPN 中运用 NAT 技术,则不可避免地要将私网地址映射为公网地址,即对 IP 地址要进行修改。因此,在 VPN 网络中如何使 IPSec 和 NAT 协同工作,实现 NAT 的透明穿透具有现实意义。2 协议介绍2.1IPSecIPSec 包括安全协议和密钥管理两部分。其中,AH 和 ESP 是两个安全协议,提供数据源验证、面向无连接的数据完整性、抗重放、数据机密性和有限抗流量分析等安全任务。为了能够将相应的安全服务、算法和密钥应用于需要保护的安全通道,IPSec 规定两个通信实体进行 IPSec 通信之前首先构建安全关联 SA。SA 规定了通信实体双方所需要的具体安全协议、加密算法、认证算法以及密钥。IkE 提供了用来协商、交换和更新 SA 以及密钥的完整机制。IPSec 定义了两种类型的封装模式传输模式和隧道模式。传输模式只对 IP 分组应用 IPSec 协议,对 IP 报头不进行任何修改,它只能应用于主机对主机的 IPSec 虚拟专用网 VPN 中。隧道模式中 IPSec 将原有的 IP 分组封装成带有新的 IP 报头的 IPSec 分组,这样原有的 IP 分组就被有效地隐藏起来了。隧道主要应用于主机到网关的远程接入的情况。2.2NATNAT 能解决目前 IP 地址紧缺的问题,而且能使得内外网络隔离,提供一定的网络安全保障。它解决问题的办法是:在内部网络中使用内部地址,通过 NAT 把内部地址翻译成合法的 IP 地址在 Internet 上使用,其具体的做法是把 IP 包内的地址或用合法的 IP 地址来替换。NAT功能通常被集成到路由器、防火墙、ISDN 路由器或者单独的 NAT 设备中。NAT 有三种类型:静态NAT、动态地址 NAT、网络地址端口转换 NAPT。其中静态 NAT 设置起来最为简单,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。而动态地址 NAT 则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。NAPT 则是把内部地址映射到外部网络的一个 IP 地址的不同端口上。根据不同的需要,三种 NAT 方案各有利弊。3IPSec 与 NAT 的不兼容性分析根据协议的定义,我们知道 IPSec 和 NAT 两个协议之间存在一定的不兼容性。其不兼容性主要有以下几种形式:1)NAT 对 AH 的影响 IPSecAH 进行验证的时候,处理的是整个 IP 包,包括源地址和目的地址。如果 IPSec 通信双方存在 NAT 设备,NAT 设备就会修改外层 IP 包头的源地址并修改其校验和,这样接收方会因认证失败而丢弃该包。2)NAT 对 ESP 的影响 TcP/UDP 校验和地计算涉及一个虚构的 IP 包头,该包头含有 IP 源和目的地址。因此,当 NAT设备改变 IP 地址时也需要更新 IP 头和 TcP/UDP 校验和。如果采用 ESP 传输模式,IP 包经过 NAT 设备时,NAT 设备修改了 IP 包头,但是 TcP/UDP 校验和由于处于加密负载中而无法被修改。这样,该信包经过 IPSec 层后将因为 TcP 协议层的校验和的错误而被丢弃。另外,由于 TcP/UDP 校验和只与内层原始 IP 包头有关,外层 IP 包头的修改并不对其造成影响,因此采用 ESP 隧道模式和仅静态或动态NAT 的情况下不存在 TcP 校验和的问题。但是,在NAPT 情况下,因为 NAPT 需要 TcP/UDP 端口来匹配出入信包,而端口号受到 ESP 加密保护,所以 ESP分组通信将会失败。3)NAT 对 IkE 的影响 IkE 主模式与快速模式中如果使用 IP 地址作为身份信息,经过 NAT 后,会导致 IkE 协商的失败。IkE 协议使用固定目的端口 500,当 NAPT 设备后的多个主机向同一响应者发起 SA 协商时,为了实现多路分发返回的 IkE 包,NAPT 修改外出的 IkE 包的 UDP 源端口。因此,响应者应该能处理端口号并非 500的 IkE 协商请求,但往往 NAPT 对 UDP 端口的映射很快会被删除,再协商的过程就将出现一些不可预见的问题,很容易导致 NAPT 设备无法将协商包送到正确的目的地。综上所述,IPSec 组件的支持能力从表 1 中可以看出,只有在隧道模式和地址转换情况下才可以实现 IPSec 数据流的 NAT 穿越。这一方法既降低了 IPSec 协议的安全性,又限制了 NAT的工作方式,因此在实际应用中可行度较差。4IPSec 与 NAT 的兼容性要求在现有的条件下,为了推动基于 IPSec 的 VPN 的发展,IPSec 和 NAT 兼容性解决方案需要满足下列要求:1)可部署性IPSec 和 NAT 兼容性解决方案作为一个过渡的解决办法必须比 IPv6 易于部署。应该只需修改主机,无需改变路由器,在短时间内能与现存的路由器和NAT 产品协同工作。2)远程访问 IPSec 的一个重要应用是远程访问公司的内部网络。NAT 穿越方案必须考虑远程客户端与 VPN 网关之间存在多个 NAT的情况。3)防火墙兼容性 IPSec 和 NAT 兼容性方案应该避免对 IkE 或 IPSec 目的端口的动态分配,使防火墙管理员进行简单的配置,就可以控制穿越NAT 的 IPSec 数据流。4)可扩展性 IPSec 和 NAT兼容性方案应具有良好的扩展性,必须保证在大规模远程访问的环境中,在大量远程接入的环境下,同一时间段多个主机和远程安全网关建立连接。5)后向兼容性 IPSec 和 NAT 兼容性方案中必须能与已有的 IPSec 实现互操作。穿越方案应该能自动检测是否存在 NAT,能判断通信对方的 IkE 实现是否支持 NAT 穿越。6)安全性 IPSec 和 NAT 兼容性解决方案的引入必须保证不得带来新的安全漏洞。5 利用 UDP 封装法实现 NAT 的穿透本文中的解决方案是采用 UDP 封装法实现 NAT 的透明穿透,不需要修改现有的 NAT 网关和路由器。所以该方案具有简单且易于实现的优点,缺点是由于添加了一个 UDP报文头,而加大了带宽开销,但相对于目前持续扩大的传输带宽来说,这个 UDP 报文头的带宽开销可以忽略不计。下面详细讨论其原理和实现过程。5.1 封装格式 UDP 封装法是在原有的 IP 包的 IP 头和 AH/ESP 的数据之间再封装一个 UDP 头,这样封装后的数据包端口值对 NAT 可见,就可以正确的实现端口转换。UDP 封装格式如图 1 所示。端口,为了简化配置和避免多个端口带来的安全隐患,UDP封装的 ESP 也使用该端口。这样就需要采取一定的方法来区分端口 500 的数据包是 IkE 消息还是 UDP封装的 ESP。为了区分两者,我们采用在 IkE 报头添加 Non-ESP 标记。在确定存在一个中间 NAT 之后,支持 IPSecNAT-T 的对话方开始使用新的 IkE 报头。5.2IkE 协商过程 IPSec 通信实体双方是否采用 UDP封装取决于对话对方是否支持该方法以及是否存在NAT 设备,这个过程通过 IkE 协商来完成。在 IkE协商过程中增添了新的 NAT-D 和 NAT-oA 有效载荷和以及 UDP 通道类型。1)新的 NAT-Discovery 有效载荷这个新的有效载荷包含一个散列值,它整合了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论