劉繼明, 高麗娟, 盧光躍
(西安郵電大學(xué) 通信與信息工程學(xué)院, 陜西 西安 710121)
?
基于SIP的VoIP身份認(rèn)證與加密系統(tǒng)
劉繼明, 高麗娟, 盧光躍
(西安郵電大學(xué) 通信與信息工程學(xué)院, 陜西 西安 710121)
結(jié)合數(shù)字證書技術(shù)與安全傳輸層協(xié)議,給出一種語音安全實(shí)施方案,以實(shí)現(xiàn)認(rèn)證與加密的雙重保障。利用公鑰基礎(chǔ)設(shè)施,以安全傳輸層協(xié)議保證客戶端與服務(wù)器之間通信的安全性。在用戶注冊(cè)階段,添加客戶端與服務(wù)器之間的雙向認(rèn)證過程;在會(huì)話階段,建立安全傳輸層通道,實(shí)現(xiàn)會(huì)話建立流程的全程加密。抓包數(shù)據(jù)顯示,所給方案可完成用戶身份認(rèn)證,彌補(bǔ)會(huì)話初始協(xié)議(SIP)信令明文的缺陷,實(shí)現(xiàn)語音通話全程加密。
會(huì)話初始協(xié)議(SIP);數(shù)字證書;加密;身份認(rèn)證;語音電話
語音電話(Voice over IP, VoIP)技術(shù)通過將模擬信號(hào)數(shù)字化,來實(shí)現(xiàn)用IP包在互聯(lián)網(wǎng)上傳遞語音業(yè)務(wù)的功能[1]。在互聯(lián)網(wǎng)中,通信雙方需要通過身份認(rèn)證確定對(duì)方的真實(shí)身份。對(duì)于VoIP系統(tǒng)而言,身份認(rèn)證是一種重要的安全防護(hù),用來對(duì)抗冒充攻擊和重放攻擊等潛在的安全威脅,防止其他實(shí)體占用被認(rèn)證實(shí)體的身份。
國(guó)際上主流的認(rèn)證系統(tǒng)主要有3種方式,即公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)[2]、基于身份的加密(Identity Based Encryption,IBE)[3]和組合公鑰(Combined Public Key,CPK)[4]。IBE系統(tǒng)將與實(shí)體相關(guān)的信息(如郵箱、手機(jī)號(hào)碼)作為公鑰,不需要頻繁地獲取證書和驗(yàn)證證書來獲取公鑰;CPK利用種子公鑰解決秘鑰的管理與分發(fā)難題,能以少量種子生成幾乎“無限”個(gè)公鑰。但是,IBE的主密鑰一旦泄露,所有用戶的私鑰都將泄露;CPK理論完善,但要充分開發(fā)利用,還需做大量研究工作。PKI網(wǎng)絡(luò)安全解決方案比較成熟和完善,以公鑰加密為基礎(chǔ),提供證書管理功能,實(shí)現(xiàn)雙方的身份認(rèn)證功能?;赬.509證書的公鑰基礎(chǔ)設(shè)施正越來越多地被應(yīng)用到身份認(rèn)證以及身份授權(quán)體系中[5]。
為了更好地保障語音在傳輸中的安全性,可以首先利用PKI系統(tǒng)實(shí)現(xiàn)用戶身份認(rèn)證,再在語音連接時(shí)利用安全傳輸層(Transport Layer Security,TLS)協(xié)議對(duì)語音信令實(shí)現(xiàn)加密,并在語音傳輸時(shí)利用TLS階段協(xié)商的秘鑰對(duì)語音進(jìn)行加密,以實(shí)現(xiàn)客戶端與服務(wù)器之間的雙向認(rèn)證,提高語音通信過程中的隱私性和機(jī)密性。
安全套接層協(xié)議( Secure Sockets Layer,SSL)是一種基于公鑰密碼機(jī)制的網(wǎng)絡(luò)安全協(xié)議,可用以實(shí)現(xiàn)Intenet上消息傳送的安全性和保密性[6],目前,已得到所有瀏覽器和服務(wù)器的支持,并成為一個(gè)國(guó)際標(biāo)準(zhǔn)?;ヂ?lián)網(wǎng)工程任務(wù)組(Internet Engineering Task Force,IETF)對(duì)SSL作了標(biāo)準(zhǔn)化,得到RFC2246,稱之為安全傳輸層協(xié)議,即TLS[7]。TLS運(yùn)行在如傳輸控制協(xié)議(Transmission Control Protocol, TCP)的可靠傳輸協(xié)議之上。在分層模型中,TLS不依賴于在TLS之上的應(yīng)用層,在其他服務(wù)中同樣適用。從技術(shù)上講,TLS1.0與SSL3.0的差別非常微小。所以所提到的SSL即為TLS,不進(jìn)行統(tǒng)一的規(guī)范。
TLS由兩層組成:TLS記錄協(xié)議層(TLS Record Protocol Layer)和 TLS 握手協(xié)議層(TLS Handshake Protocol Layer)。記錄協(xié)議提供安全連接較底層,承擔(dān)主要工作,提供隱私權(quán)和完整性;記錄協(xié)議使用如數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,DES)等對(duì)稱加密算法和RC4對(duì)數(shù)據(jù)進(jìn)行加密。記錄協(xié)議層之上的TLS握手協(xié)議層不止有握手協(xié)議,還包括警示協(xié)議(alert protocol)、改變密碼描述協(xié)議(change specification protocol)和應(yīng)用數(shù)據(jù)協(xié)議(application data protocol)等。TLS握手協(xié)議與數(shù)據(jù)通信會(huì)話同時(shí)開始,使用對(duì)稱或公鑰加密技術(shù)認(rèn)證對(duì)方,并在預(yù)連接情況下,有選擇地協(xié)商一個(gè)公共秘鑰和對(duì)稱加密算法。TLS握手協(xié)議將共享與協(xié)商的加密算法傳遞給記錄協(xié)議層,記錄協(xié)議層進(jìn)行負(fù)載加密。
當(dāng)客戶端與服務(wù)器相連接時(shí),可以選擇在服務(wù)器認(rèn)證方式下或共有認(rèn)證方式下使用TLS。在服務(wù)器認(rèn)證方式下,客戶端通過TLS鑒定服務(wù)器的身份;在相互驗(yàn)證方式下,各實(shí)體通過驗(yàn)證證書認(rèn)證對(duì)方??蛻舳撕头?wù)器之間通過TLS方式驗(yàn)證身份的消息流程如圖1所示[8]。
圖1TLS認(rèn)證流程
2.1X.509證書的制作
證書認(rèn)證程序EJBCA,以J2EE技術(shù)為基礎(chǔ),可實(shí)現(xiàn)PKI中幾乎所有的重要部件,比如注冊(cè)中心(Registration Authority,RA)、認(rèn)證中心(Certification Authority,CA)、證書撤銷列表(Certification Remove List,CRL)和證書存儲(chǔ)數(shù)據(jù)庫等[9]。
現(xiàn)采用EJBCA搭建PKI體系。訪問EJBCA的管理界面[9],進(jìn)行證書制作:添加子CA,創(chuàng)建用戶,創(chuàng)建終端實(shí)體模版,創(chuàng)建指定模版的終端實(shí)體,創(chuàng)建RA管理員并且實(shí)進(jìn)行授權(quán)分組錄入實(shí)體信息。進(jìn)入系統(tǒng)公共頁面[9],獲取和下載相應(yīng)證書。
以服務(wù)器的證書為例,最終生成的終端實(shí)體證書如圖2所示。
圖2終端證書實(shí)體
2.2測(cè)試環(huán)境及實(shí)驗(yàn)結(jié)果
為了驗(yàn)證基于SIP的VoIP身份認(rèn)證與加密系統(tǒng)的可行性,在Linux環(huán)境下搭建仿真環(huán)境??蛻舳撕头?wù)器均運(yùn)行在CPU為2.26 GHz,內(nèi)存為1.98 GB,操作系統(tǒng)為Ubuntu 11.10的PC平臺(tái)上。服務(wù)器運(yùn)行Asterisk[10],模擬SIP注冊(cè)服務(wù)器、代理服務(wù)器,客戶端運(yùn)行Blink,模擬UAC發(fā)起注冊(cè)、建立會(huì)話和UAS響應(yīng)會(huì)話的功能。測(cè)試環(huán)境網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖3所示。
圖3 測(cè)試環(huán)境網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
在局域網(wǎng)中搭建實(shí)驗(yàn)平臺(tái)。SIP UA1設(shè)定為1001@192.168.35.134,SIP UA2設(shè)定為1002@192.168.35.134,分別如圖 4和圖5所示。
圖4 SIP UA1
圖5 SIP UA2
會(huì)話建立連接時(shí),SIP消息的完整結(jié)構(gòu)如下。
/*下面是SIP的INVITE的請(qǐng)求消息*/
INVITE sip:1001@192.168.35.134 SIP/2.0//請(qǐng)求行
Via:SIP/2.0/UDP 202.117.131.115:4547;rport;
branch=z9hG4bKPj4a3ab5540e0f4deb849766f775e31866
//消息頭域參數(shù)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
客戶端和服務(wù)器之間的信令交互沒有采取任何安全機(jī)制,SIP信令消息都是以明文傳輸?shù)?,容易被攻擊者通過抓包取得用戶信息,故SIP信令安全機(jī)制關(guān)系著整個(gè)SIP應(yīng)用的安全?;赟IP的VoIP身份認(rèn)證與加密系統(tǒng),先利用基于X.509證書的認(rèn)證方式實(shí)現(xiàn)客戶端和服務(wù)器的雙向認(rèn)證,再在服務(wù)器和客戶端之間建立TLS連接[11],以實(shí)現(xiàn)會(huì)話建立階段的全程加密。改進(jìn)方案的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖6所示。
圖6 改進(jìn)系統(tǒng)的網(wǎng)絡(luò)拓?fù)?/p>
(1) EJBCA分別產(chǎn)生CA根證書、SIP UA1、SIPUA2以及服務(wù)器的X.509證書,并下載到本地。
(2) SIP UA1、SIPUA2通過客戶端Blink→Preferences→Account→Advanced→TLS Setting添加SIP UA1、SIP UA2的證書,Blink→Advanced→TLS Setting添加CA根證書。
(3) 服務(wù)器Asterisk配置SIP TLS Transport。
利用wireshark得到的TLS數(shù)據(jù)包如圖7所示,不同于SIP信令的明文顯示,客戶算與服務(wù)器之間采用TLS傳輸?shù)臄?shù)據(jù)均為密文,可確保會(huì)話建立階段的機(jī)密性。
應(yīng)用層之間通過TLS過程協(xié)商的秘鑰對(duì)其會(huì)話進(jìn)行加密,進(jìn)一步確保了會(huì)話過程的安全性以及完整性,如圖8所示。
圖7 TLS加密注冊(cè)信令
圖8 加密數(shù)據(jù)
采用EJBCA搭建PKI設(shè)施,生成X.509證書,完成用戶注冊(cè)階段以及SIP連接過程中客戶端與服務(wù)器之間的認(rèn)證功能,可防止VoIP網(wǎng)絡(luò)中存在的注冊(cè)欺騙、冒充服務(wù)器、篡改消息體和會(huì)話中斷等攻擊和威脅問題。在會(huì)話建立階段,實(shí)現(xiàn)TLS連接,可彌補(bǔ)SIP信令明文的缺陷,應(yīng)用層之間通過TLS過程協(xié)商的秘鑰對(duì)其會(huì)話進(jìn)行密。
[1]彭紅姣,劉尚東,陳夏梅.VolP系統(tǒng)在下一代網(wǎng)絡(luò)中的QoS保障[J/OL].電信科學(xué),2014(8):73-78[2016-01-13].http://dx.chinadoi.cn/10.3969/j.issn.1000-0801.2014.08.011.
[2]梁冬梅.公鑰基礎(chǔ)設(shè)施(PKI)研究[J/OL].計(jì)算機(jī)光盤軟件與應(yīng)用,2012(21):66-67[2016-01-13].http://www.cnki.com.cn/Article/CJFDTotal-GPRJ201221032.htm.
[3]楊勇.基于身份密碼體制的若干安全性問題研究[D/OL].濟(jì)南:山東大學(xué),2011:10-35[2016-03-01].http://dx.chinadoi.cn/10.7666/d.y1939012.
[4]房利國(guó), 李麗, 郭慶,等. 基于CPK密鑰管理系統(tǒng)的應(yīng)用性研究[J/OL]. 信息安全與技術(shù), 2015, 6(10):21-23[2016-03-01]. http://dx.chinadoi.cn/10.3969/j.issn.1674-9456.2015.10.007.
[5]許進(jìn),王娟,邱宏茂,等.基于PKI/CA的數(shù)據(jù)服務(wù)安全系統(tǒng)研究[J/OL].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(8):2995-3000[2016-01-13].http://dx.chinadoi.cn/10.3969/j.issn.1000-7024.2013.08.067.
[6]汪慶龍,賀松,袁森.安全的VoIP通信系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)[J/OL].電聲技術(shù),2015.39(9):62-66[2016-01-13]. http://dx.chinadoi.cn/10.16311/j.audioe.2015.09.12.
[7]張明,許博義,郭艷來.針對(duì)SSL/TLS的典型攻擊[J/OL]. 計(jì)算機(jī)科學(xué),2015,42(z1):408-410[2016-03-01].http://mall.cnki.net/magazine/article/JSJA2015S1100.htm.
[8]陳性元,楊艷,任志宇.網(wǎng)絡(luò)安全通信協(xié)議[M].北京:高等教育出版社,2008:115-138.
[9]SCH.用EJBCA搭建自己的CA系統(tǒng)[EB/OL].[2016-03-01].http://www.iigrowing.cn/yong-ejbca-gou-jian-zi-ji-de-ca-xi-tong.html.
[10] 王媛.基于Asterisk的校園網(wǎng)電話系統(tǒng)研究[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協(xié)議效率優(yōu)化研究及軟件實(shí)現(xiàn)[D/OL].石家莊:石家莊鐵道大學(xué),2014:1-10[2016-02-20].http://cdmd.cnki.com.cn/article/cdmd-10107-1014348368.htm.
[責(zé)任編輯:瑞金]
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
陜西省自然科學(xué)基金資助項(xiàng)目(2014JM8299)
劉繼明(1964-),男,博士,教授,從事下一代網(wǎng)絡(luò)軟交換技術(shù)研究。E-mail:jiming@itibia.com
高麗娟(1988-),女,碩士研究生,研究方向?yàn)樾盘?hào)與信息處理。E-mail:756918259@qq.com
TN915.08
A
2095-6533(2016)04-0014-05