于 浩,金 鑫,姜元建,高 亮,何 晨
(1.國(guó)網(wǎng)安徽省電力有限公司信息通信分公司,安徽 合肥 230061;2.南京南瑞信息通信科技有限公司,江蘇 南京 211000;3.南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003)
隨著國(guó)家電網(wǎng)公司電力通信網(wǎng)的建設(shè)與發(fā)展,通信業(yè)務(wù)不再局限于語(yǔ)音和數(shù)據(jù)業(yè)務(wù),對(duì)多媒體業(yè)務(wù)提出了新的需求。IP多媒體子系統(tǒng)(IP multimedia subsystem,IMS)是由3GPP引入用于下一代網(wǎng)絡(luò)(NGN)的標(biāo)準(zhǔn)化架構(gòu),它基于全I(xiàn)P的連接,將固定和移動(dòng)網(wǎng)絡(luò)融合到分組模式。因此,它提供各種多媒體服務(wù)(如企業(yè)通訊錄,視頻會(huì)議,聯(lián)動(dòng)呼叫等),不限設(shè)備(移動(dòng)電話,固定電話等)或接入媒體(GSM,GPRS,PSTN,WiMAX)[1]。目前,國(guó)家電網(wǎng)公司已將IMS確定為下一代電網(wǎng)管理交換網(wǎng)絡(luò)[2]的主流技術(shù)。
IMS體系架構(gòu)由用戶設(shè)備(UE)、IMS核心網(wǎng)絡(luò)、應(yīng)用服務(wù)器(AS)組成[3]。用戶設(shè)備代表了終端(智能手機(jī),平板電腦,計(jì)算機(jī)等),其中包括一個(gè)通用集成電路卡(UICC)的智能卡,主要包含兩個(gè)用戶身份:訪問(wèn)時(shí)使用的IP多媒體私有身份(IMPI)控制和用于請(qǐng)求與另一個(gè)用戶通信的IP多媒體公共標(biāo)識(shí)(IMPU)。IMS核心網(wǎng)絡(luò)主要包括歸屬用戶服務(wù)器(HSS)和呼叫會(huì)話控制功能(CSCF)。其中歸屬用戶服務(wù)器包含了與用戶相關(guān)的全部數(shù)據(jù),協(xié)助控制多媒體會(huì)話,身份驗(yàn)證,訪問(wèn)授權(quán)和用戶數(shù)據(jù)本地化。呼叫會(huì)話控制功能負(fù)責(zé)處理IMS的信令,包括代理呼叫會(huì)話控制功能(P-CSCF)、詢問(wèn)呼叫會(huì)話控制功能(I-CSCF)和服務(wù)呼叫會(huì)話控制功能(S-CSCF)三種類型。
傳統(tǒng)的通信網(wǎng)絡(luò)是采用七號(hào)信令在數(shù)字信令網(wǎng)上以閉合環(huán)路來(lái)進(jìn)行信息交換,完成呼叫建立、路由、控制等功能。而IMS網(wǎng)絡(luò)作為NGN業(yè)務(wù)的公共控制平臺(tái),它以開放式的接口在網(wǎng)絡(luò)中部署,其開放型、分布式的結(jié)構(gòu)使得IMS網(wǎng)絡(luò)可以靈活快速地執(zhí)行多媒體業(yè)務(wù)、便于多樣業(yè)務(wù)的共享。但是,由于IMS網(wǎng)絡(luò)的開放分布式的特性,其業(yè)務(wù)的安全性恰恰更易受到攻擊。由于國(guó)家電網(wǎng)對(duì)于安全性要求更高,電力行政交換組網(wǎng)的安全問(wèn)題亟待解決。
3GPP的TS 33.203規(guī)范中定義了IMS網(wǎng)絡(luò)的接入安全機(jī)制,包括了網(wǎng)絡(luò)與用戶的認(rèn)證[4];3GPP的TS 33.210規(guī)范中定義了對(duì)IMS核心網(wǎng)內(nèi)保護(hù)的安全機(jī)制[5],對(duì)不同網(wǎng)絡(luò)節(jié)點(diǎn)之間提供業(yè)務(wù)保護(hù)。IMS網(wǎng)絡(luò)的安全架構(gòu)[6]如圖1所示。
圖1 IMS安全體系架構(gòu)
圖1展現(xiàn)了3GPP標(biāo)準(zhǔn)定義的5個(gè)不同的安全層面[7],分別被標(biāo)注為①、②、③、④和⑤。其中,①和②代表實(shí)現(xiàn)IMS網(wǎng)絡(luò)的接入安全[8],而③、④、⑤則是代表實(shí)現(xiàn)IMS網(wǎng)絡(luò)內(nèi)部網(wǎng)元的安全。這五個(gè)安全層面各個(gè)具體安全如表1所示。
表1 IMS網(wǎng)絡(luò)不同安全層面具體內(nèi)容
綜合IMS網(wǎng)絡(luò)安全架構(gòu),IMS網(wǎng)絡(luò)的安全性問(wèn)題主要分為兩個(gè)層面:IMS網(wǎng)絡(luò)的安全接入問(wèn)題、IMS核心網(wǎng)絡(luò)的安全問(wèn)題。電力IMS核心網(wǎng)絡(luò)屬于電力專網(wǎng),已經(jīng)具備了多層防護(hù)等級(jí)、加密技術(shù),電力專網(wǎng)內(nèi)部的功能模塊之間的連接相對(duì)安全性很高,因此文中將側(cè)重研究IMS網(wǎng)絡(luò)的接入安全。
實(shí)際上,IMS架構(gòu)完全基于各種協(xié)議,主要是用于信令計(jì)劃的SIP協(xié)議。由于SIP是一種具有高靈活性的基于文本的協(xié)議,忽略了用戶的隱私,使得公共和私有身份不受保護(hù),IMS網(wǎng)絡(luò)面臨著安全風(fēng)險(xiǎn)。通過(guò)對(duì)IMS網(wǎng)絡(luò)進(jìn)行有效的認(rèn)證、鑒權(quán),是提高IMS網(wǎng)絡(luò)接入層安全性的一種重要方式。
HTTP Digest認(rèn)證算法[9]利用哈希加密算法來(lái)實(shí)現(xiàn)服務(wù)器與用戶的認(rèn)證,但是它不能確保網(wǎng)絡(luò)與用戶的雙向認(rèn)證,且缺乏對(duì)消息的完整性保護(hù)。第三代合作伙伴計(jì)劃(3GPP)設(shè)計(jì)了認(rèn)證和密鑰協(xié)商協(xié)議(AKA),其被稱為IMS AKA以解決IMS網(wǎng)絡(luò)中的SIP漏洞[10]。IMS AKA機(jī)制基于UMTS AKA,在終端和IMS核心網(wǎng)絡(luò)之間執(zhí)行雙重認(rèn)證,并在加密和完整性方面建立新的密鑰對(duì)。但是,IMS AKA算法沒(méi)有提供對(duì)P-CSCF等中間網(wǎng)元的認(rèn)證,安全性不夠。文獻(xiàn)[11]改進(jìn)了E-IMS認(rèn)證程序,并提出了一種更簡(jiǎn)單,更靈活的解決方案。但是,它使用終端生成密鑰信息并將密鑰信息分發(fā)給認(rèn)證服務(wù)器,這增加了系統(tǒng)的復(fù)雜性。文獻(xiàn)[12]提出了一種基于三方SIP身份驗(yàn)證的接入?yún)f(xié)議,但是用戶無(wú)法自行選擇密碼,并且計(jì)算多個(gè)功能和創(chuàng)建用戶認(rèn)證和簽名的計(jì)算成本很高,降低了協(xié)議的性能。
2.1 IMS AKA機(jī)制的安全漏洞
文中提出一種新的基于IMS AKA的改進(jìn)接入算法,在此首先簡(jiǎn)要介紹IMS AKA認(rèn)證算法。IMS AKA算法是基于一個(gè)長(zhǎng)期共享的密鑰(Key)和一個(gè)序列號(hào)(SQN)實(shí)現(xiàn)的,具有確保用戶和網(wǎng)絡(luò)之間的雙向認(rèn)證優(yōu)點(diǎn),在完整性和機(jī)密性層面上表現(xiàn)良好。并且可以通過(guò)序列號(hào),用戶可以對(duì)抗重放攻擊,確保攻擊者不會(huì)重用認(rèn)證信息(即RAND和AUTN)來(lái)欺騙網(wǎng)絡(luò)。但是,IMS AKA機(jī)制在安全層面上仍然存在著一些不足[13]:
(1)如果攻擊者發(fā)送包含用戶身份的REGISTER請(qǐng)求混淆網(wǎng)絡(luò),阻止合法用戶進(jìn)行身份驗(yàn)證,這將會(huì)導(dǎo)致增加了認(rèn)證向量AV生成的時(shí)間,合法用戶要認(rèn)證時(shí)會(huì)出現(xiàn)操作失敗的情況,也就是遭受拒絕服務(wù)攻擊。
(2)IMS AKA不保證用戶身份的保護(hù),因?yàn)閁E發(fā)送的第一個(gè)REGISTER消息不受安全保護(hù),包含了用戶的IMPI和IMPU。在安全密鑰尚未協(xié)商時(shí)發(fā)送消息的,竊聽者可以捕獲此類敏感信息從而影響用戶的呼叫等服務(wù)。比如發(fā)生DOS攻擊消耗網(wǎng)絡(luò)資源、SPIT攻擊等,這對(duì)用戶的信息安全造成威脅。
(3)攻擊者可以通過(guò)分析會(huì)話初始化期間的流量來(lái)提取關(guān)于UE的信息。比如,攻擊者可以從中獲取用戶的信息、請(qǐng)求頻率最高的服務(wù)及用戶的位置。另外,如果沒(méi)有實(shí)現(xiàn)Zb接口,理論上,位于內(nèi)部網(wǎng)絡(luò)中的任何攻擊者都可以監(jiān)視消息交換。
在此,針對(duì)IMS AKA認(rèn)證機(jī)制的安全漏洞,文中提出一種新型的可應(yīng)用于電力IMS網(wǎng)絡(luò)的改進(jìn)認(rèn)證算法。該算法主要由兩個(gè)模塊組成:一是身份保護(hù)模塊,旨在保護(hù)用戶隱私;二是認(rèn)證密鑰協(xié)商模塊,在雙向認(rèn)證、授權(quán)、機(jī)密性和完整性方面具有更好的性能。
2.2.1 身份保護(hù)模塊
該模塊保護(hù)了在UE和P-CSCF之間傳輸?shù)挠脩羯矸?即IMPI和IMPU)。該模塊采用了無(wú)密鑰加密技術(shù)[14],提出一次性身份機(jī)制。UE能夠?yàn)槊總€(gè)新建立的會(huì)話都生成一次性隨機(jī)身份,模糊用戶的真實(shí)身份以應(yīng)對(duì)竊聽者。此方案基于密碼學(xué)中的交換性質(zhì),使通信雙方能夠在不需要密鑰的情況下交換數(shù)據(jù)、共享信息,也無(wú)需對(duì)基礎(chǔ)設(shè)施進(jìn)行任何修改。
為了生成一次性隨機(jī)身份,將用戶的IMPI、IMPU和用戶的隨機(jī)密鑰輸入交換加密函數(shù),輸出一個(gè)無(wú)意義的字符串作為用戶的一次性身份。由于用戶對(duì)于每個(gè)新建立的會(huì)話都會(huì)使用不同的隨機(jī)密鑰,故每個(gè)建立的會(huì)話都會(huì)生成一次性身份標(biāo)識(shí)。
在模糊用戶身份模塊過(guò)程中,UE生成隨機(jī)素?cái)?shù)p,UE和P-CSCF分別隨機(jī)選擇兩個(gè)隨機(jī)數(shù)a和b,使a,b∈[1,p-2],并且最大公約數(shù)gcd(a,p-1)=1,gcd(b,p-1)=1。UE和P-CSCF計(jì)算出(a-1)mod(p-1)和(b-1)mod(p-1)的逆。
交換消息過(guò)程為:UE向P-CSCF發(fā)起會(huì)話,首先UE隨機(jī)選擇數(shù)a作為私有密鑰,并計(jì)算IDamodp,通過(guò)公開的渠道發(fā)送帶有密文IDamodp的“SIP REGISTER”消息作為一次性標(biāo)識(shí)給P-CSCF;當(dāng)P-CSCF接收到時(shí),P-CSCF也隨機(jī)生成數(shù)b,并計(jì)算(IDa)bmodp,通過(guò)公開的渠道發(fā)送帶有密文的(IDa)bmodp的“401未授權(quán)響應(yīng)”給UE;UE再將雙重加密密文(IDa)bmodp提升到a-1的冪,根據(jù)(IDa)bmodp=(IDa*(-a))b=IDbmodp,UE向P-CSCF發(fā)送新的REGISTER消息,P-CSCF提取用戶實(shí)際的ID,進(jìn)行身份驗(yàn)證。在驗(yàn)證成功的情況下,代理以“200 OK”消息響應(yīng)。由于加密函數(shù)的輸入不同,因此不需要新的隨機(jī)密鑰,因此生成的密文也是如此。其中,ID代表了用戶的IMPI和IMPU。
·UE向P-CSCF發(fā)送:IDamodp;
·P-CSCF向UE發(fā)送:(IDa)bmodp;
·UE向P-CSCF發(fā)送:IDbmodp。
2.2.2 認(rèn)證和密鑰協(xié)商模塊
該模塊包含兩個(gè)步驟。第一步旨在解決UE和HSS之間的相互認(rèn)證的需要,以在用戶授權(quán)之后管理那里。第二步建立機(jī)密性和完整性密鑰以實(shí)現(xiàn)IPSec關(guān)聯(lián),以便保護(hù)在UE和P-CSCF之間傳輸?shù)腟IP消息。此模塊還必須確保在執(zhí)行身份驗(yàn)證時(shí)不會(huì)重播。因?yàn)闄E圓曲線密碼機(jī)制(ECC)技術(shù)[15]滿足了該模塊的所有需求,所以在此模塊中使用ECC技術(shù)。
第一步:UE和HSS的相互認(rèn)證。首先描述HSS執(zhí)行步驟中的參數(shù)含義:p為生成的素?cái)?shù);素?cái)?shù)域Fp上橢圓曲線方程為Ep(a,b):y2=x3+ax+b(modp),a,b∈Fp,4a3+27b2≠0(modp);B為橢圓曲線上的基點(diǎn);s∈Z*p,存儲(chǔ)在HSS和UE的UICC中;h(·)為安全散列函數(shù);HSS發(fā)出的共享消息有{Ep(a,b),B,h(·)}。
當(dāng)UE注冊(cè)到IMS網(wǎng)絡(luò)時(shí),它使用HSS執(zhí)行以下步驟:
①UE選擇一個(gè)隨機(jī)私鑰x∈Z*p,并計(jì)算它的公鑰V=x*B。然后,向HSS發(fā)送包含其公鑰(V)的REGISTER請(qǐng)求。
②在接收到該請(qǐng)求時(shí),HSS隨機(jī)生成私人密鑰c∈Z*p,并根據(jù)W=c*B計(jì)算它的公鑰,及計(jì)算會(huì)話密鑰AICK=c*V。通過(guò)AuthHSS=h(W‖s*AICK)計(jì)算HSS的身份驗(yàn)證令牌及Auth'UE=h(V‖s*AICK)計(jì)算UE的身份驗(yàn)證令牌。然后,HSS用其公鑰(W)向終端UE發(fā)送其認(rèn)證令牌。
③在UE接收到消息之后,UE在本地計(jì)算會(huì)話密鑰AICK=c*W并計(jì)算HSS的認(rèn)證令牌Auth'HSS。然后,UE驗(yàn)證AuthHSS=Auth'HSS是否成立。如果成立,則HSS身份被認(rèn)證。接下來(lái),UE計(jì)算其認(rèn)證令牌并將其發(fā)送到HSS。
④HSS將收到的令牌與已經(jīng)計(jì)算的令牌進(jìn)行比較。若它們相等,則UE被認(rèn)證。
第二步:在完成相互認(rèn)證步驟之后,UE和P-CSCF應(yīng)該建立IPSec關(guān)聯(lián)以保護(hù)SIP消息。該步驟需要兩個(gè)密鑰,即:完整性密鑰(IK)和密碼密鑰(CK)。對(duì)于優(yōu)化認(rèn)證算法,這兩個(gè)密鑰分別是已經(jīng)在相互認(rèn)證階段計(jì)算的會(huì)話密鑰(AICK)的橫坐標(biāo)和縱坐標(biāo)。因此,P-CSCF在相互認(rèn)證步驟結(jié)束時(shí)從HSS接收此點(diǎn)以建立與UE的IPsec關(guān)聯(lián)。
圖2為改進(jìn)算法的接入流程。
圖2 改進(jìn)的認(rèn)證算法
文中提出的算法是在IMS AKA基礎(chǔ)上改進(jìn)的,故將該算法與IMS AKA進(jìn)行對(duì)比,分析其安全性與性能。
(1)IMSAKA機(jī)制在注冊(cè)過(guò)程中,用戶是以明文的形式向P-CSCF提供其身份,而文中提出的優(yōu)化算法是通過(guò)應(yīng)用基于模冪運(yùn)算的無(wú)密鑰加密技術(shù)生成一次性標(biāo)識(shí)來(lái)保證用戶身份(IMPI和IMPU),因此攻擊者永遠(yuǎn)無(wú)法通過(guò)分析數(shù)據(jù)包來(lái)盜取這些身份。
(2)文中算法明確執(zhí)行UE和IMS網(wǎng)絡(luò)之間的相互認(rèn)證。它們根據(jù)UE和HSS之間的共享密鑰來(lái)計(jì)算其身份驗(yàn)證令牌以完成相互認(rèn)證。只有雙方在相互認(rèn)證之后,通過(guò)使用在認(rèn)證階段期間計(jì)算的密鑰CK和IK給UE和P-CSCF建立IPSec關(guān)聯(lián),從而保護(hù)SIP消息,來(lái)確保UE和P-CSCF之間傳遞的數(shù)據(jù)的機(jī)密性和完整性。
(3)IMS-AKA協(xié)議可以抵抗重放攻擊和中間人攻擊,但是不能夠抵抗DoS同步和SPIT攻擊。文中算法通過(guò)模糊用戶身份并結(jié)合橢圓曲線密碼技術(shù)克服這些安全漏洞,能夠應(yīng)對(duì)IMS AKA不能應(yīng)對(duì)的DOS攻擊與SPIT攻擊。
中間人攻擊:在文中提出的優(yōu)化算法中,UE和HSS共享秘密密鑰“s”,UE與HSS之間必須執(zhí)行相互認(rèn)證,但是攻擊者在試圖攻擊時(shí)既不能模仿UE也不能模仿HSS,故無(wú)法通過(guò)身份驗(yàn)證過(guò)程,從而消除了這種攻擊。
重放攻擊:假設(shè)攻擊者攔截第一個(gè)REGISTER(V)消息并重播來(lái)模擬UE。但是,由于攻擊者既沒(méi)有秘密密鑰“s”也沒(méi)有每個(gè)新會(huì)話刷新的私有密鑰“x”,導(dǎo)致無(wú)法計(jì)算正確的AuthUE并將其發(fā)送到HSS(即相互認(rèn)證的步驟3),故無(wú)法假冒UE的身份。若攻擊者試圖猜測(cè)秘密密鑰“s”,實(shí)際上其無(wú)法應(yīng)對(duì)橢圓曲線離散對(duì)數(shù)問(wèn)題(ECDLP);若攻擊者截獲消息401 Unauthorized(W,AuthHSS)并重播它以模擬HSS,但實(shí)際上截獲的信息已經(jīng)過(guò)期,屬于舊會(huì)話,因此無(wú)法實(shí)現(xiàn)UE側(cè)的驗(yàn)證。
SPIT攻擊:只有知道用戶的身份,才能觸發(fā)SPIT攻擊。文中算法采用基于無(wú)密鑰加密的專用模塊來(lái)模糊這些身份,從而防止此類攻擊發(fā)生。
DoS攻擊:這種攻擊基于SQN的使用及其同步。但是,文中提出的認(rèn)證算法不使用SQN,即不需要同步過(guò)程,從而攻擊者無(wú)法發(fā)起這樣的攻擊。
算法比較如表2所示。
表2 IMS AKA算法與文中算法應(yīng)對(duì)攻擊能力比較
(1)IMS AKA認(rèn)證機(jī)制是基于序列號(hào)SQN的,而文中提出的改進(jìn)后的認(rèn)證機(jī)制不需要任何的同步機(jī)制,因此減少了認(rèn)證時(shí)間并降低了帶寬損耗;
(2)IMS AKA認(rèn)證機(jī)制在認(rèn)證階段過(guò)程中對(duì)UE和P-CSCF建立IPsec關(guān)聯(lián),但是文中提出的認(rèn)證機(jī)制在UE和HSS的相互認(rèn)證之后才建立IPsec關(guān)聯(lián),這樣減少了總身份驗(yàn)證時(shí)間;
(3)IMS AKA機(jī)制使用了5個(gè)函數(shù)來(lái)計(jì)算身份驗(yàn)證向量,但是文中算法僅通過(guò)生成一次性加密身份保護(hù)用戶身份與基于EICC的身份認(rèn)證兩個(gè)模塊完成IMS網(wǎng)絡(luò)安全接入,降低了計(jì)算復(fù)雜度。
IMS AKA是目前IMS網(wǎng)絡(luò)使用最廣泛的認(rèn)證機(jī)制,但是其安全性仍存在一些漏洞并且性能還有提升的空間。針對(duì)這一問(wèn)題,文中提出的優(yōu)化算法采用無(wú)密鑰交換加密技術(shù)和橢圓曲線密碼技術(shù)(ECC)對(duì)IMS AKA進(jìn)行改進(jìn),不僅繼承了IMS AKA機(jī)制可以應(yīng)對(duì)重放攻擊和MITM攻擊的優(yōu)點(diǎn),還能解決IMA AKA不能解決的DoS攻擊和SPIT攻擊。除此之外,該算法相較于IMS AKA,性能得到了增強(qiáng),如降低了CSCF的計(jì)算成本,減少認(rèn)證時(shí)間等。該算法為確保國(guó)家電網(wǎng)公司使用的電力行政交換網(wǎng)絡(luò)的安全接入提供了很好的思路。