随着移动通信的普及以及移动互联网业务的迅猛发展,移动网络成为黑客关注的目标,窃听、伪装、破坏完整性、拒绝服务、非授权访问服务、否认使用/提供、资源耗尽等形形色色的潜在安全犯罪威胁着正常的通信服务。为了使人们随时随地享受便捷无线服务的同时能得到信息安全的保障,无线接入网提出了认证、鉴权、加密等一系列安全措施加以应对。
3GPP系统的无线接入安全
GSM/GPRS/EDGE系统的无线接入安全
在GSM/GPRS/EDGE系统中,用户的SIM卡和归宿网络的HLR/AuC共享一个安全密钥Ki(128bit),基于该密钥,网络可以对用户进行认证,但用户无法认证网络,另外基站和手机间可以对无线链路进行加密。
GSM/GPRS系统的认证和加密是基于(RAND,SRES,Kc)三元组实现的,基本过程如下。
1.当需要对用户进行认证时,服务网络的MSC/VLR(对电路域业务)或者SGSN(对分组域业务)会向用户归属的HLR/AuC请求认证向量。
2.HLR/AuC首先产生一个随机数RAND,然后基于这个RAND和用户的根密钥Ki根据A3算法计算出移动台应返回的认证响应SRES,并基于RAND和用户的根密钥Ki用A8算法计算出后续用于加密的密钥Kc,HLR/AuC也可能产生多组这样的认证向量。
3.HLR/AuC将一个或多个(RAND,SRES,Kc)三元组返回给服务网络的MSC/VLR或者SGSN。
4.服务网络的MSC/VLR或者SGSN通过NAS(非接入子层)信令向用户的手机发起认证请求,参数中包含步骤3中所收到的某个RAND。
5.手机将认证请求通过RunGSMAlgorithm指令转给SIM卡,SIM卡基于RAND和自己安全保存的根密钥Ki用A3算法计算认证响应SRES’,同时基于RAND和Ki用A8算法计算加密密钥Kc。
6.SIM卡将SRES’和Kc返回给手机,同时也将Kc保存在卡上的一个可读文件EF(Kc)中。
7.终端将SRES’返回给服务网络,服务网络的MSC/VLR或者SGSN将它与在步骤3收到的SRES进行比较,相同则用户认证成功,否则失败。服务网络的MSC/VLR或者SGSN将Kc转发给基站。
8.当需要对空口通信进行加密时,终端和服务地的接入网协商加密算法,这通常称为A5算法协商。标准要求2G终端必须支持A5/1算法和推荐实现A5/3算法。
9.接入网从服务地的核心网获得加密密钥Kc,终端从卡上读取Kc,各自用它作为密钥,用所协商的A5算法计算随机数,然后用于空口消息/数据的加、解密。
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系统的接入安全