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.

[参考译文] CCS/CC2650:密码保护对器件的访问

Guru**** 2587365 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/596316/ccs-cc2650-password-protect-access-to-device

器件型号:CC2650

工具/软件:Code Composer Studio

您好!

我一直在阅读软件开发指南、似乎可以显示随机生成的密码、以便知道只有能够看到该代码的用户才能访问器件。 我希望将访问权限更限于仅信任的用户。 是否有办法使用 GAP 绑定管理器设置密码系统、以便只有知道密码的人才能访问器件? 还是需要在应用级别完成此操作?

感谢您的帮助、如果您能深入了解如何实施类似的功能、我们将不胜感激。

此致、

Ian

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

    默认情况下、simple Peripheral 项目使用静态密码。 您可以根据需要选择不显示它。 您可以查看 simple_peripheral.c 中的"设置 GAP 绑定管理器"、了解如何添加静态密钥。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rachel、

    我一直将项目建立在 Simple Peripheral 示例项目的基础之上、但我不记得有人要求提供与传感器标签配对的密码。 我尝试用6位数字替换密钥、但在与我的手机配对时、仍然没有要求提供密码。 我还尝试禁用绑定、以防我第一次输入密码、它将密钥保存在 SNV 中、但也没有更改任何内容。  

    您能否告诉我需要更改哪些内容才能启用静态密码? 我的当前设置如下。

    //设置 GAP 绑定管理器
    {
    uint32_t 密钥= 123456;//0;//密钥"000000"
    uint8_t pairMode = GAPBOND_Pairing_mode_wait_for_Req;
    uint8_t MIPTM = true;
    uint8_t ioCap = GAPBOND_IO_CAP_DISPLAY_ONLY;
    uint8_t 绑定= true;
    
    GAPBondMgr_SetParameter (GAPBOND_DEFAULT_Passcode、sizeof (uint32_t)、
    密钥);
    GAPBondMgr_SetParameter (GAPBOND_Pairing_mode、sizeof (uint8_t)、&pairMode);
    GAPBondMgr_SetParameter (GAPBOND_MITM_protection、sizeof (uint8_t)、&MIPTM);
    GAPBondMgr_SetParameter (GAPBOND_IO_Capabilities、sizeof (uint8_t)、&ioCap);
    GAPBondMgr_SetParameter (GAPBOND_BUSIONIND_ENABLED、sizeof (uint8_t)、&bonding);
    } 

    感谢您的帮助!

    谢谢、

    Ian

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

    哎呀、

    我的特征不需要身份验证。 它现在正在工作。 解决方案是在 simple_gatt_profile.c 中的"配置文件属性-表"下将 GATT_permit_read 或 GATT_permit_permit 写入更改为 GATT_permit_AUTHN_read 或 GATT_permit_AUTHEN_WRITE、以获取要保护的特征值。 例如、

    /*********
    *配置文件属性-表
    */
    
    static gattAttribute_t simpleProfileAttrTbl[SERVAPP_NUM_ATTR_SUPPORTED]=
    {
    //简单配置文件服务
    {
    {ATT_BT_UUUART_SIZE、primServiceUUID}、/*类型*/
    GATT_permit_read、 /*权限*/
    0、 /*句柄*/
    (uint8 *) simpleProfileService /* pValue */
    }、
    
    // Characteristic 1 Declaration
    {
    {ATT_BT_UUUART_SIZE、characterUUID}、
    GATT_permit_read、
    0、
    simpleProfileChar1Props (simpleProfileChar1Props)
    }、
    
    //特征值1.
    {
    {ATT_BT_UUID_SIMPLEProfilechar1UUID}、
    GATT_permit_AUTHEN_READ | GATT_permit_AUTHEN_WRITE、 
    0、
    //simpleProfileChar1 //现在是一个数组,因此删除&作为一个数组是一个指针
    simpleProfileChar1
    }、
    
    //特征1用户说明
    {
    {ATT_BT_UUUART_SIZE、charUserDescUUID}、
    GATT_permit_read、
    0、
    simpleProfileChar1UserDesp
    }、 

    此外,如果您使用 iOS 应用进行连接,则可能需要在“设置”->“蓝牙”->“简单 BLE 外设”旁边的蓝色 I”中忘记该设备,然后才会出现提示,提示您输入密码。

    我的"设置 GAP 绑定管理器"代码块与我之前的帖子中的代码块相同。

    再次感谢您的帮助!

    Ian