- ]& K2 L, q8 P! B* Y2 Y+ q C' z8 s% l2 ?. P8 e% }5 s! f$ n) i
2 l- E* p3 x% q j a/ G3 }) I0 e
2 n! H/ [/ ]* y* F5 B
; Y, \& a# X; {" S6 P2 x$ \, g% i : B! a' v7 e6 m. c5 b
6 }* s" x( }) Q 1 ~ o, e; s8 _$ z
' I# X" v. w8 Z5 v; D' e & ~7 J: {4 G6 S- ]& N# u
+ s" {; ]) c$ c7 ?5 h' l
: c+ z' N; [ S4 R 在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗?. ~) Z7 I; |+ E% b1 h
5 n9 v4 z1 X. A0 S6 j% {) q
0 D& E/ p; _- m( H( |) A8 Y, l9 l 8 M7 h* H2 @+ z$ p( j) Q
% j0 _& J9 Q2 z ] ' r+ J0 I/ {/ F$ C
《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。
" P) f3 r1 O/ D6 G T 8 k5 p" N0 v# a) ]6 @% ~
# @! N% l" @( h0 s / q# C, [( J0 r* T4 k2 z; z
7 S% j. w4 U% s W% }: S
# f) r2 M. ^. y5 {9 r% u1 d 在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。
0 c* q# v# ?) V% f5 C / G4 x# t- M7 q' q- s& u: f1 g
6 S/ U1 U0 M% @' O; A6 q% D
- N2 o- B q3 J u( V' r1 G( p 0 h+ R. c0 \. O0 R) F" t# O" A/ O
2 ]1 O/ ]/ W0 Y9 q3 ?
*文末附《破防了》项目技术分享视频
% H) P; `# J* n0 t2 F# } " E$ C) ]; ~4 H K t
4 Q+ H* |$ F2 q* C% Y& w
( _/ Z0 h1 U6 \; p
* p5 g; S, N2 |# L+ P
2 w9 Z1 H! Y9 h$ ]
9 n7 G0 A5 n* a0 R: F; I5 S3 H3 b
8 r9 E! ^0 Y+ |3 o6 u4 v( [
6 X& ]* O9 q+ ?: H) ~ - Y8 q4 J# ^3 w8 X+ ~' L+ h" A
$ p+ k' | a! r, i+ \2 b
" Y7 L0 ^' o4 U
1 @0 K W, a8 k
1 `# b V$ D: F* |8 A/ f$ V
2 H, m5 n" ^1 w7 B& E
7 f! U6 V1 Q9 ^; k) v . g, \& S! G/ ~8 D
# K- f6 k) }" V$ o; b9 Z ) U/ B5 Y) z& [
) W" E% b$ U! {7 S
5 E) j. W9 s! Z$ R 日拱一卒 功不唐捐
* C0 L8 A1 M0 z; L a5 c7 i
' ?1 T& X3 ?& @4 r: \/ O1 ^
* l- K* O& s ~6 g7 q$ `, |
) W7 Q# B9 I7 ~9 B5 e
8 t$ {: q9 L; P. O) Z7 S- J; I
! l2 l0 r, ]8 O 7 {1 D5 Q4 A/ Z2 c$ ~
- A- \6 {) B) [( h& I & b. u3 @, ]" [- a# s4 y8 Q
, s: v9 ?5 |, ~* n. D) m: a4 ^% ?
' \ E) K; ?! H
2 a8 @ W$ r5 C) K: u: G! T# n7 _; X, l
Q" S* W% q: B I
3 B0 P) ^9 v/ J0 u 0 ` F! Z, e3 D) e4 ^
" P$ Z+ ~. v8 h5 m; o8 C- V
: ^9 s+ y1 m2 u4 G4 G9 H
3 U# C9 F3 L, {! f
% X$ k% S5 p! s* q ) b* K$ N* @% D( K; l
! h/ x' {. M4 S/ _! @
, ?* f% m8 c6 }0 n$ d$ A& L& R
+ |: ~% [% o7 k" h! {- D# l# e! @
因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。2 J4 a" h8 h# \- S& H
4 y: D/ {" o4 V. L( l" x) k; C
6 X/ @, [0 ?4 w& Z3 w' P+ x. G! O
4 _+ W8 m, M: D. H5 F- g$ _* n. k
' ]; R/ v) {* o
- v6 {7 |5 B1 Z3 N. G. |
2 O+ u* ~, G" ^! B+ V- e: y1 L + a# W; O* z7 d. J+ \. g& ]
5 h- p2 w3 J# ^& b8 S9 y
日常研究环境' n! z" @$ x% r' N0 t. \( G5 }* `( x
/ X/ V7 N4 o; E% e& `8 l- {
7 A3 w8 u5 a* c, [! u; E0 |2 Z9 G 8 t8 A& W) [+ U- C# k1 o
, O$ S% c. d8 `7 T8 T) r: X4 r # ]# a, @! |8 |/ |$ ~* T' W6 l# N
市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。
1 ^% u: z! g: A 2 W$ x3 V/ c! y) L. k r, R
3 y) J( R" ~' t# R9 Y% y0 d+ K 5 m" ~/ K% k( ?* Y, I+ i
) Y* |2 R# w3 `. J7 B & J+ F' }* a+ q
9 J! J7 r" Q; h5 {- x2 ? ; Q7 c7 o) J" `/ N/ x; f
( F( d: F; A' |' P# Y: a
9 P0 b& e# K/ n+ m
+ S( L2 |3 c7 U& Z. c & o. [2 U& p0 A$ p8 U% s
发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。 1 M/ u) a4 M8 r
, U: O6 D/ ?: { ; f& ^5 p( w: ^! k6 {; z# h
0 ?3 O7 o; @+ M8 w% Z
* r5 S8 J# r% {2 c9 Y5 D2 U 8 o3 o" i% ?9 _1 D, {
q% o' ^; V) W 7 o- c6 t# W* R7 m3 M% J- ~3 X
. p9 u- c: o# j9 q' k9 T2 |8 Q& ` ' W+ p% E- x: p; d( T: W- \) ?
" v0 O$ P9 W; ], M0 _$ H
3 G. i1 K4 {* R8 V
: q1 }( d Z2 K4 P0 R( W ) G9 O3 K) ]6 l$ }* n
8 g7 I# b6 x" Z! h
- _+ u' Z5 f$ v+ J2 n 7 q5 e. }' W& H6 a6 G$ t
1 a7 P: A3 p2 O. y: L! r5 Q$ J
; I$ ^5 G4 K2 y9 {: e+ s4 I- o
& L8 }& M0 _# G4 Y 3 {+ o& Q- n K
破解加密硬盘+ t; M' b' M: q5 h5 w
( [3 {& Q x) L5 L3 h8 l' R( D- a
+ {2 s9 f6 j K7 M1 Q# @+ o& z
; o/ l$ B! T! o# Q5 z 2 }9 _- x, L5 C6 {* {
# K( ~, s% i( B% Z7 R) \
) g& L8 M `: Y. E( ^" R
1 g* G7 ? r; n ( U8 q' L" Z2 [6 Z7 G/ q$ a' j
) j4 i3 c5 |# n# n$ \
6 a, D% e1 ]* ?% A$ o
F* i: b$ X4 D+ E' I# i( k. i, Z 8 z$ ]% Y" \" _/ z N
5 `4 c; ~9 j2 M, F C $ S; W. I2 u5 |
. n" g5 O0 g/ \. z c
2 o& i% f7 m0 L) \5 I6 v" R
- k* M: _' f7 g, }2 W5 [; |: U % g- {" \! A* H* n4 m
1 U }4 C+ [; B# `+ ?1 s. w
5 S2 l* X" G( @
* a2 _$ L" X# D
, e! h. L6 e/ R7 r
' K6 ]( F$ l1 p0 O5 c b7 Y, ]1 ~, g8 E6 ], M! d
, `; \: z- ]0 [) x/ o* Q& D8 y1 m, _ 延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。
' d9 L( r) s+ a$ a4 o1 q3 |
* ?! N$ \$ m' a& g. ^$ ]0 @ 3 g, i8 K& w6 i0 [1 L
% J! s6 M- q: [: x - W4 s0 K; \1 T/ b. K
* n5 a1 v. E+ d/ {( @
% w. B0 C) \ e( F) b4 Y ! B- f7 {5 P; W9 n3 x8 [0 k& i
' Z; Z" ~7 ^$ `5 J
: y$ T3 b2 m/ z: }" x! [* W8 j
" y1 P. K9 T( Q8 E6 W* D ) `$ @7 Z+ T6 V8 a9 j/ y
在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。6 z& {8 n: K: J+ `# j6 [
& n# T \' C( B6 k6 l" L( |) M + a* D4 x7 o9 C
3 ~, v1 f) |4 U7 R( N/ i
1 k* q' ^( A2 u2 X- l0 F
) k3 J4 F* t1 Z# n3 s" |3 I; b7 r+ y
! c2 C6 u6 {. @! } 0 g/ Z# g# r, z `
" M' m4 P) _1 u% b
b. ?9 M0 W# `7 Z- d0 H
# K* d/ b+ N: _' P7 X* X
6 O4 z. n7 ^- i8 N' Z7 V+ R' H; h 在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。
) C8 t1 ]0 e2 H, x1 e' p - v" |% ~* q; [; l2 I( L6 k6 Z8 e
S& c2 i: t0 b4 k9 g
" A J& a- M5 a- f* e, s# g& } 1 B3 J6 I4 \4 n% Q9 E
" D g x, _& J) D * P! G* `0 U' L9 Y0 _- r1 W/ l& g
) y7 h+ X9 @; N+ M6 X/ }6 [
& y1 _! G, m2 u% H- s |