7 posts / 0 new
Last post
wuhanpin
Offline
Last seen:1 year 3 months ago
Joined:2015-07-20 08:21
DA14583 连接认证如何实现

Hi, DIALOG
我想实现在蓝牙连接时有个认证身份的机制,避免所有的手机app都能连接我的DA14583,请问有什么机制可以实现?谢谢。

Device:
Qinjiny_Dialog
Offline
Last seen:2 days 12 hours ago
Staff
Joined:2016-11-01 05:47
你好

你好

有内置的安全管理机制,允许外部设备配对(pairing,可以进行单次连接)或者绑定(bonding,配对以后记录永久性的密钥),广播config选项里也可以设置针对白名单设备开放扫描或者连接,允许灵活性的身份认证

可以参考SDK里面DA1458x_SDK\5.0.x\projects\target_apps\ble_examples\ble_app_security的工程代码来了解相关功能。需要额外说明请参考软件开发者手册(UM-B-050)的8.38~8.49节里的指示和解说

wuhanpin
Offline
Last seen:1 year 3 months ago
Joined:2015-07-20 08:21
你好,

你好,
我使用的5.0.3的SDK 我们没有发现 DA1458x_SDK\5.0.x\projects\target_apps\ble_examples\ble_app_security 的工程啊。
我只发现了有这些工程:ble_app_barebone ble_app_peripheral ble_app_profile prox_monitor_ext prox_reporter prox_reporter_ext prox_reporter_ext_spi

Qinjiny_Dialog
Offline
Last seen:2 days 12 hours ago
Staff
Joined:2016-11-01 05:47
烦请下载目前最新release的 SDK5.0.4

烦请下载目前最新release的 SDK5.0.4

wuhanpin
Offline
Last seen:1 year 3 months ago
Joined:2015-07-20 08:21
你好

你好
我已经下了,但是我的项目已经在 5.0.3上完成了,我想在5.0.3上班添加 链接配对,可以吗?有没有例子?你的5.0.4在app_easy_security有比较大的改动直接移到 5.0.3上没编译通过。

Qinjiny_Dialog
Offline
Last seen:2 days 12 hours ago
Staff
Joined:2016-11-01 05:47
这里给你一些操作步骤用于给SDK5.0.3里的ble

这里给你一些操作步骤用于给SDK5.0.3里的ble_app_profile工程添加配对功能,希望对你的研发有帮助:

1. 在da1458x_config_basic.h里, 定义 CFG_APP_SECURITY

(改成 #define CFG_APP_SECURITY)

2. 在user_config.h里找到结构体security_configurationuser_security_configuration,按如下修改:

static const struct security_configuration user_security_configuration = {

.oob = GAP_OOB_AUTH_DATA_NOT_PRESENT,

.key_size = KEY_LEN,

.iocap = GAP_IO_CAP_DISPLAY_ONLY,

.auth = GAP_AUTH_REQ_MITM_BOND,

.sec_req = GAP_SEC1_AUTH_PAIR_ENC,

.ikey_dist = GAP_KDIST_SIGNKEY,

.rkey_dist = GAP_KDIST_ENCKEY,

.tk={

.key={0x40,0xE2,0x01,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},

},

.csrk={

.key={0xAB,0xAB,0x45,0x55,0x23,0x01,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},

},

};

key的值为hex: 0x01E240 = 123456,这里为了示范使用固定密码来配对,实际使用是随机生成的,看下一步

3. 在 app_default_handlers.c 中将函数default_app_on_tk_exch_nomitm()的头两行conmment掉。这两行用于生成随机的配对码(函数app_sec_gen_tk())。如果有需要也可以不conmment这两行,添加打印输出这个随机码以便在配对时使用

void default_app_on_tk_exch_nomitm(uint8_t connection_idx, struct gapc_bond_req_ind const * param)

{

// uint32_t pin_code = app_sec_gen_tk();

// app_easy_security_set_tk( connection_idx, (uint8_t*) &pin_code, 4 );

app_easy_security_tk_exch( connection_idx);

}

4.在 user_config.h 中将 .security_request_scenario=DEF_SEC_REQ_NEVER

改成

.security_request_scenario=DEF_SEC_REQ_ON_CONNECT

5.在 user_modules_config.h 修改以下定义:

#define EXCLUDE_DLG_SEC (0)

6.

•在user_callback_config.h 将各调回函数设为默认.

static const struct app_callbacks user_app_callbacks = {

.app_on_connection = default_app_on_connection,

.app_on_disconnect = default_app_on_disconnect,

.app_on_update_params_rejected = NULL,

.app_on_update_params_complete = NULL,

.app_on_set_dev_config_complete = default_app_on_set_dev_config_complete,

.app_on_adv_undirect_complete = default_app_on_adv_undirect_complete,

.app_on_adv_direct_complete = NULL,

.app_on_db_init_complete = default_app_on_db_init_complete,

.app_on_scanning_completed = NULL,

.app_on_adv_report_ind = NULL,

.app_on_pairing_request = default_app_on_pairing_request,

.app_on_tk_exch_nomitm = default_app_on_tk_exch_nomitm,

.app_on_irk_exch = NULL,

.app_on_csrk_exch = default_app_on_csrk_exch,

.app_on_ltk_exch = default_app_on_ltk_exch,

.app_on_pairing_succeded = NULL,

.app_on_encrypt_ind = NULL,

.app_on_mitm_passcode_req = NULL,

.app_on_encrypt_req_ind = default_app_on_encrypt_req_ind,

};

以上代码修改仅用于测试配对功能,一次只能绑定一台设备且掉电后无法重连(绑定信息存在RAM里),需要绑定多台设备请参考support网站reference design里的keyboard,mouse等支持多设备连接绑定的工程代码。

wuhanpin
Offline
Last seen:1 year 3 months ago
Joined:2015-07-20 08:21
你好,请问你的网站在什么地方可以提交问题

你好,请问你的网站在什么地方可以提交问题?我怎么都找不到提交问题的入口了。