' Y* r- q& s: B% P/ E
4 ~" }, w4 Y7 b# r4 k
- q* O8 F g8 D6 u / }' P1 D# G$ w! s. U& x2 M
4 u5 A$ ]% w5 c' u, F9 x# i
- ? b& h* }0 X 5 e% O, c6 p/ G: k2 V' H f/ i" h
+ i% Z; `7 A; m: X, u% X0 o# l. }, C ) \* D3 w: F* a u: N& ]& j* Z6 O' F
3 K/ L0 `' J- w4 N/ _0 X. d
. u3 d' C0 h$ Y4 R$ K
H( C& [& [' p
在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗?8 H4 p+ M7 ?( \4 {' I4 V* d. {
1 f9 _; x6 i, Q' i5 Z
9 j4 g: T# v7 ? ! Q6 z8 n5 n3 A
) u9 t5 H$ T e) J- h4 `) I0 O7 @
% l/ J$ t; o) S- u; r6 M: r- \ 《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。
! u8 n0 A) c0 ]6 [" e$ g
% p5 x8 J( L, D1 w4 d q
% T' H& ^- G6 O1 L 4 \1 o7 U1 b5 J- i9 E4 }- u. J
6 h d( M; Q. \7 m
! Y+ h$ G5 A7 f 在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。' E- f$ p, t" y& z9 s( q4 b
& c- M! i) ?$ s
6 N l* p& r' D( x
3 b) _& h# a6 O8 l' c- ^- M
% `* p4 j8 K) \: z2 ?* W
S# h# U4 I; q
*文末附《破防了》项目技术分享视频
! q0 U' ?+ c# M: Q5 p8 T
% [2 B* J0 k2 N" G 1 A* O* [: R N1 S: {# x; Q* b
; F* ?% s4 X H$ E
( t) a6 B4 C+ d x
* Y- @4 i2 z# @% h3 E5 T 2 x' f8 n: r* ~, H. r
( {1 S# q& d: I) {
, @7 ^. {* P7 _9 o. @8 |/ { 8 T# k. j# T" [; K1 C
# a4 I! ~. h% M C! a1 y/ u
* y4 ]! k2 g8 e9 V3 {# q! J& T
+ x' F% R6 v8 `5 C" s Z" _ ! Z- i o$ o' X \/ [
/ k" ]$ _; S9 M1 j2 i4 P; K! F3 w 3 Z! E1 o+ [$ n& e" j/ @# j
+ b3 X! F( a7 Y" u! I/ q0 ?
1 a- ]+ a* }7 O: B! G/ K6 T
/ O3 d5 I+ X u- T
& V+ B4 t1 e6 Q 1 N' ~) q. l5 j6 F1 N
日拱一卒 功不唐捐
' H" t' ^, L' H) v# a& }
2 n4 d4 D* d5 t. {
& Y0 E4 i% J' X5 S- Z & H, Y" @7 `. Y! e
/ s3 v' \* I7 I5 i ! }2 f: |4 _8 t
5 }6 Q6 m3 a/ I3 }$ l
: \! b, I( ?9 _0 Y9 Y( q+ l* }' J9 k ( @3 n' s" s! x( x) U D
) i6 B0 E- w* U7 P
- ?" o. A0 W+ R8 K8 h4 G( Y
4 B" }) Q! m. S! @; w' m 2 z- g5 h) Q2 ~8 A
9 X. c! J# O7 V0 D9 @4 d
: V6 s1 Z: g& I, f$ e4 ^: Y" J
7 z2 n8 ~ Z* u v* D - P8 \! k. q# D" [9 e
) R7 H9 V3 M0 |- T G ) S3 @7 M0 f9 o1 U1 t
& X7 Q0 P. L! P* M% ]- p0 y" ~
6 W, A) M0 O8 X- z" b2 h! } . ~9 }* t3 Y# o" r, X: n
; \$ b* ]' m( q% A 因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。
0 I( R) o4 F& l
2 p* |3 }/ l3 d/ d- M% t( h$ T* \ 0 I% m- M3 H/ o
4 E! ?/ R$ V* C2 I1 z $ {+ `0 m$ Y& i1 }9 U: E
; h3 n6 V+ ~4 p1 ?
+ n% I/ T. p, E; Y$ x5 N
8 B6 k4 I* R( b9 c' r2 i2 e+ L # m+ ], X* {3 j: J% R
日常研究环境
; a5 ^: f, |) T; \
4 I8 Y; n L! i4 w" m9 r & E5 V4 |' C) |0 t {5 X/ ]: F: F6 w
, I3 _, `% u& S4 R2 f8 L T& C * {, A g8 [ A
! E. }5 U+ J6 _6 c
市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。: J: z- U" N- u! N- X+ O# M7 \" |
0 K J0 Y( N1 H5 ^
1 c* x* G: V, f$ K+ i
* q% z5 J9 Q7 H7 I! ]5 B & e* X5 }( b, y b0 A1 l5 n6 K
/ f# p8 u; W3 o* X( Y
* d1 q/ H5 ]4 V" }$ ^/ [ + w0 r0 K, ]7 ^* ~$ ^4 {, ?' S+ ~+ H9 y
. k% Y; M7 A+ W3 `; V ` 6 S( G8 s2 E+ V% E: T
9 U4 y0 K: Y+ |( f4 I# E + A1 b9 i# a, y$ \, L6 T8 h
发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。
, l) C* Y+ w8 Q2 `. _& m 8 U% J7 g! x! n: w+ Z; F
" w+ p- P, g }
8 s0 e. A' U9 W- c3 n
! R# t9 o: M& j2 ]# w) q
# r2 I6 D/ S/ g5 b: e3 C- o
! o! }+ ~2 `, A# r" b* Z9 w4 t, U
) z$ V) [3 m$ c5 G
$ o' @2 n" G8 G2 b$ C9 g3 a
; R! F' K/ a0 O" N0 E 9 g! ]1 S; ^2 F9 D" G
5 j% k* ~7 }; @1 w
q6 j* \1 ` Q8 I, ?6 D
% ]" f/ T3 C* @1 m ( p$ r; u1 Q; F ]( f2 [, w* F
: _& B) G& S2 p, d6 O; D0 |" K5 M; h
& o# q( f3 b3 G& y5 G
6 t0 h, J' f0 r8 i4 @5 J5 }5 L/ [ 9 N$ I" k$ Y8 ~8 {. w
8 `8 M2 x5 _3 u
! s9 @6 y5 r% _) F/ {" p 破解加密硬盘( p7 k& n, M2 m" S* F
+ b% y9 L& @: _* M0 h6 z * @# ` I- ]6 Z& Y ], i$ S
6 Q) P" j: _0 o4 g7 h/ Q4 q1 t
4 F: M: T( ^5 M- [! o
* R1 D, R3 K N, d6 U. D# a
! V m! a7 C, d
' n( ?) m7 d+ ^% y- x! l # I9 C( r/ r# ?" m; x7 F+ U- D
# s8 a. _5 A I& M: |- E# D
; [4 b- T1 u/ J2 J! U- n% R* G ! s5 x, ]# [, z# Y8 F* \9 L* I3 {+ g
# c% E# C7 J0 @ . Z) Z% a$ G& t. ?0 [6 ~
u6 L4 i) d; B+ q
$ C, v1 c. W* E% s8 ? r
0 N! B! O$ g2 o2 R# D 9 E0 ^! |5 W1 v. w" o6 Q: ?4 `' \
7 ]4 g) G3 Z9 C4 z! n
# M% H/ E0 O2 u4 e
, g7 z; {. r; t/ m
# ?. o* n' k; o) e$ H+ u / B8 s( M- V4 |3 ~
3 w- m8 I( x) S" U; A
. P8 u7 O3 t1 r" L1 G( h $ S0 B$ F8 J V4 l
延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。
3 W6 {1 O- z3 Z/ |: o
9 }! B& V" A* s; N. [% @* p
6 L" y4 c5 {7 I s0 Y. O$ ]9 g% f2 \) h
. f" A5 t8 J- D! c6 H4 E
f/ C3 V0 y" a7 R
_$ c5 q6 B& c, f" E# V, ` . Z! J4 ~0 m4 o
8 V, z) r/ \9 E# A
6 }0 s1 I+ W( k- {
% V' {! E; N/ s
- x, v) K- M. h9 _( t' T- P4 A
在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。; M- u$ u% K7 _7 {" Q$ D9 N
6 R2 _, I9 [3 q. x% @& O
) N. _& c% K/ |6 z2 m
# l3 H( G1 _6 J- w$ q* n7 E
2 M: y5 R% v- R* V/ R 1 z8 ]. Q1 ~* I" y* I# Q8 T _
) N2 M$ \( s3 H. x. e6 W, w: ` # j2 ]6 x* g W2 k. w5 {* ]# C
( t8 o! P; v7 w3 e2 P8 y6 ]. G( u , w) G2 `1 K1 O l
: ^. H, n9 k' X J* D+ ]6 }. B$ U
4 P" y1 \$ o5 m! a9 H+ c
在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。
: S3 l; s7 \! x9 ]& r : L: l$ y4 F( E/ U) k
. h. ]: O: W- C
/ u( C: E7 [. a1 j/ ~ c & V, @0 Q$ S1 W; ~
* s" E1 |' q: X' F2 X; B5 D 2 D+ ^# ]" c2 v# ?
. U9 ^: N U# Q) n$ |
; c, a, W: W G+ C' H) ?& r7 A+ v
|