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