无线网络中TCP与IPsec的兼容性研究
来源:互联网 发布:淘宝发顺丰多少钱 编辑:程序博客网 时间:2024/05/17 23:59
传输控制协议(TCP) 提供可靠有序的数据传输,是目前应用最广泛的传输层协议。TCP协议是针对固定网络设计的,认为所有的数据包丢失都是由于网络拥塞引起的。当TCP应用到无线网络中时,无线信道中的非网络拥塞导致的数据包丢失多、时延长和时延抖动大等特性会使TCP的性能受到很大影响。为了改善TCP在无线环境下的性能,人们提出了几种对TCP协议的改进方案,并且已经得到了较广泛的应用,例如Snoop方案[1]和ELN-ACK方案[2]。但是这些改进方案与IP安全协议(IPsec)[3]存在冲突,如果用户使用了IPsec协议来保证通信的安全,那么这些改进方案就无法工作,TCP在无线信道上的性能就得不到改善。
1 IPsec协议
IPsec是IETF提出的基于IP层的安全框架,在IP层上为用户进行端到端的安全保护。IPsec分为密钥管理和安全协议两部分,其中头部认证(AH)[4]和封装安全载荷(ESP)[5]协议都能提供数据完整性保护和数据源身份认证,此外ESP协议还提供数据机密性保护。AH和ESP都可工作在传输模式或者隧道模式下。传输模式应用在两个主机之间,IPsec的报文头放在IP报头和上层协议头之间,保护上层协议;隧道模式工作在两个安全网关或者安全网关与主机之间,在隧道模式下,整个IP包被封装到另一个IP包内,IPsec的报文头放在两个IP头之间,整个IP数据包都受到保护。在两种模式下,上层协议头,例如TCP头,都在被保护的范围之内,或者被加密保护,或者被完整性保护。
IPsec提供的安全服务需要使用共享密钥来执行数据验证和数据保密任务。密钥的管理通过Internet密钥交换(IKE)[6]实现,通过两个阶段的消息交换,为安全协议确定所需的安全参数,并且在需要时安全地刷新这些参数。
2 无线网络中的TCP
TCP作为针对固定网络设计的传输层协议,在Internet中得到了广泛的应用,提供可靠有序的数据传输。TCP协议认为所有的数据包丢失都是由于网络拥塞引起的,因此每检测到数据包丢失,TCP就启动相应的拥塞避免机制,减小发送窗口的大小,降低数据的发送速率,以解除网络中的拥塞。
但是在无线环境下,由于无线信道的高误码率和移动主机的频繁切换也会导致大量的数据包丢失,在这种情况下,启动TCP的拥塞避免机制降低发送速率,就会造成信道资源浪费,影响TCP的性能。同时无线网络中的时延比较大,使得拥塞窗口的递增缓慢,降低了TCP的吞吐量。
目前针对TCP在无线网络中应用时出现的问题,开展了许多研究工作。文献[1]提出的Snoop方案是在基站上添加一个软件模块:Snoop代理。该代理监视在移动主机和固定主机之间的各个TCP连接上传送的TCP报文,同时将所有未应答的TCP报文缓存起来。Snoop代理通过收到的多个重复的应答(ACK)得知发生本地超时而判断出某个报文段在无线链路上丢失。Snoop立刻重传缓存中的TCP报文段,并扔掉由该报文段丢失所引起的重复ACK。Snoop方案通过在本地基站进行重传,既能将无线链路上丢失的报文恢复,又避免了发端TCP由于收到多个ACK而启动快速重传机制,从而可以改善从固定主机到移动主机方向上的TCP性能。
TCP在无线网络中性能受到影响的一个重要原因是传输层无法确定数据包的丢失是否是由于网络拥塞造成的,因此提出了显式拥塞通知方案(ECN)[7]。在ECN方案中,TCP头中定义了一个ECN-ECHO标志位,利用该标志位通知发送端在网络中是否发生了拥塞。发送端只有在得到网络中出现拥塞的通知后,才能启动拥塞避免机制,降低发送速率。
在Snoop和显式拥塞通知方案的基础上,文献[2]提出了ELN-ACK方案。该方案在TCP中添加了称作ACKELN的响应数据包,ACKELN中定义了一个ELN标志位来表示数据包发生丢失的原因,“0”表示数据包丢失是无线网络造成的,“1”表示是网络拥塞引起的。
ELN-ACK方案在每个基站中添加一个ELN代理,该代理缓存由固定主机发向移动主机的报文,判断数据包丢失的原因,然后设置ACKELN中ELN标志位的值。固定主机接收到ACKELN后,如果其中ELN标志位的值为1,则确认网络拥塞导致了数据包丢失,立刻启动正常的拥塞避免机制,降低发送速率;如果ELN标志位的值为0,则数据包丢失是由于无线网络造成的,固定主机立刻重传丢失的数据包,但不会减小滑动窗口。该方案较好地改善了TCP在从固定主机到移动主机方向上的吞吐量和时延性能。
3 IPsec与TCP的兼容性分析
IPsec与TCP在无线网络中的改进方案之间存在冲突,主要表现在以下两方面:
(1) TCP在无线网络中的改进方案依赖于TCP报头中的某些数据进行工作,例如源端口、目的端口、报文序号和确认序号等。网络中的中间节点根据这些数据,对数据包进行重传或者生成ACK操作,改善TCP的性能,例如Snoop方案中的Snoop代理。如果网络的中间节点得不到这些数据,改进方案就无法工作。但是用户使用IPsec中的ESP保护IP数据包时,整个TCP报文都被加密,除了TCP连接的两端外,所有的中间节点都无法得到TCP报头的明文数据,从而使TCP的改进方案不能工作。
(2)用户使用AH保护IP数据包时,AH对TCP的报头和数据部分都进行了完整性保护,网络中所有的中间节点都无法对TCP报头进行任何改动操作。而在TCP的改进方案里,某些中间节点需要对TCP报头的数据进行修改操作,例如ELN-ACK方案中的ELN代理要修改ACKELN数据包中的ELN标志位。因此,AH协议无法与TCP的改进方案协同工作。
总之,在无线网络中,IPsec提供的IP层上的端到端保护模式,与TCP的改进方案不能兼容,使TCP在无线信道中的性能得不到改善。
4 解决方案
目前无线网络中的数据传输业务不断增长,由于IPsec能够提供较好的安全保护,应用范围不断扩大,所以TCP在无线网络中的改进方案与IPsec的兼容问题必须得到解决,以使得在提高TCP性能的同时,数据通信的安全也得到保证。
4.1 用TLS/SSL代替IPsec
传输层安全协议和安全套接层协议(TLS/SSL)是基于传输层的安全协议,工作在TCP层上。由于TLS和SSL只对TCP报文的数据部分加密保护,而TCP报头以明文形式传输,所以可以用TLS或者SSL代替IPsec,从而允许网络中的中间节点对TCP报头操作,使得TLS和SSL与TCP的改进方案协同工作。该方案的缺陷在于TCP报头与IP报头都以明文形式在网络中传输,会造成通信双方的身份暴露,并引发许多潜在的攻击。
4.2 扩展ESP协议
对ESP协议进行扩展[8],在ESP头部添加TCP源端口、目的端口、报文序号和确认序号等数据域,对这些数据只做完整性保护而不进行加密,这样网络中间节点可以得到这些数据,TCP在无线网络中的改进方案就能够正常工作,例如Snoop方案。
但是该方案不允许中间节点对TCP报头进行修改操作,所以某些TCP的改进方案还不能工作,例如ELN-ACK。此外,将TCP源端口、目的端口、报文序号和确认序号等数据在网络上以明文形式传输,也会造成安全漏洞。
4.3 对TCP路径分段
通信网络中一个TCP会话的路径可以分成两部分(如图1所示):移动主机和基站之间的无线网络、基站和远端固定主机之间的有线网络。如果用户能够充分信任无线网络,确认它能够提供安全的数据保护,那么在无线链路上就可以改用链路层的安全协议代替IPsec,只在基站和远端固定主机之间的有线链路上使用IPsec协议。由于对TCP的改进方案只运行在移动主机和基站之间的无线网络上,这样就可以避开IPsec与TCP改进方案之间的冲突,同时保证通信的安全性和TCP的性能。该方案的局限性在于依赖对无线网络的完全信任。
4.4 修改IPsec的端到端保护模式
对IPsec协议的端到端保护模型进行修改,将IP数据包划分成数个保护域,不同的域使用不同的保护机制进行分段保护。每个域拥有自己的安全关联和密钥,并且还有自己的接入控制规则,确定网络中哪些中间节点可以对该域进行操作。被分段保护的IP数据包从源端发出,允许某些被授权的中间节点解密并修改IP数据包中的某个域,其他的域不可见。IP数据包到达终点后,整个数据包被完全解密恢复出来。
修改IPsec的端到端保护模式对IP数据包提供了比IPsec协议粒度更细的保护,把IP数据的TCP报头和TCP数据分为两个不同的域。对TCP数据进行正常的端到端的保护,只有发送端和接收端拥有密钥。而对TCP报头则采用另一种保护模式,除了发送端和接收端外,某些被授权的中间节点也拥有密钥,例如ELN-ACK方案中的ELN代理。这些被授权的中间节点可以对TCP报头进行读写操作,从而解决IPsec与TCP的改进方案之间的冲突问题。
在修改IPsec的端到端保护模式中,必须对被授权的中间节点进行身份鉴权。可以通过公钥基础设施(PKI)实现鉴权,以防止各种中间人攻击。鉴权通过后,才能把密钥等共享秘密发送给中间节点。方案的缺陷在于,目前密钥分发只能通过手工方式完成,需要对IKE进行相应扩展后,才能实现动态分发密钥。
5 结论
在无线通信网络中,要保证通信的安全性和TCP协议的性能,必须解决他们之间的冲突。前述4种解决方案都有局限性,不能完全地解决冲突问题,还需要进一步进行研究。优秀的解决方案必须考虑到部署实现的难度,对现有网络结构和通信协议的改动要尽量小,不能减弱IPsec的安全性能引发新的安全问题。
6 参考文献
[1] Balakrishhan H, Seshan S, Katz R H. Improving Reliable Transport and Handoff Performance in Cellular Wireless Networks [J]. ACM Wireless Networks, 1995,1(4):469—481.
[2] Ding W, Jamalipour A. A New Explicit Loss Notification and Acknowledgement for Wireless TCP [C]. PIMRC 2001, San Diego CA, 2001.
[3] IETF RFC2401. Security Architecture of the Internet Protocol [S].
[4] IETF RFC2402. IP Authentication Header [S].
[5] IETF RFC2406. IP Encapsulation Security Payload (ESP)[S].
[6] IETF RFC2409. The Internet Key Exchange(IKE)[S].
[7] Perkins C E. Mobile IP-Design, Principles and Practice [M]. Addison Wesley Longman, 1998.
[8] Bellovin S. Transport-friendly ESP (or Layer Violations for Fun and Profit) [C]. Network Distributed System Security Symp. (NDSS´99), San Diego CA, 1999.
收稿日期:2004-07-21
作者简介:
- 无线网络中TCP与IPsec的兼容性研究
- 无线网络TCP拥塞控制机制研究与实现(转载)
- 无线网络中TCP性能分析及改进方案研究
- 无线网络中提升TCP性能机制的比较
- ipsec---icmp: ipsec中icmp的处理
- 无线网络中传输层通信协议分析与比较(TCP与UDP)
- 无线网络研究的平台、开源资源
- IPSec中VPN的讲解
- 关于IPSEC中身份验证与加密
- js中关于IE与DOM对浏览器的兼容性
- TCP/IP协议及IPSEC的初始化流程
- IPSec/GRE与PPTP的比较
- IPSec VPN 与SSL VPN 的比较
- OpenVPN与PPTP、L2TP、IPSec的区别
- IPSec VPN与SSL VPN的区别
- IPSec/GRE与PPTP的比较
- nat与ipsec之间的问题
- IPSEC与SSL/TLS的比较
- 工作失败
- 微软图表控件MsChart使用初探
- vi+ctags使用方法教程
- 揭秘维基解密及创始人:朱利安·阿桑奇 [图]
- JavaScript 技巧与高级特性
- 无线网络中TCP与IPsec的兼容性研究
- ActionScript3.0 addFrameScript 传递参数
- 如何理解stdlib.h里的_countof()宏
- 用spring控制hibernate的session何时关闭
- 再谈如何获通过各式各样的方法来取页面的元素
- 探索并发编程(六)------Java多线程性能优化
- 研究下 ClearCase Multisite。特记录
- 如何让对话框窗口最大化
- 软件测试分类