馬媛媛,李尼格,邵志鵬,徐子超
(1.國(guó)網(wǎng)智能電網(wǎng)研究院有限公司,南京 210003;2.國(guó)家電網(wǎng)公司信息網(wǎng)絡(luò)安全實(shí)驗(yàn)室,南京 210003;3.國(guó)網(wǎng)浙江省電力有限公司信息通信分公司,杭州 310007)
隨著5G 的到來(lái),電力物聯(lián)網(wǎng)的發(fā)展有了新的前景和機(jī)遇。另一方面,設(shè)備安全接入挑戰(zhàn)更加嚴(yán)峻。為滿(mǎn)足垂直行業(yè)的高安全要求,5G 網(wǎng)絡(luò)提出了二次認(rèn)證架構(gòu)[1],采用可擴(kuò)展身份認(rèn)證協(xié)議(EAP)實(shí)現(xiàn)用戶(hù)終端與數(shù)據(jù)網(wǎng)絡(luò)之間的二次認(rèn)證,滿(mǎn)足不同業(yè)務(wù)的安全要求。在海量接入場(chǎng)景下,連接到物聯(lián)網(wǎng)的設(shè)備具有性質(zhì)迥異、數(shù)量龐大的特點(diǎn),需要對(duì)每個(gè)終端逐一認(rèn)證,帶來(lái)了認(rèn)證成本高、效率低的問(wèn)題。
通過(guò)聚合簽密技術(shù),每臺(tái)物聯(lián)網(wǎng)設(shè)備都可以對(duì)采集到的數(shù)據(jù)進(jìn)行簽密[2],并將簽密后的密文發(fā)送到指定設(shè)備。設(shè)備通過(guò)聚合算法將接收到的有符號(hào)加密密文進(jìn)行聚合,得到長(zhǎng)度非常小的密文發(fā)送到處理中心。最后,處理中心對(duì)已簽名加密的密文進(jìn)行驗(yàn)證和解密,同時(shí)實(shí)現(xiàn)設(shè)備的身份認(rèn)證和發(fā)送數(shù)據(jù)的可靠性檢驗(yàn)。
在以往的移動(dòng)通信系統(tǒng)中,針對(duì)認(rèn)證和密鑰協(xié)議的攻擊層出不窮。隨著協(xié)議本身復(fù)雜性的不斷增加,以及攻擊者攻擊能力(如轉(zhuǎn)發(fā)、篡改、偽造等)的不斷提高,協(xié)議中存在的安全漏洞難以人工識(shí)別[3]。過(guò)去已經(jīng)開(kāi)發(fā)了許多安全協(xié)議的模型檢查器,例如ProVerif,TAMARIN 和Scyther。
本文提出了一種適用于電力5G 終端的二次認(rèn)證方法,該方法在電力5G 終端二次認(rèn)證的流程引入無(wú)證書(shū)聚合簽密技術(shù),相比傳統(tǒng)的公鑰密碼體制,在保證安全性的同時(shí)具有計(jì)算和存儲(chǔ)空間消耗少和運(yùn)行效率高的特點(diǎn),同時(shí)避免了傳統(tǒng)公鑰密碼體制中的證書(shū)管理問(wèn)題和基于身份的公鑰密碼體制中的密鑰托管問(wèn)題。對(duì)于適用于電力物聯(lián)網(wǎng)鑒權(quán)和密鑰協(xié)商采用的5G EAP-TLS 協(xié)議,借助ProVerif 工具進(jìn)行形式化驗(yàn)證,找出潛在的漏洞并提出修正方案。
為了克服現(xiàn)有技術(shù)中認(rèn)證成本高、效率低的缺陷,提出了一種適用于電力5G 終端二次認(rèn)證的基于聚合簽密的二次認(rèn)證方法,流程如圖1所示。該方法包括:
圖1 基于聚合簽密的二次認(rèn)證方法流程Fig.1 Flow chart of secondary authentication method based on aggregated signcryption
采用標(biāo)準(zhǔn)模型下高效的基于口令認(rèn)證密鑰協(xié)商協(xié)議[4],建立密鑰傳輸?shù)陌踩ǖ?。二次認(rèn)證觸發(fā)模塊接收到特定的事件觸發(fā)后,檢查主認(rèn)證是否已通過(guò)。在5G 和電力通信網(wǎng)混合組網(wǎng)架構(gòu)中,企業(yè)專(zhuān)有5G 設(shè)備與Internet 服務(wù)器之間沒(méi)有本地流量路徑,因此流量必須到達(dá)運(yùn)營(yíng)商邊緣云中的UPF,然后通過(guò)專(zhuān)線(xiàn)回到企業(yè)內(nèi)部,與企業(yè)局域網(wǎng)設(shè)備進(jìn)行通信。為企業(yè)中的5G 設(shè)備提供5G 應(yīng)用服務(wù)的MEC位于移動(dòng)運(yùn)營(yíng)商邊緣云中。因此,認(rèn)證請(qǐng)求報(bào)文通過(guò)接入網(wǎng)和承載網(wǎng)進(jìn)入運(yùn)營(yíng)商核心網(wǎng)的UPF 進(jìn)行流量卸載,然后送入企業(yè)內(nèi)網(wǎng)的DN-AAA 服務(wù)器。
DN-AAA 服務(wù)器響應(yīng)報(bào)文,生成基于隨機(jī)數(shù)和時(shí)間戳的挑戰(zhàn)碼,采用基于橢圓曲線(xiàn)有限域的無(wú)證書(shū)簽密方案簽密,將簽密消息發(fā)送到電力5G 終端。電力5G 終端的二次認(rèn)證模塊解簽密得到挑戰(zhàn)碼,判斷所述DN-AAA 服務(wù)器的網(wǎng)絡(luò)身份認(rèn)證是否通過(guò)。身份認(rèn)證通過(guò)后,電力5G 終端對(duì)挑戰(zhàn)碼和電力5G 終端的身份認(rèn)證碼采用基于橢圓曲線(xiàn)有限域的無(wú)證書(shū)簽密方案進(jìn)行簽密。
簽密消息通過(guò)接入網(wǎng)和承載網(wǎng)進(jìn)入本地廠(chǎng)站端UPF 進(jìn)行流量卸載,然后送入MEC 設(shè)備進(jìn)行聚合處理。根據(jù)不同的業(yè)務(wù)類(lèi)型,形成不同的業(yè)務(wù)流向?;ヂ?lián)網(wǎng)大區(qū)業(yè)務(wù)及管理大區(qū)低帶寬非實(shí)時(shí)的業(yè)務(wù)經(jīng)由部署在核心網(wǎng)的MEC/UPF 處理后,經(jīng)5G 網(wǎng)絡(luò)EAP 通道返回給AAA 服務(wù)器。生產(chǎn)控制大區(qū)以及管理信息大區(qū)高帶寬低延時(shí)高可靠的業(yè)務(wù)經(jīng)由部署在電網(wǎng)廠(chǎng)站端的MEC/UPF 處理后,通過(guò)正反向隔離裝置,經(jīng)5G 網(wǎng)絡(luò)EAP 通道返回給AAA 服務(wù)器。
DN-AAA 服務(wù)器進(jìn)行聚合解簽密,判斷所述電力5G 終端的身份認(rèn)證是否通過(guò)。身份認(rèn)證通過(guò)后,DN-AAA 服務(wù)器發(fā)送身份認(rèn)證成功聲明到所述電力5G 終端,成功建立電力5G 終端建立到數(shù)據(jù)網(wǎng)絡(luò)的連接。
為增強(qiáng)二次認(rèn)證過(guò)程中密鑰生成中心KGC、電力5G 終端、認(rèn)證服務(wù)器之間密鑰傳輸?shù)陌踩裕捎脴?biāo)準(zhǔn)模型下高效的基于口令認(rèn)證密鑰協(xié)商協(xié)議,建立密鑰傳輸?shù)陌踩ǖ?。在帶外方式分配?jiǎn)單口令給KGC、5G 終端、認(rèn)證服務(wù)器后,利用口令認(rèn)證密鑰交換(PAKE)協(xié)議使得共享低熵口令的用戶(hù)通過(guò)不安全的公共信道安全地生成共享的高熵會(huì)話(huà)密鑰,從而建立密鑰傳輸?shù)陌踩ǖ馈GC 和5G 終端通過(guò)該密鑰協(xié)商協(xié)議進(jìn)行密鑰交換的步驟包括:
1)5G 終端選取一個(gè)隨機(jī)數(shù),利用公開(kāi)參數(shù)計(jì)算消息發(fā)送給KGC;
2)KGC 收到5G 終端的消息后,選取一個(gè)隨機(jī)數(shù),利用公開(kāi)參數(shù)計(jì)算消息和認(rèn)證信息發(fā)送給5G終端;
3)5G 終端收到消息和認(rèn)證信息后,利用公開(kāi)參數(shù)對(duì)認(rèn)證信息進(jìn)行驗(yàn)證,對(duì)5G 終端收到的消息利用公開(kāi)參數(shù)計(jì)算,將得到的值與認(rèn)證信息相比較,一致則通過(guò)驗(yàn)證。驗(yàn)證通過(guò)后計(jì)算出確認(rèn)消息和高熵會(huì)話(huà)密鑰sk,將該密鑰作為和KGC 共享的會(huì)話(huà)密鑰,并將確認(rèn)消息發(fā)送給KGC;
4)KGC 收到確認(rèn)消息后,利用前面的計(jì)算結(jié)果驗(yàn)證確認(rèn)消息。代入公開(kāi)參數(shù)計(jì)算,將得到的值與確認(rèn)消息相比較,一致則通過(guò)驗(yàn)證。驗(yàn)證通過(guò)后,利用公開(kāi)參數(shù)計(jì)算出高熵會(huì)話(huà)密鑰sk;
5)利用高熵會(huì)話(huà)密鑰sk,KGC 和5G 終端之間可以建立安全通道傳輸密鑰。
聚合簽密采用基于橢圓曲線(xiàn)有限域的無(wú)證書(shū)簽密方案。聚合簽密由多個(gè)簽名者、一個(gè)簽密聚合者和一個(gè)驗(yàn)證者組成,這里的參與者分別為電力5G終端、MEC 上的聚合中心、DN-AAA 服務(wù)器。
聚合簽密階段步驟包括:
1)密鑰生成中心KGC 進(jìn)行系統(tǒng)初始化。KGC選取隨機(jī)數(shù)作為主密鑰,并計(jì)算主公鑰;
2)KGC 廣播選取參與運(yùn)算的公開(kāi)參數(shù);
3)電力5G 終端、聚合中心、DN-AAA 服務(wù)器選取隨機(jī)數(shù)作為長(zhǎng)期私鑰,根據(jù)公開(kāi)參數(shù)計(jì)算出對(duì)應(yīng)公鑰,得到公私鑰對(duì),并將公鑰通過(guò)已建立的安全通道發(fā)送給KGC,進(jìn)行注冊(cè);
4)KGC 根據(jù)公開(kāi)參數(shù)計(jì)算出電力5G 終端的部分私鑰,通過(guò)已建立的安全通道發(fā)送給對(duì)應(yīng)終端。同樣,KGC 計(jì)算出聚合中心、DN-AAA 服務(wù)器的部分私鑰,并通過(guò)安全通道發(fā)送到終端;
5)電力5G 終端對(duì)挑戰(zhàn)碼和身份認(rèn)證碼進(jìn)行簽密;
6)簽密消息聚合處理;
7)DN-AAA 服務(wù)器對(duì)5G 電力終端返回的應(yīng)答解簽密。
該方法在電力5G 終端二次認(rèn)證的流程引入無(wú)證書(shū)聚合簽密技術(shù),相比傳統(tǒng)的公鑰密碼體制,在保證安全性的同時(shí)具有計(jì)算和存儲(chǔ)空間消耗少和運(yùn)行效率高的特點(diǎn),同時(shí)又避免了傳統(tǒng)公鑰密碼體制中的證書(shū)管理問(wèn)題以及基于身份的公鑰密碼體制中的密鑰托管問(wèn)題。
本文基于TS 33.501 文檔構(gòu)建5G EAP-TLS 協(xié)議模型,采用ProVerif 驗(yàn)證工具驗(yàn)證協(xié)議的安全屬性并修正。
TS33.501 文檔中描述了3 個(gè)不同的鑒權(quán)協(xié)議,分別是5G AKA 協(xié)議、5G EAP-AKA’ 協(xié)議及5G EAP-TLS 協(xié)議。其中,5G EAP-TLS 協(xié)議主要用于5G 專(zhuān)網(wǎng)或IoT 場(chǎng)景下的鑒權(quán)和密鑰協(xié)商。該協(xié)議以TLS 協(xié)議為基礎(chǔ),包含多種密鑰協(xié)商模式[5]。5G EAPTLS 協(xié)議有4 個(gè)參與方:
1)UE(用戶(hù)設(shè)備),存儲(chǔ)HN(本地網(wǎng)絡(luò))公鑰pk、用戶(hù)的身份SUPI 以及共享長(zhǎng)期密鑰,主要構(gòu)成為USIM。
2)SEAF(安全錨功能),SN(服務(wù)網(wǎng)絡(luò))的主要參與實(shí)體。
3)AUSF(身份認(rèn)證服務(wù)器),本地網(wǎng)絡(luò)的參與實(shí)體,負(fù)責(zé)判斷SEAF 實(shí)體的授權(quán)與否、生成錨定密鑰KSEAF 以及驗(yàn)證來(lái)自UE 的認(rèn)證響應(yīng)的正確性。
4)ARPF(身份認(rèn)證憑證存儲(chǔ)和處理),本地網(wǎng)絡(luò)的參與實(shí)體,負(fù)責(zé)存儲(chǔ)保密信息、授權(quán)SUPI 以及生成認(rèn)證向量,保存本地網(wǎng)絡(luò)私鑰sk,解析SUCI 獲取SUPI。
TS33.501 提出的5G EAP-TLS 認(rèn)證協(xié)議的詳細(xì)步驟如圖2所示。
圖2 5G EAP-TLS 認(rèn)證協(xié)議Fig.2 5G EAP-TLS authentication protocol
使用形式化分析工具分析安全協(xié)議,可以更有效地發(fā)現(xiàn)協(xié)議設(shè)計(jì)缺陷[6]。本文使用形式化分析工具ProVerif 對(duì)5G EAP-TLS 過(guò)程進(jìn)行建模和分析。
ProVerif 主要用于與密碼學(xué)相關(guān)的安全協(xié)議的自動(dòng)驗(yàn)證。其基礎(chǔ)是函數(shù)約簡(jiǎn)的等價(jià)理論、項(xiàng)目和過(guò)程的定義、擴(kuò)展過(guò)程之間的結(jié)構(gòu)等價(jià)、內(nèi)部約簡(jiǎn)等規(guī)則[7]。ProVerif 現(xiàn)在已經(jīng)成功地驗(yàn)證和分析了許多復(fù)雜的安全協(xié)議。
ProVerif 使用Applied Pi 演算描述來(lái)建模分布式系統(tǒng)及其交互,經(jīng)過(guò)處理模塊轉(zhuǎn)換成Horn 子句。ProVerif 的整體結(jié)構(gòu)由協(xié)議輸入、分析驗(yàn)證和結(jié)果輸出3 部分組成,如圖3所示。
圖3 ProVerif 工具整體結(jié)構(gòu)Fig.3 Overall structure of the ProVerif tool
ProVerif 可以輸出網(wǎng)頁(yè)展示結(jié)果。如果協(xié)議是安全的,則不需要證明,直接輸出結(jié)果。如果驗(yàn)證表明某個(gè)安全屬性不滿(mǎn)足,并且該屬性是目標(biāo)可達(dá)的,則ProVerif 將攻擊重構(gòu)。
ProVerif 中對(duì)5G EAP-TLS 協(xié)議形式化建模,需要建模協(xié)議的交互過(guò)程,以及需要驗(yàn)證的屬性描述。
根據(jù)5G EAP-TLS 的協(xié)議流程[8],對(duì)信道建模:c1 代表UE 和SEAF 之間通信的公共信道,c2 代表SEAF 和AUSF 之間的私密信道,c3 代表AUSF 和ARPF 之間的私密信道。
分別對(duì)UE,SN,HN 流程進(jìn)行建模。首先生成用于非對(duì)稱(chēng)加密和簽名的私鑰,并在通道c1,c2 和c3上輸出相應(yīng)的公鑰。SEAFN 是用于派生錨密鑰的服務(wù)網(wǎng)絡(luò)名稱(chēng)。它也在公共頻道上廣播,攻擊者可以訪(fǎng)問(wèn)。然后,協(xié)議過(guò)程是UE,SEF,AUSF 和UDM 過(guò)程無(wú)限復(fù)制的并行組合。
基于3GPP 描述的一些安全要求,通過(guò)對(duì)協(xié)議流程和安全要求的分析,對(duì)以下安全屬性建模[9]:
認(rèn)證屬性:
A1:家庭網(wǎng)絡(luò)和用戶(hù)應(yīng)就預(yù)主密鑰Rprekey 達(dá)成一致。
A2:家庭網(wǎng)絡(luò)和用戶(hù)應(yīng)就彼此的身份達(dá)成一致。
保密屬性:
S1:攻擊者無(wú)法獲得誠(chéng)實(shí)用戶(hù)的預(yù)主密鑰Rprekey。
S2:攻擊者無(wú)法獲得誠(chéng)實(shí)用戶(hù)的會(huì)話(huà)密鑰Ksession。
S3:攻擊者無(wú)法獲取誠(chéng)實(shí)用戶(hù)的身份SUPI。
認(rèn)證屬性由通信斷言捕獲,它可以以“如果協(xié)議中執(zhí)行了某個(gè)事件,那么之前執(zhí)行過(guò)另一個(gè)事件”的形式表示事件之間的關(guān)系。在ProVerif 中,事件的形式是event e(M1,…,Mn),對(duì)應(yīng)斷言的查詢(xún)是:
query x1:t1,...,xn:tn;event(e(M1,...,Mj))==>
event(e’(N1,...,Nk)).
考慮以下通信斷言來(lái)證明認(rèn)證屬性:
query x:bitstring;inj-event(endAUSF(x))
==>inj-event(acceptUE(x)).
query x:bitstring;inj-event(endUE(x))
==>inj-event(acceptAUSF(x)).
query x:key;inj-event(acceptPrek(x))
==>inj-event(sendPrek(x)).
為了證明M 項(xiàng)的保密性,ProVerif 本質(zhì)上解決了一個(gè)可達(dá)性問(wèn)題,即攻擊者是否能達(dá)到M 項(xiàng)可用的狀態(tài)。ProVerif 在協(xié)議模型中進(jìn)行以下查詢(xún),以檢查預(yù)主密鑰Rprekey、會(huì)話(huà)密鑰Ksession 和用戶(hù)身份SUPI 的保密性:
query attacker(Rprekey)
query attacker(Ksession)
query attacker(SUPI)
程序運(yùn)行結(jié)果如圖4所示。
圖4 運(yùn)行結(jié)果Fig.4 Operation result
結(jié)果表明,所有的保密屬性(即S1,S2 和S3)都滿(mǎn)足,而認(rèn)證屬性(即A1 和A2)則被違反。
輸出結(jié)果還包含了違反認(rèn)證屬性的推導(dǎo)過(guò)程,如圖5所示。
圖5 違反認(rèn)證屬性過(guò)程Fig.5 Process of violation of authentication attribute
A1 屬性要求成功終止后,家庭網(wǎng)絡(luò)和用戶(hù)應(yīng)就預(yù)主密鑰Rprekey 達(dá)成一致。攻擊者可以采用中間人攻擊,在用戶(hù)和家庭網(wǎng)絡(luò)之間攔截和轉(zhuǎn)發(fā)消息[10]。當(dāng)用戶(hù)認(rèn)為已經(jīng)與家庭網(wǎng)絡(luò)建立了預(yù)主密鑰Rprekey,此時(shí)家庭網(wǎng)絡(luò)認(rèn)為預(yù)主密鑰正在建立,因此違反了該屬性。
A2 屬性要求成功終止后,家庭網(wǎng)絡(luò)和用戶(hù)應(yīng)就彼此的身份達(dá)成一致。但是在當(dāng)前的5G EAP-TLS協(xié)議中,攻擊者能夠輕松偽造用戶(hù)和家庭網(wǎng)絡(luò)之間的明文握手消息,模擬家庭網(wǎng)絡(luò)并與用戶(hù)建立連接。用戶(hù)無(wú)法驗(yàn)證家庭網(wǎng)絡(luò)的身份,因此違反了該屬性。
針對(duì)攻擊者的可能攻擊路徑,提出了一種可能的修復(fù)方案,將用戶(hù)和家庭網(wǎng)絡(luò)之間用于驗(yàn)證的消息進(jìn)行加密處理,避免攻擊者攔截并偽造消息,模擬家庭網(wǎng)絡(luò)并與用戶(hù)建立連接。同時(shí)在家庭網(wǎng)絡(luò)和用戶(hù)建立預(yù)主密鑰Rprekey 的過(guò)程中增加挑戰(zhàn)-應(yīng)答機(jī)制,避免中間人攻擊的發(fā)生。
二次認(rèn)證是3GPP 為滿(mǎn)足垂直行業(yè)的高安全需求提出的新的架構(gòu),如何進(jìn)一步提高5G 業(yè)務(wù)的安全性和可用性,是一項(xiàng)亟待解決的問(wèn)題。本文提出了一種適用于電力5G 終端的二次認(rèn)證方法,該方法在電力5G 終端二次認(rèn)證的流程引入無(wú)證書(shū)聚合簽密技術(shù),相比傳統(tǒng)的公鑰密碼體制,在保證安全性的同時(shí)具有計(jì)算和存儲(chǔ)空間消耗少和運(yùn)行效率高的特點(diǎn),同時(shí)又避免了傳統(tǒng)公鑰密碼體制中的證書(shū)管理問(wèn)題以及基于身份的公鑰密碼體制中的密鑰托管問(wèn)題。對(duì)于適用于電力物聯(lián)網(wǎng)鑒權(quán)和密鑰協(xié)商采用的5G EAP-TLS 協(xié)議,借助ProVerif 工具進(jìn)行形式化驗(yàn)證,找出潛在的漏洞并提出修復(fù)方案。