何文才 趙菲 韓妍妍 孫錦慧 董昊聰
1 北京電子科技學院 北京 100070
2 西安電子科技大學通信工程學院 陜西 710071
SIP(Session Initiation Protocol,SIP)會話初始化協(xié)議是軟交換系統(tǒng)中的重要協(xié)議。由于軟交換中多媒體業(yè)務的會話應用需求,SIP協(xié)議制定的主要目的是如何動態(tài)、便捷地為會話參與者提供強大的、新型的服務功能,但是對于其安全性方面關注較少。SIP中關于身份認證的安全機制有以下幾種:HTTP摘要認證機制、S/MIME加密認證機制、PGP認證機制等。
(2, 2)秘密共享的思想是將秘密信息以適當?shù)姆绞讲鸱殖蓛蓚€分享。從單個的分享中,攻擊者無法獲得秘密信息的任何信息,只有同時擁有兩個分享才能恢復出秘密信息。
文中需要分享的秘密信息是會話參與者的身份 ID,ID為一個32bit的字符串標識。
具體設計原理如下。
ID用一個4×8的數(shù)組表示。針對數(shù)組中的每bit元素,隨機選擇3種分享方案擴展成2×2的數(shù)組,隨后將每bit生成的數(shù)組1和2分別串聯(lián)成8×16的數(shù)組,即分享1和分享2。這樣生成的分享就擁有了足夠的隨機性,無法通過單個分享恢復秘密信息。
解密過程是將分享1和2中的數(shù)組元素做或運算。當或運算后生成的2×2數(shù)組的元素均為1時,解密為1,否則為0。
隨機生成的分享可以有效的保密 ID的信息,當分享少于兩個時,無法根據(jù)單獨的分享解密出ID。
即使攻擊者知道加密和解密的方案,由于分享方案的隨機選擇,只要攻擊者沒有獲得生成的兩個分享,也無法解密出秘密信息。
本文設計的身份認證系統(tǒng)中對身份信息的確認是依靠KDC發(fā)送給用戶的證書來認證的。此證書就是用用戶的公鑰加密的分享。
根據(jù)對傳統(tǒng)的SIP身份認證方式的分析,本文通過擴展SIP的相關認證算法,結合秘密共享的加密方式,借鑒HTTP的認證思想,設計了一種新的SIP身份認證措施。該措施不僅實現(xiàn)了通信雙方的身份認證,也使得秘密信息可以保密傳遞,并且做到一次一密。
身份認證,對于一個通信網(wǎng)絡中的每個SIP實體都很必要。SIP采用類似HTTP的協(xié)議風格,實體間的通信方式都是用 Client/Sever的共組模式。因此,本文所述改進的安全認證方案也可用于所有SIP實體間的安全通信。如UAC與Proxy Server之間,Proxy Server與UAS之間,Proxy Server與Redirect Server之間等等。
在本方案中,身份認證所選取的加密算法是(2,2)秘密共享加密方案。系統(tǒng)在初始化階段需要一個密鑰分發(fā)中心KDC(Key Distribution Center,KDC)為通信用戶分發(fā)分享,每一個合法設備,在發(fā)起會話時,會主動向 KDC申請一組身份信息的分享。KDC將這組分享以證書的形式分發(fā)給需要會話的雙方,并產(chǎn)生會話密鑰分發(fā)給會話雙方。
具體流程如圖1:
圖1 KDC、C和S交互過程
(1) C在會話發(fā)起之初,告知KDC要與S通話。
IDC,IDS表示C和S的身份信息。
C——KDC:IDC||IDS
(2) KDC根據(jù)時間戳 TK和(2,2)秘密共享加密方案隨機生成IDC和IDS的分享IDC1、IDC2、IDS1和IDS2。
EKC和 EKS分別表示消息使用C和S的公鑰加密,可用私鑰解密。加密算法為RSA加密算法。
KDC——C:EKC[IDS2||K||EKS[IDC1||TK]]
KDC——S: EKS[IDC2||K||EKC[IDS1||TK]]
(3) C收到EKC[IDS2||K||EKS[IDC1||TK]]后,用自己的私鑰解密后得到用于驗證S身份的分享IDS2,會話密鑰K,以及KDC分發(fā)給C用于S驗證其身份的證書EKS[IDC1||TK],并將其發(fā)送給S。
C——S:EKS[IDC1||TK]
(4) S收到KDC發(fā)給其的EKS[IDC2||K||EKC[IDS1||TK]],用自己的私鑰解密后得到用于驗證S身份的分享IDC2,會話密鑰K,以及KDC分發(fā)給S用于C驗證其身份的證書EKC[IDS1||TK]。
S收到EKS[IDC1||TK]后,用自己的私鑰解密出IDC1,用(2,2)秘密共享解密算法計算IDC1⊕IDC2是否等于IDC,如果一致,且TK還未過期,則驗證C的身份。之后S發(fā)送認證通過的信息給 C。并且用會話密鑰 K加密自己的身份證書EKC[IDS1||TK]給 C。
EK表示消息使用對稱加密算法DES加密,密鑰為K。
S——C:EK[EKC[IDS1||TK]]
(5) C收到EK[EKC[IDS1||TK]],用K和私鑰解密出IDS1,用(2,2)秘密共享解密算法計算IDS1⊕IDS2是否等于IDS,如果一致,且 TK還未過期,則驗證 S的身份。此步驟中,C也可以確認S收到了會話密鑰K,之后C發(fā)送EK[TK-1]確認會話密鑰可以使用,雙方開始通話。
C——S:EK[TK-1]
以上過程從雙方信息交互的角度來說明認證、密鑰分發(fā)和密鑰確認的流程。下面,從SIP消息體的角度說明這個過程。
圖2 雙向身份認證通信過程
C與S的SIP交互過程如圖2。
(1) 首先 Client向 Sever 發(fā)起請求。由Client呼叫方發(fā)起一次INVITE請求。該請求以純SIP消息模式發(fā)出。該消息可以是USC發(fā)給代理服務器,或代理服務器轉(zhuǎn)發(fā)給目的服務器,或USC或代理服務器發(fā)給注冊服務器的都有可能。該消息攜帶身份證書CNONCE=EKS[IDC1||TK]。
(2) Sever收到請求后,基于挑戰(zhàn)和響應的認證方式,Sever會發(fā)送一個錯誤的響應消息挑戰(zhàn)請求。S發(fā)送407/401錯誤信號。其中攜帶 CNONCE的相關認證信息,以及自己的身份證書NONCE= EK[EKC[IDS1||TK]]。
(3) C收到挑戰(zhàn)信息后,再次發(fā)送INVITE請求,說明收到挑戰(zhàn)。其中攜帶NONCE的相關認證信息。
(4) S收到NONCE的相關認證信息EK[TK-1]后,確認可以通話。發(fā)送180、200信息。
(5) 之后C發(fā)送ACK消息,開始會話。
由上述認證過程可以看出,第一、二步中通過將 RSA、DES和(2,2)秘密共享加密算法結合實現(xiàn)了雙向認證。
SIP原本的認證機制中,僅實現(xiàn)了服務器對用戶的單向身份認證,本方案中,加入了客戶端對服務器的身份認證,可以有效防止服務器偽裝攻擊。
在實際系統(tǒng)中,如果攻擊者攔截到上述認證中(4)C發(fā)給S的身份認證信息EKS[IDC1||TK],攻擊者可以冒充C將其發(fā)送給S。此時攻擊者可以通過S的身份認證,但當S返回給其S的身份信息和確認密鑰是否可用的信息時,攻擊者因無法得知會話密鑰K,所以無法正常通話。
如果攻擊者截獲認證中(2)KDC發(fā)給 C的信息EKC[IDS2||K||EKS[IDC1||TK]]。并破解了RSA算法,此時攻擊者就既有了C的身份證書和會話密鑰,可以完全偽裝成C。但是由于時間戳TK的存在,如果攻擊者沒有在時間戳TK的時間內(nèi)完成破譯,那也不能成功攻擊。所以本方案在抵御身份偽裝攻擊上,安全性較高。
本方案中 KDC每次根據(jù)時間戳隨機生成用戶的身份證書,每次用于身份認證的證書都帶有隨機性,只有合法用戶才能獲得證書。如果有攻擊者截獲證書,必須要破解RSA才能使用證書,安全性比較高。身份認證的算法簡單,認證速率高。
本文主要從通信量、計算量和存儲量三個方面來分析認證協(xié)議的性能。
(1) 通信量
本文所設計的認證協(xié)議將身份認證方案和密鑰確認方案在一個通信過程中完成,通信雙方通過3次交互便可完成通信雙方身份認證和共享會話密鑰,并且還能確認會話密鑰是否可用。而傳統(tǒng)的基于證書的PKI體制,僅僅完成通信雙方的身份認證就至少3次交互;此方案很大程度上減少了通信量。
(2) 計算量
本文所設計的身份認證算法,只用到了或運算,在數(shù)學算法支持上要求較低,計算量小。
但是由于使用了RSA和DES加密,所以在消息解密方面需要一定的開銷。
(3) 存儲量
本文所設計的認證協(xié)議與傳統(tǒng)的基于證書的PKI體制相比,KDC不需要存儲證書,每個用戶只需在本次通信中存儲自己的身份證書(分享),很大程度上減少了存儲量,也便于系統(tǒng)增加新用戶擴容。
本文方案實現(xiàn)了通信雙方的雙向身份認證,身份認證的基礎在于秘密共享加密方案。會話密鑰使用公鑰加密,保證了會話密鑰的安全性。
實際上本系統(tǒng)的身份認證過程有兩次,一次是基于公鑰體制的KDC對C、S的身份認證,因為只有用戶用私鑰才能解密和使用身份證書。另一次就是秘密共享加密方案的身份認證。
此系統(tǒng)不能抵御DoS攻擊,攻擊者可以發(fā)送大量無意義的SIP消息,來浪費資源。所以,如需抵御DoS攻擊,還需建立SIP的防火墻機制。
其次,此方案的安全性也嚴格依賴于RSA和DES的安全性。
[1] M.Girault. Self-certified public keys. Advances in Cryptology-EUROCRYPT’91.LNCS547,Berlin:Springer-Verlag.1991.
[2] 王偉志.IP視頻電話的安全策略研究與實現(xiàn).西安:西安電子科技大學.2011.
[3] Law L,Menezes A,Qu M,etal.An efficient Protocol for AuthenticatedKeyAgreement.Designs,Codes and Cryptography. 2003.