孫曉慧,石秀娟
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
IP多媒體子系統(tǒng)是由第3代合作伙伴計劃(3GPP)首先在R5中提出的支持IP多媒體業(yè)務(wù)的子系統(tǒng)(IMS),后由3GPP2、歐洲電信標準化協(xié)會(ETSI)和國際電信聯(lián)盟(ITU)等組織采用。目前在實現(xiàn)網(wǎng)絡(luò)融合愿望的驅(qū)動下,IMS已經(jīng)由移動通信擴展到固網(wǎng)通信領(lǐng)域,希望籍此建立移動網(wǎng)絡(luò)與固定網(wǎng)絡(luò)統(tǒng)一的控制。IMS的最終目的是建立與接入無關(guān)、能被移動網(wǎng)絡(luò)與固定網(wǎng)絡(luò)共用的融合核心網(wǎng),即能夠為使用各種不同接入手段的用戶提供融合的業(yè)務(wù)。
Diameter協(xié)議是RADIUS協(xié)議的一種演化,它是廣泛應(yīng)用于因特網(wǎng)中完成AAA功能的協(xié)議。Diameter被選為IMS的認證、授權(quán)和計費協(xié)議(AAA)。例如,當一個用戶呼叫IMS業(yè)務(wù)控制接口(ISP)時,網(wǎng)絡(luò)接入服務(wù)器采用Diameter來鑒別和授權(quán)用戶進入網(wǎng)絡(luò)。Diameter包含一個由Diameter應(yīng)用作為補充的底層協(xié)議。Diameter應(yīng)用是定制或擴展Diameter使其成為適用于某一特定環(huán)境的特殊應(yīng)用。IMS的許多接口都使用Diameter,例如,IMS定義了一個Diameter應(yīng)用在會話建立時與SIP聯(lián)系,定義了另一個Diameter應(yīng)用來完成計費控制。
Diameter基礎(chǔ)協(xié)議注重能力協(xié)商、消息發(fā)送以及對等端如何最終被拒絕?;A(chǔ)協(xié)議還規(guī)定了特定規(guī)則用于Diameter節(jié)點之間所有的消息交換,并為各種應(yīng)用提供了一個AAA框架。
一個Diameter節(jié)點具有和多個對等端通信的能力,但通?;诿總€域,一個節(jié)點應(yīng)該與2個對等端建立連接。2個Diameter對等端建立傳輸連接時,必須進行能力交換。能力交換消息包含對等端的標識和能力(協(xié)議版本號、支持的Diameter應(yīng)用和安全機制等),如果能力交換請求消息的接收端與其發(fā)送端沒有任何共同支持的應(yīng)用程序,則必須返回原因值為“無共同應(yīng)用”的應(yīng)答消息,并且終止相互間的傳輸層連接。
Diameter基本協(xié)議運行在TCP和SCTP傳輸協(xié)議的端口3868上。Diameter客戶端必須支持TCP或SCTP,代理和服務(wù)器必須二者都支持。
Diameter能夠為應(yīng)用提供認證和授權(quán)服務(wù)。當一個服務(wù)使用應(yīng)用的認證和授權(quán)服務(wù),且有用戶請求接入網(wǎng)絡(luò),Diameter客戶端會向本地服務(wù)器發(fā)送認證請求。服務(wù)器收到認證請求消息后,根據(jù)網(wǎng)絡(luò)資源及請求消息中攜帶的屬性值對來用戶判斷是否通過認證。
Diameter包含基礎(chǔ)協(xié)議、傳送協(xié)議和不同的應(yīng)用擴展。所有應(yīng)用和服務(wù)公用的基本功能都在基礎(chǔ)協(xié)議中實現(xiàn),而應(yīng)用特定的功能則會在不同的應(yīng)用中實施。Diameter在IMS中的接口關(guān)系如圖1所示。
圖1 Diameter接口關(guān)系
圖1中的Cx接口、Sh接口、Dx接口和Dh接口使用Diameter協(xié)議,Cx接口位于呼叫會話控制功能(CSCF)和歸屬用戶服務(wù)器(HSS)之間,主要完成以下功能:
①為注冊用戶指派S_CSCF;
②CSCF通過HSS查詢路由信息;
③授權(quán)處理,檢查用戶漫游是否許可;
④鑒權(quán)處理,在HSS和CSCF之間傳遞用戶的安全參數(shù);
⑤過濾規(guī)則控制,從HSS下載用戶的過濾參數(shù)到服務(wù)呼叫會話控制功能(S_CSCF)上。
Sh接口位于HSS和應(yīng)用服務(wù)器(AS)之間,用于AS從HSS獲取用戶數(shù)據(jù),以及HSS中用戶數(shù)據(jù)更新時,通知AS。
Dx接口位于CSCF和簽約定位器功能(SLF)之間,用于確定用戶簽約數(shù)據(jù)所在HSS的地址。Dh接口位于AS和SLF之間,用于AS到SLF定位HSS。
Diameter基礎(chǔ)協(xié)議是實現(xiàn)所有接口的基本,Cx接口協(xié)議是IMS架構(gòu)實現(xiàn)用戶注冊、位置管理和用戶數(shù)據(jù)管理的重要接口。下面主要介紹Diameter基礎(chǔ)協(xié)議和Cx接口的設(shè)計和實現(xiàn)過程。
2.1.1 模塊劃分
Diameter基礎(chǔ)協(xié)議和Cx應(yīng)用接口協(xié)議的組成主要包含面向節(jié)點模塊、應(yīng)用程序模塊和維護軟件。完成基礎(chǔ)協(xié)議、Cx接口應(yīng)用協(xié)議、消息轉(zhuǎn)發(fā)和維護功能??蛻舳撕头?wù)器端的組成框圖如圖2所示。
面向節(jié)點模塊實現(xiàn)Diameter基礎(chǔ)協(xié)議,以及轉(zhuǎn)發(fā)消息到相應(yīng)的應(yīng)用程序模塊功能。
應(yīng)用程序模塊執(zhí)行Cx接口的應(yīng)用協(xié)議功能,以及發(fā)送消息到面向節(jié)點模塊。
維護終端完成Cx接口的參數(shù)配置功能,包含私有用戶標識、公有用戶標識、過濾規(guī)則和一些默認處理。
圖2 Diameter軟件組成
2.1.2 流程設(shè)計
(1)Diameter基礎(chǔ)協(xié)議設(shè)計
Diameter基礎(chǔ)協(xié)議的重要部分是能力交換,用于2個Diameter對等端按照規(guī)定的交換能力交換信息,包括支持的 Diameter應(yīng)用和安全機制等,由客戶端和服務(wù)器端的面向節(jié)點完成?;A(chǔ)協(xié)議的流程設(shè)計如圖3所示。
Diameter協(xié)議支持端到端的安全機制,支持TLS,TLS提供2個應(yīng)用程序之間的保密性和數(shù)據(jù)完整性,支持信息摘要算法第5版(MD5算法)。輸入一個任意長度的字節(jié)串,MD5算法生成一個128位的整數(shù),算法具有不可逆特征,在加密應(yīng)用上有較好的安全性。MD5算法首先進行信息擴展和數(shù)據(jù)填充,使信息位長=N×512+448+64=(N+1)×512,即長度恰好是512的整數(shù)倍,其中N為正整數(shù),64表示數(shù)據(jù)填充之前的長度。然后設(shè)置鏈接變量,設(shè)置好鏈接變量以后,進入4輪循環(huán)運算,完成MD5算法全過程。例如:字符“a”經(jīng)過MD5算法加密后,結(jié)果如下:
圖3 基礎(chǔ)協(xié)議流程設(shè)計
md5(“5”)=0cc175b9c0f1bba831c399e269772661
加密后的數(shù)據(jù)到達對端后,再將加密后的數(shù)據(jù)解密。
(2)Cx接口應(yīng)用協(xié)議設(shè)計
Cx接口應(yīng)用協(xié)議包含用戶注冊狀態(tài)查詢、用戶位置信息查詢、多媒體認證和更新用戶信息等功能。實現(xiàn)Cx接口的各條消息和消息的方向如表1所示。
表1 Cx接口消息說明
2.2.1 實現(xiàn)環(huán)境及流程
Diameter協(xié)議軟件實現(xiàn)采用C++語言編寫,用g++進行編譯,運行在Linux實時操作系統(tǒng),實現(xiàn)了Diameter基礎(chǔ)協(xié)議和Cx接口應(yīng)用協(xié)議。其中,基礎(chǔ)協(xié)議主要實現(xiàn)了能力交換功能。Cx接口應(yīng)用協(xié)議主要實現(xiàn)了位置管理和用戶數(shù)據(jù)處理,包括:
①UAR/UAA消息:實現(xiàn)HSS對用戶公有用戶標識注冊、安全檢查;I-CSCF獲得S-CSCF信息;
②SAR/SAA消息:用于在HSS更新S-CSCF名稱,S-CSCF從HSS下載用戶數(shù)據(jù)文件;
③LIR/LIA消息:I-CSCF從HSS獲取S-CSCF名稱和能力;
④MAR/MAA消息:S-CSCF和HSS之間交換信息,以支持終端用戶和歸屬IMS網(wǎng)絡(luò)之間的鑒權(quán)過程。
Diameter協(xié)議軟件分為服務(wù)器和客戶端2個部分,服務(wù)器端將運行在應(yīng)用服務(wù)器上,客戶端軟件運行在所有的被管理設(shè)備上。在圖2所示的模塊結(jié)構(gòu)中,應(yīng)用程序模塊負責具體處理Cx接口應(yīng)用協(xié)議消息,面向節(jié)點模塊負責消息的轉(zhuǎn)發(fā)。以用戶認證請求為例,消息在各模塊間的流程如圖4所示。
圖4 UAR消息實現(xiàn)流程
2.2.2 試驗結(jié)果分析
Diameter協(xié)議的實現(xiàn)在工程應(yīng)用中得到了驗證,試驗結(jié)構(gòu)圖如圖5所示。2個SIP終端、Diameter客戶端、Diameter服務(wù)器和應(yīng)用服務(wù)器通過集線器(Hub)相連,由終端發(fā)起注冊、SIP會話和應(yīng)用服務(wù)器發(fā)起的去注冊過程對Diameter的能力協(xié)商和Cx接口應(yīng)用協(xié)議進行了試驗,能夠完成對終端的認證和授權(quán)過程,試驗結(jié)果符合Diameter協(xié)議標準。
圖5 Diameter試驗結(jié)構(gòu)
Diameter協(xié)議應(yīng)用于IMS中,實現(xiàn)認證、授權(quán)和計費功能,已經(jīng)在實際工程中得到應(yīng)用。Diameter良好的開放性和擴展性決定了它在通信網(wǎng)絡(luò)環(huán)境能夠更好地支持各種應(yīng)用,更加符合下一代網(wǎng)絡(luò)技術(shù)中AAA業(yè)務(wù)的需求。Diameter協(xié)議在通信架構(gòu)中將得到越來越多的應(yīng)用。
[1]3GPP TS 29.229 V7.6.0.Diameter協(xié)議Cx和Dx接口[S].
[2]3GPP TS 29.228 V7.6.0.IP多媒體子系統(tǒng)Cx和Dx接口信令流和消息內(nèi)容[S].
[3]IETF RFC 3588:2003.用于IP網(wǎng)絡(luò)的Diameter基礎(chǔ)協(xié)議技術(shù)要求[S].