( w# }1 c/ k/ N4 q* l
8 N% F0 J' Q( ~: b4 D- M" X. @" c - h4 l* T% P3 }) A
" [, f! k# h" C- [ 6 ^; {$ R' h* x/ H
T7 V" c! h8 m9 d* q. ] k
( m3 Q( \" x' Z
6 X4 E4 g1 b" K" [0 }) w) r- ` 9 O" \+ E* t; N3 ^
6 ?% g1 B& T; _7 B' i
3 @- }0 q! p2 D+ { ' _% ]" w9 {4 n1 y
在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗?
, q1 \2 J$ i! R/ [5 x5 y( `
9 I; y# T6 f! C5 P( I' N1 R
% x( ^8 Q3 v) O9 ]9 K5 J9 C, i. r
2 s' [4 A8 {+ r$ s. c5 c# m+ C ; ^- L5 n* A) ~. h- c& `3 ~6 T/ V/ p
8 V, c/ |. h2 h4 {, Q
《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。
/ q7 t* s$ i- p( k; U; K - Z% d% V4 }) N/ U
4 s7 T8 B" x& t& z, n 8 ~* P# z4 V" C6 Q4 W
% \3 `, n& o+ x
& ?3 n" S) O$ U- [# N! m
在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。
% n8 t P0 ?3 }6 d8 u2 {5 G ( X2 z, ~$ F# ?" q" r
' A, \4 T4 c' o# ]" `8 r! r- T6 c , ^) C" C8 p% _! F
/ ?5 R) }4 d0 ^" n0 {; a
. B, @8 X3 Y% c8 N *文末附《破防了》项目技术分享视频) |3 Q8 w! X- I9 q" Z& ]% k5 }; x
6 ~! b8 S$ N- R% ]' A, ^
1 C7 ]+ G, V* E N
V( B! g+ A' R% | Q9 r. U$ R 0 Q/ f! O+ h( f% }4 @; V0 e; C' [5 l
( A. \4 d6 v: Z( I# D
0 u6 v/ U; s3 P% p, A 6 j& u3 ~' z3 ^% M% F8 K
$ o, {; g, [: P) g/ ~
U# K) L' X, Y
! v( [$ @* S) ]6 d. F# S, y/ X0 Z1 H
3 N9 ?. Z7 k; v; N; A
- {0 E3 j; g+ Q3 I
2 D6 Q3 v0 \8 ?! b5 f% ?
; t; E4 ?( G+ H9 ]# q2 _0 l) k 4 V' S: I. [: o( j
- k! f6 ~' w: V, A( q 9 r- O, ?- H; A. G; k/ w6 M
' J4 x j# C1 Z/ ^$ o+ h
& L9 q; R$ S5 B6 ?' _ 5 S0 I$ k: b/ F' {4 d! Q5 P _& W
日拱一卒 功不唐捐
% j/ O' ], F# t" M9 h/ L- Y1 L9 _ * ] M/ U' S. Z( G2 n! \
- k# I: ]$ W$ n' s) l ( V. e; C0 ~& x4 F+ L
- Q/ f2 f, P8 Y# c+ a4 i9 c- O" |2 h
. X1 b# G! a' v: c6 J7 q
& [" k' u8 c+ a, u
% { H3 C7 ~ t+ B0 r/ N4 f
: V$ `" a0 P' H ( v8 ]* i3 P4 t8 C# o1 \9 {
! t: {4 ^4 S9 H q. K
2 q/ B& v x' t$ o
6 M, Z. [$ L/ @ u0 B9 ]2 M) s
) f7 s. M! H- O/ Q6 N1 ^3 @, f % D" X4 j+ |3 A* S6 C8 a2 T% Y% Z4 F4 ?
1 I. C; _" b G# \
. V& j% a1 P9 x. N7 ~/ E# M! { * o& v( C5 C' S0 u0 r: k( n$ M0 L
% b1 O! F( b# }4 _8 C! i! u! |
& U: \+ o3 R$ n$ A3 N- J1 s( V8 Z0 \4 M
. e5 |3 O0 k; G
" E8 ?; K( ?4 h" k2 } / l- a6 y6 L* K5 }
因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。
9 [* H; L) ~8 i; ]" J
0 w& _8 _! ^* W. s g
8 ?5 k3 y& R2 b/ E9 B3 K) J. t
, q4 b P3 r, I' Z* `; B/ n0 E
; K+ N. t8 R0 N. n$ D# V! B % i! z+ c7 E1 l
; T' j# Y2 A* D0 n( T! L
2 F1 a6 v8 x8 l. V$ {) q% A
) c( Y8 W% {9 n: G4 D! F
日常研究环境
' d6 W' W3 ?6 K( m7 s/ o( I. Z " k. d3 w/ @" ~* z6 ^/ g% X6 n( _
' D6 t( {; y; ?6 P
5 \6 @3 d! d6 [' p! U# `, p5 W* E
; P4 ?5 ^7 t0 N9 r
9 b& O" e, j$ p* x 市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。- x* Z0 L$ e+ ], V1 t
' L& s; X: f6 G( J* g
i" z _3 f$ z& N C. q1 n; ?
' h' \) K( L/ R2 v
. v8 {& g" N' b! i
0 K4 n6 }: z. ^$ R: j' y- x" p
" c* m/ d+ c* w4 u
" }, E3 s, Z, Z) V& Y( _ : X8 D n9 }, Q
3 W ?0 y8 v8 }1 h7 }/ w
) G; P- z" N2 u }
4 j/ v3 B3 v# t* ~+ i1 i 发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。
4 H2 S" ]6 Z: a0 p- q 6 _; x Q8 k! f$ }
7 i3 z/ Q# ?9 Q, ^ # B3 n: _+ |; ]) z9 X Z C
( k/ i+ c+ A2 `! M3 P7 T
/ J' }# B: ^! H3 D4 a# `% ]6 l8 P, m
, T. j( C4 ^, s# ]! U1 [( w
+ z; n1 Q I; x0 d/ A) _
& H& y8 u+ W" h9 G! g
+ h: Q- F# {: t D2 t
1 ^5 l2 O0 z# N+ `$ p% n7 u! G0 E
5 X. y6 J& A8 e
- L, _$ X1 W5 ?: F! }. y& g3 u
8 R/ W d; [; o4 U/ a
: |- n: G; R+ u+ @! [ 6 E. ]4 ^9 Q& E- ^% E- D
) k5 ?+ z- y! E3 q! m
2 Z+ g2 e8 s' J( O3 `. f0 S+ ]
0 U F5 Q2 L9 r* z' t$ O& `/ [ * t, e# C. w+ r J+ A, s' N
, h5 s$ m8 S% T; Y; N( K 破解加密硬盘: A% c4 n$ F. U2 h7 {
4 [0 |9 Q+ t& F) s5 G9 K, O ; s. t# B2 c' e$ m3 k
" I. a, A. a1 \' a4 d+ l! K, L9 O4 U1 Z
) w, i2 R- I9 }! [* q/ K/ n+ X
+ e" p( Y/ c, ~ U1 Q* q' q
0 e2 p! f7 E; W" Z6 w4 P
6 ~8 _- U$ H3 X1 B6 H3 A ! B* w- f" H. l h7 ]2 R$ r
8 d ^4 Q& k$ D
1 c1 ~( r3 K; {+ ? 8 ]3 p, S; ?. n* \
! b/ s" r0 Q1 G
* [2 _# y8 X/ @1 H) C& C
! K$ ]/ J3 {' U& p0 E
: _. {3 T' G& Q+ M$ l- h
8 A: m. f( C" i9 m, ~* L- h$ I ; E% [1 I% T8 F* Y0 f% v% L
5 U+ k/ }) Q! [ z
/ a$ r6 V/ v& m ~
% t* j+ c5 @6 W- b6 y2 S) _ H; T* y
* _4 }& T4 P8 m/ K4 P4 D* [2 v* Y
( L+ l0 @& t7 N" v
9 Y6 B9 q! |! W, @. G
$ u3 V, S6 [ Q, ]# x6 u8 N5 d
7 i2 S( A2 |+ R2 ^9 o# @7 S: d5 m 延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。
0 H2 e2 M& n2 b 6 d* B8 N, v+ p) a' j1 z+ _/ u8 U
9 q% A& R+ y0 f( g% D7 s ! a2 k& d- x7 e) h& n: ?
: w7 q" F0 {3 v. o " F( T) K, A! P5 S0 ~2 X
2 V% }% ]- ~5 |) Y1 B2 n ` # o' ]4 I+ x$ e* N" U7 h) `( R
+ V& z) ~, f$ ^+ s
# J+ D2 `1 d+ N. e) I- s
5 \6 a- F3 h- y0 ^: M6 o$ G 7 |' O& y( Z3 l2 q
在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。
) f9 v- B) ~4 W! I/ P n
2 Z' e7 h. x$ _% d# g0 ` * h$ D, {$ M4 ~$ f9 W- Q! [
2 }' r' _+ W& Z- G8 \
* [) B/ q0 m# ~ o! a1 n ) t7 Q, @" R+ j8 R1 V5 J
, H, w. @! Q) k. H1 L
! g7 Q. y# V$ E* R
7 a! [+ }1 I) i9 n5 Q$ q0 K
2 \8 i2 m" @4 r9 R, u 8 `$ M" h: a7 q" @
( O" n; O* D8 I6 L- Q$ _3 M
在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。
$ ]3 _9 _ o6 c" F2 G
( @. O3 j7 [& Q, m# u2 w$ ^/ ? - T* @4 d2 o$ E r' A3 `, B
9 i: @& \ x3 c
0 a% O0 I$ o9 D- n - @; S6 ~- C1 v
$ W; u0 k/ Z: }
+ J6 h( _% Q; ]/ m. c# O 1 C% t$ S7 R2 b: s3 A
|