韓慶綿
西安電子科技大學通信工程學院 陜西 710071
IMS被認為是下一代網絡的核心技術,也是解決移動與固網融合,引入語音、數據、視頻三重播放等差異化業務的重要方式,IMS網絡的承載層是IP網絡,IMS網絡結構本身的特點將服務運營網絡易于受攻擊的弱點暴露出來,這是以前在電信市場上所沒有看到的。作為相對獨立的安全體系,IMS要求所有的用戶在使用IMS服務之前都必須進行鑒權,協商建立安全的接入通道。IMS終端需要包括IMS網絡鑒權中包含的參數(如身份識別、用戶授權和終端設置數據等),并存儲共享密鑰和相應的AKA算法。本文通過對IMS網絡側認證機制的研究與實現,為客戶端更好地接入IMS網絡提供了基礎。
3GPP定義了IMS 接入網絡的安全機制,在IMS 的安全體系中,從終端到網絡的各個實體都涉及到了接入網和核心網部分的安全概念。其安全結構如圖1所示。

圖1 IMS安全體系架構
圖1中的安全聯盟①和安全聯盟②屬于IMS網絡接入安全機制,該安全機制承擔著兩大任務:
(1)對接入用戶進行認證和授權;該認證采用的是AKA機制。
(2)對用戶進行認證和授權之后,在UE和P-CSCF之間建立IPSec安全聯盟,即IPSec SA,從而為后續通信提供安全保護。
IMS的鑒權機制采用3GPP AKA機制的原理和核心算法,因此被稱為IMS AKA,該機制是基于SIP協議來實現的。通過IMS AKA方式的注冊過程,可以實現用戶和網絡間的雙向認證。AKA參數核心算法由3GPP TS35.206提供。
在用戶的歸屬網絡中,HSS上存儲了每個用戶的客戶描述信息,該信息包含了描述該客戶的所有相關簽約信息,并且這些信息對外保密。在注冊過程中,I-CSCF將給用戶分配一個S-CSCF,此時客戶簽約信息將從HSS下載到S-CSCF上。當一個客戶請求接入IMS網絡時,S-CSCF將對客戶簽約信息和客戶接入請求進行匹配性檢查,以確定是否允許客戶繼續請求接入。
IMS AKA在用戶終端與歸屬網絡之間進行認證,認證時使用用戶的私有身份IMPI。HSS和用戶終端的ISIM共享一個與IMPI相關的長期密鑰。歸屬網絡通過使用IMS AKA系統來認證一個IMS用戶,一個IMS用戶通過UMTS (Universal Mobile Telecommunication System)接入,其中安全參數由SIP協議傳輸。
在IMS認證過程中,AuC生成RAND和AUTN,UE對AUTN進行驗證,從而對網絡進行驗證。UE也為每一輪認證過程維護一個序列號。如果UE檢測到超出了序列號碼范圍之外的認證請求,那么它就放棄認證并向網絡返回一個同步失敗消息,其中包含了正確的序列號碼。為了響應網絡的認證請求,UE將產生一個RES。網絡對RES進行驗證以認證用戶。這樣,UE和網絡可以完成相互認證。
用戶終端的認證過程如圖2所示。

圖2 IMS AKA用戶的注冊流程
在 IMS網絡側實現認證主要是驗證和鑒別 Register請求,并產生合適的響應碼。獲取并綁定AOR,提供配置控制,并向應用提供定制化的服務。由于 3GPP AKA被映射到HTTP摘要機制,因此認證方案的值被設置為“Digest”,而“response”和“nonce”域的值在初始注冊請求消息中都設置為空。下面以S-CSCF和HSS為例說明IMS網絡AKA認證流程的實現過程。當S-CSCF服務器通過SIP協議棧收到帶有要求認證信息的消息頭,把帶有認證信息的SIP消息傳送到應用層,應用層首先提取SIP消息頭中Authorization頭字段的認證信息。初始的Register消息的主要頭域和參數如圖3所示。

圖3 REGISTER消息
然后S-CSCF與HSS聯系,有兩個目的:一方面,S-CSCF需要下載認證數據來完成對特定用戶的認證;另一方面,S-CSCF需要在HSS中保存S-CSCF URI,所以同一用戶對HSS的任何進一步查詢將返回指向該S-CSCF的路由信息。為達到該目的,S-CSCF建立一個Diameter多媒體注冊請求消息,HSS在用戶數據中存儲S-CSCF URI并用一個Diameter多媒體應答消息來回答。S-CSCF用HSS提供的數據來認證用戶。這些認證數據就是所熟知的認證向量。HSS在Diameter MAA消息中包括一個或更多的認證向量,以便S-CSCF能夠正確地認證用戶。S-CSCF通過 401(未授權)響應返回WWW-Authenticate消息頭,頭字段中包括一個要求IMS終端回復的質詢。401應答的主要頭域和字段如圖4所示。

圖4 401 響應消息
nonce中包含了BAND(一個隨機挑戰)和AUTN(網絡認證令牌),nonce的值是將128位的RAND,128位的AUTN和可選的服務器數據串連,進行Base64編碼后得到的值。在收到401響應后,P-CSCF必須從WWW-Authenticate消息頭中去除完整性密鑰(CK)和加密性密鑰(IK),然后再將響應發往UE。 CK和IK用于其后的保密通信,因為CK和IK并沒有在空中接口中傳輸,確保了密鑰的安全性。
當IMS終端收到SIP 401(未經授權)響應時,它就知道其中包括一個質詢并對該質詢做出一個適當的響應。UE在第二個REGISTER請求中加上Authorization消息頭。該消息頭包括用戶名字段,該字段中包括用戶的私有標識和一個與WWW-Authenticate消息頭中同名字段的nonce值,根據這個值解析出RAND和AUTN,根據AKA的方式驗證網絡是否安全可靠,并計算RES,在這次發送的注冊消息中,對RES做適當運算后作為 Authorization頭字段中的 response value值進行認證。

圖5 重新發送的REGISTER消息
S-CSCF依靠在Diameter MAA消息中提供的認證向量驗證這些資格證明,如果認證成功,接下來通知HSS用戶現在已注冊并下載用戶檔案,S-CSCF向HSS發送一個Diameter SAR消息。用戶檔案是信息中包含的重要部分,還包括初始過濾準則,由觸發器收集來決定何時向將要提供業務的應用服務器傳遞SIP請求。S-CSCF向終端發送200 OK消息,并把注冊結果保存起來。
Aricent B2BUA服務器架構是Aricent公司開發的基于標準的SIP協議棧,符合OSA(開放業務架構)標準的并向應用提供標準OSA接口的軟件。Aricent公司定義了擴展的SIP消息訪問API接口,使用這些API,應用能夠訪問和操作輸入和輸出的SIP消息。B2BUA的UA特性使其能夠像一個SIP UA,并能夠提供UA的所有能力,如媒體建立,發送請求和響應并處理媒體的改變。也能夠在 UA模式和 B2BUA模式間轉換。B2BUA提供對非會話類消息的處理,使應用層能夠處理這些消息并能通過Aricent公司特有的API發送非會話類消息和其響應消息。

圖6 基于B2BUA軟件開發的S-CSCF認證流程
在筆者參與開發的IMS業務控制系統中,對AKA認證的實現首先將B2BUA模塊、Cx接口軟件、Diameter協議棧集成,并通過B2BUA模塊向上層應用提供的回調函數來處理從用戶來的注冊消息,通過解析對 SIP消息頭中攜帶Authorization 參數的頭域,實現其認證信息的獲取。并通過調用與Cx的接口來實現與HSS的通信,實現認證向量與用戶檔案的獲取。在B2BUA基礎上開發的S-CSCF認證的過程如圖6所示。
開發完IMS相關的網絡設備后,按照圖7所示進行了試驗驗證,將X-Lite軟終端、CSCF服務器、業務網關、HSS、SIP服務器和CORBA模擬器連接到交換機。當IMS終端用戶注冊到開發的IMS網絡時,用網絡抓包軟件EtherPeek抓取數據,表明一次成功的用戶注冊與前面設計的流程相一致。

圖7 聯試試驗簡圖
基于IMS的網絡融合方案是未來電信網絡的發展方向,基于IMS網絡融合固網、移動網和互聯網后,不僅原有各網絡的安全問題會繼續存在,而且還會帶來許多新的安全問題,如何保證固網、移動網和互聯網用戶接入IMS網絡的安全性是未來IMS網絡安全研究的重點工作。本文實現的IMS網絡側的安全認證過程,可以使得用戶接入網絡的安全性越來越高。通過系統的聯試試驗,具有很高的實用性。
[1]3GPP TS22.228.Service requirements for the Internet Protocol(IP)multimedia core network subsystem(IMS)[S].2008.
[2]糜正琨.基于 IMS的固定和移動網絡融合[J].中興通信技術.2008.
[3]3GPP TS33.203.3G security;access security for IP-based services[S].2009.
[4]RFC3310.Hypertext transfer protocol(HTTP)digest authentication using authentication and key agreement(AKA)[S].2002.