#author("2023-04-17T17:23:33+08:00","default:Admin","Admin")
#author("2023-04-17T17:24:37+08:00","default:Admin","Admin")
[[BlueTooth]]

&color(red){※前提条件:本情報はBlueTooth 4.0を基づいて説明してる};

#contents

* 概要 [#x7dae876]

&ref(BLE_liu1.jpg);
** Provision [#hb4fdad1]

** 主要分两个阶段 [#ae337081]
*** Provision [#hb4fdad1]

&ref(BLE_Provision.jpg);

** Config [#e183af29]
*** Config [#e183af29]

&ref(BLE_Config.jpg);


** 分五个阶段 [#a0200ecd]

所谓配网就是将未配网的设备变为配网的节点,一般需要一个配网器与末配网设备进行配网交互、验证然后通过后将一些密钥交给对方的一个过程。
一般过程有5个阶段:
+ 信标(Beaconing)阶段
+ 邀请 (Invitation)阶段
+ 交换公钥 (Exchange Public Keys)阶段
+ 身份认证 CAuthentication)阶段
+ 分发配网数据 (Distribution Of Provisioning Data)阶段


* 身份认证 [#y5089f43]

启动配置设备使用所选的验证方法,对未经启动配置设备进行验证。有三种可用的验证方法(OOB, Out-Of-Band):
- 输出OOB(Output OOB)
- 输入OOB(Input OOB)
- 以及静态OOB(Static OOB)或无OOB(No OOB)。 

** 输出OOB(Output OOB) [#r6137ec3]

未经启动配置设备会选择一个随机数,并通过与其功能兼容的方式输出该数字。~
例如,如果未经启动配置设备是一个灯泡,则它能够闪烁指定的次数。如果设备具有LCD屏幕,则可以将随机数显示为多位数值。启动配置设备(Provisioner)的用户需要输入观察到的数字,来验证未经启动配置的设备。


** 输入OOB(Input OOB) [#w459c01a]

未经启动配置设备会选择一个随机数,并通过与其功能兼容的方式输出该数字。例如,如果未经启动配置设备是一个灯泡,则它能够闪烁指定的次数。如果设备具有LCD屏幕,则可以将随机数显示为多位数值。启动配置设备(Provisioner)的用户需要输入观察到的数字,来验证未经启动配置的设备。输出带外验证方法的工作流程如图1所示

** 以及静态OOB(Static OOB)或无OOB(No OOB) [#w2d33d81]

在输入带外或输出带外都不可用的情况下,启动配置设备(Provisioner)和未经启动配置的设备可采用静态带外(Static OOB)验证或无带外(No OOB)验证:采用静态OOB信息;或静态OOB信息不可用,直接以数值0代替。在此情况下,启动配置设备和未经启动配置的设备各自生成一个随机数,然后进行检查确认值操作。

检查确认值(Check Confirmation Value)~
无论采用何种验证方法,都会进行确认值生成和检查。根据蓝牙mesh规格,启动配置设备(Provisioner) 和未经启动配置设备应分别计算确认值。这两个值被称为ConfirmationProvisioner和ConfirmationDevice。这两个值的计算都使用一系列相同的函数,不同之处仅在于所使用的随机数输入。

*** 确认值检查(Confirmation Value Check) [#oe7fbadc]

- 如果由未经启动配置设备计算所得的确认值与接收到的ConfirmationProvisioner不匹配,则启动配置(Provisioning)过程将被中止。
- 如果由未经启动配置设备计算所得的确认值与接收到的ConfirmationProvisioner匹配,则未经启动配置设备将其RandomDevice值发送给启动配置设备。
- 然后,启动配置设备(Provisioner) 使用相同的过程来重新计算确认值,并通过比较计算所得值与先前接收值来进行验证。
- 如果由启动配置设备(Provisioner) 计算所得的确认值与接收到的ConfirmationDevice不匹配,则启动配置(Provisioning)流程将被中止。
- 如果由启动配置设备(Provisioner) 计算所得的确认值与接收到的ConfirmationDevice匹配,则表示验证成功。后续只要启动配置设备(Provisioner)和未经启动配置设备完成启动配置流程的第五步:启动配置数据分发,则未经启动配置设备就能成为蓝牙mesh网络中的节点(node)。  


#codeprettify{{
 XXX
}}

#hr();
コメント:
#comment_kcaptcha

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS