崔梅英
摘要:基于网络电话理论研究的成果提出了基于SSL VPN的SIP网络电话系统,将SSL VPN虚拟通道应用到网络电话上来,以提高网络电话的安全性能,并构建了一个基于SSL VPN的SIP网络电话系统的模型,并对该系统模型进行了测试。结果显示对网络电话采用SSL VPN的方案可行。
关键词:SIP网络电话;仿真;测试
中图分类号:TD65+5.1文献标识码:A文章编号:1672-3198(2009)23-0281-02
1开源软件介绍
1.1Osip与eXosip
Osip是一个开源的标准C的RFC 3261的SIP协议栈,Osip协议栈采用ANSIC编写,结构简单而小巧,所以速度特别快。它主要提供一些解析SIP/SDP消息的API和事务处理的状态机,负责生成和解析SIP信令。Osip可以用来开发LserAgent,IP soft-phone和SIP Proxy等等。Osip总体结构主要包括三大模块:状态机模块、解析器模块和工具模块,如图1所示。
图1Osip模块结构
Osip把各种SIP消息统一封装到一个OSIP_MESSAGE_T结构体中。Osip的核心是基于事务层的,一个事务层从逻辑上可以分为客户和服务器两部分,客户端发送请求,服务器端发送响应。
一方面Osip的各个模块相对清晰、独立,且词法解析器提供了较完善的API。但另一方面由于Osip结构简单,外围相关模块需要用户自己开发,如SIP消息的接收和发送,RTP/RTCP语音数据处理等;协议栈的调试和维护功能比较简单。我们可以配合使用Osip的扩展协议栈eXosipo eXosip部分封装了Osip协议栈,提供了网络数据传输模块,另外还增加了call,dialog,registration,subscription等过程,使之实用性更强。
eXosip的基本思想是在封装Osip词法解析模块的基础上,增加一个SOCKET传输模块,通过称之为JEVENT的消息管道实现Osip事务状态机和SOCKET传输层之间的通信,从而实现SIP信令在网络上发送、接收。eXosip结构模块如图2所示:
图2eXosip模块结构
eXosip充分重用Osip协议栈的解析器、消息封装API、状态机三个模块,保证SIP消息格式和状态转移的正确性。提供了面向呼叫和应答呼叫的API,并实现了SOCKET传输模块和SDP协商模块,结构简单清晰。
1.2OpenVPN
OpenVPN是基于数据包封装技术,利用SSL协议结合强加密算法和身份认证技术构建而成的可靠安全的VPN。其工作原理可描述为:服务器和客户端通过SSL握手过程进行身份认证和密钥交换,完成隧道初始化,数据在隧道中传输时,借鉴ESP协议的封装原理对数据进行封装。
OpenVPN利用数据分层机制分成两种数据通道:
(1)数据隧道。
数据隧道是传输用户应用数据的安全通道。控制通道用于建立、维护、拆除数据隧道,传输SSL会话消息和各种指令性信息。根据两者对传输数据可靠性的要求不同,对数据进行分层处理。
(2)控制通道。
控制通道数据由UDP层上模拟的可靠层来保证其可靠性,隧道数据不要提供可靠性保障,直接由UDP层处理。两种通道中的数据通过“多路器”进行识别和分流。控制通道完成很多重要的事情,如隧道密钥的确立、各种控制指令的收发与处理、HMAC防火墙、在UDP上模拟的可靠层、密钥磋商与变更等。
2测试及分析
2.1测试环境
本系统SIP电话的代理服务器、注册服务器、定位服务器、重定位服务器及SSL VPN服务器在物理上是一台服务器,分别为服务器A和服务器B,SIP软终端分别是终端A和终端B。终端A和终端B所在的局域网分别通过服务器A和服务器B与Internet连接。
服务器A,B的配置分别为:
服务器A(Chariot Console):
本系统通过Chariot测试软件进行测试。Chariot是由NetIQ公司推出的一款网络测试软件。它的出色之处在于,它可提供端到端、多操作系统、多协议测试、多应用模拟测试,应用范围包括有线网、无线网、广域网及各种网络设备。可以进行网络故障定位、用户投诉分析、系统评估、网络优化等,能从用户角度测试网络或网络参数(吞吐量、反应时间、延时、抖动、丢包率等)。支持6种VoIP Code(G.711a,G.711b,G.723.1-ACELP,G.723.1-MPMLQ,G.726,G.729),支持MOS评分,便于对VoIP网络进行实时分析。它通过模拟真实的网络流量来测试网络上的点对点、复杂架构以及分布式结构系统的性能。由于它具备验证网络性能、设备性能、应用程序性能、系统执行状况记录等多项功能,并且其验证的公正性得到了众多网络实验室以及各大网络产品生产商的认可,NetIQ Chariot已经成为应用层网络性能的评估标准。
2.2测试比较
在语音质量方面,常采用MOS分值衡量。MOS值是分数越高越好,一个正常的模拟或者数字话机的MOS值是4.2—4.4,一个典型的蜂窝话机的MOS值范围是3.0^-37,而一个通话质量差的蜂窝手机其得分值低于2 o MOS评定有1^-5级的五个评分标准,可以接受的语音在3.5级以上。
为了测试网络电话系统采用SSL VPN加密后的呼叫性能变化,对使用VPN前后的呼叫建立时间(记录从INVITE发起,到收到200 OK消息的这段时间)进行对比。呼叫时间如图3所示。
图5呼叫建立时间图
从图中可以看出,对呼叫建立而言,采用SSL VPN加密后,由于服务器需要对数据包进行加解密,使得呼叫建立时间稍长,但不到1秒,对呼叫性能影响不大。但是却大大增强了系统的安全性能,完全抵消建立呼叫时间增加的负面影响。并且系统能顺利穿越服务器A和服务器B的防火墙//NAT设施。说明采用SSL VPN是可行的。
接下来对SSL协议改进前后对系统服务质量(QoS)的影响进行测试比较。在语音编码G.726方式下,对于可选择的加密方式ECC/RSA,SHA-1/MD5,3DES/RC4的所有组合选取3组代表性的进行测试:(1)ECC_MD5_RC4,RSA_MD5;(2)ECC_MD5_RC4、ECC_SHA-1_RC4;(3)ECC_MD5_RC4、ECC-MD5_3DES。RC4:分别对VoIP QoS从端到端延迟、丢包率、抖动、MOS值四个方面进行了比较。如表1所示。
表1测试数据
测试选取了3组代表性的密钥组合,结果显示:
(1)ECC与RSA相比,延迟减少了31.561ms,丢包率下降了1.31%,抖动减少了1.329ms,MOS值也增加了0.57;
(2)MD5与SHA-1相比,延迟减少了9.744ms,丢包率下降了0.67%,抖动减少了0.126ms,MOS值稍稍增加了009;
(3)RC4与3DES相比,延迟减少了14.48ms,丢包率下降了0.92%,抖动减少了0.046ms,且MOS值增加了0.28。
相对而言,ECC要比RSA性能突出得多,对系统服务质量改善程度最大。本系统测试连续通话20分钟,语音流畅、清晰,可以满足日常通话的需求。
参考文献
[1]@李琳,王新刚,柴乔林.SIP协议在开发的VoIP模型中的实现[J].计算机工程,2008,28(8):222-226.
[2]@曹玖新,张德运.VoIP实现技术研究[J].计算机工程,2006,26(10):497-500.
[3]@张智江,张云勇,刘韵洁.SIP协议及其应用[M].北京:电子工业出版社,2008.
[4]@赵学军,陆立.软交换技术与应用[M].北京:人民邮电出版社,2007.