位置: IT常识 - 正文

【蓝牙系列】蓝牙5.4到底更新了什么(2)(蓝牙11)

编辑:rootadmin
【蓝牙系列】蓝牙5.4到底更新了什么(2) 【蓝牙系列】蓝牙5.4到底更新了什么(2)一、 背景

推荐整理分享【蓝牙系列】蓝牙5.4到底更新了什么(2)(蓝牙11),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:蓝牙(bluetooth),蓝牙blue,篮牙蓝牙,说一下蓝牙,蓝牙(bluetooth),说一下蓝牙,说一下蓝牙,说一下蓝牙,内容如对您有帮助,希望把文章链接给更多的朋友!

  上一篇文章讲了蓝牙5.4的PAwR特征,非常适合应用在电子货架标签(ESL)领域, 但是实际应用场景中看,只有PAwR特性是不够的,如何保证广播数据的安全性,如何动态调节广播的编码方式以达到最优的功耗。 这就需要用到本章需要介绍的蓝牙5.4的几个新特性。

下面再回顾下蓝牙5.4的几个新特性:

支持带响应的周期性广播(PAwR)

​ PAwR是一个新的BLE逻辑传输层,是一种支持无连接的、双向的、一对多的、一种低功耗拓扑技术。

支持加密的广播数据(EAD)

  该特性提供了一种标准化的方法来加密广播包中的数据,加密后的广播数据只能被拥有相同密钥的设备解密。 当然广播包的加密是需要两个设备建立gatt连接之后,才会生成加密广播包的密钥。

LE GATT 安全级别特征

设备现在可以使用GATT 安全级别特性来表示设备的安全模式和安全等级

动态广播编码选择(CSSA )

当发送BLE扩展广播的时候,现在可以选择使用哪种Codec编码方式来发送。

  上一篇文章已经介绍PAwR特性,没有看过的朋友,建议先看看上一篇文章。 本章主要介绍支持加密的广播数据(EAD)、LE GATT 安全级别特征、广播编码选择这三个特性。

二、 加密广播(EAD)1. 加密广播背景

  蓝牙设备经常使用广播、扫描响应包或者经典蓝牙EIR包来发送应用数据,所以对广播数据进行加密是很有必要的。蓝牙5.4之前并没有一个明确的标准来满足这部分的需求,基于连接的加密和认证流程在蓝牙中是有规定的,但是这种基于广播的无连接的加密和认证之前是没有做规定的。

  加密是通过算法将未认证的第三方数据转化成固定编码的不可直接解析的密文。 通过加密可以防止窃听者攻击。

  加密算法使用一个或多个密钥来加解密数据。一些算法还会是用到一个初始的IV值作为输入,这个IV 值通常被称为密钥的材料。 加密的数据应该包含这个密钥材料,这样接收方才可以正常的解密该数据。密钥材料的共享需要安全地完成,这样才能保证未经授权的设备不能获取到。

  CCM是CBC‑MAC块密码模式的计数器。它与 128 位块密码(如 AES)一起使用来加密和验证消息。身份验证是通过包含一个计算出的消息认证码 (MAC) 来实现的,蓝牙核心规范将其称为 MIC(消息完整性检查)。

2. 加密广播介绍2.1 加密广播优势

  加密广播特性提供了一种标准化的、普遍适用的机制,用于广播包、扫描响应包和 EIR 数据包中传输加密数据,并安全地共享相关的加密密钥材料。这意味着无连接通信现在可以用作一对多或一对一拓扑中的安全应用程序数据传输机制。

2.2 技术实现

  下面介绍的加密广播的特性的实现是基于 BLE上的广播通道的 , 经典蓝牙也是类似的,具体可以参考蓝牙核心规范,里面有详细介绍。

2.2.1 共享密钥材料

  共享密钥材料的传输需要广播方设备,可以接收连接请求命令,并且建立GATT连接。 广播方扮演GAP外围设备角色,并且该设备的GATT服务中需要包含GAP服务。

  现在蓝牙5.4规定了一个新的特征称为 Encrypted Data Key Material , 新特性为加密广播数据的接收者共享密钥材料提供了基础。

  加密数据密钥材料特征包含一个 24 字节的值,该值由 16 字节的会话密钥和 8 字节的 IV 值组成。 GATT 客户端只能通过加密和验证的GATT连接读取该值;因此,广播设备和所有打算成为加密广播数据接收者的设备必须已经配对。不允许写入特性。该特性还可以支持 GATT 指示,但只能通过安全链接。

  当外围设备与中央设备建立连接后,当设备的密钥材料产生变化的时候,外围设备可以使用GATT指示命令,来通知中央设备。

  如果设备需要容纳多个加密密钥材料值,加密数据密钥材料特性可以不用包含在GAP服务中,可以直接包含在自定义的服务中。

2.2.2 广播数据的加密

  任何要安全传输的数据都必须首先封装在适当的 AD 结构中。 支持加密多个 AD 结构,这是通过首先将需要加密的 AD 结构集合连接成一系列 AD 结构来实现的。加密的正是这个一个或多个 AD 结构的序列。

2.2.3 加密数据的传输

  蓝牙5.4为加密广播新增加了一个广播类型,可以用来通过加密需要保护的数据,一个广播包中可以有一个或多个 加密类型的数据。   加密数据 AD 类型随后包含在适当的数据包中。那些已加密的 AD 类型不以其原始纯文本形式包含在这些数据包中。其他未加密的 AD 类型可能包含在包含加密数据 AD 类型的数据包中。

  除了密文有效载荷外,加密数据 AD 结构的数据字段还包含一个 40 位随机化器字段和一个 32 位消息完整性检查(MIC)。下图显示了一个示例广播负载,其中包含两种已加密并封装在加密数据 AD 类型中的 AD 类型(ESL 和本地名称)和一种未加密的 AD 类型(标志)。

  Randomizer 字段包含一个 5 字节的随机数,该随机数是根据蓝牙核心规范中规定的随机数要求生成的。每次有效载荷值发生变化时,都必须生成一个新的随机发生器值。 Randomizer值用于制定CCM 算法所需的随机数。

  假设使用的是随机设备地址,只要设备更改其地址,Randomizer 字段也必须更改。这会导致广播数据包的内容在设备地址更改时更改,从而降低窃听者跟踪设备的能力。

【蓝牙系列】蓝牙5.4到底更新了什么(2)(蓝牙11)

  使用加密广播数据功能的配置文件负责定义如何预共享由会话密钥和 IV 组成的加密密钥材料。如前所述,加密数据密钥材料特性是为此目的提供的,它可以包含在通用访问配置文件 GATT 服务中,也可以包含在某些其他服务中,具体取决于其他与配置文件相关的考虑因素,例如设备角色。

三、 LE GATT 安全等级特征1. GATT相关基础介绍

  通用属性配置文件 (GATT) 提供了一种方法,通过该方法可以在由 GATT 服务、特性和描述符组成的结构中表示设备数据和功能。 GATT服务、特征、描述符,这三个类型每个都是一个属性(attribute),属性是在属性表中宏定义的,属性表中的每一个属性都有一个唯一的标识符,这个标识符称为句柄(handle)。

  设备使用称为属性协议 (ATT) 访问对端蓝牙设备属性表中的属性,遵循各种 GATT 程序定义的规则,例如特征值读取和特征值写入。

  GATT 定义了两个角色,GATT客户端和GATT服务端。 GATT 客户端向 GATT 服务器发送 ATT 命令,命令分为需要响应的和不需要响应的。 GATT 服务器接受并处理从 GATT 客户端接收到的命令和请求。 GATT 服务器也可以向 GATT 客户端发送各种类型的 ATT PDU,命令包括通知和指示,通知是不需要响应的,指示是需要响应确认的。

  属性表中的每个属性都包含一组属性权限。属性权限定义了客户端对该属性的访问类型(例如,读特征值的能力)以及在授予该访问权限之前可能需要条件。例如,一个属性的权限可能表明客户端可以读取它的值,但只能通过经过身份验证和加密的链接。属性权限也适用于ATT 服务器及其使用通知和指示与客户端的通信 。

  ATT PDU 通过GATT连接传输的。通常在建立连接后,GATT 客户端会先执行服务发现流程,来发现涉及服务、特征和描述符及其相关属性(例如句柄值、类型和权限),来确定设备属性表的内容。需要注意的是,属性权限不限制客户端执行发现过程的能力。

  如果客户端尝试访问某个属性,但不满足相关属性权限的条件,则属性协议定义了几个要返回的错误代码,以向客户端设备指示访问请求被拒绝以及拒绝的原因。示例包括加密不足、身份验证不足和加密密钥大小不足

2. GATT 安全和用户体验

  当客户端尝试访问该属性时,会检查该属性的权限。如果不满足属性权限所规定的安全条件,将拒绝客户端访问,并在ATT_ERROR_RSP PDU 中返回包含错误代码的响应 。

  当服务器拒绝访问某个属性时,通常不会直接断开GATT连接。此时,客户端通常会升级安全等级,来达到访问标准。例如,如果尝试读取特征值导致返回加密不足错误,则客户端可能会通过启动配对流程,配对完成后,就可以使用加密链路来访问,只是此时需要用户重发上次访问失败的数据。

  正式由于不满足访问安全权限导致错误,就算客户端升级了安全等级,也会导致用户需要手动重发该数据, 这就非常影响用户的体验,然而,直到 5.3 版的蓝牙核心规范依然没有提供此安全错误处理策略的替代方案 。 当然,这也是蓝牙5.4 支持 GATT安全级别特征的意义所在。

3. 关于 LE Gatt 安全等级特征

  蓝牙核心规范 5.4 版定义了一个称为LE GATT 安全级别特征 (SLC) 的新特征。 SLC 特性允许客户端确定 GATT 服务器安全条件,如果要授予对所有 GATT 功能的访问权限,则必须满足这些条件。更重要的是,它允许在访问GATT 使用的属性之前确定这一点。这种提前检查访问要求可以提供更好的用户体验,因为不会因安全级别问题导致应用程序流临时中断。

3.2.2 技术实现 设备可以在GAP服务中包含 SLC 特性, 客户端在发现服务的时候,发现该特征值后,就会根据该特征值的安全条件,来选择合适的安全级别, 比如发起配对。

BLE的安全配对模式和等级如下:

安全模式1

无安全(不加密 不鉴权)加密的不鉴权配对加密的鉴权配对BLE的安全连接, 加密的鉴权配对

安全模式2

带数字签名的不鉴权配对带数字签名的鉴权配对

安全模式3

无安全(不加密 不鉴权)

使用不鉴权的Broadcast_Code

使用鉴权的Broadcast_Code

  客户端通过读取其值并根据安全级别要求字段指示的值评估当前安全模式和级别来使用 SLC 特性。如果发现当前的安全模式和级别不足以允许服务器支持的所有 GATT 功能,此时客户端应用程序将采取措施来解决这个问题,通常是调用程序来升级链接安全性.

四、 动态广播编码选择(CSSA )1. 背景介绍

  蓝牙 LE 物理层定义了三种变体,统称为PHY。这三个 PHY 分别称为 LE 1M、LE 2M 和 LE Coded。

  使用 LE Coded PHY 时,前向纠错 (FEC) 算法和模式映射器将根据配置应用于传输前的有效载荷。这导致附加的纠错数据被包含在传输的数据包中。使用 FEC 算法可以保证在距离发射端比较远的设备也可以正确的接收数据(也就是具有较低的信噪比)。

  Coded PHY 编码有两种方式,根据配置S=2或者S=8,可以控制生成多少纠错数据,以及将通讯距离增加到什么程度。

如下图比较了这三种PHY:

2. 动态广播编码选择介绍

  那蓝牙5.4更新的新特性 动态广播编码选择(CSSA )跟之前的又有什么区别呢?

  虽然之前Host端已经定义了如何使用HCI接口来发送命令,来改变Control端的编码,但是在蓝牙5.4之前,当扩展广播选择LE CODEC编码的时候,是不能指定S的值是选择2还是选择8, 也不能进行动态的切换。 而蓝牙5.4更改了 HCI 命令,以允许在使用 LE 编码 PHY 时指定 FEC 参数 S 的值 。

HCI命令如下图:

五、 总结

  蓝牙核心规范 5.4 版在 PAwR 中添加了一项重要的全新双向无连接功能,使在广播数据包中安全地广播机密数据成为可能。除了这些相当大的改进之外,使用 GATT 的应用程序现在可以在处理属性安全要求时提供比以前更好的用户体验,并且设备可以在使用LE Coded PHY 进行扩展广播时对重要参数 (S) 进行控制。

  总的来说,蓝牙5.4版本是一次不大不小的更新,这些新的特性,比较明确的应用场景就是电子货架标签,这也是蓝牙技术联盟想要获取的一块市场。 当然这些特性也可以嵌入到其他的蓝牙产品中,来提高产品的用户体验。

本文链接地址:https://www.jiuchutong.com/zhishi/297895.html 转载请保留说明!

上一篇:让PyTorch训练速度更快,你需要掌握这17种方法(pytorch训练yolov3)

下一篇:基于WEB的网上购物系统的设计与实现(附:源码 论文 sql文件)(基于web的购物网站)

  • 微信视频号怎么将视频号设置私密账号(微信视频号怎么设置可见范围)

    微信视频号怎么将视频号设置私密账号(微信视频号怎么设置可见范围)

  • 电表5(20)a是什么意思(电表5(20)A是什么意思?)

    电表5(20)a是什么意思(电表5(20)A是什么意思?)

  • 微信红包收不了显示账号存在异常是怎么回事(微信红包收不了什么原因)

    微信红包收不了显示账号存在异常是怎么回事(微信红包收不了什么原因)

  • 手机怎么恢复微信出厂设置(手机怎么恢复微信删除的之前聊天记录)

    手机怎么恢复微信出厂设置(手机怎么恢复微信删除的之前聊天记录)

  • 开了勿扰模式为什么还有电话(开了勿扰模式为什么电话还能打进来)

    开了勿扰模式为什么还有电话(开了勿扰模式为什么电话还能打进来)

  • cdyan90是华为什么型号(华为cdyan90是什么手机)

    cdyan90是华为什么型号(华为cdyan90是什么手机)

  • mate10扩展内存方法(华为mate10内存扩充)

    mate10扩展内存方法(华为mate10内存扩充)

  • 在关系数据库中描述全局数据逻辑结构的是(在关系数据库中,解决数据冗余和操作异常)

    在关系数据库中描述全局数据逻辑结构的是(在关系数据库中,解决数据冗余和操作异常)

  • 打印机纸吸不上去(打印机纸吸不进去)

    打印机纸吸不上去(打印机纸吸不进去)

  • 苹果6s充电开不了机怎么回事(苹果6s充电开不了机但一直闪白屏)

    苹果6s充电开不了机怎么回事(苹果6s充电开不了机但一直闪白屏)

  • 苹果11怎么拍全屏照片(苹果11怎么拍全面屏照片)

    苹果11怎么拍全屏照片(苹果11怎么拍全面屏照片)

  • 手机耗电快了怎么办(手机耗电快了怎么解决)

    手机耗电快了怎么办(手机耗电快了怎么解决)

  • c语言eof什么意思(c语言中的eof是什么)

    c语言eof什么意思(c语言中的eof是什么)

  • 手机热点ip地址怎么看(手机热点ip地址会变吗)

    手机热点ip地址怎么看(手机热点ip地址会变吗)

  • 华为手机怎么设置亲情号(华为手机怎么设置锁屏)

    华为手机怎么设置亲情号(华为手机怎么设置锁屏)

  • 手机开飞行模式闹钟会响吗(手机开飞行模式打电话过来会怎样)

    手机开飞行模式闹钟会响吗(手机开飞行模式打电话过来会怎样)

  • 手机怎么做相册影集(手机怎么做相册短片)

    手机怎么做相册影集(手机怎么做相册短片)

  • 200兆宽带用什么网线(200兆宽带用什么路由器合适)

    200兆宽带用什么网线(200兆宽带用什么路由器合适)

  • 朋友圈封面下面的文字怎么设置(朋友圈封面下面的文字怎么添加)

    朋友圈封面下面的文字怎么设置(朋友圈封面下面的文字怎么添加)

  • 滴滴出车每次都要人像认证吗(滴滴每次出车都要验车吗)

    滴滴出车每次都要人像认证吗(滴滴每次出车都要验车吗)

  • 五g什么时候上市(五g网络手机什么时候出来)

    五g什么时候上市(五g网络手机什么时候出来)

  • sub6g是指哪一段频率(5g sub6是什么意思)

    sub6g是指哪一段频率(5g sub6是什么意思)

  • windows7如何升级windows10(windows7如何升级到10)

    windows7如何升级windows10(windows7如何升级到10)

  • 索尼VAIO笔记本电脑开机进入BIOS的方法(F2)(索尼vaio笔记本看型号)

    索尼VAIO笔记本电脑开机进入BIOS的方法(F2)(索尼vaio笔记本看型号)

  • 挪威苔原上的北极光和野生驯鹿 (© Anton Petrus/Getty Images)(挪威最北部)

    挪威苔原上的北极光和野生驯鹿 (© Anton Petrus/Getty Images)(挪威最北部)

  • 企业增值税必须退税吗?
  • 专票多少钱
  • 农业机耕开发票税收分类编码是什么
  • 房产税和城镇土地使用税的区别
  • 小规模免税销售额是含税还是不含税
  • 发票遗失如何报销
  • 费用已付发票未到的预算会计分录
  • 企业合并固定资产增值的规定
  • 化验室购买仪器计入什么科目
  • 存货毁损计入
  • 什么发票可以抵税
  • 发票联丢失能用抵扣联入账吗
  • 税控盘费用抵减增值税
  • 税务小规模定律是什么意思
  • 房产税税率和应纳税额
  • 在建工程转固定资产凭证附件
  • 其他应收款借方表示增加吗
  • 福利费用属于什么费用
  • 广告代理服务计入什么费用
  • 开票满500万一定会升一般纳税人吗
  • 安全教育经费计算方法
  • 增值税留抵税额账务处理
  • 拆迁公司属于什么性质
  • 研发费用的税收政策
  • 贷款损失准备如何提取
  • 为什么可供出售的金融资产是非流动资产
  • 合同尾款一般多少
  • mac系统自带软件有哪些
  • PHP:Memcached::incrementByKey()的用法_Memcached类
  • PHP:spl_autoload_functions()的用法_spl函数
  • win10开机强制进入高级选项怎么退出
  • 加工费入什么会计科目
  • 发票开烟酒
  • Chrome谷歌浏览器官网
  • 股权融资服务协议
  • 软件是无形的,可见的物理实体
  • php fgetcsv
  • 贝尔纳贝
  • css字体加粗怎么弄
  • 挥别2020逐梦2021
  • 应交增值税缴纳后入什么费用
  • 收到的发票税收怎么处理
  • 如何让网站优化成功
  • python索引值-1和位置-1
  • c语言指针妙用
  • sql server sql文件
  • 费用没有发票先开什么
  • 商品组装后出售怎么做账
  • 缴纳增值税的会计处理方法
  • 减值准备的定义
  • 代收资金清算过程
  • 当月开的票当月可以勾选抵扣吗
  • 小企业会计制度的适用对象是
  • 青苗赔偿管理办法
  • 普通发票作废如何操作
  • 编制合并财务报表的依据是纳入合并
  • 建账的基本要求
  • 账簿的类型有哪几种
  • 445端口 关闭
  • win7系统屏幕键盘怎么打开
  • 如何设置windows启动密码
  • linux安装syslog
  • win7家庭版开启administrator
  • centos6.5升级到7.2
  • 铁嘴李林
  • 下眼角疼痒
  • Extjs中通过Tree加载右侧TabPanel具体实现
  • python 单例
  • javascript的面向对象
  • jquery下拉菜单插件
  • 批处理解约瑟夫环应用题代码
  • jquery序列化json
  • nodejs promise.all
  • WinForm中UnityWebPlayer屏蔽右键菜单
  • java轻松学
  • Android自定义控件开发入门与实战 百度网盘
  • javascript入门书
  • 电子发票密码在哪里看
  • 中国依靠房地产能发展多久
  • 苏州市区公司可以在园区买社保吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设