网络安全与技术
Highlighted
网络安全与技术

TCP与SCTP的安性比较

[ 已编辑 ]
修改时间 ‎02-08-2012 09:40 PM

1.TCP的安全问题

一些TCP应用被公认会受到DoS攻击。例如,攻击者可以通过发送大量的连接建立请求(TCP-SYN数据包)来攻击目的地,有可能来自伪装的IP地址。被攻击主机将不停地发送SYN-ACK数据包来回复,并进入SYN-received状态,甚至SYN队列将被挤满(例如,等待建立的连接数会达到一个极限),而且它将拒绝新的连接建立请求。另外,伪装连接是对TCP的另一个潜在威胁。通过猜测有效的序列号,攻击者将可能伪装成一个合法连接。但是,通过使用一个安全的Hashsum算法,对目前SYN-cookie进行伪装的攻击的可能性只有1/224。例如当使用SYN-cookie时,要成功作为一个伪装的连接时,攻击者将不得不发送224个数据包。

 

2.SCTP的安全机制

SCTP在设计时就充分考虑了TCP的不足。为防止攻击者发送伪装的SCTP数据包到现有的连接中,SCTP的两端都使用一个称为“认证标记”的32bit数据来确保数据包真正属于现有的连接。因此,除了合并属于一个连接的源端口和目的端口的地址外,一个有效的SCTP数据包还必须有一个正确的标记。跟TCP不同的是,SCTP要求在连接建立时必须使用“cookie”。对服务器来说,必须交换3个信息包(INIT、INIT-ACK、COOKIE-ECHO),才能建立一个完整的新连接。“cookie”是个长度可变的,包含所有和在服务器端初始化TCB的相关数据,加上使用HMAC来确保它的安全。HMAC是在cookie中用来计算的,是一个保密、服务器所拥有的key。引入这种机制的目的在于增强协议的安全性,防止DoS攻击和伪装等潜在的攻击。同使用SYN-cookie的TCP相比较,SCTP被攻击者伪装的可能性大大降低。因为,攻击者不得不去猜测包含在cookie中的HMAC值。可能性小于2128。值得注意的是,SCTP仅仅试图来增强网络的可用性,它没有包含任何直接和用户信息认证、完整性和保密功能的协议机制,因为这些特性主要取决于IPSec协议和应用层协议的安全特性。通过上述机制,可以有效地防止诸如SYN_FLOODING等方式的攻击。

 

3.SCTP与TCP的功能及应用比较

由于SCTP也是一个面向连接的协议,可提供所有TCP能够提供的传送层服务。因此,现有的许多Internet应用将面临选择使用TCP或SCTP,来满足他们对传送层服务的需求。需要注意的是,对处理成本比较敏感的应用,在使用SCTP或TCP得到的服务是不一样的,SCTP可以为应用提供一个单独定制的流传输,而TCP为应用提供的是一对地址。当然,SCTP还具有一些TCP所不具备的功能,这样,在某些应用场合,选择SCTP实现传送层服务将是更好的选择。SCTP在一个连接中可以支持多个独立用户信息流的发送。正确使用该功能,可以有效减少所谓的“head-of-line-blocking问题带来的影响,在TCP中出现该问题,主要是因为数据包的发送有严格的顺序控制。因此,对那些需要在一个连接中同时支持多个逻辑上独立的信息流传送的应用,SCTP就特别有用。SCTP保留有应用信息的边界。当应用数据不是连续的字节流,而是要接收端单独处理大块的数据包时,该功能就非常有用。相反,TCP在提供可靠数据流传送的同时,并不能指出应用中包含的大块数据包。SCTP支持没有指明应用类别的用户信息的传送,而且能够保证数据的可靠传送。对那些需要发送没有顺序的可靠信息流的应用,或者喜欢使用自身的信息排序机制的应用,SCTP的这个功能就特别有用。

JNCIE-SEC
Feedback