- D# |3 R+ P& m) v+ |, L# E
+ U9 k' s Z6 }/ R
" N2 Q: O' s* ]+ I$ u! R' Z; V + j% J( w" s% F$ ^5 T3 O# I& j+ ?
- m* C) j9 g E* P. H
* t5 o' U# W% Z$ V3 f
" ~) N! L7 A- ]. m2 ^ & M. q+ \ K4 m* g) @1 d
0 f9 z* X6 F7 A4 g
& j: g# S+ O' X7 U, m5 d2 w7 \' N
. k; m2 `& m N1 v2 x
8 H: t u/ f0 |$ R1 \ 在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗?
2 L- |% T# a9 }, ^% Q$ D0 c
, t% l# f) r0 j, P1 Z! o ! G. {, _. _" \2 i6 x: g: t
0 L4 u5 _$ X! n
1 b$ W4 o1 s3 @+ P; ^3 u2 p
9 S- N, O5 |6 @& O7 W B 《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。 6 n7 y3 J- ?- [
/ G0 H% o/ k+ i# `8 t5 g6 U& @
* N# J, g- L3 m" s
% e6 q$ q8 p$ W5 Q# E' \
! A4 T" R/ L# _1 Q- X4 ^, v P7 Q1 G 6 g- m0 \7 O5 _9 B% B1 a" i0 {
在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。
5 C& ? ~# X; l5 Y8 t
0 x+ V0 C9 e( T9 L( `! k, C4 n
) g* o- m7 S# u' ^
9 f7 F: n, E \3 j/ T. J
# I+ H! e: N% [' e! q, A5 }
3 k J6 e, p# W5 K, I j *文末附《破防了》项目技术分享视频
' z- E; b5 Z( F1 M) A# S; V
& N# u; Y7 P* a0 s2 y
; ?! X! Z9 V2 {0 i4 z, f" o, d# {; B
' A; G: i, X+ Z7 B- o7 r " x7 ~2 y7 e, L
+ Z) k1 p1 ]) d2 ]0 @3 M3 G9 f) t
4 m* q8 Y, N# q# M! U n3 P; T j! B* Q9 h3 ]( ?/ ?/ i7 ^+ ]9 t
3 J9 Q1 ?8 T3 H" F; P% g/ t: h
; G7 ?4 `$ a7 u: x, S 1 k- k( r& _! {6 a
# ?2 @5 [6 L4 |0 y+ O' r1 k
: E& N1 j# \4 c+ l
3 G# J3 u$ e- } P, S# }7 a3 T, m 8 S( j& f, y+ y7 p i/ `& G
/ P# f6 I/ }0 f1 `1 i5 Q& Y1 W
& M+ D' g) x, c6 s6 j& O. i ) {) `) `. y) K( P( U% r
0 _6 Z$ t0 l7 |8 K7 G& U ! t! G- c3 m. {; x) Q5 A4 }1 p
; y- o `; c. _; i5 Q1 _& Q$ |
日拱一卒 功不唐捐# r0 ` V& x2 B$ ~9 R3 C
2 Z$ P' ^7 i: V" h- ^- |! W, z) X
& d @$ A" E: r. B
3 Q- B# Z, w& h7 {7 _# K
6 _5 L* b1 L3 T8 S/ \
) ~$ D4 i2 A1 {) r
7 M0 G! f- l0 W7 h& s! H" F " F' y: j0 f4 p# t& k
7 K$ \3 Q8 _. Z6 j
; i% @' e# s* _" {4 M
: f; Q1 k! r7 |/ D) q1 ^* J
: k; i; i- v0 ]. _- i 9 N, K0 R2 v, j2 ]
6 d6 k/ s/ h! l2 D, D* m2 l . @* Y3 h- \7 i$ l
* U/ o5 r; q b: [4 f, I, l3 r
3 c& Y7 s+ P6 a
9 K: ]' S, Y! _, \ $ J' T$ |' r/ d) L; @6 X
5 I7 c1 ?& C' _
! R: _: z: K ?2 g, M) b. N* d; T8 M, {* Y
: P: c4 p: O9 O- m1 k+ S 7 e% [& v' p0 Q) ~7 Q3 r# y3 J$ W
因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。
2 R1 k( L' i# Z+ L' W: o; I ; ^. d5 [: F6 g6 j0 J; |
, s+ C4 b* s1 f0 \, b
1 O, }2 A/ H- t8 N* P5 f: E% {
& s/ P; c5 @* i1 i % j: t& C0 f h4 x4 v+ R
/ B0 ]0 l+ v. c 1 l5 \; N: e, C, Z$ a& k' l) M
2 _/ \4 @5 U" ]7 d4 I, I/ v2 R
日常研究环境
) f. U& F8 V7 z
; p) ?' K$ m" o* E
: h; Y; ?* K0 M) j Y
, A8 t# I% j, c9 f$ M$ D 4 @) M V: v* v Z5 ~5 w* i( W
( ?# `& w% G9 j/ j" `1 H 市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。( N8 O2 |# {* s! M9 [$ A; N1 j2 U
6 f+ \$ b7 l9 B: \* i
6 {# i6 y0 V" A, i! h) V8 E7 _ 7 J! N) A. W' t+ l
: ~0 L4 t& _" K% M
# c7 Q( y7 a- T! R
) A0 _/ y4 g/ R# g + |7 e0 m# ^, ]
4 d" z T9 l7 R! l7 P5 C( s* y
5 n& k5 I6 j3 U+ z: [
2 z) \; P) A5 f/ y$ P# G1 ^
% J2 B: o; |4 K# C+ V 发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。
! S) g _7 I( r; t1 w
, w& b% [/ j7 b, k2 k % ]- U+ F* t7 m- F' k( @8 S
8 j6 s: u, X. W' o& }* u
0 i' e r7 V& P) y, o% ?+ H: t
) M1 F- u7 z0 t9 X7 H! V" G% A1 G) E$ \3 ] . x& @- G. ], a8 i/ [
: ~- n! U# M4 v+ ?. @% z& Y
% R# _7 Y( y& R9 `* v, O 5 y+ N4 K- Y8 ?$ e9 }
, v% P2 m; W+ R5 a0 W$ ]9 f
8 l5 `# T) p9 ~: `" E7 Z* C5 O w
3 ~) d# p, [4 z' l # z! d* n3 a4 m
3 x! g* e7 k5 J6 S3 B
& O# j% i0 ^; R0 u( e( e# F ! R0 [! H/ `; y! `, o; z: T
6 @. I) b( C) y+ z" n1 U
) `7 z3 o! L$ p- J$ u 5 Z1 i8 M- F7 L. r1 l, L
! } u! h- [. E9 c& F, L% y 破解加密硬盘2 p6 U% r. W% ?* I1 e# y p! c2 K9 d8 D. y
1 k$ b3 W7 {: v: Z) j0 P
" A( W& Z9 b* }* g X
. N- C/ r* S0 m9 L
9 W I2 y: q% c! A' X9 R+ P o& q, x* R& k2 V5 y5 Z7 `
2 V+ t" H* R0 ~
& k- J2 C# L a. q
q; `1 T8 ]. V; ` 0 ? J" p H1 x/ W% m5 [# E) _
8 B8 ? A v& {5 r! X1 W2 [: G
* j! y% _: B4 d. p
Q: w4 F5 a) D# p: T n: k
9 `' l$ |/ B1 b% V2 o
+ i: e# N6 x& z6 J
+ L' l+ a9 r7 x- E
1 B1 r6 w) v2 n) a; K! A' s
6 y, m: D" A1 f2 Y4 \, T
5 t. I% ?2 f I1 _% j$ w) C
+ j( O, d6 z; c0 I0 E/ ^
. R! ~8 ~2 L$ q- e- c v$ P / S& [, m5 \7 [5 G" @
1 @5 {; t8 k. O
7 Q9 `& Z$ Y5 [
4 J/ H2 D; p; N% m: { , y: K+ s O h" C, H4 X8 j2 Z% s
延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。
; s3 T M- J" m* [
8 F/ R# s' m' i, P1 K. f7 _0 P
( Y7 a+ n5 }& v
- y( S X. S! l0 U8 ^, w6 Y 5 z/ |! R# F" |8 M' H4 j
' v8 g A \ T3 `# d5 V7 i5 ~
2 t$ V2 K* R0 l) e# N
* R V: V- Q9 o, f/ \% {
! J& d" z- D& k' g' J0 Z' {# s 0 P3 ~+ v5 s+ y. X' H5 G' |
+ ?. f1 k+ B- G3 R" _3 B
7 L; E5 r9 a0 c/ v9 l 在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。
$ I$ I/ V* C+ p4 L! u: y3 C
3 _' _! G1 A- U0 U: _+ X2 k: t' ^ 8 ?7 O4 q6 R% ~- L$ C# E) T1 X
1 Q6 b% m6 p5 U# A) Y( F# w% m
) B# v6 M* b7 f & e8 G @/ w; A2 \
3 P0 v9 U9 Z$ P3 x
4 P( X0 q- q$ @' Z y$ z+ S0 ^ ' f& E' B* d9 F' ]) p
+ k6 `) t: p$ G7 G/ \* @
4 |- M% {& A9 Z; M, [" a/ O; u. x
5 v l# s) y& D- o. J! j 在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。
2 q; A2 g' g) o ' e8 S# w, R9 }: r
& k1 C0 x& `1 H2 w) J9 ~
, G. Z% }6 ]1 B* O! [# b r& V
( f4 k \) ^4 J5 @+ Y G
* W. T6 [' n& l$ r 8 c% u( c! A, f& c
: b; E$ X4 t; b : x6 S+ d" [ y& c+ X
|