' t1 D0 s2 H- v+ ?) e
3 R3 Y. K! U7 l% t" O1 {8 B6 g) } % w: J, R9 k& z1 t- w" H# M. ?7 b2 r
3 j& h/ b; w. w g% E
9 O3 ^. N* Z7 P$ R2 T1 a- I
- P1 l9 A/ {" L. ]% q; y8 N % L" }( \: y c }9 N6 t2 h
( D1 X9 o' H6 w5 V
5 o3 r" L0 G$ K9 K( ^" r- ~/ a8 s
9 A- v. {" m F' k% d
" b, X( D8 W& _- U1 i
, |0 ~ F- ?7 o* ]/ j 在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗?( |; y6 \ _' C3 |5 r
+ B- y6 E% Q) o1 G w. T% V; Q . l4 u: V+ i. D8 C1 f9 X
4 u- J' T. O; O6 _3 u
9 b9 D6 s9 k6 q3 n3 R6 r2 R $ O/ k- r; {! q( A2 ] R5 c
《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。
; X, c7 m7 u: w % M: q9 p' ~6 T! ]
# l* P" R9 R1 S& i( J0 m+ v- T e
) B, ]) c X# @ U . q5 g+ d3 `9 A2 C
4 C/ l" M0 ]+ X5 Y
在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。
5 x; }& L5 i! L; D k2 g" b ' \5 P2 s/ s, c% {
' _/ ] k& u+ U
2 y3 H- V7 |9 K" Y- z- U3 t1 j
. n% H R5 h: y2 K
, T4 K; r7 ^# q7 M: g *文末附《破防了》项目技术分享视频
7 I7 S! ~. A- W# ^; ]% x0 R 5 D }* v! M) c# G3 b y% T
: P. M9 x! [0 a3 h( [
7 J9 R6 Y: r9 u) u$ w: Z
9 g1 b7 X Z" U( W. D' d, ]; ]
; z/ ?; D7 w+ n/ I7 t4 d' z* V
! L7 l3 E) ~& k( ~2 ~ ; S) f& w7 x/ k8 O+ ~
/ E: Q# w4 u- F2 ^. s7 r) X: g | x* L6 g$ M; M/ n; K
# [/ c% u( i2 h1 }, V* I& m
9 `6 K7 G* L# m2 e, [3 g0 w
" k' N" m$ u% t2 O
6 m e! G! ]5 ~& i% h: |
! E1 s6 }& Q, t- R; @ * B* Q6 L' F: Q, W, [9 c+ x% V( n2 c% s
# t2 {. r! C! O) J
* s. b# j6 ]6 Q$ C" R/ G* P+ T+ y: r$ I
- H3 ]5 C# M# g$ j3 E+ D
2 t$ A& P W9 D! k6 h 5 H. x; \. s9 ?7 Z% P/ R* g0 M, W
日拱一卒 功不唐捐& g1 F7 L% U% l; ?- ~$ C3 t( ~
, |+ t8 @" N( h8 {, W8 j9 ~
9 S: {% G: i8 i0 _; M2 T
% }- h5 l" i; f/ D$ j
" I( S/ r6 ?- K' x( l
/ S; A x9 s6 j! C
. |) A+ g' d* K4 E+ G
) E) V# i/ G* t1 i& J . p4 s7 h' x/ Q; n7 B9 q; ?& [
* v/ P( Z1 u9 y
: `, q5 n& z; `7 A
/ W1 Y# g3 H+ D: z
/ S) V! M1 N5 A1 C / ]* h6 c3 B6 ~; ], n: M
3 s- p! f( X3 ^* L. F - M4 C* U6 s) @% r+ D% P) i
9 |7 _$ O4 k" d j, _7 e! H
0 q0 R! O O3 ~! Z( Y: u
$ @( R0 K1 |9 e4 a
1 [; b, `5 B9 z( y6 k
# h8 [: D9 a0 b7 L4 ~! ^ ( L# H# Y \/ c/ l+ t2 g
3 R6 c) i. T# [8 ^4 K# ` 因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。
7 E! J# G2 g% F* [8 p# b0 C
4 D+ x3 Q8 h2 g# p9 u
N- o- G1 X" @6 ]( e5 S9 }) u7 { F
1 a y8 Q! w1 G) S( w3 ~
8 R0 @5 `8 S. ]- h5 b8 r
: ^5 K% G R, L r, f! t! V" |
R+ b# \7 j5 O% Q , }" U9 v% f+ x- A7 \2 Q
# t. |; M# H' ~8 m% y2 A" W, b$ u+ K8 h
日常研究环境
5 c( e1 x2 u( V; z& {3 {) [ J
) w& l! V( a8 r) V L' ]
( t) F- W; @2 G8 k / E* U3 m+ {9 t9 Z
. {* X" v9 f$ c/ T2 ?
_4 Y* k0 \ B7 G: m0 }' C 市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。
& z" k. n1 Y _' b* F& h ?
, ^# y: r4 q4 {" r; a/ ]' F5 y: E5 j6 k
; z9 w7 C, l4 J& @# Z0 F
5 h) N+ }/ w1 [& u8 n% h3 ]
2 Z$ V0 H7 G4 y
5 `1 O+ [8 Z: S2 g2 E: v# \) D8 f
2 I* y$ }) Z6 t7 I+ N
7 A9 P. M" j' g5 @; ~/ a9 d
' C& y5 r: s1 h }9 H3 v
8 r# Y& l8 s+ j7 p & W1 |! N3 r. f
7 T- V7 n( w5 X& R7 S% ]
发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。 & I% \0 d( g% E; B0 q
( h% R. t: M! [) V. \6 O7 E! y * F$ S1 x/ m% R9 d' L( X: W
8 j- k, t! b/ o2 t" K4 K
0 d9 l; N0 l) V! B# \ ' P* C0 L: t& H' K% l# I$ `
; _3 B, r8 S/ @( B% v
! h; @- ?/ N( a2 w2 y
# X! _' m5 @ A, u, [* Y+ V
; I+ |- `: E0 x [2 n8 r5 f4 H7 V ! ~' r1 s9 y& R' F+ S \+ N `6 m, J
F! Y* u! i6 j" I$ j2 X. p
4 U6 G7 l6 Y i# U9 M
: h% [& g9 k& }) M
: V* y* ~0 x3 X$ m: o
1 |; D( v' e! }
^3 U- k& T0 t+ g' l3 O
4 i2 C6 \/ o% m- O- N
* U7 Z" a9 r+ M W, t% A f4 k$ Z l3 d$ r& }& f B
; O/ r1 \# L- W' H. ]6 o0 j- O 破解加密硬盘) C: h- R, Q- {. }% _5 E
) N! G/ _+ X9 q7 s) j! R6 M
5 d- N. S3 K! z
( U" a. Z# C& n; h, n$ e) h / g" v# l4 ]4 p( ?3 y
- c( \! U5 C- p% j- s
$ R3 N4 U% a; d& H8 d, E( K ) `% p3 i3 N4 {7 K8 ?
* g7 y6 K3 G% c1 t, S# {
2 B; Z/ y5 ]& V
; ~' q! {% W' A9 @ : {0 L0 E- z% h! Q
0 p! [2 F* D8 a& s0 R" [7 V4 }
) M7 ?: ~5 B$ k/ M8 O/ G 2 \- ~! E5 _# O5 C
. |% v2 e# O) b0 g6 L9 \6 B) M4 i
2 S+ F D* X5 N1 R) B9 X # G9 t/ y: W( A
! b; @1 Y# W4 X1 n9 m
I8 @& B$ W/ y 1 s k. c* a7 k. y6 z, m$ ]) x
& q/ m$ B& P4 H$ e/ `( `
& V Z3 P7 K8 `2 O/ L h ' i/ U( O$ l s, v
K) s1 q/ l3 K& y7 {
) }1 P0 F/ g: ? a/ @ 延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。
! O" c5 Z& |1 O- o' U 5 {% \# t5 S& N- ^2 C
( x; n: ~, {: _' ^' [" j
. K+ N+ K3 q' ?9 I& u5 \4 t! r % y: e8 E c% F( ^$ {
1 d8 g3 M6 D+ E
& c$ |3 K8 O% b$ Z
- a9 I7 V0 n- Z) E- c% K0 X 2 J! e, c" `! l
6 l+ u3 D. ~$ t: Q4 r8 Z4 f % ^( o- _" r+ t7 d7 k% ?9 C
$ O8 } i3 h( p" o0 [% L 在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。
# `/ d) P0 f8 _2 J * E% F8 p% V% E/ @: A8 [
3 \$ w5 j, G' Y2 Z2 J& N4 ]
A3 q. o5 [' @7 t, n6 { S" y! r0 F! n
) B2 H Z/ P7 S0 Q
. Y) e; z+ r, [! w! a
, E* x. _9 m- j( m: A
5 y- W) A) w! {0 m" X# d
! ~& D8 P2 Q8 y6 E' v2 Y1 b7 \
6 d! S9 D' ]; s! n p- q& b- q }' d: M; W: }- ?$ o
在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。; R! Q: Y8 q4 d0 a; x v# j
% p* \& e" X7 L: W4 V4 ~+ O, u
( K( u( [7 @9 s3 C" t! D) K' f
6 Y. p- Z+ M j) ~; o, `
+ S9 q, P3 C2 m1 P4 @
3 \8 M/ L( C, O+ w6 ^& [6 \
2 C# O0 S+ z' Y& E 2 Q3 A9 d0 {, o$ |
' T& B( A- \) D3 S+ U* M |