去年圣诞节,内森·赛德的妻子给了他一个从Graigslist上淘来的二手保险箱。乍一看,好像是个奇怪的礼物。这对夫妻已经有了同型号的SentrySafe防火保险箱,从家得宝花120美元买的。但这个,有点特别:其原主人把它给锁了起来,并且忘掉了密码。好吧,摆在赛德面前的挑战就是:打开它。
赛德并非保险箱破解者,但作为科罗拉多州DIY和开源硬件供应商SparkFun创始人,他是一名经验丰富的自制设备、工具和机器人玩家。于是,在接下来的4个月里,他与公司的同事一起,开始了打造机器人自动破解保险箱的工程。结果就是:一台用现有设备和3D打印组件创建的全自动化设备,能在无人工干预情况下,最长73分钟,平均36分钟,破开SentrySafe保险箱。事实上,在发给《连线》的演示视频中,这一过程甚至只耗时15分钟。
在打造该保险箱破解机器人的过程中(该过程将在下周举行的Defcon网络安全大会上演示),赛德发现了该便宜又好用的SentrySafe保险箱的一系列漏洞。但其中的经验教训,远不止该特定保险箱型号中的安全漏洞。他的工作,是为物理安全设备厂商指出了新的残酷现实:如果自动化工具可破解锁头或保险箱,那么这些工具价格越低廉,使用越普及,人们承受的风险越大。赛德说:“会有一大批像我一样的极客不断探索尝试此类事情。此类工具集必然会越来越便宜,就会有更多的电脑迷用于尝试解决他们的困惑。”
自产保险箱破解器
为打造该保险箱破解机器人,赛德及其SparkFun同伙罗博·雷诺兹和乔尔·巴特雷特,使用了价值大约200美元的零部件。包括:一块价值20美元的Arduino开发板,一台40美元的电机,一个铝制框架,3D打印的保险箱表盘连接器等组件,几块固定连接器到保险箱表面的磁铁,还有感知该机器人是否成功归位表盘拨动保险箱把手的几个传感器。
基本认知中,造出来的保险箱破解机器人也就是“暴力破解”SentrySafe而已——尝试每个可能的密码组合。就像高中学校的转字密码锁一样,该保险箱也有3个内置转子,每一个都必须转到特定位置——通过拨3位数字组合,才可以打开保险箱。鉴于每个转子都有100个可能的位置——对应保险箱可拨数字数量,全部尝试一遍这100万个可能的组合(100 x 100 x 100) ,即便每次尝试仅耗时10秒,也要将近4个月才可以破出正确的密码。
于是,赛德开始寻找捷径。首先,他发现,就像很多保险箱一样,他的SentrySafe也有一定的容错度。如果转子需要的数字是12,那么11或13也是可以接受的。该便利措施意味着,他的破解机器人可以一次尝试3个数字,立马将总尝试时间降低到了4天多点。而且,赛德还意识到,机器人不需要将表盘复位就可以再次尝试。通过以特定顺序尝试,它可以固定3个转子中的2个,而在最后一个转子上试新数字,将尝试新数字组合的时间大幅缩短到至多4秒一次。这就将最长暴力破解时间缩短到了40个小时,平均1天之内能搞定。
但是,赛德还发现了一个更加聪明的办法,利用了该保险箱试图抵御传统保险箱破解者的一个设计怪癖。由于转对数字时保险箱的连动杆会滑到转子的狭槽中,人类保险箱破解者就可以在保险箱把手上稍加压力,转动表盘,听取或感受连动杆划入狭槽的那一刻。为抵御该技术,赛德测试的SentrySafe保险箱的第三个转子缩进排列了12个缺口,让边对把手加压边转表盘的人听不出来正确的数字。
赛德把他家用了好几年的那个保险箱给拆了,仔细测量了那12个缺口。让他惊讶的是,含有正确数字组合所落狭槽的那个缺口,比其他11个要窄百分之一英寸。那是人类感觉不出的差异,但他的机器人可以很容易地在几秒之内,就用一系列自动测量步骤检测出来。该发现颠覆了转子组合的整个价值,将可能解决方案数量缩减到之前的1/33,让总体破解时间骤减至现在的最多73分钟。
安全赌注
在发给《连线》的声明中,SentrySafe并未否认其保险箱存在漏洞。但该公司辩称,其产品依然能挡住非极客攻击者的破解。声明中写道:“该案例中,需要花费极大的工夫,要有不受干扰的可控环境,有正确的工具和大量技术知识,才能最终破开保险箱。这种环境下,该产品达到了设计要求,但实际上普通人即便不是不可能,也非常难以现场复制该成功。”
赛德对此回应:没错,任何人都能复制他的机器人——这正是用便宜的开源部件打造该机器人的意义所在。但演示该保险箱破解机器人,并展示其建造步骤的目的,并非是要帮助劫匪。相反,他认为这极大程度上只是无害的DIY娱乐,是对廉价保险箱安全有限性的一个警示。而在更广泛的层次上,这呈现了在廉价机器人时代,物理安全的不断改变。
其他人能重现吗?当然!这正是意义所在。但实际上,除了造一个这样的机器人,还有很多更便宜更好的保险箱破解方式。比如说,不那么精致的用撬棍或大锤的方法。 |
Defcon的演示中,赛德计划现场破解一个更新更大的,价值160美元的SentrySafe保险箱。赛德称,他在拉斯维加斯找不到更小的SentrySafe了。该更大些的型号,需要密码组合及一把钥匙才能开启。但出乎意料的是,赛德发现他用很老套的办法就能搞定该钥匙安全措施:把比克笔的塑料笔身捅进圆圆的钥匙洞再转几下就行了。“轻而易举。他们添加的,是完全没用的安全层。”
不过,赛德也承认,他们测试过的2种SentrySafe型号,都不是真正意义上的高安全保险箱。其他更昂贵的品牌,可能就不会在第三转子上留有缩进泄密漏洞了——虽然赛德称其机器人破解的其他元素,依然能大幅减少暴力破解密码组合的时间。至于其他高端保险箱,赛德欢迎其他DIY爱好者利用他的工作成果填补他留下的空白。
我不知道有没有人想复制我的机器人,但我觉得会有人借用其中几个部分,打开其他型号的保险箱。这会让我感觉很不错的。 |