This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2564MODA:BLE:请求加密刷新

Guru**** 2595805 points
Other Parts Discussed in Thread: TM4C123GH6PM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/754264/cc2564moda-ble-request-encryption-refresh

器件型号:CC2564MODA
主题中讨论的其他器件:TM4C123GH6PM

尊敬的 TI 团队:

我正在处理应用的 BLE 配对过程(使用 Bluetopia 协议栈)、现在、一切都运行良好。 以下是我的连接/配对过程:

  1. 移动中心连接到我的设备。
  2. 当 Mobile 读取/写入特征时,我们初始化绑定过程(可配对模式:EnableSecureSimplePairing)并存储 irk (与此类似,我们可以将设备 LE 地址标识为可解析地址)
  3. 当我达到可存储的最大 irk 数时、我删除最早的 IRK 并替换为新的 IRK。

问题是手机即使我没有绑定信息也要请求 LTK (这在我的应用程序中有点问题)。

因此,我想知道是否有任何方法可以警告已连接的设备我要刷新加密并重新启动绑定过程? 显然、Android 和 IOS 无法通过应用程序删除设备的绑定信息(或已弃用)。  

我已经尝试对  latLongTermKeyRequest 事件作出否定响应、或调用  GAP_LE_Request_Security、 但这些都不起作用。 我很喜欢这里

提前感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谦逊 一旦、您器件以对 LTK 的否定应答进行响应、对等器件应重新协商并重新绑定。 您可以获取 FW 日志吗? 您使用的是哪款主机 MCU/处理器?

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,哈里!  

    感谢您的快速反应我推荐=)  

    我使用的是 TM4C123GH6PM。

    我在两个不同的用例中打印了日志(我们仍然处于相同的配置->器件上没有绑定信息、移动端的绑定信息)。


    第一个案例:

    当我发现我们没有绑定信息,但移动设备请求 LTK (latLongTermKeyRequest 事件)时,我返回:  

    GAP_LE_Authentication_Response_Information.GAP_LE_Authentication_Type = larLongTermKey;
    GAP_LE_Authentication_Response_Information.Authentication_Data_Length = 0;
    GAP_LE_Authentication_Response (BluetoothStackID、Authentication_Event_Data->BD_ADDR、&GAP_LE_Authentication_Response_Information); 

    日志

    GAP_LE_Event_Callback:2.

    大小为16的 etLE_Connection_Complete。
    状态:0x00。
    角色:从设备。
    地址类型:随机。
    可解析的地址: 0/索引:0

    GATT 回调数据:EVENT_Data = NULL。
    GAP_LE_Event_Callback:6.
    GAPLE_Authentication:0
    LatKeyRequest:
    未连接设备的绑定信息
    GAP_LE_Event_Callback:3.

    大小为9的 etLE_Disconnection_complete。
    断开原因:0x6
    GAP_LE_Advertising_Enable 成功。
    转染更新状态:-1
    要求连接间隔最大值:30

     

    在这里、移动设备会立即断开连接。


    第二种情况:  

    当移动设备请求 LTK 时,我生成它并在任何情况下(是否绑定信息)发送它,并使用以下代码:  

    GAP_LE_Regenate_Long_term_Key (BluetoothStackID、(Encryption_Key_t *)(&DHK)、(Encryption_Key_t *)(&ER)、Authentication_Event_Data->Authentication_Event_Data.Long_term_Key_Request.EDIV、&(Authentication_Event_Data->Authentication_Event_Data_Request_Key_Key_Key_Key_Request.Key_Key_Key_Key.EDIV) GeneratedLTK);
    
    /*使用重新生成的长期密钥进行响应(GeneratedLTK)。 */
    GAP_LE_Authentication_Response_Information.GAP_LE_Authentication_Type = larLongTermKey;
    GAP_LE_Authentication_Response_Information.Authentication_Data_Length = GAP_LE_Long_TERM_KEY_information_data_size;
    GAP_LE_Authentication_Response_Information.Authentication_Data.Long_term_Key_Information.Encryption_Key_Size = GAP_LE_Maximum_encryption_key_size;
    GAP_LE_Authentication_Response_Information.Authentication_Data.Long_Key_Information.Long_Key_Information.Long_Key_Information_Key_Key_Key_Key_Key_ = GeneratedLTK;
    
    GAP_LE_Authentication_Response (BluetoothStackID、Authentication_Event_Data->BD_ADDR、&GAP_LE_Authentication_Response_Information); 

    日志

    GAP_LE_Event_Callback:2.

    大小为16的 etLE_Connection_Complete。
    状态:0x00。
    角色:从设备。
    地址类型:随机。
    可解析的地址: 0/索引:0

    GATT 回调数据:EVENT_Data = NULL。
    GAP_LE_Event_Callback:6.
    GAPLE_Authentication:0
    LatKeyRequest:
    GAP_LE_Regenerate_Long_term_Key 成功。
    GAP_LE_Event_Callback:4.

    大小为8的 etLE_Encryption_Change。
    变化更新状态:0
    要求连接间隔最大值:30
    GAP_LE_Event_Callback:8.
    GAP_LE_Event_Callback:9.

    已更新大小为14的 etLE_Connection_Parameter_Updated。
    连接间隔:30。
    从器件延迟:0。
    监控超时:5000。

    此处、我们已连接到移动设备、但仍然没有绑定信息。

    希望它能有所帮助...

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    获取 FW 日志将有助于我们了解失败的原因。 要获取 FW 日志、请点击此处:
    processors.wiki.ti.com/.../CC256x_Logger_User_Guide

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否成功获取了 FW 日志? 还是问题已解决?