电子撬锁
——
滥用门锁危害物理安全
55
根据
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
小时。
56
2
2-7Kevo iPhone 应用程序最低密码要求
忘记密码的用户必须正确回答账户相关的安全问题(如图
2-9
所示)。由
Kevo
应用程
序选出的这些问题是在用户创建账户时提示用户回答的。
电子撬锁
——
滥用门锁危害物理安全
57
2-8Kevo 账户输入错误 6 次后被锁定
如果一名恶意攻击者已经暂时获得了用户的电子邮件账户,便可尝试猜测答案或通过网
络钓鱼攻击用社会工程学方法获得密码。与此同时,
Kevo
应用程序就密码的复杂性做了
出色的工作,采用锁定策略并要求回答安全问题,但用户应该认识到,这些信息可经常
通过钓鱼攻击和恶意软件的方法窃取到。
该锁还实现了一种机制,允许用户向其他人发送电子密钥。你只要提供个人的电子邮件
地址,对方就会收到一封来自
Kevo
的电子邮件,如图
2-10
所示。要打开锁,对方必须
先用
Kevo iPhone
应用程序建立一个账户,并验证自己的电子邮件地址。
58
2
2-9Kevo 重置密码的安全问题
这里的安全风险是犯罪分子可能临时获得攻击目标的电子邮件账户。由于被攻击目标必
须建立一个新账户,并回答有关注册的安全问题,犯罪分子可以输入任意的安全问题答
案,这将反过来锁定正在重置密码的合法用户。
从房门里面抬起门锁上面的盖子很容易发现一个编程按钮。如图
2-11
所示,用户按下这
个按钮并在锁旁边拿着电话用它打开门锁。一旦设置好,用户需要触摸门锁外面的面板
唤醒门锁。这时,当门锁在附近发现一个预编程授权的
iPhone
,门锁和
iPhone
就可以通
BLE
通信实现打开(或锁上)。
电子撬锁
——
滥用门锁危害物理安全
59
2-10:向外部发送电子钥匙
然而,有人用一部从未授权的新
iPhone
只需下载
Kevo
应用程序并猜到或获取到密码,
登录到应用程序后就能开锁。虽然应用程序实现了控制密码的安全机制,但要做到让门
锁更安全,可以在即使知道密码的情况下仍需要新设备使用编程按钮来配对。
这给我们带来对锁本身的物理接触的问题。我们知道使用各种方法撞锁开门是一项技艺,
有些人非常擅长。事实上,
Kevo
锁进行撞锁开门测试,人们可以绕开物理钥匙的机制。
物理撞锁是一个人们熟知的影响很多锁的问题,除此之外,移动应用程序功能应用在
Kevo
锁上,人们可以用
iPhone
和临时物理接触门锁,在几秒钟之内重新给锁编程,使
其关联上一个新设备—实际上,这是一种虚拟撞锁。通过按住重置按钮几秒钟,如图
2-12
所示,然后一步步按照图
2-11
中那样就可以关联新的设备了。临时物理接触门锁的
人不需要有物理撞锁的技能,也不需要额外的训练和工具,就可以很容易地做到这些。

Get 物联网设备安全 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.