7 g) x+ v& l3 v! Z9 `6 y5 z7 B/ M
7 ?* Z2 G: H/ e% R2 Y ' h/ ], {( A" \% h0 p: e* @* O
% g3 O T# w. L/ N# n, i
8 ?% K- ~; ]1 \: n! [
$ l2 n |' Y9 B' D5 ^% G" A
% _. r, h) [$ y' I" Y! c! i3 p1 f. c
! N( F2 X$ V4 L1 L- r( t. w ' i1 J& L) [" _+ d% g
1 [$ G9 |: w# V; W' A, y5 D$ b
2 o1 m+ f% T/ k) d; C: ` 3 F% D3 Z9 q- r
在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗?+ c) ?. |3 X7 d, ^2 O$ ~2 G
/ r5 l: F# P: J& G
3 I+ \* {7 \) |3 t* d' M } 0 f0 D# }8 x- d; o( V8 M
2 p0 U: ~1 P/ m9 D1 { k3 w
$ N( M* ^1 q, @# s0 [! ?# z& ] 《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。
, ]8 b ^: w) m1 S# J ' X, {4 ]: R9 i1 E( h( r
c C+ E* ?5 G- Z* T( t
2 @) J, z- E; }
$ J | R9 j9 }) ~ 6 n5 D5 m. g! ]' I. o# L1 z2 j
在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。
8 u# [/ z3 {; }! P0 E3 x# d6 ?
' @/ @/ z; Q$ F$ Z 8 {# Y) y# A; K) \. p; W7 h
8 X5 i+ U4 }- {) I* C/ v6 ^
0 ?. L& Y. k% w; I3 |
9 u( O( D/ F1 z5 m *文末附《破防了》项目技术分享视频6 H& T7 _5 Y4 P. v0 ~
" Z+ l: ~5 L( Y1 p- [5 t U4 i
; i1 g; ], Q" a q! y' z
. |3 C2 v8 p& V( p7 e 5 P v* A/ l- A. k5 h' w
1 ?. @) ^3 n5 M, l7 S0 K1 h
% s0 K1 V8 z! y' A; _0 K
- f0 c' {' ~9 v4 r5 {
0 p1 P& i4 u7 v8 J
% E! Z0 t1 O5 @; G2 b 6 [: t3 W6 w) h" J6 {- \% K
7 B7 ~4 J' @7 Y: D. a9 J2 [) `3 k
% L% B- ^' B. A
; l' G2 B7 r; Y' ?. I; r/ { ! B/ I. s- R, t- v. J9 K% Y8 B
* f- |" ~5 } Y& W 3 [0 K( F* h2 [+ ]7 S# X
) q: |, k4 \9 r% p! S: H
0 R1 K- u h1 f$ I # I, y$ {4 k' O. B
. b$ j N, r* L3 k! A
日拱一卒 功不唐捐
" {+ p* K8 r# |: D% {, ?6 C" \ $ @' J H. H l
& C/ ^/ F, U* Z1 R. V& d9 L) E 1 n U2 m" i! E/ z7 V6 e" r
+ K7 j1 i0 j2 P" g; X0 b
8 L. [: f) |. H4 k0 T( ~( w M
9 c9 X! P1 L3 V d8 V 7 C( w/ H1 I& G3 h, v
) I% G5 R& x- N( R* N; G/ G/ C7 b6 x% n
3 R: y3 A$ @% _- Z% Q4 d
9 N. U( e2 p1 N' V 3 a: J; S% j4 G0 B( A
( J) u, ~6 C/ ^5 d+ N6 t& [1 Q
a4 X k) E) W3 F: g8 N, d6 Y$ z) ^
4 _3 ~: A, @+ S+ V: R! n
8 i$ `8 J# Z* O. N3 _# e! @
6 B; m3 P: _, y * Q6 y Z$ L1 {, a+ Q
" t2 }2 U5 s& s: W2 |: x- z
) w! ^! r3 O ]' V8 y' J
+ C, h2 J o7 G# M n5 e: s) C) a+ U& s8 H$ M
7 N* h+ G2 z I5 K& m2 R
因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。
/ C' V6 @' x8 i+ z' j
; N* f! |; D" ^4 c
0 t$ H+ O# \8 ^% s# a7 F: B
/ w u0 i& Z. t6 { l( `5 { ( M$ L/ g3 k; {4 r: c% w
' Q8 W6 Q4 |8 P- a& l+ x
+ p8 o& I5 \1 _3 B$ t
) v# {/ s- x l/ ]) c3 e) y g2 G- a8 x & z; @: j- }8 D
日常研究环境
' d0 Y0 Z" t' t5 O 6 o) {" i4 u( D0 X. l8 g
1 I# N/ I! \5 X
; z3 P8 w8 G5 [( u$ {, _1 m! G4 U
1 T, e7 o+ M# q7 n9 Y' l3 P
, a2 b _+ l9 u: ]. ~1 f; f8 F! B 市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。
4 D/ a1 C: I1 P' W
7 M4 j# @5 ]4 S / q0 E. ^- |0 ^
+ U+ p; G; s! a0 e3 K7 V9 G9 E
0 {# P1 `8 g0 {7 W& V+ `1 r* p
& @) C& B$ b# U: w9 h& X4 l
* A; m: P" B; g0 D0 J
" Y8 z; v9 s1 F( M) r
- Y/ Q: W* O# D/ f
. q' y% k/ X/ g& u* j) r+ L , O: a- ~# [2 E, l% p/ e' Z, i( n
7 \% @* \0 ?3 [8 m6 {
发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。 / B3 H: y {- T2 b! B, m' A6 o
6 D+ y$ ?; F, e# k, C , u0 y v/ t0 p' X
2 z( T, R0 p6 P7 y; w$ T# L $ U5 ?* _9 W; H# J5 {
. ^$ y* T* J9 u/ m: S/ U
2 C8 D/ l+ p2 e. u$ S
6 F$ v5 B0 l' n$ m9 r& g; J) d3 F4 }
( N) H. t! f% K8 `/ _( A) ?, x) ~, s
. R- F; u4 i1 Q1 X3 i! s , Z7 V! V) A! C. O$ m+ l
1 l, l) u, g/ ^5 R# J( u6 i 6 G: H. ?, _! [
3 ?# ]0 N* D! b. ~( N( R. d
, g: H' m; K- h. F+ {/ x/ E: ]
! m8 O2 w1 n3 M! l O" B1 a/ Q
- W' A. i, F0 a' E/ ^7 K* P0 ^ . ]; c* Q& D# }$ |
. B1 s# p8 c9 N- g3 N, Z/ D/ \7 I
3 g) t. A# {# ~! z1 d3 p( W * U/ a5 m6 w1 A/ y3 Y8 X/ p
破解加密硬盘* J2 g$ f4 l* L
% X% A% \0 \/ k& {* E ?
- g! u9 \: X# B) F
! ]6 j& b/ H* H9 h4 M
% V2 `$ Y5 v6 {8 @3 v5 d. c$ T ' K) ~3 R* m$ ~
2 `' h& b8 w+ y+ L) B4 D
$ O/ K& e! ^% O* `. t+ @
* H9 J* D1 S1 s c6 P8 o . l( k$ ]6 @2 h) F
4 g: I1 L; X, m4 i$ w 7 E% n. _! ~3 a; Y" m
$ @1 B. h* Y. K$ M* P, J0 l, K
( |7 s* |7 M* h, L
" Y; S9 c7 Q( n. c8 w7 M' g, [ 1 z7 s" u, O+ N" [4 j- g
9 N8 H; v0 M' { 4 T! u; D" |3 J, c( d
8 R/ Z" t% c) O% D% H2 g9 [
6 j1 z% ?( H& K O% O2 _
3 A1 }" ` m0 A0 d4 K& W
( O" L. H" I: N d$ ?4 z # S" T) u; r9 T3 F( a! ^
5 K8 s q4 ]0 T- W% S8 j
! T/ d+ F5 B8 P0 S% H% @) d4 z" I b$ s3 _" x" j7 w3 v
延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。
! {6 E. ]& a2 l, X* m1 H; j/ g
. B( y6 Z9 m* k$ ^ ' q8 _2 r' T- m8 P E5 V8 J( |% J+ O9 L
% `% Q. |2 ]/ ]
8 p* j2 ~/ v: D2 z- [7 R6 g; K
" n+ M, G3 \! b0 O, ^( U6 @* W, J) k( g
2 Q/ P0 z: p3 n3 X/ n3 c
& v! B8 g, I- A/ e1 L8 V, v4 C , n8 N6 t9 p& [$ K7 w( \; T
1 b7 i- B1 f. A5 {" [+ Z& z
_; _1 z6 u9 f" i3 B H+ i, ~
& W8 e! N0 ~1 q9 ]; P& { 在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。8 {. h8 A) `9 r& o
. g& H0 V. \3 z, m9 n' h
) Q& `* m) @. B V" f4 V % V% i8 v, Z& `, U. D% @# u4 t+ w/ K# D
/ H0 j# h' y/ m/ P, J! b ' D9 {+ B1 m% v/ K
; h9 A+ _" | |* l. f
+ l7 d$ a2 }- r 7 j4 m5 g' U$ u9 P: y6 m4 |
' @. @! w) O6 H9 u( M # N% V- E8 H; U
! T( O5 Z) D0 N! F- @8 a5 u 在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。3 g: n- O. x% {9 \9 r. s, Z/ e
$ U* M9 u( O- w% i5 `' A
5 M" x: e5 a7 e" V) X
" ~0 C0 @( N6 ~
5 r- O! B/ B1 B0 ^ 0 v6 g: G5 v: M: K' g. S Q
6 S# U3 \& ^0 h l) z- o* [5 C' U2 d
2 H. O- z. [" |% z8 z
5 D# f: K, A$ N |