EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
移动通信的无线已接入安全机制 随着移动通信的普及以及移动互联网业务的迅猛发展,移动网络成为黑客关注的目标,窃听、伪装、破坏完整性、拒绝服务、非授权访问服务、否认使用/提供、资源耗尽等形形色色的潜在安全犯罪威胁着正常的通信服务。为了使人们随时随地享受便捷无线服务的同时能得到信息安全的保障,无线接入网提出了认证、鉴权、加密等一系列安全措施加以应对。, }! E* F! R8 M& n0 g! C. @
( U3 t( N8 N) e0 V
3GPP系统的无线接入安全. t0 X) B- F4 g9 v, V
# w+ U6 {& M* L8 p
GSM/GPRS/EDGE系统的无线接入安全* O' C a/ W& f2 A) b6 }$ r" {9 A" n
- j- g1 ]9 U) ^5 p3 @1 |在GSM/GPRS/EDGE系统中,用户的SIM卡和归宿网络的HLR/AuC共享一个安全密钥Ki(128bit),基于该密钥,网络可以对用户进行认证,但用户无法认证网络,另外基站和手机间可以对无线链路进行加密。+ D3 h; ~$ W' c* Z! Z
7 B0 V" w7 @9 Q2 {/ c( x# NGSM/GPRS系统的认证和加密是基于(RAND,SRES,Kc)三元组实现的,基本过程如下。( p' R. Z- O- v3 v2 X1 {) T# k
) h- a) |, l" d1 [: u6 i5 H4 `1.当需要对用户进行认证时,服务网络的MSC/VLR(对电路域业务)或者SGSN(对分组域业务)会向用户归属的HLR/AuC请求认证向量。
" k' h+ `2 n" M- A3 L9 e5 o( `. V4 Y( |3 {/ B
2.HLR/AuC首先产生一个随机数RAND,然后基于这个RAND和用户的根密钥Ki根据A3算法计算出移动台应返回的认证响应SRES,并基于RAND和用户的根密钥Ki用A8算法计算出后续用于加密的密钥Kc,HLR/AuC也可能产生多组这样的认证向量。
4 @" G' o! O. J5 b( j
0 F v/ {0 y: \# h9 T3.HLR/AuC将一个或多个(RAND,SRES,Kc)三元组返回给服务网络的MSC/VLR或者SGSN。1 [) H) _; i6 d+ o
: p3 z% H, n# l: |. R3 C
4.服务网络的MSC/VLR或者SGSN通过NAS(非接入子层)信令向用户的手机发起认证请求,参数中包含步骤3中所收到的某个RAND。! J, O0 c2 W5 \) L
4 C8 s+ K# I6 |2 i
5.手机将认证请求通过RunGSMAlgorithm指令转给SIM卡,SIM卡基于RAND和自己安全保存的根密钥Ki用A3算法计算认证响应SRES’,同时基于RAND和Ki用A8算法计算加密密钥Kc。
+ m8 P- P6 T- E9 p: X' I& b: \3 Z
0 G2 G8 s* ^, N6.SIM卡将SRES’和Kc返回给手机,同时也将Kc保存在卡上的一个可读文件EF(Kc)中。
3 e& M9 h+ w/ E! X+ F9 L8 k& q2 f$ k$ D9 H
7.终端将SRES’返回给服务网络,服务网络的MSC/VLR或者SGSN将它与在步骤3收到的SRES进行比较,相同则用户认证成功,否则失败。服务网络的MSC/VLR或者SGSN将Kc转发给基站。
# S6 D" v# J" w. |0 `1 R8 L0 C" |/ `7 Y( R8 n1 ^( {5 r
8.当需要对空口通信进行加密时,终端和服务地的接入网协商加密算法,这通常称为A5算法协商。标准要求2G终端必须支持A5/1算法和推荐实现A5/3算法。
$ u0 j: v" \5 A( o2 k4 m
/ L5 I6 p) H( T0 g; R9.接入网从服务地的核心网获得加密密钥Kc,终端从卡上读取Kc,各自用它作为密钥,用所协商的A5算法计算随机数,然后用于空口消息/数据的加、解密。
7 ?1 g: r: h- l6 `
8 b2 ], h$ t$ x& J) |" G3GUMTS系统的无线接入安全
% H8 L; [* J& A6 K8 J) x6 u
3 ^& [/ D6 x. n$ C0 |2G接入安全具有如下不足。
, i' @/ Y1 t8 v# \+ n7 ?
+ m7 R6 R' Z. B6 g1.只能实现网络对用户的认证,无法实现用户对网络的认证,可能存在恶意网络诱骗用户登陆/使用、然后盗取用户信息和传播垃圾/病毒信息的威胁。
( n* u% u: c0 Q* K9 n7 h- ~
3 z9 l: m, K9 A( F4 ^7 v" O2.通过PIN码校验(而这是非常容易实现的)后,对所有的RunGSMAlgorithm指令,SIM卡都会根据指令中输入的随机数计算相应的SRES认证响应,攻击者很容易利用它进行穷举攻击(特别是结构性列举攻击),以反推用户密钥Ki。
) y1 F5 {% c; k3 h4 J: ~: E7 z" A. i
3.没有完整性保护,存在消息/数据在中途被拦截和篡改的威胁。
/ {- o, i: o( [* N
- | K) J G+ a% J& b1 p$ ]" }4.一些老算法可以被安全级别更高的新算法替换。
3 r% N, _+ X. ?( C G1 x- x4 }7 J% y% G9 s' \" L
3G系统对以上不足进行了有针对性的改进,在3GUMTS(包括WCDMA和TD-SCMDMA)系统中,用户的USIM卡和归宿网络的HLR/AuC共享一个安全密钥K(128bit),基于该密钥,网络可以对用户进行认证,用户也可以认证网络,另外基站和手机间可以对无线链路进行加密和完整性保护。
2 @/ @7 ?. {5 ^
+ g5 [3 Q2 h7 h" J) |. H8 g! F3GUMTS系统的双向认证、加密和完整性保护是基于(RAND,XRES,CK, IK, AUTN)五元组实现的,基本过程如下。
- u$ G/ @) d* n. f6 K- l- X! Y; b1 H, r$ ^7 s* t1 R/ j+ }* T7 g# y
2 O+ |3 Y5 n4 M3 n. U# j* G
( K# ` s/ b! A. }# ~1 M图1 五元组生成方法
: W: S7 T6 b( }% M b- B) b# P5 X3 a2 a: t+ C
1.当需要对用户进行认证时,服务网络的MSC/VLR(对电路域业务)或者SGSN(对分组域业务)会向用户归属的HLR/AuC请求认证向量。
! I7 J7 c- l2 M5 p4 b* | g
; i# H' q+ {6 Q( l) O2.HLR/AuC首先产生一个随机数RAND和一个SQN,然后基于这个RAND、SQN和用户的根密钥K按图1所示进行如下计算:用f2算法生成移动台应返回的认证响应XRES,用f3算法生成加密密钥CK,用f4算法生成完整性保护密钥IK,用f1和f5算法生成网络对应的认证响应AUTN,HLR/AuC也可能产生多组这样的认证向量。9 Z3 b' H) ?0 N! T& x0 M
8 U9 S: S. O* {% D% Q3.HLR/AuC将一个或多个(RAND,XRES,CK,IK, AUTN)五元组返回给服务网络的MSC/VLR或者SGSN。
% D. Y; U6 h4 a5 g9 ]5 d k0 |7 D( `& D9 v1 i
4.服务网络的MSC/VLR或者SGSN通过NAS(非接入子层)信令和用户的手机/UISM卡执行AKA(认证和密钥协定)过程。$ q/ F8 q$ D6 J, }5 {
j* ^% `# N, f) U) @" ]5.当需要对空口通信进行加密或者完整性保护时,终端和服务地的接入网(RNC)协商并激活安全模式。. M8 C6 s* x$ o5 y3 y9 J/ s: b7 O
I) T9 ?5 U+ a: m! q0 ~; u1 B7 q6.接入网从服务地的核心网获得CK和IK,终端从步骤4获得或者从卡上读取CK和IK,各自用它们作为密钥,然后用f8、f9算法进行加/解密和完整性保护。终端和接入网间也可以借完整性保护(IK和f9算法)实现简单的本地认证功能。
2 N0 m: w9 y1 \% P. ~
6 h# {1 ~4 }9 H) Y! m以上过程也可以用图2表示。
" d# }2 I# n/ _4 \8 `- [
% I) S+ f% H' W4 j" |
# \' C/ h. U$ k f' e. X6 d
& ~# @5 N) w! m% r0 m {! s6 {图2 3G UMTS系统的接入安全# F/ q5 N, ]; \5 w! s! C
7 T8 P- D# m2 {
2G/3G互通时的无线接入安全1 X5 W8 l* B: p) B6 S7 S" ^
6 O: u$ U3 b0 `3 j6 l% l
当2GSIM卡接入3G网络时,为了避免要求2G用户必须换卡才能接入3G网络和使用3G业务,运营商通常选择允许用户用2GSIM卡接入3G网络,为此需要终端和网络支持如下附加功能。% J O: c3 _+ K9 Q8 |
4 A. }3 A. ^/ F. T" i& u1.3G终端能支持2GSIM卡接口。
2 w! [7 U: V7 W7 S! m( f
: G' Q! F. A2 D. }% N2.3G服务网络的MSC/VLR与SGSN能和2GHLR/AuC互通,能接受三元组认证向量。9 u; B; `. N. X" k
6 Y) f, ^: q7 O. q+ P% _4 e; |3.3G终端和3G接入网支持Kc到CK和IK的密钥转换。! v3 `' b/ R/ U5 p& d
) p& W$ ], |% V) _& ~
此时的认证过程和2G系统基本相同,有区别的地方是:3G服务网络的MSC/VLR或者SGSN需要通过标准的转换函数将Kc转换为CK和IK,然后将CK和IK传给3G服务基站;终端从SIM卡得到Kc后,也需要通过同样的转换函数将Kc转换为CK和IK;后续终端和3G服务基站间可以用3G的f8、f9算法,以及CK、IK进行加密和完整性保护。6 \+ f5 |6 O4 v. c& S
1 R+ N2 G _* k, C& R6 a- Z2 d0 ]当3GUSIM卡接入2G网络时,为了利用2G对3G的覆盖补充和支持更广泛的漫游,运营商也会选择允许用户用3GUSIM卡接入2G网络,为此需要USIM卡和网络支持如下附加功能。
! M6 K6 J C" t$ [' W3 Q, c) N9 E$ R! H5 _" X2 _. R
1.3GUSIM卡支持转换函数,能将XRES’转为SRES’,将CK和IK转为Kc。
|1 ?$ u W: z; a6 G
- t: d! P( ~( K! z& J2.3GUSIM卡支持2GSIM接口,从而能被只支持SIM卡的2G终端使用,这样的卡通常被称为USIM/SIM混合卡。混合卡上的SIM接口安全算法是基于USIM安全算法+转换函数实现的。
3 b* m: P i6 k0 H$ G. R" f2 A/ d" x7 }3 q
3.3GHLR/AuC能支持五元组到三元组的转换,从而可以向服务地的2GMSC/VLR或者SGSN返回三元组认证向量。$ V: O S% D* ]" T% t2 ^0 Y
# v' Q0 w( [6 c5 w: G4.服务网络如果采用2G接入网+3G核心网(即BS是2G的,但MSC/VLR与SGSN为3G的)的组网方式,MSC/VLR与SGSN应支持CK+IK到Kc的转换。
; z# ^% p6 ]' \( j8 @: I2 m) }
+ U+ j2 `5 _+ k8 ~; w" L当用户用的是3G/2G混合终端或者是支持USIM的高版本2G终端时,此时使用的是混合卡上的USIM功能,认证实现分以下两种情况。
) T& J; R0 Z. T' Y( q6 s/ f+ W% ]- l- v* g
1.当服务地的核心网是3G时,认证过程和3GUMTS系统的描述基本相同,有区别的地方是:服务网络的3GMSC/VLR或者SGSN需要通过标准的转换函数将CK和IK转换为Kc,然后将Kc传给2G服务基站;除了CK和IK,混合卡还会将用转换函数依据CK和IK生成的Kc也返回给终端。终端会忽略CK和IK,而只用Kc;后续如果需要,终端和服务地2G基站间能用所协商的A5算法和Kc进行加密传输,但不能进行完整性保护。
# B1 s* T8 U7 v* O9 S5 c% f5 z# K$ L% X! \
2.当服务地的核心网是2G时,认证过程和2G系统的描述基本相似,有区别的地方是:收到服务地网络的认证向量请求后,用户归属的3GHLR/AuC首先生成五元组,然后将它们通过标准转换函数转为三元组,再将三元组返回给服务网络;终端向卡发送的是带GSM安全上下文的AuthenTIcate指令;混合UISM卡首先生成XRES、CK和IK,然后将XRES转换为SRES’,将CK+IK转换为Kc,最后只将SRES’和Kc返回给终端。
) y( B& G7 h9 Q/ \- K& _
; K2 W$ _; v+ L: \当用户用的是不支持USIM的低版本2G终端时,此时使用的是混合卡上的SIM功能,认证实现也分为两种情况。1 ?% f9 t: M: I& d! F
" Z$ C$ U/ |" @9 j {0 }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返回给终端。( ?: Q& S$ F* I+ @, R. W4 d* i
6 n# t$ i; z' T6 n4 ^- N2 I
2.当服务地的核心网是2G时,认证过程和2G系统基本相同,有区别的地方是:收到服务地网络的认证向量请求后,用户归属的3GHLR/AuC首先生成五元组,然后将它们通过标准转换函数转为三元组,再将三元组返回给服务网络;混合卡首先生成XRES’、CK和IK,然后将XRES’转换为SRES’,将CK+IK转换为Kc,最后只将SRES’和Kc返回给终端。, c9 I- ~5 }4 q5 Y
- w( ~0 v7 w# S$ T- [$ q1 m0 \
3 GPP2系统的接入安全# N2 g! a# z+ p" @- _
( f- q7 {! [7 r9 P. Q+ O: n
cdma20001x系统的接入安全3 N) e5 J3 U- [3 c. _$ n. x
# ]/ q% i( _1 C2 e% B
在cdma20001x系统中,用户的RUIM卡和归宿网络的HLR/AC会共享一个安全密钥A-key(64bit),基于该密钥,网络可以对用户进行认证,基站和手机间也可以对信令消息、语音和数据应用不同的加密方式。/ ^2 ~2 D, K: I6 G* X" E( k
& y1 v/ t" q( ~3 s" h% ocdma20001x系统支持两种认证触发方式。
0 o! @5 h+ e' ^% H1 H ~ ]& p5 D( M$ o5 D1 ]3 |
1.通过层2功能实现的全局挑战(GlobalChallenge):服务网络可以将在寻呼信道上广播的接入参数消息中的AUTH字段置为‘01’,从而要求所有终端在使用反向接入信道发送消息时(Order消息、AuthenTIcaTIonChallengeResponse消息、Status Response消息和Extended Status Response消息除外),必须在消息的层2参数域携带基于SSD(共享安全数据)的前64bit、随机数和消息中特定信息域计算的认证签名AUTHR。
8 O! Z g1 {& Z- P, }2 {% n8 U- p
* q# s& { T) I* D/ n3 r2.通过层3功能实现的独特挑战(UniqueChallenge):当需要时,服务网络可以向特定终端发送AuthenTIcationChallenge消息,终端中的卡基于消息中的随机数RANDU,用SSD的前64bit计算AUTHU,再用AuthenticationChallenge Response消息返回,网络然后检查终端返回的AUTHR或AUTHU是否正确。如果HLR/AC向服务网络共享了SSD,这个检查由服务网络完成,否则需请求HLR/AC进行。: |2 N, ^, T7 w* `) q2 m7 g7 C
# Z7 r" \2 h, c& B- r I
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算法根据相应的随机数输入计算得到。
& g! n! [; B$ w- l; y3 A5 {8 t1 ]6 \% N
基于SSD的后64bit可以用CAVE生成私有长码掩码(PrivateLCM)、消息加密密钥SMEKey和数据加密密钥。cdma20001x用私有长码掩码加扰的方式实现语音加密;用SMEKey密钥和CMEA(或者ECMEA)算法实现信令消息加密;用数据密钥和ORYX算法实现用户数据加密。终端和服务网络间可以通过层3消息协商是否使用加密。
' L! H7 w8 m8 ?+ G" w$ b |7 V {- ~" E. t( X. q' O
cdma20001xEV-DO系统的接入安全& l; _/ P+ B& }8 \7 x- E
1 ]* F6 |& Y2 K5 t' U. w
为了支持标准的cdma20001xEV-DO接入认证,用户需要用更高版本的RUIM卡(至少是C.S0023Rev.B以后版本的卡),用户的RUIM卡和归属AN-AAA间会共享一个HRPD SS(HRPD共享密钥,为可变长度,常取128bit),卡还要能支持MD5算法和存储用户在EV-DO中的ID(称之为HRPD NAI)。基于该HRPD SS,网络可以对用户进行认证,基站和手机间也可以对消息和数据进行加密。
) @8 u }# ]2 d' c8 d' C( ~8 O% T; F! E$ x: i! T" e
当用户需要建立EV-DO会话时,在终端和AN(即EV-DO基站)进行PPP和LCP协商期间,AN会向终端发送CHAPChallenge,消息中包含CHAPID和一个随机数,终端把这个挑战转给RUIM卡,卡用MD5算法根据HRPDSS和随机数计算响应,响应被卡/终端通过CHAP Response返回给AN,AN再通过A12接口把它传给AN-AAA,AN-AAA基于自己存储的该用户HRPD SS验证这个响应是否正确。/ b+ h" q, n$ ]' |
G) ]- z! B4 q- p& C
终端通过了A12认证并建立了EV-DO会话后,后续当终端需要请求EV-DO无线连接时,可以仅执行较简单、快捷的EV-DO空口认证签名过程:终端和网络先通过Diffie-Hellman算法建立一个共享的会话密钥;终端利用SHA-1算法,用该会话密钥和时间戳对接入信道上的分组进行签名。
' A* c* W$ `, a% m
6 W3 I8 o% B, Q! E3 }1 s: hEV-DO系统采用AES算法标准对用户数据和信令信息进行加密保护;用SHA-1算法实行完整性保护。EV-DO用基于时间、计数器的安全协议产生密码系统,以产生变化的加密掩码。1 ]5 h$ q7 T+ u3 s( [' m Y
; s6 O8 H! d: t
1x/EV-DO互通时的接入安全用
6 W: z L6 r! h9 y, \
( t6 C3 b/ _( u4 y- j' k当EV-DORUIM卡接入1x网络时,支持DO接入认证的RUIM卡也会同时支持1xCAVE认证,并且隐秘保存有A-key。EV-DORUIM卡在1x网络中将使用CAVE认证,这如同1x RUIM卡在1x网络中一样。" D2 P* A. I* F4 \* j% @
# b* X" y- Y: M% L7 ~. H$ {# u1 F当用1xRUIM卡接入EV-DO网络时,为了让1x用户不需要换卡就能接入EV-DO网络和使用EV-DO服务,需要EV-DO终端和网络支持如下附加功能。( b0 ^8 E4 |: o/ m
7 N* L; A8 r( w
为了计算CHAPResponse,终端需要能向1xRUIM卡发送RunCave指令,即CHAP中实际使用的是CAVE认证算法。终端还要能根据卡中的1x ID信息生成HRPD NAI。
+ ^" k$ J" S; n' w O& v9 s( s( K( G
! X7 [0 c* b+ A! a' r! Y' r网络侧的AN-AAA能识别卡使用的是CAVE算法;提供附加的、连向卡所对应的HLR/AC的接口,并能将自己模拟为VLR向HLR请求认证结果和/或SSD。
/ M7 T4 ]3 F0 `1 u |