Commissioning for a private Thread Network #12315
Replies: 3 comments 1 reply
-
|
Thread Commercial Commissioning Mode (CCM), which is described as part of the Thread 1.2 Specification, also includes use of certificates by CCM Thread devices to join a network. There is a prototype implementation at #10805 . cc @EskoDijk |
Beta Was this translation helpful? Give feedback.
-
|
The CCM prototype implementation was made to validate the specification cBRSKI (link which is nearing completion in IETF. Extensive final reviews still have to start, so some changes could be expected. It's basically X509 certificate-based zero-touch onboarding of new devices, in which (typically) an external service on the Internet called MASA provides the authorization for a new device to join a particular owner's domain. cBRSKI also enables operation without such online MASA service: in this case, a digitally signed artifact called the "voucher" is generated by the device vendor and handed to the device owner/customer. The voucher enables the new device to trust the new owner and do the onboarding in the owner's network. Although the PR hasn't been active for a while, I'm planning to revive it as a nice test case for new commissioning methods for Thread devices, after some work related to this (e.g. #12201) gets merged. A simpler variant could also be defined that does not use the voucher, just certificates - this works also well when a single vendor creates or owns all of the devices i.e. a private network situation. Then the access of devices is pre-configured based on "allowed" CAs for example. So using certificates by devices, both for initial onboarding (using IDevID as defined in IEEE 802.1AR) and for later attaching to designated Thread Network(s) (using LDevID), is defined as part of CCM, but wasn't implemented in OpenThread yet. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you @EskoDijk and @jwhui for the quick response. In the meantime, I also took a look at the joiner protocol and the ot-commissioner and openthread joiner codebase (master). Is this a viable approach for the "simple variant" you mentioned, @EskoDijk? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello community,
I am quite new to Thread and have some questions about commissioning and device onboarding.
The idea is to set up a private Thread network, consisting only of devices that I fully control (hardware, software, configuration, certificates (PKI), etc.).
The Thread network also has no connection to any non-Thread networks.
There are two types of devices—let’s call them Nodes and Hubs:
Nodes are MCUs and have both 802.15.4 and Bluetooth LE (BLE) interfaces.
Hubs are Linux-based and have 802.15.4, BLE, and LAN/WiFi interfaces.
A Thread network contains many Nodes but exactly one Hub.
Thread commissioning of Nodes should be as easy as possible, but still secure (only my own devices must be allowed to join the network).
The goal is essentially a zero‑touch commissioning approach:
My first idea was to configure the Hub as Border Agent and Commissioner and use CCM (Commercial Commissioning Mode) for commissioning.
However, I realized that CCM only changes how the Commissioner connects to the Border Agent.
The actual device joining procedure is still based on PSKd, and not on certificates.
Is this correct, or am I missing here something?
Is there any way in OpenThread to achieve a certificate-based, zero-touch, PSKd-free commissioning flow?
Any feedback is greatly appreciated — thank you!
Werner
Beta Was this translation helpful? Give feedback.
All reactions