3 n. h1 \4 x, l/ [- R) e3 R# N
# A+ {, l' n0 Y1 U" g! o + S; `1 z" C! z
& R! |* @* N; u! A: U& R7 L
' R" z+ e( b9 l; Q& @
: Y" |- r3 f0 g0 W
( ]" }: p% b( G* J I& Y9 C: z
# C/ h) |* `3 R# A+ l, n. r
" q2 X" h) ?) H1 S ( T3 ]3 \6 T' C/ f5 o0 g2 ]
2 V" Y- B/ O6 F, ~: r2 H 3 z. N \; J; \4 ~8 q4 ^
在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗?
g9 g: }# e+ \6 w1 _0 C% ^5 @
. k& y% X& h9 U* x2 k8 w6 N" m * ^) C; ^9 b" ?0 f
& P c2 d' Q4 y
5 G+ a: \, h6 l2 r9 q: X: \8 \& q4 X: m$ g 5 e" Z3 z! e1 [1 Q
《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。 o5 w8 J U8 `/ K7 |3 C. S1 Y3 j: }
: S J3 o, W9 o4 F3 [
0 M0 j; Y2 M$ T. ~4 W
* I6 U0 M& |" w% Z9 f$ K
2 s8 T# f+ L! X& U# }: b' \) q / D" `7 \$ H! W1 l' G
在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。
9 S* S, N: D. U
; u9 A; C" w1 q; @( L
6 {) j) ^/ a! z
% J2 L& i! V$ ?6 j: f
7 E& k8 p6 h5 |/ v
. ?% [1 D4 Q. b4 v. j8 n @! y *文末附《破防了》项目技术分享视频
# K( B& r' M; U
4 c; n# k+ z( ?- Q" n' J" s
Y- T: z1 p9 S/ K- Z% y; o0 J/ t $ Q: r' Z( B% T: n! @# T- |
3 K6 A2 q Y2 f- s2 k' _
. K1 V' i: a$ W+ b, Q 1 m- B, s, T2 V* ~+ C* A. ^1 `+ W
/ S# I" n1 a( I3 ~
, b; \0 K7 N |+ {; _! k8 Q j* K4 { 2 }* I& S; G% ]6 K! [; I
- |5 P. g$ c$ F, v; m' b+ G
! W1 ]0 g- W: U# t% ?5 w: e
6 i/ P W2 e' A / a8 N# j& h5 {9 `9 {% N. _) I: S
$ B5 v5 c* |" y8 p
: C& h6 S; a* y0 ]! x' }/ y
1 k/ t+ ?( K7 G2 P; L
0 y6 q, p" n6 }2 u. ^- m' x$ Q/ ~ , B# ^4 |0 y* b% A, t8 v
4 Y/ {/ _" s7 n( T1 |
/ m+ v, E/ O" G: [0 C$ s5 Y2 S3 l 日拱一卒 功不唐捐 ! {# e0 d% e8 ~
& @6 i, v' j3 \9 d
! U5 U7 W. a/ s. _
# k& @- B& M0 X4 x) C" ~
' R( w; y w/ v' m9 c; y& v" x% D1 \
, J# t R; C2 v6 u- { ` ' J% m4 C4 T' k* U
1 g) u7 y" {/ U# ` - j1 ~; u8 `4 x8 x
! E& z U8 r0 s- k# P, N
4 I: K9 e% J2 X; F4 e! ~# S 1 u/ e$ k, J; |7 h$ ^' m
' a% r2 ]' d0 K- J
- k! J1 c% W7 z! f0 T" h * P- Q5 d- U; C* c& {
" K: ?' P# W J5 b' p
) [/ k$ E! W3 G! X/ C
- b) h2 ~, K0 d" U, R! m
6 t: J' n* o% w3 o- E6 D
1 @: N! n+ B A0 \! r9 j9 T3 J
- z7 Q; z! K8 B, C, Q9 v
3 M6 W# |1 W* k1 e. _
) e1 f8 V$ {. O1 w! o# D
因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。
/ F6 I: [% ~ S
" u2 M, _1 W4 ]6 T/ o- L
0 v. Y" x3 ]. `( g 5 b2 [: Z1 ^$ X/ q2 v
2 m" a5 n" w4 ?) x6 F4 A+ C$ Z
9 O$ \: k/ e8 X' O/ g
/ a+ U) q8 K6 D# M7 |. J# r+ n' h% N
' s3 R% f5 x) c- V 3 B% E- w5 T( ~: b* d
日常研究环境 ' Z! _0 H0 W7 X- Y4 q; j
/ @* o( k/ o( `- N$ g6 y5 C
7 P" i; x( X5 Q
1 k) }9 P6 S7 Q' t+ c9 J8 p6 F
' @9 o! ?, `3 P
2 m2 J- x+ Z" X3 x& c" I' |6 Z 市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。
4 z3 i! J% ?/ U9 I
% L# k$ c$ r7 ^9 {$ h, f
( o: n" O+ L5 L 4 _3 k- \* L+ T& n7 \! a
6 U# ]8 u7 Q9 t# h
6 }9 Z+ m4 q1 ^8 l9 d
! @% @7 T& R* Y. F
# M2 A3 J) ]! n. s: P
1 \" w! d O7 x% T5 d0 }
2 _ L% r7 i8 x g) ~3 o1 k' ]
1 I4 D* G" y5 d2 U! t/ U: ^4 M
; r' j( A; [" K' u4 {! N8 f% F, S# ` 发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。
" L3 C( o% E% ?0 n) b
% l: {0 R9 m [0 d; N4 i4 M
7 |% j( B$ P8 u1 F3 x( H4 N
' n% Z4 {# p; m' w
0 k$ p) F' h# | . Y3 c0 c, z) A$ ?, o! R2 p' f4 v
. y1 z* a) N' a# l4 d
$ s& C; w5 A4 ]/ W( {% y
/ o' T" D' p T' ]; L2 u W
( [- L$ P5 _3 u. i Z2 C- J3 @8 z 1 W2 N; Z( H- y7 K& j6 Y
( A+ P% b0 e0 z0 E
: v1 ^1 Y. @# `: u ; Q6 \ T& d/ v+ ]* T- [
. y; Y' ~8 b0 W1 C! a
- P5 M) K `6 [* p- ?6 t0 V
! z4 l4 J/ R# B4 a. {* ^, B+ B
; n; K( {( g1 L6 ]8 Q : J$ X; G' j0 c) P3 o
" W6 T& n7 g: ~4 U: r8 s
1 K1 K4 M% H9 {6 V& ~1 G6 c2 f 破解加密硬盘 * G7 c2 I& J; A1 O7 f l) v3 s: I
% }. }, G/ ] l
' P/ M( v: q, w# y* C
0 \3 U8 s6 D5 n* N' t1 A+ u F
3 Z N: S5 r# m& [+ I* g
3 h7 O% a3 u( [. _. A! k; i# C
+ L5 Z% @# t- A" z* ~ ' b: w* p) B6 o: J& \# U. R
; }0 F1 k8 H! R$ L) L$ e
, U" p. A/ m8 u2 E( E3 M & @$ o0 J3 ^$ o/ e* B: T
: p; V' O) ?9 {' s, R$ j
! p% K/ D" F8 _# F6 |+ k
2 R2 f, U7 ?% E) |- j
9 M$ p+ @1 A: ? L p, ~1 Z! y7 u; Y
3 W4 G& j; H" U0 w G: ?& c p$ ^
5 P2 T4 ^! |% `( K9 \1 a: S . Z) j0 E: y) ]& Q& U6 u+ X
) r) u& U8 C1 y$ c
1 x# m, H; x+ n q3 ~/ ~4 b. C' g
/ n: ]. x4 E( ?+ N# y0 P% z0 q
# t4 y1 V2 x" L) ?3 E. ] 4 }; a1 i8 c( T1 x
4 L. R# ?" _8 E8 j, f
4 d4 z/ I( j$ R0 D* M$ y8 e 延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。
2 v- l9 r9 c- x8 D+ G; Q
% n" r" E; ?3 Q% C! c+ _
" |! B8 b8 o5 ] e+ N3 m, A0 C
; ]9 }9 I+ ~% M, x4 d3 V
* p: x# l- U2 C# W
5 v" w1 c5 ?5 l2 Z; \$ c; r
% } U' j A# s$ [1 W7 N
3 q U5 W! J1 b3 [/ `- {& Y) s! K
, ?( B8 C* i8 A+ ?* c: c ) _$ R$ i( u. S; b; u) i
/ i; a1 d! b- L2 C $ U/ q3 a" G w" E
在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。
* O- U6 S! e% i E7 a, I! a* W3 B
B, `! n. Z \; w5 o% u
7 O+ z) A% f+ @# d
0 t+ G8 |1 L, g7 w& ~
8 G; L& P# m2 F. r " A% R/ ?. p! F( `$ W
3 `6 M; h8 p9 o$ _8 r+ A: } |& U
- m5 A( x2 ~' ]5 C! s
3 G. c/ Y" s0 j; e% W8 [ G6 e 0 r0 ^* M2 ?: q' ?/ ^) i" P
- c& h$ J# K$ B+ M& y, q
9 w( \" K+ h3 z1 I# h 在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。 . ?0 f! |- c f& \; b5 i. D
) F+ j/ Y! z; c: Z- y
3 v2 ]( u+ {6 f- U9 H
9 r. f% c# C# V' a- f8 w: F$ |+ p
. Z' Q* A9 x$ D- P/ J* G
Your browser does not support the video tag 2 g2 h9 a7 `: G/ d
9 \! b6 E0 F+ g3 | P
9 @: u6 G' U& j" ?" D3 V
/ C0 ?5 R' v0 ]. A J. r