5GS的數(shù)據(jù)保護、安全模式和密鑰更新學(xué)習(xí)筆記_第1頁
5GS的數(shù)據(jù)保護、安全模式和密鑰更新學(xué)習(xí)筆記_第2頁
5GS的數(shù)據(jù)保護、安全模式和密鑰更新學(xué)習(xí)筆記_第3頁
5GS的數(shù)據(jù)保護、安全模式和密鑰更新學(xué)習(xí)筆記_第4頁
5GS的數(shù)據(jù)保護、安全模式和密鑰更新學(xué)習(xí)筆記_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

5GS的數(shù)據(jù)保護5GS還很遙遠,但3GPP文檔也很長,別說通讀一遍,打開都要些勇氣。我決定“分而治之”,拆成小塊來學(xué)。這里和大家分享的,就是其中一小塊——3GPPTS33.501(Securityarchitectureandproceduresfor5Gsystem)的6.4、6.5和6.6章節(jié),5GS的NASsecuritymechanisms、RRCsecuritymechanisms和UPsecuritymechanisms,即5GS的數(shù)據(jù)保護。

數(shù)據(jù)保護是5GS(以及所有移動通信系統(tǒng))的重要功能,特別是在接入側(cè),數(shù)據(jù)通過無線信號傳送,誰都可以從空中截取,數(shù)據(jù)必須進行處理,避免攻擊者對用戶或網(wǎng)絡(luò)造成傷害。最基本的,發(fā)送方應(yīng)對數(shù)據(jù)進行加密(ciphering),避免信息泄露。比如說,“牛魔王”向“小甜甜”發(fā)送“今晚約嗎?”,這要是被“牛夫人”攔截了,后果不堪設(shè)想。

BigSisterisWatchingYou……

比信息泄露更糟糕的,是信息篡改。假如“牛夫人”截取“牛魔王”的消息,篡改后發(fā)送給“小甜甜”,后果就更難料了。因而,發(fā)送方應(yīng)進行完整性保護(integrityprotection),接收方應(yīng)進行完整性校驗(integrityverification),確保數(shù)據(jù)沒有篡改。這還不夠安全,“牛夫人”可能會緩存消息,在適當(dāng)時候發(fā)送給“小甜甜”,也會造成誤會。在完整性保護的基礎(chǔ)上,接收方應(yīng)拒絕接收重復(fù)的數(shù)據(jù),實現(xiàn)重放保護(replayprotection)。

在接入側(cè),保護對象不僅包括用戶面(UserPlane)數(shù)據(jù),還包括控制面(ControlPlane)數(shù)據(jù)。在控制面,NAS保護在NAS層(NAS實體)實現(xiàn),RRC保護在PDCP層(SRB實體)實現(xiàn);在用戶面,UP保護在PDCP層(DRB實體)實現(xiàn)。在5GS中,NAS、RRC和UP都實現(xiàn)了加密保護和完整性保護(包含重放保護)。和EPS相似,在5GS中加密保護和完整性保護使用對稱密鑰算法,即發(fā)送方和接收方共享密鑰。NAS、RRC和UP使用相同的保護算法(加密或完整性),區(qū)別主要是輸入密鑰和輸入?yún)?shù)。在NAS、RRC和UP保護中,輸入密鑰分別為KNASint、KNASenc(NAS密鑰)和KRRCint、KRRCenc、KUPint、KUPenc(AS密鑰)。NAS密鑰由KAMF衍生,AS密鑰由KgNB衍生,具體可參考《5GS的密鑰體系》和《5GS的密鑰衍生》。

事實上,自UMTS以來,數(shù)據(jù)保護機制就沒多大的變化,差異主要在算法。在UMTS中,算法為UEA0和UIA0(Null)、UEA1和UIA1(KASUMI)、UEA2和UIA2(SNOW3G);在EPS中,KASUMI遭到拋棄(專利收費原因),算法為EEA0和EIA0(Null)、128-EEA1和128-EIA1(SNOW3G)、128-EEA2和128-EIA2(AES)、128-EEA3和128-EIA3(ZUC);

5GS沿用了EPS的算法,只是將名字前面的“E”改成了“N”,算法為NEA0和NIA0(Null)、128-NEA1和128-NIA1(SNOW3G)、128-NEA2和128-NIA2(AES)、128-NEA3和128-NIA3(ZUC)。如果算法使用NEA0和NIA0,等同于沒有安全保護(nosecurity)。如果NAS或AS安全性已經(jīng)激活,且使用non-null加密算法(或完整性算法),則不能變更為NEA0(或NIA0)——簡單的說,不能倒退。

先看加密保護。

在發(fā)送方,NAS實體或PDCP實體使用輸入密鑰(KNASenc、KRRCenc或KUPenc)和輸入?yún)?shù)生成KEYSTREAM,明文數(shù)據(jù)(PLAINTEXT)和KEYSTREAM運算得到密文數(shù)據(jù)(CIPHERTEXT)。在接收方,NAS實體或PDCP實體使用(相同的)輸入密鑰和(相同的)輸入?yún)?shù),生成(相同的)KEYSTREAM,密文數(shù)據(jù)(CIPHERTEXT)和KEYSTREAM運算得到明文數(shù)據(jù)(PLAINTEXT)。如果算法使用NEA0,則KEYSTREAM為全零,密文數(shù)據(jù)和明文數(shù)據(jù)相同。

NEA的輸入?yún)?shù)包括:COUNT(32bit)、DIRECTION(1bit)、BEARER(5bit)和LENGTH(長度和NEA算法相關(guān))。DIRECTION表示數(shù)據(jù)發(fā)送方向,上行(uplink)DIRECTION取值為0,下行(downlink)DIRECTION取值為1。在NAS保護中,BEARER表示NAS連接標(biāo)識(NASconnectionidentifier),定義詳見后文;在RRC保護中,BEARER定義參考3GPPTS38.323,取值為3GPPTS38.331定義的(SRB的)RBidentity-1;在UP保護中,BEARER定義參考3GPPTS38.323,取值為3GPPTS38.331定義的(DRB的)RBidentity–1。

在NAS保護中,COUNT構(gòu)成為0x00||NASCOUNT。對于上行,NASCOUNT為BEARER指示的NAS連接的NASULCOUNT(24bit),對于下行,NASCOUNT為BEARER指示的NAS連接的NASDLCOUNT(24bit)。NASULCOUNT或NASDLCOUNT構(gòu)成為NASOVERFLOW||NASSQN。NASSQN(8bit)為NAS消息攜帶的序號,NSASQN到達最大值時翻轉(zhuǎn)為0,同時NASOVERFLOW加1。在RRC保護和UP保護中,COUNT取值為3GPPTS38.323定義的PDCPCOUNT(32bit)。PDCPCOUNT構(gòu)成為HFN||PDCPSN。PDCPSN(12bit或18bit)為PDCPDataPDU攜帶的序號,PDCPSN到達最大值時翻轉(zhuǎn)為0,同時HFN(HyperFrameNumber)加1,HFN長度為32–PDCPSN長度。NASOVERFLOW和HFN不在空中傳遞,UE和網(wǎng)絡(luò)(AMF或gNB)各自維護和推測。

輸入?yún)?shù)COUNT是避免KEYSTREAM復(fù)用的關(guān)鍵。在NAS保護中,NASCOUNT只在KAMF生成時置為0(startvalue)。如果UE在兩個AMF之間來回移動,只要NASCOUNT沒有復(fù)位為0,即使NAS密鑰相同,KEYSTREAM也不會相同。RRC保護和UP保護同理,只有PDCP重置時,PDCPCOUNT才會置為0。

再看完整性保護。

在發(fā)送方,NAS實體或PDCP實體使用輸入密鑰(KNASint、KRRCint或KUPint)和輸入?yún)?shù)(包括保護的數(shù)據(jù),MESSAGE)生成MAC(NAS-MAC或MAC-I),將MAC附加在發(fā)送消息,這個過程稱為完整性保護。在接收方,NAS實體或PDCP實體使用輸入密鑰和輸入?yún)?shù),生成XMAC(XNAS-MAC或XMAC-I),并比對XMAC和MAC,這個過程稱為完整性校驗。如果算法使用NIA0,則MAC和XMAC為全零,完整性校驗總是成功(即沒有完整性保護)。如果發(fā)送方和接收方的輸入密鑰相同,輸入?yún)?shù)也相同,XMAC和MAC應(yīng)該相同。反過來,如果XMAC和MAC相同(完整性校驗成功),說明輸入密鑰和輸入?yún)?shù)相同,即MESSAGE沒有被篡改。同時,接收方會記錄COUNT,并拒絕接收COUNT重復(fù)的MESSAGE,從而實現(xiàn)重放保護。NIA的輸入?yún)?shù)包括:COUNT(32bit)、DIRECTION(1bit)、BEARER(5bit)和MESSAGE——COUNT、DIRECTION、BEARER含義和NEA的輸入?yún)?shù)相同。

如果NAS完整性校驗失敗,AMF和UE丟棄對應(yīng)的NAS消息——3GPPTS24.501指明的部分NAS消息除外,消息類型和相關(guān)處理詳見3GPPTS24.501。如果RRC完整性校驗失敗,gNB和UE丟棄對應(yīng)的PDCPPDU(包含RRC消息),UE可以觸發(fā)恢復(fù)流程(recoveryprocedure),詳見3GPPTS38.331。如果UP完整性校驗失敗,gNB和UE丟棄對應(yīng)的PDCPPDU。

NAS、RRC和UP的加密保護和完整性保護使用相同的算法,但加密保護和完整性保護的順序不同。在NAS保護中,發(fā)送方先對NAS消息進行加密,再對加密后的數(shù)據(jù)進行完整性保護,生成NAS-MAC,構(gòu)成保護的NAS消息;接收方先進行完整性校驗,成功后再進行解密,恢復(fù)原始的NAS消息。在RRC或UP保護中,發(fā)送方先對RRC消息或UP數(shù)據(jù)進行完整性保護,生成MAC-I,再對RRC消息或UP數(shù)據(jù),以及MAC-I進行加密;接收方先進行解密,再進行完整性校驗。NAS、RRC、UP的上述差異,也體現(xiàn)在NAS報文、RRC的PDCP報文和UP的PDCP報文的結(jié)構(gòu)中。5GS沿用了EPS(和UMTS)的保護機制,甚至還沿用了EPS的核心算法(SNOW3G、AES和ZUC),除了NAS報文和PDCP報文的結(jié)構(gòu)和EPS不同,似乎沒什么新花樣了。于是,我又想起了一個老問題:

5GS有什么不同?

在5GS中,如果UE通過3GPP接入(3GPPaccess)在某個PLMN的SN(servingnetwork)注冊,通過non-3GPP接入在其他PLMN的SN注冊,稱為“不同SN的多重注冊”(multipleregistrationindifferentservingnetwork);如果UE通過3GPP接入和non-3GPP接入分別在(同一PLMN)的同一SN注冊,稱為“同一SN的多重注冊”(multipleregistrationinsameservingnetwork)。

無論上述哪種場景,UE都有兩個同時激活的NAS連接(multipleactiveNASconnections)。相比之下,EPS中UE只有一個激活的NAS連接——EPS也有non-3GPP接入,但UE只和SAE-GW連接(trustednon-3GPPaccess直接連接SAE-GW,untrustednon-3GPPaccess通過ePDG連接SAE-GW)。如果UE在不同SN(兩個AMF)注冊,HPLMN和兩個AMF分別執(zhí)行AKA(EAP-AKA'或5GAKA),如果AKA執(zhí)行成功,UE和兩個AMF分別生成兩個“獨立”的5G安全上下文(5Gsecuritycontext),包括“各自”的NAS安全上下文和AS安全上下文。UE分別維護和使用兩個“獨立”的5G安全上下文。UE的兩個NAS連接,就像是一對“平行線”,誰也挨不著誰——雖然UE處于“多重注冊”狀態(tài),但拆開來看,兩邊都可按“單一注冊”狀態(tài)處理。

如果UE在同一SN(同一AMF)多重注冊,就不一樣了。如果UE先通過3GPP接入或non-3GPP接入在某個AMF注冊,在AKA執(zhí)行成功后,UE和AMF生成共享5G安全上下文,如果UE再通過另一種方式(non-3GPP接入或3GPP接入)在同一AMF注冊,AMF可不再執(zhí)行AKA,而是直接使用已有的5G安全上下文——稱為“公用5G安全上下文”(common5Gsecuritycontext)。不過,雖然UE只有一個“公用5G安全上下文”——即一組“公用”的NAS密鑰和NAS算法,但UE依然有兩個(不那么獨立的)NAS連接,通過“各自”的NAS連接標(biāo)識(NASconnectionidentifier)區(qū)分。3GPP接入的NAS連接標(biāo)識為“0x01”,non-3GPP接入的NAS連接標(biāo)識為“0x02”。

兩個NAS連接有“各自”的ULNASCOUNT和DLNASCOUNT,各自獨立維護。如果UE先通過3GPP接入注冊,再通過non-3GPP接入注冊,且“公用5G安全上下文”第一次在non-3GPP接入的NAS連接使用,non-3GPP接入的ULNASCOUNT和DLNASCOUNT先置為0(從頭開始)。

兩個NAS連接有“各自”的連接狀態(tài)。兩個連接的狀態(tài)可能不同,這為“公用5G安全上下文”變更增加了一點困難。在non-mobility場景中,如果接入A(比如,3GPP接入)發(fā)生NASKeyre-keying(3GPPTS33.501Clause)或NASKeyrefresh(3GPPTS33.501Clause)——如果接入B(non-3GPP接入)的狀態(tài)為CM-CONNECTED,AMF和UE不能“馬上”在接入B激活新的NAS安全上下文(B:忙著呢),而是在接入B觸發(fā)NASSMC流程,攜帶新的ngKSI,以及接入A選擇的NAS算法。如果接入B的狀態(tài)不為CM-CONNECTED,則AMF和UE在接入B同時激活新的NAS安全上下文。

相似的,如果UE從接入A收到NASSMC,接入B的狀態(tài)不為CM-CONNECTED,UE可以在兩個連接同時激活新的NAS安全上下文。簡單的說,3GPP接入和non-3GPP接入有“公用5G安全上下文”,變更時也要顧及對方的狀態(tài)——如果對方正忙(CM-CONNECTED),通過NASSMC打個招呼;如果對方不忙,悄無聲息的替換(激活新的NAS安全上下文)就好。

在3GPPaccessmobility場景中,newAMF可能沒有non-3GPP接入的安全上下文(比如說,AMF變更,KAMF也變更),為了對齊AMF和UE——如果non-3GPP接入的狀態(tài)為CM-CONNECTED,AMF在non-3PP接入的NAS連接執(zhí)行NASSMC,激活3GPP接入使用的NAS安全上下文。如果non-3GPP接入的狀態(tài)不為CM-CONNECTED,則AMF和UE在接入B同時激活新的NAS安全上下文。

InitialNASMessage的保護增強

如果UE從空閑態(tài)返回,UE發(fā)送的第一條NAS消息稱為InitialNASMessage。在EPS中,如果UE沒有NAS安全上下文,則InitialNASMessage完全沒有保護(相當(dāng)于裸奔了),即使UE有NAS安全上下文,InitialNASMessage也只有完整性保護,沒有加密保護,攻擊者依然可以獲取大量信息。針對這一點,5GS進行了保護增強。

在5GS中,如果UE從空閑態(tài)返回,存在兩種(可能)場景:場景1:UE沒有NAS安全上下文,InitialNASMessage是unprotected的,只能包含有限的cleartextIE(明文IE),作用是啟用NAS安全性。場景2:UE已有NAS安全上下文,InitialNASMessage是protected的,UE對completeInitialNASMessage(真正意義的InitialNASMessage)進行加密,包含在NAS容器中,添加cleartextIE,再進行完整性保護。

如果InitialNASMessage是unprotected的(場景1),或AMF沒有找到UE指示的NAS安全上下文(場景2),或完整性校驗失敗,UE還有一次發(fā)送“InitialNASMessage”的機會——UE將completeInitialNASMessage放入加密的NAS容器,由NASSecurityModeComplete攜帶給AMF。具體過程如下:Step1:UE向AMF發(fā)送InitialNASMessage。如果UE沒有NAS安全上下文(場景1),InitialNASMessage只包含cleartextIE,比如:用戶標(biāo)識(SUCI或5G-GUTI)、UE安全能力、ngKSI、UE是否來自EPC的指示、additionGUTI,TAUREQ(如果UE在空閑狀態(tài)從LTE進入5GS)。

如果UE已有NAS安全上下文(場景2),InitialNASMessage包含上述cleartextIE,將completeInitialNASMessage放入加密的NAS容器。同時,InitialNASMessage進行完整性保護。如果AMF有UE指示的NAS安全上下文,Step2~4可以省略。AMF將NAS容器包含的completeInitialNASMessage視為響應(yīng)的對象。

Step2:如果AMF無法從本地或lastvisitedAMF(通過5G-GUTI包含的GUAMI查詢)獲得UE指示的NAS安全上下文,或完整性校驗失敗,AMF觸發(fā)鑒權(quán)流程。

Step3:如果AMF觸發(fā)鑒權(quán)流程,且鑒權(quán)成功,AMF向UE發(fā)送NASSecurityModeCommand。如果此前AMF完整性校驗失?。∕AC不一致,或AMF無法找到共享NAS安全上下文),或無法對NAS容器包含的completeInitialNASMessage成功解密——AMF在NASSecurityModeCommand中指示UE(requestinitialNASmessageflag),在NASSecurityModeComplete中包含completeInitialNASMessage(再給你次機會)。

Step4:UE向AMF發(fā)送NASSecurityModeComplete,且進行加密和完整性保護。如果AMF在Step3指示UE(場景2),或UE在Step1發(fā)送unprotected的InitialNASMessage(場景1),UE在NASSecurityModeComplete的NAS容器包含completeInitialNASMessage。AMF將NAS容器包含的completeInitialNASMessage視為響應(yīng)的對象。

Step5:AMF向UE發(fā)送completeInitialNASMessage(來自場景1的step3,或場景2的step1)的響應(yīng),且進行加密和完整性保護。

由上可見,completeInitialNASMessage才是“真正意義”的InitialNASMessage,并總是包含在NAS容器中發(fā)送。如果UE沒有NAS安全上下文(場景1),NAS容器包含在Step4的protected(加密和完整性保護)的NASSecurityModeComplete,如果UE已有NAS安全上下文(場景2),加密的NAS容器包含在Step1的InitialNASMessage——如果AMF解密失敗,或AMF完整性校驗失敗,或AMF沒有找到UE指示的NAS安全上下文,AMF觸發(fā)鑒權(quán)流程,NAS容器包含在Step4的protected的NASSecurityModeComplete再次發(fā)送,消息使用新的NAS安全上下文保護。

UP安全策略

在5GS中,SMF在PDUSession建立過程中將UP安全策略(UPsecuritypolicy)發(fā)送給gNB(或en-gNB,以下省略),指示gNB是否對(各個)DRB進行加密保護和(或)完整性保護。gNB通過RRCConnectionReconfiguration激活UP安全性。如果SMF指示“required”或“NotNeeded”,gNB只要照辦就好。如果SMF指示“required”,但gNB無法滿足要求,gNB拒絕建立相關(guān)UP資源,并返回拒絕原因。如果SMF指示“NotNeeded”,gNB參照3GPPTS23.502流程執(zhí)行。另外,LocalSMF可以根據(jù)本地策略、漫游協(xié)議或管制要求,覆蓋HomeSMF指示的加密策略。

UP安全策略激活過程如下(3GPPTS33.501Clause6.6.2):1a.在通過ASsecuritymodecommand流程激活RRC安全性后,即RRC加密保護和完整性保護激活后,gNB才可以通過RRCConnectionReconfiguration添加DRB。1b.gNB向UE發(fā)送RRCConnectionReconfiguration,根據(jù)從SMF獲得的UP安全策略,指示UE是否激活UP的加密保護和完整性保護。1c.如果gNB指示激活UP完整性保護,且gNB沒有KUPint,gNB生成KUPint,對指示DRB開始完整性保護(對uplinkUP完整性校驗,對downlinkUP完整性保護);相似的,如果gNB指示激活UP加密保護,且gNB沒有KUPenc,gNB生成KUPenc,對指示DRB開始加密保護(對uplinkUP解密,對downlinkUP加密)。

2a.UE對RRCConnectionReconfiguration進行完整性校驗,如果校驗成功:<1>如果gNB指示激活UP完整性保護,且UE沒有KUPint,UE生成KUPint,對指示DRB開始完整性保護(對uplinkUP完整性保護,對downlinkUP完整性校驗);<2>如果gNB指示激活UP加密保護,且UE沒有KUPenc,UE生成KUPenc,對指示DRB開始加密保護(對uplinkUP加密,對downlinkUP解密)。<3>UE向gNB發(fā)送RRCConnectionReconfigurationComplete。

如果DRB的完整性保護沒有激活,gNB和UE不應(yīng)對UP進行完整性保護,即不在PDCP報文加入MAC-I;如果DRB的加密保護沒有激活,gNB和UE不應(yīng)對UP進行加密——意思是,gNB和UE不要自己加戲。

在XnHandover中,sourcegNB向targetgNB發(fā)送HANDOVERREQUEST,包括UP安全策略——如果指示是“required”,targetgNB拒絕無法滿足的PDUSession,并返回拒絕原因。targetgNB接受的PDUSession,targetgNB激活(各個)DRB的加密保護和(或)完整性保護,在HANDOVERCOMMAND中指示UE,UE生成KUPenc和(或)KUPint,激活加密保護和完整性保護。如果指示是“Preferred”,是否激活UP完整性保護,在切換后可以變更。

TargetgNB從sourcegNB接收的PDUSessionID和UP安全策略,通過PATHSWITCHREQUEST發(fā)送給SMF。SMF比對接收UP安全策略和本地UP安全策略(對應(yīng)UE和PDUSessionID),如果不一致,SMF將本地UP安全策略通過PATHSWITCHREQUESTACKNOWLEDGE發(fā)送給targetgNB——targetgNB通過intra-cellhandover更新UE的UP安全策略。如果targetgNB不僅收到UP安全策略,還收到UE安全能力——targetgNB觸發(fā)intra-cellhandover,將選擇的(新的)UP保護算法和NCC(NHChainCounter)發(fā)送給UE,targetgNB和UE生成新的KUPenc和(或)KUPint。NCC可參考《5GS的前向安全》。

在N2Handover中,SMF經(jīng)targetAMF向targetgNB發(fā)送UP安全策略,targetgNB拒絕無法滿足的PDUSession,并經(jīng)targetAMF向SMF返回拒絕原因。targetgNB接受的PDUSession,targetgNB激活加密保護和(或)完整性保護。5GS的安全模式

5GS還很遙遠,但3GPP文檔也很長,別說通讀一遍,打開都要些勇氣。我決定“分而治之”,拆成小塊來學(xué)。這里和大家分享的,就是其中一小塊——3GPPTS33.501(Securityarchitectureandproceduresfor5Gsystem)的6.7章節(jié),5GS的SecurityAlgorithmSelection、Keyestablishment和SecurityModeCommand,即5GS的安全算法選擇、密鑰生成和安全模式(命令),這里重點關(guān)注安全模式。(部分配圖參考網(wǎng)站,為了風(fēng)格保持一致,我重新進行了繪制)

5GS實現(xiàn)了NAS消息、RRC消息和UP數(shù)據(jù)的保護,包括加密保護和完整性保護(包含重放保護)。NAS保護在NAS層實現(xiàn),AS(RRC和UP)保護在PDCP層實現(xiàn)。NAS和AS的保護算法(NEA和NIA)相同,只是輸入密鑰和輸入?yún)?shù)不同,NAS密鑰為KNASint和KNASenc,AS密鑰為KRRCint、KRRCenc、KUPint和KUPenc。5GS的數(shù)據(jù)保護詳見3GPPTS33.501的6.4、6.5、6.7章節(jié),或參考《5GS的數(shù)據(jù)保護》。AMF和UE的NAS實體,或gNB和UE的PDCP實體,使用相同的輸入密鑰(NAS密鑰或AS密鑰),相同的輸入?yún)?shù),和相同的保護算法(NEA或NIA),才能輸出相同的KEYSTREAM,或相同的MAC(NAS-MAC或MAC-I),實現(xiàn)加密和解密,或完整性保護和完整性校驗。輸入?yún)?shù)可以直接獲取(BEARER、DIRECTION和LENGTH)或傳遞(COUNT包含的NASSQN或PDCPSN),網(wǎng)絡(luò)(AMF或gNB)和UE怎么知道使用哪個輸入密鑰,選擇哪個保護算法(null、SNOW3G、AES或ZUC)呢?

這就是“安全模式”的作用。AMF通過NASSMC(NASSecurityModeCommand)流程將AMF使用的密鑰(標(biāo)識)和選擇的算法告知UE,激活NAS安全性;gNB通過ASSMC(ASSecurityModeCommand)流程將gNB選擇的算法告知UE,激活A(yù)S安全性。在NAS和AS安全性激活后,網(wǎng)絡(luò)(AMF或gNB)和UE才開始執(zhí)行NEA和NIA算法,網(wǎng)絡(luò)向UE發(fā)送SecurityModeCommand,就像對UE喊道:

Turniton,Babe~!

輸入密鑰不能在空中接口傳遞,AMF怎么告知UE呢?這要回溯到盤古開天的時候——在5GS的鑒權(quán)流程中,AMF向UE發(fā)送的鑒權(quán)請求(AuthenticateRequest,或EAP-Request/AKA-Challenge),會攜帶KAMF對應(yīng)的ngKSI(KeySetIdentifierin5G),如果鑒權(quán)成功,UE由用戶密鑰K衍生KAMF,和接收的ngKSI綁定。5GS的鑒權(quán)流程詳見3GPPTS33.501的6.1章節(jié),或參考《5GS的鑒權(quán)流程》。

因而,在NASSMC流程中,AMF只需要把ngKSI告知UE,UE就知道AMF使用的是哪次鑒權(quán)流程(5GAKA或EAPAKA')對應(yīng)的KAMF。結(jié)合AMF選擇的NAS算法,UE就可以由KAMF衍生NAS密鑰(KNASint和KNASenc)。

那么,為什么gNB不需要告知UE呢?因為,NAS安全性激活之后,AS安全性才可以激活。AS安全上下文的根密鑰KgNB由KAMF衍生,UE知道AMF使用的KAMF,就知道gNB使用的KgNB。結(jié)合gNB使用的AS算法,UE就可以由KgNB衍生AS密鑰(KRRCint、KRRCenc、KUPint和KUPenc)。KgNB、NAS密鑰和AS密鑰的衍生過程可參考《5GS的密鑰體系》和《5GS的密鑰衍生》。

AMF和gNB選擇的算法,倒是可以大方的在空中接口傳遞——事實上,在NAS安全性和AS安全性激活之前,這些信息也沒辦法得到保護(先有雞還是先有蛋的問題)。不過,在傳遞之前,AMF和gNB需要先選擇NAS算法和AS算法。選擇原則的第一點——選擇網(wǎng)絡(luò)(AMF或gNB)和UE都支持的算法,即從網(wǎng)絡(luò)和UE的能力交集中選擇。那么,AMF和gNB如何獲得UE的(5G)安全能力呢?在REGISTRATIONREQUEST(PeriodicRegistration除外)中,UE向AMF上報5G移動性能力(5GMMCapability)和5G安全能力(UESecurityCapability),AMF再通過INITIALCONTEXTSETUPREQUEST將5G安全能力傳遞給gNB。由此,AMF和gNB獲得UE的5G安全能力。

選擇原則的第二點——選擇本地配置優(yōu)先級最高的算法。按照運營商偏好,AMF配置兩個優(yōu)先級列表,分別用于NAS加密算法和NAS完整性算法。相似的,gNB配置兩個優(yōu)先級列表,分別用于AS加密算法和AS完整性算法。AMF和gNB總是選擇本地配置優(yōu)先級最高,且UE安全能力支持的算法,通過NASSMC和ASSMC告知UE。

另外,為了防止man-in-the-middle(中間人)攻擊,UE在RegistrationRequest上報的UE安全能力,AMF會復(fù)制一份,放在NASSecurityModeCommand中,即對UE進行Replay(重放)。如果發(fā)生biddingdown攻擊,UE接收的UE安全能力和本地保存的不一致,說明網(wǎng)絡(luò)可能存在風(fēng)險,UE應(yīng)拒絕繼續(xù)注冊。

先來看NASSMC。

AMF和UE通過NASSMC流程激活NAS安全性。NASSMC流程包括AMF和UE之間的一對交互消息:AMF向UE發(fā)送NASSecurityModeCommand,UE向AMF返回NASSecurityModeComplete。NASSMC流程具體如下:1a.&1b.&1c.AMF先激活NAS完整性保護,向UE發(fā)送NASSecurityModeCommand,包含replayed的UE安全能力、指示KAMF的ngKSI和AMF選擇的NAS算法。AMF使用KAMF衍生KNASint,對NASSecurityModeCommand進行完整性保護,但沒有加密(notciphered)。AMF使用KAMF衍生KNASenc,在發(fā)送NASSecurityModeCommand后,激活上行NAS消息的解密(deciphering)。2a.UE對NASSecurityModeCommand進行驗證,包括兩部分:1、檢查AMF發(fā)送的UE安全能力和本地保存的是否一致;2、UE使用ngKSI指示的KAMF衍生KNASint,結(jié)合AMF選擇的完整性算法,對NASSecurityModeCommand進行完整性校驗(integrityverification)。如果驗證通過,UE使用ngKSI指示的KAMF衍生KNASenc,激活NAS消息的完整性保護(integrityprotection)和加密保護(ciphering和deciphering)。

2b.UE向AMF發(fā)送NASSecurityModeComplete,消息先進行加密,再進行完整性保護。如果AMF在NASSecurityModeCommand中要求,UE會同時上報PEI(PermanentEquipmentIdentifier)。NASSecurityModeComplete也可能包含completeinitialNASMessage,原因詳見3GPPTS33.501的6.4.6章節(jié),或參考《5GS的數(shù)據(jù)保護》。如果UE驗證不通過,向AMF發(fā)送NASSecurityModeReject。如果UE在(此次)NASSMC之前已有5GNAS安全上下文,使用原有安全上下文對NASSecurityModeReject,以及后續(xù)NAS消息進行保護——如果NASCOUNT已到達最大值,UE不發(fā)送NASSecurityModeReject,直接釋放NAS連接。如果UE在NASSMC之前沒有5GNAS安全上下文,UE向AMF發(fā)送unprotected的NASSecurityModeReject。

AMF使用NASSecurityModeCommand指示的NAS密鑰和NAS算法,對NASSecurityModeComplete進行解密和完整性校驗。如果AMF驗證通過,說明AMF從歸屬網(wǎng)絡(luò)(HomeNetwork)獲得的SUPI和UE使用的SUPI一致——但完整性校驗失敗原因不一定是SUPI不一致。最后,AMF激活下行NAS消息的加密(ciphering),NAS安全性激活完成。NAS安全性激活之后,AMF和UE發(fā)送的每條NAS消息都受到保護。下行方向:AMF先對下行NAS消息進行加密(ciphering),再進行完整性保護(integrityprotection),UE接收后先進行完整性校驗(integrityprotection),通過再進行解密(deciphering),恢復(fù)下行NAS消息;上行方向:UE先對上行NAS消息進行加密(ciphering),再進行完整性保護(integrityprotection),AMF接收后先進行完整性校驗(integrityverification),通過再進行解密(deciphering),恢復(fù)上行NAS消息。

在MobilityRegistrationUpdate(空閑態(tài))中,AMF可能變更——如果targetAMF支持不同NAS算法,或本地優(yōu)先級配置不同,targetAMF可能選擇不同的NAS算法,通過NASSecurityModeCommand發(fā)送給UE;在N2Handover(連接態(tài))中,AMF也可能變更——如果targetAMF支持不同NAS算法,或本地優(yōu)先級配置不同,targetAMF可能選擇不同的NAS算法,通過HANDOVERREQUEST攜帶的NASC(NASContainer)發(fā)送給UE,NASC作用等同于NASSecurityModeCommand。

如果AMF支持N26接口的互操作,NASSecurityModeCommand包含AMF選擇的EPSNAS算法(定義見3GPPTS33.401),UE保存在UE安全上下文,后續(xù)在EPS使用。在N2Handover或IdleModeMobility中,如果AMF變更——sourceAMF選擇的EPSNAS算法,作為5G安全上下文的組成發(fā)送給targetAMF。

再來看ASSMC。

gNB和UE通過ASSMC流程激活A(yù)S安全性。ASSMC流程包括gNB和UE之間的一對交互消息:gNB向UE發(fā)送ASSecurityModeCommand,UE向gNB返回ASSecurityModeComplete。ASSMC流程具體如下:NAS安全性是AS安全性的基礎(chǔ),在NAS安全性激活后,才會激活A(yù)S安全性。AMF由KAMF和UPLINKNASCOUNT衍生KgNB,通過INITIALCONTEXTSETUPREQUEST(SecurityKey)發(fā)送給gNB,gNB觸發(fā)ASSMC流程。

ASSMC流程只在UE和gNB之間建立初始UE上下文使用,UE從RRC_IDLE到RRC_CONNECTED轉(zhuǎn)換,使用初始KgNB(InitialKgNB)激活A(yù)S安全性——由于UPLINKNASCOUNT是“新鮮”的,保證初始KgNB是“新鮮”的,AS密鑰也是“新鮮”的。同樣道理,作為AS算法的輸入,PDCPCOUNT(HFN||PDCPSN)也不應(yīng)復(fù)位為0,確保不會生成重復(fù)的KEYSTREAM或MAC(MAC-I)。1a.&1b.&1c.gNB從AMF獲得KgNB后,先激活A(yù)S完整性保護。gNB向UE發(fā)送ASSecurityModeCommand,包含選擇的AS算法(RRC和UP的加密算法和完整性算法)。gNB由KgNB衍生AS密鑰(KRRCint、KRRCenc、KUPint、KUPenc),并對ASSecurityModeCommand進行完整性保護,但沒有加密(notciphered)。UE由KgNB衍生AS密鑰,對ASSecurityModeCommand進行完整性校驗。如果通過,向gNB發(fā)送完整性保護的ASSecurityModeComplete——不同于NAS,ASSecurityModeComplete沒有加密。如果UE無法執(zhí)行ASSecurityModeCommand的任一部分,UE返回unprotected的ASSecurityModeFailure。gNB對ASSecurityModeComplete進行完整性校驗,如果通過,激活上行RRC消息的解密。gNB在發(fā)送ASSecurityModeCommand后開始下行RRC消息的加密,在接收并成功校驗ASSecurityModeComplete后開始上行RRC消息的加密。UE在發(fā)送ASSecurityModeComplete后開始上行RRC消息的加密,在接收并成功校驗ASSecurityModeCommand后開始下行RRC消息的解密。AS安全性激活之后,gNB和UE發(fā)送的每條RRC消息都受到保護,加密和完整性保護的順序和NAS不同。下行方向:gNB先對下行RRC消息進行完整性保護(integrityprotection),再進行加密(ciphering),UE接收后先進行解密(deciphering),恢復(fù)下行RRC消息,再進行完整性校驗(integrityprotection);上行方向:UE先對上行RRC消息進行完整性保護(integrityprotection),再進行加密(ciphering),gNB接收后先進行解密(deciphering),恢復(fù)上行NAS消息,再進行完整性校驗(integrityverification)。

在XnHandover中,sourcegNB向targetgNB發(fā)送HANDOVERREQUEST,包含UE的5G安全能力,以及sourcegNB(sourceCell)使用的AS算法。TargetgNB選擇本地配置優(yōu)先級最高,且UE能力支持的AS算法。如果TargetgNB選擇不同的AS算法,通過HANDOVERCOMMAND指示UE。UE如果沒有收到指示,沿用切換前的AS算法——一個例外場景,如果gNB和ng-eNB之間發(fā)生XnHandover,HANDOVERCOMMAND總是包含targetNG-RAN選擇的AS算法。

在無線切換完成后,targetgNB將從sourcegNB獲得的5G安全能力,通過PATHSWITCHREQUEST發(fā)送給AMF。AMF比對收到的UE的5G安全能力,和本地保存的UE的5G安全能力——如果不一致,將本地保存的UE的5G安全能力,通過PATHSWITCHREQUESTACKNOWLEDGE發(fā)送給targetgNB。AMF可記錄事件(視為異常),或更進一步,上報告警。

如果targetgNB從AMF收到(新的)UE的5G安全能力,應(yīng)對AS安全上下文進行更新。TargetgNB選擇本地配置優(yōu)先級最高,且(新的)UE能力支持的AS算法。如果targetgNB選擇的AS算法不同于此前(Xn切換后),targetgNB觸發(fā)Intra-CellHandover(原地切換),通過RRCConnectionReconfiguration將(重新)選擇的AS算法和NCC(NHChainCounter)發(fā)送給UE。NCC可參考《5GS的前向安全》。

SourcegNB將sourceCell使用的AS算法發(fā)送給targetgNB,還有一個作用——如果UE進行RRC連接重建(切換不順利),targetgNB可以對UE在SRB1發(fā)送的RRCReestablishmentComplete進行解密和完整性校驗。相似的,在N2Handover中,SourcegNB將sourceCell使用的AS算法,包含在sourcegNB到targetgNB的透明容器,經(jīng)sourceAMF和targetAMF(非禮勿視)轉(zhuǎn)發(fā)給targetgNB,如果UE進行RRC連接重建,targetgNB可以進行解密和完整性校驗。

在N2Handover中,如果AMF變更——sourceAMF將UE的5G安全能力發(fā)送給targetAMF。TargetAMF將UE的5G安全能力通過HANDOVERREQUEST發(fā)送給targetgNB。TargetgNB選擇本地配置優(yōu)先級最高,且UE能力支持的AS算法。如果TargetgNB選擇不同的AS算法,通過HANDOVERCOMMAND指示UE。UE如果沒有收到指示,沿用切換前的AS算法。

5GS有什么不同?

第一點,UP安全性的激活機制。在EPS中,UP只有加密保護(RN場景除外),UP安全性(加密保護)和RRC安全性(加密保護和完整性保護)都通過ASSMC激活。在5GS中,UP增加了完整性保護,ASSMC只用于UP和RRC的算法協(xié)商,以及RRC安全性的激活。UP安全性在建立DRB時(RRCConnectionReconfiguration)激活,且取決于gNB從SMF獲得的UP安全策略(UPSecurityPolicy),詳見3GPPTS33.501的6.6.2章節(jié),或參考《5GS的數(shù)據(jù)保護》。第二點,KAMF水平衍生(KAMFHorizontalDerivation)。在IdleMobilityRegistration和N2Handover中,AMF可能變更——如果sourceAMF進行KAMF水平衍生,由KAMF(oldKAMF)衍生KAMF'(newKAMF),ngKSI保持不變。在IdleMobilityRegistration中,KDF(KeyDerivationFunction)的FC為0x72,P0(DIRECTION)為0x00,P1(COUNT)為uplinkNASCOUNT;在N2Handover中,KDF的FC為0x72,P0為0x01,P1為downlinkNASCOUNT。

SourceAMF將KAMF'(作為KAMF)傳遞給targetAMF,并攜帶ngKSI、keyAMFChangeInd和keyAMFHDerivationInd,表示KAMF水平衍生。TargetAMF保存KAMF'(作為KAMF),并將NASCOUNT重置為0。在targetAMF和UE上,此時ngKSI對應(yīng)的KAMF是不同步的——targetAMF認為是KAMF'(newKAMF),UE認為是KAMF(oldKAMF)。因而,targetAMF告知UE,先由ngKSI對應(yīng)的KAMF水平衍生KAMF'(小火雞,表急),再由KAMF'衍生NAS密鑰、KgNB和AS密鑰。在IdleMobilityRegistration中,targetAMF在NASSecurityModeCommand攜帶K_AMF_change_flag,這樣UE就知道要進行KAMF水平衍生;在N2Handover中,K_AMF_change_flag(置為1)由HANDOVERREQUEST的NASC攜帶,同時targetgNB在HANDOVERCOMMAND中攜帶keySetChangeIndicator,指示UE進行ASre-keying。

UE收到K_AMF_change_flag,先由ngKSI對應(yīng)的KAMF水平衍生KAMF',再由KAMF'衍生NAS密鑰、KgNB和AS密鑰,并將NASCOUNT重置為0。詳見3GPPTS33.501的6.9.3章節(jié),或參考《5GS的前向安全》。

第三點,RRC_INACTIVE的相關(guān)流程。UE在RRC_INACTIVE到RRC_CONNECTED的狀態(tài)轉(zhuǎn)換中,gNB可能變更——sourcegNB將UE的5G安全能力,以及sourceCell使用的AS算法,通過Xn-APRetrieveUEContextResponse發(fā)送給targetgNB。TargetgNB選擇本地配置優(yōu)先級最高,且UE能力支持的AS算法。如果targetgNB選擇原來的AS算法,衍生KRRCint和KRRCenc,用于保護在SRB1發(fā)送給UE的RRCResume。如果targetgNB不支持原來的AS算法,或targetgNB選擇不同的AS算法,targetgNB在SRB0向UE發(fā)送RRCSetup,進行RRC連接重建,就像UE本來處于RRC_IDLE一樣,UE執(zhí)行基于NAS的RRCRecovery,通過ASSMC流程和targetgNB協(xié)商合適的AS算法。

相似的,在RNAUpdate流程中,如果sourcegNB向targetgNB“轉(zhuǎn)移”(Relocate)UE上下文。sourcegNB將UE的5G安全能力,以及sourceCell使用的AS算法,通過Xn-APRetrieveUEContextResponse發(fā)送給targetgNB。TargetgNB按照相同原則選擇AS算法,向UE發(fā)送RRCResume(如果AS算法不變)或RRCSetup(如果AS算法變更)。5GS的密鑰更新5GS還很遙遠,但3GPP文檔也很長,別說通讀一遍,打開都要些勇氣。我決定“分而治之”,拆成小塊來學(xué)。這里和大家分享的,就是其中一小塊——3GPPTS33.501(Securityarchitectureandproceduresfor5Gsystem)的6.9.4章節(jié),5GS的Key-change-on-the-fly,即5GS的密鑰更新。

所謂“Key-change-on-the-fly”,就是對網(wǎng)絡(luò)和UE“正在”(on-the-fly)使用的密鑰進行更新。比如說,AMF和UE共享的NAS密鑰(KNASint和KNASenc),或gNB和UE共享的AS密鑰(KRRCint、KRRCenc、KUPint和KUPenc)。網(wǎng)絡(luò)(AMF或gNB)和UE用的好好的(都上天了),為什么要更新呢?

Lifeisshort…

人生苦短,密鑰也是。密鑰的生命周期,就是一個密鑰安全保護數(shù)據(jù)的時間。密鑰使用時間越長,被破解幾率就越大,因此各種系統(tǒng)(比如銀行)都要求用戶定期更換密碼——不然總有一天會被猜到。給密鑰設(shè)定合適的生命周期,攻擊者沒有足夠時間破解,可以保證系統(tǒng)安全性。除此此外,在移動通信系統(tǒng)(包括5GS)中,還有一個引入風(fēng)險的因素,就是“計數(shù)器翻轉(zhuǎn)”,即COUNT的WrapAround。

以NAS消息的加密保護為例。AMF和UE由KAMF和NAS算法(AlgorithmIdentity)衍生KNASenc,作為NEA(加密算法)的輸入密鑰KEY。在發(fā)送方,NAS實體使用輸入密鑰和輸入?yún)?shù)生成KEYSTEAM,明文數(shù)據(jù)(PLAINTEXT)和KEYSTREAM運算得到密文數(shù)據(jù)(CIPHERTEXT)。在接收方,NAS實體使用(相同的)輸入密鑰和(相同的)輸入?yún)?shù),生成(相同的)KEYSTREAM,密文數(shù)據(jù)(CIPHERTEXT)和KEYSTREAM運算得到明文數(shù)據(jù)(PLAINTEXT)。詳見3GPPTS33.501的6.4、6.5和6.6章節(jié),或參考《5GS的數(shù)據(jù)保護》。NEA的輸入?yún)?shù)包括COUNT、BEARER、DIRECTION和LENGH。COUNT作為輸入“新鮮因子”,在輸入密鑰(KNASenc)不變時,確保同一方向(DIRECTION),同一NAS連接(BEARER)的不同NAS消息,不會使用相同的KEYSTREAM。在NAS保護中,COUNT(32bit)構(gòu)成為0x00||NASCOUNT,NASCOUNT為BEARER指示的NAS連接的NASULCOUNT(上行)或NASDLCOUNT(下行),NASCOUNT構(gòu)成為NASOVERFLOW||NASSQN。NASSQN(8bit)為(受保護的)NAS消息攜帶的序號,NASSQN達到最大值時翻轉(zhuǎn)為0,同時NASOVERFLOW(16bit)加1。在KAMF(NAS安全上下文的根密鑰)生成后,NASULCOUNT和NASDLCOUNT的初始值為0。AMF和UE激活NAS安全性后,NAS消息開始攜帶NASSQN,AMF或UE每發(fā)送一條NAS消息,NASDLCOUNT或NASULCOUNT會加1。只要KAMF保持不變,NASULCOUNT和NASDLCOUNT就不會復(fù)位為0——確保COUNT總是“新鮮”的。

不過,NASCOUNT長度有限,如果一直遞增下去,總會達到最大值(2^24–1)。如果NAS實體繼續(xù)發(fā)送NAS消息,NASCOUNT就會翻轉(zhuǎn)為0——于是COUNT為0,KEYSTREAM開始出現(xiàn)重復(fù)。在安全保護中,重復(fù)是大忌。舉個例子,在電影《模仿游戲》中,Turing(卷福)突然意識到,德軍每天播報的前幾個字是相同的,由此大幅減少計算量,最終成功破解ENIGMA(重復(fù)明文和重復(fù)密鑰一樣危險)。

NEA的輸入?yún)?shù)包括COUNT、BEARER、DIRECTION和LENGH。除了COUNT,其他三個參數(shù)相對固定(總不能讓NAS實體換個連接,或換個方向發(fā)送吧)。因此,為了避免KEYSTREAM重復(fù),在COUNT翻轉(zhuǎn)前,唯一的選擇就是更新輸入密鑰(NAS密鑰)。相似的,在RRC保護和UP保護中,COUNT為PDCPCOUNT(HFN||PDCPSN),在COUNT翻轉(zhuǎn)前,唯一的選擇也是更新輸入密鑰(AS密鑰)。AMF和UE由KAMF、AlgorithmTypeDistinguisher(N-NAS-enc-alg或N-NAS-int-alg)和AlgorithmIdentity衍生NAS密鑰;gNB和UE由KgNB、AlgorithmTypeDistinguisher(N-RRC-enc-alg、N-RRC-int-alg、N-UP-enc-alg或N-UP-int-alg)和AlgorithmIdentity衍生AS密鑰實現(xiàn)AS密鑰更新(參考《5GS的密鑰體系》和《5GS的密鑰衍生》)。AlgorithmTypeDistinguisher由保護場景(保護NAS、RRC還是UP,加密保護還是完整性保護)決定,AlgorithmIdentity(表示Null、SNOW3G、AES或ZUC)由優(yōu)先級列表和UE能力決定——可見,只能通過更新KAMF實現(xiàn)NAS密鑰更新,只能通過更新KgNB實現(xiàn)AS密鑰更新。

KgNB也由KAMF衍生(KAMF:Iamyourfather),AS安全上下文關(guān)聯(lián)于NAS安全上下文(NAS安全性也先于AS安全性激活)。因而,網(wǎng)絡(luò)可以只更新KgNB和AS密鑰,但不可以只更新KAMF和NAS密鑰。更新KAMF,必然更新KgNB(如果已經(jīng)存在),5GS的整個密鑰體系,包括NAS安全上下文的根密鑰KAMF和NAS密鑰,以及AS安全上下文的根密鑰KgNB和AS密鑰,都會先后更新。

先看NAS部分。

可以通過幾種方式獲得新KAMF,最簡單的,是AMF觸發(fā)AKA(EAP-AKA'或5GAKA)流程,從SEAF獲得新KAMF?;蛘?,如果AMF有未激活的原生NAS安全上下文(比如說,UE此前訪問過5GS,從EPS切換到5GS后,一直使用映射的5G安全上下文),AMF也可以選擇激活,這樣就不用觸發(fā)AKA了——這個安全上下文的NASCOUNT要足夠小(SufficientlyLow),否則激活的意義就沒那么大了(COUNT很快又翻轉(zhuǎn))。

在MobilityUpdateRegistration中,AMF還有一個選擇,就是“有絲分裂”——由當(dāng)前KAMF衍生KAMF',這樣也不用觸發(fā)AKA流程。NewAMF從UE收到RegistrationRequest,轉(zhuǎn)發(fā)給OldAMF。如果OldAMF進行KAMF的水平衍生(HorizontalDerivation),取出RegistrationRequest的NASSQN,構(gòu)成(UL)COUNT(0x00||NASOVERFLOW||NASSQN),由KAMF和(UL)COUNT衍生KAMF',詳見3GPPTS33.501的附錄A.13,或參考《5GS的前向安全》。OldAMF將KAMF'和OldngKSI關(guān)聯(lián),將NASUPLINKCOUNT和NASDOWNLINKCOUNT重置為0。OldAMF將ngKSI、KAMF'(作為KAMF)、NASCOUNT和KeyAmfHDerivationInd發(fā)送給NewAMF。NewAMF向UE發(fā)送NASSMC,攜帶ngKSI和Addition5GSecurityInformation——HDP(HorizontalDerivationParameter)置為1(KAMFHorizontalDerivationRequired)。

在UE側(cè):如果NASSMC的ngKSI和當(dāng)前ngKSI不同,激活新ngKSI對應(yīng)的NAS安全上下文——可能來自于重新執(zhí)行的AKA,或原有5GNAS安全上下文。如果NASSMC的ngKSI和當(dāng)前ngKSI相同,且包含Additional5GSecurityInformation,HDP為1——UE按照和OldAMF相同的方式,由KAMF和NASUPLINKCOUNT(由RegistrationRequest攜帶的NASSQN構(gòu)成)水平衍生KAMF'。

無論AMF重新觸發(fā)AKA流程,激活原有的原生5GNAS安全上下文,還是由KAMF水平衍生KAMF',NAS安全上下文的根密鑰KAMF都發(fā)生了更新,AMF應(yīng)由新的KAMF衍生新的NAS密鑰。AMF通過NASSMC(NASSecurityModeCommand)激活新的NAS安全上下文,包括新的KAMF和新的NAS密鑰。

再看AS部分。

如果gNB還沒有UE上下文,AMF由當(dāng)前KAMF(可能是新的KAMF)和NASUPLINKCOUNT衍生KgNB,通過NGAPINITIA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論