图1-15 SIM卡与各不同版本的网元配合时的鉴权集处理
Release 98- or Release 99+HLR/AuCTripletsTripletsRelease 99+VLR/SGSNKc --> CK, IKCKIK[Kc][Kc]Release 98-VLR/SGSN[Kc]UTRANRANDSRESRANDSRESGSM BSSRANDSRESRANDSRESR99+ UEKc --> CK, IKKcKcR98- UER99+ UEorR98- UEKcKcSIMGSM security context
所以对于鉴权,以网络侧的角度考虑,保存鉴权集的类型基本只考虑两个参数: VLR/SGSN的版本(R98-/ R99+)和用户卡的类型(SIM/USIM)。这点从之前的到PVLR和HLR取鉴权集两章节中也可以看出。但是由于现网中接入侧的类型对网络侧设备版本有关联限制,所以鉴权类型与接入侧也有非直接的关系。如,USIM卡带R99+ UE接入UTRAN,则VLR/SGSN版本只能为R99+,如果强制性修改VLR/SGSN的版本为R98-,则VLR/SGSN会保存并下发3元组鉴权,但此时USIM卡则会对网络鉴权失败,因为USIM卡在接入RNC(UMTS网络)时会启动对网络的鉴权。
用户类型 SIM VLR/SGSN版本 R98- R99+ USIM R98- R99+ 鉴权类型 3元组鉴权 3元组鉴权 3元组鉴权 5元组鉴权 而对于加密,则仅与接入侧类型有关,当用户通过BSS接入网络时,加密将必须用GSM加密密钥KC;如果用户通过UTRAN接入网络,则加密必须使用UMTS加密密钥CK、IK,但此时需要手机能力的支持(须为R99+ UE)。
当用户由BSS接入时,有可能网络下发5元组鉴权,所以之后的加密密钥必须经过转换:CK、IK——>KC; 同理,当用户由UTRAN接入时,有可能网络下发3元组鉴权,所以之后的加密密钥也必须经过转换:KC——> CK、IK。
说明? GSM与UMTS网络间漫游切换
当同一用户既可接入GSM网络,也可以接入UMTS网络时,那么此用户可能涉及GSM与UMTS网络间漫游切换。而在不同网络漫游时,需要重新发起位置更新流程,但是如果是所以涉及鉴权以及加密的参数转换。下表为2G与3G鉴权加密中的主要参数值比较。
参数 RAND AUTN RES+XRES(SRES) KSI(CKSN) encryption algorithm CK(Kc) IK IK algorithm AUTS K(Ki) SQN AK AMF MAC 2G参数值长度 128bits ———— 32bits 3bits 8bits (No encryption(1)、 A5/1,??,A5/7) 64bits ———— ———— ———— 128 bits ———— ———— ———— 3G参数值长度 128bits 128bits 32b~128bits 3bits 4bits (No encryption(0)、 Standard UEA1(1)) 128bits 128bits Standard UIA1(0) 112bits 128 bits 48 bits 48 bits 16 bits 64 bits ? 从UMTS到GSM系统间密钥转换
从UMTS到GSM系统间密钥转换,也就是根据五元组计算三元组:
1、转换函数c1: RAND[GSM] = RAND
2、转换函数c2: SRES[GSM] = XRES*1 xor XRES*2 xor XRES*3 xor XRES*4 3、转换函数c3: Kc[GSM] = CK1 xor CK2 xor IK1 xor IK2 其中:
XRES* 长度为128 bits;
如果XRES 长度为128 bits,则 XRES* = XRES;
如果XRES 长度为小于128 bits, 则 XRES* = XRES || 0...0 ; XRES*i 长度都为 32 bit ;
XRES* = XRES*1 || XRES*2 || XRES*3 || XRES*4; CKi 和 IKi 的长度都为 64 bits ; CK = CK1 || CK2 ; IK = IK1 || IK2。
? 从GSM到UMTS系统间密钥转换
从GSM到UMTS系统间密钥转换,也就是根据三元组计算五元组:
1、转换函数 c4: CK[UMTS] = Kc || Kc;
2、转换函数 c5: IK[UMTS] = Kc1 xor Kc2 || Kc || Kc1 xor Kc2; 其中c5算法中, Kci 长度都为 32 bits ,而且 Kc = Kc1 || Kc2。
? GSM与UMTS系统间密钥转换
从上两节可以看出:
如果用CK IK转换为Kc(CK IK—>Kc);然后再从Kc转换为CK IK(Kc-->CK IK)将会导致经过转换得到的CK、IK和原来的CK 、IK不一致。
如果用Kc转换为CK、IK(Kc-->CK IK),然后再转换为Kc(CK、IK—>Kc) 得到的Kc和原Kc一致。
1.2.5 场景描述
针对现网中可能有的2G与3G共建网络,下面的场景分析将包含2G与3G融合网络中一些鉴权加密相关的典型场景的流程分析。具体包括如下场景:
? USIM + 3G终端 + RNC接入网络成功 ? USIM + 2G终端 + BSC接入网络成功 ? SIM + 3G终端 + RNC接入网络成功 ? 到前VLR取识别场景。 ? UE鉴权UMTS网络MAC失败
1.2.6 USIM + 3G终端 + RNC接入网络成功
流程介绍
图1-16 UMTS鉴权加密成功流程
IUUERNCMSCBDVLRHLRRN_MM_LOCATION_UPDATING_REQUESTGETCBDATA_UPDATE_REQGETCBDATA_UPDATE_RSPP1MAP_OPEN_REQ(MSC版本)SEND_AUTHENTICATION_INFO_REQMAP_OPEN_CNFSEND_AUTHENTICATION_INFO_CNF(鉴权集)RN_MM_AUTHENTICATION_REQUESTRN_MM_AUTHENTICATION_RESPONSESECURITY_MODE_COMMANDSECURITY_MODE_COMPLETERN_MM_LOCATION_UPDATING_ACCEPT
1、 网络(MSC)收到用户接入请求,携带用户标识IMSI。
2、 MSC通过GETCBDATA_UPDATE_REQ消息到VLR取相应用户数据,携带用
户IMSI。
3、 VLR根据鉴权加密相关配置信息决定用户接入是否需要鉴权加密,并将此信息
通过GETCBDATA_UPDATE_RSP消息返回带给MSC。同时,如果需要鉴权,则需从其本身存储的此用户相关鉴权集中选择一组发送给MSC。
P1:如果此处VLR中关于此用户的鉴权集已经用光,则不带用户鉴权集给MSC,
MSC会到用户相应HLR去取新的鉴权集,取回后保留一组供此次鉴权用,然后将其余鉴权集插入到VLR中。根据从HLR取鉴权集原理,此处应该取回鉴权5元组,如下: