您现在的位置是:首页 > IT基础架构 > 网络与安全 >
基于分层方法的VoIP安全问题
2008-09-15 23:12:00作者:何方则来源:
摘要通信服务与 IP网络特别是Internet的结合,是一个伴随着e-Mail、即时消息的产生而不断发展的自然过程。VoIP——在包转换的IP网络上传输语音—— 是电信领域呈现的一个最重要的发展趋势。VoIP网络发展迅猛有两个重要因素:从传统的电话到VoIP网络的转变带来成本的降低,而且允...
通信服务与IP网络特别是Internet的结合,是一个伴随着e-Mail、即时消息的产生而不断发展的自然过程。VoIP——在包转换的IP网络上传输语音——是电信领域呈现的一个最重要的发展趋势。VoIP网络发展迅猛有两个重要因素:从传统的电话到VoIP网络的转变带来成本的降低,而且允许将新的服务和应用(视频传输、会议,等等)加入到标准的电话服务中去。
即使是为了达到同一个目的,VoIP与传统的电话相比拥有完全不同的体系结构。在VoIP网络中语音和信号是混合的并且和正常的数据一样在局域网、广域网或者互联网上传播,而在传统的电话网中每一个会话维持一个私有的、物理的电路,并且独占信道。VoIP语音是一种普通的IP数据,但就服务的质量和实用性来说它与传统电话是没有区别的。
随着技术的不断发展,VoIP面临着许多新的安全风险而且遭受攻击的机率也大大增加。由于网络和电话的特点,VoIP将遭受到来自全方位的安全问题。传统电话的安全问题包括信令攻击、盗用电话线路,相应于VoIP网络则是对特定协议进行攻击。他们的主要目的只有一个:欺骗。从物理层到应用层,都与VoIP的安全问题相关。在安全性和可靠性不高的互联网上传输语音数据更是增加了遭受攻击的可能性,并且会导致更多的攻击行为。
Voice over IP特性
当研究VoIP安全的时候,许多人往往把它和一般的网络应用等同起来处理,这种普遍的现象实际上是非常错误的。他们并没有认识到VoIP与其他网络应用的本质区别——VoIP的时间敏感性。
VoIP对技术的要求非常苛刻。它不仅对时延特性要求敏感而且要求具有一个能够充分保证服务质量的有效机制。当时延超过150ms或者丢包率超过3%时,通话质量就会大大受到影响。此外,再加上拥塞等一些不可预见性的因素,因此我们可以推断出VoIP最大的脆弱性就在于:对干扰具有高度的敏感性。
广为人知的拒绝服务攻击(DoS)就是一种干扰类型攻击。针对VoIP的攻击(例如大量发送经过特殊构造的数据包)将使VoIP设备产生拒绝服务。当SIP电话终端处理大流量的数据时可能会造成系统的停止响应或崩溃。
Voice over IP体系结构
VoIP技术使用和标准电话通信相似的两种类型的协议,即信令协议和媒体传输协议。目前,在全球范围内广泛使用的VoIP结构有两种,它们分别是H.323结构和SIP结构。
H.323是国际电信同盟(ITU)为在基于数据包的网络上传输音频和视频而制定的一种标准。H.323实际上是一种封装标准,它对 H.225,H.245等标准进行了封装,每种协议都在呼叫建立的过程中扮演特定的角色。H.323使用RTP协议作为标准的媒体传输协议。H.323定义了四种逻辑组成部分:终端、网关、关守(gatekeeper)和多点控制单元(MCU)。
SIP是Internet工程工作小组(IETF)为发起双向的通信会话而建立的协议。它是一种应用层控制协议,用于和一个或多个参与者创建、修改和终止会话。SIP是基于文本的,并且结构与HTTP相似。客户机发出请求,并发送给服务器,服务器处理这些请求后给客户机发送一个响应。该请求与响应形成一次事务。SIP可以运行于TCP、UDP或者SCTP之上。
SIP网络的结构(参见图1)与H.323的结构不同。SIP网络由端点、代理或者重定向服务器、定位服务器和注册机组成。注册机和定位服务器也可以同时运行于代理服务器。
本文对VoIP安全威胁进行讨论的方法为分层的方法,采用分层的方法是基于以下两点原因的考虑:首先,因为对于TCP/IP协议栈和VoIP SIP协议体系结构来说有些层可以看成是相似的。SIP会话初始阶段和TCP的三次握手就具有很强的相似性,这在许多专业的文献中经常被引用例如文献 [7]。其次,采用基于源的分层方法可以迅速地找到安全威胁的解决方案,将攻击限制在特定的层结构中以便将初始解决方案的搜索空间缩小到该层,因此寻找问题的答案更加容易。通常来说,起源于某一层的问题可以在该层内找到解决的方案。下面的内容将集中讨论两个VoIP层:信令协议层和传输协议层。
信令协议层
该层是最重要并且是VoIP攻击最多的层。许多源于这一层的攻击可以利用最少的攻击达到最大的攻击效果。其中,最重要、最有效的攻击如下。
基于SIP的拒绝服务攻击
拒绝服务(DoS)是一种使得计算机系统或网络无法向用户提供服务的攻击行为,一般通过消耗目标网络的带宽或目标系统的计算资源从而使网络链接或服务失效。DoS攻击可以通过很多方式进行实施,下面列举了三种基本的攻击形式:
a.消耗计算资源,例如:带宽、磁盘空间、或者CPU。
b.破坏配置信息,例如:路由信息。
c.破坏物理网络部件。
1)SIP炸弹
这种攻击向目标VoIP系统发送大量伪造的SIP信息,而IP电话对有效性问题非常敏感。对大量伪造的SIP信息进行译码和解释将需要分配大量的计算资源。因为大部分的系统资源都用于处理伪造的信息,正常数据的处理速度将会非常低并且整个VoIP通话的性能将会遭到巨大的衰减。
2)SIP-Cancel/Bye 拒绝服务攻击
这两种攻击在某些情况下非常相似:攻击者一旦检测到目标主机与另外一个主机建立了SIP/VoIP会话就向目标用户发送一个伪造的SIP信息。图2解释了这种类型的拒绝服务攻击。
有效的SIP-CANCLE攻击应该在INVITE发送之后并且在接收最后一个ACK之前发送。这对攻击者的要求非常高。考虑到SIP- CANCLE拒绝服务攻击的时间窗口非常小,我们可以推断这种攻击只有在目标主机的本地网络才会成功。在这种情况下,攻击者一旦检测到目标主机接收到 INVITE请求就向其发送CANCEL报文。攻击者如何检测该事件则超出本文讨论范围。
与SIP-CANCEL相反,SIP-BYE可以在VoIP会话开始后的任何时间发送。因此,有效的攻击时间窗口就是整个会话时间。
但是在现实中这两种攻击方法很难实现,主要原因有以下两点:
a.攻击时机监测:这两种攻击都是基于目标的特定行为的,因此成功的攻击必须与目标的行为同步。
b.报头复制:成功的攻击必须能够将SIP会话的原始报头复制到CANCEL/BYE报文中以使其成为合法的报文。
基于SIP攻击的解决方案
以上描述的所有攻击都依赖于篡改和构造欺骗性的SIP信息。如果没有数字签名或加密措施的保护的话,标准的SIP信息就会很容易伪造。
为了避免遭受这种攻击,有效的解决方案是防止SIP的内容被篡改,拦截,并且采用高度的加密和认证机制。以下两种解决方案为比较常用的方法:
1)使用TLS
在SIP的RFC中为了保护SIP信息采用将TLS(传输层安全)加入到代理服务器,重定向服务器和注册机中的方法。TLS能够保证SIP信息的完整性、私密性,它能够为完整的密钥管理提供相互认证和安全的密钥分发机制。在SIP中使用TLS的要求是要有一个可靠的传输协议(基于TCP的SIP 信令协议)。TLS不可以应用于基于UDP的SIP信令协议。
2)使用IPsec
IPsec可以用于在网络层为SIP报文提供加密服务。对于在SIP VPN下的SIP主机(SIP用户代理),这种方法尤为适合。IPsec对所有基于UDP、TCP、和SCTP的SIP信令协议都起作用。IPsec可以用于为数据提供认证,完整性和私密性并且支持端到端特性。在SIP的RFC中并没有指定密码管理机制,一种普遍接受的密钥管理机制是Internet密钥交换(IKE)。IKE协议能够为IPsec提供自动的密钥交换和管理机制。
传输协议层
在SIP VoIP网络中,基于传输层的威胁包括利用RTP/RTCP协议的弱点进行的攻击。它们依赖于没有加密的RTP数据流。
窃听
最简单最易于实现的就是窃听攻击。窃听是一种中途截获并且读取信息或通话而不被接收人察觉的行为。在VoIP中,窃听使得攻击者具有监听和记录私密电话内容的能力。人们通常会在电话中透露银行卡账号等重要信息,因此窃听可以产生非常重要和意想不到的结果。在商业领域,窃听也可以获取重要的商业情报。
RTP使用标准的编码方式对音频进行编码,他的主要弱点在于使用过的编码信息可以在每个RTP包的头部找到。攻击者截取VoIP媒体流之后对其进行保存然后对RTP流进行解码便可以进行窃听。
RTP插入攻击
这一类传输层攻击的特征是攻击者将带有欺骗性的RTP包插入RTP流中。根据插入RTP包的形式不同,得到的结果也不相同。
1)SSRC冲突攻击
一旦接收到两个来自不同发送者的数据包但是却具有相同的SSRC,RTP就会进入冲突状态。RTP的冲突处理机制很简单:如果一个源发现另外一个源使用与他相同的SSRC,就必须发送RTCP BYE包然后再随机选择一个新的;如果接受者发现有两个源发生碰撞,则它会保持其中一个的包而丢弃来自于另一个的包;两个源会解决碰撞问题因此碰撞不会持续。
以下两种DoS攻击可以用来帮助理解RTP如何处理冲突:
a.当攻击者窃取其中一个对等点的SSRC后,将自己的RTP报文发送给另外一个对等点。接收者一旦接收到相同的SSRC,就选择接收从单一源发送来的数据包。因此,攻击者就可以有效地剔除一个VoIP用户。
b.攻击者向目标主机发送带有目标自身的SSRC的RTP报文。目标主机则被迫放弃当前的RTP流而选择一个新的,然后冲突释放了SSRC。这使得所有目标主机参与的会话都会产生中断。
2)其他的SSRC操纵
SSRC操纵可以以更加复杂和创新的方式来实现。如果攻击者知道其中一个对等点的SSRC,他就能够用相同的SSRC和IP特性伪造报文,但是拥有比合法报文更高的时间戳和RTP序号值。在接收端RTP应用将会首先处理攻击者的数据包而丢弃合法的数据包,因为他们的时间戳不合法并且更晚。这种攻击使得虚假的内容在真实的音频内容之前播放,这种攻击也可以看作为一种拒绝服务攻击。
基于RTP攻击的解决方案
与一些基于SIP的攻击的情况相同,大部分基于RTP的攻击都依赖于伪造的欺骗性RTP包并将他们插入RTP中。要是没有保护措施,可以认为 RTP是一种不安全的协议。如果攻击者能够截取到RTP包,那么伪造恶意的数据包并在合适的时候将他们发送出去只是微不足道的事。即使攻击者无法获取 RTP流,只要攻击者拥有对等点的一些信息,伪造欺骗性的RTP报文并且发动攻击也并不是一件困难的事。
与SIP的情况相同,保护RTP流免受攻击的解决方案就是引入加密机制和类似安全哈希的数字签名。
结束语
目前VoIP安全的发展还处于初始阶段,安全威胁和攻击还有待于建立起一系列理论。但是在实践中却很难执行,主要是因为相关基础知识和攻击检测机会的缺乏。但是,随着VoIP网络数量的不断壮大,攻击者必将对这一新兴的技术产生兴趣。
(本文不涉密)
责任编辑:
上一篇:思科统一通信的优劣势分析
下一篇:托管VoIP服务十大关键问题