扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
1、引言
VoIP(VoiceoverIP)通过对语音信号进行编码数字化,压缩处理成压缩帧,然后转换为IP数据包在IP网络上传输,从而完成语音通话的业务。VoIP技术使我们可以基于互联网实现电话业务。这种语音通话业务的实现模式能提供更多的集成功能、更高的通信带宽以及更灵活的管理能力,并能够显著降低成本。近年来,VoIP得到了迅猛发展和广泛应用。
目前,VoIP有两种常用的应用层控制(信令)协议:H.323协议和会话初始协议(SIP,SessionInitiationProtocol)。两者的信令功能基本相同,都是利用实时传输协议(RTP,Real-timeTransport Protocol)进行媒体传输。SIP是由IETF提出的一个在基于IP网络中实现实时通信应用的一个应用层控制信令协议。H.323由ITU-T提出,它描述了在服务质量无保证的分组网络中提供多媒体通信业务的多媒体通信系统,它继承了通信领域传统的集中、分层控制的设计思想,在传统电信网络向基于IP的电信网络过渡的过程中,可以利用原有很多设备,避免了资源浪费。正是这些方面的特点,使得H.323已成为电信运营商、行业部门、企业建设VoIP网络广泛采用的协议方案。本文主要以H.323为例来分析和探讨VoIP网络的安全问题。
2、基于H.323的VoIP系统简介
H.323起初并不是为VoIP专门提出的,但因为非常适合电话到电话经由网关的这种VoIP工作方式,所以被借过来作为VoIP的标准。基于H.323的VoIP网络系统通常包括H.323终端(如PSTN话机、PC终端等)、网关、关守(gatekeeper)和多点控制单元(MCU),如图1所示。
图1 基于H.323VoIP网络体系示意图
图1中,H.323VoIP网络的各实体的功能如下。
H.323终端是IP网络中能提供实时、双向通信的节点设备,也是一种终端用户设备,可以和网关、多点接入控制单元进行多媒体通信。
网关用于连接H.323网络与非H.323网络(如ISDN,POTS),网关通过转换呼叫建立和释放协议,来转换两个网络的不同媒体格式。
关守主要负责电话号码和IP地址之间的转换。它们还负责管理带宽并提供终端登记和认证机制。同时关守还提供了诸如呼叫传输、呼叫转发等服务。
MCU提供对三方终端以上的电话会议的支持。所有参与会议的终端与MCU建立一个连接。MCU管理会议资源,语音(视频)编码算法,还可以管理媒体流。
H.323协议是一个庞大的协议族,其中又包括许多相关的子协议,形成了一个协议栈,如图2所示。
图2 H.323协议栈
从图2可以看到,H.225.0和H.245是H.323系统的核心协议。H.225.0负责呼叫控制,主要包括两部分:呼叫接纳信令(RAS)和呼叫信令协议。RAS主要用于传送终端登记信息、认证信息和呼叫处理信息;呼叫信令协议基于Q.931而制定,主要用于完成呼叫建立过程,也常称为Q.931信令。H.245用于媒体控制,主要实现媒体流通信信道的建立、维护和释放。RTCP是媒体流实时传输控制协议,RTP是媒体流实时传输协议。媒体流安全传输将使用H.245信道中给出的算法与密钥进行编码。
H.323终端之间建立通信关系通常执行四个控制过程:RAS,H.225.0呼叫控制(Q.931信令),连接控制(H.245)及媒体RTP信道建立的过程。
图3简要描述了一个基于H.323的PC2PC的VoIP呼叫的建立过程以及呼叫过程中各相关协议的控制作用。当一个H.323终端想要与另一个端点建立呼叫时,首先,源端点使用RAS信令从一个关守那里获得许可;然后,源端点使用H.225.0呼叫控制(Q.931信令)来建立与目的端点的通信;接着,源端点使用H.245连接控制信令与目的端点协商媒体参数并建立RTP信道;最后,两端点通过RTP信道进行媒体传送。
图3 H.323的呼叫建立过程与协议控制
3、基于H.323的VoIP安全分析
3.1VoIP的安全威胁
VoIP作为一种多媒体通信服务运行在IP网上,语音分组数据包是在IP网中传输的,由于IP网络的开放性、可获得性及广域性,所有在互联网中存在的安全问题,VoIP系统同样存在。VoIP受到多方面的安全威胁,主要有:
(1)DoS攻击:DoS(拒绝服务)攻击是包括任何导致系统不能正常提供服务的攻击,最基本的DoS攻击就是利用合理的服务器请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。目前,基于H.323的VoIP系统采用了很多开放端口用于呼叫建立和业务传输。在呼叫建立过程中,如果没有做好认证工作,就为DoS攻击提供了机会。
(2)服务窃取:一方面是窃取合法用户身份,假冒合法用户身份,例如通过网络窃听方式窃取使用者IP电话的登录密码就可以获得使用账号的权利。另一方面是冒充合法的网络节点进行相应的欺骗,例如通过冒充合法的关守,在终端没有进行对关守进行认证的情况下,不法分子获得用户的登录口令等个人信息。
(3)信令流的监听:由于H.323信令的开放性,任何人可以通过网络监听的方式监听VoIP通信建立过程的信令流,从而恶意用户可以进行对信令流的篡改并可造成会话劫持、中间人攻击、电话跟踪等后果。
(4)媒体流的监听:基于H.323的VoIP通信采用RTP/RTCP作为语音信息实时传输的协议。由于协议具有开放性的特点,恶意用户可以通过网络监听器监听媒体流,如果可以理解媒体流内容即可破坏媒体流的机密性。
3.2VoIP安全要求
上述VoIP系统存在的安全问题,实际上就是由信息的保密性、完整性、真实性得不到保证和通信主体的认证不足而造成的。要做到VoIP通信的安全,就应该加强安全措施来保证信息的保密性、完整性、真实性和实现通信主体的认证以及通信事件的不可否认性。
如图3所示,一次VoIP通信过程主要包括4个阶段,即RAS信道、H.225.0(Q.931)信道、H.245信道和媒体RTP信道顺序建立的过程。其中,前三个是信令信道,最后一个是媒体传输信道。H.323安全性不仅仅要求对RAS、H.225.0(Q.931)、H.245等呼叫建立过程中的信令进行保护,同时也要求对多媒体数据流本身进行保护,防止机密信息被窃取。
因此,要实现安全的H.323VoIP业务,首先要保证终端或MCU与关守之间安全传递RAS消息,以完成安全注册,确保只有合法用户可以使用H.323业务并进行相应的资源使用授权,如国际、长途业务授权等。
在保证RAS安全基础上,建立起安全的呼叫连接信道(H.225.0(Q.931)信道)与呼叫控制(H.245)信道来保证信令流安全,然后在此基础上,为采用RTP协议的实时媒体流通信进行加密算法与密钥协商,完成媒体流通信机密性。
4、基于H.323的VoIP安全机制及解决方案
目前,基于H.323的VoIP网络的安全实现主要有两种安全机制。
(1)采用外部协议的安全机制,如通过网络层/传输层安全通道(如IPSec、TLS等安全协议),实现H.323安全保护。
(2)通过对H.323协议簇中所涉及到的信令本身增加安全机制,实现各种信道安全能力协商与安全保护,即制定其自身的安全协议,如H.323协议的H.235安全协议。
这里重点介绍第二种机制。
H.323协议簇中有一成员H.235(又称为H.Security)是负责身份验证、数据完整性和媒体流加密。H.235建议为不提供可担保业务质量的基于分组网络的H.323系统引入了安全机制。H.235推荐了各种消息的流程、结构以及算法,来保证H.323系统中信令信道、媒体控制信道和媒体流的安全性。所采用的机制主要有:
(1)H.225呼叫信令信道的保密需要采用TLS或IPSec。
(2)H.245媒体控制信道的安全也需要保障,以便实现媒体流的安全性。对于H.323系统,可以在H.225信令信道中传递各种安全相关的参数来实现H.245信道的安全。
(3)媒体流的最初密钥材料的传递需要通过H.245的OpenLogicalChannel或是其响应消息。当处理了一定数量的包以后,需要更换会话密钥,这时候使用H.245中的EncryptionUpdate Command等消息。
(4)适应不同的安全性要求,支持多种密码算法。为了实现终端之间的交互兼容操作,可以提供安全性、非安全性混合环境下的操作规则,并支持终端具有尽可能多的有效、专用的加密算法能力。
H.235协议提供了实现安全性的流程,它通过与H.323协议族中的其他协议交互来实现H.323体系的安全性,其具体实现如下。
4.1身份认证安全(H.225.0(RAS))
H.235协议中提供了两类认证方式:基于对称加密体系和基于非对称加密体系的认证。基于对称加密体系的认证方式中,常用的是利用用户ID和密码的唯一性,将用户密码作为信息加密的对称密钥,接收方通过用相同的密码解密信息来实现对用户的认证,也可以用散列函数对密码进行单向散列运算形成对称密钥进行数字签名,接收方通过对数字签名的验证来实现对用户的认证。还有一种基于对称加密体系的认证是利用DH(Diffie-Hellman)密钥交换算法,通信双方各自形成一对公/私密钥,只需和对方交换公钥,经过计算形成一个相同的密钥进行认证,在这种方式下,双方不需要事先商定一个密码,也避免了在通信中直接传输密钥的风险。基于非对称加密体系的认证通过数字证书的公钥/私钥对来进行数字签名和认证。这种方式需要证书管理的支持。
H.235中用户认证的位置很灵活,可以在H.255.0呼叫建立过程中,也可以在H.245呼叫控制过程中实现,还可以在IPSec中进行。此外,如果系统存在RAS信道,也需要在网关和终端之间进行单向或者双向认证。
4.2呼叫连接安全(H.225.0(Q.931))
呼叫连接安全涉及到二个方面:一是在接收呼叫之前,要进行认证,以保证呼叫建立与连接信道安全(如H.225.0);二是通过对端点的认证来进行呼叫授权。
呼叫连接安全主要有以下两种方法。
利用独立的安全协议实现呼叫连接安全:在交换呼叫连接信令消息之前,可以通过在一个安全的众所周知端口上使用TLS或IPSec,保证呼叫信令信道安全。
利用证书在不安全信道上实现安全认证和完整性检查,并通过对安全能力与密钥的协商机制进行扩展,可以确定后续信道的安全。
H.323网络安全模式,在交换呼叫连接消息之前,即呼叫连接信道(H.225.0)与呼叫控制(H.245)信道在第一次消息交换内,就应确定安全的或不安全模式。安全模式是协商出双方共同支持的算法与密钥,以支持媒体流传输;非安全模式是以明文消息形式进行后面的媒体流传输。
4.3呼叫控制安全(H.245)
H.245呼叫控制信道本身可以通过TLS或IPSec进行加密。H.245包含了对各种信道加密的加密算法和密钥,可以设置对媒体数据流加密的多种模式。在H.245信令过程中,在能力协商阶段进行双方的安全能力的协商(比如终端可以接收和发送H.261视频编码)。在主从决定的信令过程中生成媒体会话密钥。密钥分发是在打开逻辑通道的过程中实现的,这里可以使用DH密钥交换机制,通过在OpenLogicalChannel/OpenLogical Channel Ack的交互实现。
4.4媒体信道安全
媒体流使用H.245信道中给出的算法与密钥来进行加密。只加密RTP数据报的负荷。媒体会话密钥可以使用三种机制进行保护。如果H.245信道是安全的,会话密钥不需要施加任何保护;如果H.245信道是不安全的,可以使用证书(证书也可以用在安全H.245信道上),利用证书内的公钥加密媒体会话密钥。媒体流的最初密钥材料的传递需要通过H.245的OpenLogicalChannel或是其响应消息。当处理了一定数量的包以后,需要更换会话密钥,这时候使用H.245中的EncryptionUpdate和Encryption Update Request来完成密钥的更新的。一旦更新了密钥,RTP头部的负荷类型将改变以指出使用新的密钥。媒体流加密可以使用DES、Triple DES、RC5等加密算法。
4.5密钥管理安全
H.323安全的两个基本要素是加密算法和密钥管理。由于密码系统的反复使用,仅靠加密算法已难以保证信息的安全了。事实上,加密信息的安全可靠主要依赖于密钥系统,密钥是控制加密算法和解密算法的关键信息,它的产生、传输、存储等工作是十分重要的。H.323密钥管理主要包括RAS密钥管理和呼叫连接密钥管理。为了安全传输密钥,可以使用IPSec/SSL建立一个安全RAS或呼叫信令信道,或在不安全的明文信道使用公钥加密和证书实现。
5、结束语
近年来,VoIP技术凭借带宽宽、开发升级快、价格低等优势,得到了迅猛发展。尤其基于H.323的VoIP,继承了通信领域传统的设计思想,并可以在传统电信网络向基于IP的电信网络过渡的过程中,可以利用原有很多设备,避免资源浪费的优势,在我国得到广泛应用。但同时,随着VoIP的快速发展,VoIP系统所存在的安全问题也越来越受大家的关注。H.235协议为H.323协议提供了比较全面的安全体系结构,为H.323的身份验证和加密提供了多种方法。H.323VoIP所面临的一些安全问题,实际是IP网络上存在的若干安全问题的延续。只要很好地解决了IP网络的安全问题,同时配合H.323自身的一些安全机制,基于H.323的VoIP网络的安全问题才可以最终解决。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。