【BLE】蓝牙设备地址

本文详细介绍了蓝牙设备的四种地址类型:Public Device Address、Static Device Address、Non-Resolvable Private Address和Resolvable Private Address。Public Address是唯一的,Static Address在初始化后保持不变,而Private Addresses提供额外的安全性,通过随机生成和周期性更新增强隐私保护。Resolvable Private Address允许通过IRK解密,增加了连接的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 前言

为什么有些蓝牙设备的地址是固定的,但是有些每次开机起来是不一样的,又有些设备地址在正常运行过程中会变化呢。

蓝牙设备通过地址和地址类型来标识自己,地址类型指示是public device address(公共地址)或者random device address(随机地址),两种设备地址都是48bit的。

一个设备至少包含一种地址类型,可以同时包含两种。

当两个设备地址进行比较时,该比较应包括设备地址类型(如果两个地址类型不同,即使两个48bit未地址相同也不同)。

2. Public device address

设备唯一地址,不会变化。正常情况下,该地址是需要向IEEE申请的。企业交钱,IEEE保证地址的唯一性。

3. Random device address

在BLE时代,只有Public Device Address还不够,因为:

  1. 需要购买
  2. 安全因素。BLE很大一部分的应用是广播通信,这意味着主要知道了设备的地址,就可以获取所以的信息,这是不安全的。

随机地址可以细分为三种地址类型,通过48bit地址的最高2位决定。

Address[47:46]Sub-Type
0b00Non-resolvable private address
0b01Resolvable private address
0b10Reserved for future use
0b11Static device address

3.1 Static device address

Static device address 是随机生成的,需满足以下两个条件:

  1. 最高两位为1
  2. 不能全为0或1
    在这里插入图片描述
    如果使用的是静态随机地址,则每次开机的时候地址随机生成后不会再改变。下一次上电的时候可以改变,但不是强制的,因此可以保持变。

如果设备的静态地址发生变化,则存储在对端设备的配对信息将无效,并且使用旧地址重连会失败。

3.2 Non-resolvable private address

Non-resolvable private address 是随机生成的,需满足以下三个条件:

  1. 最高两位为0
  2. 不能全为0或1
  3. 不能和 Public device address 相同
    在这里插入图片描述

3.3 Resolvable private address

不可解析私密地址需满足以下条件:

  1. 高24bit为随机数,且最高 2bits 为 “10”
  2. 低 24bits 是随机数和 IRK 通过 hash 运算得到 hash 值,hash=ah(IRK,prand)
    在这里插入图片描述
    对端BLE设备扫描到该类型地址后,用本地 IRK 和该地址的 prand 进行 ah 运算,如果得到值和该类型地址低 24bits 一致才进行后续操作。

4. 总结

蓝牙设备地址可分为4种:

  1. Public device address
  2. Static device address
  3. Non-resolvable private address
  4. Resolvable private address

Public device address 是唯一不变的,相当于是设备的MAC地址。

Static device address在初始化后不会改变。

Static Device Address通过地址随机生成的方式,解决了部分问题,Private Device Address则更进一步,通过定时更新和地址加密两种方法,提高蓝牙地址的可靠性和安全性。

Non-resolvable private address 和 Resolvable private address在系统运行中可以指定周期更新(广播、扫描、已连接等过程中都有可能更新),更新的周期由GAP规定,称作T_GAP(private_addr_int),建议值是15分钟,不能大于1小时。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强人电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值