VoIP安全问题和解决方案
近年来随着Internet技术的进步及通信带宽的增大,基于IP分组的Internet多媒体应用势头劲猛,VoIP(Voice over Internet)则是最具前景的多媒体应用之一,国内各大电信运营商和很多行业、企业都组建了自己VoIP网络。VoIP在提供价廉的通信资费和方便快捷的通信方式时,其安全问题也逐渐引起人们的关注焦点。对于VoIP网络,由于其基于Internet,因此具有目前IP网络的一切安全问题;再者,由于VoIP的实时性、保密性的特点,它比其他的数据业务对安全有更高的要求。因此,VoIP安全逐渐成为VoIP发展中关注的重点。具体的说,VoIP安全的目标就是要保证服务的可获得性、会话的私密性、完整性及能够防止服务的窃取和欺骗。
可获得性指的是VoIP服务提供商保证所有合法用户能够正常使用该项业务。系统阻止蠕虫和其他病毒的攻击,阻止未授权的用户使用业务。
私密性指在VoIP网络中所有的数据不被窃听和截获,网络能够防止私人信息不被无关的人员所获得。
完整性是指所有VoIP网络功能组件都能正常工作,免收内部或外部用户的干扰。
1、VoIP安全问题分析
具体说来,VoIP会受下述的一些安全威胁
1.1 DOS攻击
DOS(拒绝服务攻击)是包括任何导致系统不能正常提供服务的攻击。一个信令层的攻击就是利用合理的服务器请求来耗尽服务器的处理能力,从而使合法用户无法得到服务的响应;攻击者也可以通过发送伪造的结束信令(例如SIP协议中BYE数据包)或者ICMP端口不可达报文强制VoIP用户结束会话。也可以用大量的媒体流对VoIP网关进行攻击,使得网关被迫丢掉一些正常连接的数据包。可以使网关监控每个媒体流数据包的大小和速率,当发现某个连接的数据包的大小或速率不正常时就不予处理。有测试结果表明:“市场上很多采用H.323协议的VoIP系统在H.245建立过程中都存在漏洞,容易在1720端口上受到DOS的攻击,从而导致系统的不稳定甚至瘫痪”。
这个攻击可以如下方式解决:服务器记录每个特定端点在一定时间内的请求记录,然后和服务器的请求数量许可表中对比如果超过许可,就在一段时间内不再响应这个端点的请求。
1.2 服务窃取 一方面是窃取合法用户身份,假冒合法用户身份,例如通过网络窃听方式窃取使用者IP电话的登录密码就可以获得使用话机的权利,这与口令的保护有关,也是基于口令的保护方法的局限性所致。另一方面是冒充合法的网络节点进行相应的欺骗,例如通过冒充合法的网守,在终端没有进行对网守进行认证的情况下,不法分子获得用户的登录口令等个人信息。 1.3 VoIP数据包的截获与篡改
一个典型的VoIP呼叫需要信令和媒体流这两个建立过程,根据这两个过程可以对通话造成下面两种威胁:
攻击者可以截获和修改用于建立呼叫的信令数据包,修改数据包中的一些字段,使VoIP呼叫的一些性质发生改变。(如改变SIP数据包的REFER-TO字段,可能会使呼叫转接失败或者转接到一个错误的用户,而这个用户有可能是一个恶意用户。)
媒体流的传输采用RTP/RTCP协议,话音的分组传输使得话音包的截取非常容易。由于协议的开放性,如果截获任何一段连续时间的RTP报文,就可以恢复出相应的语音来。如果有人在网络上获取所有RTP报文以生成相应的语音,就会导致通话期间一些机密性的东西泄漏。
2、解决VoIP安全问题方法
我们可以根据VoIP实际应用环境,采用多种机制和措施保障VoIP的安全。主要的方法有以下几种。
2.1 将用于话音和数据传输的网络进行隔离
将所有的IP话机放到个独立的VLAN当中。同时限制无关的终端进入该网段。划分VLAN是目前保护IP话音系统一个简单有效的方法,可以隔离病毒和简单的攻击。同时,对VoIP的QoS进行设定,还将有助于提高话音质量。
2.2 对VoIP软件运行平台进行管理
对VoIP呼叫管理控制软件的运行平台,如Windows或Liuux操作系统或者路由器上不同软件平台,应该确保操作系统日常运行的安全性,并且已经安装了最新的安全补丁。
2.3 将数据包进行加密和认证
对VoIP数据包进行加密和认证流量可以有效的防止通话受到监听。IETF RFC 2401定义的安全性IP(IPSec)是常用的安全协议,它提供了加密和认证功能,保护分组数据包免遭窃听和篡改,可以有效抵御网络攻击,为IP网络通信提供透明的安全服务。为了加解密,终端用户点之间必须建立安全联盟(SA)并交换密钥。下面简要介绍IPSec的工作原理。
2.3.1 IPSec原理介绍
IPSec由三个基本要素来保证数据包在Internet上的安全传输:认证头(AH)协议、安全加载封装(ESP)和互联网密钥交换(IKE)协议。认证协议头和安全加载封装可以通过分开或组合使用来达到所希望的保护等级。
认证协议头是用来增加数据完整性的认证机制,为IP数据流提供高强度的密码认证,以确保修改过的数据包可以被检查出来,通过它可以防止地址欺骗攻击和重发攻击。它支持的散列算法是MD5和SHA-1。不过由于AH不能加密数据包所加载的内容,因而它不保证任何的机密性。
安全封装载荷通过对数据包的全部数据和加载内容进行全加密来严格保证传输信息的机密性,它支持的加密算法是DES、3DES和AES等。ESP也能提供认证和维持数据的完整性。由于ESP加密所有的数据,因此需要占用系统更多的处理能力。
在VoIP网络中,有下列两类数据包:话音和信令分组数据包。信令数据包用于在两个IP网络端点之间建立、修改、中止一个会话,比如两个IP话机之间,信令数据包呼叫端点和协助建立呼叫的服务器之间传输,比如代理服务器、重定向服务器等。会话建立以后,就可以在会话终端之间沿着不同的路径传输话音数据包,这时候和普通的数据包传输的特性一样,不同的数据包有可能在网络上经过不同的路径到达目的地址。
2.3.2 利用IPSec对VoIP的影响
由于信令数据包、话音数据包可能经过不同的路径,所以对这两种数据包应当各自建立不同类型的SA(安全联盟),而建立SA时必须交换密钥信息,从而增加了建立呼叫所用的时间,这在话音通信中有时是不可忍受的。同传统的PSTN呼叫相比,VoIP建立呼叫所用的时间比较长。
在通话过程中,因为要不断对大量语音数据包加密处理,这必然增加话音数据包的延迟,降低VoIP语音通话质量。尤其是在多个会话同时进行加解密时,对整个语音网关来说是一个很大的负担。但如果采用合适的加解密方法,就可以将加解密带来的影响降低到可以忍受的范围。例如采用硬件加密(如语音网关上的加密卡)代替软件加密也不失为一种很好的方案,可以有效的降低语音网关上CPU的利用率。
笔者曾在某公司试验了一下IPSec对VoIP质量的影响,在VoIP语音网关上利用基于E-model的测量工具测出了相应的语音MOS(Mean of Score/语音平均质量得分)值。下面简要介绍一下VoIP的语音质量评价标准。
平均主观值MOS方法:一种主观的语音质量测量方式,由人耳来感知语音的好坏,在ITU-T P.800中定义。这种方法将人类接听和感知语音质量的行为量化,人的主观感觉起主要的作用。一个平均主观值MOS是4或更高,被认为是比较好的语音质量,而若平均主观值MOS低于3.6,则大部分接听者不能满意这个语音质量。但是在现实中,让一组人接听语音和评价语音的质量实现起来是非常困难和昂贵的,于是有了E-model这一客观测量的方法。
国际电联在G.107标准提出了E-model,它能够很好地对VoIP语音质量进行评估。E-model最终结果是R值,称为全面的网络传输等级要素。R值的计算从没有网络和设备的损伤影响开始,此时语音质量是最好的,R=R0。R0是无网络时延和设备损伤因素的基本信号与收发噪声以及电流、背景噪声之比,即基本信噪比。但是网络中对话音质量损伤因素的存在,R值的基本计算公式如下:
R=Ro-Is-Id-Ie+A
其中,Is:语音信号传输同步的损伤;Id:语音信号传输延时的损伤;Ie:由设备引入的损伤;A:优势因素,大部分情况置为0。通过相关测量工具得到相应的R值,然后利用R值和平均主观值MOS之间的映射关系,就可以得到相关的MOS值。
在测试中,采用IPSec Tunnle方式。为评估不同的加密算法对语音质量的影响,分别用AES和3DES两种算法,且两种算法的密钥长度相同。测量的结果显示,在VoIP未加IPSec时候得到的MOS值可以达到4.3,但是相同的网络环境下配置了IPSec,使用AES和3DES两种算法时,MOS值分别为4.1和4.0左右。
关于这个结果,笔者认为有两个原因:由于ESP头部加到语音包中,导致在网络中传输的包长度增加,导致了Ie系数的增加;而由于每个语音包都要加解密,增加了语音延迟,导致了Id系数的增加。这样我们在现实中就得采取某种折衷:根据安全需要采用耗时最少的加密算法以带来语音质量的提升。除了语音质量外,实施IPSec对VoIP造成的另外一个影响是导致最大呼叫路数的降低。在试验的语音网关上,加了IPSec后能呼起的路数大概只是原来的2/3左右。这一点很容易理解:因为网关的处理能力有限,不足以同时处理加了IPSec的最大呼叫量。
3、结语
由于IP分组网本身和VoIP特有的安全脆弱性,VoIP安全问题对于VoIP应用来说至关重要。本文提出了保证VoIP安全的相关措施,就其中的一些措施给出了实际测量,显示了在保证安全的同时,有时我们必须要牺牲一些相关的性能。相信随着技术的不断发展,VoIP在网络上进行语音传输的安全性问题将会得到很好的解决。
可获得性指的是VoIP服务提供商保证所有合法用户能够正常使用该项业务。系统阻止蠕虫和其他病毒的攻击,阻止未授权的用户使用业务。
私密性指在VoIP网络中所有的数据不被窃听和截获,网络能够防止私人信息不被无关的人员所获得。
完整性是指所有VoIP网络功能组件都能正常工作,免收内部或外部用户的干扰。
1、VoIP安全问题分析
具体说来,VoIP会受下述的一些安全威胁
1.1 DOS攻击
DOS(拒绝服务攻击)是包括任何导致系统不能正常提供服务的攻击。一个信令层的攻击就是利用合理的服务器请求来耗尽服务器的处理能力,从而使合法用户无法得到服务的响应;攻击者也可以通过发送伪造的结束信令(例如SIP协议中BYE数据包)或者ICMP端口不可达报文强制VoIP用户结束会话。也可以用大量的媒体流对VoIP网关进行攻击,使得网关被迫丢掉一些正常连接的数据包。可以使网关监控每个媒体流数据包的大小和速率,当发现某个连接的数据包的大小或速率不正常时就不予处理。有测试结果表明:“市场上很多采用H.323协议的VoIP系统在H.245建立过程中都存在漏洞,容易在1720端口上受到DOS的攻击,从而导致系统的不稳定甚至瘫痪”。
这个攻击可以如下方式解决:服务器记录每个特定端点在一定时间内的请求记录,然后和服务器的请求数量许可表中对比如果超过许可,就在一段时间内不再响应这个端点的请求。
1.2 服务窃取 一方面是窃取合法用户身份,假冒合法用户身份,例如通过网络窃听方式窃取使用者IP电话的登录密码就可以获得使用话机的权利,这与口令的保护有关,也是基于口令的保护方法的局限性所致。另一方面是冒充合法的网络节点进行相应的欺骗,例如通过冒充合法的网守,在终端没有进行对网守进行认证的情况下,不法分子获得用户的登录口令等个人信息。 1.3 VoIP数据包的截获与篡改
一个典型的VoIP呼叫需要信令和媒体流这两个建立过程,根据这两个过程可以对通话造成下面两种威胁:
攻击者可以截获和修改用于建立呼叫的信令数据包,修改数据包中的一些字段,使VoIP呼叫的一些性质发生改变。(如改变SIP数据包的REFER-TO字段,可能会使呼叫转接失败或者转接到一个错误的用户,而这个用户有可能是一个恶意用户。)
媒体流的传输采用RTP/RTCP协议,话音的分组传输使得话音包的截取非常容易。由于协议的开放性,如果截获任何一段连续时间的RTP报文,就可以恢复出相应的语音来。如果有人在网络上获取所有RTP报文以生成相应的语音,就会导致通话期间一些机密性的东西泄漏。
2、解决VoIP安全问题方法
我们可以根据VoIP实际应用环境,采用多种机制和措施保障VoIP的安全。主要的方法有以下几种。
2.1 将用于话音和数据传输的网络进行隔离
将所有的IP话机放到个独立的VLAN当中。同时限制无关的终端进入该网段。划分VLAN是目前保护IP话音系统一个简单有效的方法,可以隔离病毒和简单的攻击。同时,对VoIP的QoS进行设定,还将有助于提高话音质量。
2.2 对VoIP软件运行平台进行管理
对VoIP呼叫管理控制软件的运行平台,如Windows或Liuux操作系统或者路由器上不同软件平台,应该确保操作系统日常运行的安全性,并且已经安装了最新的安全补丁。
2.3 将数据包进行加密和认证
对VoIP数据包进行加密和认证流量可以有效的防止通话受到监听。IETF RFC 2401定义的安全性IP(IPSec)是常用的安全协议,它提供了加密和认证功能,保护分组数据包免遭窃听和篡改,可以有效抵御网络攻击,为IP网络通信提供透明的安全服务。为了加解密,终端用户点之间必须建立安全联盟(SA)并交换密钥。下面简要介绍IPSec的工作原理。
2.3.1 IPSec原理介绍
IPSec由三个基本要素来保证数据包在Internet上的安全传输:认证头(AH)协议、安全加载封装(ESP)和互联网密钥交换(IKE)协议。认证协议头和安全加载封装可以通过分开或组合使用来达到所希望的保护等级。
认证协议头是用来增加数据完整性的认证机制,为IP数据流提供高强度的密码认证,以确保修改过的数据包可以被检查出来,通过它可以防止地址欺骗攻击和重发攻击。它支持的散列算法是MD5和SHA-1。不过由于AH不能加密数据包所加载的内容,因而它不保证任何的机密性。
安全封装载荷通过对数据包的全部数据和加载内容进行全加密来严格保证传输信息的机密性,它支持的加密算法是DES、3DES和AES等。ESP也能提供认证和维持数据的完整性。由于ESP加密所有的数据,因此需要占用系统更多的处理能力。
在VoIP网络中,有下列两类数据包:话音和信令分组数据包。信令数据包用于在两个IP网络端点之间建立、修改、中止一个会话,比如两个IP话机之间,信令数据包呼叫端点和协助建立呼叫的服务器之间传输,比如代理服务器、重定向服务器等。会话建立以后,就可以在会话终端之间沿着不同的路径传输话音数据包,这时候和普通的数据包传输的特性一样,不同的数据包有可能在网络上经过不同的路径到达目的地址。
2.3.2 利用IPSec对VoIP的影响
由于信令数据包、话音数据包可能经过不同的路径,所以对这两种数据包应当各自建立不同类型的SA(安全联盟),而建立SA时必须交换密钥信息,从而增加了建立呼叫所用的时间,这在话音通信中有时是不可忍受的。同传统的PSTN呼叫相比,VoIP建立呼叫所用的时间比较长。
在通话过程中,因为要不断对大量语音数据包加密处理,这必然增加话音数据包的延迟,降低VoIP语音通话质量。尤其是在多个会话同时进行加解密时,对整个语音网关来说是一个很大的负担。但如果采用合适的加解密方法,就可以将加解密带来的影响降低到可以忍受的范围。例如采用硬件加密(如语音网关上的加密卡)代替软件加密也不失为一种很好的方案,可以有效的降低语音网关上CPU的利用率。
笔者曾在某公司试验了一下IPSec对VoIP质量的影响,在VoIP语音网关上利用基于E-model的测量工具测出了相应的语音MOS(Mean of Score/语音平均质量得分)值。下面简要介绍一下VoIP的语音质量评价标准。
平均主观值MOS方法:一种主观的语音质量测量方式,由人耳来感知语音的好坏,在ITU-T P.800中定义。这种方法将人类接听和感知语音质量的行为量化,人的主观感觉起主要的作用。一个平均主观值MOS是4或更高,被认为是比较好的语音质量,而若平均主观值MOS低于3.6,则大部分接听者不能满意这个语音质量。但是在现实中,让一组人接听语音和评价语音的质量实现起来是非常困难和昂贵的,于是有了E-model这一客观测量的方法。
国际电联在G.107标准提出了E-model,它能够很好地对VoIP语音质量进行评估。E-model最终结果是R值,称为全面的网络传输等级要素。R值的计算从没有网络和设备的损伤影响开始,此时语音质量是最好的,R=R0。R0是无网络时延和设备损伤因素的基本信号与收发噪声以及电流、背景噪声之比,即基本信噪比。但是网络中对话音质量损伤因素的存在,R值的基本计算公式如下:
R=Ro-Is-Id-Ie+A
其中,Is:语音信号传输同步的损伤;Id:语音信号传输延时的损伤;Ie:由设备引入的损伤;A:优势因素,大部分情况置为0。通过相关测量工具得到相应的R值,然后利用R值和平均主观值MOS之间的映射关系,就可以得到相关的MOS值。
在测试中,采用IPSec Tunnle方式。为评估不同的加密算法对语音质量的影响,分别用AES和3DES两种算法,且两种算法的密钥长度相同。测量的结果显示,在VoIP未加IPSec时候得到的MOS值可以达到4.3,但是相同的网络环境下配置了IPSec,使用AES和3DES两种算法时,MOS值分别为4.1和4.0左右。
关于这个结果,笔者认为有两个原因:由于ESP头部加到语音包中,导致在网络中传输的包长度增加,导致了Ie系数的增加;而由于每个语音包都要加解密,增加了语音延迟,导致了Id系数的增加。这样我们在现实中就得采取某种折衷:根据安全需要采用耗时最少的加密算法以带来语音质量的提升。除了语音质量外,实施IPSec对VoIP造成的另外一个影响是导致最大呼叫路数的降低。在试验的语音网关上,加了IPSec后能呼起的路数大概只是原来的2/3左右。这一点很容易理解:因为网关的处理能力有限,不足以同时处理加了IPSec的最大呼叫量。
3、结语
由于IP分组网本身和VoIP特有的安全脆弱性,VoIP安全问题对于VoIP应用来说至关重要。本文提出了保证VoIP安全的相关措施,就其中的一些措施给出了实际测量,显示了在保证安全的同时,有时我们必须要牺牲一些相关的性能。相信随着技术的不断发展,VoIP在网络上进行语音传输的安全性问题将会得到很好的解决。