. q/ Z8 D6 A/ M& |- N- |5 @ Y* {8 {2 Y: l" q0 B" c4 _
2 s* B$ W# S: {& z9 j; _
$ b. @) Z- e2 }( `" m @ # Y! Q: P6 n8 a! W1 L3 c
! w# s7 ?. k2 ~
2 q; e9 l7 O- b2 d
( P6 U0 T o9 ?' e, A& W# a' ^5 u
! X8 N% Y _8 ]$ Y! V4 q+ l, d
3 o/ w" [9 l, Y4 K) h$ C& p+ ^ 7 b1 k: N( U" a$ y: }( H# q
* U- b; f, A# `/ \, J' K
在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗? : j4 U/ }/ @% O+ }. _
9 o I/ s2 s! S+ J+ s , ~' P- P' `1 f
4 N2 l% X, w$ M, ] l' z- a! }
* [: a$ K$ t s) h0 T) L( M
1 o! z& ^! l( B5 R3 H% _
《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。 / K c. s- K; ]* s/ R# f. G
2 A" r9 u4 \4 N. ~
( R; _8 N/ n& g; {$ {6 n' e
/ {* B% `, y- O2 W. f* B6 e
$ w# `5 F" j% S O) O9 h
* k+ B: W: T6 X8 t8 V% L" w
在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。
" I# K" S* s' o, j6 ^) i
( I% i( j1 A9 |
, n' ~: |" B7 Q! d5 R% E7 z ) b- S9 c% d& z' t# Y/ t+ v
; k$ g2 p- L4 [( c" J* L
3 C! D8 o1 A& P *文末附《破防了》项目技术分享视频
) ~7 `9 l7 |4 ?1 z1 p! a
% u# v2 A! ~+ `, ~, z
d0 C- H5 d5 ]) j; J7 U3 B
# Q% S8 x2 K7 C- i 0 @- W, |: L7 d& Q* p/ `
( Z X ~, l; Q% Z
$ t( f& t$ Y; }; @) a$ g
1 X: T6 z5 A1 |# `' s; v; \' S 8 x7 F* t$ s4 Q3 S3 j* i7 X+ w( T
) ^% t% r0 v; M/ V+ @4 Z. n k
. U5 X7 s5 }5 k* h7 I* F* f* L. G9 z! P
# @: ]2 [" g$ B K* R/ R
& ]( H( C: n% Z0 d " T& I% ]4 z. N6 k' ]. J
; r! t* p. M3 ~0 p: u" [
- R8 A' R& h/ J: D# l* N4 H
. w) S# g8 X( d) Q: K7 J7 J
# |* {) K- U4 E7 k/ A4 ^ " Z' Z$ W7 M1 l) S: z; d; V
" K! B2 j! ^+ {! r! u3 a, z
: w" `2 g9 a. P# k( O n( F 日拱一卒 功不唐捐
3 F u: ?5 s9 S9 r- d
4 v z+ j; ^5 R* m$ i3 l9 T
6 y6 b, _3 O! y( ~9 c" V 3 s+ o( q; s( s' f% _/ }; B5 M+ A
9 o3 ?* j9 P1 h! U; a6 V ' B& r7 x" G9 @! N6 e* J
! R: W2 A/ A R. z' Q' m
8 _' }! Y2 I8 `* N3 Q8 A , G+ K0 |* Q: q4 D, Q
" |$ Q/ J% R! Y$ o9 J1 U7 B/ h
/ X. H8 j* z' j1 c9 c
D6 e+ ]% ` `* I2 T
, \; f2 W; U' ~
( r% }1 {" x9 V c Z0 ?) p6 E6 g N
/ `( w+ U! c, \) F0 d
. I4 I5 K+ j g, V$ ]$ E
" D+ c4 t0 ~+ O4 @" O& Z9 b
; e. u) m( z: W y# t5 b# O# y; {
! C7 |6 I) q, F. F
+ g0 B7 }7 f9 Y: Y
0 `% R% b! P; H9 _* `2 Z# y/ J
! F' n( m, L" ~% {# r 因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。 " e7 x# J* J& e" u( d5 f' o
( r, G2 N7 y0 _+ f. v. |! Z
$ N4 q$ U, }+ ^
5 `4 o5 I5 K1 O+ F
( f% ]9 {( z4 v8 K
) G5 [4 f6 w9 K6 p4 c/ m8 m
% ]% T9 N, z& Y! i) S3 U
# [2 O+ _) N' F: l1 b# i! A
1 N) ~" w |" S9 {& `8 y+ R- P' V( o
日常研究环境
- n' L% ]% i3 ]1 O0 ?, w
5 M- `: k- Q8 W3 D
- m" \* P& `3 e) n8 N' Q# G ) ^3 H4 q* ]4 E4 _4 O
0 z, C: x2 [: a2 u" O 4 f" x0 @ e( a" m/ C0 T v
市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。 , u2 c: E2 Q6 O) b9 ~, d8 k9 b! G
# r0 \$ b$ O8 Y" \; h
( q( H0 p* Z1 m
# i+ }: F$ s( a N; r2 m
# _+ q$ G5 l8 ]4 |" w
) L c. Y C6 C& b+ e
; Z1 D. u" u# v$ R# A
6 E+ z9 T+ O, k" y
+ e/ K5 F3 x( A7 C" C4 n: P/ \. k
9 L2 ~0 C$ H; y; j, h# O
6 f1 O5 n3 y% g( M' r + g" K( `, z" X
发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。
' N' u' H$ n- k$ x" @2 H5 K
6 k2 {6 O6 r) [
, p# _% x6 X' ~; R! _2 g* h 3 A7 l3 z1 m/ }$ j1 @
H4 _# S. J k" {
+ V3 i& Y3 c6 m& G! o$ s4 F
. X1 r. V1 \: F2 V4 A
! Q0 y, p7 V3 P# B
8 W5 k2 d* c# ^% X
; Q. ~9 E" f; |
0 n) k: ]- a. u2 B7 W5 I" [* j7 S
. b- }( A* j: M- p* w- }& z
2 e h, K' ~. w, x1 |0 @5 q* A
, q* s7 _% P2 U; O; g+ Z
: q5 m) a* h7 r& _# f2 E! _7 a5 K( x
* b; e$ k% ]' a" H* A. `; }; a1 J
4 p* T n, T$ m. U+ A4 I
$ {. X2 {5 Y. Z2 N5 k
. H4 A/ l7 @: j7 p, f( N ! i, f* R3 H; A7 r- r
9 `) h; Q4 v7 f7 a+ ^5 ?+ ^ 破解加密硬盘
1 \- R F& l5 K u% @* ?, [7 G
5 Z: W6 s+ O0 M% T
1 m1 k, n7 l; W
+ \9 X. H) s0 V# ~- H* |8 t
) @0 l4 @% X2 ~" Q * n/ T5 x1 K3 L; o U$ B
( f) S) v4 N' T @% C0 K l/ b. N0 L) @
- E: ?+ l" a& t& K2 o; X % ?1 H, F8 r6 r2 i! ?
w2 |7 q0 R3 U _) j& d% ]: N* d
, |; e! Q# ~4 c2 @7 l/ S v& M
$ J ^& h( L8 P, B
$ X$ R+ B! q3 J+ J% I # r# I1 Y" W, R0 Z O4 h
2 @& k& z! ~+ \. W & L: `# O% m5 ?, O+ d9 P
' a" n' @& c% `, g9 n
, u$ t! \( s) ]* n6 }! W _# r4 r8 p* u! W. t0 k
6 t$ V4 V* ~4 \6 P0 q
& i! L9 W {4 p: M( Z
$ i# Q6 d( [ E7 J e/ A* ~1 @
9 [! o1 f6 Q- w" K
' x9 `/ M8 l3 }6 |
0 @/ W) T: W4 t; `( ]# q' I, K
6 I8 @* `& }- _3 t" E& C) r% b# k Y7 r 延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。 + K) ^6 t8 _ i: I
4 o2 g* s0 z0 n; ^6 k- d$ L2 E$ A - B+ I; ?' }6 K
5 K' N5 c3 x$ T& k* } h
* _+ k! D& b2 Z) D- a( c
$ ]6 f( V' |; x. l2 L+ g
4 S6 t( o J1 y8 c" A* L
$ E- @' f, ]9 _ ; U% {( S3 v5 X2 |: O: e2 e R; o
5 f# z6 B! K* t9 l4 }: h/ v
; Z9 |2 F Q4 R$ z p $ S( H( k; \2 A" t+ S, P& Z2 y
在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。
' i( D/ t' p$ r9 c" y( f+ ]) u% e
0 v/ i# V% V, O8 |% ]. R3 u
# I( Z, p( ~! P/ r1 F8 x
! l4 A, P& {9 h1 Q4 Y
' m# X c- q& } c4 u+ E% G
9 \) O2 b- J8 G6 P9 O3 r4 a- J
: F* A( R) J5 o+ }7 o
1 `! g1 E4 `+ g* S' D: H6 R5 Z' m5 M 3 d7 q, V* ^7 L D" e+ l F' X
5 m# c3 X& v" D0 P- c* A# P1 |
) `: k3 l8 E3 ^2 L8 I! c7 T
; B3 e7 s! a8 q
在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。
$ E4 U' s6 T+ _
9 J3 J4 Y* v2 \+ \! }* s& G# q
4 X( M# Z% N9 |: j* n# P' H
y# j% b/ f, e4 S3 t. c- J9 ~% f) @
' B6 U0 s( W5 c+ F& w/ }2 E/ {
Your browser does not support the video tag % j% c$ Q1 r; h! N
0 ?( r+ \# u: f3 P- j
2 K7 f# P7 l8 ^* u2 t+ `! F
- |% M+ M! f2 v' y