其实CDMA鉴权机制加上使用UIM卡,如果按标准做,安全性超过GSM鉴权几个数量级,但是在实际使用中被人为的降低了。
/ L: }4 ?* o6 k+ \: {
& x- y( i, ?; o) j' B 标准做法,一般鉴权使用由AKEY临时生成的SSDA和随机数RAND进行鉴权,当某次使用SSD的一般鉴权失败时,应该认为SSDA已经泄密,系统自动启动基于AKEY的SSD更新过程,更新UIM卡内SSDA,还有就是由系统主动定时发起SSDA更新。' T; B. \: a$ @5 e
( h2 j& m; }2 S
2 M* I4 B2 \2 N0 J
现在的情况是,% G2 K9 x- o \5 \6 a2 L: ?
; L V O N& H( z* F 1,因为更新SSD和使用随机RAND会耗费系统资源,$ }1 B& D ]1 {" x% w
( X5 j6 o4 G5 \3 G6 O( R( Y 2,各地都有鉴权中心,原来运营商一直未很好解决漫游两地SSD更新交换数据问题,手机在外地时如果一次鉴权失败(例如呼叫鉴权手机掉电,信号不好,交换不成功),启动SSD更新,因为两地交换数据的问题,异地更新不成功,此时机主在回原地之前都不能使用手机。运营商不好好正面解决这个问题,而是偷懒,所谓网络优化,去掉了异地甚至本地使用SSD的一般鉴权失败后的基于AKEY的SSD更新过程,甚至去掉了定时更新SSD过程,只在新开户,换卡,投诉时进行SSD更新,系统实际降低到只依靠SSD进行鉴权,一直使用本是临时的SSD,把临时安全措施当长期安全措施,安全程度大打折扣。
) \. V& R6 M5 h# b# X7 ~( v9 v2 p$ S! I( j n8 l! m
& b* h8 f( q6 E# t: G9 L) f 一般的呼叫鉴权,鉴权算法我们看成一个黑盒,输入4个参数,
* M- s4 b2 N3 [6 u( n+ G) L3 w* l5 t2 d; I5 g$ X+ Q
1,RAND,由网络发送到手机,标准协议应该每次都是随机数,但现实情况,大部分地区都是拨出固定为0,甚至有些地区呼入时也为0。
) I7 P# G7 y, @, I0 X* l8 N5 ~9 R% F3 P5 j9 W8 V+ [
2,SSDA,这个由AKEY临时生成,标准协议应该一般鉴权失败就更新,或定时更新,但现实情况,部分地区从来不更新,哪怕某次鉴权失败(意味着可能有并机无正确AKEY使用)。
: z+ L: v c0 C& `! S' A5 ], v: J
! K" O) w2 G% F7 k4 [ 3,呼出时电话号码后6位数,呼入时MIN码后3字节* a% ?! O) S5 w
9 i* I1 _7 d& c0 M# ~) h 4,ESN(UIM ID) 得到 AUTHR,发送到鉴权中心,鉴权中心也有这4个参数,同样的鉴权算法,也计算出AUTHR与手机发来的AUTHR比较一致时鉴权成功,可以继续通话。
5 i E8 a0 y, ^# j. K9 A
; w. L5 E3 d I7 N% X$ \& n) L
! T# g7 }3 L$ u7 @, @ 在一个所谓的网络优化后的网络,由于参数1,2,4都固定了,参数3意味你接听电话时也是固定不变,你播出电话时已知,上网#777,发短信时固定,鉴权结果AUTHR可以跟踪UIM卡数据得到。8 I) }$ {! @* v2 |7 [
]/ b K( r# N6 g; Y5 `/ S 1,用串口调试器软件或单片机飞线到UIM卡数据口捕获数据得到AUTH
/ W& E4 v) Z/ f6 }4 @/ Y } 3 s2 X6 b9 E9 ^. @7 _# Q- E2 b
2,做一个特别的手机软件,自动记录拨出号码和接听,短信时对应AUTH。UIM卡MIN号和ESN(UIM ID)可以在手机工程模式看到,或用上述特别手机自动记录。 o( D* r! l5 |- g2 g
3 e; W, c( F# S 之后
, S+ \9 {. {0 K7 ~
7 J1 ?- ^; j" h' R a 用上述特别手机,在鉴权结果AUTH出来后做判断修改为上面捕获的预设AUTHR,* i, e8 R( v9 _% C0 w- d1 ^3 G
- P" }- p0 Y; @# r
就可以
4 Z! `5 _4 D% I! g' Q" @5 b
, T3 ], K2 \# t4 w# u8 t' Z 1,无限并机冒充原机拨打,冒充机主,银行电话,充值什么的..........
" Q: A4 R$ r" P' U2 I
! ~' b/ ^( h, h1 A6 _! m. i 2,做无限并机上网卡。 r. Z4 ^7 l& {& ?1 _
+ D4 P# ]8 [/ p5 d( z 3,冒充机主拦截电话,特别是特制手机使用无卡鉴权的话,鉴权计算速度比真实机主的UIM卡鉴权快并首先返回系统,结果就是真实机主的手机永远都不会再响,只有冒充的手机会响。' ]% |- v, w+ C' |/ x
2 e' N, M% F7 U% g 5 Y# i- P( X+ h y+ S
最简单的实现条件就是有人拿到你的UIM卡放到这种特制手机并拨出几个电话,发发短信,上一次WAP,打入一个电话,几分钟后就能复制了,这个速度比GSM的SIM卡复制需要几个小时快多了,所以更容易实现.
0 Z+ t( ]( C; Y" o2 d
; f r4 T) @+ t6 Z1 ]- t' u2 | 在一个山寨横行,手机源码不受控的年代,做一个这样的特制手机并不是很难的事情,只要在源码上加入十几行代码就能实现,也就是一两个小时的事情,甚至反汇编,仿真器跟踪现成手机并修改也只要几天时间。- _; d" Y$ z/ o) L8 ~* X
1 w0 G. C3 J4 u: W 对此安全漏洞,并无利用和实际操作,此漏洞只是本人实际测试手机SSDA更新时发现(实测某些地区人为引起一般鉴权失败后从来没有SSDA更新),但觉得理论上完全可行,希望新电信接手CDMA网络后尽快修补这一漏洞,还用户 一个安全的CDMA网络,特别是在现在手机支付逐渐盛行的情况下。
2 j# n/ G8 V3 e1 h: R/ e9 ^% C# Y
* K" D1 V/ F, ~% o( q 又想到一个方案+ m' G! _* R3 q7 o' Z; {
+ Y/ y& Z7 J: Z
条件5 b; |4 A! N" D2 D( V1 D. K5 ^, T0 K
1,从不进行鉴权失败后的SSDA更新
, {. n. u0 Y- ]& s3 K* \ 2,RAND固定为08 O) g7 k) e% y0 H" J
+ D4 F. W9 {# ]# h* f UIM卡一般鉴权指令) |8 X7 I4 [' {3 n1 P+ g$ L
发送:
! Z: |8 A% a$ v$ l$ l( n
9 X% i7 F& [0 L$ j. ~& e A0 88 00 00 11 进入一般鉴权计算模式$ Z( _, t5 ^3 C$ t: y0 G3 N6 Z0 }
8 J ~9 P: N% A: a: N, L0 O 回应:88) i7 M& @: j3 E1 p
2 L* F3 u/ Z9 h" N7 n9 W 发送:
8 Z- V U, K" r* D) g; }
, n9 Q- M- Q% C7 u" P; P, y9 J 00 RAND(四字节) 18 DIGITS(三字节) 10 UIMID(四字节) 00 00 00 发送一般鉴权参数$ p9 A, w; |* n4 T% h) B* I
" q& u6 q- \ ^- p
回应:9F 03
) W4 T( t* F# W4 {* d 2 ^* Z! g* D( P/ @5 n* _
7 o8 N7 L9 Z& f. M, u" _1 l" m. F
发送:
$ v! [$ u+ f/ X. B0 Q; I0 ~( A8 o% _9 B2 r0 e
A0 C0 00 00 03 读出鉴权结果AUTHR2 F1 v9 @) x( L$ A+ Q2 b* S
7 B4 y) ~/ }# {4 z9 F+ ?( S 正确回应:
" ^" O' J7 `) r1 x9 ?* K% q, C2 D' ` U6 d& F Y
C0 AUTHR(三字节) 90 00
2 D7 Q* v7 W" L2 ]& Q0 Q! @ L3 C# b6 ~2 i7 W/ L4 R+ p
我们不用知道UIM卡现在的SSDA,
' Z: H2 V* ~3 H- W0 ^2 z9 X8 K" _2 ]: T! u+ w+ G2 ]( Y3 D
DIGITS在拨出时就是拨出号码后6位,不足6位前面用MIN后六位补(HEX),呼入时为MIN后六位
6 K9 H& k. P5 M# K2 q* C , V( K1 R6 C9 C* |/ \$ j$ [
DIGITS拨出号码时超过6位时共有999999+1=1000000个组合,
( w0 j, _ }2 l4 v# n7 f4 V V* b
6 [6 i# O" ] f; T+ [9 @; g 写一个UIM卡PC软件输入DIGITS的所有组合并记录对应AUTHR建立数据库,如果UIM卡一秒能做10次鉴权计算,大概20-30小时能算完所有组合,大概生成2-3M数据库,将此数据库导入特制手机就能实现部分地区网络情况下的UIM卡复制,攻破鉴权机制,如果有条件还可以做一个有3-4M容量的特制UIM白卡,重写程序,将数据库导入后查表给出AUTHR,这样的卡在任何UIM卡手机上都能使用。7 J" @! u' B8 d& s) z
' c( r' t4 Q% Z% i2 Y# d8 t. B8 z0 D) l# z1 P y" o/ L1 \
转帖 |