嗨,我想在这个参考设计中启用安全功能。我通过了所有步骤的形式教程和软件部分指南。现在的DA1485设备要求从手机上输入pin码,但其所有的服务都是在手机上免费接入的,而且不需要确认密码就可以工作。
当然,专有应用程序DSPS跳过了连接,但是我的dsp可以在没有任何确认的情况下配对和工作。
嗨Andrey_Kiselnikov,
请您澄清一下您使用的是哪种SDK?请注意,安全教程是基于sdk6.0.4的。强烈建议使用最新版本的SDK6.0.8。
谢谢,总理对话
我使用这个项目包中的SDK。在此项目附加的发布说明中写道,它基于SDK 6.0.6。
您好,您对此问题有任何更新吗?
您必须更改每个特征的权限才能获得授权。如果将特征设置为AUTH,这意味着您将向特征添加安全性,并且需要授权。请您澄清一下您使用的是哪种安全方案?请将user_default_hnd_conf结构的.security_request_场景检查到user_config.h头文件中。使用DEF_SEC_REQ_NEVER选项时,在读/写特征时需要授权;使用DEF_SEC_REQ_ON_CONNECT时,连接期间需要授权
我检查了两种情况。使用def_sec_req_on_connect授权所需,但我可以通过设备跳过并读取和写入数据。使用def_sec_req_never,我可以在没有任何安全请求的情况下完成所有内容。此外,我在使用DA14580设备的论坛上发现了同样的问题(连接附加的链接)。https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...–-软件/仅允许配对请求pin码
很奇怪,读写操作的安全请求是通过选择参数“DEF_SEC_REQ_NEVER”来启用的。
你能从SDK6的默认安全示例下载固件吗?你也面临同样的问题吗?我已经测试过了,我不能复制你的问题。另外,请您澄清一下,您是开发自己的应用程序,还是试图修改默认的bleu app_安全示例?DEF_SEC_REQ_从不涉及安全场景,它并不意味着在请求读写操作时通过选择参数启用安全性。请注意,每个特性都有其自身的安全性。请检查您是否正在使用app_set_prf_srv_perm(TASK_ID_CUSTS1,app_CUSTS1_SEC_REQ);命令。此命令启用所有特征的安全性,并覆盖您赋予它们的权限数据库。所以,如果您正在使用它,您将能够访问数据库的所有特征,而无需任何安全请求。您过去发布的线程是针对DA14680芯片而不是针对DA14580的,所以这对您没有帮助。
我使用DSPS V6.150.2参考项目(https://support.dialog semiconductor.com/resource/da14585 dialog serial-。。。),而不是ble_app_安全示例。所以,我需要在这个参考项目中启用安全性。问题是,这个参考设计提供了电话配对请求的所有服务,但我启用了所有的安全设置。
DSP参考应用程序不支持安全性,因此如果要使用此应用程序,则需要自己实现。正如我已经提到的那样,DSPS演示不使用安全功能,因此设备之间没有配对,这就是为什么您能够在不配对的情况下读取/写入该特征。您可以通过在da1458x_config_basic.h中设置cfg_app_security定义来启用安全性,并且还将成员Security_Request_scenario更改为def_sec_req_on_connect,以便在连接时请求安全性。这将根据位于User_Security_Information中的User_Config.h文件中的参数来绑定您的设备。请检查一下ble_app_security.为了了解如何实现安全功能的SDK示例。此外,我强烈建议您遵循这些步骤教程5:配对、结合与安全“在DSP中启用安全性。您可以在“教程”部分的“文档”选项卡中或通过以下链接找到教程
https://support.dialog-seminile.com/system/files/restricted/training_05_ble_security_example_v1.1.pdf.
在开始在论坛之前,我在上一篇文章中完成了所有这些步骤。问题是,在启用所有安全功能(根据培训5手册)后,以及软件部分指南的建议我有下一个情况:1.尝试将设备连接到电话后,该设备向手机应用程序发送配对请求2我看到一个带有pin码输入文本框的系统对话框窗口3.我可以跳过这个窗口,阅读和写作服务仍然可以从手机中获得
因此,我需要帮助更改user_app_callbacks结构或default_app_on_connection函数,因为它在获取代码交换过程的结果之前,它可以启用所有服务。
请从SDK的bl_app_security示例检查user_app_init()函数。如果定义了BLE_APP_SEC,则将执行APP_set_prf_srv_perm(任务_ID_CUSTS1,APP_CUSTS1_SEC_REQ)。根据此服务配置文件的访问权限,设置CUSTU权限。请将APP_CUSTS1_SEC_REQ更改为SRV_PERM_AUTH,好吗?似乎从配置文件数据库禁用了安全性
此函数 - app_set_prf_srv_perm()在“DSPS-V61502”项目中,但从未执行,我应该在哪里添加它来执行?
嗨,有人吗?
3.我可以跳过这个窗口,阅读和写作服务仍然可以从手机中获得
如果拒绝配对,则应调用gapc\u bond\u ind\u handler(),此函数将断开电话连接。
static const struct ke_msg_handler app_sec_process_handlers [] ={.......{gapc_bond_ind,(ke_msg_func_t)gapc_bond_ind_handler},
谢谢,但如果我输入错误的密钥,则该程序仅进入“GAPC_BOND_IND_HAND_HANDLER”中的“GAPC_PAIRING_FAILED:”。如果我在电话屏幕上逃脱这个窗口或忽略它,程序仍然可以工作。
嗨安德烈,
你可以在use-config.h中测试不同的IO功能类型。我认为你应该禁用手机上的用户退出配对窗口。你能用Light Bule来测试你的固件吗?
/*************************************************************设备IO功能(@see gap_io_cap)** - 只显示GAP_IO_CAP_DISPLAY_ONLY*-GAP_IO_CAP峎显示峎否显示YES NO*-仅限于键盘* - GAP_IO_CAP_NO_INPUT_NO_OUTPUT无输入无输出*-GAP_IO_CAP_KB_显示键盘显示**仅选择一个选项。*************************************************************/#define user_cfg_feat_io_cap gap_io_cap_no_input_no_output // gap_io_cap_display_yes_no
测试它们,它仍然能够连接而不确认密钥。
我通过替换在密钥_succeed案例之后在安全任务状态机中替换发送功能消息功能来找到解决方案。
很高兴您的问题已得到修复。谢谢你的迹象。
嗨Andrey_Kiselnikov.
我想要在DSP上添加对功能,
你能给我你的源代码参考吗
嗨Andrey_Kiselnikov,
请您澄清一下您使用的是哪种SDK?请注意,安全教程是基于sdk6.0.4的。强烈建议使用最新版本的SDK6.0.8。
谢谢,总理对话
我使用这个项目包中的SDK。在此项目附加的发布说明中写道,它基于SDK 6.0.6。
您好,您对此问题有任何更新吗?
嗨Andrey_Kiselnikov,
您必须更改每个特征的权限才能获得授权。如果将特征设置为AUTH,这意味着您将向特征添加安全性,并且需要授权。请您澄清一下您使用的是哪种安全方案?请将user_default_hnd_conf结构的.security_request_场景检查到user_config.h头文件中。使用DEF_SEC_REQ_NEVER选项时,在读/写特征时需要授权;使用DEF_SEC_REQ_ON_CONNECT时,连接期间需要授权
谢谢,总理对话
我检查了两种情况。使用def_sec_req_on_connect授权所需,但我可以通过设备跳过并读取和写入数据。使用def_sec_req_never,我可以在没有任何安全请求的情况下完成所有内容。此外,我在使用DA14580设备的论坛上发现了同样的问题(连接附加的链接)。https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...–-软件/仅允许配对请求pin码
很奇怪,读写操作的安全请求是通过选择参数“DEF_SEC_REQ_NEVER”来启用的。
您好,您对此问题有任何更新吗?
嗨Andrey_Kiselnikov,
你能从SDK6的默认安全示例下载固件吗?你也面临同样的问题吗?我已经测试过了,我不能复制你的问题。另外,请您澄清一下,您是开发自己的应用程序,还是试图修改默认的bleu app_安全示例?DEF_SEC_REQ_从不涉及安全场景,它并不意味着在请求读写操作时通过选择参数启用安全性。请注意,每个特性都有其自身的安全性。请检查您是否正在使用app_set_prf_srv_perm(TASK_ID_CUSTS1,app_CUSTS1_SEC_REQ);命令。此命令启用所有特征的安全性,并覆盖您赋予它们的权限数据库。所以,如果您正在使用它,您将能够访问数据库的所有特征,而无需任何安全请求。您过去发布的线程是针对DA14680芯片而不是针对DA14580的,所以这对您没有帮助。
谢谢,总理对话
我使用DSPS V6.150.2参考项目(https://support.dialog semiconductor.com/resource/da14585 dialog serial-。。。),而不是ble_app_安全示例。所以,我需要在这个参考项目中启用安全性。问题是,这个参考设计提供了电话配对请求的所有服务,但我启用了所有的安全设置。
嗨Andrey_Kiselnikov,
DSP参考应用程序不支持安全性,因此如果要使用此应用程序,则需要自己实现。正如我已经提到的那样,DSPS演示不使用安全功能,因此设备之间没有配对,这就是为什么您能够在不配对的情况下读取/写入该特征。您可以通过在da1458x_config_basic.h中设置cfg_app_security定义来启用安全性,并且还将成员Security_Request_scenario更改为def_sec_req_on_connect,以便在连接时请求安全性。这将根据位于User_Security_Information中的User_Config.h文件中的参数来绑定您的设备。请检查一下ble_app_security.为了了解如何实现安全功能的SDK示例。此外,我强烈建议您遵循这些步骤教程5:配对、结合与安全“在DSP中启用安全性。您可以在“教程”部分的“文档”选项卡中或通过以下链接找到教程
https://support.dialog-seminile.com/system/files/restricted/training_05_ble_security_example_v1.1.pdf.
谢谢,总理对话
在开始在论坛之前,我在上一篇文章中完成了所有这些步骤。问题是,在启用所有安全功能(根据培训5手册)后,以及软件部分指南的建议我有下一个情况:
1.尝试将设备连接到电话后,该设备向手机应用程序发送配对请求
2我看到一个带有pin码输入文本框的系统对话框窗口
3.我可以跳过这个窗口,阅读和写作服务仍然可以从手机中获得
因此,我需要帮助更改user_app_callbacks结构或default_app_on_connection函数,因为它在获取代码交换过程的结果之前,它可以启用所有服务。
嗨Andrey_Kiselnikov,
请从SDK的bl_app_security示例检查user_app_init()函数。如果定义了BLE_APP_SEC,则将执行APP_set_prf_srv_perm(任务_ID_CUSTS1,APP_CUSTS1_SEC_REQ)。根据此服务配置文件的访问权限,设置CUSTU权限。请将APP_CUSTS1_SEC_REQ更改为SRV_PERM_AUTH,好吗?似乎从配置文件数据库禁用了安全性
谢谢,总理对话
此函数 - app_set_prf_srv_perm()在“DSPS-V61502”项目中,但从未执行,我应该在哪里添加它来执行?
您好,您对此问题有任何更新吗?
嗨,有人吗?
嗨Andrey_Kiselnikov,
3.我可以跳过这个窗口,阅读和写作服务仍然可以从手机中获得
如果拒绝配对,则应调用gapc\u bond\u ind\u handler(),此函数将断开电话连接。
static const struct ke_msg_handler app_sec_process_handlers [] =
{
.......
{gapc_bond_ind,(ke_msg_func_t)gapc_bond_ind_handler},
谢谢,但如果我输入错误的密钥,则该程序仅进入“GAPC_BOND_IND_HAND_HANDLER”中的“GAPC_PAIRING_FAILED:”。如果我在电话屏幕上逃脱这个窗口或忽略它,程序仍然可以工作。
嗨安德烈,
你可以在use-config.h中测试不同的IO功能类型。我认为你应该禁用手机上的用户退出配对窗口。
你能用Light Bule来测试你的固件吗?
/************************************************************
*设备IO功能(@see gap_io_cap)
*
* - 只显示GAP_IO_CAP_DISPLAY_ONLY
*-GAP_IO_CAP峎显示峎否显示YES NO
*-仅限于键盘
* - GAP_IO_CAP_NO_INPUT_NO_OUTPUT无输入无输出
*-GAP_IO_CAP_KB_显示键盘显示
*
*仅选择一个选项。
************************************************************
*/
#define user_cfg_feat_io_cap gap_io_cap_no_input_no_output // gap_io_cap_display_yes_no
测试它们,它仍然能够连接而不确认密钥。
我通过替换在密钥_succeed案例之后在安全任务状态机中替换发送功能消息功能来找到解决方案。
嗨Andrey_Kiselnikov,
很高兴您的问题已得到修复。谢谢你的迹象。
谢谢,总理对话
嗨Andrey_Kiselnikov.
我想要在DSP上添加对功能,
你能给我你的源代码参考吗