SIP信令安全机制的改进与实现

2012-08-13 05:57王文胜
通信技术 2012年9期
关键词:会话信令客户端

谭 觅, 王文胜

(中国电子科技集团公司第三十研究所,四川 成都 610041)

0 引言

会话初始协议(SIP)是IETF规定的一种基于IP的应用层信令控制协议,采用文本编码,结构简单,使用灵活且扩展性强。然而SIP应用于完全开放的Internet环境,其协议本身也没有明确规定的安全机制,所以 SIP的安全性并不能得到保证[1]。目前大多数SIP应用中,数据包以明文传输,可能遭到攻击者的恶意修改,遭受注册劫持、消息篡改和非法监听等各种形式的攻击,其原因在于没有一种可靠的机制来保证SIP应用的身份认证和消息的机密性。

文献[2]提出了一种应用层的安全策略,改变了SIP头部Call-ID的生成方法,需要对现有协议栈进行修改,且对SIP消息采用非对称加密,影响了加解密速率。文献[3]提出了一种SIP轻量级双向认证机制,采用AES对称加密算法,提高了加解密速率。但是该方法对HTTP摘要认证中的digest-challenge字段进行了修改,需要对现有设备进行改进,增加了实现的难度。文献[4-5]提出了采用S/MIME的机制实现对SIP消息体的加密,实现了端到端的安全保护,然而此方法对SIP消息头并没有提供任何安全措施。

鉴于以上方案在SIP用户认证和信令机密性等方面存在的不足,提出了一种改进的SIP信令安全机制。该机制实现了用户注册阶段的双向认证,且对于后续的SIP信令消息采取对称加密。在建立会话之前的用户认证阶段,客户端和注册服务器之间首先建立TLS连接。用户注册完成后,对于会话建立时的信令,客户端与服务器之间仍然采用之前的TLS通道,服务器之间则通过IPSec提供保护。因此,信令的所有交互流程的机密性都得到了保证,且对于信令消息都使用的是对称加密算法,使得SIP信令加解密速率和安全性都得到了提高。

1 改进的安全机制

1.1 用户注册阶段

用户注册阶段首先要解决的就是身份认证。目前大部分SIP应用采用HTTP摘要认证对SIP用户进行验证。然而,使用HTTP摘要认证的客户端不能认证服务器并且对消息完整性的保护也不够充分[3]。为了实现客户端对服务器的认证,必须考虑使用双向认证的机制。

1.1.1 客户端对服务器的认证

为了验证服务器的合法性,本方法考虑在用户注册开始前,首先建立TLS通道,通过通道建立阶段客户端对服务器证书进行验证来完成客户端对服务器的认证,具体步骤如下:

1)客户端获取CA认证中心的根证书,服务器端下载自己的证书。

2)客户端发起 TLS连接建立请求,申请对服务器进行身份验证。

3)服务器将证书发送到客户端,客户端利用CA的根证书对服务器证书进行验证。

4)若身份验证通过,则根据 TLS握手协议的流程继续进行会话密钥协商。

从上述流程可以看出,SIP客户端借助TLS协商中对于服务器证书的验证,完成了针对服务器的身份认证,从而完成了双向认证的第一步。

1.1.2 服务器对客户端的认证

在验证了服务器的合法身份之后, TLS通道此时已经建立,此后服务器与客户端之间交互的信令都将受到TLS通道的保护。下面将完成服务器对客户端的身份认证。

该认证方法与目前大多数SIP服务器对客户端采取的认证方法一致,即通过共享密钥[6],使用挑战响应(Challenge-Response)机制完成对用户的身份认证,具体步骤如下:

1)客户端发送 REGISTER消息到服务器,请求进行用户注册。

2)服务器返回401 Unauthorized消息,指明用于验证的nonce,realm和摘要算法。

3)客户端将自己的username,与服务器共享的password,以及从收到的 401消息中的 nonce和realm,根据其指定的算法计算出一个摘要认证消息返回给服务器。

4)服务器收到客户端返回的响应消息,在数据库中查找共享密钥,然后检查返回的response值是否正确,如果正确,则认定为合法用户,并将其注册到该服务器上。

通过以上两个步骤,在没有改变SIP现有格式和信令交互流程的情况下,完成了双向认证,即提高了安全性,又没有增加过多的开销,在服务器对客户端的认证阶段,信令交互在TLS通道中完成的,所以攻击者不能通过截取SIP头部字段进行离线猜测强行破解密码。

1.2 会话建立阶段

在完成SIP用户的注册之后,需要对会话两端的IP地址、端口、媒体编码格式和码率等参数进行协商,以建立RTP媒体流[7]。目前的SIP应用中,大多数情况下没有采取有效的安全机制对信令进行保护,使得客户端可能受到服务器重定向攻击和INVITE请求伪造攻击等安全威胁,其根本原因是SIP信令的机密性无法保证。为了解决这一问题,本方法考虑对建立会话的信令进行加密,由于SIP代理服务器需要对应用层数据进行解析,不能采取端到端的加密方式,所以其过程又分为客户端到服务器的加密以及服务器之间的加密两个阶段。

1.2.1 客户端到服务器

客户端和服务器之间的信令交互,利用用户注册阶段建立的TLS通道进行加密保护。这样既避免了再次协商加密通道造成的时间和资源的浪费,又保证了信令交互的机密性。

1.2.2 服务器到服务器

由于服务器之间的信令交互没有采用任何安全机制,所以必须对其进行加密保护,考虑使用IPSec。相对于遍布Internet的SIP终端,代理服务器数量比较少、分布比较集中[8],且大多数情况下由运营商进行统一管理,所以考虑采用预共享密钥实现代理服务器之间的身份认证,预共享密钥事先在各代理服务器上进行手动配置,密钥协商采用IKE协议,其第一阶段采用主模式预共享密钥发起身份认证,加密方式使用ESP的传输模式,Hash函数为Sha1,加密算法采用3des的对称加密方式。

2 实验结果及分析

为了验证上述方法的可行性,在 Linux环境下搭建仿真环境。客户端和服务器均运行在 CPU为2.4 GHz,512 M内存,操作系统为Ubuntu10.10的PC平台上。客户端运行Sipp模拟UAC发起注册、建立会话和 UAS响应会话的功能,服务器运行Opensips模拟SIP注册服务器、代理服务器,使用Openvpn协商建立TLS通道,使用IPSec-Tools实现IPSec加密。

2.1 模拟用户注册

配置Opensips对用户进行HTTP摘要认证,启动Openvpn建立客户端与服务器之间的TLS通道,在客户端使用Sipp发起注册,使用Tcpdump抓包进行分析,记录完成整个注册流程所需时间,与没有建立TLS通道的情况进行比较。仿真场景如图1所示。

Tcpdump抓包记录如图2所示,通过抓包记录可以看出,采用加密机制之后,交互的SIP注册信令均为Openvpn建立的TLS通道中传输的密文,所以保证了其机密性。

图2 未加密和采用TLS通道的注册信令交互流程

通过实验数据可知,未建立TLS时,注册需要0.005 4 s,采用TLS加密之后,完成一次注册所需的时间为0.009 9 s,比没有采用TLS增加了83%,但仍然在可以接受的范围。

2.2 模拟会话建立

首先如 2.1节所述,在两台服务器上注册两个不同的用户,并在服务器之间使用IPSec-Tools实现IPSec的ESP传输模式,在两个客户端分别运行Sipp为UAC和UAS模式,由UAC发起INVITE请求,UAS回应200OK以模拟一次会话的建立。客户端与服务器间为之前建立的TLS通道,服务器间为IPSec加密。仿真场景如图3所示。

Tcpdump抓包记录如图4所示,终端与服务器之间均为TLS通道中的加密数据包,服务器之间均为ESP数据包,保证了会话建立阶段信令的机密性,可以使其免受安全威胁。

通过实验数据可知,未采用安全机制的会话建立时间为0.008 5 s,采用上述安全机制后会话建立时间为0.023 1 s,虽然增幅较大,但其绝对值仍然较小,对用户影响不大,证明该机制可行。

3 结语

采用本文提出的针对SIP信令的安全机制,在用户注册阶段,完成SIP客户端与服务器之间的双向认证,且保证了注册信令的机密性,比现有机制更加安全,可以防止服务器伪装和注册劫持等攻击行为。在会话建立阶段,通过TLS通道和IPSec的ESP传输模式的共同使用,实现了会话建立流程的全程加密,且加解密过程对SIP协议解析透明。总而言之,采用本文提出的方法,保证了SIP用户注册和会话建立阶段的安全,且没有对现有的SIP格式和网络架构进行任何改变,并采用对称加密算法,造成的开销在可以接受的范围之内,所以该方法可行。在仿真实验时发现,用于TLS通道协商的时间远远大于TLS和IPSec用于数据加解密所需的时间,所以可以结合SIP的特点进行进一步研究,以缩短通道协商的时间。

[1] ARKKO J, TORVINEN V, CAMARILLO G. Security Mechanism Agreement for the Session Initiation Protocol (SIP)[S].[s.l.]: IETF,2003.

[2] 隆昭华,李明哲.基于应用层的 SIP安全机制设计[J].计算机工程与设计, 2010,31(15):3350-3353.

[3] 崔涛,高强,何宝宏.SIP协议的轻量级双向认证技术研究[J].电子技术应用,2008(09):125-128.

[4] Kumiko Ono, Shinya Tachimoto. SIP Signaling Security for End-to-end Communication[C].USA:IEEE Conference Publications,2003:1042-1046.

[5] 娄颖. SIP协议安全机制研究[J]. 广东通信技术, 2004,24(04):5-8.

[6] 李婧,李雪,胡浩.基于 SIP的安全认证机制的研究与改进[J].计算机工程,2009,35(02):162-164.

[7] ROSENBERG J, SCHULZRINNE H, CAMARILLO G. SIP:Session Initiation Protocol[S].[s.l.]:IETF,2002.

[8] 储泰山,潘雪增.SIP安全模型研究及实现[J].计算机应用与软件,2004,12(21):101-103.

[9] 王啸,周渊平. VoIP系统中 NAT穿越技术的研究与实现[J].通信技术,2010,43(10):105-107.

[10] 陈伟,鲍慧.IMS网络拓扑隐藏及其加密算法的研究[J].通信技术,2008,41(03):85-87.

[11] 卫亚兵,苏宏,郝平软交换系统中的 SIP信令安全[J].信息安全与通信保密,2005(10):76-79.

猜你喜欢
会话信令客户端
QQ和微信会话话轮及话轮转换特点浅析
SLS字段在七号信令中的运用
如何看待传统媒体新闻客户端的“断舍离”?
移动信令在交通大数据分析中的应用探索
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于信令分析的TD-LTE无线网络应用研究
基于集群节点间即时拷贝的会话同步技术研究①
LTE网络信令采集数据的分析及探讨