蔣 華,潘文吉,胡榮磊
(1.西安電子科技大學,陜西 西安 710100;2.北京電子科技學院,北京 100070)
基于環簽名的SIP認證方案設計
蔣 華1,2,潘文吉1,胡榮磊2
(1.西安電子科技大學,陜西 西安 710100;2.北京電子科技學院,北京 100070)
針對在使用公共網絡資源情況下,中小型企業采用SIP構建的Presence/IM業務存在的注冊劫持和注冊刪除的隱患,提出了一種基于RSA和DES結合的環簽名安全匿名認證方案。方案首先構建一個可信域,公開域內的所有用戶的公鑰,然后在SIP的注冊和注銷過程中添加環簽名認證,在整個過程中,不需要第三方參與驗證,用戶對于服務器是匿名的,服務器只能判斷請求是否來自可信用戶群,而無法從簽名中獲得用戶身份。相比于其他常用的安全認證,環簽名除了能夠有效認證簽名的合法性,無條件的匿名性也可以保護用戶信息,在云計算等公共網絡環境中減少用戶信息的泄露,同時具有部署效率高,證明過程便捷的優勢。最后通過運算證明方案的正確性,構建安全模型說明了方案的安全性和可行性,并采用OpenSSL驗證方案的效率。
會話初始協議;身份認證;環簽名;RSA;DES
SIP(Session Initiation Protocol,會話初始協議)是由IETF提出作為IP通信的語音協議,是目前VOIP領域應用最多的協議。2011年公安部科技信息化局制定了標準GB/T 28181-2001,提出了視頻監控聯網安全的技術要求,其中就采用了SIP協議為準則,之后的許多視頻監控方案[1]也都采用了SIP作為會話協議。
然而SIP的完整性、可用性和機密性都存在問題[2]。由于是基于文本傳輸的協議,SIP的認證繼承了HTTP摘要認證,是一種挑戰-響應的認證協議,而這種方式有兩種致命的隱患:一個是SIP文件的頭信息和參數缺乏保護;二是需要在服務器上預先存儲用戶的配置要求。
有研究者提出了一個SIP域信任的認證機制[3],但其解決方案主要針對于入侵檢測。文中采用了環簽名方式進行信任域構建,然后使用域內成員公鑰和自己的私鑰進行安全匿名驗證,給出了詳細的認證過程,并證明了方案的正確性、安全性和可行性。
SIP的注冊認證是HTTP Digest的身份認證[4],具體流程如下:
(1)用戶首次試呼時,終端代理向代理服務器發送REGISTER注冊請求;
(2)代理服務器通過后端認證/計費中心獲知用戶信息不在數據庫中,便向終端代理回送401Unauthorized質詢信息,其中包含安全認證需要的realm和nonce;
(3)終端代理提示用戶輸入其標識和密碼后,根據username,realm,nonce,uri將其使用MD5加密后,再次用REGISTER消息報告給代理服務器;
(4)代理服務器獲取REGISTER消息中的用戶信息,通過認證/計費中心驗證response合法后,將該用戶信息登記到數據庫中,并向終端代理A返回成功響應消息200 OK。
而注銷過程分為兩步:
(1)用戶A向代理服務器發送REGISTER,其頭域的expire字段置0,表示取消注冊,Contact值為*表示這個請求應用與所有有關該用戶的聯系信息;
(2)代理服務器收到后回送200 OK響應,并將數據庫中的用戶信息注銷。
從上面的認證過程可以看出,摘要認證簡便而且無法通過欺騙獲取密鑰,但仍然存在安全問題[5]:
(1)服務器偽裝。SIP認證是預共享密鑰的挑戰-響應認證,只有服務器對用戶進行認證,而用戶無法對服務器進行認證,這樣如果用于被重定向到一個假冒的服務器,原有的認證無法識別服務器的真偽;
(2)注冊刪除。在一個沒有安全認證的UDP環境下,只要攻擊者接入了系統的網絡,注冊刪除是一件很簡單的事,所以一個部署在公網上的SIP系統很容易被干擾;
(3)注冊劫持。攻擊者通過離線字典攻擊獲得口令實現劫持,或者通過注冊刪除再進行中間人攻擊實現。
2.1 環簽名概述
環簽名是由Rivest,Shamir和Tauman提出的一種無管理者的群簽名方案[6]。一個環簽名方案允許每個組成員的簽名消息代表該群體而且不會泄露他們的身份,這被稱為簽名人匿名,與群簽名需要用戶之間在線合作才能完成相比,環簽名只要環的成員存在合作即是有用的。而對于傳統的PKI,公共密鑰構造為與用戶身份無關的隨機比特串,因此需要一個可信的第三方或者認證機構(CA)來證明用戶和加密密鑰之間的關系,而在環簽名方案中,身份和公鑰都能在環中得到驗證[7]。
環簽名的主要優點在于靈活性和高效性,每個簽名者可以獨立完成簽名并自己選擇匿名范圍,一些方案中離線情況下就可生成獲得簽名所需要的參數[8],在線通過較小的計算就能夠完成簽名,沒有管理者,所有成員地位平等,這些特點對于應用到SIP來說都是非常有實用價值的。
2.2 環簽名方案
SIP系統模型如圖1所示。

圖1 SIP系統框架
根據環簽名的性質,構建兩種驗證思路:
(1)A1,A2,A3之間構建內部通信認證,即使用環簽名來代替VPN部署虛擬專用網絡通話;
(2)環A與環B之間進行會話認證,構建各環之間的信任通信。
考慮到技術的成熟性和實用性,這里參考RST簽名方案[9],并根據SIP協議的特性加強原有算法的安全性,提出以下簽名認證方案:
參數設置:設l1,l2,l3表示三個安全參數,E是一個在{0,1}l1上的對稱加密函數,解密函數為D,密鑰長度為l2。令H:{0,1}χ→{0,1}l2為一個安全Hash函數,設用戶Ai的RSA公鑰為ei,私鑰為di,滿足di=ei-1modφ(ni),為滿足RSA大素數的乘積,每個用戶可計算RSA函數,其中ti∈{0,1}l3,用戶Ak認證的具體過程如下:
1)用戶Ak生成身份消息m,然后REGISTER消息上發送給服務器;
2)服務器接收消息后獲知用戶Ak還未在數據庫中注冊,便向用戶回送401Unauthorized(代理服務器為407)詢問信息,并保存消息m,然后按照標準將realm,nonce發送給用戶;
3)用戶Ak收到未經授權信息401后,將nonce,realm,用戶信息m,口令以及uri進行MD5運算,得到response,再進行如下計算:
(1)用戶在{0,1}l3上獲得隨機數x1,…,xk-1,xk+1,…,xr;
(2)計算yi=fi(xi);
(3)計算H(m)為對稱加密密鑰,根據下式計算出yk;
response=EH(m)(yr⊕EH(m)(yr-1⊕EH(m)(…⊕EH(m)(y1⊕v)…)))
(4)用戶根據自己密鑰dk計算出xk=ykdkmodnk;
(5)生成消息m的環簽名(x1,x2,…,xr),將(x1,x2,…,xr)添加到消息中,發送給服務器。
4)服務器收到消息后,計算得到response,然后由yi=fi(xi)得到(y1,y2,…,yr),然后計算環方程response'=EH(m)(yr⊕EH(m)(yr-1⊕EH(m)(…⊕EH(m)(y1⊕v)…))),并驗證response'=response的正確性,若合法,將用戶信息(m,response)記錄到數據庫中,并向用戶返回響應消息200OK。
改進后SIP注冊認證流程如圖2所示。

圖2 改進后SIP注冊認證流程
注銷過程如圖3所示。具體如下:
(2)服務器收到后,根據存儲的用戶信息驗證環簽名,通過后返回200OK消息,注銷數據庫中的用戶信息。

圖3 用戶注銷流程
3.1 方案正確性
方案的正確性在于yk和v'的計算,根據上述式子有:
v=EH(m)(yr⊕EH(m)(yr-1⊕EH(m)(…⊕EH(m)(y1⊕v)…)))?yk=DH(m)(yk+1⊕DH(m)(…DH(m)(yn⊕DH(m)(v))))⊕EH(m)(yk-1⊕EH(m)(…⊕EH(m)(y1⊕v)))
從而:
v'=EH(m)(yr⊕EH(m)(yr-1⊕EH(m)(…yk⊕EH(m)(…EH(m)(y1⊕v)…))))?v'=EH(m)(yr⊕EH(m)(yr-1⊕EH(m)(…DH(m)(yk+1⊕DH(m)(…DH(m)(yr⊕DH(m)(v))))⊕EH(m)(yk-1⊕EH(m)(…⊕EH(m)(y1⊕v)))⊕EH(m)(…EH(m)(y1⊕v)…))))=EH(m)(yr⊕EH(m)(yr-1⊕EH(m)(…EH(m)(DH(m)(yk+1⊕DH(m)(…DH(m)(yr⊕DH(m)(v))))))))=EH(m)(yr⊕yr⊕DH(m)(v))=v
3.2 簽名的盲性
如果能證明簽名者與服務器在交互執行協議后所得到的簽名概率分布與任何可能消息進行簽名所得到的概率分布是不可區分的[10],那么該方案滿足盲性。
證明:在方案中,v是在{0,1}l3隨機生成的,其分布是隨機均勻的,與消息m相獨立;對于簽名(x1,x2,…,xr),xk取決于v和x1,…,xk-1,xk+1,…,xr,而v和x1,…,xk-1,xk+1,…,xr都是隨機選取的,與m無關,所以方案最后得到的環簽名(x1,x2,…,xr)與消息m是相互獨立的,不同消息對應的環簽名的概率分布是不可區分的。
3.3 不可偽造性
假設攻擊者B能夠適應性選擇v和m獲得A的簽名,同時獲得了除私鑰外的系統參數(H,e1,e2,…,er,n1,n2,…,nr)。當B獲得多項式次數的簽名時,首先可以進行對RSA的攻擊獲取密鑰,一般有共模攻擊、小解密指數攻擊和利用RSA的同態性攻擊[11]。

(2)小解密指數攻擊。假若N=pq且q
(3)利用RSA的同態性攻擊,需要用戶使用私鑰對攻擊者提供的值進行加密,在本方案模型中攻擊者B只能選擇不同的v和m,無法控制RSA加密的具體內容,所以這種攻擊也是無效的。
所以該方案一定程度上優化了RSA的安全性,另外,攻擊者B還可以根據已有的簽名進行冒充,而每個不同的v和m,可以產生(2l3)r-1種簽名,這個偽造的概率可以忽略。
3.4 效率分析
環簽名主要集中在基于強RSA生成的方案以及基于雙線性配對的方案[8],由于基于雙線性的方案較多,而且復雜度類似,這里選用文獻[6]中的方案在相同條件下進行比較。為了方便,使用E表示一次配對運算;R表示一次RSA加/解密運算;H表示哈希運算;P表示配對密碼中循環群的運算;D表示DES(或其他對稱密碼)運算;n為環成員數量,兩種運算的對比見表1。

表1 效率分析
在表1中,雙線性方案主要是把簽名的一部分工作量放到了準備階段,而RSA方案是簽名與驗證階段計算量相等,整體來說計算次數都需要4n次。在實際應用中,配對運算和循環群運算較為復雜,而RSA和DES則比較成熟,算法優化也有較大優勢,兩種方案現在都是需要選擇適量的環成員,在文獻[12]中也有類似的對比說明。
對于SIP協議來說,并沒有增加額外的信令流程,保持了原有的交互流程,主要的額外開銷是網絡傳輸中需要傳輸環簽名,當環成員數量較多時,可能造成阻塞[13]。
實驗配置:采用虛擬機模擬,內存為512M,單核處理器3.4GHz,密碼算法為OpenSSL庫提供,系統為ubuntu10.04(內核2.632)。
實驗測試RSA和DES的計算[14],RSA采用1 024字節大小,即8 192bit。圖4是整個程序流程,具體實驗結果如圖5所示。

圖4 實驗程序流程
可以看到,算法消耗的時間基本不會影響SIP原有的效率,然而產生的簽名大小為nkB,n為環成員大小。SIP采用的是UDP傳輸,ip數據包最大為64kB,所以環成員大小控制在50以下,有利于傳輸的效率和丟包率。

圖5 環簽名運算時間
環簽名從提出以來就引起了許多研究者的重視,也有很多簽名方案被提出,而對于環簽名的應用還比較模糊。文中提出應用環簽名認證來構建安全域內通信,并利用環簽名的無條件匿名保護用戶信息,以此可使得中小型企業通過SIP在公共網絡資源上來構建自己的呼叫中心以及安全監控系統,今后還可以將這種方案擴展到跨域認證和多方安全會話認證中。
[1] 徐鵬宇,許子燦. 基于SIP協議的監視系統設計與實現[J].計算機工程,2013,39(11):289-294.
[2] 俞志春,方濱興,張兆心.SIP協議的安全性研究[J].計算機應用,2006,26(9):2124-2126.
[3] 馬 驥,周曉光,辛 陽,等.基于信任域的SIP認證機制[J].計算機工程,2009,35(12):131-133.
[4]WuLiufei,ZhangYuqing,WangFengjiao.AnewprovablysecureauthenticationandkeyagreementprotocolforSIPusingECC[J].ComputerStandards&Interfaces,2009,31(2):286-291.
[5]EndlerD,CollierM.HackingExposedTMVOIP:voiceoverIPsecuritysecretsandsolutions[M].[s.l.]:Osborne/McGraw-Hill,2007.
[6]RivestRL,ShamirA,TaumanY.Howtoleakasecret[C]//ProcofASIACRYPT.Berlin:Springer-Verlag,2001:552-565.
[7] 胡程瑜.環簽名體制的研究[D].濟南:山東大學,2008.
[8]LiuJK,AuMH,SusiloW,etal.Online/offlineringsignaturescheme[C]//ProcofICICS.Berlin:Springer-Verlag,2009.
[9] 劉 彪.環簽名算法研究與應用[D].西安:西安電子科技大學,2012.
[10] 孫 華,王愛民,鄭雪峰.一個可證明安全的無證書盲環簽名方案[J].計算機應用研究,2013,30(8):2510-2514.
[11] 楊曉元.現代密碼學[M].西安:西安電子科技大學出版社,2009.
[12] 楊紹禹,王世卿,郭曉峰.一種基于環簽名的跨域云服務資源遠程證明方法[J].小型微型計算機系統,2014,35(2):324-328.
[13] 陶怡棟.基于無線網絡的IP電話終端的設計與實現[D].蘭州:蘭州交通大學,2012.
[14] 王志海,童新海,沈寒輝.OpenSSL與網絡信息安全:基礎、結構和指令[M].北京:清華大學出版社,2007.
Design of SIP Authentication Scheme Based on Ring Signature
JIANG Hua1,2,PAN Wen-ji1,HU Rong-lei2
(1.Xidian University,Xi’an 710100,China;2.Beijing Electronic Science and Technology Institute,Beijing 100070,China)
Under the public network,the Presence/IM established by small and middle sized enterprises with SIP exists the risks of registration hijacking and registration deleting.Aiming at this hidden danger,a security authentication scheme using ring signature based on a combination of RSA and DES is proposed.First,it builds a trusted domain and public the public key to the users in the domain.Then the scheme adds the ring signature to SIP registration and deregistration process,without the third party.For the server,users are anonymous and just knew in the domain.Compared with other security authentication,the ring signature not only ensures the legality of users,but also provides anonymity to protect user information,which will be reduced in the cloud and other public network.At the same time,it has efficient deployment and convenient proof.Last,it proves the correctness by computing in this paper,also shows the safety and feasibility by building security model.In addition,the efficiency of the scheme is verified by using OpenSSL.
SIP;authentication;ring signature;RSA;DES
2015-06-14
2015-09-17
時間:2016-02-18
中央辦公廳基本科研業務費(2015XS1-HRL)
蔣 華(1962-),男,教授,碩士生導師,研究方向為VoIP網絡安全、寬帶通信;潘文吉(1990-),男,碩士研究生,研究方向為專業密碼學。
http://www.cnki.net/kcms/detail/61.1450.TP.20160218.1634.052.html
TP302.1
A
1673-629X(2016)03-0140-04
10.3969/j.issn.1673-629X.2016.03.033