BLE在显微镜4下

图片

BLE在显微镜下。 第4部分


关于白名单的几句话。

碰巧的是,很长一段时间我都离开了BLE主题。 但是他回来了:-)今天,我想谈谈白名单的话题。 这是为了什么 如果我们只希望某些手机可以与我们的小工具一起使用,而其他手机则不能,那么我们需要白名单。

为了开始讨论该主题,必须回顾一下。 为了使设备开始数据交换,必须执行连接过程。 我在以前的文章中写过。 在这里,重要的是不要混淆附着和配对的概念。 如果加入,断开连接后,我们会忘记与谁交谈。 如果交配,我们会记住伴侣。 因此,例如,我们将手机与蓝牙耳机相连。 这些设备现在称为绑定。 现在,当扫描以太坊时,无需人工干预即可建立与所连接设备的连接。

我为什么要谈论所有这一切。 事实是,白名单是由一系列相关设备组成的。 这是要记住的第一件事。 其次,您需要了解设备配对的形成方式。 有两种方法。 第一个使用MAC地址,第二个使用密钥。 为什么一切都这么复杂? 事实是,起初它只应按MAC地址绑定。 但是,通过空中传输数据包时,每个人都可以看到。 因此,攻击者可以通过空中扫描并使用特殊程序来轻松更改手机上的MAC地址。 因此,即使使用白名单,它也可以访问您的设备。 为了防止这种情况的发生,使用了另一种配对设备的方法-使用irk密钥(身份解析密钥)。 与MAC地址不同,密钥长度为16个字节,并且通过标准数据交换,它们在空中不可见。 他们的交流在一个安全的地方进行,不包括聆听。 此外,BLE4.2规范还描述了另一个功能。 这里是逐字记录:

6.1专用地址生成间隔

专用地址应使用可解析的专用地址生成(请参见第1.3.2.2节)来生成,链路层应设置由主机确定的计时器。 当计时器到期时,将生成一个新的专用地址。 如果重置了链路层,则将生成一个新的专用地址,并以允许范围内的任何值启动计时器。

注意:如果专用地址频繁生成,则连接建立时间可能会受到影响。 建议将计时器设置为15分钟。

简而言之,BLE设备不能广播自己的公共地址,而可以广播私有私有地址,建议每15分钟更改一次。 因此,记住它们是没有意义的。 请记住,您只需要一个公共且随机的静态地址。 在调试器中,它看起来像这样:



此处值得注意的是,左侧图像中的addr_count计数器的值为0x01,右侧图像中的irk_count计数器为0x02。 事实是,我将两部手机连接到具有Android 4.4(蓝牙4.0)和android 8.1(蓝牙4.1)的设备。 即 第一个通过MAC地址进行通信,第二个已经使用了irk密钥。 此外,我两次将手机与android 8.1捆绑在一起。 我的设备无法识别它,因此将它们视为两个不同的手机。

该站点上有一篇很好的文章 ,对缩写进行了解密,并对BLE技术进行了概述。 另外,我想指出的是,文字可能有误,因为 我没有像我想的那样处理这个话题。 因此,欢迎并欢迎提出建设性意见。

佩切尔斯基·弗拉基米尔

Source: https://habr.com/ru/post/zh-CN434746/


All Articles