在中世纪的绘画作品中,偶尔会出现一种盛放金银珠宝的木制橱柜,这被认为是现代保险柜的雏形。整个十九世纪,欧洲与美国一直致力于保险柜的研发以及防火性、安全性(保险柜用锁具)的提升。到二十世纪六七十年代,电子密码锁开始广泛应用于不同类型的保险柜。随着科技的发展,如今不少保险柜也与时俱进,接入了互联网,以期实现远程控制、联网报警等功能,让保险柜更“保险”。但这意味着100%的安全吗?
+ W: O! p9 i) q! ?( _/ D
《我是极客》第一集第一组挑战项目的选手,在舞台上给出了答案:利用部分联网的保险箱存在的安全问题,不用破解密码,几分钟就能打开这些保险箱。现场的挑战一度让嘉宾惊呼“鸡皮疙瘩都起来了。”此外,他们还现场拆解智能硬盘并破解、获取了其中的加密信息。挑战突破物理、数字的双重防御。
+ K* c; m1 q$ l
3 g$ T# s m% ]- W7 S2 _
在“1024极棒之夜现场”,这个项目的选手分享了研究过程中的一些心得与经验。本文为现场实录(摘要),供读者参考。
*文末附《破防了》项目技术分享视频
. J! F- h$ {, Z1 \4 j% N+ b$ Z7 M( u' I8 S6 T5 P
. ]$ Z! x' q: Q; G
5 F; q0 E# y, P! u) \! z
% P5 }9 H) D" P" h' P4 T7 \6 j. ^
4 N+ ~( q4 o$ p$ J 日拱一卒 功不唐捐
因为团队专注于芯片底层安全研究,在研究 ESP8266 芯片时,发现其广泛使用的一个 SDK 通信协议的 AES256 加密算法存在漏洞。因此灵光一现,想到利用这个漏洞无损破解应用这款芯片方案的智能保险柜。
/ d7 V! c- Z& v, \: t' _ Q
0 ~2 _, w; |/ n/ V3 U/ @% o/ t
市面上有很多销量比较高且应用这款芯片方案的智能保险柜。当合理的开锁请求发到与保险柜连接的手机上后,就可以远程打开保险柜。比赛中挑战的保险柜号称采用的是银行密钥管理系统,在行业内具有一定的代表性。0 y4 P" B5 V j% \7 x- m7 ]2 {9 d
: J; \8 Q; y- e2 m% Q/ K
8 k( r8 ?' D$ @% o+ E5 z
0 S" A- `/ f+ Q. \
7 ~" _& }$ ^( |7 x# a
发现SDK加密协议漏洞之后,我们又分析了智能保险柜的通信协议,然后劫持保险柜的网络,伪造了一个服务器。当保险柜发开锁的请求给服务器的时候,我们可以把请求给拦截下来,然后伪造一个开门的数据下发给保险柜,然后就可以成功开门。
% s: }7 t, W# |5 M& w
Q6 @& J; a: l
破解加密硬盘
0 L+ H( Y* F% f' u# n# ^; \& K$ w: i1 Z5 b l: U4 y1 N" A
2 D1 K5 @2 |4 x0 P, F 延续破解保险柜的思路,我们还研究破解了大量智能硬盘。这次的挑战目标也是一款较有代表性的产品——利用生物独特性,打造支付级高精密指纹识别技术的智能加密硬盘。保险柜如果算作物理防御,硬盘就是数字防御。, M: E& {6 ]0 Z- |& i
! \4 @! f- w5 |( J% v/ ~! q' M9 n$ k* I! m
3 t( B+ j9 N- h* a# ]6 J+ G% ]
r6 j) P" t" G9 m* j' o
. l8 Z0 }5 z" H, I 在实际操作中,先把硬盘主控的固件提取出来,去分析它的解密算法。然后用侧信道把指纹模块上面的固件也提取出来,分析协议就可以得到指纹模块的ID。因为这类硬盘的验证先会请求指纹的ID,如果ID不匹配,就不会正常启动硬盘。所以要先把硬盘拆开拿到ID,然后伪造这个ID发给硬盘。待硬盘验证这个ID为正确之后,就会建立连接。下一步就是伪造指纹的数据发给硬盘,让硬盘的主控校验这个数据。如果验证认为指纹数据正确,电脑上就会出现一个盘符,里面就是加密后的数据了。
A8 ?$ U# H+ f, P9 h( w; S; _* c$ V
: n, d6 d8 p5 @; }+ ?
8 \7 r [7 o2 {' f) J
在极棒之夜上,除了分享项目技术细节并再次展示破解保险柜的过程。这个史上队名最长的团队还分享了一枚彩蛋,与这两天不退押金反而套路用户的ofo有关。具体是什么,直接戳视频观看。" j3 [# y e5 M7 i5 |
u- {8 l) R4 k1 s V" b( L. R% ^; o
7 o- G2 G8 i' f: S: Z4 ~. z
( }3 e3 p3 L: O& K
! M1 e5 I" e) r/ n# _








| 欢迎光临 中华锁艺人 (https://suoyiren.com/) | Powered by Discuz! X3.5 |