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

简介:

2.3 低能耗蓝牙和通过移动应用程序开锁


到目前为止,我们已经对磁卡门锁的攻击情况进行了研究,为了解针对常见门锁的基本攻击手段奠定了坚实的基础。我们也研究了Z-Wave门锁,并发现一个在实现协议时犯的简单错误是如何导致门锁不再安全的。

这一节,我们将看一下使用低功耗蓝牙(BLE)的Kwikset Kevo门锁,如图2-3所示。从物联网的角度来看,使用iPhone应用程序控制这种门锁看起来非常有趣。

 

图2-3:Kwikset Kevo门锁

这里,我们将讨论已知的BLE的弱点以及如何捕获无线流量,但我们会特别关注iOS应用程序,这把它从我们目前已经讨论的门锁中区分出来。

2.3.1 使用抓包工具了解BLE的弱点

作为建立于2010年的蓝牙4.0标准的一部分,BLE在业界受到了惊人的支持,因为它功耗很低,这对智能手机、平板电脑和物联网设备来说都非常重要。蓝牙硬件芯片仅需2美元,与ZigBee和Z-Wave协议相比有着明显的竞争优势。

蓝牙技术联盟负责维护现有的蓝牙规范。需要注意的是,该规范涵盖了经典的蓝牙和BLE,但两者并不相互兼容(采用4.0以前规范的蓝牙设备不能与BLE设备相互通信)。

BLE工作在2.4GHz频段,被分成40个信道,其中37个用来传输数据,其余3个用于未连接的设备来广播设备信息并建立连接。设备可以在监听范围内向任何扫描设备或接收器广播数据。这允许设备发送单向数据到其他设备。

广播设备发送一个广告数据包,其中包含31字节的有效载荷,包括关于广播设备以及任何其他自定义的信息。当31个字节不够传递必要的信息时,BLE支持一种称为扫描响应的机制,其中侦听设备可以用它来请求第二条广告帧,长度也是31字节,总数达到了62个字节。

广告包不包含任何安全机制,因此敏感信息一定不能在广播包中发送。

为了在两个方向上都能传输数据,设备需要在主设备和从设备之间建立连接。主设备接收到由从设备发送的广告数据包,并要求该从设备建立一个永久连接。一个设备可以同时为主设备和从设备。一个从设备可以连接到多个主设备,一个主设备也可以连接到多个从设备。

BLE包可以通过使用基于USB的Ubertooth One设备以及Ubertooth软件工具套装捕获,Ubertooth软件工具套装可以通过构建向导生成。这些工具中包含一个频谱分析仪(如图2-4所示),在购买Ubertooth One后,你应该立即运行它,以确保一切工作正常。

 

图2-4:Ubertooth 频谱分析

Ubertooth项目还包括一个叫作ubertooth-btle的工具,能够通过以下命令捕获BLE数据流:

[bash]$ ubertooth-btle -f -c capture.cap

-f标志表示新建立的BLE连接,-c标志指定捕获的数据所写入的文件名。这个文件可以使用Wireshark网络嗅探器打开,如图2-5所示。

每个BLE数据包包含一个存取地址(access address,AA),这是一个具体连接的唯一标识符。当设备发送广告数据包时,使用固定的存取地址0x8e89bed6(如图2-5所示)。

 

图2-5:用Wireshark分析BLE广告包

通过iPhone上一个叫作LightBlue的iOS应用可以模拟BLE设备,如图2-6所示。这对测试Ubertooth One的功能非常有用,并确保抓包工具正在工作。注意,图2-5中的Wireshark正在对图2-6中名为血压计的广告虚拟设备的数据包进行抓包分析。

研究人员Mike Ryan在他的白皮书“蓝牙:低能耗带来的低安全性”中介绍了如何捕获BLE连接。从本质上讲,使用hopIncrement值连接跨越37个预留用于传输的信道。nextChannel值的计算方法如下:

nextChannel ≡ channel + hopIncrement (mod 37)

主设备和从设备用这个公式计算出并跳到下一信道。主、从设备相继跳频传输一个数据包。如果没有数据需要传输,那他们发出一个无数据网络包。因此,为了嗅探BLE连接,当使用-f 参数抓包时,ubertooth-btle工具按照同样的顺序跳频。

 

图2-6:用LightBlue iOS 应用程序模拟BLE设备

在Ryan的文章中,他公开了一个BLE的关键安全问题,重要的是要理解BLE采用的密钥交换协议容易受到暴力破解的攻击。

主、从设备在传输数据时可以使用数据加密来保护数据安全。为了做到这一点,就必须建立被称为长期密钥(long-term key,LTK)的共享秘密。在大多数情况下,主设备和从设备在后续的连接中会重复使用LTK。通过选择一个临时密钥(temporary key,TK)开始密钥交换协议,这个临时密钥是基于备受推崇的高级加密标准(AES)协议生成的。

根据BLE的规约,如果选择了仅工作模式,那么TK的值是0。这种模式用于设备很少或是没有显示或输入机制的时候,因此配对是自动的。除此以外,TK使用介于0到999 999之间的一个值。更常见的是在主设备和从设备上显示出生成的数字要求用户来确认。一旦计算出TK,主、从设备用TK生成一个短期密钥(short-term key,STK)。由STK最终生成LTK。

Ryan发布了一款名为crackle的工具,使用抓到的BLE数据包,并尝试用0到999 999之间的值作为TK去暴力破解数据包。一旦找到TK,便可以很容易地通过TK解密验证STK。最后,可以通过使用STK解密获得LTK。假设捕获的数据包存储在一个名为capture.pcap文件中,下面是运行crackle工具的命令:

[bash]$ crackle -i capture.pcap -o decrypted.pcap

TK found: 249592

LTK found: 26db138d0aa63a12dd596228577c4731

Done, processed 106 total packets, decrypted 19

像Wireshark这样的工具能打开decrypted.pcap这种包含明文的数据文件。需要注意的是,Ryan的暴力破解方法不能有效破解带外数据(Out-of-Band,OOB)模式,这种模式通过协议交换一个128位密钥,不同于BLE协议。但大多数设备使用仅工作模式或6位数字模式,因此大部分的BLE设备是易受攻击的。

任何研究BLE物联网设备的人都应熟悉Ryan的研究和Ubertooth系列工具,因为这些是进行网络流量分析和对问题产品的安全设计测试中不可缺少的部分。此外,截止到写作本书时,目前的蓝牙规范(4.1)仍没有解决暴力攻击问题,所以依靠BLE加密的设备依旧脆弱。

2.3.2 Kevo移动应用程序不安全

图2-3中的Kwikset Kevo锁可通过iPhone上配套的Kevo iOS应用程序操作。

在第一次启动时,用户被要求指定一个电子邮件地址和密码。如图2-7所示,密码必须为8个字符及以上,至少包含1个数字。

如图2-8所示,Kevo应用程序采用了一个策略,如果密码输入错误6次则锁定账户。锁定有效期为24小时。

 

图2-7:Kevo iPhone应用程序最低密码要求

忘记密码的用户必须正确回答账户相关的安全问题(如图2-9所示)。由Kevo应用程序选出的这些问题是在用户创建账户时提示用户回答的。

 

图2-8:Kevo账户输入错误6次后被锁定

如果一名恶意攻击者已经暂时获得了用户的电子邮件账户,便可尝试猜测答案或通过网络钓鱼攻击用社会工程学方法获得密码。与此同时,Kevo应用程序就密码的复杂性做了出色的工作,采用锁定策略并要求回答安全问题,但用户应该认识到,这些信息可经常通过钓鱼攻击和恶意软件的方法窃取到。

该锁还实现了一种机制,允许用户向其他人发送电子密钥。你只要提供个人的电子邮件地址,对方就会收到一封来自Kevo的电子邮件,如图2-10所示。要打开锁,对方必须先用Kevo iPhone应用程序建立一个账户,并验证自己的电子邮件地址。

 

图2-9:Kevo重置密码的安全问题

这里的安全风险是犯罪分子可能临时获得攻击目标的电子邮件账户。由于被攻击目标必须建立一个新账户,并回答有关注册的安全问题,犯罪分子可以输入任意的安全问题答案,这将反过来锁定正在重置密码的合法用户。

从房门里面抬起门锁上面的盖子很容易发现一个编程按钮。如图2-11所示,用户按下这个按钮并在锁旁边拿着电话用它打开门锁。一旦设置好,用户需要触摸门锁外面的面板唤醒门锁。这时,当门锁在附近发现一个预编程授权的iPhone,门锁和iPhone就可以通过BLE通信实现打开(或锁上)。

 

图2-10:向外部发送电子钥匙

然而,有人用一部从未授权的新iPhone,只需下载Kevo应用程序并猜到或获取到密码,登录到应用程序后就能开锁。虽然应用程序实现了控制密码的安全机制,但要做到让门锁更安全,可以在即使知道密码的情况下仍需要新设备使用编程按钮来配对。

这给我们带来对锁本身的物理接触的问题。我们知道使用各种方法撞锁开门是一项技艺,有些人非常擅长。事实上,对Kevo锁进行撞锁开门测试,人们可以绕开物理钥匙的机制。

物理撞锁是一个人们熟知的影响很多锁的问题,除此之外,移动应用程序功能应用在Kevo锁上,人们可以用iPhone和临时物理接触门锁,在几秒钟之内重新给锁编程,使其关联上一个新设备——实际上,这是一种虚拟撞锁。通过按住重置按钮几秒钟,如图2-12所示,然后一步步按照图2-11中那样就可以关联新的设备了。临时物理接触门锁的人不需要有物理撞锁的技能,也不需要额外的训练和工具,就可以很容易地做到这些。

 

图2-11:用锁上的编程按钮关联iPhone

注意,这个人必须进到被保护的场所内才可以,因为重置和编程按钮是朝向里面的。然而,仍有一种风险,临时工或拜访者可以滥用这个功能下次不请自入。或更有甚者,他们把电子钥匙发给其他人。

本节提供了一个很好的例子,我们应当仔细考虑这个问题,我们越来越依赖移动应用程序来保障我们的人身安全。密码猜测和钓鱼攻击常被用来攻击我们的数字信息,但如同Kevo iPhone应用程序一样,平台上相同的攻击可能会破坏家庭和办公室的物理安全。

 

图2-12:门锁上的重置按钮

锁制造商需要有更强的意识认识到这些威胁,并实施更严格的控制。由于物联网设备固件的物理性质,事实上情况很复杂,即便使用应用程序界面提供升级,许多用户为了节约时间,都会延迟升级。他们不想在离开家或回家的时候还等待门锁处理安全补丁安装。

这意味着:基于物联网的设备制造商如Kevo,必须力争在其产品的初始版本实现正确的安全功能。这很不容易,因为安全是很难完美的,所以使用这些设备的用户应该意识到潜在的风险,正如本节所描述的。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
12天前
|
安全 物联网 网络安全
智能设备的安全隐患:物联网(IoT)安全指南
智能设备的安全隐患:物联网(IoT)安全指南
38 12
|
8天前
|
Web App开发 网络协议 安全
基于Web攻击的方式发现并攻击物联网设备介绍
基于Web攻击的方式发现并攻击物联网设备介绍
|
19天前
|
安全 物联网 物联网安全
智能物联网安全:物联网设备的防护策略与最佳实践
【10月更文挑战第26天】随着物联网(IoT)技术的快速发展,智能设备已广泛应用于智能家居、工业控制和智慧城市等领域。然而,设备数量的激增也带来了严重的安全问题,如黑客攻击、数据泄露和恶意控制,对个人隐私、企业运营和国家安全构成威胁。因此,加强物联网设备的安全防护至关重要。
43 7
|
29天前
|
物联网
物联网卡不能使用在什么设备上
“物联网卡不能使用在什么设备上”这一操作或规定,通常基于物联网卡的特性、使用条款以及设备兼容性等因素。以下是对这一问题的详细分析和操作建议:
|
1月前
|
存储 监控 物联网
医疗物联网设备精细化管理系统解决方案
华汇数据智慧医院物联网管理系统解决方案是一种集物联网、云计算、大数据和人工智能等先进技术于一体的综合性解决方案,旨在提升医院的运营效率、医疗质量和患者满意度。
72 3
|
1月前
|
安全 物联网
物联网卡不能更换设备使用吗
物联网卡(IoT SIM卡)是否允许更换设备使用,这主要取决于物联网服务提供商的具体政策和服务条款。通常,物联网卡是为特定设备或应用场景设计的,因此一些服务提供商会限制卡的更换使用,主要是出于安全、管理、网络优化和避免滥用等考虑
|
18天前
|
安全 物联网 物联网安全
智能物联网安全:物联网设备的防护策略与最佳实践
【10月更文挑战第27天】随着物联网技术的快速发展,智能设备已广泛应用于生活和工业领域。然而,物联网设备的安全问题日益凸显,主要威胁包括中间人攻击、DDoS攻击和恶意软件植入。本文探讨了物联网设备的安全防护策略和最佳实践,包括设备认证和加密、定期更新、网络隔离以及安全标准的制定与实施,旨在确保设备安全和数据保护。
34 0
|
1月前
|
人工智能 安全 物联网
|
6天前
|
存储 安全 物联网
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
70 50
|
6天前
|
安全 物联网 物联网安全
制定统一的物联网技术标准和规范的难点有哪些?
制定统一的物联网技术标准和规范的难点有哪些?
19 2

相关产品

  • 物联网平台