7 c( I# U8 }; G0 M$ P+ W5 D- \( x3 `% [
. s/ L5 t2 I0 i; Z7 _
; L( I* u+ _ X3 Z X0 Q g+ P+ e / I7 P; l& C1 x. f m
/ j- A1 B5 Z$ D+ P$ {
; ?* c+ Y0 C& K* r: n) K; @" n) o
+ f* G% Y% u) q1 M& [ $ @, ` u5 _) J- ~4 ]. j: w! b7 E
; U5 k$ t& M9 n+ P* @3 U# ]9 B
' W- f/ x; ^3 n9 P; E, r: Q# E
% B- `. W- ~# M- N, ^
/ ]; k4 K2 j5 G7 k# S g# [: h
在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗?
+ Q, @* V) W8 V9 j8 T( c& M
% X0 `" R* b7 {1 Z- U X : g9 c5 A3 u; `: k7 }1 X
7 `6 @0 Q6 K$ T) ~+ o
/ l0 f1 q: r9 X, W6 _
4 D) c5 K) f s/ N- M6 _; E& O8 ?
《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。 7 o9 A8 P( A, D/ P7 h
* ]5 E) I' v. O
& G D" q2 H* N 0 K) g) o" Z- l& ~( x" M
- ~ I; Q5 t- q- E4 L2 I& x0 v
2 w# L6 N3 P5 P3 T 在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。 8 r2 p* p! G" Q- _! }
* V3 c6 ~5 `( S& @4 }/ Z2 a 8 |" }/ }+ m& b
! l4 A2 o: t8 j
% G3 m* I O, {1 D, M+ M! ~ 0 i7 j0 J& x7 Y9 c) ?
*文末附《破防了》项目技术分享视频
* M0 ^; s f! E% {
1 G& }5 k' {! k: b: j; x
( f& g C/ o5 w
& ^/ P+ L6 p" c ?7 G( t" i7 a5 h8 o# E * V( d0 I6 X2 p3 Y k( C
# t' v2 G% Z& o" c% B2 _ 5 [- I9 i1 p1 b- d: G s
3 w I6 t+ H' D6 a5 n+ d
# f7 f) d$ t) v' v
! H7 `! i9 U- f- l7 ~) j
4 p+ h5 h" B: F) `2 c
0 N6 X4 E0 ^# [1 H2 d2 g7 m3 a! W
. e7 O2 e3 k7 k- x2 I, }, ^6 f4 s $ m3 O8 l1 Q! R9 t
2 O& T+ K) T0 V7 m* a8 f; y# p E1 R# k' h % \, f( R1 o( Z
& t7 V+ `" i) z( [/ K% | & U* Z+ e% z( s
" a5 h; U$ @" Q7 W" H 5 |$ n5 s6 N, M2 v" U, x( ]
. a1 g0 T% ]9 |' ?7 O- \+ s5 b2 g
日拱一卒 功不唐捐
3 ~' V2 @+ h# p
' A6 B! D8 c' k- I
z, _$ D! Z5 S; K ' L8 A' E& w* ?) c& S
" M3 I7 G" n" q' J5 @5 _) u: i
* P) p! j6 L: R 6 G9 X9 ]8 y, d! ^; h
% q6 d7 ]' A3 i$ V
% T3 L3 e, }- x, d1 y# n4 L" G
) [' Z6 a7 a2 V' p, H
; X; Y( I' a; ?4 \, P# g+ k
! |3 D! s) T$ _; O$ E3 o6 | 3 ^2 j2 [& ?1 P( d' i, T
* M+ h& Y7 a0 M8 e- e
/ z4 ^% u6 P& J" m- H, O! a, `
/ ?$ t G" h6 @( j4 X! O; H4 q4 `$ j : ]6 ?8 A; t: d' U( n! Q( b
% J" o. _% F/ j! [! X8 y! Z4 [
, t2 P- D& t1 W, k
3 q) b" h# h5 A0 K1 D' X
/ }0 X& C! \, i4 f
8 ^: [- U7 N5 F* k6 a% L+ {% u 2 U' v; T! S7 {4 S, o7 C
因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。 ( K( {$ N% c' L9 u) @ M V
' z2 F+ B ~7 s" U! f1 U t+ o% i 2 f0 a7 x3 a0 Q& v; B+ w4 o
. K$ M% t! u2 F1 P( _
6 |4 c2 B# e+ d) y" o
) i# ^) a, o1 B! a$ ~# o3 s8 g
1 N7 k( |8 @! [7 j G) a3 I* e8 z
2 T" j% E9 W0 q+ t6 E. I
5 Q# I+ L8 t+ f5 l$ i
日常研究环境 " j+ i3 }; l) R( X8 L2 t/ X1 T- `
5 p8 n, \2 Q2 ^. x3 M$ K
( G/ l+ w# y+ E6 J9 k$ \7 \( H8 }
# t" X/ X, \4 }
0 H+ s2 J- P( F3 H$ ?; q" z+ u7 s / w3 M/ x9 | \& }
市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。
" W# r$ l+ v$ N1 @8 F4 G0 p& q
1 f ^. Y8 T+ z* B* h( G) Q( J
6 _/ D; W6 R; r8 D# q1 v
; i0 n% n6 P( q8 S
* [8 h5 N0 e. T, ^
" w0 u8 i8 w( n8 S0 `
+ |4 X* h/ V% C. }' ]2 T% u
6 i; B3 D: d" M5 z/ s. f9 A ( d2 U5 s f$ Q5 C' d. ]
1 [# S J3 j6 _9 A% C
7 b& q0 Y' B5 H+ |. L! P
" ]# `# s$ @2 C8 n2 l ~3 W 发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。 8 f6 P( T8 @ J* Z
3 ]7 X* f) R, }/ D
+ ?" n) w5 z( V/ a. _8 [
9 V9 h7 a6 B( k1 Y/ P1 I8 x
+ L2 s! A0 o0 Z' J A/ V0 B7 L' w0 C. d0 R' j1 M- Q
7 A" ^+ e5 R$ t% k
$ v8 U1 u3 r/ ~; E# q J6 e) Y
+ P# u- q, T. D5 e8 E( H
+ n8 g+ F/ m- b) [' j+ e6 x
+ a5 a+ i4 m. E1 ^' q: ^2 U# z
# l" A. _. y8 A; B8 ?, g8 h6 U
: k. D0 t7 B. \2 h7 a8 }+ c3 o8 o : \/ k% V) x; C& M/ }
% d- N" i# L# ~5 M' v4 e) y3 E- T( e
) M/ |, Q) d# x9 F5 O- [" L
4 [" A% l1 o9 @3 }, X
; \+ @0 o) |- {+ G! _7 a- p+ ^ 2 x; k" X; z" T0 ^: \& e
* V- y5 H0 M% x
/ |0 i" S& h. z& k
破解加密硬盘 : H' Z# h4 P. l$ d" x; o
# k& O- V7 L7 u- X2 |& w
/ N: Y" L& d! n( l, b5 g4 X
+ w5 G, z# k2 j% Z& w- i) ?6 x & H# q7 N% y; q) w U& X$ N
+ s, d; X" d2 m' e% h' b' u
5 P) X2 L& j! r; p
, S2 F X8 L4 m: H& E: }4 t / b; `5 }4 f, h
% p; J4 c+ S0 H* ~1 R' S
9 h3 i" |/ W! s9 p( n; j9 ]
2 M% N4 [* \9 e4 V6 ~
7 f. Z& C! L5 k+ b3 ? ( z2 L* g) W% \& P4 Z1 _
! n5 n, z; q/ ~5 ^. c / F; _' G7 E7 m% o! f5 j* j
# k% `( `7 \- ?/ P
- z4 d$ R7 o( K2 k5 u$ y$ o( {
( C! X) I: t# B
1 m3 q* w3 x1 T# Z
6 m3 y5 ^- n0 e# P; N0 T , J0 ]3 T9 v2 f3 W+ j( `* c$ y% i
7 L- G W- ?& e) p" w# T : L. u0 I. `7 o! a5 p3 b9 d) `' k
' `( V- ~) O' V9 D. o; h 7 ~ d( n" q; ~
延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。
2 }/ M) v- j- d
7 K" L3 L3 d; E3 }9 k1 U
# _8 x% N5 I& _8 f" b . Q5 C/ R1 j3 S' U0 g
% }4 p! \1 P: R2 Z) z# f + M' L8 Z: G$ @/ \. z
" R, T5 @* T% I- H* b h2 v. w8 J- e
. Y% k' t( T3 U% j" X
2 K, Q" B6 c+ z
4 {- | v3 |; j
: d: h1 @- K+ O& Q; K4 ` ' c$ q+ t. @6 H
在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。
/ s+ s$ y$ R" I# q: s
+ j9 r& q1 b/ b0 W
# a( N6 k6 W5 N) H) F j4 } ' m3 ?5 f7 |6 [
* {# z- i: n/ l" B
! M) R) y3 M b- U/ S8 D
0 Q' g5 D# Q* o. N% S
* X. L1 P1 h5 u& f 3 R4 l5 x9 q# e6 ~( j
: m* Y6 n2 b! @+ i) `% N
6 T8 g% O4 V% ^2 G9 @! ~5 n
+ u9 G4 @% `0 C! l( F6 P" p 在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。
5 x1 s; R* C- K, P' ~4 j0 z
& j: P0 |; |* m; ~% y : {- k! u" j" ^8 n6 q7 M
4 }2 g: U$ O+ S P. e: y' B2 K# {9 O
: B' l2 R U( m7 o6 ~1 q
Your browser does not support the video tag
7 y! t d$ i) G8 v, o' u0 U
4 M5 Z8 @' p/ C$ r
2 |& N+ M1 d9 f; N. D/ X2 G
3 |9 o+ y# w) `" T5 ?4 ^. c