6 ^) y+ @8 Y3 l# d- b
- k: p4 v" j+ n% }1 Z
2 V# {# ~3 B4 V% A* f
8 s0 X4 Z2 V0 \7 X) D3 v7 o' Y 7 z. H" e' G9 |1 n/ J
5 B3 L( K6 ~8 z
3 G$ H3 T; @* U1 K: Y3 ]6 C
: l% A: F8 z8 m" }. P/ b
. {* H$ ^/ Q z 1 ?$ |6 V, d( T
5 [9 j9 f O6 {# Q2 K
! e/ W7 P5 C) R7 p( s1 m% H 在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗?) ~( k6 Y, L' L9 u7 W. C* c( }' \
v3 _2 a4 c; X2 q
0 v6 B1 G6 {1 n" T* ^$ j' U4 v4 Q
2 A' O( w. k, O! r
4 G6 _7 f( t4 F7 Y; z* _# h
3 r) Q1 v; X2 |! R3 \1 P
《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。
5 M# l( }3 T& q# \; j. p
2 h) O! j$ A3 r, Q2 X, W; c
. c5 C0 `7 m, G; s. t6 k) [
9 i1 K" \; N) q% x6 o3 E) d
- V% }: Q3 p! J3 }: n* q( `0 z
3 e" [5 u% T# y* E+ }2 A- _$ z 在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。# L( i" z6 w9 M0 ~. I
! R( `( K0 `& Z* t3 T; L+ }
% d0 t! D+ v3 u1 ?, ? K; m
( b$ y& z3 R2 o8 S
0 T5 {) Z9 C' B* E1 @, h2 H$ }
7 h( h9 B) S" \1 {9 b, l *文末附《破防了》项目技术分享视频
7 K6 G% N! Y: _' r9 |3 u, L ! J" d9 z8 `) ]: g9 u* R/ P
3 S# M7 a& M% D X0 t8 x9 D# X
9 H; P& j5 e$ c& ~ , G0 k$ m& O6 v" g, y" U
6 Q/ x& t6 }6 z3 ]
& G4 q) Q+ ~* n5 @
* L4 l/ f t; k% s
" J3 g) ?8 n, o# @! I/ N
/ E$ p: f2 M7 C$ d& G2 q& c- ? + `4 E0 q N+ e1 ]% {7 _" E
: r# K, `% E- H2 L k& B . P. S' k3 ^( ~" q
. R. U0 b$ r" K
6 P3 _# X- x- a+ e
# [* Q4 i1 L0 M" Z6 s" x! Z* M
$ S3 g" P2 V, J/ L- I0 Q
1 z; \" [. s7 P
( t* ^) p0 y( u7 \4 F( X ( k1 k. ], v' c) l8 O9 B' b
& [6 p+ ]# k! L9 C0 @
日拱一卒 功不唐捐
9 ~, W- h5 H3 M ]9 N
4 s# g+ h! ~/ x$ @7 H6 R3 X
( X% I: h7 u ^& @* Q1 D1 Q8 N, |
" t, S O3 l3 r/ W0 M! g: R$ T' V+ a/ T
1 R& S! n T( L7 ]! K, i- z
9 \5 r; U& G |
1 y' I3 F3 q+ [& T3 t
& {! ]$ m3 S, m: @3 z% O5 x" w$ Y
( e7 U" C; s& p1 B0 d# _
% N* u/ v; T! B: A0 x / ?0 c! C7 |: P% M) o. _# J
+ b' L! ?7 Y& A4 @* V
; I$ j" c! n* X# }5 e0 N
' e6 a8 [6 a3 g* o. k- B$ z 0 [$ p% J3 l: h" e
$ T& J! S+ `4 b6 c
0 j# L: O; W0 I2 {8 J : k+ P' h2 C6 P
/ D1 Y- N D! a# Y( o
! A) j8 W3 i4 v5 \! s/ {
1 `0 f1 n( f+ t+ S
) ~* Z h& Q/ z/ l" e
+ H2 T9 m3 l9 ]2 {; S$ D 因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。/ S/ @1 t2 g6 r% x( f; ?
( x* P, i8 _6 w
" ^9 B/ v9 i$ j2 L/ d
2 T* m8 J, l3 Y0 p \7 U/ [
4 s* |* x+ j( J9 q5 w( m7 e& a ! u) J7 c+ B; D& q$ {
1 C8 ^9 v0 Y" R) t
; C v3 P& Z4 E) _/ w' f0 F
& R/ D7 ]" a" Z+ C4 f. r* t7 N 日常研究环境9 r. S6 v- O! [( h2 K; Q
: F% o' M0 N: _* x" `( E3 k( j8 k
! A8 {( R8 _, p
# X/ g: w& Q W, b$ ?6 a
2 L% t1 \3 a6 Z. s+ n- u0 b/ ~$ ?2 ]! \ : j! B( u4 O$ ]5 Z- Y8 K$ ^( j8 Z
市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。
: Y( o3 I) M" g 2 g+ k* T6 _# o+ D, u: o
( N% s( T8 h* Z. F5 z; m( G. L
( E6 Q e5 \9 F % E! l2 x6 a/ ~$ b$ @7 `
6 @/ |% M# h) O4 h2 X( ]% W, s" f
6 s# y# F* j, z
$ l- L( G& w( t2 H7 _. T
: ]% O9 K; n0 V- g ) t: k7 ^$ ]" K1 k T; w4 N' k
, r( y5 u% p! C- K$ W $ f7 i2 r2 A+ i- x
发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。 " Y! a$ q( O7 m+ v$ |
, ^8 h% E# { F : `6 C% v% o6 p- L7 x+ ~! _
+ ?7 B- n7 ]9 d) |6 K2 S
/ e5 n( g0 P3 y- S
P+ X) w$ e! E! |
1 Q5 b0 ]( t; P# C3 | m+ D ; I: P- i; D! `& e
6 R/ d6 t# s1 D n: f
$ o$ C4 Y8 m! ]. T7 u! e% g# l) t % X3 l' [" i9 P+ J. s/ u
5 m* \6 h6 F+ `/ L; X. z( I3 y ) d2 }6 v# \7 c' `; C, Q
8 G( y# F+ C! a- k# \
^; }: }( B& L' B5 W $ p% D& w8 s* f1 [$ k$ Q' K% v
6 t% y% y" N: W/ R' w; r8 e2 i" C
/ i8 ?, M8 }+ a: X" j * T3 n& Y ]1 ? s. Z# u
1 l5 S4 L" o$ h p. R
% F9 |" |" X+ r* J
破解加密硬盘
: R [/ x7 [5 m ) I6 o1 q5 v7 r' V0 y
" f9 Y, b/ T4 K- R
8 W: Y. A9 m! C( T4 ~ * v" x- w+ R$ C" J. l" O- I1 S
/ f$ Q3 V4 I* l' L9 j
! H! s. {8 i# b9 m7 u2 `3 C . P7 i; U! a! n# u
1 }' d# o/ Y: q) a1 l
; S2 o* F7 X0 t9 M& Z3 z 1 m, t! Y$ R+ s
$ r0 z; d( L" H8 V4 U/ b V
, y+ O& s: ^; r/ M6 N* `; i0 K
5 C3 j" g6 M' h9 z, C* x$ s6 r( W
2 c/ `# |, J6 ?9 g( `4 B
. n0 c) G% ^' F) Q6 v! C! b" J1 w 7 ~- d9 K" S% l% r$ ?
7 a$ O- F7 h# y8 Q/ x w5 `
' p m6 u- E1 [; C: u# ~! F8 Y
) h2 z# l. n1 L( Y( \1 Z- n2 p - n- r% }/ {, R& K5 o
7 i- G7 ^3 O% t6 {
: B8 m" C6 Z; }5 h L) o* A
+ z7 w' r1 J$ y4 A
& M } t/ C! D8 c + M& X8 C2 f: i: I* L! a. u
延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。
- P7 `$ B8 R& f% t- e
& c9 k5 {% h$ S ; y# T# f7 M; f$ t, ?7 I
7 E# s4 q( v5 D {) F
6 ]* u; z7 X! z+ G " l9 I4 Y6 j% c8 [3 e8 r% A
; l9 N, m0 Q9 K# c
4 p# n; w3 d; v4 k/ L+ t: ~) u( V
! i+ M, N2 L9 r0 [ % c3 E$ d2 f7 a. \
2 i. G1 t0 Z+ }
9 A' m! y6 {3 n- [ 在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。
' M% t5 O" l( A3 m: G
4 t+ y& R% ]2 U
8 ~, Z4 @( [5 q4 ?8 p 8 s* I0 l' ]5 T- ]3 ^ p
2 o7 T T( p" U: z6 L, |) d
( S: K4 t7 q/ B0 R8 w$ d
: T5 @, ?3 { q ~
; f7 J( x G4 ~* ?
" D/ f, D$ q! i
; E7 O. D' i" }! F# o
! d; U/ S/ h' G
N% K4 p2 t$ z2 B7 @( q3 h 在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。. q% }% s! Q% Q$ W3 c
: V9 p6 c1 K, F1 t, o
/ @) N3 ~4 j6 W6 T3 e" x i8 r
/ T: g5 {' ?2 R6 A' }) k. B , S* m' F# ^) _; f- I, N: I* W1 W
2 }. ?9 J% ?+ n1 c0 L4 l! F" H
/ C* }& V z9 o6 [7 [& b( Q3 r
* X$ g8 m& z# B0 T 7 h% e9 m6 g7 [1 j/ q% e
|