蓝牙学习七(MAC地址)

1.简介

        一个BLE设备,可以使用两种类型的地址(一个BLE设备可以同时具备两种地址):Public Device Address(公共设备地址)Random Device Address(随机设备地址)。而Random Device Address又分为Static Device Address(静态设备地址)Private Device Address(私密设备地址)两类。其中Private Device Address又可以分为Non-resolvable Private Address(不可解析私密地址)Resolvable Private  Address(可解析私密地址)。关系如下图:

 2.公共设备地址Public Device Address

        在通信系统中,设备地址是用来唯一识别一个物理设备的。如TCP/IP网络中的MAC地址、传统蓝牙中的蓝牙地址等等。对设备地址而言,一个重要的特性,就是唯一性(或者说一定范围内的唯一性),否则很有可能造成很多问题。蓝牙通信系统也不例外。

        对经典蓝牙(BR/EDR)来说,其设备地址是一个48bits(6字节)的数字,称作“48-bit universal LAN MAC address”(和电脑的MAC地址一样)。正常情况下,该地址需要向IEEE申请购买。通过付费,来保证地址的唯一性。这种地址分配的方式,在BLE中也保留了下来,也就是Public Device Address(公共设备地址)。Public Device Address由24-bit的company_id24-bit的company_addigned组成,如下图所示:

        高24位公司标示低24位公司内部自己赋值

3.随机设备地址 Random Device Address

        目前而言,只有Public Device Address明显不够用了,有如下原因:

  1. Public Device Address需要向IEEE购买。虽然不贵,但是一笔不小的开销
  2. Public Device Address的申请与管理是相当繁琐、复杂的一件事情,再加上BLE设备的数量众多,导致维护成本巨大
  3. 安全因素。BLE很大一部分的应用场景是广播通信,这意味着只要知道设备的地址,就可以获取所有的信息,显然是不安全的。因此,固定的设备地址,加大了信息泄漏的风险

        为了解决上述问题,BLE协议新增了一种地址:Random Device Address(随机设备地址),即设备地址不是固定分配的,而是在设备启动后随机生成的。根据不同的目的,Random Device Address分为Static Device Address(静态设备地址)Private Device Address(私密设备地址)两类。 

3.1 静态设备地址 Static Device Address

        Static Device Address是设备在上电时随机生成的地址,格式如下:

Static Device Address静态设备地址的特性可总结为:

  1. 最高两个bit为“11”
  2. 剩余的46bits是一个随机数,不能全为0,也不能全为1.
  3. 一个上电周期内保持不变
  4. 下一次上电的时候可以改变。但不是强制的,因此也可以保持不变。如果改变,上次保存的连接等信息,将不再有效。

Static Device Address静态设备地址的使用场景可总结为:

  1. 46bits的随机数,可以很好的解决“设备地址唯一性”的问题,因为两个地址相同的概率很小。
  2. 地址随机生成,可以解决Public Device Address申请所带来的费用和维护问题。 

3.2 私密设备地址 Private Device Address

        Static Device Address通过地址随机生成的方式,解决了部分问题,Private Device Address则更进一步,通过定时更新地址加密两种方法,提供蓝牙地址的可靠性和安全性。根据地址是否加密,Private Device Address又分为两类,Non-resolvable Private Address(不可解析私密地址)Resolvable Private Address(可解析私密地址)

3.2.1 不可解析私密地址 Non-resolvable Private Address

        Non-resolvable Private Address和Static Device Address类似,不同之处在于,Non-resolvable Private Address会定时更新。更新的周期是由GAP规定的,称为T_GAP(private_addr_init),建议值是15分钟。其格式如下:

         特征可总结为:

  1. 最高两个bit为“00”
  2. 剩余的46bits是一个随机数,不能全部为0,也不能全部为1.
  3. 以T_GAP(private_addr_init)为周期,定时更新。

注:Non-resolvable private address在实际中并不常用,因为地址经常变动,所以应用场景不多。

3.2.2 可解析私密地址 Resolvable Private Address

        Resolvable Private Address 是通过一个随机数和一个称为identity resolving key(IRK)的密码生成的。因此只能被拥有相同IRK的设备扫描到,可以防止被未知设备扫描和跟踪。格式如下:
 

 特征如下:

  1. 由两部分组成:
  • 高位24bits是随机数部分,其中最高两个Bit为"10",用于标识地址类型
  • 低位24bits是随机数和IRK经过hash运算得到的hash值,运算的公式为hash=ah(IRK,prand)。
  1. 当对端BLE设备扫描到该类型的蓝牙地址后,会使用保存在本机的IRK,和该地址中的prand,进行相同的hash运算,并将运算结果和地址中的hash字段比较。只有相同的情况,在进行后续的操作。这个过程被称为resolve(解析)。这也是Non-resolvable private address/Resolvable private address命名的由来。如果不同则继续用下一个IRK做上面的过程,直到找到一个关联的IRK或一个也没找到。
  2. T_GAP(private_addr_init)为周期,定时更新。哪怕在广播、扫描、已连接等过程,也可能改变。
  3. Resolvable private address不能单独使用。如果需要使用相同该类型的地址,设备要同时具备Public Device Address或者Static device address中的一种。

  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在网络上可以找到许多蓝牙MAC地址批量生成工具,这些工具可以方便地生成大量的蓝牙MAC地址,用于测试、研究或其他目的。这些工具大多数是免费的,可以在网上下载使用。 但是需要注意的是,使用这些工具生成的MAC地址可能会违反本地法律法规或该网络的使用协议。如果您需要使用这些工具,请确保了解相关规定并遵守。 此外,在使用这些工具时,应该注意网络安全问题,避免将生成的MAC地址公开或用于非法活动。同时,不建议使用未经验证的工具,以免在使用过程中受到病毒或恶意软件的攻击。 总之,如果需要使用蓝牙MAC地址批量生成工具,请谨慎使用并遵守相关规定,确保安全使用。 ### 回答2: 蓝牙Mac地址批量生成工具,可以帮助用户批量生成蓝牙Mac地址蓝牙Mac地址是设备在蓝牙通信中的唯一标识符,用于识别设备和进行通信。相比手动一个一个生成,批量生成工具可以提高效率,节省时间。 要下载蓝牙Mac地址批量生成工具,可以通过以下途径获取: 1. 在各大软件下载网站上搜索蓝牙Mac地址批量生成工具,如CNET、软件下载站等。在搜索结果中选择可信度高、使用评价好的软件下载源站,下载适合自己的批量生成工具。 2. 在苹果App Store或安卓应用商店上搜索相关应用,按照下载、安装的指示进行操作。这些应用通常会提供用户友好的操作界面和丰富的功能选项,方便用户批量生成蓝牙Mac地址。 3. 可以在开源软件社区或技术论坛上查找相关项目。这些项目通常由开发者共享免费用于技术研究和学习,但使用时需要具备一定的技术能力。 无论通过哪种方式下载蓝牙Mac地址批量生成工具,用户在使用前应该确保软件来源可信、兼容性良好,并且按照软件提供的使用指南进行操作。同时,也要遵守相关法律法规,避免非法使用蓝牙Mac地址批量生成工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值