ETSI TS 131 102 V16.4.0 (2020-07)第6节
在 TS 33.102 和 TS 33.103  中 定义了 3G的安全性。本节给出 USIM支持的安全功能
1)向网络认证usim
2) 向usim认证网络
3) 想usim认证用户
4)通过无线电接口的数据机密性
5) 文件访问条件
6) 兼容GSM参数的转化功能
认证和密钥协商过程
本接描述了由网络调用的认证机制\加密\完整性密钥生成。对于USIM/UE接口的相应过程,请参考第5节.
该机制通过在用户和网络之间共享一个密钥K来实现相互认证。密钥只在USIM和用户归属的Auc之间共享。此外,为了支持网络鉴权,USIM和用户归属环境还分别保持对计数值 SQN_ms和 SQN_he的追踪。SQN_he是一个在HLR/Auc中保存的,对于每个用户而言都是独立的计数值。SQN_ms表示USIM接受的最大的序列值。
当SN/VLR(服务的网络,拜访位置寄存器)启动身份认证和密钥协商后,它将选择下一条认证向量,并发送RAND和AUTN(authentication token)参数给用户.每个AUTN含有:SQN, AMF(Authenticaiton Management Field), 通过RAND/SQN/AMF计算出的MAC(message authentication code).
USIM检查AUTN是否可以接受,如果可以,产生一个响应RES,发回给 SN/VLR.
SN/VLR将接收到的RES和XRES(鉴权向量的一个元素)进行比较,如果匹配,SN/VLR就认为 认证和密钥协定成功。
USIM还将计算出Ck和Ik,被MEI用来执行加密和完整性功能。
在认证过程中,会用到密钥K, 它的长度为128位或者256位,存储在USIM中。
在USIM中可以存储多个K, 在AUTN的AMF标识使用哪个K
第7节
认证命令
几种不同的安全上下文:
1)  UE位于UTRAN,或者通过 GSM无线网络接入到 3G的VLR/SGSN,使用3G安全上下文,也就是使用3G authentication vectors (RAND, XRES, CK, IK, AUTN)
2)   UE位于没有3G能力GSM无线接入网内,使用GSM认证数据,这就是GSM安全上下文
3)  VGCS/VBS认证数据可用时,处于 VGCS/VB安全上下文
4)  请求 GBA 自举过程时, 处于  GBA_U 安全上下文
5) MBMS
6)  本地密钥实施
在3G安全环境下, USIM首先通过 f5算出 AK(anonymity key),   从而可以算出SQN
然后,用f1 (SQN|RAND|AMF)算出 XMAC,并与AUTN中的MA比较。如果不同,中止功能。
接下来,usim验证收到的 SQN是不是以前没有用过的。如果没用用过,并且比 SQN_MS小, 就接受。
如果SQN是最后收到32个SQN, 也可以接受。
所以, usim的sqn 列表最少应该有32个。
如果usim检测到sqn不合法,那么就认为同步失败。应该中止功能,发回  AUTS响应。
AUTS  =  Conc(SQN_ms ) || MACS
Conc(SQN_ms ) = SQN_ms ⊕ f5* (RAND) 就是SQN_ms的加密值
MACS = f1*  (SQN_ms || RAND || AMF)
如果SQN是在正确的范围,那么 usim将计算 RES = f2  (RAND),   CK = f3  (RAND), IK = f4  (RAND)
为了更有效的返回 响应给网络, usim 在收到RAND后,就可以提前计算 res, ck, ik
错误码:
9862::   Authentication error, incorrect MAC
9864::   Authentication error, security context not supported
9865::   Key freshness failure
9866::   Authentication error, no memory space available
9867::   Authentication error, no memory space available in EF MUK