zoukankan      html  css  js  c++  java
  • 9.BLE---安全机制之白名单

    1. 白名单机制

    • 白名单(white list)是BLE协议中最简单、直白的一种安全机制。
    • 所谓的白名单,就是一组蓝牙地址。
    • 通过白名单,可以只允许特定的蓝牙设备(白名单中列出的)扫描(Scan)、连接(connect)我们。
    • 也可以只扫描、连接特定的蓝牙设备(白名单中列出的)。

    2.HCI层操作白名单的命令

    2.1 LE Read White List Size Command

    该命令的格式为:

    OCF

    Command parameters

    Return Parameters

    0x000F

       

    Status
    White_List_Size

    Status,命令执行的结果,0为success。

    White_List_Size,size,范围是1~255。

    注2:由此可知,白名单是保存在controller中,由于size的范围是1~255,因此controller必须实现白名单功能(最少保存一个)。

    2.2 LE Clear White List Command,将controller中的白名单清空

    该命令的格式为:

    OCF

    Command parameters

    Return Parameters

    0x0010

       

    Status

    Status,命令执行的结果,0为success。

    2.3 LE Add Device To White List Command,将指定的设备添加到白名单

    该命令的格式为:

    OCF 

    Command parameters

    Return Parameters

    0x0011

    Address_type(1 byte)
    Address(6 bytes)

    Status

    Address_type,设备的地址类型[1],0为Public Device Address,1为Random Device Address。

    Address,设备的地址。

    Status,命令执行的结果,0为success。

    2.4 LE Remove Device From White List Command,将指定的设备从白名单中移除的命令

    该命令的格式为:

    OCF

    Command parameters

    Return Parameters

    0x0012

    Address_type(1 byte)
    Address(6 bytes)

    Status

    Address_type,设备的地址类型[1],0为Public Device Address,1为Random Device Address。

    Address,设备的地址。

    Status,命令执行的结果,0为success。

    最后需要说明的是,当controller处于以下三个状态的时候,以上命令除"LE Read Resolving List Size Command"外,均不能执行:

    正在advertising;

    正在scanning;

    正在connecting。

    3. 白名单使用策略有关的命令

    BLE设备在发起Advertising、Scanning或者Connecting操作的时候,可以通过Set Advertising Parameters、Set Scan Parameters或者LE Create Connection Command,设置Advertising、Scanning或者Connecting的过滤策略(Filter_Policy),具体如下:

    3.1 Advertising时的白名单策略

    LE Set Advertising Parameters Command的命令格式为:

    OCF

    Command parameters

    Return Parameters

    0x0006


    Advertising_Filter_Policy(1 byte)

    Status

    该命令的其它参数请参考[2],Advertising_Filter_Policy的含义如下:

    0x00,禁用白名单机制,允许任何设备连接和扫描。

    0x01,允许任何设备连接,但只允许白名单中的设备扫描(scan data中有敏感信息?)。

    0x02,允许任何设备扫描,但只允许白名单中的设备连接。

    0x03,只允许白名单中的设备扫描和连接。

    3.2 Scanning时的白名单策略

    LE Set Scan Parameters Command的命令格式为:

    OCF

    Command parameters

    Return Parameters

    0x000B


    Scanning_Filter_Policy(1 byte)

    Status

    Scanning_Filter_Policy的含义如下:

    0x00,禁用白名单机制,接受所有的广播包(除了那些不是给我的directed advertising packets)。

    0x01,只接受在白名单中的那些设备发送的广播包(除了那些不是给我的directed advertising packets)。

    0x02,和白名单无关,不再介绍。

    0x03,接受如下的广播包:在白名单中的那些设备发送的广播包;广播者地址为resolvable private address的directed advertising packets;给我的给我的directed advertising packets。

    注3:Scanning时的白名单策略有点奇怪,既然是主动发起的,要白名单的意义就不大了吧?

    3.3 Connecting时的白名单策略

    LE Create Connection Command的命令格式为:

    OCF

    Command parameters

    Return Parameters

    0x000D


    Initiator_Filter_Policy(1 byte)

    Status

    Initiator_Filter_Policy的含义如下:

    0x00,禁用白名单机制,使用Peer_Address_Type and Peer_Address指定需要连接的设备。

    0x01,连接那些在白名单中的设备,不需要提供Peer_Address_Type and Peer_Address参数。

     

    本文参考:http://www.wowotech.net/bluetooth/ble_white_list.html

  • 相关阅读:
    MD5算法--网盘秒传
    无线网络定位算法综述
    android学习---异步任务(AsyncTask)
    python中局部变量的定义
    python3里函数怎么样使用元组或字典作为参数调用(复制他人博客)
    调试exynos4412—ARM嵌入式Linux—LEDS/GPIO驱动之一
    Linux入门之——安装虚拟机软件
    Linux学习方法之以始为终—Linux工作分类
    Linux基础系列—Linux内核源码目录结构
    Linux基础系列—Linux体系结构和Linux内核结构
  • 原文地址:https://www.cnblogs.com/yuqilihualuo/p/9568185.html
Copyright © 2011-2022 走看看