% ?, [9 H4 h h( a- }/ r/ |( d ( G7 F8 A- B; E2 \6 A8 x5 z, m% a
3 v+ I# D5 k6 c3 A- N+ @4 _ : p- G' ~3 s( l" t4 l
6 R: O8 X# n; q# T
) [" }5 i3 h4 v# \* ^
+ ^2 ?! Q" T& j" G( s [
% O1 r1 v- W: U- p8 n: |
% w2 a3 c6 @7 N1 [/ Q1 }2 i : ?# ? D3 \. V7 {2 W% t$ K0 G
2 H2 \' a8 |( q: j! [
% e3 E% G4 J7 c5 j5 P6 y
在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗? ( p# M. H' {% i7 X
% U4 u- V6 h. C% }: I- o
1 p8 j# N) l5 t3 ^ 5 T7 K- q/ ] S) h
1 B, q" ^" N, ]5 s% E8 b5 w
% W9 G- {* s, i) ~* h+ w. j6 h 《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。 4 I3 F) ?" ?9 Y8 s
: _+ O/ e+ U3 G
, R1 R0 H! |3 J1 w( T' x/ E
5 S; A; x& x! ^8 n. N# D
/ N5 H6 ?! _* Y. A5 ] 4 `& E5 T: n0 C7 B. _; n
在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。 w! M T- `* |: W( M' F/ B. C
, ^- d! L7 [8 ^, e k
( W! G/ Y6 b6 o5 U7 T8 K
6 Z! [' P* N3 {0 s2 `. R; D
0 T* ]! E( n+ z. l
C& @' S& ?" v6 I; I *文末附《破防了》项目技术分享视频 ; m8 ?- \; w, C6 o6 ^
) g2 G1 u3 F+ V" F& M" U ; X7 c/ g" R: ]
$ r/ }; I0 K, V6 [8 m! H6 N
$ Z! U- y$ j a/ Y( K8 A7 H" Q- {
5 J) V6 U1 A- n 8 `- T( S+ S7 U' X, X
) h4 R5 s2 S- e+ q$ d8 r% `. s% C
; y$ y- ^: {7 S, S5 z
" Y x8 Z/ q/ h. | X& Q. K 3 W0 J8 T: t9 l# _, }, B' V% W- b
* P' h& _. e) u# i6 j) E) p
/ r7 m8 _$ d5 J S* \. s2 Y
5 K2 i7 \! b! F$ X2 ?) V t* A8 A' z0 P7 w( Z& j: T
9 B ^) B) m( X/ k) ]
; \+ d# F8 [: a6 c ~0 ~0 P/ a' T
9 S# \. E* i# T7 O7 G @ 5 ^- n" U9 k# h ^3 C( _7 a$ Y
$ t8 c1 b. _& o u6 C( S1 m
3 f. K3 |0 p' I) A
日拱一卒 功不唐捐 3 J+ R+ g. z' q! j2 y# O2 H
- ^; }; s8 p: |8 C* L
6 E5 T' l- B1 X
$ ^/ S @( s* L% b; ]9 Q( v 8 @- y# T7 B8 p
5 o: ~; J* ^& [: z# T 3 Y+ r, N7 _$ O- Y% [* N7 p
- P; l9 L7 ?8 h# ^
/ ~6 K+ y5 N5 h7 j+ a$ E # g }5 Y4 K8 e3 g! h6 v! l" c# T
* w+ M% `0 ~8 J) p9 X }4 f( C ' r4 W5 `* R4 S. q1 u" q. D
: e* h4 \% T+ R( T3 }! E
7 `- j8 A8 I, r* l/ f' q7 n& L
7 B U8 |, n# R ) t$ y* h1 \0 ?" u
$ }$ |# |2 ]' P/ c! z
% T0 g+ m+ X7 Q7 h9 R$ v1 [ 8 |6 k1 D/ C! O) j$ O
; j2 K3 f8 @8 i/ `3 F g/ l
6 v8 Y! W9 Z M4 }0 K
$ |& t0 r; Z! m" M7 d* E- w
( s& N' s, {3 K' J& a y 因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。
7 K+ i) |+ F. X5 E J: m0 d, [/ N J
2 G$ U+ c0 x" _1 p
% C* C7 w1 J1 W" G6 F6 ?
9 z" B0 T& N+ O6 |1 |% b
. [! x- ]( C" k6 R6 O7 S
* u7 P7 [# M; d5 a% f) l. N
6 ~+ ]& P( I% \, }2 B$ O( Q
9 z4 t2 V( d" o V) ~8 q) X5 l
F2 }/ l* J! e
日常研究环境 + W- M8 \7 M, m) x4 W$ B* E
6 I, z7 a. b* A# Q0 B
% \) N- C4 q5 z: l$ C0 K ' ^$ k- T8 ?1 Y, Z( B+ l2 I
4 v3 ^* _4 l6 _6 M5 y4 j$ i7 H
1 w) B+ C5 E& I2 F9 c5 Z2 y( f( Q" X
市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。 , j+ L1 i8 F5 h$ g2 g
. K4 H; _3 s$ a3 e" r& B
' }5 f/ m7 j+ D4 }4 `1 B" W
! c* e, Z( J J( ^
3 P4 q0 _. Z$ Y& _' ]
% L" B6 P! |1 G$ n2 n& T& q0 |
" ~4 Z- d7 ^; l9 `
' h8 [3 E: {5 C5 C/ B0 R , k4 h' \6 } K& e& P, E0 o
9 A9 F+ \' s/ x; A; x5 C
) [0 [6 x2 @" |6 t; W
5 Q1 A) a4 v7 Y: i+ G0 w6 o. X+ g$ k 发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。
1 Q0 t4 v, m4 d4 Y* c# C
% `* I0 [' _& p 7 u# `: s7 H `, u# k
6 e* h# O9 D) _8 Q' v+ J/ P0 b
; H* _$ \ g4 z# f
8 I' E5 c- Q4 i: A$ M- B; s
/ |# W {/ _/ f1 L2 W' E - Z: Q6 v+ t$ T# A' [
2 r: l/ b; U+ E' f; S1 D
* N( j9 I/ ], x0 u: ?: @' x6 r& Y
2 b" o$ r- j6 I) X' }
& D0 m3 J. q3 t- k 7 U+ z9 O& j8 m7 G6 V& l
+ _0 \% @. H, [6 z/ ` + X( p: a' M+ Y2 q \& G
8 W: E, U. U. j! `1 u9 \
; X+ Z( w4 {* x3 I J4 n5 \
9 \, E1 G. }" U+ C2 J" J& W3 m 5 n+ Z4 }( b0 I* n' \! K. u/ g
$ U6 f7 L2 S" W7 C
, `$ {; |, `5 ]7 c! Z; h; ^9 Y 破解加密硬盘
# s+ Y7 c3 C8 j5 Q
3 A/ ^' S4 U5 k! m/ t
( v R/ b) M! m t }, f- ] 2 G) O" |; H6 i6 ~. h- D
. j. ]1 K8 [% E0 c# ? g& k
0 F( A+ r* ]) ?% y , Z6 f5 ]* F' U$ Y& b0 l
5 M- N4 l, s5 D8 m5 }. r : V {, n6 |: T3 _# x% |! f ^* f% Z
/ H2 N1 l0 m4 i, p6 Z8 M5 A) Y7 v 8 B8 O* u1 k# [ K
% p4 c5 T# ?* g' W8 G+ Q0 d
1 B. e8 [" R5 i+ z' H& y
7 R# q- d+ m+ n6 _) t! S
) a/ m# `, E! W2 U% Z* b8 U: ]
* _4 [3 I6 Y: I. @ & B. `) ^$ D! E+ H9 r# f5 j
, q- ?, H, V1 w3 ?; l) M z. ^
3 ?' K7 G: l2 K5 D4 v
+ V0 l' F2 j2 q W
; s( e% M& _( N. Q$ n* I
4 p+ B V* O" ^+ l, V" E8 [3 ~8 N, M
# r! z* V) K3 b% D
' v: K( T# M* U1 ?3 V% w " G+ S. a. E, Z6 n$ r7 y+ L
, g1 g. F: T, M. N# W
延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。
* Q1 N- s% c7 w% l/ N. E
8 U1 `4 ]" s% }! ~
2 P" J( K( c$ \7 C! n$ v
4 ~6 j* Q3 o6 f$ N7 q& G
) i; G- \7 J. Y9 c) p" X6 c. L ' q3 e+ g% r X: q
$ U+ _' t$ K8 D( I+ x) U
3 l0 s" q: N: C) D/ Z4 I/ y( u
7 N3 {) o( k" \7 f! m
. r6 }) a) e9 h
; L& {8 x7 k, J4 U: p
, k p% S, L0 C8 @
在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。
6 g7 |* H, ~% G2 w7 l4 ^
- g, O* i1 v! G
; f- b, g# u! w 3 m1 Z9 n8 U7 U' J& @
/ E! V; Q$ f+ n. K' W
" x0 X& o# c% a/ ]$ F
5 d/ ~/ p5 m5 U0 e$ u* q
5 W* w% k+ ~3 U5 e) B6 n
/ a9 }6 _/ j/ v+ l( P# \$ h' C 5 a( X' Y' ` ^) K; c
" G8 c3 w0 B& `: X
0 d1 |* g5 n) y8 I
在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。
! I8 s" x2 G q: E! u( N, n7 a1 ^
, l& f' ]# {* ^7 Q6 Z
; U) Z: w1 g' r. O( [- a
. O: {3 F0 q; c6 U
4 f) b4 }8 y9 ]
Your browser does not support the video tag
; e( K1 t" H3 |/ }+ e& z
P" ]/ c3 o! O/ {, `5 u
6 ^5 [$ r/ g* H$ h3 p& [' V; p J% q ( I" B! a J& ^. G