! @9 {$ a- g9 I9 E; X
( j! m4 A/ Y7 G7 s7 H- M& R * f5 a1 o) O! F8 B1 O
5 W3 ~) _: U: V: U0 @/ ` , R$ ~2 K: j$ x; H! ]
. v/ R- E" a, Q1 Y9 ^0 C6 a
) D% o* { Y- y ?! n/ {! F
6 C' `6 v4 O! I" P+ N, |: `( ]( n9 R# Q
! d: w- f2 ?! y% g- j5 V
' B: t- @/ F; I5 v3 V) k# X
0 n# o' g$ V1 @
" i' o; t+ i9 C# X' x- Q0 A" j 在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗? . D5 a4 q& U+ h% q( O( X/ r6 h( u
% X7 p' O" e+ b( [/ y- H' G! @6 ^
# A; O+ p1 ^) _8 ~' z: D
1 R) P! X# g* ?0 u. w( I/ I9 ^% ^
E4 e4 r5 k# H( o% c3 W7 q & S2 L& h0 t% [( |1 `1 p
《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。
" |; y+ a1 ^1 q- S
% d( Z; [! m% e' u- z
. ~6 T, K- N; z9 M& V& a
: k" ?1 w0 S# b4 p$ c
0 k: S7 X5 h( z- L& }0 H9 X
# w. _ X3 ?0 f% v, r" { 在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。 / L3 K/ n3 d8 A+ f, U) A
: r0 K1 m0 q+ n
2 b1 q x2 [; c
" T/ D3 |; \# e2 F& h
, V- r, L5 M2 u# X5 P' V
& [- l# i7 b4 \7 @! Z4 n *文末附《破防了》项目技术分享视频 8 f9 e4 @& s+ v5 Y4 A
5 [( J1 E; N: R, L
/ k; |2 E1 A5 k8 _% S: P: w
, z) I% }" |9 N& t1 |2 Y# Y
1 G% ~( Q: r( Z. W
) k$ ^: B; D: f+ A- _9 ^
# A8 F& g Z8 d; R- O3 Q4 Y
7 v/ {# X6 b4 o- ^9 _# x6 ^9 _" Z/ X, R
% [3 a" t. V$ y$ d / U& D: D. E& x/ E+ n
! O% B, M* d* \! [6 P
3 I+ h! g. O( \. G- e1 S' j
" f6 f& @3 o, ~1 ~7 i0 Z$ f
7 M" E7 b+ o$ z7 a; `
( h1 W; a" V! j; P2 P 7 |1 i: n$ e2 f1 i5 L
0 ?) b K1 t, V5 z
- T# w8 j1 l: b+ ?+ d
% }5 m1 r7 H% W" P; n7 z ) P* O/ S% l( T% s
9 K, ?% ^/ |" f# s2 l. `
日拱一卒 功不唐捐 * d' U4 m# D% K- V# t& h0 E
% z3 H% U! n& @
' m) v4 [/ E* c
5 o+ G: t8 |& x# s- K" n& {* t
4 } o+ s' {5 u * \: H+ }* u& Z0 m8 T
. \* r2 B( y) Z# H7 H5 E) Z E' [9 o/ f
3 q4 ~8 Y6 O& j7 Q# g ; `. k# d6 \8 m4 D# [/ _
( g: s: h3 J9 s
7 ^1 F+ J' B/ \* g
) I$ Y2 C5 s( N' B/ H' Y) }6 g
* E6 C. C+ D/ l( k % F. u M. x" k6 K; t3 [1 p( l8 z
. E9 o3 q4 X2 G, ^6 ?
' J- m# r$ c3 z# N; s$ y( J7 C
5 q% I9 P2 p! l. }7 d * i. r: _% @( Z$ h; x9 [' l
0 d9 o6 q/ L' ]# g$ y1 Q
8 b2 Q, R, S3 t4 n3 i1 Y# G5 N( v
! t1 Q+ ^: {$ X: D
" L! \' ^! n4 D( c; }
+ `8 h1 y+ q+ @8 Q+ r 因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。 5 M1 z! n; k8 F9 }, P& K& U
$ x, G+ s$ K& E8 f
9 H0 n _% z# j- C
6 m8 y3 @$ Y ^
% o# C# E, Q" E) ~2 O1 W
- Y' T! D% ~: c& e7 W6 { e
$ z: ~* Q6 w7 _, D6 X 8 Y% S. s P2 c
/ S8 i- F j9 p( W2 e3 t0 T
日常研究环境
+ r( T8 e- H+ _0 o6 u( k
- V6 k" X, n% \0 ]& g8 a8 C$ g 6 t( M7 U( b4 L
) {: g n3 n W
" \1 g' V* ?+ o) u( J
2 w9 i" R& a0 v
市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。 8 I' N' S8 E4 a' i, W
) `4 s8 Q1 N' k* N: e) q `9 ?
7 z! t2 D8 e1 F5 z+ a. P, W 8 T4 \; r- | a) q y( b
% G+ h! t+ x8 w$ ^' R
6 O# d z; `; l: w0 Y/ ]' b5 d
K f2 D% ?4 A( j9 L, C' b
4 d9 u1 J% K% q0 t2 a5 p7 p# D
9 a0 b b- e$ L: `' h9 k1 s( L0 J
+ p% G5 n" q; @/ H9 t6 V
7 ~% b! x) |: y8 m9 Q
; {' r3 a O' M) c* a 发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。 3 X4 n2 i7 [' }5 v1 c6 ^0 O* y
8 u& Q+ P0 m5 A
" b5 B. `' j7 ~+ _! `$ x
/ A5 l, ]8 ]( _0 l" H+ o" |% d6 h0 a % g: I0 H5 B+ i4 M" _; @
3 p) h4 X7 m* n1 ?& B
* S" n7 W) d3 z& }1 X
* s0 [0 w7 V$ J5 |& B" _7 U
! m/ }, u3 i# N/ g1 y% A2 I
. w1 G' i7 U% C- s# o 4 S' W' g5 f9 X r5 W
8 Z$ b2 v% R( S2 l5 [, R# Q- x
0 x/ t4 f% F" k
, S. S7 L1 _4 x% |# o
. [& V3 F$ t8 _* @. G ~$ p8 l
5 ^2 A8 [8 X8 {8 W6 i4 @/ c1 z2 B 4 J7 }5 }. O* ~ H# S |# L
/ D, C L, H0 ^! O
& D# ^$ Y# R& @' M9 _
- _: [: h3 a5 U+ A, J 3 s+ ~) A; k! G
破解加密硬盘
4 h2 U1 N( j% F1 n1 ]
0 B5 {5 x( G- R- U M" f
0 K/ u# z. p o+ f ^ + x: X. k3 k* ]6 Q, p; Z2 O
9 B- M9 O0 j# M0 s * Z, m3 ?0 I) K9 ^6 p n
. v, E; F, U0 f. Q6 H+ C0 |. U; L
9 d& i4 M% O) a( W! ?" X( ]
2 p' @. x5 M4 b- S9 S
a( ?- P: e% ]+ e! e+ H1 h: P
# s* n# @' U* y$ R) ~8 {$ l- K0 o; b
2 n0 p- }8 y! p1 V4 I ) b. ^+ z) H* U/ C4 `- ~
! j1 Q5 F7 F% t' h% p% F
- n' Y+ D5 i6 ~3 B" ?5 l k7 m
4 E% R9 |. R, x; g R: O/ O5 n
1 m+ ?6 w1 o c( }4 ^
, D( z4 y6 B* p% r: a. S+ e
* ]8 W! z( W2 {& ~% H9 f- L . e5 e0 R+ Y* C0 l
1 R0 |5 z2 j2 W1 s* ~
, z$ Z$ h- _/ q" z/ w, ^
. I7 J! D: @% ]4 g3 o4 ^3 U9 r! h2 h0 z
7 h% Z# Y" L% U" ~* T" J
# \$ [/ B" ^. B$ y. ]* F7 G- @
7 t+ s2 r5 K# D- M4 k. R
延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。 % O3 @4 D( A# F' Q8 U+ Q6 c6 }
: z2 m% [) p) G& L, ^3 t 7 P8 v) f! x- E' ~- a; F
, {: i* R2 G3 \8 L( c$ G2 H* j
+ E) J: p/ n# |+ U
% I% @3 e8 s! i
2 [4 h) m- @! o
( `3 u0 B' N {. y; {2 Q v; r% D8 X) a9 |! C8 ]* Z* |
6 P+ i6 G6 Z5 x2 f- c3 e3 L9 d! w' O7 W
) \" a Z2 I* N1 v; T ( H' k u f% ~6 ~! l
在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。
' }( i6 S8 r6 s+ M
5 t/ D9 O& |% I# R. h
$ F/ I' Q1 e9 [. U4 L7 C T
3 ~6 Y; j2 K5 a Y* r4 M$ V
& m7 K) a& }9 F4 N
5 V7 @/ O1 w1 L+ l. M
4 t3 V$ m: D$ E! o1 n# Q2 O
; o& ?+ [8 h; J, d7 p% C
- j! X. ^ F* I8 ~! R+ U$ D
) ^; W% x% ?! D8 ]( p
W6 O& X+ g1 j5 G
' D9 q2 J- P4 @5 q( O% L$ r2 Z$ E 在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。 + }2 V+ ~# @7 H9 ]4 m. S& F
0 ~$ }9 V# L9 U2 f0 P+ A# |6 M6 l
5 x$ N% ?8 s" {
' Q W6 ^' {& U: K
# U, S: F8 Y# n& T4 J' b: _. X Your browser does not support the video tag 2 x$ f) g& ?# Z1 [4 s) O
/ _9 l! X/ p2 n1 u
# \. @/ n( E# d1 W
6 I! g7 \. }+ G