【经验】解密低功耗蓝牙安全性之开发平台例程

2019-09-03 Silicon Labs
蓝牙,Bluetooth,BLE,BGM111 蓝牙,Bluetooth,BLE,BGM111 蓝牙,Bluetooth,BLE,BGM111 蓝牙,Bluetooth,BLE,BGM111

这篇文章将会介绍在Simplicity Studio C SDK下,如何使用低功耗蓝牙BLE)的相关特性,配对、绑定、加密和授权。


首先,我们给出一些关于BLE安全性的一些基础信息,并突出介绍附件的例程里的重要的代码片段。示例程序实现了一个加密传输功能,其特征值只能在配对和绑定完成才能被读出。


BLE安全性特征

最常见的无线通讯的威胁如下:

1)被动监听(Passive eavesdropping)

2)主动监听(Active eavesdropping = Man-in-the-Middle (MITM))

3)隐私(Tracking)


BLE定义了5种安全特性来对抗上述威胁:

1)配对(Pairing):设备间建立可信的连接(密钥(Key)的产生、交换,以及ID信息的交换)

2)绑定(Bonding):保存配对阶段所产生的Key

3)设备身份认证(Device authentication):验证两个设备具有相同的Keys(防护MITM)

4)加密(Encryption):数据加密(FIPS、NIST、AES128-CCM)

5)数据签名(Data signing,信息一致性):防止数据被修改


上述特征实现在BLE协议栈的不同层,参下图:


 

配对&绑定

配对:

• 配对是一个建立可信连接的过程

• 用于产生和交换密钥(Security Keys)

• 用于交换ID信息


BLE使用Secure Simple Pairing(SSP)配对模型:

• Just works:针对于没有交互界面的设备,无需用户操作,其无法提供MITM防护

• Pass key entry:用户需输入另一设备的显示屏所显示的pass key,其提供MITM防护

• Numeric comparison:用户需要确认双方显示屏所显示的pass keys。其提供MITM防护。注意:此方法在Blue Gecko的协议栈下还尚未支持

• Out-of-band:用其他技术交换keys,比如NFC


绑定:

• 保存keys以备之后使用

用于鉴别连接、验证设备ID等


隐私

• BLE提供隐私保护

• 设备可以使用公共地址或者私有(随机)地址

• 对于一个设备,其公共地址是固定且唯一的

• 随机地址可以随时间改变而改变,其可以对不想建立连接的设备隐藏其公共地址

• 绑定设备可以通过key来解析设备的公共地址

注意:随机地址尚未在Blue Gecko的协议中实现。


加密

• 加密过程用于保证数据的完整性和一致性

• 已配对或绑定的设备可以加密/解密连接中的数据

• BLE使用AES-128作为加密算法

注意:广播数据不支持加密


蓝牙4.2安全特性

• LE Secure connections:将Key的交换机制升级至更安全的配对流程-ECDH

• LE privacy 1.2:ID信息解析由HOST层转移到Controller层,这样提升了速度并减小了功耗

注意:蓝牙4.2的安全特性尚未在Blue Gecko的协议中实现。


示例程序

此应用程序是基于Simplicity Studio Bluetooth Smart C SDK 1.0.4版本,此应用程序是基于Blue Gecko SoC Starter Kit(SLWSTK6020A),同时只需要做很少的改动,它便可以用于BGM111BGM113


示例程序实现了一个特征值,其被另外设备读的前提是双方配对并绑定,以下是完成这一任务的具体步骤:

1)在GATT文件中,建立此属性的权限

例程包含一个叫my_secret的特征值。因为authenticated_read属性被设为“true”,所以其只有在加密连接中才能被读出。


 

2)使能配对和绑定

绑定可以通过Simplicity Studio的GUI使能,设个设定会在系统启动完成后调用函数gecko_cmd_sm_set_bondable_mode(1)。

 


3)建立安全管理

使用函数gecko_cmd_sm_configure(flags,io_capabilities)来完成安全相关配置。


flag参数的bit0:

• 允许不带MITM保护的绑定

• 绑定需带有MITM保护


flag参数的bit1:

• 允许不绑定直接加密数据

• 加密数据必须先绑定


flag的2-7位保留,应设为0。


capabilities参数指示设备支持的输入输出类型,不同的capabilities参数会导致不同的配对方法。


系统启动后,调用函数gecko_cmd_sm_configure; 



当使用sm_io_capability_displayonly或sm_io_capability_displayyesno作为io capabilities时,PIN码会显示在UART控制台,你需要在手机或平板端输入这个PIN码。


当使用sm_io_capability_keyboardonly或sm_io_capability_keyboarddisplay作为io capabilities时,PIN码会显示在手机或平板端,你需要在设备的UART控制台输入这个PIN码。


不要使用sm_io_capability_noinputnooutput,因为MITM保护不能在此模式下工作,配对和绑定将会失败。


4)在连接建立时,提升安全等级

在连接建立时间处理处,我们需要加入gecko_cmd_sm_increase_security函数。这将会触发配对流程。对于某些iOS版本的设备,这一步需要被跳过,因为iOS设备会主动发起配对请求。


如果pairing属性在GUI里被使能,gecko_cmd_sm_increase_security函数会自动被调用。


5)为gecko_evt_sm_passkey_display_id事件建立回调函数

gecko_evt_sm_passkey_display_id事件指示需要件pass key显示出来,在此例程中,此事件触发My Service_Passkey Display Cbk回调,并将pass key在UART控制台显示。



6)为gecko_evt_sm_passkey_request_id事件建立回调函数

此事件指示需要用户输入远端设备显示屏所显示的pass key。在此例程中,此事件触发回调函数My Service_Passkey Display Cbk。这个回调函数会读出UART控制台输入的passkey,实际读此输入的函数为MyService_Passkey Read函数。当pass key被读出后,调用sm_enter_pass key函数将此pass key送给协议栈。

 


如果pass key有效且绑定完成后,协议栈会产生一个gecko_msg_sm_bonded_evt_t事件。如果pass key无效或者由于某种原因绑定不成功,协议栈会产生一个gecko_evt_sm_bonding_failed_id事件。


测试此例程

下载Blue Gecko app,完成如下步骤:

1)将此例程烧录至WSTK。

2)删除手机或平板端关于此设备的绑定信息。

3)打开串口中断,COM口选择 J-LINK CDC UART.

4)打开Blue Gecko app并选择BLE&Stack&Profile test

5)连接设备至手机或平板。

6)按照串口终端和手机/平板的指示进行试验。



7)如果一切正常,你可以通过APP读取GATT的特征值,并在串口终端得到Bonding completed信息。


授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】浅析低功耗蓝牙绑定与配对的区别

在Silicon Labs为EFR32MG和EFR32BG系列提供Bluetooth SDK,配对在连接的时候实现,绑定通过gecko_sm_increase_security命令实现。

2018-02-26 -  设计经验

【经验】Silicon Labs蓝牙SoC EFR32BG射频性能生产测试方法

​Silicon Labs蓝牙SoC EFR32BG系列的产品支持Bluetooth5,Bluetooth5.1标准及蓝牙MESH网络功能,产品可方便的用于运动健身、消费类电子产品、信标和智能家居应用等等领域。本文详细介绍Silicon Labs蓝牙SoC EFR32BG芯片在产测阶段的射频性能测试的解决方案

2019-03-03 -  设计经验 代理服务 技术支持 批量订货

【经验】Silicon Labs蓝牙模块的PCB设计要点

Silicon Labs的蓝牙模块不注意PCB的设计会造成硬件性能下降的问题,比如,可能与其它的无线设备存在干扰,通讯质量下降等。

2017-09-04 -  设计经验

蓝牙技术联盟发布《2024年蓝牙市场最新资讯》,介绍蓝牙技术在各个行业和市场中的最新应用趋势

负责监管蓝牙技术的行业协会蓝牙技术联盟(Bluetooth SIG)发布年度报告《2024年蓝牙市场最新资讯》。该报告介绍了蓝牙技术在各个行业和市场中的最新应用趋势,以及如何通过各种应用为人们的日常生活带来丰富的连接。

2024-06-26 -  行业资讯 代理服务 技术支持 批量订货
August 14, 2024  - SILICON LABS  - 开发环境(软件/固件)

要在电路板上增加蓝牙功能,都需要什么器件?

如果使用蓝牙SoC EFR32BG1xx系列,芯片电源部分需要电感(使能DC-DC)、退耦电容,射频链路1个电感、一个电容,陶瓷天线或者PCB板载天线。如果用蓝牙模块BGM11x,可预留串口和电源接口。

2017-09-15 -  技术问答
March 13, 2024  - SILICON LABS  - 开发环境(软件/固件) 代理服务 技术支持 批量订货

在市面上看到蓝牙BLE的耳机,请问BGM111是否可以做蓝牙耳机应用?

不能,BLE协议特点是低功耗、低速率,蓝牙耳机的目前最低的音频采样率为44.1KHZ,目前市面上所有厂商的BLE蓝牙模块都达不到此速率。如果有支持BLE的蓝牙耳机,那么应该是双模的蓝牙产品,即支持蓝牙BLE,也支持传统蓝牙3.0协议或者2.1+EDRx协议,在传输音频数据方面使用的蓝牙传统协议;我们有专门适合音频的蓝牙芯片WT32i,蓝牙3.0协议,支持速率24mps,内置DSP音频解码器。

2016-10-25 -  技术问答
February 14, 2024  - SILICON LABS  - 开发环境(软件/固件) 代理服务 技术支持 批量订货

Silicon Labs(芯科科技) 蓝牙网络APK应用程序(Android)

描述- Silicon Labs-wirelessgecko-android.apk (安卓手机APP适用下载)

型号- EFR32MG,EFR32BG

SILICON LABS  - 开发环境(软件/固件)  - 1.2.0 代理服务 技术支持 批量订货

【Silicon Labs无线技术】Zigbee/Thread/蓝牙/WIFI/Sub-GHz齐齐来媲美

物联网连接,应挑选怎样的无线协议栈才是最佳的?世强为你解析时下最热Zigbee/Thread/蓝牙/WIFI/Sub-GHz技术

2017-07-19 -  专题合辑 代理服务 技术支持 批量订货
October 25, 2023  - SILICON LABS  - 开发环境(软件/固件) 代理服务 技术支持 批量订货

远程蓝牙模块WT41通信距离能达到1000米吗?用在什么领域比较多?

远程蓝牙模块WT41,相应指标如下:1)发射功率:+20.5 dBm【MAX】2)接收灵敏度:-94dBm【MAX】可以计算出无线链路数据如下:20.5 dB(TX)+ 94 dB(RX灵敏度) - 4.5dB(TX和RX两种天线衰减,已假设天线较差)= 110 dB,在视距情况下的传输距离可以轻松达到1000米。WT41有如下典型应用:1)手持终端2)工业设备3)POS4)个人数字助理(PDA)5)汽车诊断单元

2017-07-28 -  技术问答 代理服务 技术支持 批量订货

【应用】释放蓝牙5的所有魅力

EFR32BG12基于ARM Cortex-M4 MCU,具有先进的外设功能,包括带有FPU和DSP指令的Cortex M4

2019-07-16 -  新应用 代理服务 技术支持 批量订货

Bluetooth ® SDK 2.13.12.0 GA Gecko SDK Suite 2.7

型号- EFR32MG22,EFR32BG1X,EFR32G1X,EFR32BG22,EFR32G22,EFR32MG1X

September 21, 2023  - SILICON LABS  - 开发环境(软件/固件) 代理服务 技术支持 批量订货
展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:Bluetooth Module

价格:¥59.2312

现货: 100

品牌:SILICON LABS

品类:Bluetooth Module

价格:¥61.3217

现货: 100

品牌:SILICON LABS

品类:Blue Gecko Bluetooth ® Module

价格:¥60.2765

现货: 67

品牌:SILICON LABS

品类:Bluetooth Module

价格:¥55.3983

现货: 9

品牌:SILICON LABS

品类:Bluetooth Module

价格:¥61.3217

现货: 0

品牌:SILICON LABS

品类:开发工具

价格:¥1,704.7328

现货: 3

品牌:SILICON LABS

品类:Wireless Gecko SoC

价格:¥2.0000

现货: 103,328

品牌:SILICON LABS

品类:Mighty Gecko Multi-Protocol Wireless SoC

价格:¥27.0929

现货: 90,767

品牌:SILICON LABS

品类:Wireless SoC

价格:¥35.3989

现货: 82,852

品牌:SILICON LABS

品类:Wireless Gecko SoC

价格:¥10.4994

现货: 59,949

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:QUALCOMM

品类:蓝牙芯片

价格:¥4.9500

现货:109,413

品牌:汇顶科技

品类:蓝牙系统级芯片

价格:¥4.5000

现货:53,089

品牌:Telink

品类:2.4G蓝牙芯片

价格:¥7.5000

现货:24,000

品牌:涂鸦

品类:蓝牙模块

价格:¥7.7000

现货:9,980

品牌:RENESAS

品类:MCU

价格:¥4.6560

现货:8,299

品牌:SKYWORKS

品类:RF front-end integrated circuit

价格:¥1.8500

现货:5,897

品牌:Nordic Semiconductor

品类:IC

价格:¥13.5000

现货:5,700

品牌:NXP

品类:控制器

价格:¥19.8178

现货:5,539

品牌:利尔达

品类:Linux核心板

价格:¥448.0280

现货:3,300

品牌:BES

品类:IC

价格:¥3.2576

现货:2,550

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

蓝牙射频及通信协议测试

根据用户的蓝牙模块,使用Bluetooth 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。

实验室地址: 深圳 提交需求>

蓝牙资格认证(BQB)

提供蓝牙BLE芯片协议、蓝牙模块、蓝牙成品测试认证服务;测试内容分Host主机层,Controller控制器层,Profile应用层测试。支持到场/视频直播测试,资深专家全程指导。

实验室地址: 深圳 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面