• [BLE--Link Layer]设备蓝牙地址


    简述

    不论什么网络设备而言,都会有自己独特的一个MAC地址,不然在设备量较大的情况下非常可能造成通信的混乱。蓝牙是无线通信中使用非常广泛的技术。当然其蓝牙地址也是相当的重要的了。

    蓝牙地址简述

    种类划分
    - public地址
    - random地址
    蓝牙地址长度,48bit,即6个byte。

    Public地址

    该地址是固定的,厂商设定:
    这里写图片描写叙述
    public addr和resolvable random addr和unresolvable random addr

    Random地址

    Random地址事实上又分为两种:
    - Static地址
    - Private地址

    Static地址

    这里写图片描写叙述
    这样的地址是在蓝牙设备上电初始化成功后,就不会再变化,而到关闭电源再重新启动,才会使用一个新的值。

    Private地址

    这里写图片描写叙述
    这样的是non resolvable的private地址,其值不能和public地址一样。对于这样的地址,假设都没有办法解析出,不知道须要这类地址有什么作用?以后知道了再来补充吧。只是认为可能是对Public地址的一个补充。

    这里写图片描写叙述
    这样的是resolvable的private地址。prand部分是随机生成的24bit数值。hash部分使用例如以下的方式生成:

    hash = ah(IRK, prand)

    ah是SMP部分的随机地址生成函数,IRK是密钥(Identity Resolving Key),先随机生成prand部分,然后用这个算法生成hash,然后将hash和prand部分填入上图中相应bit区域,就形成了resolvable private address(RPA)了。
    由于上面这样的地址是resolvable的,当然得有相应的地址解析的方法了,通过解密所获得对方的蓝牙地址,才干够进行某些通信,看来是BLE的新特性所提供安全性的一些手段了。
    在拿到对方的resolvable private address(RPA)后。本地设备从RPA中取出prand部分,然后会依据上面hash的生成方式生成一个叫localhash的:

    localHash = ah(IRK, prand)

    然后将这个localHash和从RPA中取出的hash部分进行比較,假设同样,那么对方设备就被识别了。

    感觉这里的识别作用就是确定应当用哪个IRK和对方设备交互。对于这样的random地址的方式,后面还得再看看。应当是比較新的特性。

  • 相关阅读:
    delphi point数据类型
    Sql Server 2008 R2链接服务器Oracle数据库
    ORA-28000 账号被锁定的解决办法
    [Oracle] sqlplus / as sysdba ora-01031 insufficient privileges
    Oracle的操作系统认证(/ as sydba 登录方式)
    Delphi使用线程TThread查询数据库
    oracle
    统计字符串中字符出现的次数-Python
    Jmeter保存下载的文件
    如何在Microsoft Store上免费获得 HEIF、HEVC 编码支持
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7074285.html
Copyright © 2020-2023  润新知