BLE MESH组网(五)配置BLE MESH
BLE MESH(五)配置BLE MESH
- 前言
- 概述
- 配置协议
- 供应程序
- 信标
- 邀请
- 交换公钥
前言
2017 年 5 月,全球最臭名昭著的勒索软件 WannaCry 在全球范围内积极攻击计算机,劫持用户数据索要赎金。这次攻击影响了 150 个国家/地区的数百万台计算机,该软件要求以加密货币比特币支付赎金。如果没有稳健的基于标准的安全系统设计,物联网 (IoT) 可能会发生类似的情况。不难想象,物联网设备的用户如何被迫向黑客付款,以打开上锁的门并进入他们自己的家。
安全性是蓝牙®MESH网络设计的核心。它的使用对于每个加密和验证的数据包都是强制性的。蓝牙MESH网络的安全性可防止各种威胁和问题,包括:
通过明智地使用序列号来防止重放攻击。
中间人攻击,通过在重要程序中使用非对称密码术(例如椭圆曲线 Diffie-Hellman (ECDH) 密钥协商协议)来防止中间人攻击。
垃圾桶攻击通过确保在必要时更新安全密钥来利用废弃设备。
概述
配置是将新的、未配置的设备添加到蓝牙MESH网络的过程,例如灯泡。该过程由供应商管理。供应商和未配置设备遵循蓝牙MESH网络规范中定义的固定程序。供应商为未配置的设备提供配置数据,使其成为蓝牙MESH节点。
provisioner通常是运行配置应用程序的智能手机或其他移动计算设备。尽管每个网络只需要一个provisioner来执行配置,但可以使用多个provisioner设备。
配置协议
所述蓝牙网规范定义了配置协议,其定义的PDU使用的设置过程中一个配置者和一个新的,未接通的装置之间进行通信。图 1 描绘了配置协议栈以及完整的蓝牙MESH网络协议栈。
图 1:MESH系统架构与供应协议栈。
从下到上,我们有以下组件:
配置承载
配置承载层支持在配置器和未配置设备之间传输配置 PDU。定义了两个供应承载:PB-ADV:用于通过蓝牙广播通道配置设备的配置承载。PB-ADV 承载用于传输通用供应 PDU。支持 PB-ADV 的设备应以尽可能接近 100% 的占空比执行被动扫描,以避免丢失任何传入的通用配置 PDU。
PB-GATT:用于使用来自代理协议的蓝牙MESH网络代理 PDU 来配置设备的配置承载。代理协议使节点能够通过面向连接的低功耗蓝牙 (LE) 承载发送和接收网络 PDU、MESH信标、代理配置消息和配置 PDU。PB-GATT 将供应 PDU 封装在 GATT 操作中,涉及 GATT 供应服务,并在供应器不支持 PB-ADV 时提供使用。
供应协议
定义供应 PDU、行为和安全性的要求。了解供应协议将帮助您选择一种基于应用程序要求的身份验证方法。
供应程序
供应协议定义了十种类型的供应 PDU:
- 供应邀请
- 供应能力
- 供应状态
- 提供公钥
- 配置输入完成
- 供应确认
- 随机配置
- 配置数据
- 配置完成
- 配置失败
有关这些 PDU 的详细信息,开发人员可以参考蓝牙MESH网络规范的第 5.4.1 节。
整个供应过程必须在较高级别完成两项重要任务:
- 验证未配置的设备。在蓝牙mesh网络中,一个小空间内可能有几个、几十个或数百个设备。执行身份验证以确保供应商与之交互的设备是用户想要供应的设备。
- 与未配置的设备建立安全链接并与其共享相应的信息。在该过程结束时,未配置的设备将成为蓝牙MESH网络中的一个节点。
供应过程包括五个阶段:
- 信标
- 邀请函
- 交换公钥
- 验证
- 供应数据的分布
这里将介绍前三个阶段。我们将在配置蓝牙MESH网络,第 2 部分中回顾最后两个阶段。
信标
信标是Bluetooth ® Low Energy 中的传统应用场景。想象一下 GAP 外围设备,例如智能手表或活动跟踪器,它希望与 GAP 中央设备(例如智能手机或平板电脑)连接。GAP 外围设备切换到广告状态并开始广播广告数据包。GAP 中央设备扫描广告数据包以发现其他设备并接收有关它的基本信息。蓝牙MESH网络配置使用相同的广告机制。
如果未配置的设备支持 PB-ADV 承载,则它会作为未配置的设备信标进行广告。这涉及指定的数据包格式,并由未供应设备使用,以允许供应商发现它们。
当未配置的设备使用 PB-GATT 承载时,称为 Mesh Provisioning Service 的 GATT 服务支持整个配置过程以及与配置者的交互。在信标阶段,未配置的设备广播包含 Mesh Provisioning Service 的 UUID 的广告数据包。它是由供应商通过标准的蓝牙低功耗扫描程序发现的。
邀请
设置信标后,供应商和未配置设备建立配置承载,PB-ADV 或 PB-GATT。然后供应商发送配置邀请 PDU,设备以配置能力 PDU 响应。
配置邀请 PDU 包括一个注意持续时间字段,该字段使用某种形式的视觉指示指示未供应设备的主要元素应该吸引用户注意多长时间。
配置能力 PDU 包括:
- 设备支持的元素数量。
- 支持的安全算法集。
- 其公钥的可用性使用带外 (OOB) 技术。
- 此设备向用户输出值的能力。
- 此设备允许用户输入值的能力。
图2 -配置邀请
图2中的流程图让人想起Bluetooth Low Energy中的配对过程,这在一篇文章《Bluetooth配对第1部分:配对特性交换》中有所介绍。蓝牙低功耗配对使用的配对特性交换类似于蓝牙MESH配置过程中的配对邀请阶段。在配置邀请阶段,目的是向配置程序提供关于未配置设备的功能的信息。有了这些信息,配置者就可以决定下一步要做什么。
交换公钥
有两种基本的信息加密技术:对称加密(也称为密钥加密)和非对称加密(也称为公钥加密)。
对称加密使用相同的密钥进行加密和解密。只要发送方和接收方都知道密钥,他们就可以解密所有使用此密钥加密的消息。但是,很难通过链接安全地交换密钥并防止它们落入坏人之手。
非对称加密使用两个相关的密钥,一个密钥对来解决上述问题:公钥和私钥。任何想要向您发送消息的人都可以免费使用公钥。私钥是保密的,只有你知道。任何使用公钥加密的消息(文本、二进制文件或对称密钥)只能通过应用相同的算法并且只能使用匹配的私钥来解密。这意味着您不必担心通过链接传递公钥,因为它们仅用于加密而不用于解密。但是,非对称加密比对称加密慢,并且需要更多的处理能力来加密和解密消息内容。
在蓝牙®MESH网络用例中,大多数设备都基于嵌入式芯片组或模块,因此它们无法使用计算成本高昂的非对称密码术来加密/解密每条消息。对称密码术更适合缺乏非对称密码术所需的处理器能力的设备,但我们仍然存在安全交换密钥以便使用的问题。蓝牙mesh使用非对称和对称方法的组合来解决这个问题。
非对称加密:Elliptic Curve Diffie-Hellman (ECDH) 是一种匿名密钥协商协议,它允许两方(每一方都有一个椭圆曲线公私密钥对) 在不安全的通道上建立 共享密钥。ECDH 在蓝牙MESH网络配置中的目的是允许在配置者和未配置的设备之间创建安全链接。它使用公钥和私钥来分发对称密钥,然后两个设备可以使用该密钥对后续消息进行加密和解密。
对称加密:在蓝牙MESH网络中传输的每条消息都使用 AES-128 加密进行加密。AES-128 算法是一种常见的对称加密/解密引擎,常用于嵌入式平台。
在交换公钥阶段,ECDH 公钥有两种可能的交换方式。它们可以通过蓝牙链接或 OOB 隧道进行交换。在配置邀请阶段,未配置的设备已经报告它是否支持通过 OOB 隧道发送其公钥。如果是,供应商可以继续使用它并通过发送配置开始 PDU 通知未配置的设备。
如果未配置设备的公钥可通过 OOB 隧道获得,则临时公钥将从配置程序传输到设备,并使用适当的 OOB 技术(例如 QR)从未配置设备读取静态公钥代码。参见图 3。
图 3 – 未配置设备使用 OOB 方法时的公钥交换。
如果没有,两个公钥将通过蓝牙链接交换,如图 4 所示。
图 4 – 未配置的设备公钥未知时的公钥交换。
ECDHSecret = P-256(私钥,对等公钥)
在这个等式中,P-256 是 FIPS-P256 曲线,它在FIPS 186-3中定义。
本文的第 2 部分将检查配置过程的最后两个阶段:配置数据的身份验证和分发。我还将解释蓝牙MESH网络中使用的安全工具箱。
BLE MESH组网(一)简介
BLE MESH组网(二)友谊功能和设备管理
BLE MESH组网(三)普通BLE如何添加到网络
BLE MESH组网(四)安全概述
BLE MESH组网(五)配置BLE MESH
BLE MESH组网(六)配置BLE MESH
BLE MESH组网(五)配置BLE MESH相关推荐
- 一文看懂Mesh组网
一.Mesh组网初了解 1.Mesh组网是什么? Mesh是一种多节点.无中心.自组织的无线多跳通信网络(注:当前也有部分厂家及应用市场引出了有线Mesh及混合互联:即有线+无线的概念,但我们这里主要 ...
- mesh组网和AC+AP组网方式哪种好?
**前言 最近有不少朋友关于mesh组网和ac+ap组网方式哪种好?提到关于Mesh路由器和AC+AP组合是目前两种比较成熟的无线漫游方案.下面就来说一说这两种方案的优劣. 正文 ** 一.什么是无线 ...
- 组网方案设计,运用Mesh组网实现无缝漫游!
在当今社会,无线网络已经成为了人们在工作.学习.娱乐生活中必不可少的一部分.但一台路由器的信号范围是有限的,随着距离的增加就会出现信号变弱导致的网速慢.网络卡顿甚至断网的情况. 所以在一些面积较广.障 ...
- 红米5+plus+信号显示无服务器,我的瞎折腾,红米AX5路由器MESH组网测试
我的瞎折腾,红米AX5路由器MESH组网测试 2020-08-23 10:42:04 77点赞 443收藏 110评论 创作立场声明:路由器自己买的,我这不是客观测评,纯属主观瞎BB,我写的就是我使用 ...
- BLE MESH组网(七)真机配置
BLE MESH(三) 一.在nRF5 SDK中为Mesh示例配置承载器 二.可用示例 三.要开始使用nRF Mesh移动应用程序评估示例,请完成以下三个配置阶段: 四.配置步骤 第一步:nRF Me ...
- BLE MESH组网(六)配置BLE MESH
BLE MESH(五)配置BLE MESH 前言 验证 输出OOB 输入对象 静态 OOB 或无 OOB 检查确认值 确认值检查 配置数据的分布 开发MESH 前言 在本文的第1 部分中,介绍了配置承 ...
- BLE MESH组网(一)简介和基本概念
BLE MESH组网(一) BLE MESH简介 BLE MESH来源 BLE MESH用处 BLE MESH的通讯方式 管理洪水 市场内蓝牙设备支持 安全性 BLE MESH协议栈模型 BLE ME ...
- BLE MESH组网(四)安全概述
BLE MESH(四)安全概述 一.安全的重要性 二.蓝牙MESH网络的安全性是强制性的 三.蓝牙MESH网络安全基础 四.关注点和安全密钥分离 五.区域隔离 六.节点移除.密钥刷新和垃圾桶攻击 七. ...
- BLE MESH组网(二)友谊功能和设备管理
BLE MESH组网(二) Friendship功能 一.概述 1.Friendship是什么 2.Friend和LPN 3.Friend参数 4.好友建立 Friendship消息 安全 友谊终止 ...
最新文章
- 黑箱方法 支持向量机①
- 事件绑定机制简单实现
- jQuery内置动画和多库共存
- Python通过LDAP验证、查找用户(class,logging)
- 6、Learn by doing才是正确的技术学习姿势
- 【转】去除inline-block元素的间隙
- C++: find()函数的注意事项
- Top3获奖金10万,Seq2seq对话系统设计方案
- 随机游走分割算法(Random Walk Segmentation Algorithm)
- rbac 一个用户对应多个账号_SaaS产品用户权限管理-RBAC
- 2年CFA三级考试连过的我,全靠笔记多!(无金融背景)
- 是指可以显示网页服务器或者文件,浏览器是指可以显示网页服务器或者文件系统的HTML文件(标准通用标记语言的一个应用)内容,并让用户与这些文件交互的一种软件。...
- 用力过猛的“中产阶级教育
- jenkins配置svn提交一键自动部署
- 同步,异步,直流电机原理
- Java学习day02-数据类型和运算符
- PHP实现图片合并功能(根据群用户头像生成群logo图片)
- 酒精测试仪全国产化电子元件推荐方案
- android蓝牙耳机来电铃声,Android蓝牙耳机接听挂断电话流程
- U盘坏了数据可以恢复吗?超详细的U盘数据恢复图文教程!