# j# ?) g; R* C+ `
9 G$ P2 M" ?0 W; v) U + @- Z3 _, {3 L7 o; h! A* e/ o
! g5 U6 v' U" o6 _( v! U1 m' }
9 c" m" F* h: R1 N* @
6 ]: o+ l" v7 n 1 q$ S% f, a1 T* p9 u7 A0 ]* n+ X1 m
+ _3 T) Z+ T7 O & `5 |4 l. M/ O4 r
) f6 Q" x9 k4 y3 v4 q8 q7 r" f
7 F# U o, q7 H7 N- i; v/ b 3 R$ g6 F$ J; E% G! d
在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗?
{( k1 B+ H( i ~* a: D
E1 Z) W4 N) E$ w
5 y: S9 N; ?" _ 1 ?7 @% U' W4 \, A
; D/ T) D! O! a0 C: I, @
+ \5 m0 A2 F- D! B7 f
《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。
' m: ^; {3 I6 j$ K$ Y
! y; _8 d1 p7 N6 z 0 h! C0 x$ {; ^: G" V ]- @
B" C s( ~4 ^
! S( \4 Z, V7 t; R
# `* T* v$ Q1 Y! v; l; J' {
在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。0 F4 s% d7 K' H7 J
& c: S1 N: {, g5 n% J
; Z, o8 T ]8 _# K p
8 ~. \! U' ], Z+ H! R2 l+ Z1 B. X
, E5 l& |6 m/ p$ v* z
! e2 v0 R8 i/ b# j5 F1 y# w) \ *文末附《破防了》项目技术分享视频; @6 s# ]1 r1 {3 i; M- {4 A, N7 j- H
: d3 p" O' Y' c ^& C
$ V; [& M2 i: {1 i5 `+ Y/ L9 b 7 k( ?% b9 \/ A- ^& A
M! q+ E3 w @
: b3 q2 f5 O+ h5 c6 G
% \- _6 K& p4 ?
3 z( e4 K7 t, E8 x4 w* n
. I# C5 v! n3 S, C+ p
8 {3 Z' m6 l2 A. z
. o& ^" C. x; e
4 }- Y- r+ z1 l) z' t . H6 a+ Q/ m( N
9 a+ A) T" h, D8 X) u8 V
) k. H! C; D; @8 t+ t
( `& U. P$ f- `. e ' d/ s( D% x8 P' `7 ~
2 J$ H; o# c' t- j9 z5 b/ N, D
, Q8 B( _- j9 n0 v, A
9 m3 b" Z2 ~: J
4 W5 l4 j9 n. j7 U1 _& f1 M 日拱一卒 功不唐捐: W$ i! W$ m. r" t
! m9 l, D. H. ^0 z9 Z) o7 N4 K ) V! q/ w( H6 \7 M! |
' ^4 M0 l `% E & d( K+ ]3 `" O$ C$ A! s
6 g9 F, G4 ^ ` # S' c: d' l: I, x0 r
2 U; K8 @6 a: ~$ D" ]- Q
7 Q/ D" L) u9 x* n / _3 g1 V0 b$ O! @) L
( l# D. [) q- I) a( s
& ~ [% s8 Z: R6 i
0 p. S9 J3 e2 I) `
4 Y3 Y& q* m3 O) f5 v% P 0 B, Z2 }" W# C$ h7 V8 l# z
8 _' j" @( B# M2 E0 T# Y0 Y
4 V# \8 }; \+ B" H" m! }+ g1 P' t
/ C8 l# U4 @$ h5 w1 I6 d 7 R% n4 u8 O" z& R. L. e, W5 h! B
1 M) E! O# r6 X 2 f( R, ^) v7 v* H
& R7 g" l3 ^. \, _" A
+ t/ |3 j: c, V# Y; b* ^% R: u; H 因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。: M( U) S& d! f& R r8 q% F% X* l4 H
1 a1 R7 h2 v4 E$ B+ A
; X1 T1 k- [" f% ?/ W# o8 E 6 W0 v9 R# F0 K# |0 y( Z- d, j
* G+ L: `$ e: d& _4 j
/ E& a# l% H8 B8 }+ n0 _
! }8 G- Z2 a$ d; w5 ]: L
5 K( }' A% C2 s' T1 _( G, {0 U
1 b n5 B' s+ M7 p! F7 p2 c+ u 日常研究环境
5 v! s7 M0 p- `' t & d$ [. n& d1 O( E; R' y8 {
* M0 W7 F" |% o( g" e, G
+ T7 J0 }4 X2 U+ G ' V$ v7 M& U* R2 D6 S" k- R; m
7 M( d8 I& H6 @' F# @4 ^( Q" i 市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。
) N/ L$ ~6 }% w- }" J0 \7 a# T9 |
8 u$ L6 h+ U- H, O , V) c4 C- J- B; h" [1 Q
- [$ f) l; m; z- L3 o; i) v' J
# g: V, f' d; z% t5 B- d5 c
8 r9 ~2 {: u( h6 z8 M
$ f3 ^. O! e7 L0 q
c3 \8 D; f: i3 b
2 @) W- F, r5 E1 X0 j* P& ^ / h, z' K3 l- ?, s. F
+ L- I% G: y& O7 J0 H' O2 `
# v4 R w9 m8 f, V3 N- `
发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。
4 I" P, v, U$ M6 a6 i( r* { ) `7 e; y( R' u
3 n7 }1 S$ V+ C; n0 W) E& _" i- [
) {# e0 v9 B8 E0 f _$ C0 t 6 N% X8 x( y0 O1 S: s. ?: C
2 }4 X5 r& @: G8 j
: E `$ J5 T, n; f t
E. t2 F0 Q) q% @$ V3 O" }* P
$ W" {8 A+ e! T9 i z 6 C% |" N/ J' o$ F% u, n2 u. @$ m! K( P
0 \: {( }8 e, G' ~
- g# w& A( W% j; D% S- `- j3 H
/ u* Y1 y6 d; q/ N) M: |) k. H ; R$ N( z7 r( J- l3 [) o9 g
, ]1 x0 z9 C3 L( \4 t& ^ ( o/ R: B7 b; T2 W
! ]4 c) ]6 p& G$ { L2 S/ _0 v
. r* n. P; |# d& ? 6 K: c/ z" D4 z6 a- b6 K
- G4 Y0 \. d P1 r+ O
( q/ M4 e" k! T
破解加密硬盘, ^ a0 H5 m& m, W. E
+ B1 w2 ? _% p* I' a$ { 0 i; g* J, |5 E; P+ L; e4 t
7 ^* E7 l1 l6 M# x% d0 @
) M: ?) R; Z5 \( N: B m
; E$ f* e: }" M( w1 i9 e& _
$ \5 I. j3 S, n# I ' q6 Z+ Q7 `" @& j I. v6 }
) K5 M( _0 j" i: U3 _' J
4 v; p: O: }% I0 D/ V8 U H, b/ y + ]) ~' n! n0 F6 N6 E( A
6 T9 E% E' L# ]# J
0 B* `/ s# M0 x* k- }! I+ J
s! K6 ^- O" C3 |4 \0 O% n6 {
9 z, ~2 w3 M v! p9 D+ R9 Q
! D. d) Z6 s, C' ]
- F. e8 b* g/ h- W ' M% ~2 m8 L7 ~6 S7 M5 U
2 ~# n$ G! j6 y % Y& I- X/ F" s# |! n& u" Q7 q0 G& }
+ u7 H% u- I4 y* O0 C7 V( i
2 \' T/ O/ V3 }. }, e% T% Y
% y6 [! r9 \2 p
" `& |& S6 k4 S: F% z$ g7 k # \. @( s, k0 [# |" z
7 Q5 Y8 m X8 r6 [+ O- ]1 ? 延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。 ?( {8 y! e' p
, T6 x$ k2 x) ]6 I; E, F* X1 ~
: f/ O; f" Z/ o" p4 I+ F7 B 9 S) p. V: w* M$ T3 W! A/ }4 {
) O: a; \3 e0 y8 Z6 l/ u, { , h7 B8 V. p, z G, i
5 d* }6 D/ [2 K( d% I
* z8 E. B% @9 f- q8 H9 ~5 V" k% n
5 c! t/ z) q- L, @3 z/ R. z
0 L& L7 E& S5 p$ g3 f3 i7 E
) T1 l3 i5 {1 l) G# D
# \ Y- g; _3 S; E# O 在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。4 `$ I; U _$ @4 K0 O
8 ~: I ?2 E5 _4 b; m M' W
4 f: o/ D: Y0 C% y$ g7 u5 g$ [( J + y/ s4 b7 D9 }: [9 P8 u6 h+ _$ q
( m: \% T# z& x7 L
1 Y1 X) Y( m* h5 k7 `
8 t6 Y- P+ N5 y. a
2 t% Q7 n% q P+ c% o& z
+ m+ Y2 J* M- y: e& c5 T- Z
- h$ L2 }% f8 \4 n C \ : r; n6 {4 a6 o3 w+ b" I$ p
( C8 U, W6 i; F; q, L( x
在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。7 @8 p6 F$ t0 H( ]
& A- p2 W, O$ T
) P, F2 X/ {9 v$ L6 o5 u
8 ~3 r% K! N% Z v! b3 S
( E |& B! X% w! o8 i . Y; S0 Z8 ^3 k, Y) _
- T$ v( E3 x$ N3 p
9 a, Y7 _) k7 Z- X7 ]% k- ~8 f
4 A& w- R6 ^( W5 X) y( a$ a
|