论文部分内容阅读
一、IPSec和NAT
(一)IPSec
IPSec作为一种标准方法,于端点间进行了认证,予以了加密,并且提供其他服务。在这里,断电不但可以为独立主机,还可以为安全网关,比如防火墙、路由器。安全网关的主要功能就是提供服务给主机。对于IPSec协议而言,其实质就在于为了让网络数据得到更好的安全保证,于IP层之上架构公开化的标准框架,换而言之,它就是一个安全体系,而且该体系本身具备很高的完整性,对于这个体系来讲,主要的构成包括了SA、ESP、AH以及IKE,还有认证与加密的算法,SA在这里指的是安全联盟,对于通信双方而言,SA对于它们使用的具体密钥、认证与加密两种算法,还有IPSec安全协议等等都给予了规定;ESP为封装安全荷载,ESP提供的服务和AH比较类似,但是ESP也有独立的功能所在,即数据对应的机密性,还有数据流有限条件下的保密服务等等;而AH则是指的安全协议,对于IP包来讲,AH协议在安全方面主要提供如下功能:数据的完整性、抗攻击,对源数据予以具体的认证等等;IKE的主要功能就是动态化的协商通信双方的具体参数问题,按照协商所得,于两端进行SA的创建。
具体到工作模式上,IPSec含括了两种不同的,即隧道和传输。对于传输这种模式来讲,它在安全方面给上层的载荷予以很好的保护;对于隧道模式来讲,其同时保护上层的载荷与IP包头。AH与ESP不但能够独自使用,而且能够结合在一起使用,还可以实现嵌套使用。
(二)NAT
IP地址紧缺这个问题让很多人都感到特别的头疼,对这个问题的解决,NAT能够予以很好的帮助,此外,NAT还可以隔离内外网,还可以在安全方面,提供对应的保证。这个问题的解决按照如下的办法进行:内网用内部的地址,借助NAT翻译内部地址为外部合法的地址,运用到Internet之上。比如对状态表,NAT要予以维护,那就映射内部的地址到外部去。
NAT在具体的类型上包括了三种,分别是静态的、动态的以及网络地址端口转换的。实现度比较高的为静态的,对于内网中的所有主机,静态NAT都可以将其映射到外网里面的一个合法地址,这种映射是永久的。动态NAT它为每一个内部地址分配一个临时的外部地址,当用户向NAT设备提出请求时,动态地址NAT就会在合法地址池中分配给该用户一个临时合法外部地址,断开条件下,就释放地址,以后再用。
对网端进行NAPT的转换,在当前,这种方式特别的流行。其隐藏中小网络于外部合法地址之后,不同于动态NAT,NAPT映射内部连接至外网独立合法地址上面,并且能够加设一个端口号到这个地址上,需要说明的是该端口后在选定的时候是由NAT设备进行的。
二、IPSec VPN与NAT之间的对立
很多条件下,对用户的使用来讲,NAT处理处于完全透明的情况,不过如果期望借助IPSec技术对VPN网予以组建,那么NAT就会面临很多的问题。对于IPSec协议而言,其主要追求在于对数据报对应的完整性予以很好的保护,也就是说对于所有想修改数据包的情况,IPSec都会予以禁止,不过NAT予以处理的时候,对于数据,乃至具体传输的内容都是需要予以修改的,故而假定经修改的数据来到接受方,在被处理以后,完整性受到影响,那么此数据就会被视为非法,最终被丢弃。这就是组建VPN网关最常见的“IPSec与NAT协调工作”的问题。其中,常见的冲突问题主要有如下两点:
(一)认证报头受到的具体影响
认证头,英文缩写为AH,使用的主要方面在于:避免发生中间攻击,降低信源欺骗,防止修改是在没有授权的条件下产生的。按照NAT的具体工作原理,NAT会匹配进出的具体信息包,并且于以对应的连接,如果NAPT不能够被AH于以跨越,那么NAT/NAPT和AH之间就不能够实现兼容。
(二)封装安全负载受到的具体影响
ESP,也就是封装安全荷载,对于IP地址,其并不予以加密,尽管如此,引入NAT还会存在或者说是造成相关的问题。但是因为TCP/UDP会予以校验,也会牵涉相关虚构之IP包头,而且包头里面有目的地址与IP源,所以在IP地址被NAT予以改变的时候,对于校验TCP/UDP头以及进行IP头的更新来讲,这些都是必需的,不过IP包在通过NAT设备的条件下,无论是TCP/UDP校验,还是加密负载,NAT设备都不能够对其予以更新,这个条件下数据报就会被丢弃。ESP隧道模式能够于动、静两种状态的NAT予以彼此的兼容,所以检验TCP/UDP的时候,内层“原始”对应的IP包头有很大的关联性和影响,不过修改外层的IP包头的话,其并不会受到具体的影响,但是等同于AH,如果存在NAPT,那么ESP也就不能够通过,这个时候分组通信就会被彻底的阻断。
三、解决方案
为了解决IPSec VPN和NAT协同工作时兼容性的问题,可以借助UDP封装得到很好的实现:
图1对借助IPSec传输与隧道两种不同的模式进行UDP封装的具体概念予以了对应的表达。
对于UDP封装而言,其最为核心的地方在于封装IPSec信包到UDP的一个分组里面,也就是说将一UDP头插入到IP包中的IP头与IPSec中间,而后借助于NAT,也可以是NAPT对UDP/ IP的分组做出具体的修改。
要想完成UDP封装,那么NAT设备一定要进行映射表的设立,借助映射的手段,原来的IP首部就可以到达新的UDP首部。对映射表要想实现维护,那么可以通过下面的方法得到实现:
借助UDP端口进行空UDP的具体发送,在空UDP被收到的时候,就将该包予以忽略,对于IKE连接,这些数据包不能够予以很好的维持,所以不可以看成用户数据流。
通过IKE端口进行空UDP包的发送的时候,此时的IKE包就是非法的,就不会被接收方接受,而是会被抛弃,不过并不会因此而出现连接的终止。 对于发起方与响应方来讲,用的地址空间是不一样的,所以地址映射必须要得到很好的实现。对于UDP封装而言,路由间对应的地址映射已经被忽略,故而NAT额执行一定要由终端结点去做,不过因为地址不同的主机之间要想实现端端加密,可以参看图2,那么方法一就可以实现,也就是通过服务器对应的网关进行IP地址的分发,借助该地址,实现数据传输,封装被解开以后,再转于服务器B。
使用UDP封装建立VPN还需要用到NAT-T方法,实际应用中,NAT-T开展的第一个工作是对通信双方支不支持NAT-T做出具体的判断,这个工作的开展需要依据IKE协商条件下首个发送的数据包做出。第一步结束后,接下来还需要对上方链路做出进一步的探查,探查这个链路上面有没有NAT设备,此步也就是常常所说的NAT发现。可以说NAT发现之实质为对通信双方的端口或者IP 地址予以判断,判断有没有具体的改变,NAT设备被具体的发现以后,双方就需要对封装的具体方式进行协商,协商完毕,本过程就结束。
对于UDP这个封装方案来讲,最优的地方在于无需对IPSec协议以及IKE做出修改,而且在这样的条件下,对于全部的IPSec模式与协议都可以予以很好的支持,另外对于目前大部分的NAT也能够予以很好的支持,尽管如此,这个方案也有缺陷,缺陷之一就是需要对主机以及实现IKE的具体过程做出修改;缺陷之二即所有的数据包都获得了额外负载(该负载有28个字节),这样网络使用效率就会被降低;缺陷之三则是因为NAT干涉,协商时间无形中就会被延长。这里需要额外注意的为:因为用的是UDP封装,故而里面的IP地址就有可能存在重复的现象,假定两个不同的公司拥有一个相同的主机IP,而且对应相同的私有地址,那么如果这两个地址同时和一个网关之间进行IPSec协商,那么就有可能出现数据发送错误,所以实现的具体过程中,一定要予以谨慎的区分。
四、结论
对于广泛的推广 IP层的安全协议来讲,NAT设备产生的限制效应很大,在网络安全层面,IPSec是基础,对于VPN的构建来讲,这也是主流的技术,所以IPSec VPN与NAT的协同工作问题是目前网络应用中的一个主要矛盾。本文在分析IPSec协议与NAT转换之间矛盾的基础上进一步提出了通过UDP封装方法来解决这一矛盾,在实际网络运用中具有一定实用价值。
(一)IPSec
IPSec作为一种标准方法,于端点间进行了认证,予以了加密,并且提供其他服务。在这里,断电不但可以为独立主机,还可以为安全网关,比如防火墙、路由器。安全网关的主要功能就是提供服务给主机。对于IPSec协议而言,其实质就在于为了让网络数据得到更好的安全保证,于IP层之上架构公开化的标准框架,换而言之,它就是一个安全体系,而且该体系本身具备很高的完整性,对于这个体系来讲,主要的构成包括了SA、ESP、AH以及IKE,还有认证与加密的算法,SA在这里指的是安全联盟,对于通信双方而言,SA对于它们使用的具体密钥、认证与加密两种算法,还有IPSec安全协议等等都给予了规定;ESP为封装安全荷载,ESP提供的服务和AH比较类似,但是ESP也有独立的功能所在,即数据对应的机密性,还有数据流有限条件下的保密服务等等;而AH则是指的安全协议,对于IP包来讲,AH协议在安全方面主要提供如下功能:数据的完整性、抗攻击,对源数据予以具体的认证等等;IKE的主要功能就是动态化的协商通信双方的具体参数问题,按照协商所得,于两端进行SA的创建。
具体到工作模式上,IPSec含括了两种不同的,即隧道和传输。对于传输这种模式来讲,它在安全方面给上层的载荷予以很好的保护;对于隧道模式来讲,其同时保护上层的载荷与IP包头。AH与ESP不但能够独自使用,而且能够结合在一起使用,还可以实现嵌套使用。
(二)NAT
IP地址紧缺这个问题让很多人都感到特别的头疼,对这个问题的解决,NAT能够予以很好的帮助,此外,NAT还可以隔离内外网,还可以在安全方面,提供对应的保证。这个问题的解决按照如下的办法进行:内网用内部的地址,借助NAT翻译内部地址为外部合法的地址,运用到Internet之上。比如对状态表,NAT要予以维护,那就映射内部的地址到外部去。
NAT在具体的类型上包括了三种,分别是静态的、动态的以及网络地址端口转换的。实现度比较高的为静态的,对于内网中的所有主机,静态NAT都可以将其映射到外网里面的一个合法地址,这种映射是永久的。动态NAT它为每一个内部地址分配一个临时的外部地址,当用户向NAT设备提出请求时,动态地址NAT就会在合法地址池中分配给该用户一个临时合法外部地址,断开条件下,就释放地址,以后再用。
对网端进行NAPT的转换,在当前,这种方式特别的流行。其隐藏中小网络于外部合法地址之后,不同于动态NAT,NAPT映射内部连接至外网独立合法地址上面,并且能够加设一个端口号到这个地址上,需要说明的是该端口后在选定的时候是由NAT设备进行的。
二、IPSec VPN与NAT之间的对立
很多条件下,对用户的使用来讲,NAT处理处于完全透明的情况,不过如果期望借助IPSec技术对VPN网予以组建,那么NAT就会面临很多的问题。对于IPSec协议而言,其主要追求在于对数据报对应的完整性予以很好的保护,也就是说对于所有想修改数据包的情况,IPSec都会予以禁止,不过NAT予以处理的时候,对于数据,乃至具体传输的内容都是需要予以修改的,故而假定经修改的数据来到接受方,在被处理以后,完整性受到影响,那么此数据就会被视为非法,最终被丢弃。这就是组建VPN网关最常见的“IPSec与NAT协调工作”的问题。其中,常见的冲突问题主要有如下两点:
(一)认证报头受到的具体影响
认证头,英文缩写为AH,使用的主要方面在于:避免发生中间攻击,降低信源欺骗,防止修改是在没有授权的条件下产生的。按照NAT的具体工作原理,NAT会匹配进出的具体信息包,并且于以对应的连接,如果NAPT不能够被AH于以跨越,那么NAT/NAPT和AH之间就不能够实现兼容。
(二)封装安全负载受到的具体影响
ESP,也就是封装安全荷载,对于IP地址,其并不予以加密,尽管如此,引入NAT还会存在或者说是造成相关的问题。但是因为TCP/UDP会予以校验,也会牵涉相关虚构之IP包头,而且包头里面有目的地址与IP源,所以在IP地址被NAT予以改变的时候,对于校验TCP/UDP头以及进行IP头的更新来讲,这些都是必需的,不过IP包在通过NAT设备的条件下,无论是TCP/UDP校验,还是加密负载,NAT设备都不能够对其予以更新,这个条件下数据报就会被丢弃。ESP隧道模式能够于动、静两种状态的NAT予以彼此的兼容,所以检验TCP/UDP的时候,内层“原始”对应的IP包头有很大的关联性和影响,不过修改外层的IP包头的话,其并不会受到具体的影响,但是等同于AH,如果存在NAPT,那么ESP也就不能够通过,这个时候分组通信就会被彻底的阻断。
三、解决方案
为了解决IPSec VPN和NAT协同工作时兼容性的问题,可以借助UDP封装得到很好的实现:
图1对借助IPSec传输与隧道两种不同的模式进行UDP封装的具体概念予以了对应的表达。
对于UDP封装而言,其最为核心的地方在于封装IPSec信包到UDP的一个分组里面,也就是说将一UDP头插入到IP包中的IP头与IPSec中间,而后借助于NAT,也可以是NAPT对UDP/ IP的分组做出具体的修改。
要想完成UDP封装,那么NAT设备一定要进行映射表的设立,借助映射的手段,原来的IP首部就可以到达新的UDP首部。对映射表要想实现维护,那么可以通过下面的方法得到实现:
借助UDP端口进行空UDP的具体发送,在空UDP被收到的时候,就将该包予以忽略,对于IKE连接,这些数据包不能够予以很好的维持,所以不可以看成用户数据流。
通过IKE端口进行空UDP包的发送的时候,此时的IKE包就是非法的,就不会被接收方接受,而是会被抛弃,不过并不会因此而出现连接的终止。 对于发起方与响应方来讲,用的地址空间是不一样的,所以地址映射必须要得到很好的实现。对于UDP封装而言,路由间对应的地址映射已经被忽略,故而NAT额执行一定要由终端结点去做,不过因为地址不同的主机之间要想实现端端加密,可以参看图2,那么方法一就可以实现,也就是通过服务器对应的网关进行IP地址的分发,借助该地址,实现数据传输,封装被解开以后,再转于服务器B。
使用UDP封装建立VPN还需要用到NAT-T方法,实际应用中,NAT-T开展的第一个工作是对通信双方支不支持NAT-T做出具体的判断,这个工作的开展需要依据IKE协商条件下首个发送的数据包做出。第一步结束后,接下来还需要对上方链路做出进一步的探查,探查这个链路上面有没有NAT设备,此步也就是常常所说的NAT发现。可以说NAT发现之实质为对通信双方的端口或者IP 地址予以判断,判断有没有具体的改变,NAT设备被具体的发现以后,双方就需要对封装的具体方式进行协商,协商完毕,本过程就结束。
对于UDP这个封装方案来讲,最优的地方在于无需对IPSec协议以及IKE做出修改,而且在这样的条件下,对于全部的IPSec模式与协议都可以予以很好的支持,另外对于目前大部分的NAT也能够予以很好的支持,尽管如此,这个方案也有缺陷,缺陷之一就是需要对主机以及实现IKE的具体过程做出修改;缺陷之二即所有的数据包都获得了额外负载(该负载有28个字节),这样网络使用效率就会被降低;缺陷之三则是因为NAT干涉,协商时间无形中就会被延长。这里需要额外注意的为:因为用的是UDP封装,故而里面的IP地址就有可能存在重复的现象,假定两个不同的公司拥有一个相同的主机IP,而且对应相同的私有地址,那么如果这两个地址同时和一个网关之间进行IPSec协商,那么就有可能出现数据发送错误,所以实现的具体过程中,一定要予以谨慎的区分。
四、结论
对于广泛的推广 IP层的安全协议来讲,NAT设备产生的限制效应很大,在网络安全层面,IPSec是基础,对于VPN的构建来讲,这也是主流的技术,所以IPSec VPN与NAT的协同工作问题是目前网络应用中的一个主要矛盾。本文在分析IPSec协议与NAT转换之间矛盾的基础上进一步提出了通过UDP封装方法来解决这一矛盾,在实际网络运用中具有一定实用价值。