最佳答案
(0)
暂无评论
该模式下的安全协议主要用于保护上层协议报文,仅传输层数据被用来计算安全协议头,生成的安全协议头以及加密的用户数据(仅针对ESP封装)被放置在原IP头后面。若要求端到端的安全保障,即数据包进行安全传输的起点和终点为数据包的实际起点和终点时,才能使用传输模式。如图1-1所示,通常传输模式用于保护两台主机之间的数据。
该模式下的安全协议用于保护整个IP数据包,用户的整个IP数据包都被用来计算安全协议头,生成的安全协议头以及加密的用户数据(仅针对ESP封装)被封装在一个新的IP数据包中。这种模式下,封装后的IP数据包有内外两个IP头,其中的内部IP头为原有的IP头,外部IP头由提供安全服务的设备添加。在安全保护由设备提供的情况下,数据包进行安全传输的起点或终点不为数据包的实际起点和终点时(例如安全网关后的主机),则必须使用隧道模式。如图1-2所示,通常隧道模式用于保护两个安全网关之间的数据。
不同的安全协议及组合在隧道和传输模式下的数据封装形式如图1-3所示。
二、 TCP、UDP校验和
TCP、UDP的头部有个2字节的校验和,计算校验和的时候包含了衍生自IP头部的字段的一个12字节的伪头部,这个伪头部包含了来自IP头部的源和目的地址以及协议字段 。
三、为什么要穿越
IPsec在两个通信实体之间建立安全的数据传输通道, 但它却与网络中广泛存在的NAT设备(以及PAT)有天生的不兼容性(incompatible)。
我们以一个TCP报文为例来看看在不同IPsec的不同模式(Transport和Tunnel)和协议(AH和ESP)下,这种不兼容是如何发生的。
先来看Transport模式
对AH协议,由于其Authenticate范围是整个IP报文,所以如果两个IPsec之间存在NAT设备,修改了报文IP Header中的地址,就会导致接收方的Authenticate失败。
对ESP协议,其Authenticate返回不包括IP Header,所以接收方的Authenticate会通过,但如果中间的NAT设备修改了IP Header中的地址,理论上后面的TCP checksum也会随之修改,但这部分在ESP协议中是加密的,NAT设备没有办法修改,所以接收端在TCP接收时会出现checksum校验失败。
再来看Tunnel模式
对AH协议, Tunnel模式和Transport模式没什么不同,Authenticate范围包含了外层IP Header,因此同样会造成接收方Authenticate失败。
对ESP协议,与Transport模式不同的是,经过NAT设备。内层IP Header并不会改变,所以TCP checksum也不会变化,接收方不会出现checksum校验失败。
这样看起来,ESP-Tunnel似乎成为了在有NAT设备环境下,唯一可行的协议-模式组合。但即使是这种组合也是有缺点的:它只能支持一对一的NAT(NAT设备后面只有一台内网主机)。在很多组网中,NAT设备通常作为网关使用,其背后可能有很多台主机。这时地址转换就不够了,它还需要端口转换,显然,NAT设备对ESP-Tunnel的报文是无能为力的,因为TCP部分已经被加密了,已经没有端口字段了。
所以,IPsec需要想办法能绕开NAT设备的影响,也就是进行NAT穿越(NAT-Tranversal)。
(2)
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论