随着数据通信的发展,宽带用户急剧增加,而业务的增长十分缓慢,成为制约网络发展的一个“瓶颈”。现在对多媒体通信的需求越来越强烈,可以预见,多媒体通信会迎来一个快速发展期,而把这个业务推向大众,就需要解决安全问题。
未来的多媒体通信将是以IP网络为基础的,主要协议是H.323协议与会话启动协议(SIP)。相对于会话启动协议,H.323协议比较完善,但也很复杂。市场上支持H.323协议的设备比较多,潜在用户群比较大,同时在多点通信方面,在H.320协议基础上发展起来的H.323协议的会议功能也比较完善。
1 H.323系统安全体系介绍
图1给出了一个多媒体业务系统框架,其中:多点处理单元(MCU)主要处理多点业务,网关(GW)是H.323系统与其他网络之间的网关,流服务器可以提供非实时的多媒体信息, H.323代理是解决只具有内部IP地址的H.323设备加入运营网络的设备,网守(GK)是一个域的管理者,业务管理系统可以管理多媒体业务,网络管理主要是通过SNMP(简单网络管理协议)管理设备,AAA (认证、授权、计费)系统可以验证终端是否合法、是否有参加会议的权利,同时也收集计费信息。
图1 多媒体业务运营系统框架
GK在该系统中有着重要的作用,负责收集认证计费信息,并把认证请求、计费请求用RADIUS(远程认证拨号用户服务)协议发给AAA,GK可以分级管理,从而可以组建大规模运营网络。
H.323系统中的安全保证主要采用H.235协议中规定的机制,利用CryptoToken(加密安全字段)、ClearToken(明文安全字段)等来实现。该系统主要采用3种算法:散列算法(MD5或HMAC-SHA1-96)、对称加密算法(DES、3DES)、公共密码算法(RSA),还可以选用TLS(传输层安全)协议、IPSec(IP安全协议),在IP、TCP层次来保证系统的安全性。H.235协议还规定了RAS、Q.931、H.245与媒体数据的安全实现方法。
H.323系统能实现点到点的通信安全保证,要求通信双方知道一个共享的密钥,或者采用数字证书。对终端来说,用户往往只有一个密码,而且用户的密码一般放在集中的认证中心,这就要求系统支持终端的集中认证。
H.323系统要求GK迂回H.225.0 Q.931通道,支持快速呼叫或H.245隧道通信方式,那么终端、MCU、GW之间的通信信令都需要GK转发,这样,只要GK与GW、GK与MCU、GK与终端之间的通信是安全的,整个系统之间的通信就是安全的。由于避免了节点之间的直接呼叫,可以减少密钥的数量。
媒体信号的加密是通过H.245消息协商一个会话密钥来实现的,节点之间媒体信号都可以用会话密钥加密,会话密钥是通过一个或多个GK来转发并加密的。
当H.323系统中有H.323代理时,H.323代理必须与GK、MCU、GW、终端有共享密钥或数字证书,所有的信令都能被验证后重新加密。
2 系统的安全功能及实现方式
H.323系统主要实现的安全功能有:实现信令的完整性与不可抵赖性,不实现信令的加密;实现媒体的加密;支持终端用户集中认证方式,保证终端别名注册的安全性和终端呼叫信令的安全性。
H.323系统中,GK处于一个重要的位置,GK为MCU、GW、终端及下级GK提供认证,可以保障H.323别名注册的安全与节点之间呼叫通道的安全。当运营商之间需要互通时,又需要考虑顶级GK与边界设备相互之间的安全。
如图2所示,其实现的内容有:
图2 H.323系统安全框架图
(1)GK1、GK2向顶级GK注册,顶级GK与GK1、GK2之间的RAS消息采用H.235来保证安全,密码通过静态配置得到;
(2)每个GK有一个对应的认证中心,GK1对应于AAA1、GK2对应于AAA2,采用RADIUS协议通信;
(3)GW1、MCU1向GK1注册,GK1与GW1、MCU1之间的消息采用H.235来保证安全,密码通过静态配置得到;
(4)H.323终端1向GK1注册,由于GK1向AAA1发出认证请求,取得终端密码,从而可以验证用户的各种请求;
(5)H.320终端由于是采用电路方式建立连接的,不考虑终端与网关的安全问题,只需要考虑网关与GK之间的安全。
3 局端设备之间的安全
H.323系统中,网守间或者是MCU、GW与GK之间使用GRQ/GCF(网守发现请求/网守发现确认)协商它们之间的安全认证能力,用算法标识符来协商加密算法,在随后的xRQ消息中使用GCF中的加密算法进行加密。局端设备之间的共享密钥使用静态配置方式来分配。网守接收到xRQ后,需要对加密安全字段进行认证,通过后再根据其他信息确定是回xRJ或xCF。
图2中,网守和网守之间采用单向认证方式,下级网守向上一级网守进行登录请求,上级网守对直接下级网守进行安全性认证检查。通信的任何一方都可以验证另一方的消息是否安全。
图3分别列出2种实现RAS信令安全的通信流程。例如:若采用散列算法对整个消息作散列运算,以实现点到点通信的安全,则CryptoToken的cryptoHashedToken的tokenOID设为“A”,CryptoToken的cryptoHashedToken的token的algorithmOID设为“V”表示MD5算法,“W”表示SHA1算法。而H.225.0 Q.931的安全通信与RAS是相似的。
图3 实现RAS信令安全的通信流程
4 终端与GK之间的安全
系统的基本安全要求为:
目前有两种方法保证终端与GK之间的安全:一是采用挑战握手方式,终端加密,GK只需要转发加密后的密文,AAA验证后通知GK终端是否合法;二是要求GK知道终端密码,终端加密后,GK验证终端是否合法。如图4所示,终端认证的通信流程如下:、
图4 终端认证通信流程
(1)终端用户用静态配置方式输入终端密码,发出GRQ、GCF来协商安全认证能力,如果需要采用挑战握手方式,则需要AAA发出一个挑战。
(2)终端发出RRQ,并加密CryptoTokens,向GK注册,GK向本地AAA发出认证请求。
(3)本地AAA若发现这个终端不是本地终端,可以转发认证请求给其他AAA,认证请求后,返回Access-Accept或Access-Reject消息。
(4)GK根据本地AAA的回答,确认RRQ是否合法,若不合法,就返回RRJ,拒绝原因为安全认证不通过;否则,就按照正常处理流程处理RRQ。
方法一的优点是:密码由终端加密,GK不需要知道密码,密码的验证是由认证服务器完成的,密码传递比较安全;缺点是不能实现H.235规定的安全,只能实现有限的安全。
其具体缺点有:
方法二的优点是:能保证所有的信令通道的安全,可以实现媒体通道会话密钥的交换,对H.235安全系统没有任何改变;缺点是RADIUS协议需要修改,GK需要知道终端密码,有安全隐患。
当H.323信令需要穿过H.323代理时,代理在H.323实体之间充当了转发信令的角色,对于H.235中的加密Token需要解密或验证,重新加密后发出新的请求。
5 直接呼叫的安全实现方法
H.323系统中,GK迂回呼叫通道,会使GK性能大幅下降,因此,应当考虑直接呼叫的安全解决方法。H.235v2没有给出GK不迂回呼叫通道的解决方案,实际上,GW、MCU、终端之间直接建立呼叫通道,也是可以通过GK实现认证的,如图5所示。
图5 直接呼叫的安全通信流程
其原理是:H.323节点发出ARQ(接入请求),由GK产生一个加密的Token给H.323节点,H.323节点在Setup消息中传递这个加密Token给被叫,被叫把这个加密Token在ARQ中送给GK,GK解密后验证这个Token是否合法,若不合法,就返回ARJ(接入拒绝)。对于跨域呼叫也可以用LRQ(位置请求)来传递这个加密Token。
这种方法的缺点是:只能验证Setup消息,无法验证后续的消息。由于呼叫通道是基于TCP协议的,Setup是建立TCP通道后的第一个消息,所以这种方式有一定的安全保证,但不完善。
6 结束语
由于IP网络有很多潜在的不安全因素,多媒体通信走向大众的最迫切需要解决的问题是安全问题,运营商最关心也是安全问题。但实际上,除了考虑通信的安全外,还应当考虑操作系统等其他方面的安全问题。□
参考文献
1 ITU-T建议.H.323基于包交换的多媒体通信系统
2 ITU-T建议.H.225.0基于包交换的多媒体通信系统的信令协议和打包方法
3 ITU-T建议.H.235v2多媒体通信安全与加密
4 IETF RFC2865.远程拨号用户认证服务