# 陳毅 - 讀書會 - 21/07/17
:::info
- [x] 閱讀 Netmanias-05-LTE Security I-Concept and Authentication
:::
## 前言:資安的重要性
就跟其他網際網路服務一樣,只要有封包的傳遞就會有被竊聽的風險,為了避免資料被有心人士竄改或是非法使用,移動通訊網路提供了 Security 方面的功能預防未經授權的存取。
## Scope and Concept of LTE Security
1. LTE Authentication
實施 UE 與網路之間的交互驗證
2. NAS Security
performs integrity protection/verification and ciphering (encryption/decryption) of
NAS signaling between a UE and an MME.
3. AS Security
- performs integrity protection/verification and ciphering of RRC signaling between a UE and an eNB.
- performs ciphering of user traffic between a UE and an eNB.
## 4G 資訊安全領域出現的新朋友
### ASME (Access Security Management Entity)
ASME 是指 AS 從 HSS 接收 Top-level 密鑰的實體,在 LTE 網路中,這個腳色由 MME 扮演。
### AUTN (Authentication Token)
AUTN 供 UE 用於網絡授權驗證,跟 JWT 或是 OAuth 的觀念有點像。
### AV (Authentication Vector)
鑑權向量包含了 4 個參數:
- RAND (隨機數)
- AUTN
- XRES (Expected Response)
XRES 是在 UE 端用來校驗用的,下文會提到。
- $K_{ASME}$
$K_{ASME}$ 是根據 CK/IK 以及 ASME 的 PLMNID 推演得到的一個密鑰。
## 切回主題

### Authentication
> LTE Authentication 旨在鑑別終端與網路端的真偽,防止任何擷取、竄改、偽造可能性。
LTE Authentication 的步驟如下:
1. Attach Request
UE 向 MME 發送 Attach Request ,請求內容包含了 $IMSI,\ UE\ Network\ Capability,\ KSI_{ASME} = 7$ 。
2. MME 向 HSS 請求 AVs
HSS 會利用 EPS AKA Algorithm 產生 $AUTN_{HSS},\ XRES,\ K_{ASME}$ 後將相關參數回傳給 MME 。

3. MME 回應 UE 鑑別請求
MME 會在 AVs 中選擇一組 AV ,提取 $RAND(i),\ AUTN(i),\ K_{ASME}(i)$ 並為其分配一組 $KSI_{ASME}$ 。
4. UE 對訊息進行校對
UE 收到訊息後,會使用 EPS AKA Algorithm 產生 AUTN 並進行核對,如果核對結果正確, UE 會將 $RES(i)$ 回傳給 MME 。
5. MME 收到 $RES(i)$ 之後,會與 XRES 進行比較。
如果順利做到這一步, UE 與 MME 兩端都會順利拿到 $K_{ASME}$ ,供之後的 NAS/AS Security 使用。
### NAS Security
1. NAS Security Mode Command
接續上面的 LTE Authentication , MME 較驗完 RES 的值是否正確後,會向 UE 發送 NAS SMC ,內容包含:

2. NAS Security Mode Complete
UE 根據 MME 選擇的 NAS 加密/完整性演算法產生密鑰 $K_{NASenc},\ K_{NASint}$ 。
取得密鑰以後,對 NAS Command Complete 的訊息進行加密並回傳給負責的 MME ,當 MME 使用兩把密鑰解密, NAS 的安全設定就完成了。
### AS Security
> AS Security 確保 UE 與 eNB 之間的無線安全。
當 NAS 的安全設置完成,便會開始 AS 的安全設置, AS 的設置流程與 NAS Security 基本上一致,主要差別在 MME 會使用演算法計算出 $K_{eNB}$ 並傳送給 eNodeB ,這時 UE 與 eNodeB 都會使用 $K_{eNB}\ 產生 K_{RRCenc},\ K_{RRCint}\ 以及\ K_{UPenc}$ ,前兩者用於保護 RRC signaling messages ,後者則用於加密 Data Plane 的資料。
接著將 Command Complete 的訊息進行加密並傳回 eNodeB 驗證, AS 的安全性設定就到這邊結束。
當設定完成後, RRC 訊號會受到加密以及完整性的保護,使用者的 IP 封包也會在加密後進行傳輸。
## 補充: HMAC
$HMAC (k,m) = H ( (k\ XOR\ opad ) + H( (k\ XOR\ ipad ) + m ) )$
## Reference
- [一文看懂 LTE 的鑒權](https://kknews.cc/zh-tw/code/65y6x9l.html)
- [在 LTE 環境下,具有 DCA 之動態金鑰相互認證的無線通訊系統](http://www.cs.thu.edu.tw/upload_files/99_yifung_02.pdf)
- [LTE NAS 金鑰計算](https://frankchang.me/2020/03/19/lte-knas-derivation/)
- [用于消息验证的 hash 算法 HMAC](https://www.biaodianfu.com/hmac.html)
- [不是祕密的祕密](https://www.ithome.com.tw/voice/127918)