2 r5 p# l8 I' {# \0 U/ x 7 W' o& d3 u' Y8 j9 w- w
+ _, ]- e9 d M' F+ i$ n2 f 8 T) }) T6 X- R9 ?+ V1 J( E) j
" [; @1 B$ a' d1 Q. [5 [ # G) l9 j0 n8 u y
( u; r+ \; k3 z, g& d5 ~- G5 K1 R $ a* V+ r2 H" \1 b) {! F. \
6 \6 f' l0 R5 f9 A$ K/ C4 p
, ^: R) D! J0 \3 x! R9 R# g% j L
k0 a0 U- q: O5 _9 C/ l
4 {$ L% L$ Z/ o2 a. j. V. F$ M 在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗? + `! P' s6 B7 i) O- {& b0 }) g
$ r. R7 H' I: s0 a G6 {
; N$ Z+ f) _* n + c5 t8 K1 A+ H$ r+ u2 O7 `
" m# V& \5 g) ~7 k$ d6 L9 E
( |5 c f9 W# w* _ 《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。
5 T/ X3 {2 O& {8 ^$ g- W
- u. v( Q# E. e8 `
, L( w1 X7 l' W# w/ v [ 5 ^3 ^* M* e+ o" A4 e2 y3 p9 O
z3 X1 N) ~( p4 y e* V6 o8 H
% W' B1 w3 o- {. n3 b% m9 v$ \ 在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。
. C/ I$ M6 _% }
9 G! y" u, e4 k8 \' O6 Y( n 4 I2 ^7 q ]0 K1 c' x* X1 x
- Z' P# l* W; m; y$ w4 j6 g
, Y5 X" @; s6 H" H: y% Z
& l; H2 Q. h3 ?$ \: `8 L0 a *文末附《破防了》项目技术分享视频 3 }' X/ r0 `6 F& Q' v+ i' t
8 _& u9 v0 N* Z
* I# v" N/ r R" D0 _
* e y% k8 G2 y0 _; J& K / `) H2 E2 J* a. [4 I7 A
) D& Y& D3 \1 x( J- {
+ E/ m3 {9 J6 S. q9 ~( w
: J: Z$ Q; G3 F4 Y
$ R- X7 C( h: c( m
* w( W4 } k% o8 ?
! Y; c" s# U4 P' U1 U1 m
\' k1 h0 F" E* ~3 i
6 v* v1 h. }2 u5 j# [
+ | d2 Z7 d% j2 y* ~- P
) x$ w: x q5 K " D6 y: Q% S0 |1 _& ^4 _* V" R
: P! [, U' B. l
" {$ C, Y2 u8 F5 _4 r ! F: N8 p4 v, Z
: V8 x3 o2 i$ O# }/ m$ d' i( v 0 Q8 m1 i& R: ]2 E/ i/ j0 e
日拱一卒 功不唐捐 ! P# Y& q4 |/ f' S' r( G8 p S
' C, g; t! a* f! J* b$ x7 B
' `4 R5 g0 u0 H2 L1 _
, O6 @. e( o: @+ D
! m: z: D5 [) Y1 J, C $ k+ u3 S! l/ a/ `6 J6 _6 e
/ X4 V9 V9 X! t) m, a* S
8 f* y; M: W/ I
+ e! Z* y, [+ Y" d3 I8 F + H& ~8 O. J0 Z
& W7 p2 j* h/ |% D; {: R% P! T
+ M" U9 Y# ]" J; O7 P + _0 q' a% q- P- p$ I0 @5 }
1 b1 U3 Q2 Y! }0 s6 J 9 \; `% k, G. K; F
6 k3 U: Y% c& y5 I$ Q) w3 a5 t' e ! G% K1 W4 o( m, g( O& p" X! O* |+ \
. Q1 A' {5 F* q! I3 @
1 ]' U' b2 ~( b6 _: g4 @# t 3 w R5 E! h% @) g
* _& A2 E# f2 T# Y( D4 |, D. b
7 g7 |9 A, U' A: T. Q
4 X" C8 A* v; s' M8 P! Z 因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。
5 o) c5 D' s4 U- d# i; q1 H. Q
$ b$ v5 p& M: s' |( j( @ ! w3 {3 A! n c( r* C( p( p
' _2 f7 E ?9 c0 d
" E# m9 b" }- ~+ m0 u D8 k2 ]9 [6 ~$ J
7 I5 G/ l# K3 I) o2 r& a
) V: A. V$ [- m+ v) R( e
! }4 l1 r2 c8 Y$ y$ ?' }8 R: F; O
0 B) ~9 }. Z, F' m& A6 ]4 v 日常研究环境
; l* D- C( ~3 S6 S 2 E3 ^4 x$ T- j3 T8 i% j; |' p
( c7 A" g8 R: H . z: H5 n5 B9 |: B$ e8 L9 l
% L& w6 N; @& k. M! N7 X8 s& i
4 ~$ S K6 x; |, c/ S8 p) [% B 市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。 ( u: F( w/ K- i
- c! E! q3 N2 y% d" t
/ h% Q% [8 ~4 {+ z' [5 K! |5 p 3 t' L4 k0 W! N
9 O Y1 A p. \$ @7 R- b4 G; j
- s& ?* H& t( f
& S: `/ v! o0 t' z4 ^( F
4 M9 s( G) F, \) a2 t0 R f& R0 d + z( I- Q; `7 `+ ~7 R
* g+ H2 f" u9 G+ [8 Q+ u$ V6 K4 G
$ j; p2 N0 r! C- R( G5 o
$ Q# `0 V7 b* k: ^ 发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。
/ d% H* Z J( \7 W/ p
9 d+ w$ x+ ^: O
5 |1 e# `2 v* {* y- U
( h* S3 U5 E, f6 ?
, m |* _: e1 ^9 v5 ^1 M, G
1 b" U3 {6 O! H* d$ R
7 j1 H& N5 S) m8 G! l9 ?2 \, B
, Z R$ g) w! y
( g$ |+ { Q) b" F: l
9 r: O/ u% U. ~$ a# L }4 t
2 J: d, q. _& Y, u6 r$ Z' `
% `7 p, ]* w/ C3 I: H $ H5 ^' f% f5 ?9 p$ v
+ d5 s. b9 A, ^2 q4 B
2 p$ Q& P. m+ s" g* }
9 @& B b% Z; h G/ k' O9 q9 M& X# } G
7 ]$ a! \9 U7 h8 x/ E1 {" n 6 N! f; O* D$ h: o2 x% Q: V: D( T9 |
% X# G" x, t2 ~6 w* s
. x$ u r B6 l/ I+ ~) A- B- P7 S 9 B. r5 a5 c6 O
破解加密硬盘
; c" _1 i7 B! A7 [" a" J8 z: G; Y
D- ^" T/ R! Y7 n, x: A) g9 q
% f4 ^4 l6 P" Y6 |; \. @
O5 F! s, j! g7 w
: A$ ^' v9 ]+ O$ n, A7 S 2 z* p' h" Y* k% o( w
9 g: M6 |3 W& m- \9 w
4 t h% [' j* q1 z/ P7 f+ x " j( x3 `8 B7 X K
, ^7 S* x( A2 f" Q$ ~) `8 c
& \$ F& @( o% U3 L+ k
8 ^6 e7 v' C- {+ ]2 G8 c% d6 M% j
' s k) b/ _/ o/ }9 I
1 n& T5 x& {6 A* T* E. J2 x
2 ~7 i! o$ N5 L3 \, V5 T( ~+ k
{% ^+ z3 }7 |7 D9 U( H& | [% _3 t
( Z9 t3 U7 \9 R/ }
. @( ^2 j4 r# [4 R7 j/ p
1 M$ H2 J& h+ s& U& }- e% n $ e" m- ~6 J( v" X) |; @$ @
; ?) d/ d+ l2 E( x
' \- ] A2 A* G8 ^
7 E8 @9 f, }) c9 i0 _0 p2 B
- V6 l1 y4 y3 t% E $ }' j) j5 F( b' H: t a G
8 W1 L8 m& F5 Q! R 延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。
' i, s C4 o% l7 O" ?/ d- d
7 K; q2 Z& m$ ?6 S
: V* e- u; {! H& e& R
9 c% g5 E) h* c- V# R }
3 S: K8 Z! \5 Z/ k; u5 R* m. d* x
" o3 I+ i5 [* e0 E2 a9 o
& v, V7 l. P+ a, m
/ i( o! q$ p# {2 w! I& b
8 ] I& }& V Z5 o
( q* F1 R: t9 S5 n9 I
8 |7 G% Z% Q( Z* y, X: s4 _
. j) W, u0 ^2 x: Y5 a 在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。 & t' }8 V M5 L0 m$ a
: Y9 h! q( ?' v1 C/ i$ v6 D& }
6 @+ o5 [1 E8 J3 Q; h0 R * B* v, Y9 c A8 H" s5 ~; O
e7 N* J* d5 T! @/ [) E, H 0 k! b' e5 l. K! i- f1 _9 D
+ f6 W/ [. B% ^1 H# e
: D \8 j- D: E* y 2 Q/ Z2 i! |& |3 z
- @( r3 _3 Y# @# T# I: M. S' d
$ ?( @, _# A2 j3 ^% _
$ `+ \9 X7 N% M) M
在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。
" M5 V* C+ O* a; e
7 F Q1 Z9 a! V, Z. ?
! q' Z' F9 L& z$ q 7 z4 A% [% W8 G* F
0 G: k5 [" D, ? Your browser does not support the video tag % n& B+ J1 Y7 N7 Z' I+ C* Q' h
' E+ ^; K! e+ V) b Y3 t* j
8 o9 e8 a( |; ?% n- r. b8 O& m
1 t! q$ J* I' E7 k