移動通信的安全問題正越來越多地受到關(guān)注。2G網(wǎng)絡主要傳輸語音業(yè)務,采用的是單向的用戶認證方案,即網(wǎng)絡能夠驗證用戶身份是否合法,而用戶無法確認其所連接的網(wǎng)絡服務是否可靠。然而,3G網(wǎng)絡將會演變成一個覆蓋全球的集有線、蜂窩和衛(wèi)星通信于一體的全網(wǎng),不僅支持傳統(tǒng)的語音和數(shù)據(jù)業(yè)務,還支持交互式和分布式的業(yè)務,如多媒體業(yè)務、電子商務、網(wǎng)上銀行等。隨著各種信息服務的蓬勃開展,各種機密性、敏感性、隱私性的數(shù)據(jù)的傳輸會大大增加,這對網(wǎng)絡的安全性提出了更高的要求。
IP多媒體子系統(tǒng)(IMS)是3G網(wǎng)絡的核心控制平臺,具有基于會話初始協(xié)議(SIP)的全IP架構(gòu),IP協(xié)議固有的缺陷和安全漏洞使IMS很容易遭受攻擊。另外,IMS對開放性接入的支持也對其網(wǎng)絡安全提出挑戰(zhàn)。如何保證用戶安全地接入網(wǎng)絡,保證IMS網(wǎng)絡的可靠部署進而走向商用,成為了重中之重的問題。因此,研究IMS網(wǎng)絡的安全接入認證機制有著十分重要的現(xiàn)實意義。
3GPP已經(jīng)成立了專門的工作組SA WG3負責3G網(wǎng)絡安全方面的標準化工作,已經(jīng)發(fā)布的IMS安全標準主要有:3GPP TS33.102: 3G網(wǎng)絡安全架構(gòu)[1]、3GPP TS33.203: IMS接入網(wǎng)絡的安全機制[2]、3GPP TS33.210: IMS核心網(wǎng)絡的安全機制[3]。
1 IMS的安全體系結(jié)構(gòu)
作為相對獨立的安全體系,IMS要求所有的用戶在使用IMS服務之前都必須進行鑒權(quán)(認證和授權(quán)),協(xié)商建立安全的接入通道。用戶和網(wǎng)絡實體之間以及網(wǎng)絡實體之間的通信必須時刻處于安全保護之中。IMS安全體系的整體思想是使用因特網(wǎng)協(xié)議安全(IPSec)的安全特性為IMS系統(tǒng)提供安全保護。IMS安全體系架構(gòu)[2] 如圖1所示,分為5個安全層面。
IMS安全架構(gòu)的5個安全層面應用于IMS安全保護中不同的需求:
圖1中的安全層面1和安全層面2屬于IMS接入安全機制。IMS的接入安全機制承擔著兩大任務:一是對接入用戶的鑒權(quán);二是在鑒權(quán)結(jié)束之后,在UE和P-CSCF之間建立IPSec安全關(guān)聯(lián)(IPSec SA),為后續(xù)SIP信令的交互提供安全保護。本文主要對基于認證和密鑰協(xié)商(AKA)機制的IMS安全接入認證機制進行研究。
2 IMS的接入安全機制
2.1 IMS AKA機制概述
AKA機制是由因特網(wǎng)工程任務組(IETF)制定、并被3GPP采用,廣泛應用于3G無線網(wǎng)絡的鑒權(quán)機制。IMS的鑒權(quán)機制沿用了這種機制的原理和核心算法,故稱之為IMS AKA機制[4]。
IMS AKA機制是對HTTP摘要認證機制[5]的擴展,主要用于用戶的認證和會話密鑰的分發(fā),它的實現(xiàn)基于一個長期共享密鑰(Key)和一個序列號(SQN),它們僅在HSS的認證中心模塊(AuC)和UE的ISIM中可見。由于HSS不與UE直接通信,而是由S-CSCF執(zhí)行認證過程,因此它們不會將真實的Key暴露給外界。
IMS AKA機制使用“提問/回答”的模式實現(xiàn)用戶和網(wǎng)絡之間的雙向認證,并通過協(xié)商產(chǎn)生的密碼對(CK, IK)作為IPSec SA所需的密鑰,為后續(xù)的通信提供安全保護。IMS AKA機制是基于SIP協(xié)議來實現(xiàn)的。AKA與SIP的結(jié)合在IETF RFC3310中定義。在IMS的注冊過程中,攜帶AKA參數(shù)的SIP信令在UE和IMS網(wǎng)絡認證實體之間進行交互,按照AKA機制來傳輸和協(xié)商AKA參數(shù),從而實現(xiàn)接入認證和密鑰協(xié)商的過程。
2.2 IMS接入認證的實現(xiàn)
通過IMS注冊過程實現(xiàn)基于AKA機制的IMS接入認證的具體流程[6] 如圖2所示。
(1) 用戶發(fā)起注冊請求
用戶在使用IMS服務之前必須向IMS網(wǎng)絡進行注冊,注冊的目的是將用戶的私有身份(IMPI)與用戶想要注冊的公開身份(IMPU)綁定。每個用戶只有一個IMPI,而可擁有多個IMPU,每個IMPU對應相應的服務配置。
UE在初始的注冊請求SIP REGISTER消息中發(fā)送它的IMPI,該IMPI保存在ISIM應用中,只用于認證和注冊過程。這個初始的REGISTER消息的主要頭域和參數(shù)如圖3所示。
由于3GPP AKA被映射到HTTP摘要機制,因此認證方案的值被設置為“Digest”,而“response”和“nonce”域的值在初始注冊請求消息中都設置為空。P-CSCF將這個REGISTER消息轉(zhuǎn)發(fā)給I-CSCF,I-CSCF聯(lián)系HSS,以選擇為用戶提供服務的S-CSCF,然后將REGISTER請求消息轉(zhuǎn)發(fā)給選定的S-CSCF。當S-CSCF收到REGISTER消息后,如果發(fā)現(xiàn)該用戶還沒有被認證,則S-CSCF向HSS發(fā)送多媒體認證請求(MAR)消息[7]以請求認證數(shù)據(jù)。
(2) 計算認證向量
HSS收到MAR消息之后,運行AKA算法,為該用戶計算認證向量(AV),計算過程如下:HSS中的AuC運行AKA機制,首先產(chǎn)生最新的序列號SQN和一個不可預測的隨機提問數(shù)(RAND)。然后HSS將根據(jù)它與該UE之間的共享密鑰Key,以及剛剛產(chǎn)生的SQN和RAND來計算其他的參數(shù),其原理如圖4所示,AKA參數(shù)核心算法由3GPP TS35.206[8]提供。
其中,各個參數(shù)的計算公式如下( ?茌表示按位異或,|| 表示串接):
AK用來隱藏SQN,因為SQN可能會暴露用戶的位置信息。如果不需要隱藏SQN,那么AK被設置為0。
(3) 網(wǎng)絡向用戶提問
HSS通過上述的計算過程得到了一組AV,其中每個AV都是一個五元組(RAND, XRES, AUTN, CK, IK),該認證五元組并不包括Key和SQN本身。然后,HSS將這些認證數(shù)據(jù)通過多媒體認證應答(MAA)消息發(fā)送給S-CSCF。
S-CSCF從HSS得到所需的安全相關(guān)的參數(shù),即所謂的AV。這些參數(shù)使得S-CSCF可以在不需要知道共享密鑰Key和SQN的情況下就可以執(zhí)行認證過程。
S-CSCF將剔除XRES的AV包含在401 Unauthorized應答消息的WWW-Authenticate頭域中向用戶提問,401應答主要的頭域和字段如圖5所示。
其中,在nonce字段填入了將RAND和AUTN參數(shù)串接后進行Base64編碼后的字符串。在ik和ck字段加入完整性密鑰和保密性密鑰。在algorithm字段放入值“AKAv1-MD5”,表示使用的是3GPP AKA認證機制。
當接收到S-CSCF返回的401應答消息后,P-CSCF在將其發(fā)往UE之前,將其中的完整性密鑰IK和保密性密鑰CK保存下來,并將它們從AV中刪除掉(IK,CK這兩個參數(shù)不能暴露,網(wǎng)絡認證通過后,UE的ISIM會根據(jù)收到的AV,重新計算出來)。
(4) 用戶認證網(wǎng)絡身份
接收到網(wǎng)絡返回的401應答消息后,UE將接收到的AKA參數(shù)傳遞給ISIM應用,由ISIM模塊運行AKA算法,執(zhí)行以下工作:
(5) 網(wǎng)絡認證用戶身份
P-CSCF將這個攜帶認證應答的REGISTER消息轉(zhuǎn)發(fā)給I-CSCF,I-CSCF重新查詢HSS以發(fā)現(xiàn)S-CSCF,然后將REGISTER消息轉(zhuǎn)發(fā)給S-CSCF。當S-CSCF接收到REGISTER消息之后,進行解析并從認證頭域Authorization中取出相應的參數(shù):
3 IMS AKA機制的安全性分析
3.1 IMS AKA機制實現(xiàn)的安全能力
從上述對基于AKA的IMS接入認證機制的原理和實現(xiàn)過程的分析可以看出,IMS AKA機制實現(xiàn)了以下安全目標。
(1) 用戶和網(wǎng)絡之間的雙向認證
S-CSCF對UE的認證是通過RES實現(xiàn)的:如果UE合法,它能夠正確地計算出RES,且RES等于XRES;UE對S-CSCF的認證是通過MAC實現(xiàn)的:UE收到S-CSCF轉(zhuǎn)發(fā)的MAC后,計算期望的消息認證碼(XMAC),如果MAC和XMAC一致,則認證成功。
(2) UE和P-CSCF之間的密鑰協(xié)商分配
P-CSCF收到的來自HSS的AV中包含了保密性密鑰(CKHSS)和完整性密鑰(IKHSS)。合法的用戶在收到正確的RAND之后,能正確地產(chǎn)生CKUE和IKUE,且CKHSS等于CKUE,IKHSS等于IKUE。CK和IK用于其后的保密通信,而CK和IK并沒有在空中接口中傳輸,確保了密鑰的安全性。
(3) UE與S-CSCF間密鑰的新鮮性
由于每次通信前的認證選擇了不同的AV,保證了每次通信采用的CK和IK都是由不同的RAND計算得到的。而每次使用的MAC是由不斷遞增的SQN作為輸入變量之一,從而確保了密鑰的新鮮性,有效地防止了重放攻擊。
(4) 認證應答RES的安全
當UE計算出認證應答RES之后,使用名為“AKAv1-MD5”的摘要算法(實際上就是一個單向的哈希函數(shù))來計算RES的摘要,然后將該摘要發(fā)送到S-CSCF。S-CSCF也使用同樣的方法計算出期望的認證應答(XRES)的摘要值,通過比較這兩個摘要值是否一致來認證用戶的身份。通過這樣的方法,即使攻擊者竊聽到RES的值,但是由于摘要算法是單向的哈希函數(shù),根本無法反推出RES的值,因此不能危害網(wǎng)絡安全。
由上面的分析,可以看到IMS AKA機制具有相當強大的安全能力來實現(xiàn)用戶和服務網(wǎng)絡之間的雙向認證以及密鑰協(xié)商,并且能夠保證協(xié)商的保密性密鑰和完整性密鑰的新鮮性。因此,AKA機制在3G網(wǎng)絡的接入認證機制的實現(xiàn)中得到了相當廣泛的應用。
3.2 IMS AKA機制的安全隱患及解決方案
在實際應用中,IMS AKA機制的一些安全漏洞漸漸暴露出來。下面將對IMS AKA機制在注冊過程中存在的一些安全隱患及現(xiàn)有的解決方案進行介紹。
(1) 雖然UE和P-CSCF之間可以通過AKA機制協(xié)商的安全性密鑰對SIP信令進行加密性和完整性保護,但是初始注冊請求REGISTER消息卻是在安全密鑰尚未協(xié)商的時候發(fā)送的,故該消息沒有受到任何安全保護而且是用明文發(fā)送的,攻擊者可以輕而易舉地獲取用戶的注冊信息,從而造成用戶隱私泄密。
SIP協(xié)議對此進行了安全擴展:對SIP消息取摘要值,并且由SIP消息攜帶這個摘要值一同發(fā)送。在接收端對收到的SIP消息計算摘要值,如果和原摘要值一致,說明這個SIP消息沒有被修改過,受到了完整性保護。雖然即便是這樣,還是不能杜絕攻擊者竊聽SIP消息,可是至少攻擊者無法偷偷修改消息內(nèi)容,這樣對SIP消息的安全性能有一定程度的提高。
(2) 向IMS網(wǎng)絡注冊時,至少需要發(fā)送兩次REGISTER請求,用戶與網(wǎng)絡之間的SIP交互過于繁瑣,并且SIP消息攜帶的認證頭域(如Authorization頭域和WWW-Authenticate頭域)帶有眾多AKA參數(shù),導致SIP消息長度大幅增加。由于網(wǎng)絡帶寬的限制,傳輸延遲將會十分明顯,用戶通過注冊接入網(wǎng)絡的耗時將會比較長,影響用戶的使用感受??梢圆捎脡嚎sSIP消息[9]的方法來在一定程度上改善服務質(zhì)量,特別是在無線環(huán)境下能大大縮短呼叫建立的時間。
(3) 在基于AKA的接入認證過程中,UE并沒有對IMS核心網(wǎng)絡的接入點P-CSCF進行身份認證,會給攻擊者提供冒充中間人實施攻擊的機會。參考文獻[10]中提出的基于傳輸層安全協(xié)議(TLS)的IMS接入認證機制能對這一缺陷進行改進,但也僅僅是在理論階段,還沒有接受實際應用的考證。
4 結(jié)束語
IMS作為下一代網(wǎng)絡的發(fā)展方向,作為移動網(wǎng)絡和固定網(wǎng)絡的融合平臺,為用戶提供端到端的IP多媒體業(yè)務,這種基于SIP的全IP的開放網(wǎng)絡特性給IMS網(wǎng)絡的安全帶來了極大的挑戰(zhàn)。如何保證用戶安全地接入網(wǎng)絡是整個IMS安全方案實施的第一步,只有實現(xiàn)安全的接入認證機制,才能保證IMS網(wǎng)絡的可靠部署,進而走向商用。
IMS AKA機制雖然被廣泛地應用,但正如沒有任何一種技術(shù)是十全十美的道理一樣,IMS AKA機制本身也存在一些不太合理的地方,目前也有許多的組織和個人對IMS AKA機制提出了許多增強和完善的建議,但除了SIP的安全擴展機制以外,還沒有哪一種改進方案被標準化采用。但無疑正是這種不斷的推陳出新,使得網(wǎng)絡的安全性越來越高。IMS AKA機制中仍有一些有待改進的開放性問題,希望在以后的研究工作中能對其進行改進:
(1) 通過使用序列號,用戶可以保證認證信息(如RAND和AUTN)是沒有被攻擊者或者是被服務網(wǎng)絡使用過的。服務網(wǎng)絡通過檢驗用戶認證應答RES來判斷用戶是否知道他和網(wǎng)絡之間的共享密鑰,以此來認證用戶身份。然而,用戶卻僅僅只能檢測出認證向量是否由歸屬網(wǎng)絡產(chǎn)生,也就是說,用戶不能判斷收到的認證向量是否是他請求服務的服務網(wǎng)絡所申請的,因為任何服務網(wǎng)絡都可以向歸屬網(wǎng)絡請求認證向量。這種安全漏洞也會給攻擊者提供機會。
(2) SQN重同步的過程也并不很合理,因為只要UE檢查出來SQN不在正常的范圍之內(nèi),它就會發(fā)起重同步過程,而不關(guān)心SQN同步失敗的真實原因。但是事實上即使序列號不在正確的范圍內(nèi),也并不代表HSS中的計數(shù)器SQN_HN發(fā)生了同步失敗,有可能是惡意的攻擊者重放提問引起的。UE不關(guān)心真實的原因,不斷進行重同步過程,這必然會加大服務網(wǎng)絡和歸屬網(wǎng)絡之間的通信負荷,嚴重延遲用戶接入網(wǎng)絡的時間,甚至最后無法接入網(wǎng)絡,嚴重影響用戶的使用感受。但是這個問題的改進可能要涉及到對IMS AKA機制的改進。本文主要研究安全接入認證機制,當實現(xiàn)用戶的安全接入之后,如何建立IPSec SC的過程暫不涉及,將在以后的工作中進一步研究。
聯(lián)系客服