无线接入安全大荟萃

无线通信技术发展至今,各种无线标准无线系统,带来的安全隐患也很多。那么,怎样保证无线接入的安全呢?接下来,就为大家详细介绍各种无线接入安全的机制,原理,过程。

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.当需要对用户进行认证时,服务网络的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算法)实现简单的本地认证功能。

2G/3G互通时的无线接入安全


当2GSIM卡接入3G网络时,为了避免要求2G用户必须换卡才能接入3G网络和使用3G业务,运营商通常选择允许用户用2GSIM卡接入3G网络,为此需要终端和网络支持如下附加功能。

1.3G终端能支持2GSIM卡接口。
2.3G服务网络的MSC/VLR与SGSN能和2GHLR/AuC互通,能接受三元组认证向量。
3.3G终端和3G接入网支持Kc到CK和IK的密钥转换。

此时的认证过程和2G系统基本相同,有区别的地方是:3G服务网络的MSC/VLR或者SGSN需要通过标准的转换函数将Kc转换为CK和IK,然后将CK和IK传给3G服务基站;终端从SIM卡得到Kc后,也需要通过同样的转换函数将Kc转换为CK和IK;后续终端和3G服务基站间可以用3G的f8、f9算法,以及CK、IK进行加密和完整性保护。
当3GUSIM卡接入2G网络时,为了利用2G对3G的覆盖补充和支持更广泛的漫游,运营商也会选择允许用户用3GUSIM卡接入2G网络,为此需要USIM卡和网络支持如下附加功能。

1.3GUSIM卡支持转换函数,能将XRES’转为SRES’,将CK和IK转为Kc。
2.3GUSIM卡支持2GSIM接口,从而能被只支持SIM卡的2G终端使用,这样的卡通常被称为USIM/SIM混合卡。混合卡上的SIM接口安全算法是基于USIM安全算法+转换函数实现的。
3.3GHLR/AuC能支持五元组到三元组的转换,从而可以向服务地的2GMSC/VLR或者SGSN返回三元组认证向量。
4.服务网络如果采用2G接入网+3G核心网(即BS是2G的,但MSC/VLR与SGSN为3G的)的组网方式,MSC/VLR与SGSN应支持CK+IK到Kc的转换。

当用户用的是3G/2G混合终端或者是支持USIM的高版本2G终端时,此时使用的是混合卡上的USIM功能,认证实现分以下两种情况。
1.当服务地的核心网是3G时,认证过程和3GUMTS系统的描述基本相同,有区别的地方是:服务网络的3GMSC/VLR或者SGSN需要通过标准的转换函数将CK和IK转换为Kc,然后将Kc传给2G服务基站;除了CK和IK,混合卡还会将用转换函数依据CK和IK生成的Kc也返回给终端。终端会忽略CK和IK,而只用Kc;后续如果需要,终端和服务地2G基站间能用所协商的A5算法和Kc进行加密传输,但不能进行完整性保护。
2.当服务地的核心网是2G时,认证过程和2G系统的描述基本相似,有区别的地方是:收到服务地网络的认证向量请求后,用户归属的3GHLR/AuC首先生成五元组,然后将它们通过标准转换函数转为三元组,再将三元组返回给服务网络;终端向卡发送的是带GSM安全上下文的Authenticate指令;混合UISM卡首先生成XRES、CK和IK,然后将XRES转换为SRES’,将CK+IK转换为Kc,最后只将SRES’和Kc返回给终端。

当用户用的是不支持USIM的低版本2G终端时,此时使用的是混合卡上的SIM功能,认证实现也分为两种情况。

1.当服务地的核心网是3G时,认证过程和2G系统相似,有区别的地方是:收到服务地网络的认证向量请求后,用户归属的3GHLR/AuC生成的是五元组,返回的也是五元组;服务网络的3GMSC/VLR或者SGSN需要通过标准的转换函数将XRES转换为SRES、将CK和IK转换为Kc,然后将Kc传给2G服务基站;服务网络用户认证请求消息中的AUTN参数会被2G终端忽略,2G终端仅将RAND参数通过RunGSM Algorithm指令发给混合卡;混合卡用RAND和K首先生成XRES’、CK和IK,然后将XRES’转换为SRES’,将CK+IK转换为Kc,最后只将SRES’和Kc返回给终端。
2.当服务地的核心网是2G时,认证过程和2G系统基本相同,有区别的地方是:收到服务地网络的认证向量请求后,用户归属的3GHLR/AuC首先生成五元组,然后将它们通过标准转换函数转为三元组,再将三元组返回给服务网络;混合卡首先生成XRES’、CK和IK,然后将XRES’转换为SRES’,将CK+IK转换为Kc,最后只将SRES’和Kc返回给终端。

cdma20001x系统的无线接入安全

在cdma20001x系统中,用户的RUIM卡和归宿网络的HLR/AC会共享一个安全密钥A-key(64bit),基于该密钥,网络可以对用户进行认证,基站和手机间也可以对信令消息、语音和数据应用不同的加密方式。

cdma20001x系统支持两种认证触发方式。
1.通过层2功能实现的全局挑战(GlobalChallenge):服务网络可以将在寻呼信道上广播的接入参数消息中的AUTH字段置为‘01’,从而要求所有终端在使用反向接入信道发送消息时(Order消息、AuthenticationChallengeResponse消息、Status Response消息和Extended Status Response消息除外),必须在消息的层2参数域携带基于SSD(共享安全数据)的前64bit、随机数和消息中特定信息域计算的认证签名AUTHR。
2.通过层3功能实现的独特挑战(UniqueChallenge):当需要时,服务网络可以向特定终端发送AuthenticationChallenge消息,终端中的卡基于消息中的随机数RANDU,用SSD的前64bit计算AUTHU,再用AuthenticationChallenge Response消息返回,网络然后检查终端返回的AUTHR或AUTHU是否正确。如果HLR/AC向服务网络共享了SSD,这个检查由服务网络完成,否则需请求HLR/AC进行。

SSD(128bit)是cdma20001x认证中的一个特有设计,引入SSD是为了避免过度使用用户的根密钥A-key和避免需要将A-key共享给服务网络。SSD的生成和后续更新只能在HLR/AC和RUIM卡之间进行,HLR/AC可以选择将某个SSD共享给服务网络并可以设定该SSD的生命周期,但RUIM卡不会把SSD透露给终端。SSD更新过程通过网络向终端/卡发送SSDUpdate消息触发,消息中包含一个随机数RNADSSD。为了防止虚假服务网络恶意更新SSD,卡会产生一个随机数RANDBS然后由终端通过BSChallenge Order消息发送给网络,仅当网络返回的AUTHBS响应是正确的,卡才会用CAVE算法根据A-Key、RANDSSD、UIMID等计算出的值更新SSD。SSD的前64bit用于各种认证运算,包括AUTHR/AUTHU/AUTHBS的计算和检验,它们都使用CAVE算法根据相应的随机数输入计算得到。基于SSD的后64bit可以用CAVE生成私有长码掩码(PrivateLCM)、消息加密密钥SMEKey和数据加密密钥。cdma20001x用私有长码掩码加扰的方式实现语音加密;用SMEKey密钥和CMEA(或者ECMEA)算法实现信令消息加密;用数据密钥和ORYX算法实现用户数据加密。终端和服务网络间可以通过层3消息协商是否使用加密。

cdma20001xEV-DO系统的无线接入安全

为了支持标准的cdma20001xEV-DO接入认证,用户需要用更高版本的RUIM卡(至少是C.S0023Rev.B以后版本的卡),用户的RUIM卡和归属AN-AAA间会共享一个HRPD SS(HRPD共享密钥,为可变长度,常取128bit),卡还要能支持MD5算法和存储用户在EV-DO中的ID(称之为HRPD NAI)。基于该HRPD SS,网络可以对用户进行认证,基站和手机间也可以对消息和数据进行加密。
当用户需要建立EV-DO会话时,在终端和AN(即EV-DO基站)进行PPP和LCP协商期间,AN会向终端发送CHAPChallenge,消息中包含CHAPID和一个随机数,终端把这个挑战转给RUIM卡,卡用MD5算法根据HRPDSS和随机数计算响应,响应被卡/终端通过CHAP Response返回给AN,AN再通过A12接口把它传给AN-AAA,AN-AAA基于自己存储的该用户HRPD SS验证这个响应是否正确。终端通过了A12认证并建立了EV-DO会话后,后续当终端需要请求EV-DO无线连接时,可以仅执行较简单、快捷的EV-DO空口认证签名过程:终端和网络先通过Diffie-Hellman算法建立一个共享的会话密钥;终端利用SHA-1算法,用该会话密钥和时间戳对接入信道上的分组进行签名。EV-DO系统采用AES算法标准对用户数据和信令信息进行加密保护;用SHA-1算法实行完整性保护。EV-DO用基于时间、计数器的安全协议产生密码系统,以产生变化的加密掩码。

相关推荐