本文讲的是 我是如何使用自制机器人在15分钟内破解保险箱密码的?

亮相Def Con大会

热辣的7月,安全圈有两场最为火爆的顶级信息会议在美国拉斯维加斯拉开帷幕,它们分别是美国黑帽大会BlackHat(23日—28日)以及世界黑客大会DEFCON(28日—31日)。在 Def Con 安全会议上,一群来自SparkFun Electronics 团队的黑客,利用廉价的自制机器人在大约半小时内破解了SentrySafe 的保险箱密码。

机器人能够将可能的保险箱密码组合数从100万减少到1000个,然后自动快速尝试直至破解。最终在机器人发现密码组合为51.36.93之后,保险箱随即成功开启,现场数百名黑客大会的观众对此致以热烈的欢呼声和掌声。

对于演示效果,SparkFun的Nathan Siedle表示,

这是我们做过的最紧张的事情之一,因为很多过程都可能会出错,但是现场的演示结果很成功,观众的热烈反响真的让我们感觉很开心。

当然,任何成功都不可能一蹴而就,这场“紧张刺激”的演示背后又包含研究人员哪些辛勤的努力呢?

故事是这样的!

去年圣诞节,Nathan Seidle的妻子送了他一个从Graigslist上淘来的二手保险箱。乍一看,这是一个奇怪的礼物。因为这对夫妻已经有了一个相同型号的SentrySafe防火保险箱,那是他们从Home Depot上花了120美元买的。但是,对于这个看似多余的礼物,他的妻子解释道,它有点特别:它原来的主人把它锁住了,而且忘了密码。所以她想买来让Seidle挑战:打开它。

Seidle并非保险箱破解者,但作为科罗拉多州DIY和开源硬件供应商SparkFun创始人,他是一位经验丰富的自制设备、工具和机器人的玩家。所以,在接下来的4个月里,他和SparkFun公司的同事一起着手打造一款能够自动破解保险箱的机器人。结果就是:一台用现有设备和3D打印组件创建的全自动化设备,能在无人工干预情况下,用最多73分钟,平均36分钟的速度破解这款SentrySafe保险箱。事实上,在发给WIRED的演示视频中,这一过程甚至只花了15分钟。

在针对SentrySafe保险箱的破解过程中,Seidle发现了这款便宜又好用的SentrySafe保险箱实际上存在一系列漏洞,会造成远超出他所预料的安全隐患。这一现象为物理安全设备提供商指出了一个新的现实:如果自动化工具可以破解锁头或保险箱,那么这些工具的可用率越高,设备安全就会变得越脆弱。Seidle说:

会有很多像我一样喜欢探索的极客会尝试做此类事情。工具集必然会越来越便宜,所以就会有更多的电脑迷勇于尝试解决他们的困惑。

自制的保险箱破解器 

为了打造能够破解该保险箱的机器人,Seidle和他在SparkFun的同伙Rob Reynolds和Joel Bartlett使用了价值约200美元的零部件。其中包括一个20美元的Arduino开发板、一台40美元的电机、一个铝框架、3D打印组件(包括一个连接到保险箱表盘的耦合器,一些固定连接器到保险箱表面的磁铁,以及可以感知该机器人是否成功归位表盘拨动保险箱手柄的几个传感器)等。

其实,最基本的设计理念就是打造出保险箱破解机器人,然后通过“暴力破解”的方式来尝试所有可能的密码组合。就像高中学校的转字密码锁一样,该保险箱也有3个内置转子,每个转子都必须转到特定位置——通过拨动一系列3位数字组合来尝试打开该保险箱。由于这些转子每一个都有100个可能的位置,来对应保险箱可拨数字数量,因此,全部尝试一遍这100万个可能的组合(100 x 100 x 100) ,就算每次尝试花费约10秒的时间,也要近4个月才能破解出正确的密码。

所以,Seidle开始寻找捷径。首先,他发现,像很多保险箱一样,他的SentrySafe也有一定的容错度。例如,如果密码组合是12的话,那么11或13也是可以接受的。这个简单的便利措施意味着他的机器人可以尝试其中1/3的数字,而不用每个数字都去尝试,这样一来,立即将总尝试时间缩短到了4天以上。

Seidle还意识到,机器人实际上并不需要将表盘恢复到原来的位置就可以再次尝试其他组合。通过尝试一些特定的顺序,它可以固定3个转子中的2个,而在最后一个转子上尝试新的数字,这样可以将尝试新数字组合的时间大幅缩短到最多4秒钟。这就将最长暴力破解时间缩短到了大约一天又16小时(约40小时),或平均一天时间就能搞定。

但是,很快地,Seidle又发现了一个更聪明的办法,这一次他利用了该保险箱试图抵御传统安全攻击的一个设计怪癖。因为转对数字时,保险箱的连动杆会滑到转子的狭槽中,人类保险箱破解者就可以在保险箱把手上稍加压力,转动表盘,听取或感受连动杆划入插槽的那一刻。为了破解该技术,Seidle测试的SentrySafe保险箱的第三个转子缩进排列了12个凹口,让边拉动手柄边转动表盘的人听不出来正确的数字。

Seidle把他和妻子用了多年的同型号保险箱拆了,并仔细测量了那12个凹口。令他惊讶的是,他发现包含正确数字组合的插槽比其他11个要窄百分之一英寸。任何人类都无法察觉或听出这种细微的差异,但是他的机器人可以很容易地在几秒之内就用一系列自动测量步骤检测出来。这一发现将使可能的解决方案数量缩减到之前的1/33,并将总体破解时间缩减至现在的最多73分钟。

安全赌注

在发给WIRED的声明中,SentrySafe并没有否认其保险箱存在漏洞。但该公司认为其产品依然能挡住非极客攻击者的破解。SentrySafe在声明中表示:

在该案例中,破解者需要花费巨大的努力,要具备可控的环境,使用正确的工具和大量的技术知识,才能最终破解保险箱。在这种环境下,该产品完成了设计目标,而且对于普通人而言想要现场复制该行为是非常困难的,甚至是不可能的。

Seidle回应称,是的,任何人都可以复制他的机器人——这正是用便宜的开源部件打造该机器人的意义所在。但是,通过展示自己的保险箱破解机器人,并向世人展示其建造步骤的目的并不是为了帮助窃贼。相反地,他认为自己的工作在极大程度上只是无害的DIY娱乐,是对廉价保险箱安全限制的一个警告。更广泛地说,他认为这是一种在廉价机器人时代证明物理安全改变的一种方式。Seidle说,

其他人可以复制吗?当然!这就是重点所在。但是,与打造一个这样的机器人相比,还有很多更便宜、更好的保险箱破解方法。比如,不那么巧妙的用撬棍或大锤的方法。

尽管如此,Seidle也承认,他们测试的SentrySafe型号保险箱并不是真正意义上的高安全保险箱。其他更昂贵的品牌可能就不会在第三转子上留有缩进插槽漏洞了。而对于其他高端保险箱,Seidle欢迎其他DIY爱好者利用他的工作成果继续他未完的工作。他说,

我不知道有没有人想复制我的机器人,但我想象有人会借用第一部分和第五部分,并用它们来打开其他不同型号的保险箱。这样的话会让我感觉很好。

原文发布时间为:2017年8月1日
本文作者:小二郎 
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
原文链接

我是如何使用自制机器人在15分钟内破解保险箱密码的?相关推荐

  1. 服务器创建多个dhcp服务_如何在15分钟内创建无服务器服务

    服务器创建多个dhcp服务 by Charlee Li 通过李李 如何在15分钟内创建无服务器服务 (How to create a serverless service in 15 minutes) ...

  2. 如何在开盘15分钟内发现当天黑马

    如何在开盘15分钟内发现当天黑马 在每日正式开市前,通过集合竟价开盘来浏览大盘和个股,这是一天中最宝贵的时间!也是捕捉当日黑马的最佳时刻! 因为通过观察大盘开盘的情况(是高开还是低开),能发现个股是怎 ...

  3. 在15分钟内使用Spring Boot和Spring Security构建一个Web应用程序

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 开发人员 ...

  4. h5正则表达式_正则表达式需要5天才能运行。 因此,我构建了一个可以在15分钟内完成操作的工具。...

    h5正则表达式 by Vikash Singh 由Vikash Singh 正则表达式需要5天才能运行. 因此,我构建了一个可以在15分钟内完成操作的工具. (Regex was taking 5 d ...

  5. vr设备应用程序_在15分钟内构建一个VR Web应用程序

    vr设备应用程序 在15分钟内,您可以开发一个虚拟现实应用程序,并在Web浏览器,VR头盔或Google Daydream上运行它. 关键是A-Frame ,这是Mozilla VR Team构建的开 ...

  6. mvc移动创建oracle表,使用 ASP.NET MVC (C#)在15分钟内创建电影数据库应用程序 | Microsoft Docs...

    使用 ASP.NET MVC 在 15 分钟内创建电影数据库应用程序 (C#)Create a Movie Database Application in 15 Minutes with ASP.NE ...

  7. 开盘15分钟内扑捉当天黑马

    开盘15分钟内扑捉当天黑马               在9:30开市前, 通过集合竟价开盘时,我们都有几分钟的时间浏览大盘和个股, 这是一天中最宝贵的时间!是扑捉当日黑马的最佳时刻! 因为能看出大盘 ...

  8. 1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?具体该如何实现方法讲解

    对于此问题,一个思路是通过对问题分解: 首先一个猪在一个小时内的状态可以分为5种: 一.0分钟喝水,15分钟死去 二.15分钟活着再喝水,30分钟死去 三.30分钟活着再喝水,45分钟死去 四.45分 ...

  9. 高通骁龙835无线充电手机_高通的快速充电5可以在15分钟内为手机充电

    高通骁龙835无线充电手机 Quick Charge 5 supports fast charging up to 100W and can completely replenish a dead s ...

最新文章

  1. github中SSH的Key
  2. 【机器视觉】 dev_get_window算子
  3. 【JFreeChart】JFreeChart—输出折线图
  4. oauth password模式_SpringBoot OAuth2.0 认证授权(密码模式)
  5. Bing.com在.NET Core 2.1上运行
  6. Java学习 第三章 数组(二)多维数组
  7. (05)Verilog HDL时序逻辑:always
  8. 中概股信任危机?美证监会主席直言不要购买中概股股票
  9. 2015阿里秋招当中一个算法题(经典)
  10. 设计模式-第四篇之代理模式
  11. 公开的Webservice集锦
  12. Pod 的生命周期及探针
  13. linux下自动删除文件夹,如何在Linux中自动删除或清理/tmp文件夹内容?
  14. 在中国搞定粉丝秘笈:如何创造粉丝经济
  15. EBMIDE——延缓显示生成,优化用户响应
  16. 一种简单的图形旋转算法
  17. Plants vs. Zombies(二分)
  18. 最接地气的详解CountDownLatch闭锁应用与实现机制
  19. Nsight system(nsys)
  20. 阿里曾洽谈收购才云科技事宜:被字节跳动截胡,收入囊中

热门文章

  1. Java基本小练习4(画星星)
  2. Spring Security 详解
  3. Python使用Redis计算经纬度距离
  4. [导入]前世欠你一滴泪
  5. 即插即用计算机自动识别,电脑向导未能检测到即插即用打印机,电脑检测不到即插即用打印机...
  6. 各种内部排序算法的比较和应用
  7. Android TV系列 TV APP分析(二)
  8. MT6177 RF_datasheet资料介绍
  9. c#如何操作ppt的播放 【转】
  10. Boost库的简介与安装