! v8 i: A9 U6 b. ]* W. f8 C) P
& J3 K) S* I5 I1 U8 c h! s$ _/ e 6 J/ F1 e6 k" c% R
; v, q# \: \7 ~$ O2 v5 m
, z( ] h- N4 B* K2 g- R
_6 j3 ~3 j6 I7 [, ~. ]" W/ S; ] & f8 p' F, p7 Z9 f7 Q
- F3 T* Z/ u X + r' X1 G! j" @' \9 w/ L( H2 A9 t. w
! j: }2 h8 ?3 p 1 W$ B; ?0 K/ ^3 L2 e |
" U& Z! A4 \/ E1 V
在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗?7 h7 G: {1 G+ |8 P+ _3 C% Q+ L
) T7 X/ L' V; V( P
+ e y4 C; w& y( V
! r5 c m" E( O. `+ l
* \1 K$ \4 |4 y* T0 r6 E- ^ 5 a2 k0 b9 v: f1 o
《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。 0 d8 ]; S: J; F# H4 r
4 Q& w4 r5 f0 \* c. b2 o' m" A3 [
3 Z8 @! e, {: v% S1 a3 e( [1 K# a 4 m7 n4 b) `. U. f5 l) u
7 Y2 y3 ^. H8 K- n& L: P2 k- U7 g
" X2 F! f/ }8 N3 R! I 在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。
8 x& a2 c' U. N6 W5 ?1 r4 e2 _2 z
( j: m/ r" N2 ^
3 ^ h9 a, P/ K2 S( z$ }, c- ] / ] j1 N$ d! ~* {7 y( O( p( U: T* T- d
# W8 E! ^. L6 F6 F6 u
# |% X, c. |# @' y. p8 U
*文末附《破防了》项目技术分享视频: [+ v" {; N6 [0 T! o
1 G5 H, ~7 ?: u4 g0 |. B4 W 0 O, O! i" k8 B/ s0 e2 e
& _/ I. ]/ t/ A% X3 I4 I
9 D$ K% E8 u9 ^' z* e/ r% V
7 a5 A( l( o9 |" i: u/ @' t+ N
- [% l% I, v) \+ G) J& K1 P
8 L5 \. q) o' y% G: b
! Z) W5 v! P6 D. x$ Q0 L0 K0 J! N 2 K6 Z- o# P# \% g7 z! @
# l& m/ l) I6 D* O2 _7 V
& a: ]6 _5 ?. R4 D- H
* h( S$ r4 n* ?8 O0 O5 s$ B5 ? 3 C% R. ]7 b5 H" [
7 t# k& S- w# s, [ T
7 Z; I# _, J- f5 _. }+ e % E* [9 ~: K2 s2 L8 Z' Q3 u) ^
: n' L) S2 A9 W$ P) A, |
q. c& ^3 n4 ^7 a$ H1 j
' o$ M1 u& V0 `& y
- d) ^9 w$ U% v9 h 日拱一卒 功不唐捐0 G+ ]9 x @) y$ a8 z) z
I+ D f' T/ |2 c/ t+ e: F4 s
0 P; \- r2 F/ @; z# j+ x ' H, i$ v& C/ c* i8 w4 O
& M8 i( E5 l6 c& H. W 6 C+ ^) E6 t) l% {+ u$ ]
5 E7 n2 t- i- a' t- K+ e& \
) k; B) H+ T5 U# _
+ `* \8 c; k7 Q$ {: \
8 e2 O! c+ ~! m* h! [
' T% t9 R9 I3 d9 n5 |& [- z ) u$ ~8 H7 s3 \+ [3 g1 s
0 Q# C* T2 S$ v Y' k 2 U- h! Q7 a6 x6 V- |. w
, |: V1 v1 _5 u- x& Y6 ^# Q j$ \. w2 ]. N
9 X* N' A2 d- r; S' N7 X
3 ?$ ?- O) K8 z/ p+ v
3 o0 S x. v! w q1 e
9 q/ z$ U" ^3 P1 T0 K 6 O& _8 k4 W# t
. c2 s1 o3 t6 m8 w- d2 I9 I - G! r0 K: v7 R0 ]' ]% ~+ B, N" G
# J* f! N- \3 D
因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。6 [' p) H' c6 x+ V4 {3 G
+ O! m2 D: ?1 n, y5 a
5 h( P- _5 U6 d
# f; B* V; i3 m2 [# B8 Q1 J2 R 6 W+ u' q: D% J% L$ H
1 l5 h' Q6 V# q5 _3 @
7 K+ T ~( z3 ]) W# D5 v- c $ j# }5 ^6 g9 t
/ D! B$ L$ W+ V! i8 f s( `, y& \$ s) D
日常研究环境) w- W- F2 p; x5 F$ G) A+ p
- W. _4 i- O9 G+ |" A
/ b3 G. [% B+ C" Z8 C k
8 p$ s+ Y$ J! Y: M1 W# t
+ N7 _8 M' Z- C
+ h; T+ u% a& w) S+ H! p$ L 市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。
. Y% y2 H$ g7 z( { j9 c 5 O3 M I% T) I! i' X
: S/ p! B! i; t3 p8 ?
, i0 b/ m7 ]8 J4 t( Q2 W3 u( B/ A
4 U% b9 o0 l9 C1 B . x& P, A( G4 q/ `
9 Z6 y: `0 o% s1 X/ z$ c( b
& ], U$ | y/ W2 @ [' a
6 b5 Y) p' m2 F
3 i# x) U/ g' |' u& q* D# k
; g+ H1 D, _( W& O
/ w' n" ^% q5 n: I/ f 发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。 7 {8 _8 ]' h" [9 I5 V% D; Q
! q3 ^$ _4 R3 c! V+ }: B5 r
- A# s: O8 F1 y# ~$ I ; Q+ w: E9 c: `7 Y4 |
, G. L0 \$ o6 l/ E7 G3 X
( I1 A9 P# y/ n 6 c" _' D6 f( |8 T& J
- T, ~9 E0 w) P" e+ L
. |. J9 w! @3 r/ R3 N
2 x9 e- w, J! M/ N! w
, y) |/ p# M9 B V* ]
+ A6 F& y! V( R S; B% p # e' C4 U# `, z
1 ~) m6 P& l9 y. q' t1 I7 n
! g" y; f8 B8 @9 a* ]
3 |1 ~# u- V; H1 [ 3 L+ T8 g! C! v* z
p7 x8 F4 q! X% Z
6 g. X( {7 Y+ a; @" N+ N4 g
; H* J$ c' G* a/ |' [- h
2 j; c1 T& p3 ?9 O
破解加密硬盘
4 C: p/ S" k" w7 _; T
$ ?8 |* y+ g: t+ V , K; J, F5 `0 t7 n( @7 W# y s
" F- j, g3 O& i4 I" M6 j) _' q/ o
$ h5 n# {* W. v! t# q1 s+ C5 m; s
* w, x2 U5 \* I: y * [; x3 Z4 Z# k7 K
: J) G- J* s$ E. @- ] g
( }; S( O) G* j. r
( _3 @# B8 j( G& w3 O8 |
! |0 e" K& H8 Y" ~- |6 m* O " `$ @6 d7 f6 w' D* Z
: M7 x# j: N, ^7 z
( N# e$ c! i4 W$ S/ j) T/ H% N
1 s: P. f% a4 W1 I" S; e
' D- u+ `2 l6 [" I' d. {1 u
+ x5 W P9 o0 B# P( _0 [0 G
- }. i4 Q S8 a8 E . H5 b; K3 A+ L+ K9 u w3 Q, }5 T
) r* p# x8 u0 k- l( t
- X( p7 {# ?+ ?, O, k: }0 e2 x
1 ]4 i8 b! u0 _; \- ^( ?( r6 ~ 5 L! Q5 ]. b" h5 {* L: V$ G. y1 l3 ?
( D- @$ w, E: w4 A
+ ~; _+ F q3 p" j5 N* ^
$ ^1 n( K7 ^6 g0 M! H3 b 延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。* E* Q# l/ y T7 _
! O1 \; ?2 j, n$ j9 E
: X! ?- U8 Q& D0 N6 `$ r7 F
$ ]" `! R0 E2 q6 J0 g+ ?. i4 \
3 m) r+ }, Y) P. i7 c3 w. a1 n" ~ " F& v' \3 ?. [& l! Q( [: L
7 c% C) j K0 S6 y3 I7 Z
; ^0 w9 E9 `5 _4 f
- q7 W' W+ V: z; w+ \# N
3 } W% N' U8 Q 9 P$ e+ w( O) O7 j& j$ |$ X9 z1 o
a- |0 m+ W, B7 \ 在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。
4 O3 y1 V+ r9 T9 A- q, D V( Q" P, |1 i
9 E9 E8 B9 Z. j, h 6 H. a% }* i4 Z7 i6 g
1 Q5 r7 B0 e/ B7 h, ]: G/ j
" t+ |2 R: y; [6 v# E' }2 x7 z
^! o3 X" \( V! H , y8 @" T: _; K- L
+ r5 s4 y& s" q( x* g* F8 k # b& L, i5 `, T! W# N+ y
2 d6 P0 g+ e$ L6 K
" T' c/ t; x6 H& z, C6 } 在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。# M0 b9 K: a) `- \; P0 a
$ S7 i6 U P w/ k7 v2 ~# E
# P0 J9 k4 M t/ H+ a( l y9 U" I% R z7 O2 b
' f7 V. h; ]- R4 L; S
8 s8 h) S+ U/ \# J
4 J" e5 A1 L+ Q% R1 `
% ~# @3 G( s/ ]7 O4 n; D 2 l& I$ B( R5 A0 B6 T; E
|