3GUMTS系统的无线接入安全
2G接入安全具有如下不足。
1.只能实现网络对用户的认证,无法实现用户对网络的认证,可能存在恶意网络诱骗用户登录/使用、然后盗取用户信息和传播垃圾/病毒信息的威胁。
2.通过PIN码校验(而这是非常容易实现的)后,对所有的RunGSMAlgorithm指令,SIM卡都会根据指令中输入的随机数计算相应的SRES认证响应,攻击者很容易利用它进行穷举攻击(特别是结构性列举攻击),以反推用户密钥Ki。
3.没有完整性保护,存在消息/数据在中途被拦截和篡改的威胁。
4.一些老算法可以被安全级别更高的新算法替换。
3G系统对以上不足进行了有针对性的改进,在3GUMTS(包括WCDMA和TD-SCMDMA)系统中,用户的USIM卡和归宿网络的HLR/AuC共享一个安全密钥K(128bit),基于该密钥,网络可以对用户进行认证,用户也可以认证网络,另外基站和手机间可以对无线链路进行加密和完整性保护。
3GUMTS系统的双向认证、加密和完整性保护是基于(RAND,XRES,CK, IK, AUTN)五元组实现的,基本过程如下。
图1 五元组生成方法
1.当需要对用户进行认证时,服务网络的MSC/VLR(对电路域业务)或者SGSN(对分组域业务)会向用户归属的HLR/AuC请求认证向量。
2.HLR/AuC首先产生一个随机数RAND和一个SQN,然后基于这个RAND、SQN和用户的根密钥K按图1所示进行如下计算:用f2算法生成移动台应返回的认证响应XRES,用f3算法生成加密密钥CK,用f4算法生成完整性保护密钥IK,用f1和f5算法生成网络对应的认证响应AUTN,HLR/AuC也可能产生多组这样的认证向量。
3.HLR/AuC将一个或多个(RAND,XRES,CK,IK, AUTN)五元组返回给服务网络的MSC/VLR或者SGSN。
4.服务网络的MSC/VLR或者SGSN通过NAS(非接入子层)信令和用户的手机/UISM卡执行AKA(认证和密钥协定)过程。
5.当需要对空口通信进行加密或者完整性保护时,终端和服务地的接入网(RNC)协商并激活安全模式。
6.接入网从服务地的核心网获得CK和IK,终端从步骤4获得或者从卡上读取CK和IK,各自用它们作为密钥,然后用f8、f9算法进行加/解密和完整性保护。终端和接入网间也可以借完整性保护(IK和f9算法)实现简单的本地认证功能。
以上过程也可以用图2表示。
图2 3G UMTS系统的接入安全