摘要


电子撬锁——滥用门锁

危害物理安全

目前已知最古老的锁可以追溯到4000年前,它发现于古埃及帝国的废墟中。这种锁因当时在该地区流行而被称为埃及锁。锁是用木头做的,内有不同长度的木销。门上的一个槽可以插入带有与锁销长度匹配的木销的木钥匙。钥匙插入到锁中并抬起,使木销均匀地在门闩顶部对齐,这样便可以打开门。

从埃及人开始,我们受希腊、罗马和各种来自中国、土耳其、印度等东方国家的锁的影响,以及后来英国和美国的影响,造就了今天我们所依赖的各种不同类型的锁,它包括了可移动的杠杆、圆柱形的钥匙和销栓的组合,没有正确的钥匙就很难打开它。

虽然我们很多人都知道用不同的技术开锁是多么容易,但目前家中还是依赖锁来保障我们的安全。许多国家和地区试图通过颁布禁止拥有开锁工具的法令来阻止其大肆流行。但是,诚如你所想,仅仅存在规定,并不能阻止那些想要进入房屋的恶意实体(犯罪分子)。

展望物联网设备的未来,对我们来说,摆脱对传统物理锁具挑选的关注,分析使我们处于高风险状态的电子门锁机制就变得重要了。本章将探讨现有的电子门锁安全问题,其无线机制,以及它们与移动设备的集成。我们将在接下来的几节中逐步完成这些话题,探讨电子门锁当前的安全机制(或不足)。制造厂商建立起不良安全决策之后,我们会更了解潜在的风险,并对这些类型的锁在未来将需要什么样的安全措施有更好的想法。

2.1 酒店门锁和磁卡


研究员Cody Brocious发现了一个常见的门锁漏洞,它影响着世界各地数以百万计的酒店门锁。鉴于其潜在的影响,在此便不可不提。事实上,Brocious在2012年7月的黑帽安全大会上曝光这一问题之后,很多酒店出现了入侵者利用这个漏洞进入酒店房间并窃取财物的真实案例。Brocious的作品滥用了基本安全设计缺陷,在信息安全社区流行起来,这里是开始了解电子门锁相关安全性问题的理想场所。

2.1.1 Onity门锁

Onity HT门锁非常受欢迎。如果你曾入住过酒店,很有可能已经用到过,并依靠它保护你的安全和隐私。Onity锁有一个磁性钥匙卡读卡器,如图2-1所示。酒店的客人都有磁性钥匙卡,通过划过读卡器来打开门锁。酒店员工可以在客人办理入住手续或客人要额外的门卡时发给客人。酒店给员工发通用钥匙卡,例如打扫房间的工作人员可以打开多个门。

研究具有传统机制的采用磁卡作为钥匙的Onity锁很重要,因为下一代基于物联网的门锁可能保留传统机制(普通钥匙和磁条卡)并混合更智能的方法,如无线认证和电子钥匙,这将在本章接下来的部分讨论。理解Onity锁的安全问题非常重要,因为这为理解基本的安全设计缺陷打下基础,使得能够利用这些信息影响全世界使用的锁。我们必须努力防止发生这种情况。

图2-1:Onity门锁

2.1.2磁条

我们生活中经常遇到磁条卡,从信用卡、公共交通卡到酒店房卡,我们依赖磁条卡获取服务和进入特定场所。图2-2展示了一张典型的带有磁性条带(即磁条)的信用卡的背面。标签①指磁性条,②是签名条,③表示卡的安全码(CSC)。下文中讨论的酒店房卡,通常只有背面的磁条与正面的酒店标志。

图2-2:带磁条的卡片

通常,磁条包含3个存储不同数据块的独立磁道。磁道1和2一般用于金融行业的ATM、借记卡和信用卡,并没有限定哪个机构使用特定的磁道。Onity门锁使用磁道3,它包含以下数据序列:

16位识别码

一个识别码包含了卡能开的房门和卡的复制版本信息。为酒店员工创建主卡时,通过存储的一个值代表酒店员工的身份而不是门的标识。当客人入住酒店时,为指定房间的门制作的第一张卡的复制标识位设置为0,接下来的复制卡标识位依次加1,以便识别。

8位标志字节

用一个字节设置各种其他选项的值。

16位过期日期

客人办理入住手续时,设置门卡的有效时长。

24位未知位

设置为全0。

24位钥匙编码

该值被写入单个门锁。这时,门锁中配置一个提前量。例如,一把门锁的钥匙编码是100,提前量是50,那有效的钥匙编码值是100~150的一个整数。每当插入有效卡时,门锁把自身的钥匙编码重置成门卡的值。通过这种方式,门锁钥匙编码增加以确保较旧的门卡失效。注意,代表主钥匙的具体钥匙编码也存储在门锁中。酒店用不同的主钥匙编码来分割不同的区域,使得仅有某些锁能够用酒店指定的主钥匙卡打开。

站点代码(site code)值是由Onity随机分配的唯一的32位随机值,采用站点代码来加密24位钥匙编码,以便确认酒店财产。如果这个值被破解,便能造出任意磁卡开锁,也能给门锁重新设置(如后文所述)。

站点代码实际使用的加密算法在Cody Brocious的白皮书附录B中。

除了这里所述的典型钥匙卡之外,该系统还包括编程卡和备用卡。当刷过编程卡后再刷备用卡,那么备用卡就成了这道门的客人门卡了。这些卡是当编码器(用来制作客人门卡)出现故障时使用的。编程卡也是用站点代码值加密的,然而备用卡是没有加密过的。当(用编程卡)制作一批备用卡时,每张卡的识别码都依次递增。

客人将卡插入门锁,利用站点代码解密卡上的数据。下一步,检查是否在有效期内。最后,检查钥匙编码,如果在提前量范围内就能打开门锁。

2.1.3 编程端口

锁的右下角有一个编程端口,该端口也用作直流电源适配器接口。在安装门锁和更换门锁电池时,会导致存储被重置,这时可用一个便携的编程器(PP)给门锁编程。安装时,PP用来配置锁的识别码和钥匙编码。

PP也能用来连接门锁并发出指令,如提供正确的站点代码来开锁。

PP还可以通过编程端口读取锁的存储区。

2.1.4 安全问题

Brocious的白皮书描述了有关Onity锁的各种安全问题。了解这些问题是非常重要的,因为它们会影响数以百万计的配备这些锁的酒店房门。他们还表示,其他锁制造商应尽量避免缺乏基本的安全控制。

微控制器漏洞

如果站点代码是已知的,就能通过连接到编程端口使用简单的微控制器打开锁,如便宜($50以下)流行的Arduino。

Cody Brocious在他的白皮书的附录A中介绍了Arduino开锁所需代码(也称为sketch)。基本上,Brocious的sketch利用了这个事实:使用Arduino可以从编程端口读取存储器的任何部分。Brocious用这个办法读取存储器的站点代码,然后用它调用开锁命令开锁。

对数以百万计安装在世界各地不同地方的Onity锁来说,这是一个严重的安全问题。只要有在附近电子商店购买的Arduino微控制器,任何人都可以走到使用Onity锁保护的门前,打开它。事实上,著名的连锁酒店,如假日酒店、长住酒店、优质酒店、拉昆塔酒店、红屋顶酒店、汽车酒店六、经济酒店、万怡万豪酒店和舒适客栈报道的盗窃案都是由这一特殊的安全问题造成的。

锁存储中的主钥匙编码

通过读取锁存储中的主钥匙编码可以制作主钥匙卡。站点代码也可以从存储中读出,这个值可用来制作主卡。如前所述,酒店可以选择不同区域内的锁使用不同的主卡。因此,主钥匙可以限定在酒店的特定区域房间使用。

然而,这仍然是一个严重的问题,因为潜在的入侵者可以用一次性创建的主钥匙卡进入酒店一整片区域的房间。

未加密的备用卡

如前所述,每一个附随的备用卡都是通过增量识别值创建的,是没有加密的。当编码器故障时可以使用这些卡。因此,如果入侵者可以拿着识别值为500的备用卡,那他可以制作识别值为499或501的备用卡去尝试打开其他门。

当然,用新制作的备用卡具体能打开哪扇门不太容易确定,这种攻击实施起来有些困难。

2.1.5 厂商的应对

2012年7月24日,Brocious向全世界发表了他的研究和文章,为装备有廉价Arduino芯片的人提供所有需要的信息,进入数以百万计的酒店房间。同时,警示公众需要承担入住配有Onity门锁的酒店的风险。公众和酒店拥有者监督着Onity公司,他们期待Onity公司提供相应的解决方案。

2012年7月25日和8月13日,Onity公司分别发表回应,指出将通过固件升级来缓解这一问题。同时承诺在编程端口插入一个机械盖子防止访问端口,并采用额外的Torx螺钉进行固定。

Onity的声明有几个问题。首先,对一般的犯罪分子来说,打开机械盖子并最终连接编程端口仅仅是增加了些许难度——仅需几件额外的工具(在电子或杂货商店花几美元就能买到的梅花螺丝刀)。此外,正如Brocious的反驳所指出的那样,Onity的门锁设计无法做到不更新电路板而进行真正的固件更新。因此,实际上,酒店业主不得不更换电路板(数百万门锁的费用),而不只是进行简单地更新固件。

做出响应几个星期后,Onity删除了网站上所有相关的痕迹。进一步调查显示,Onity公司已经根据门锁的生产日期为一些连锁酒店更换电路板。

针对特定制造商特殊的安全问题,揭示出当涉及大规模产品设计时,我们必须认识到维修费用问题以及最终会给制造商(Onity)和客户(保障客人安全的连锁旅店)带来品牌声誉的负面影响的问题。首先,批量生产的设备应尽可能包含发布在需要时相关补丁的能力,这是至关重要的。因为相对硬件修复来说,软件补丁成本更低,更具可扩展性。其次,鉴于独立研究人员在安全分析方面的兴趣,供应商需要更加透明,并与研究机构一起促进道德规范和维持最终消费者对其信任。

在本节中,我们关注了为数以百万计的人们提供安全保障的一种很流行的门锁,虽然这种门锁是传统的(基于磁条的),但仍是面向未来发展的重要一课,因为下一代门锁将包括磁条卡以及具有更多机制的电子钥匙。我们在本节中学到的内容为继续探讨分析接下来章节中所涵盖的无线和电子钥匙功能的门锁提供了坚实的基础。

物联网设备安全2.1 酒店门锁和磁卡相关推荐

  1. 物联网设备是如何被破解的?分析一种篡改IoT固件内容的攻击方式

    随着智能硬件进入到人们的生活,人们的生活质量开始有逐步的提高,人们与智能硬件之间的联系更加紧密.同时,智能硬件的安全问题也必须引起高度重视,因为其直接影响到人身安全.社会安全和国家安全. 大家是否有想 ...

  2. 物联网设备安全2.3 低能耗蓝牙和通过移动应用程序开锁

    2.3 低能耗蓝牙和通过移动应用程序开锁 到目前为止,我们已经对磁卡门锁的攻击情况进行了研究,为了解针对常见门锁的基本攻击手段奠定了坚实的基础.我们也研究了Z-Wave门锁,并发现一个在实现协议时犯的 ...

  3. 2021年大数据Spark(五十一):Structured Streaming 物联网设备数据分析

    目录 ​​​​​​​物联网设备数据分析 ​​​​​​​设备监控数据准备 ​​​​​​​创建Topic ​​​​​​​模拟数据 ​​​​​​​SQL风格 ​​​​​​​DSL风格 物联网设备数据分析 在 ...

  4. 物联网设备僵尸网络趋势分析

    物联网(IoT)僵尸网络作者正在适应更安全的物联网设备的转变,这已经将***者的注意力转移到利用物联网设备的漏洞上.由于物联网设备安全性仍处于起步阶段,因此发现命令注入等基本漏洞并不少见. 2018年 ...

  5. 移动设备感染率及物联网设备安全漏洞数量创下历史新高

    诺基亚近日发布最新<威胁情报报告>.报告显示,移动设备恶意软件感染率创下历史新高,受攻击智能手机及主要物联网设备安全漏洞的数量出现大幅增长. <诺基亚威胁情报报告>每年发布两次 ...

  6. 近亿台物联网设备或遭劫持,这家IoT云平台遭遇“灾难性”入侵事件

    来源:互联网安全内参 参考来源:krebsonsecurity.com 编译:安全内参 近日,一位熟悉该事件内情的消息人士表示,Ubiquiti对外刻意削弱了此次事件的"灾难性"后 ...

  7. 无所不在的物联网设备 你我都需要正视所带来的安全问题

    在2017年信息安全大会中,Hitcon Girls共同创办人赖婕芳与沈祈恩认为,目前物联网设备的应用会越来越普遍,但与其有关的安全事件频传,因此无论是制作的厂商,还是企业乃至于个人,都应该提高警觉, ...

  8. 物联网奇点:给物联网设备使用的Docker

    本文讲的是物联网奇点:给物联网设备使用的Docker,[编者的话]本文来自Intel的官方博客网站,深刻的预言了2015年在IoT行业中出现了"奇点",这种变化使得传统的Web应用 ...

  9. OTA固件升级对于物联网设备的重要性

    物联网(IoT)代表着一个重要的发展趋势,逐渐将日常生活中的各个方面相互连接在一起.不同于早期的路由器等无线设备(每个房间或者办公室安装一个)在数量上的局限性,物联网将会非常深入的渗透到方方面面,并且 ...

最新文章

  1. 院士:科研工作者也得养家,非升即走压力下,不得不做短平快的研究
  2. Science重磅!人类特有基因触发猴子长出更强大的大脑
  3. Spring MVC POST中文乱码解决方案
  4. python人工智能——机器学习——分类算法-k近邻算法
  5. ASP.NET Core启动地址配置方法及优先级顺序 | .NET 6 版本
  6. 3dmax导出x文件插件2020_C4D与unity3D,3DMAX,AI,AE,ks之间互导
  7. python读取word内容存入数据库、并求simhash_介绍一个基于simhash作海量文章排重的库:simhashpy...
  8. 算法导论6:排序小结和最值取法 2016.1.6
  9. 虚拟化--001 view win7优化
  10. [everydayNote] 今天脑子不好使
  11. [JNI]开发之旅(9)JNI函数字符串处理
  12. lg空调代码大全解决_LG空调故障代码大全-kg空调维修-lg空调维修手册
  13. ode45解微分方程(组)
  14. 三种T检验的详细区分
  15. CC00024.CloudOpenStack——|OpenStack组件.V02|——|OpenStack-Cinder块存储|配置block.V2|
  16. 无法割舍的乡情--去外公家
  17. 如何利用番茄工作法提高学习和工作的效率
  18. java加密常用的方法_JAVA MD5 加密常用 方法
  19. 怎么在HTML中加入热区,关于网页点击热区图
  20. 收集的数码摄影教程_我是亲民_新浪博客

热门文章

  1. 站长素材网 图标信息爬取(scrapy)
  2. matlab去除图片水印_求帮忙,我想找到用matlab编程的数字水印系统,可以实现给图片加水印,并且防止攻击,最后提取水印信息...
  3. 计算机公式or,OR值的计算方法
  4. HCIA—代理ARP (路由式代理ARP+vlan内代理ARP+vlan间代理ARP) [理论+实验验证]
  5. Idea相关操作以及相关问题
  6. 在Linux下安装Docker并搭建Eclipse che容器
  7. 2022年全球汽车头枕行业调研及趋势分析报告
  8. tf.expand_dims
  9. docker环境搭建(生信学习)
  10. 如何读取md文件(MarkdownPad2专业版已激活)