博客
关于我
BLE(15)—— Privacy
阅读量:825 次
发布时间:2019-03-24

本文共 2880 字,大约阅读时间需要 9 分钟。

  • 隐私策略简述
    除了设备过滤机制以外,BLE协议还提供了隐私策略(Privacy)以保护设备地址不被窃取。Privacy的核心思想是通过加密和解密过程保护地址安全。与白名单机制类似,若设备需要使用LL Privacy机制,则需要在Link Layer层保存一个Resolving List。其工作原理如下:
  • 1)在白名单机制中,将受信任设备的Identity Address加入白名单中,并采用适当的白名单策略。

    2)若设备需使用LL Privacy策略保护自身及对方的地址,则需将自身(local)和对方(peer)的地址及加密Key存储在Resolving List中。
    3)Resolving List的每个条目包含以下信息:

    • 本地的IRK(Local IRK):用于将本地设备的Identity Address加密为Resolvable Private Address。IRK可为0,表示直接使用Identity Address。
    • 对端的IRK(Peer IRK):用于将对端设备的Resolvable Private Address解析为Identity Address,可为0,表示对端地址即为Identity Address。
    • 对端设备的Identity Address:用于唯一标识对端设备。
    • Address Type:与Peer Device Identity Address配合使用,用于地址比对。
    1. Resolving List
      Resolving List是Link Layer层由上层通过HCI命令提供的表,负责地址加密与解密的操作。其具体功能包括:
      • 发送数据包时:当需要填充AdvA时,若Resolving List中存在非0的Local IRK条目,则使用该Local IRK将Identity Address加密为Resolvable Private Address填充至AdvA;否则直接使用Identity Address。同理,若需要填充InitA,则检查Resolving List中是否存在匹配的非0 Peer IRK条目,以决定是否加密对端Identity Address为Resolvable Private Address。
      • 接收数据包时:若接收到的数据包中的AdvA或InitA为Resolvable Private Address,则遍历Resolving List中的IRK条目,尝试解析Identity Address。若匹配,则解析成功并进行后续处理;若未匹配且启用了白名单或LL Privacy策略,则丢弃数据包。

      此过程对上层实体(HCI之上)是透明的,Link Layer自行完成地址加密、解密及比对操作。

      1. Private Address Generation Interval

        Resolvable Private Address类型的地址需与一个定时器配合使用,定期生成新的Resolvable Private Address。为了平衡连接建立效果和地址泄露风险,Spec推荐Setting定为15分钟。

      2. Privacy In The Advertising State

        在Advertising State下的Privacy处理流程可分为以下几种情形:

      3. 4.1 Connectable and scanable undirected event type

        • 发送包时:需要查看Resolving List是否存在非0的Local IRK条目,存在则将自身Identity Address加密为Resolvable Private Address填充至AdvA;否则直接使用Identity Address。
        • 接收连接请求时:若InitA为Resolvable Private Address且启用了地址解析功能,则遍历Resolving List中匹配的Peer IRK条目,尝试解析对端Identity Address。若匹配,则基于白名单策略决定是否接受连接;若未匹配,则无法建立连接。
        • 接收扫描请求时:处理策略与接收连接请求时类似,不在本文详述。

        4.2 Connectable directed event type

        • 发送包时:与4.1相同,需使用Local IRK将Identity Address加密为Resolvable Private Address填充至AdvA。
        • 发送TargetA时:若Resolving List中存在匹配的非0Peer IRK条目,则使用该Peer IRK将对端Identity Address加密为Resolvable Private Address填充至TargetA;否则直接使用Identity Address。
        • 接收连接请求时:与4.1相同,需解析InitA中的Resolvable Private Address并根据Resolving List中的条目判断是否接受连接。

        4.3 Non-connectable and non-scannable undirected and scannable undirected event types

        • 发送包时:与4.1相同,需使用Local IRK处理自身地址。
        • 接收扫描请求时:若ScanA为Resolvable Private Address且启用了地址解析功能,则遍历Resolving List中的Peer IRK条目解析对端Identity Address,并根据白名单策略决定是否回复。如果解析失败,则不回复。

        4.4 Connectable undirected event type

        • 发送包时:与4.1相同。
        • 接收连接请求时:与4.1相同,需解析InitA中的Resolvable Private Address并根据Resolving List判断连接是否可行。

        4.5 Non-connectable and non-scannable directed and scannable directed event types

        • 发送包时:与4.1相同。
        • 发送TargetA时:与4.2相同。
        • 接收扫描请求时:与4.3相同。

        在以上所有情形中,安全策略均依赖于Resolving List中的Local IRK和Peer IRK信息,本地发出的地址信息需根据Local IRK加密,收到的地址信息需通过Peer IRK解析。

        1. Privacy In The Scanning State

          在Scanning State下的Privacy机制堪称与上文情形一致。Scanner发出的ScanA或TargetA需要根据Local IRK处理,收到的地址信息需通过Peer IRK解析,与本地或对方设备进行地址匹配。

        2. Privacy In The Initiating State

          本地发出的地址信息需使用Local IRK处理,收到的需通过Peer IRK解析,具体细节与上文情形一致。

    转载地址:http://dkyuk.baihongyu.com/

    你可能感兴趣的文章
    Qt开发笔记:QGLWidget、QOpenGLWidget详解及区别
    查看>>
    Position属性四个值:static、fixed、absolute和relative的区别和用法
    查看>>
    POSIX thread编程中关于临界区内条件变量的分析
    查看>>
    POSIX与程序可移植性
    查看>>
    posix多线程有感--自旋锁
    查看>>
    SpringBoot中集成海康威视SDK实现布防报警数据上传/交通违章图片上传并在linux上部署(附示例代码资源)
    查看>>
    POSIX标准和XSI扩展
    查看>>
    post install error,please remove node_moules before retry
    查看>>
    postcss-pxtorem 参数之selectorBlackList、exclude的用法
    查看>>
    Postek博思得标签打印机更换电脑,打印出来标签空白
    查看>>
    postfix+ dovecot搭建邮件服务器
    查看>>
    postfix在邮件服务器中的使用
    查看>>
    PostGIS 3.1.2软件安装详细教程(地图工具篇.8)
    查看>>
    PostGIS中获取所有EPSG的编码以及对应Proj4字符串
    查看>>
    SpringBoot中集成海康威视SDK实现布防报警数据上传/交通违章图片上传并在linux上部署(附示例代码资源)
    查看>>
    PostGIS在Windows上的下载与安装
    查看>>
    Qt开发——网络编程之UDP客户端
    查看>>
    postgis数据库优化_postgresql 性能优化
    查看>>
    postgis求面积、交集等相关函数
    查看>>
    postgis相关函数
    查看>>