文獻標識碼: A
文章編號: 0258-7998(2011)04-0145-04
3GPP在R5版本中提出了IP多媒體子系統(tǒng)IMS(IP Multimedia Subsystem)的概念。IMS作為一個實際運營的網絡,充分考慮了身份認證,安全計費等能力,為基于全IP網絡多媒體應用提供了一個通用的業(yè)務職能平臺,也為網絡發(fā)展過程中的網絡融合提供了技術基礎,是未來網絡的發(fā)展方向之一。在IMS中,歸屬用戶服務器HSS(Home Subscriber Server)作為用戶簽約業(yè)務數(shù)據(jù)庫,存儲著用戶的安全數(shù)據(jù)和業(yè)務數(shù)據(jù),I-CSCF(Interconnection-Call Session Control Function)與S-CSCF(Serving-CSCF)通過Diameter協(xié)議與HSS進行信息交互[1]。由于HSS與I/S-CSCF之間缺乏身份認證機制,且攻擊者是以合法身份接入網絡,I/S-CSCF可以進行越權訪問HSS,非法獲取或修改用戶的信息,因此需要建立新的HSS數(shù)據(jù)庫的訪問控制模型,對 I/S-CSCF的非法行為進行防護。由美國George Mason大學的Ravi Sandu教授提出的基于角色的訪問控制模型RBAC(Role-Based Access Control)[2-4],提供了解決大量用戶、數(shù)據(jù)客體和訪問權限系統(tǒng)中的授權管理問題,是一種方便、安全、高效的訪問控制機制,適用于HSS數(shù)據(jù)庫訪問控制。
本文在HSS數(shù)據(jù)庫訪問控制中應用基于角色訪問控制策略,并添加其約束模塊,建立I-CSCF—S-CSCF的關聯(lián)表,最后給出越權訪問行為防護的分析和仿真。
1 S-CSCF越權訪問行為分析
HSS是IMS網絡中存儲用戶信息的主要數(shù)據(jù)庫。存儲在HSS的IMS相關數(shù)據(jù)主要包括:IMS用戶標識、號碼和地址信息以及用戶安全信息等。IMS網絡中的呼叫會話控制服務器I/S-CSCF和應用服務器AS通過訪問HSS,獲取用戶注冊和業(yè)務邏輯執(zhí)行所需的用戶數(shù)據(jù)。
P-CSCF通過DNS域名解析獲得I-CSCF的地址,I-CSCF根據(jù)UAA信息,選擇合適的S-CSCF[1],沒有機制通知HSS該S-CSCF地址。由于攻擊者是合法接入網絡,I/S-CSCF與HSS之間可以通過相互認證,攻擊者可以通過篡改數(shù)據(jù)包,實現(xiàn)越權訪問。
由于I-CSCF數(shù)據(jù)庫越權訪問不涉及用戶核心信息,攻擊方式與S-CSCF相似,故本文重點分析S-CSCF越權訪問行為。其越權訪問流程如圖1所示。

(1)在HSS側,攻擊者截獲S-CSCF發(fā)送的MAR(1)/SAR(1)請求,將AVP Session id、AVP Origin Host等和攻擊目標有關的字段改為自己的字段,將在數(shù)據(jù)包中S-CSCF的路由信息刪除,僅保留攻擊者的地址,如:
AVP SessionId1/1=scscf(attacker)-stdn.imsgrp-000.ims.ctc.com;237404472;237404472:00
AVP OriginHost 1/1 =scscf(attacker)-stdn.imsgrp-000.ims.ctc.com
Route-Record=scscf(attacker)@ims.ctc.com
攻擊者將修改后的MAR(2)/SAR(2)命令發(fā)送到HSS,由于攻擊者是合法S-CSCF,所以可以通過HSS的認證,使HSS認為是攻擊者發(fā)出的合法的請求MAR(2)/SAR(2),發(fā)送響應MAA(2)/SAA(2)給攻擊者。
(2)攻擊者收到MAA(2)/SAA(2)后,由于S-CSCF知道HSS的地址,所以目的域地址仍置為HSS的地址,將AVP SessionId與AVP OriginHost等字段在MAR(2)/SAR(2)中修改過的字段改為原MAR(1)/SAR(1)的字段。將修改好的數(shù)據(jù)包MAA(1)/SAA(1)發(fā)送到S-CSCF。由于數(shù)據(jù)包中所有的信息均已修改,而S-CSCF并不溯源數(shù)據(jù)包的來源,所以會認為是HSS發(fā)送的響應消息。
通過以上兩個步驟,攻擊者可以越權訪問到S-CSCF存儲在HSS上的數(shù)據(jù)信息,從而實現(xiàn)了HSS數(shù)據(jù)庫的越權訪問。
2 基于角色的訪問控制模型
基于角色的訪問控制模型RBAC引入了角色的概念,目的是為了隔離主體與權限,其模型如圖2所示。RBAC模型的基本概念:

用戶(User):可以獨立訪問計算機系統(tǒng)中的數(shù)據(jù)或其他系統(tǒng)資源的主體。用戶可以是人,也可以擴展為機器、設備、進程等,在此為I/S-CSCF。
角色(Role):角色指一個組織或任務中的工作或位置,它代表一種資格、權利和責任。
權限(Permission):權限描述一個角色對一個訪問對象可以執(zhí)行某種操作的能力,它反映的是授權的結果。如查詢角色對資源B只有讀的權限,I-CSCF賦予查詢角色時,對資源B只能進行讀取。
用戶角色分配(User-Role Assignment):建立用戶與角色的多對多關系。
角色權限分配(Permission-Role Assignment):建立角色與訪問權限的多對多關系。
會話(Session):會話對應于一個用戶和一組激活的角色,表示用戶進行角色激活的過程。如I-CSCF發(fā)送UAR命令查詢用戶注冊狀態(tài)的流程[2-4]。
3 HSS數(shù)據(jù)庫訪問控制模型
IMS通信流程中,I/S-CSCF與HSS之間通過Diameter協(xié)議進行信息交互。當前IMS網絡缺乏在信令處理過程中對網絡實體的身份、權限的判斷,導致某些被非法利用的網絡實體針對用戶位置,狀態(tài)等重要信息發(fā)起各種攻擊行為。在IMS網絡中,網絡實體通過信令消息觸發(fā)消息處理機制來實現(xiàn)對用戶數(shù)據(jù)的訪問和操作,網絡實體擔任的角色及角色與權限的映射關系隨信令流程的改變而動態(tài)變化。所以需要對基于角色的呼叫控制模型進行一定的改進。模型設計的核心思想就是在通信過程中,通過約束模塊,對角色、權限分配過程進行控制,控制模型如圖3所示。

基于角色的HSS訪問控制模型定義如下:
主體(User):可以訪問HSS數(shù)據(jù)庫的網絡實體,即I/S-CSCF;
客體(Objects):存儲在HSS數(shù)據(jù)庫中的數(shù)據(jù),如S-CSCF能力集,用戶認證消息等;
角色(Roles):I/S-CSCF所承擔的職責;
權限(Permissions):可以對客體信息進行的操作,如查詢,修改;
約束(Constrain):在角色劃分,權限分配中需要滿足的限定性條件;
會話(Session):用戶進行激活的過程,如I-CSCF發(fā)送UAR信令到HSS。
訪問過程中形成的映射關系:
3.1 約束模塊設計
在約束模塊添加關聯(lián)表,通過修改關聯(lián)表,對模型中的分配起到限制作用。在IMS網絡中,存在多個I-CSCF與S-CSCF,,它們之間是一對多映射的關系,如圖4所示。在HSS中建立I-CSCF—S-CSCF關聯(lián)表,如圖5所示。

3.1.1 約束模塊操作流程
在初始時,HSS將關聯(lián)表中I-CSCF能夠選擇的S-CSCF的屬性值全部置為1。
(1)當I-CSCF選定一個S-CSCF后,向HSS數(shù)據(jù)庫發(fā)送一個消息,將此信令消息命名為IER(I-CSCF-Elect-Require),告知HSS其選定的S-CSCF。
消息格式為:<I-CSCF-Elect-Request>:=
<DiamterHeader:30x,REQ,PXY,16777216>
<Session-Id>
{Origin-Host}
{ Origin-Realm}
{User-Name}
{Server-Name}
{Server-ID}
*[Proxy-Info]
*[Route-Record]
(2)HSS收到IER消息后,提取Session-id, User-Name, Server-Name字段,發(fā)送響應消息IEA(I-CSCF-Elect-Answer)消息給I-CSCF。
(3)HSS修改關聯(lián)表,將對應的I/S-CSCF值設為Session-id,其他的值設為0,實現(xiàn)綁定約束,在后續(xù)為S-CSCF分配角色等操作時,只有被綁定的S-CSCF才能進行相應的用戶數(shù)據(jù)下載、更新等操作。
(4)當會話結束后,將關聯(lián)表信息改為初始值,釋放各資源。
3.1.2 訪問控制模型應用流程
(1)HSS根據(jù)I/S-CSCF的能力,建立用戶表;根據(jù)I/S-CSCF進行的操作,進行角色分類,建立角色表;根據(jù)I/S-CSCF的能力,在特定會話的條件下進行的操作,為I/S-CSCF分配角色,更新用戶-角色表;根據(jù)存儲在數(shù)據(jù)庫中的信息的性質,及對其進行的操作,建立權限表;根據(jù)角色在特定會話條件下對客體進行的操作,建立角色-權限表;建立I-CSCF—S-CSCF關聯(lián)表。
(2)當I/S-CSCF發(fā)起會話時,HSS首先查找用戶表,判斷用戶身份是否合法。
(3)根據(jù)會話發(fā)起的信令,查找對應的角色表,確定此次會話中主體所擔任的角色。
(4)根據(jù)主體及角色,為用戶分配角色,更新用戶-角色表。
(5)根據(jù)會話信令,查找角色-權限表,確定此次會話I/S-CSCF所能訪問的數(shù)據(jù)資源及其進行的操作。
(6)當會話建立時,啟動約束模塊,HSS修改關聯(lián)表,綁定此次會話,只有發(fā)起會話的主體才能對數(shù)據(jù)庫進行訪問。
3.2 數(shù)據(jù)庫設計
根據(jù)整個流程,HSS數(shù)據(jù)庫訪問控制系統(tǒng)被分為不同的功能模塊,主體分為不同的權限訪問不同的客體。根據(jù)模型設計方法,用戶及權限信息均被保存在HSS數(shù)據(jù)庫中,建立用戶表、角色表、權限表、約束表、用戶與角色表、角色與權限表的6個表格,各表詳細設計及關系如圖6所示。

4 HSS數(shù)據(jù)庫訪問控制模型效果
在HSS訪問控制方式及數(shù)據(jù)庫的設計中,約束模塊對用戶角色表、角色權限表都有著制約作用,從而能夠比較有效地進行數(shù)據(jù)庫訪問控制。效果分析如圖7所示。

I-CSCF選定S-CSCF后,與HSS進行IER/IEA信令交互后,啟動約束模塊,HSS數(shù)據(jù)庫修改關聯(lián)表,進行綁定操作。當攻擊者篡改MAR/SAR消息時,HSS查找關聯(lián)表,由于I-CSCF—S-CSCF關聯(lián)表中,攻擊者的屬性值本不存在或被置為0,HSS拒絕攻擊者的請求,從而實現(xiàn)了HSS數(shù)據(jù)庫越權訪問的防護。
Open SAR由C語言實現(xiàn),是一個成熟且靈活的開源SIP服務器棧軟件??梢杂米髯苑掌?、位置服務器、代理服務器等多種SIP服務器。通過對Open SAR進行設置,可以實現(xiàn)IMS中各個CSCF的功能。依據(jù)課題的研究內容,要求SIP終端具有可配置性。因此,選取SIP攻擊軟件SiVus用于SIP終端功能的實現(xiàn)。在仿真過程中將HSS數(shù)據(jù)庫設置為一般的數(shù)據(jù)庫,攻擊者截獲數(shù)據(jù)包并偽裝就可以立刻下載用戶的認證信息。而在使用本文方法后,能夠有效地防護HSS數(shù)據(jù)庫越權訪問行為。
HSS數(shù)據(jù)庫防護在基于角色的訪問控制模型的基礎上添加了約束模塊,在其中設置了I-CSCF—S-CSCF關聯(lián)表。通過理論分析和仿真結果驗證,該模型能夠較好地對HSS數(shù)據(jù)庫越權訪問行為進行防護,同時該模型也可直接在系統(tǒng)中添加相應模塊,實現(xiàn)簡單、通用性強。
參考文獻
[1] POIKSELKA M,MAYER G,KHARTABII H,et al.移動領域的IP多媒體概念和服務[M].北京:機械工業(yè)出版社,2005.
[2] RAVIS E J, COYNE K. Role-based access control models[J].IEEE Computer,1996,29(2):38-47.
[3] FERRAIOLO D F. Proposed NIST standard for role-based access control[J]. ACM Transactions on Information and System Security,1001,4(3):224-225.
[4] SANDHU R S.COYNE E J,FEINSTEIN H L, et al. Rolebased access control models[J].IEEE Computer,1996,29(3):38-39.
[5] 周穎杰.移動通信網位置信息安全防護關鍵技術研究[D].河南:解放軍信息工程大學,2008:45-54.
[6] LINA B R. The application of security policy to rolebased access control and common data security architecture [J].Computer Communications,2000,23(17):1584-1593.
[7] 邢漢發(fā).基于角色和用戶組的擴展訪問控制模型[J].計算機應用研究,2009,26(3):1098-1100.
