WLAN中VoIP的安全隐患分析( 三 )


这时 , WiFi网络中的通信业务已经完全阻塞了 。
5 呼叫中断攻击
在呼叫过程中 , 发送前向的BYE消息 , 可立刻中断呼叫 。如果攻击者要利用这个缺点攻击 , 他首先必须想办法获得Call-Dialog中的Call-ID 。Call-ID的作用是一组意义明确的标识符 , 它存储在呼叫双方用户代理拨号时 , 所发送的请求和响应的消息中 。因此攻击者会在会在呼叫建立时截取它 , 并用它来发起攻击 。
还可以使用CANCEL的方法来中断呼叫 , 利用Pythonscript来实施攻击 , 在控制模式下的无线接口建立一个端口 。这个软件可以捕获SIP的呼叫建立 , 特别是其中的INVITE消息 。当攻击者截获了INVITE消息 , 自己建立了一个Ad hoc SIP CANCEL消息 , 其中包含的Call-ID与INVITE请求消息中的标签是完全一样的 。
伪造的CANCEL消息被插入到了无线信道里去 。插入的数据包中包含的目的地址和源地址 , 无论从IP层或MAC层来看 , 都是和INVITE请求消息一样的 。
6 建立错误呼叫
攻击者能创建一条SIP INVITE 消息 , 分别发给呼叫双方的用户代理 , 在他们之间建立一次错误的呼叫 , 这时被攻击者根本无法察觉到有任何的异常 。INVITE消息中包含了相同的Call-ID , Cseq以及带宽参数 , 但是两条消息中的源地址和目的地址是被抹去了的 。由于SDP协议的要求 , INVITE消息中必须包含相同的关于语音编码的要求信息 , 一个简单的对RTP业务流的分析就能获得相关的UDP端口值等信息 。
在发送了两份INVITE消息之后 , 被攻击的设备开始振铃和发送SIP 180 Ringing消息给发送出INVITE request请求的对端 , 由于这次是一次非法的呼叫 , 设备不能识别 , 所以选择了丢弃 。当用户选择了应答呼叫 , 软件电话发送SIP 200 OK的消息给它认为是发送INVITE request的那一方 , 同样的 , 这个消息也被丢弃 。
当攻击者成功的捕获了关于错误呼叫(建立在有正确Call-ID的基础上)的200 OK的消息 , 就会对同样的源地址和目的地址发送自己的INVITE请求 。大部分的SIP软件电话能至少同时处理三个呼叫 , 因此攻击者也能在同一个WLAN同时对三个呼叫发起攻击 , 至少能使一个呼叫失败 。这是因为 , RTP的数据包将会发送到目的地 , 但是不会送到发起呼叫的一方 , 并且这个消息会被丢弃 。这种攻击会造成在网络中同时存在多个SIP呼叫 。即使持续时间很短 , 这些呼叫仍然会造成网络的拥塞 , 如果情况一直持续 , 所有的在配置好路由表中的终端都会无法呼叫 。[Page]
7 结论
为了解决这些安全隐患 , 必须用安全机制来保证通话的私密性和对数据的鉴权 , 我们选择的安全机制WPA标准是基于802.1 x/EAP协议来鉴权 。WPA系统的密码标准能够阻止VoIP呼叫被窃听 , 呼叫建立信息被截取 , 从而提高系统的安全性 。在数据鉴权方面 , 把鉴权服务器(Radius Server)加到网络的架构中去 。
尽管整个网络有如此多的安全性问题 , 但VoIP技术把语音和数据结合起来的优势让人无法拒绝 , 并且我们说明的发起攻击的方式并不仅仅只针对与无线网络连接的SIP协议 , 而是指向了整个网络 , 包括语音的通信 , 数据的交互 , 系统带宽的饱和 。大部分的攻击的目标都是指向系统固有的缺陷(例如 , 如果SIP服务器不能准确的保证Call-ID的正确性 , 或者攻击者有机会截取Call-ID) 。
由于VoIP在价格上的优势 , 在很多企业内部 , 使用软件电话很容易就可以成为VoIP的用户 , 这就把VoIP网络(企业内部网络)完全的暴露在攻击者面前 。随着VoIP在无线网络的拓展 , 通话的安全性和私密性问题更加突出 。使用有效的安全机制(如内含EAP的802.11i/AES)802.11i/AES作为安全性的保障十分重要 。

推荐阅读