一文看懂LTE的鑒權
今天,我們來說說LTE的鑒權。
對於任何通信系統,安全都是至關重要的。
我們經常聽說的複製卡、偽基站,都是對通信系統的威脅,對我們信息安全的威脅。
所謂鑒權,就是鑒別終端或網路的真偽,保證通信數據的安全(不被截取、不被篡改、不被偽造)。
我們就以LTE系統為例,說明一下移動通信網路的鑒權方法。
一個簡單的LTE網路架構,是下面這樣的:
LTE控制面的協議棧,如下圖:
正如上圖所示,LTE是一個分層的通信系統。UE和eNodeB之間,是RRC信令。UE和MME之間,是更上層的NAS信令。
正因為如此,針對不同信令,就要採取不同的安全管理層級,就是針對AS層的AS安全,以及針對NAS層的NAS安全。
AS(Access Stratum,接入層)安全
UE和eNB之間的安全,包括RRC信令的機密性保護和完整性保護,用戶面機密性保護。
NAS(Non Access Stratum,非接入層)安全
UE和MME之間的安全,包括NAS信令的機密性保護和完整性保護。
說到鑒權,就一定要先知道什麼是鑒權向量(Authentication Vector)。
鑒權向量,就是一組用於鑒權的參數組。
這個參數組,包括4個參數,分別是:
RAND(RandomChallenge,隨機數)
RAND是網路提供給UE的不可預知的隨機數。
AUTN(AuthenticationToken,鑒權令牌)
AUTN的作用是提供信息給UE,使UE可以用它來對網路進行鑒權。
XRES(ExpectedResponse,預期響應)
XRES是期望的UE鑒權響應參數。用於和UE產生的RES(或RES+RES_EXT)進行比較,以決定鑒權是否成功。
KASME
KASME是根據CK/IK以及ASME的PLMNID推演得到的一個根密鑰。
說明:
1 XRES裡面的X,就是Expected,「預期的」的意思。後面會提到的好幾個詞,都帶有這個X。「X某某某」就是和「某某某」進行比較用的。
2 什麼是ASME?
ASME,接入安全管理實體。該實體是接入網從HSS接收最高級(top-level)密鑰的實體。在LTE網路下,MME扮演ASME的角色。
上面這4個參數,也就是通常我們所說的LTE鑒權四元組。
我們還是直接看看完整的LTE鑒權流程,在流程中解釋吧。
參與認證和密鑰協商的有這三個主體:UE、MME 和 HSS。
GIF
我們把它們拎出來:
第步
:UE 向 MME 發送自己的 IMSI 與 HSS 的 IDHSS標識等身份信息,請求接入;
第步
:MME 根據請求 IDHSS,向對應的 HSS 發送鑒權數據請求,在請求中包括有用戶的身份信息 IMSI 與本服務網的身份信息 SNID;
第步
:HSS 收到鑒權請求後,在自己的資料庫中查找 IMSI 與 SNID,驗證這 2 個實體的合法性。如果驗證通過,則生成鑒權向量組 AV(1,…,n)。
第步
:HSS將生成的鑒權向量組 AV(1,…,n)作為鑒權數據響應,發回給 MME。
生成鑒權向量的演算法如下:
SQN是啥?
為了抵禦重放攻擊,UE 和 HSS 都各自維持一個序列號計數器 SQN。
其中 HSS 維持的是SQNHSS負責為每一個生成的 AV 產生一個新的序列號 SQN。UE 維持的是SQNUE用於保存已接收 AV 中的最大 SQN 值。
KDF是啥?
密鑰生成函數,Key derivation functions。KDF用於生成 Security各種演算法的輸入密鑰。
第步
:MME 收到應答後,存儲 AV(1,…,n),再從中選擇一個 AV(i),提取出 RAND(i)、AUTN(i)、KASME(i)等數據,同時為 KASME(i)分配一個密鑰標識KSIASME(i)。
第步
:MME向 UE 發送用戶認證請求,帶有RAND(i)、AUTN(i)、KASME(i)等數據;
第步
:UE 收到認證請求後,通過提取和計算 AUTN(i)中的 MAC 等信息,計算XMAC,比較 XMAC 和 MAC 是否相等,同時檢驗序列號 SQN 是否在正常的範圍內,以此來認證所接入的網路;
演算法如下:
如果認證通過,則計算 RES(i)與 KASME (i)。
第步
:UE給MME發用戶鑒權請求響應消息,將計算出的RES(i)傳輸給 MME。
第步
:MME 將收到的 RES(i)與 AV(i)中的 XRES(i)進行比較,如果一致,則通過認證;
第步
:在雙向認證都完成後,MME 與 UE 將KASME(i)作為基礎密鑰,根據約定的演算法推演出加密密鑰CK與完整性保護密鑰IK,隨後進行保密通信。
至此,EPS-AKA鑒權過程結束。
我們再看一遍整個過程(動圖):
GIF
參數比較多哈!大家可能會比較暈。。。
其實,大家看到的K***什麼的,都是從根密鑰K里逐級生成的。不同的K***,存在於不同的地方,用於不同的目的。
各個密鑰之間的關係如下圖:
繼續往下說,剛才~,是鑒權的過程。
鑒權之後,是完整性保護和加密過程。
首先我們介紹一下:安全模式控制(Security Mode Control,簡稱SMC)。
SMC用於激活終端和網路側間信息的安全交互,包括NAS SMC和AS SMC兩部分。
安全模式控制主要包括網路側發給UE的 Security Mode Command和UE回復給網路側的Security Mode Complete兩條信令。
SMC流程主要完成終端和網路側對所使用的安全演算法的協商,並以KASME或KeNB為基礎, 生成相應安全演算法所需的密鑰,初始網路側和終端間消息的安全交互。
其實,消息安全交互的連接建立主要包括以下幾個過程:
1、建立RRC連接,同時也建立起SRB1(SRB,Signalling Radio Bearer);
2、建立NAS連接;
3、發起AKA過程,完成UE和網側進行雙向鑒權和共同基礎密鑰KASME的協商(上文中的~);
4、發起NAS安全模式控制(SMC)流程,激活NAS安全機制,隨後交互的NAS消息都進行安全保護。
5、發起AS安全模式控制(SMC)流程,激活AS安全機制,隨後交互的RRC消息都進行安全保護。
我們來分別看一下4和5的流程。
NAS安全模式控制流程
:MME發送NAS Security Mode Command消息給UE,包括重放(replayed)UE安全性能,所選擇的NAS演算法,標識KASME的eKSI,以及在空閑移動狀態下建立一個映射環境時所需的NONCEUE和 NONCEMME。這條消息需要進行完整性保護(但不需要加密),所使用的NAS完整性保護密鑰KNAS int基於消息中eKSI所標識(indicated)的KASME。
:UE需要驗證NAS Security Mode Command消息的完整性。包括確保MME發送的UE安全性能與UE中儲存的UE安全性能相匹配,以確保UE安全性能不會被「攻擊者」修改,並且使用所指示的NAS完整性保護演算法和基於eKSI所標識的KASME生成的NAS完整性保護密鑰KNAS int驗證其完整性保護。
:MME使用NAS Security Mode Command消息中標識的密鑰和演算法對NAS Security Mode Complete消息進行解密和檢查完整性保護。
此時,可以認為NAS層的安全性已經激活,可以進行安全的NAS層對話。
注意:
MME在發送NAS security mode command消息後,開始進行再該安全環境下的NAS上行解密。
MME在接收到NAS security mode complete消息後,開始進行在該安全環境下的NAS下行加密。
:如果ME中NAS Security Mode Command消息的驗證不成功,ME應回復一條NAS Security Mode Reject消息。
AS安全模式控制流程
:eNB發送AS Security Mode Command消息給UE,包括所選的AS演算法。並且該消息使用當前KASME生成的完整性保護密鑰KRRC int保護。
:UE發送AS Security Mode Complete消息給eNB,使用AS Security Mode Command消息中所選擇的AS演算法和使用當前KASME生成的完整性保護密鑰KRRC int保護。
此時,可以認為AS層的安全性已經激活,可以進行安全的AS層對話。
注意:
eNB中,發送AS Security Mode Command後開始RRC和UP的下行加密。
接收到AS Security Mode Complete並驗證其完整性成功後開始上行解密。
UE中,接收到AS Security Mode Command並驗證其完整性成功後開始下行解密。
發送AS Security Mode Complete後開始RRC和UP的上行加密。
:如果在UE中AS Security Mode Command消息的任何控制都沒有成功,ME將回復一條Security Mode Failure消息。
總之,NAS/AS安全模式控制流程,就是包裝NAS/AS層面的完整性和加密安全。在這之後,一個安全的連接就算是真正建立起來了。
好啦,LTE的鑒權流程,就介紹到這裡。
如果沒有聽明白,也沒關係,LTE安全管理專題課程即將上線(更新入「從零開始學LTE課程」),老師的視頻講解,一定能讓你徹底搞懂滴!
TAG:奔跑的C友 |