基于SIP的VoIP身份认证与加密系统
2016-09-13刘继明高丽娟卢光跃
刘继明, 高丽娟, 卢光跃
(西安邮电大学 通信与信息工程学院, 陕西 西安 710121)
基于SIP的VoIP身份认证与加密系统
刘继明, 高丽娟, 卢光跃
(西安邮电大学 通信与信息工程学院, 陕西 西安 710121)
结合数字证书技术与安全传输层协议,给出一种语音安全实施方案,以实现认证与加密的双重保障。利用公钥基础设施,以安全传输层协议保证客户端与服务器之间通信的安全性。在用户注册阶段,添加客户端与服务器之间的双向认证过程;在会话阶段,建立安全传输层通道,实现会话建立流程的全程加密。抓包数据显示,所给方案可完成用户身份认证,弥补会话初始协议(SIP)信令明文的缺陷,实现语音通话全程加密。
会话初始协议(SIP);数字证书;加密;身份认证;语音电话
语音电话(Voice over IP, VoIP)技术通过将模拟信号数字化,来实现用IP包在互联网上传递语音业务的功能[1]。在互联网中,通信双方需要通过身份认证确定对方的真实身份。对于VoIP系统而言,身份认证是一种重要的安全防护,用来对抗冒充攻击和重放攻击等潜在的安全威胁,防止其他实体占用被认证实体的身份。
国际上主流的认证系统主要有3种方式,即公钥基础设施(Public Key Infrastructure,PKI)[2]、基于身份的加密(Identity Based Encryption,IBE)[3]和组合公钥(Combined Public Key,CPK)[4]。IBE系统将与实体相关的信息(如邮箱、手机号码)作为公钥,不需要频繁地获取证书和验证证书来获取公钥;CPK利用种子公钥解决秘钥的管理与分发难题,能以少量种子生成几乎“无限”个公钥。但是,IBE的主密钥一旦泄露,所有用户的私钥都将泄露;CPK理论完善,但要充分开发利用,还需做大量研究工作。PKI网络安全解决方案比较成熟和完善,以公钥加密为基础,提供证书管理功能,实现双方的身份认证功能。基于X.509证书的公钥基础设施正越来越多地被应用到身份认证以及身份授权体系中[5]。
为了更好地保障语音在传输中的安全性,可以首先利用PKI系统实现用户身份认证,再在语音连接时利用安全传输层(Transport Layer Security,TLS)协议对语音信令实现加密,并在语音传输时利用TLS阶段协商的秘钥对语音进行加密,以实现客户端与服务器之间的双向认证,提高语音通信过程中的隐私性和机密性。
1 安全传输层协议
安全套接层协议( Secure Sockets Layer,SSL)是一种基于公钥密码机制的网络安全协议,可用以实现Intenet上消息传送的安全性和保密性[6],目前,已得到所有浏览器和服务器的支持,并成为一个国际标准。互联网工程任务组(Internet Engineering Task Force,IETF)对SSL作了标准化,得到RFC2246,称之为安全传输层协议,即TLS[7]。TLS运行在如传输控制协议(Transmission Control Protocol, TCP)的可靠传输协议之上。在分层模型中,TLS不依赖于在TLS之上的应用层,在其他服务中同样适用。从技术上讲,TLS1.0与SSL3.0的差别非常微小。所以所提到的SSL即为TLS,不进行统一的规范。
TLS由两层组成:TLS记录协议层(TLS Record Protocol Layer)和 TLS 握手协议层(TLS Handshake Protocol Layer)。记录协议提供安全连接较底层,承担主要工作,提供隐私权和完整性;记录协议使用如数据加密标准(Data Encryption Standard,DES)等对称加密算法和RC4对数据进行加密。记录协议层之上的TLS握手协议层不止有握手协议,还包括警示协议(alert protocol)、改变密码描述协议(change specification protocol)和应用数据协议(application data protocol)等。TLS握手协议与数据通信会话同时开始,使用对称或公钥加密技术认证对方,并在预连接情况下,有选择地协商一个公共秘钥和对称加密算法。TLS握手协议将共享与协商的加密算法传递给记录协议层,记录协议层进行负载加密。
当客户端与服务器相连接时,可以选择在服务器认证方式下或共有认证方式下使用TLS。在服务器认证方式下,客户端通过TLS鉴定服务器的身份;在相互验证方式下,各实体通过验证证书认证对方。客户端和服务器之间通过TLS方式验证身份的消息流程如图1所示[8]。
图1TLS认证流程
2 实验环境搭建
2.1X.509证书的制作
证书认证程序EJBCA,以J2EE技术为基础,可实现PKI中几乎所有的重要部件,比如注册中心(Registration Authority,RA)、认证中心(Certification Authority,CA)、证书撤销列表(Certification Remove List,CRL)和证书存储数据库等[9]。
现采用EJBCA搭建PKI体系。访问EJBCA的管理界面[9],进行证书制作:添加子CA,创建用户,创建终端实体模版,创建指定模版的终端实体,创建RA管理员并且实进行授权分组录入实体信息。进入系统公共页面[9],获取和下载相应证书。
以服务器的证书为例,最终生成的终端实体证书如图2所示。
图2终端证书实体
2.2测试环境及实验结果
为了验证基于SIP的VoIP身份认证与加密系统的可行性,在Linux环境下搭建仿真环境。客户端和服务器均运行在CPU为2.26 GHz,内存为1.98 GB,操作系统为Ubuntu 11.10的PC平台上。服务器运行Asterisk[10],模拟SIP注册服务器、代理服务器,客户端运行Blink,模拟UAC发起注册、建立会话和UAS响应会话的功能。测试环境网络拓扑结构如图3所示。
图3 测试环境网络拓扑结构
在局域网中搭建实验平台。SIP UA1设定为1001@192.168.35.134,SIP UA2设定为1002@192.168.35.134,分别如图 4和图5所示。
图4 SIP UA1
图5 SIP UA2
会话建立连接时,SIP消息的完整结构如下。
/*下面是SIP的INVITE的请求消息*/
INVITE sip:1001@192.168.35.134 SIP/2.0//请求行
Via:SIP/2.0/UDP 202.117.131.115:4547;rport;
branch=z9hG4bKPj4a3ab5540e0f4deb849766f775e31866
//消息头域参数Max_Forwards: 70
From:"UserTwo"
tag=6aad10bd068f4e008bbb1442905d0803
To:
Contact:
Call_ID: b417b11f8c854e919d89e42275bcf5e4
CSeq: 14989 INVITE
Allow: SUBSCRIBE,NOTIFY,PRACK,INVITE,ACK,BYE,CANCEL,UPDATE,MESSAGE,REFER
Supported: 100rel, replaces, norefersub, gruu
User_Agent: Blink 1.2.1 (Windows)
Content_Type: application/sdp
Content_Length: 425
/*下面是消息体*/
v=0
o=- 3643651341 3643651341 IN IP4 192.168.35.1
s=Blink 1.2.1 (Windows)
t=0 0
m=audio 50012 RTP/AVP 113 9 0 8 101
c=IN IP4 192.168.35.1
a=rtcp:50013
a=rtpmap:113 opus/48000/2
a=fmtp:113 useinbandfec=1
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone_event/8000
a=fmtp:101 0-16
a=zrtp_hash:1.10 755ddcd0495ea931482f6be169471635
5781562fa1f41681ad4e4c352e44b14f
a=sendrecv
客户端和服务器之间的信令交互没有采取任何安全机制,SIP信令消息都是以明文传输的,容易被攻击者通过抓包取得用户信息,故SIP信令安全机制关系着整个SIP应用的安全。基于SIP的VoIP身份认证与加密系统,先利用基于X.509证书的认证方式实现客户端和服务器的双向认证,再在服务器和客户端之间建立TLS连接[11],以实现会话建立阶段的全程加密。改进方案的网络拓扑结构如图6所示。
图6 改进系统的网络拓扑
(1) EJBCA分别产生CA根证书、SIP UA1、SIPUA2以及服务器的X.509证书,并下载到本地。
(2) SIP UA1、SIPUA2通过客户端Blink→Preferences→Account→Advanced→TLS Setting添加SIP UA1、SIP UA2的证书,Blink→Advanced→TLS Setting添加CA根证书。
(3) 服务器Asterisk配置SIP TLS Transport。
利用wireshark得到的TLS数据包如图7所示,不同于SIP信令的明文显示,客户算与服务器之间采用TLS传输的数据均为密文,可确保会话建立阶段的机密性。
应用层之间通过TLS过程协商的秘钥对其会话进行加密,进一步确保了会话过程的安全性以及完整性,如图8所示。
图7 TLS加密注册信令
图8 加密数据
3 结语
采用EJBCA搭建PKI设施,生成X.509证书,完成用户注册阶段以及SIP连接过程中客户端与服务器之间的认证功能,可防止VoIP网络中存在的注册欺骗、冒充服务器、篡改消息体和会话中断等攻击和威胁问题。在会话建立阶段,实现TLS连接,可弥补SIP信令明文的缺陷,应用层之间通过TLS过程协商的秘钥对其会话进行密。
[1]彭红姣,刘尚东,陈夏梅.VolP系统在下一代网络中的QoS保障[J/OL].电信科学,2014(8):73-78[2016-01-13].http://dx.chinadoi.cn/10.3969/j.issn.1000-0801.2014.08.011.
[2]梁冬梅.公钥基础设施(PKI)研究[J/OL].计算机光盘软件与应用,2012(21):66-67[2016-01-13].http://www.cnki.com.cn/Article/CJFDTotal-GPRJ201221032.htm.
[3]杨勇.基于身份密码体制的若干安全性问题研究[D/OL].济南:山东大学,2011:10-35[2016-03-01].http://dx.chinadoi.cn/10.7666/d.y1939012.
[4]房利国, 李丽, 郭庆,等. 基于CPK密钥管理系统的应用性研究[J/OL]. 信息安全与技术, 2015, 6(10):21-23[2016-03-01]. http://dx.chinadoi.cn/10.3969/j.issn.1674-9456.2015.10.007.
[5]许进,王娟,邱宏茂,等.基于PKI/CA的数据服务安全系统研究[J/OL].计算机工程与设计,2013,34(8):2995-3000[2016-01-13].http://dx.chinadoi.cn/10.3969/j.issn.1000-7024.2013.08.067.
[6]汪庆龙,贺松,袁森.安全的VoIP通信系统设计及实现[J/OL].电声技术,2015.39(9):62-66[2016-01-13]. http://dx.chinadoi.cn/10.16311/j.audioe.2015.09.12.
[7]张明,许博义,郭艳来.针对SSL/TLS的典型攻击[J/OL]. 计算机科学,2015,42(z1):408-410[2016-03-01].http://mall.cnki.net/magazine/article/JSJA2015S1100.htm.
[8]陈性元,杨艳,任志宇.网络安全通信协议[M].北京:高等教育出版社,2008:115-138.
[9]SCH.用EJBCA搭建自己的CA系统[EB/OL].[2016-03-01].http://www.iigrowing.cn/yong-ejbca-gou-jian-zi-ji-de-ca-xi-tong.html.
[10] 王媛.基于Asterisk的校园网电话系统研究[J/OL]. 科技视界,2015(6):144-145[2016-01-13].http://mall.cnki.net/magazine/article/KJSJ201506107.htm.DOI: 10.3969/j.issn.2095-2457.2015.06.107.
[11] 耿金阳. PKI与TLS协议效率优化研究及软件实现[D/OL].石家庄:石家庄铁道大学,2014:1-10[2016-02-20].http://cdmd.cnki.com.cn/article/cdmd-10107-1014348368.htm.
[责任编辑:瑞金]
VoIP authentication and encryption system based on SIP
LIU Jiming,GAO Lijuan,LU Guangyue
(School of Communication and Information Engineering, Xi’an University of Posts and Telecommunications, Xi’an 710121, China)
Based on the digital certificate technology and the transport layer security protocol, a voice security implementation scheme is presented in order to realize the dual protection of authentication and encryption. On the basis of public key infrastructure, the secure transport layer protocol is used to ensure the security of the communication between client and server. In the user registration phase, a two-way authentication process between client and server is added, while, during the session, the transport layer security channel is set up, and the whole process of session establishment is encrypted. The results of data capture show that, the schema can complete user identity authentication, make up for the defects of the session initiation protocol (SIP) with signaling plaintext, and achieve full voice call encryption.
Session Initiation Protocol(SIP), digital certificates, encryption, authentication, voice over IP
10.13682/j.issn.2095-6533.2016.04.003
2016-03-09
陕西省自然科学基金资助项目(2014JM8299)
刘继明(1964-),男,博士,教授,从事下一代网络软交换技术研究。E-mail:jiming@itibia.com
高丽娟(1988-),女,硕士研究生,研究方向为信号与信息处理。E-mail:756918259@qq.com
TN915.08
A
2095-6533(2016)04-0014-05