Mesh network commissioning
The described mesh network commissioning method addresses the challenges of secure device authentication and credential provisioning by using J-PAKE and DTLS, enhancing security and scalability while improving user interface efficiency.
Patent Information
- Application Number
- JP2025060393
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2015-04-02
- Filing Date
- 2025-04-01
- Publication Date
- 2025-07-23
- Estimated Expiration
- 2035-06-24
AI Technical Summary
Existing wireless mesh networking technologies face challenges in securely commissioning devices, particularly in ensuring accurate device authentication, efficient credential provisioning, and user-friendly interface for devices with limited resources, which affects the scalability and quality of user experience.
A method for mesh network commissioning that involves a joiner router to authenticate devices using Password Authenticated Key Exchange (J-PAKE) and DTLS, a border router to manage commissioning sessions, and a leader device to update network information, enabling secure communication sessions and credential distribution without external certification authorities, using cryptographic hashing to enhance security and user interface efficiency.
This approach enhances the security and scalability of mesh network commissioning by reducing the need for external tools, improving user interface efficiency, and ensuring accurate device authentication, thus streamlining the process for multiple devices.
Smart Images

Figure 2025108469000001_ABST
Abstract
Description
Technical Field
[0001] Cross - Reference to Related Applications This application claims the benefit of priority under 35 U.S.C. § 119(e) to U.S. Provisional Patent Application Serial No. 62 / 016,450, filed Jun. 24, 2014. This application also claims the benefit of priority to U.S. Provisional Patent Application Serial No. 62 / 063,135, filed Oct. 13, 2014. This application also claims the benefit of priority to U.S. Provisional Patent Application Serial No. 62 / 115,601, filed Feb. 12, 2015. This application also claims the benefit of priority to U.S. Provisional Patent Application Serial No. 62 / 141,853, filed Apr. 2, 2015.
Background Art
[0002] Background The use of wireless mesh networking to connect devices to each other and to cloud - based services is becoming increasingly popular for sensing environmental conditions, controlling devices, and providing information and alerts to users. However, many devices on a mesh network are designed to operate on battery power for extended periods of time, which limits the available computing, user interface, and wireless resources in the device. In addition, to ensure the security of the mesh network, the identities of the devices that participate in and operate on the mesh network are authenticated, and communications within the mesh network are encrypted based on the credentials provisioned to the devices. However, as the pervasiveness and scale of the mesh network increase, the provisioning techniques limit the quality of the user experience for provisioning, the accuracy of getting the device to join the correct mesh network during provisioning, securely injecting the credentials into the device, and provisioning device - and application - specific information to the device.
Summary of the Invention
Means for Solving the Problems
[0003] Summary This summary is provided to introduce a simplified concept of mesh network commissioning. The simplified concept is further described in the following detailed description. This summary is not intended to identify the essential features of the claimed subject matter, nor is it intended to be used in defining the scope of the claimed subject matter.
[0004] Mesh network commissioning is described generally with respect to joining nodes to a mesh network. In an embodiment, a joiner router can receive beacon requests from participating devices and then transmit beacons from the joiner router to the participating devices, where the beacons provide an indication that the mesh network is available for joining. The transmitted beacons also enable the participating devices to establish a local link between the participating device and the joiner router. The joiner router receives a message from a participating device requesting to join the mesh network. The message received from the participating device can include a device identifier that can be used to authenticate the participating device, and the participating device is authenticated using Password Authenticated Key Exchange by Juggling (J-PAKE) or any other suitable cryptographic suite, and the authentication is effective to establish a secure communication session between the commissioning device and the participating device. The joiner router forwards the received message to the commissioning device of the mesh network, which is in the communication path between the joiner router and the commissioning device It may include forwarding the received message through one or more routers of the mesh network. In an implementation example, one of the routers may be a border router that connects the mesh network to an external network, and the commissioning device is attached to the external network. The joiner router then receives, from the commissioning device, authentication for the participating device to participate in the mesh network, and the joiner router sends network information to the participating device, and the network information enables the participating device to participate in the mesh network.
[0005] Mesh network commissioning is described generally with respect to joining nodes to a mesh network. In an embodiment, a joiner router can receive beacon requests from joining devices and then transmit beacons from the joiner router to the joining devices, the beacons providing an indication that the mesh network is available for joining. The transmitted beacons also enable the joining devices to establish a local link between the joining devices and the joiner router. The joiner router relays a DTLS-ClientHello message as a DTLS relay receive notification message from a joining device that requests to join the mesh network, and it is transmitted to the commissioning device of the mesh network. The joiner router receives a DTLS relay transmit notification message from the commissioning device and transmits the content of the DTLS relay transmit notification message to the joining device, the content enabling the joining device to join the mesh network and being effective to establish a secure communication session between the commissioning device and the joining device. The joiner router receives from the commissioning device an indication that the joining device should be entrusted to receive network credentials for the mesh network and receives a key encryption key (KEK) shared between the commissioning device and the joining device. The joiner router then encrypts and authenticates messages at the media access control (MAC) layer and uses the KEK to securely communicate network credentials and other essential network parameters from the joiner router to the joining device. The secure communication session can be used to perform provisioning of the joining device.
[0006] Mesh network commissioning is described generally with respect to establishing a commissioning session. In an embodiment, a border router receives an application from a commissioning device to act as a commissioner for devices joining the mesh network. The border router advertises the availability of the mesh network for the commissioning device. In response to receiving the advertisement, the commissioner receives the application in response to the commissioning device receiving the advertisement. The border router sends the received application to a leader device of the mesh network, receives a response to the application from the leader device, the response indicating acceptance or rejection of the application. The border router sends an indication of acceptance or rejection of the application to the commissioning device. Acceptance of the application by the leader device authorizes the commissioning device to become a commissioner for the mesh network and establishes a secure commissioning session. Acceptance of the application also enables the leader device to update an internal state tracking active commissioners for the mesh network, enable participation across the mesh network, communicate a set of devices permitted to participate in the mesh network, and propagate a commissioning data set within the mesh network.
[0007] In other aspects of mesh network commissioning, the border router also provides enhanced (e.g., cryptographically hashed) commissioning credentials to the border router to establish a secure commissioning communication session. It is possible to register the identity of the commissioning device, including, and the enhanced commissioning credentials are derived from the commissioning credentials passphrase entered by the user into the commissioning device. The border router includes a copy of the encrypted commissioning credentials that can be used to authenticate the commissioning device to the mesh network, and the copy of the encrypted commissioning credentials was previously derived from the commissioning credentials. The commissioning credentials are injected into the leader device of the mesh network that derived the copy of the encrypted commissioning credentials, and the leader device communicated the copy of the encrypted commissioning credentials securely to the border router.
[0008] Mesh network commissioning is described generally with respect to establishing a commissioning session. In an embodiment, a leader device of the mesh network receives a request to accept a commissioning device as a commissioner for commissioning participating devices to participate in the mesh network. The leader device can determine whether to accept or reject the received request and send a response to the commissioning device with an indication of whether the received request is accepted or rejected. The determination of whether to accept or reject the request received from the commissioning device may include ensuring that there is one active commissioner for the mesh network. In response to determining to accept the received request, the leader device can update an internal state tracking the active commissioner for the mesh network.
[0009] In other aspects of mesh network commissioning, the leader device can receive a command from the commissioning device to start a participation mode for the mesh network and can propagate the commissioning data set within the mesh network. Enhanced commissioning credentials can be derived from the commissioning credentials injected into the leader device during the commissioning of the leader device. The leader device can send a copy of the encrypted commissioning credentials to the border router, enabling the border router to authenticate the commissioning device to the mesh network.
[0010] Mesh network commissioning is described generally with respect to managing multiple commissioning sessions. In an embodiment, the commissioning device establishes a secure commissioning communication session between the commissioning device of the mesh network and the border router to securely establish a network communication session for admitting one or more participating devices to the mesh network. The secure commissioning communication session is used by the commissioning device to send a request to the leader device of the mesh network to request acceptance as an active commissioner for the mesh network and to receive an indication of acceptance of the request from the leader device. The commissioning device can initiate participation for the mesh network and receive requests from the participating devices to join the mesh network. To initiate participation for the mesh network, the commissioning device can start a participation mode that advertises to the routers in the mesh network that the mesh network is accepting join requests.
[0011] In other aspects of mesh network commissioning, the commissioning device can also send management messages to the leader device to enable the mesh network, and the management messages enable the leader device to update the network data for the mesh network. The management messages may include steering data indicating participating devices permitted to participate in the mesh network. The network data is then propagated to router devices in the mesh network, and the network data includes an indication that the mesh network is available for participation. The participating device establishes a secure joiner communication session with the commissioning device. The commissioning device authenticates the participating device using a Pre-Shared Key for the Device (PSKd) for the participating device and allows the participating device to join the mesh network. A secure joiner communication session can be established by the commissioning device determining that an encrypted device identifier received from the participating device matches an encrypted device identifier derived by the commissioning device from a copy of the device identifier received as input from the user to the commissioning device and using the encrypted device identifier as a shared secret to secure the joiner communication session. The management messages may include steering data indicating participating devices permitted to participate in the mesh network. The network data is then propagated to router devices in the mesh network, and the network data includes an indication that the mesh network is available for participation. The participating device establishes a secure joiner communication session with the commissioning device. The commissioning device authenticates the participating device using a Pre-Shared Key for the Device (PSKd) for the participating device and allows the participating device to join the mesh network. A secure joiner communication session can be established by the commissioning device determining that an encrypted device identifier received from the participating device matches an encrypted device identifier derived by the commissioning device from a copy of the device identifier received as input from the user to the commissioning device and using the encrypted device identifier as a shared secret to secure the joiner communication session. The commissioning device authenticates the participating device using a Pre-Shared Key for the Device (PSKd) for the participating device and allows the participating device to join the mesh network. A secure joiner communication session can be established by the commissioning device determining that an encrypted device identifier received from the participating device matches an encrypted device identifier derived by the commissioning device from a copy of the device identifier received as input from the user to the commissioning device and using the encrypted device identifier as a shared secret to secure the joiner communication session.
[0012] Requests to join a mesh network from an attaching device can be received via a joiner router, and the commissioning device should send an indication to the joiner router that the attaching device should receive network credentials for the mesh network and a key encryption key (KEK) shared between the commissioning device and the attaching device. Transmission to the attaching device via the joiner router is effective to enable the joiner router to securely send the network credentials to the attaching device using the received KEK and commission the attaching device to the mesh network. Requests received from the attaching device can include an encrypted device identifier of the attaching device, and the encrypted device identifier is derived from the device identifier of the attaching device using juggling password-authenticated key exchange (J-PAKE).
[0013] Mesh network commissioning is generally described with respect to provisioning an attaching device. In an embodiment, the commissioning device can establish a commissioning communication session between the commissioning device and a border router of the mesh network and establish a joiner communication session between the attaching device and the commissioning device. The commissioning device then sends commissioning information to the attaching device, and the commissioning information is usable by the attaching device to join the mesh network. The commissioning device receives an indication of the location of the commissioner application from the attaching device, utilizes the received indication to search for the commissioner application, and executes the commissioner application to provision the attaching device.
[0014] Mesh network commissioning is described generally with respect to searching and steering. In an embodiment, a commissioning device of a mesh network can obtain steering data for the mesh network, where the steering data is a representation of device identifiers associated with devices permitted to participate in the mesh network. The commissioning device can then propagate the steering data from the commissioning device for the mesh network to one or more routers in the mesh network, where the steering data indicates that the commissioner is active on the mesh network. The commissioning device propagating the steering data enables one or more routers to transmit the steering data in beacon messages, where the steering data is effective to enable a device associated with the device identifier to identify that the device is permitted to participate in the mesh network. In an implementation, the steering data is a 16-bit Cyclic Redundancy Check (CRC16) of a device identifier that is an IEEE 64-bit Extended Unique Identifier (EUI-64). The commissioning device can obtain steering data for the mesh network by obtaining steering data for additional device identifiers associated with additional devices permitted to participate in the mesh network. The commissioning device propagating the steering data is effective to enable a device to distinguish the mesh network from other networks, where the other networks are IEEE 802.15.4 networks. The commissioning device can obtain steering data for the mesh network by obtaining steering data for additional device identifiers associated with additional devices permitted to participate in the mesh network. The commissioning device propagating the steering data is effective to enable a device to distinguish the mesh network from other networks, where the other networks are IEEE 802.15.4 networks.
[0015] Mesh network commissioning related to generally searching and steering is described. In an embodiment, a commissioning device of a mesh network can obtain steering data for the mesh network, the steering data including an indication of device identifiers associated with devices permitted to participate in the mesh network, the indication being represented as a set of values in a Bloom filter representing the device identifiers. The commissioning device can then propagate the steering data from the commissioning device for the mesh network to one or more routers in the mesh network. Propagating the steering data enables the routers to transmit the steering data in beacon messages, the steering data enabling a device associated with a device identifier to identify that the device is permitted to participate in the mesh network by comparing a set of values in the Bloom filter with a second set of values determined by the device.
[0016] In other aspects of mesh network commissioning, the commissioning device determines steering data by applying a first hash function to the device identifier to generate a first hash value and applying a second hash function to the device identifier to generate a second hash value. The device identifier may be an IEEE 64-bit Extended Unique Identifier (EUI-64), and the device identifier is the least significant 24 bits of the EUI-64. In an implementation example, the first and second hash functions are Cyclic Redundancy Checks (CRC), the first hash function is CRC16-CCITT, and the second hash function is CRC16-ANSI. The commissioning device then performs a modulo operation on the first hash value to determine a first bitfield position in the Bloom filter and performs a modulo operation on the second hash value to determine a second bitfield position in the Bloom filter. The divisor for the modulo operation can be the length of the bit array of the Bloom filter. The commissioning device can set the value at the first bitfield position of the Bloom filter to 1 and set the value at the second bitfield position of the Bloom filter to 1. The commissioning device can set all of the bitfield values in the steering data to a value of 1 to indicate that the mesh network is available for any device to participate. Alternatively, the commissioning device can set the bitfield values of the steering data to a value of 0 that disables participation for the mesh network.
[0017] Mesh network commissioning is described generally with respect to dividing nodes in a mesh network. In an embodiment, a node device in a mesh network receives a commissioning data set and compares a timestamp in the received commissioning data set with a stored timestamp in a commissioning data set stored at the node. The node device can determine from the comparison that the stored timestamp is more recent than the received timestamp and, in response, can send a message to a leader device of the mesh network, the message including the stored commissioning data set. The leader device accepts the stored commissioning data set as the most recent commissioning data set for the mesh network and propagates the stored commissioning data set through the mesh network. Alternatively, the node device can determine that the received timestamp is more recent than the stored timestamp and, in response to the determination, can update the stored commissioning data set to be consistent with the received commissioning data set.
[0018] In other aspects of mesh network commissioning, the received commissioning data set includes the received timestamp, commissioning credentials, the network name of the mesh network, and a security policy indicating which security-related operations are permitted in the mesh network. The received timestamp includes a time value and an indication that the time value is traceable to Coordinated Universal Time (UTC). In an implementation example, the node device and the leader device were previously commissioned into the mesh network, and the previous commissioning stored the same commissioning data set in the node device and the leader device. The stored commissioning data set in the node device can be updated after a split of the mesh network that stops communication between the node device and the leader device on the mesh network. The split separates the mesh network, with a first section of the mesh network including the leader device and a second section of the mesh network including the node device. The node device can receive the commissioning data set after the merger of the first and second sections of the mesh network, and the merger reestablishes the communication path between the node device and the leader device on the mesh network.
[0019] Brief Description of the Drawings Embodiments of mesh network commissioning will be described with reference to the following drawings. The same numbers are used throughout the drawings to refer to similar features and components.
Brief Description of the Drawings
[0020]
Figure 1
Figure 2
Figure 3A
Figure 3B
Figure 3C
Figure 3D
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
DETAILED DESCRIPTION OF THE INVENTION
[0021] DETAILED DESCRIPTION A wireless mesh network is a communication network having wireless nodes connected in a mesh topology that provides reliable redundant communication paths for traffic within the mesh network. A wireless mesh network uses multiple wireless links, i.e., hops, to forward traffic between devices within the mesh network. This provides coverage of an area larger than that covered by a single wireless link.
[0022] A wireless mesh network can be based on proprietary technology or standard-based technology. For example, a wireless mesh network may be based on the IEEE802.15.4 standard, which defines the characteristics and services of the physical (PHY) layer and the media access control (MAC) layer for use by applications in the upper layers of the mesh networking stack. Upper layer applications use the services defined by these standards to achieve application-level secure communication (e.g., encryption and authentication) across the mesh network. thereto, which defines the characteristics and services of the physical (PHY) layer and the media access control (MAC) layer for use by applications in the upper layers of the mesh networking stack. Upper layer applications use the services defined by these standards to achieve application-level secure communication (e.g., encryption and authentication) across the mesh network.
[0023] Standard-based techniques for mesh networks provide services for secure communication, but these techniques do not provide a complete solution for secure commissioning of mesh networks. Standard-based solutions may assume that devices are commissioned outside the band of a secure mesh network and left to be designed by application developers. For example, an out-of-band commissioning solution may involve injecting network credentials through a wired connection before participating devices attempt a wireless-based connection to the mesh network. Instead, when a mesh network arises, network credentials are sent through an insecure wireless link.
[0024] Securely commissioning participating devices through a mesh network eliminates the need for special commissioning tools, additional interfaces on the participating devices for credential injection, and the risk of sending credentials through an insecure communication link. Various embodiments provide a mesh network commissioning approach for improving the commissioning of devices participating in a mesh network.
[0025] Authentication techniques used in networks connected to the Internet may rely on using certificates issued by a certification authority. Certificates can be verified for validity to authenticate the identity of another device on the network. Unlike devices on the Internet, devices in a mesh network may not need to access certificate-based authentication connected to the Internet to authenticate devices for commissioning. A mesh network commissioning approach is described that provides secure authentication of commissioning devices and participating devices to the mesh network without the need for an external certification authority.
[0026] The standard for a mesh network provides services for securing communication within the mesh network, such as defining a network key (network master key) and MAC layer encryption method for communication between devices in the mesh network. However, inserting credentials such as a network key into devices participating in the mesh network is outside the scope of the PHY and MAC services defined by the standard. Before a participating device attempts to connect to the mesh network, an out-of-band method for first loading the credentials into the participating device is often used. During commissioning, a mesh network commissioning method is described for securely communicating network credentials to the participating devices through the mesh network.
[0027] Many devices designed for mesh networks have limited user interface capabilities or no user interface capabilities at all. Due to the limited user interface on mesh network devices, entering information such as passphrases, device identifiers, and / or device addresses for participating devices becomes cumbersome and error-prone for the user. A mesh network commissioning method is described for enhancing user efficiency and data entry accuracy during commissioning of participating devices into the mesh network.
[0028] As systems using mesh networking become increasingly ubiquitous, there may be cases where many participating devices must be added during commissioning of the mesh network. The limited resources and user interfaces of many mesh network devices result in long and costly commissioning, especially when a large number of participating devices must be commissioned or re-commissioned. A mesh network commissioning method is described for enhancing the scalability of commissioning participating devices into the mesh network.
[0029] A wireless mesh network may use a licensed or unlicensed (also known as license-exempt or license-free) radio spectrum. Standards such as IEEE802.15.4 define the use of unlicensed radio spectrum, such as channel frequency, channel bandwidth, data rate, modulation, access method, etc., which enable multiple mesh networks to operate within the bandwidth of the unlicensed spectrum. In an environment where multiple mesh networks share the same radio spectrum and / or basic industry-standard networking protocols, a mesh network commissioning method is described for securely enrolling participating devices into the correct mesh network.
[0030] In addition to inserting network credentials into the participating devices during commissioning, additional provisioning may be required for the participating devices to update or configure them for use in the mesh network. This provisioning may require secure communication of information, such as linking the participating devices to a user account in a cloud service. A mesh network commissioning method for securely provisioning the participating devices during commissioning is described.
[0031] The features and concepts of the described systems and methods for mesh network commissioning can be implemented in any number of different environments, systems, devices, and / or various configurations, but embodiments of mesh network commissioning are described in the context of the following exemplary devices, systems, and configurations.
[0032] Figure 1 shows an exemplary mesh network system 100 in which various embodiments of mesh network commissioning can be implemented. Mesh network 100 is a wireless mesh network that includes router 102, router - eligible end device 104, and end device 106. Router 102, router - eligible end device 104, and end device 106 each include a mesh network interface for communication through the mesh network. Router 102 transmits and receives packet data through the mesh network interface. Router 102 also routes traffic across the entire mesh network 100. Router 102 and router - eligible end device 104 can assume various roles and combinations of roles for commissioning within mesh network 100, as described below.
[0033] Router - eligible end device 104 is located at a leaf node of the mesh network topology and does not actively route traffic to other nodes in mesh network 100. When a router - eligible device 104 is connected to an additional device, router - eligible device 104 can become router 102. End device 106 is a device that can communicate using mesh network 100 but has no ability to route traffic beyond simply forwarding it to its parent router 102 in mesh network 100.
[0034] Router 102, router - eligible end device 104, and end device 106 include network credentials that are used to authenticate the identities of these devices as members of mesh network 100. Router 102, router - eligible end device 104, and end device 106 also use the network credentials to encrypt communication in the mesh network.
[0035] Figure 2 shows an exemplary environment 200 in which various embodiments of the mesh networking commissioning technique can be implemented. Environment 200 includes a mesh network 100, where several routers 102 perform specific roles in mesh network 100. Devices within mesh network 100, as indicated by the dashed lines, communicate securely through mesh network 100 using network credentials. Devices shown external to mesh network 100 do not have a copy of the network credentials for mesh network 100 and cannot use mesh network layer security to communicate securely.
[0036] (Also known as a gateway and / or edge router) Border router 202 is one of the routers 102. Border router 202 includes a second interface for communication with an external network external to mesh network 100. Border router 202 connects to access point 204 through the external network. For example, access point 204 may be an Ethernet® router, a Wi-Fi® access point, or any other suitable device for bridging different types of networks. Access point 204 connects to a communication network 206 such as the Internet. Cloud service 208 connected via communication network 206 provides services related to devices within mesh network 100 and / or services that use those devices. By way of example and not limitation, cloud service 208 provides applications including connecting end-user devices such as smartphones, tablets, etc. to devices in mesh network 100, processing data obtained in mesh network 100 and presenting it to the end user, linking devices in one or more mesh networks 100 to a user account of cloud service 208, provisioning and updating devices in mesh network 100, and the like.
[0037] A user who selects to commission a new device to participate in the mesh network 100 can use a commissioning device 210, which connects to the border router 202 via the external network technology of the access point 204 to commission the new device. The commissioning device 210 can be any computing device such as a smartphone, tablet, notebook computer, etc., which has a user interface and communication capabilities suitable for operating in the role of a commissioner to allow a device to participate in the mesh network 100. To become a commissioner for the mesh network 100, the commissioning device 210 applies to become a commissioner as will be described in detail below.
[0038] The participating device 212 is any router - eligible end - device 104 or end - device 106 that the user has selected to participate in the mesh network 100. Before commissioning, the participating device 212 has not received network credentials for the mesh network 100 and cannot be authenticated to the mesh network 100 or communicate securely through the mesh network 100. During commissioning, the participating device 212 acts as a joiner (i.e., a participating device) as will be described in detail below.
[0039] During the commissioning of the participating device 212 to participate in the mesh network 100, one of the routers 102 acts as a joiner router 214. The role of the joiner router 214 can be performed by any router 102 within one of the wireless links of the participating device 212. The joiner router 214 provides a locally - only wireless link to the participating device 212 for a joiner session as will be described in detail below.
[0040] One of the routers 102 serves as the leader 216 for the mesh network 100. The leader 216 manages router identifier assignment, and the leader 216 is the primary arbiter of network configuration information for the mesh network 100. The leader 216 also controls, at any given time, which commissioning device 210 is accepted as the sole active commissioner for the mesh network 100.
[0041] The environment 200 as shown in FIG. 2 shows that a device performs only a single one of the various roles described above. FIGS. 3A - 3D, as shown and described below, show, by way of example and not limitation, other distributions of commissioning roles for mesh network commissioning techniques.
[0042] FIG. 3A shows a simplified version 300 of an exemplary environment 200 in which only devices having roles specific to commissioning are shown for clarity. In this example, each device in FIG. 3A performs a single commissioning role in an embodiment of mesh network commissioning. FIG. 3A also shows the communication links used during the commissioning process. Secure mesh communication links 302 are used between devices participating in the mesh network 100. To commission the participating device 212 to the mesh network 100, a non - secure local - only wireless link 304 is established to connect the participating device 212 to the joiner router 214. The external network 306 has communication links as shown, such as a point - to - point link 308 between the border router 202 and the commissioning device 210, on the external network.
[0043] Figure 3B also shows a simplified version 320 of the exemplary environment 200, showing a border / joiner router 322 which is a border router 202 that additionally performs the role of the joiner router 214. Figure 3C also shows a simplified version 340 of the exemplary environment 200, showing a commissioner / border router 342 which is a border router 202 that additionally performs the role of the commissioning device 210. In this example, the commissioner / border router 342 includes a mesh network interface. The commissioner / border router 342 may also be referred to as an on-mesh commissioner since the commissioner / border router 342 is connected to the mesh network 100.
[0044] Figure 3D also shows a simplified version 360 of the exemplary environment 200, showing a commissioner / border router / joiner router 362 which is a border router 202 that additionally performs the roles of the joiner router 214 and the commissioning device 210. Figures 3A - 3D show samples of possible combinations of mesh network commissioning roles in which any router-eligible end device 104 can perform multiple roles (except for the role of the participating device 212).
[0045] Figure 4 shows a commissioning process 400 by showing transactions between devices in the mesh network 100 that are performing various mesh network commissioning roles. When the commissioning device 210, for example a mobile phone, discovers from the advertisement 402 from the border router 202 that the mesh network 100 is available for a commissioner, the commissioning process 400 begins. The commissioning device 210 then uses a pre-shared key for the commissioner (PSKc) to communicate with the border router 202 and Establish a secure socket connection. This secure connection establishes a commissioning session (404). Since only one active commissioner can exist at a time, the commissioning device 210 sends an application to the border router 202 (406), and it is then transferred by the border router 202 to the leader 216 as an application (408), so that the leader 216 applies to become the active commissioning device 210 for the mesh network 100.
[0046] When the leader 216 accepts the commissioning device 210 as an active commissioner, the leader sends an application response 410 to the border router 202, which then transfers the application response 412 to the commissioning device. The leader 216 also propagates the updated network data through the mesh network 100 (414) to indicate to the devices on the mesh network 100 that an active commissioner exists.
[0047] Once active as a commissioner, the commissioning device 210 enables participation for the mesh network 100. Optionally, the commissioning device 210 provides steering data indicating the device identifiers of the participating devices 212 expected to participate in the mesh network 100. The commissioning device 210 may also query and set network parameters such as the network name and security configuration.
[0048] The participating device 212 sends a request (416) to the joiner router 214 to establish a joiner session, which then relays the request (418) from the participating device 212 to the border router 202. Note that the relay request 418 may be forwarded by any number of routers 102 in the mesh network between the joiner router 214 and the border router 202. The border router 202 forwards the request to establish a joiner session to the commissioning device 210 (420). The commissioning device 210 sends a response (422) to the request for the joiner session to the border router 202, which then relays the response to the joiner router 214 (424). At 426, the joiner router 214 ends the establishment of the joiner session. The establishment of the joiner session in FIG. 4 is shown in a simplified manner for clarity, and additional relayed DTLS messages may be exchanged as part of the DTLS handshake to establish the joiner session.
[0049] As shown at 416 - 426, the participating device 212 and the commissioning device 210 use Datagram Transport Layer Security (DTLS) with a device - specific pre - shared key (PSKd) for the participating device 212. Alternatively, a handshake is performed using Transport Layer Security (TLS). The handshake is performed for relaying through the mesh network 100 as will be described in detail below. The commissioning device 210 derives PSKd from the joining device credentials received outside the band of the mesh network 100, typically input through the user interface of the commissioning device 210, such as by scanning a QR code (registered trademark) or barcode. Once the handshake is complete, the shared secret generated from PSKd is used to establish a joiner session and pass network credentials for the mesh network 100 from the joiner router 214 to the joining device 212. Optionally, in addition to passing network credentials for the mesh network 100, as shown at 428, the commissioning session and the joiner session may be used to provision the joiner.
[0050] FIG. 5 shows a commissioning environment 500 having an established commissioning session and an established joiner session. The commissioning session 502 is a secure communication tunnel from the commissioning device 210 to the border router 202. The joiner session 504 is a secure communication tunnel from the commissioning device 210 to the joining device 212. For clarity, other mesh communication links and external network communication links are omitted.
[0051] First device pairing To cause a device to participate in the mesh network 100, a first device is commissioned to establish commissioning credentials for a commissioning device to participate in the mesh network 100 and network credentials for secure operation of the mesh network 100. The commissioning device 210 connects to a first device that can be any router - eligible end - device 104. The first device is commissioned outside the band of the mesh network 100. To connect the first device to the commissioning device 210, any suitable connection such as USB, ad - hoc Wi - Fi, Bluetooth®, point - to - point IEEE802.15 .4 etc. may be used.
[0052] Once the commissioning device 210 connects to the first device, the commissioning device programs the first device with the PSKc for the mesh network 100 and the network name. The PSKc is used to authenticate the commissioning device 210 to the mesh network 100 and establish a commissioning session, as will be described in detail below. The network name is in a human - readable form, similar to the Service Set Identifier (SSID) in a Wi - Fi network. Once the first device is commissioned, the first device becomes the leader 216 of the mesh network 100. The first device forms the mesh network 100 and determines a unique Personal Area Network Identifier (PAN ID) and a unique Extended PAN ID (XPANID) for the mesh network 100, and a network key for the mesh network 100.
[0053] PSKc is derived from the commissioning credentials, which are human-scale passphrases entered into the commissioning device 210 by the user managing the mesh network 100. The commissioning credentials are strengthened (e.g., by cryptographically hashing multiple times) to derive the PSKc stored by the leader 216 and the commissioning device 210. Any suitable cryptographic hashing technique may be used to derive the PSKc.
[0054] To improve the security of the PSKc, cryptographic techniques may be applied to increase the entropy of the commissioning credentials in the derived PSKc compared to the equivalent human-scale commissioning credential passphrase entered by the user. By using key stretching, the derived key can be securely stored on embedded nodes that can be physically compromised, and the user's passphrase will not be compromised. This is useful because users often reuse passphrases for multiple websites and accounts. Any suitable cryptographic technique, such as applying a cryptographic hash multiple times, is used to stretch the key. For example, to apply the Advanced Encryption Standard-Cipher-based Message Authentication Code-Pseudo-Random Function-128 (AES-CMAC-PRF-128), the Password-Based Key Derivation Function 2 (PBKDF2) can be used. For example, the PSKc can be derived as shown in Equation 1: For example, the PSKc can be derived as shown in Equation 1:
[0055]
Equation
[0056] In the formula, PRF is a kind of pseudo-random function to be used by PBKDF2, P is the commissioning credential, S is the salt for the cryptographic function (for example, a string such as the network type concatenated with the network name), c is the number of iterations of PRF, and dkLen is the desired length of the derived key (PSKc).
[0057] Establishment of Commissioning Session Figure 6 shows a process 600 for establishing a commissioner session by showing the transactions between the commissioning device 210, the border router 202, and the leader 216. The mesh network 100 may have a limited number of active commissioning devices 210, or there may be multiple potential commissioning devices 210 that can perform the role of the commissioner. The leader 216 is responsible for ensuring that there is only a finite set of active commissioners for the mesh network 100. By way of example and not limitation, the finite set of active commissioners may be limited to a single active commissioner. To become an active commissioner, the commissioning device 210 applies to the leader 216 to become a commissioner for the mesh network.
[0058] At 602, the border router 202 advertises on the external network interface that the mesh network 100 is available for the commissioning device 210. The border router 202 may create the advertisement in response to a multicast request (i.e., scan or query) within the service discovery protocol. For example, the advertisement 602 may be a Multicast Domain Name Service (mDNS) ) may be performed using any suitable service discovery such as. Specifically, for the wireless network, the border router 202 advertises the commissioning service using DNS service discovery (DNS-SD) via a Uniform Resource Locator (URL). Next, the lookup server will respond with all the different wireless networks that are accessible, the network name of the mesh network 100, and the commissioning port.
[0059] The commissioning device 210 responds (604) to the advertisement from the border router 202 by requesting a secure connection for the commissioning session between the commissioning device 210 and the border router 202. For example, the commissioning session can be established in any suitable manner such as using PSKc to establish the commissioning session using DTLS or TLS. By way of non-limiting example, the commissioning device 210 and the border router 202 exchange DTLS messages 606-616 to identify the commissioning device and authenticate it to the mesh network 100 and to establish a secure connection for the commissioner session.
[0060] The commissioning session may use any suitable network port such as a User Datagram Protocol (UDP) port or a Transmission Control Protocol (TCP) port as both the source port and the destination port of the commissioning session. For example, the commissioning session uses the commissioning port discovered during network discovery. Each border router 202 can allocate a commissioning port or use the default commissioning port.
[0061] To become an active commissioner for the mesh network 100, the commissioning device 210 applies (618) to the leader 216 to request to become a commissioner. Using a commissioning session, the commissioning device 210 sends (620) to the border router 202 a request to become an active commissioner for the mesh network 100. The border router 202 forwards the request to the leader 216 (622). For example, after the commissioning device 210 is authenticated and identified, the border router 202 unicasts to the leader 216 a commissioner application request message 620 (e.g., COMM_PET.req). The commissioner application request is forwarded by the border router 202 to the leader 216 as a request 622 that requests that the commissioning device 210 be accepted as an active commissioning device 210 for the mesh network 100 (e.g., as LEAD_PET.req). For example, a commissioner application request message including a commissioner identification string is securely transmitted through the mesh network 100.
[0062] The leader 216 determines whether there is an active commissioner for the mesh network 100. If there is an active commissioner, the leader rejects the application from the commissioning device 210. If there is no active commissioner for the mesh network 100, the leader 216 accepts the application from the commissioning device 210. The leader 216 updates that copy of the commissioning dataset to reflect the existence of an active commissioner and the identity of the commissioning device 210. The leader 216 sets the participation permission flag for the mesh network 100 to true. The leader 216 then propagates (624) the network data and the updated commissioning dataset to the mesh network 100, which indicates that the mesh network 100 is ready to participate.
[0063] For example, the leader 216 will respond to the commissioner application request message by accepting or rejecting the commissioning device 210 as an active commissioner for the mesh network 100. If accepted, the leader 216 updates that copy of the network data with the new commissioner information, sets the participation permission flag to true, and uses any suitable protocol, such as the Multicast Protocol for Low Power and Lossy Networks (MPL), or multicasts an MLE-UPDATE message to propagate the updated network data and commissioning data set through the mesh network 100.
[0064] Potential joiner routers 214 (i.e., router 102 and router-qualified end device 104) store the updated network information and commissioning data set propagated by the leader 216. The updated network information and commissioning data set enable direct communication with the commissioning device 210 for use in commissioning any participating device 212. The commissioning data set includes a router locator (RLOC) that permits any device to send messages to the current active border router 202 acting as a proxy for the active commissioner.
[0065] After determining whether to accept or reject the application from the commissioning device 210, the leader 216 responds to the border router 202 (626) with the indication of its decision. The border router 202 transmits a response including the indication of the leader 216's decision to accept or reject the application to the commissioning device 210 (628). For example, the leader 216 transmits a leader application response message (e.g., LEAD_PET.rsp) indicating the leader 216's decision on whether to accept or reject the commissioning device 210 as an active commissioner for the mesh network 100 to the border router 202. In response to receiving the leader application response message from the leader 216, the border router 202 will transmit a commissioner application response message (e.g., COMM_PET.rsp) indicating the leader 216's decision on whether to accept or reject the commissioning device 210 as an active commissioner for the mesh network 100 to the commissioning device 210.
[0066] Alternatively, as shown at 630, after the leader 216 accepts the application of the commissioning device 210 to become an active commissioner, although it sets the participation permission flag to true, the leader 216 waits to receive a management data request setting message 632 (e.g., MGMT_SET.req) including an indication from the commissioning device 210 to permit the leader 216 to propagate the updated network data to the mesh network 100. The leader 216 responds to the commissioning device with a management data response setting message 634 (e.g., MGMT_SET.rsp) to acknowledge receipt of the request to propagate the updated network data. The leader 216 propagates the network data and the updated commissioning data set to the mesh network 100 (636), which indicates that the mesh network 100 is ready to participate.
[0067] Before the commissioning device 210 sends a management data request setting message to permit the leader 216 to propagate updated network information, the commissioning device 210 may manage the mesh network 100, such as making the device configurable, changing network settings, etc., without making the mesh network 100 joinable. The commissioning data set includes a commissioner session identifier, a commissioning data set timestamp, and a PSKc. When the commissioning device 210 is an active commissioner on the mesh network 100, the commissioning data set also includes the location of the border router 202. When the mesh network 100 is joinable, the commissioning data set also includes steering data indicating which participating devices 212 are permitted to join the mesh network 100. When the mesh network 100 is joinable, the router 102 in the mesh network 100 includes a join permission flag and steering data in the beacon transmitted by the router 102.
[0068] The commissioning device 210 may include a mesh network interface that enables the commissioning device 210 to operate as a native commissioner on the mesh network 100. When the native commissioner bit is set in the beacon and the commissioning device 210 includes a mesh network interface, the commissioning device 210 may apply to the leader 216 to become an active commissioner for the mesh network 100.
[0069] Once accepted as an active commissioner, the commissioning device 210 may manage the network 100 by using management data request setting messages and management data response acquisition messages to obtain and set network parameters of the mesh network 100. The network parameters may include PSKc for the mesh network 100, network name, network key, network key sequence number, network PAN ID, network extended PAN ID, network unique local address (ULA), and / or radio channel. Additional management capabilities may be considered, such as a function for expelling previously joined devices from the mesh network 100. The management data request setting messages and management data response acquisition messages are relayed to the leader 216 via the border router 202 through the commissioning session. Messages for obtaining and setting network parameter commands are transferred to and stored by the leader 216 because they affect the state of the entire global network. Any device can directly address a request to the leader 216 to obtain network information and can avoid multi-hop addressing.
[0070] Establishment of the joiner session To securely commission a new device to the mesh network 100, a joiner session is established between the commissioning device 210 and the participating device 212. The joiner session is a communication tunnel through the mesh network 100 between the commissioning device 210 and the participating device 212. The participating device credentials are human-scale passphrases used to authenticate that the participating device 212 is eligible to participate in the mesh network 100. The participating device credentials are communicated between the participating device 212 and the commissioning device 210 by any suitable out-of-band mechanism. For example, the participating device credentials may be communicated by scanning a QR code or barcode located on the participating device 212 with a camera included in the commissioning device 210, by entering the serial number of the participating device 212 into the user interface of the commissioning device 210, and the like.
[0071] FIG. 7 shows a process 700 for establishing a joiner session by showing the transactions between the commissioning device 210, the border router 202, the joiner router 214, and the participating device 212. In some embodiments, the establishment of the joiner session begins when the participating device 212 scans a wireless channel, such as a channel defined by the IEEE 802.15.4 specification, to find a potential mesh network 100 to participate in. The participating device 212 issues a beacon request (702) to each mesh network 100 found during the channel scan, to which all mesh networks 100 will respond.
[0072] For example, the participating device 212 performs an active scan by transmitting 802.15.4 MAC - BEACON requests on all channels. In response to receiving the beacon request, the joiner router 214 transmits a beacon response containing steering data (704) to assist the participating device 212 in discovering the correct mesh network 100 to which the participating device 212 should join. The joiner router 214 transmits an 802.15.4 MAC - BEACON response that includes the steering data in the payload of the 802.15.4 MAC - BEACON response. Details regarding generating, transmitting, and using the steering data are described in more detail below. Once the participating device 212 finds the mesh network 100 to which it should join, the participating device 212 establishes a local - only wireless link to the joiner router 214, which is an unsecured point - to - point communication link.
[0073] For example, the participating device 212 establishes a local - only wireless link to the joiner router 214 (706) by constructing MAC - layer network parameters (such as channel, PAN ID, etc.) collected from the beacons received from the channel scan. The participating device 212 transmits packets to a joiner port (such as a UDP port) (such as port number 5684 ":coaps") on the unsecured interface of the joiner router 214 to establish the local - only wireless link. The joiner port is also communicated in the beacon. If the joiner port is not found, a default port is used by the participating device 212.
[0074] The joining device 212 sends a request to join the mesh network 100 to the joiner router 214. Upon receiving the request to join the mesh network 100, the joiner router 214 sends a request for permission to join to the commissioning device 210. The joiner router 214 forwards all traffic sent by the joining device 212 on an insecure joiner port. The joiner router 214 does not process or understand the content of the DTLS handshake understood by the commissioning device 210. In some embodiments, the joiner router 214 stores in its memory the location of the commissioning device 210, or the location of the border router 202 which is a proxy for the commissioning device 210, and may search for the location of the commissioning device 210 from another device (such as the leader 216, or the border router 202), or search for some other location (such as a remote service). The PSKd is used to authenticate the joining device 212 to the mesh network 100 and to secure the joiner session between the commissioning device 210 and the joining device 212. The PSKd is derived from the joining device credentials.
[0075] In some embodiments, the joiner session may be established using an authentication protocol such as DTLS, as well as juggling-based password authenticated key exchange (J-PAKE), Secure Remote Password (SRP) protocol, and / or any other suitable password authenticated key exchange protocol. For example, an elliptic curve variant of J-PAKE (EC-JPAKE) using the NIST P-256 elliptic curve may be used for authentication and key agreement. Using J-PAKE with the PSKd proves that the user commissioning the joining device 212 physically owns the joining device 212, and proves that the commissioning device 210 is connected to the correct joining device 212 through the joiner session.
[0076] The joiner router 214 forwards a request to participate in the mesh network 100, received from the participating device 212 through a joiner session, to the commissioning device 210. When participation in the mesh network 100 is authenticated by the commissioning device 210, the network key is securely transferred to the participating device 212 using the joiner session.
[0077] For example, the participating device 212 may send a joiner identification message to the joiner router 214 to provide a human-readable name for the participating device 212. The joiner router 214 encapsulates the information in the joiner identification message within a relay message and forwards the relay message to the border router 202 using a commissioner prefix, an anycast address, or a border router locator. Upon receiving the relay message, the border router 202 attaches the source address (in this case , the address of the joiner router 214) to the list of the next relay addresses at the end of the relay message and forwards the relay message through the joiner session.
[0078] For example, the participating device 212 uses DTLS and UDP to send handshake messages to the joiner router 214 (708). The joiner router 214 relays the DTLS handshake messages to the border router 202 for delivery to the commissioning device 210 (710). The joiner router 214 does not know the content of the relayed DTLS handshake messages. The joiner router 214 filters the received DTLS handshake messages received from the participating device 212 through an insecure local-only wireless link based on the matching joiner UDP port described above. The joiner router 214 relays all messages received on the specified joiner UDP port. The joiner router 214 prevents a Denial of Service (DOS) attack on the mesh network 100. To this end, the transfer of insecure messages may be rate-limited.
[0079] As a further example, the participating device 212 first identifies itself to the commissioning device 210 by sending a DTLS-ClientHello message to the joiner router 214. This first DTLS-ClientHello is intended to allow the commissioning device 210 to allocate a DTLS cookie to the participating device 212 for use during the remainder of the commissioning exchange. The joiner router 214 encapsulates the DTLS-ClientHello UDP payload within a DTLS relay receive notification message (e.g., RLY_RX.ntf) and adds the source address of the encapsulated packet, in this case, the 64-bit link-local address of the participating device 212, as a relay hop. The DTLS cookie is sent to the participating device 212, which then returns it to the commissioning device 210 to ensure that the participating device 212 is genuine.
[0080] The joiner router 214 also adds its address as a relay point to the DTLS relay reception notification message. The joiner router 214 sends the DTLS relay reception notification message to the border router 202. When receiving the DTLS relay reception notification message, the border router 202 forwards the DTLS relay reception notification message to the commissioning device 210 through the commissioning session (712).
[0081] Based on the joiner identification message received from the participating device 212, the commissioning device 210 uses the joiner identification message to start a DTLS-HelloVerify message based on PSKd. At 714, the DTLS-HelloVerify message and the DTLS relay transmission notification message (e.g., RLY_TX.ntf) are sent to the border router 202. At 716, the border router 202 relays the DTLS-HelloVerify message and the DTLS relay transmission notification message to the joiner router 214. At 718, the joiner router 214 sends the DTLS-HelloVerify message to the participating device 212.
[0082] Alternatively, the commissioning device 210 may have information about a plurality of participating devices 212 to be commissioned. When the commissioning device 210 receives a DTLS-ClientHello message from a specific one of the plurality of participating devices 212, the commissioning device 210 looks up the IEEE 64-bit extended unique identifier (EUI-64) address of the participating device 212 that sent the DTLS-ClientHello message. The commissioning device 210 searches for PSKd in the information about the plurality of participating devices 212 to be commissioned to continue the DTLS handshake for the specific participating device 212. The commissioning device 210 combines Relay the received DTLS-ServerHello, DTLS-ServerKeyEx, and DTLS-ServerHelloDone back to the joining device 212 via the joiner router 214. When this DTLS handshake is completed, the establishment of the joiner session is completed.
[0083] Once the commissioning device 210 authenticates the joining device 212, the commissioning device 210 entrusts the joining device 212 with the network credentials for the mesh network 100. For example, the commissioning device 210 requests network credentials from the border router 202 and transmits the network credentials to the joining device 212 in a joiner entrustment message through the joiner session, which is transmitted by a DTLS relay transmission notification message through the commissioning session. Alternatively, the commissioning device 210 uses a key exchange key (Key Exchange Key: KEK) as a shared secret between the commissioning device 210 and the joining device 212 to entrust the joining device 212 with the network credentials for the mesh network 100. The KEK is transmitted to the joiner router 214 for the joining device 212 and is used to encrypt the network credentials for transmission through a local-only wireless link.
[0084] Provisioning of Joining Devices When participating device 212 joins mesh network 100, the participating device 212 may also need to be provisioned. Provisioning may include updating the firmware in the participating device 212, configuring the participating device 212, providing local configurations related to other devices on the mesh network 100, linking the participating device 212 to a user's account on cloud service 208, linking the participating device 212 to a cloud-based application server, and so on. Although still established, the commissioner session and the joiner session are used to provide a secure connection for provisioning the participating device 212 before the participating device 212 uses network credentials to join the mesh network 100.
[0085] The participating device 212 sends an indication of the location of the commissioner application to be executed by the commissioning device 210 for provisioning the participating device 212. The indication of the location may be used to find the commissioner application in the memory of the commissioning device 210 or may be used by the commissioning device 210 to search for the commissioner application from the cloud service 208. The indication may be in any suitable form, such as a Uniform Resource Locator (URL). When the provisioning of the participating device 212 is complete, the participating device 212 terminates the joiner session and the local-only wireless link. The participating device 212 uses network credentials to join the mesh network 100.
[0086] Steering data Wireless mesh networks may share the radio spectrum. Standards such as IEEE802.15.4 define multiple channels, which enable multiple networks to operate within the bandwidth of the radio spectrum. Additionally, when there are many devices to be commissioned into the mesh network 100, it is desirable to efficiently communicate multiple device identifiers for many participating devices 212 using the steering data in beacons to assist the participating devices 212 in searching for the correct mesh network 100 to participate in. In an environment where multiple mesh networks share the same radio spectrum and / or basic industry standard networking protocols, A mesh network commissioning method is described that safely enables multiple participating devices 212 to participate in the correct mesh network 100.
[0087] Once the commissioning device 210 obtains the PSKd and EUI-64 MAC address for the desired participating device 212, the commissioning device 210 constructs steering data that will signal to the desired participating device 212 which mesh network 100 it should participate in. The steering data will include some way to distinguish the mesh network 100 from other 802.15.4-based networks, a way to communicate the presence or absence of an active commissioner on the mesh network 100, and a way to identify which participating devices 212 are currently permitted to participate in the mesh network 100.
[0088] Steering data is obtained by the commissioning device 210 and indicates the device identifiers of one or more participating devices 212 that are permitted to participate in the mesh network 100. The commissioning device 210 propagates the steering data to the router 102 in the mesh network 100. The router 102 then includes the steering data in a beacon for the mesh network 100 and transmits the beacon to provide the steering data to potential participating devices 212. The beacon is transmitted with an indication that the mesh network 100 is available for participation and whether the potential participating device 212 is permitted to participate in the mesh network 100. For example, the commissioning device 210 obtains the PSKd and the EUI-64 MAC address for the desired participating device 212 as described above. From this EUI-64, the commissioning device 210 constructs the steering data to signal to the desired participating device 212 that the desired participating device 212 is permitted to participate in the mesh network 100.
[0089] In a further example, the steering data may include a list of 16-bit cyclic redundancy check (CRC16) encoded EUI-64 addresses of participating devices 212 that are permitted to participate in the mesh network 100. The CRC16 provides a compact representation of the EUI-64 address in a state where the likelihood of a collision between two different EUI-64 addresses in the CRC16 encoded address is low. The use of the CRC16 reduces the size of the beacon payload required for the device identifier of the participating device 212, enabling the appropriate participating device 212 to efficiently find the correct mesh network 100 to participate in while efficiently using the resources of the mesh network 100.
[0090] When multiple mesh networks 100 have an active commissioner, the participating device 212 searches for the correct mesh network 100 by collecting beacons from an active scan. The participating device 212 discards beacons collected from non-mesh networks, beacons with incorrect protocols, beacons with incorrect versions, beacons with incorrect XPANIDs, beacons with incorrect network names, and / or beacons with beacons with participation disabled. The participating device 212 prioritizes the collected beacons that exactly match the device identifier of the participating device 212 in the steering data of the collected beacons, and then prioritizes the matching collected beacons in order of best signal strength. Until the participating device 212 successfully participates in the mesh network 100, the participating device 212 attempts to join the prioritized network one at a time (as described above). If the participating device exhausts the network priority list without successfully participating in the mesh network 100, the participating device 212 may perform an active scan immediately or after a delay period to start searching for the mesh network 100 again.
[0091] The steering data guides which participating device 212 may or may not attempt to join the mesh network 100. Additionally, all bits in the steering data may be set to a value of 0 to indicate that the mesh network 100 is not available for participation. Alternatively, all bits in the steering data may be set to a value of 1 to indicate that the mesh network 100 is available for participation by any participating device 212.
[0092] Some commissioning devices 210 may lack the resources to extract the EUI-64 and participating device credentials by easily scanning a QR code. In this case, when steering data is requested, the least significant 24 bits of the EUI-64 are used as the device identifier for the participating device 212. The S bit in the beacon indicates whether a short or long device identifier for the participating device 212 is used to request steering data. When the EUI-64 is used as the device identifier to request steering data, the S bit is set to a value of 0. When the least significant 24 bits of the EUI-64 are used as the device identifier to request steering data, the S bit is set to a value of 1.
[0093] Figure 8 shows an example 800 of steering data generated using a Bloom filter that is used to encode the device identifier for the participating device 212 into the steering data. The Bloom filter provides an efficient encoding of device identifiers with a low probability of collisions between the encoded values of different device identifiers. Each device identifier 802 to be included in the steering data is encoded by a first hash function 804 to generate a first hash value and by a second hash function 806 to generate a second hash value. For example, the first hash function 804 is CRC16-CCITT and the second hash function 806 is CRC16-ANSI. The device identifier 802 is the EUI-64 of the participating device 212. Alternatively, the least significant 24 bits of the EUI-64 are used as the device identifier 802.
[0094] For the first hash value and the second hash value, modulo operation 808 is performed. The divisor for the modulo operation is the length of the bit array 810 of the Bloom filter (the bit positions in the bit array 810 are indicated by 812, and the bit values are indicated by 814). Before determining the steering data, each bit in the bit array is initialized to a value of 0. The result of each modulo operation determines a position in the bit array. The values at the two determined positions in the bit array are set to a value of 1, and the two determined bit fields provide a mapping to the device identifier.
[0095] For example, for the virtual device identifier 802, performing the modulo operation 808 on the result of the first hash function 804 yields a value of 3 for the device identifier 802. Performing the modulo operation 808 on the result of the second hash function 806 yields a value of 6 for the device identifier 802. To indicate the Bloom-filtered value of the virtual device identifier 802, the values at bit positions 3 and 6 are set to a value of 1.
[0096] The participating device 212 also calculates the Bloom filter bit positions representing the device identifier of the participating device 212. The participating device 212 determines whether both of the calculated bit positions contain a value of 1 in the steering data in the collected beacon. A positive determination indicates to the participating device 212 that the participating device 212 is permitted to participate in the mesh network 100. To indicate that any participating device 212 is permitted to participate in the mesh network 100, all of the bit values in the bit array of the Bloom filter may be set to a value of 1. The Bloom filter bit Setting all bits in the to - array to a value of 0 indicates that there is no active commissioner for the mesh network 100 and that the mesh network 100 is not available for participation. The Bloom filter enables an appropriate participating device 212 to efficiently find the correct mesh network 100 to which it should participate, while providing a compact representation using the anonymity of the device identifier, in a state where the probability of misjudgment indicating that the participation of a specific participating device 212 is permitted when the specific participating device is not permitted to participate in the mesh network 100 is low.
[0097] The parameters for the Bloom filter are the number k of hash functions used to hash the device identifier, the number m of bits in the bit - array of the Bloom filter, and the number n of participating devices 212 represented in the steering data. By way of non - limiting example, the parameter k is set to 2, indicating that two hash functions are used, such as CRC16 - CCITT with polynomial 0x1021 and CRC16 - ANSI with polynomial 0x8005. Other values of k, hash functions, and polynomials are conceivable.
[0098] The collision probability p for the Bloom filter can be calculated as follows.
[0099]
Equation
[0100] The commissioning device 212 may set the length m of the bit - array as needed to obtain a reasonably low collision probability in the steering data. The use of the Bloom filter allows the steering data to scale to support the participation of a large number of participating devices 212 in the mesh network 100 while maintaining a low collision probability. The following table shows various values of n and the collision probability p for the case of m = 127 (i.e., 16 bytes).
[0101]
Table 1
[0102] To enable a large number of participating devices 212 (e.g., 1000) to participate, the commissioning device 210 may break down a large group into smaller groups so that each smaller group has a lower collision probability (false determination) in the steering data.
[0103] Management of Commissioning Data across Mesh Network Compartments FIG. 9 shows the mesh network 100 when a split or division of the mesh network 100 occurs. For example, one of the routers 102 may lose power, resulting in a split of the mesh network 100 that prevents one compartment or fragment of the mesh network 100 from communicating with another. On the other hand, wireless interference may block communication in a part of the mesh network 100, creating a split of the mesh network 100. When the mesh network 100 splits into two network fragments 902 and 904, the network fragment 904 will select a leader for the fragment 904. Also, it may accept a commissioner for the fragment 904 that is different from the commissioner for the fragment 902. Either or both of the fragments may update the network credentials during the split.
[0104] The mesh network 100 can be cleanly and surely split into two different fragments, which are fully functional networks when the connectivity between the two compartments is severed. These compartments can continue any unfinished communication that is fully contained within the non-interrupted compartment and can continue with normal key rotation. Two mesh network compartments that were previously part of a single mesh network 100 can autonomously merge when the connectivity between the two compartments is restored.
[0105] If the commissioning credentials are changed in network fragment 902 during fragmentation, this change in the commissioning credentials will be propagated to the devices within network fragment 904 when connectivity is restored between network fragments 902 and 904. In other words, in some embodiments, the commissioning credentials are updated to the most recently adopted credentials. However, if both network fragments 902 and 904 are authorized by separate commissioners and receive separate new commissioning credentials during fragmentation, it may become more difficult to determine the most recent credentials.
[0106] The resolution of commissioning credentials between any two mesh network fragments that were previously fragmented but are now merged is to propagate the most recently changed commissioning dataset to the devices in mesh network 100. If there is a change in fragment 902, the user may think that although they have changed the commissioning credentials throughout mesh network 100, they have effectively changed the credentials only in fragment 902 due to the split. At some point later, fragments 902 and 904 will merge. After fragmentation, although the credentials in fragment 902 were changed, the original credentials in fragment 904 remained unchanged, so the merged fragment assumes that new credentials were established in fragment 902 during fragmentation. If there is a change in the commissioning credentials in fragment 904 during fragmentation, the changes made to fragment 904 will be propagated to the devices in fragment 902 after the merge.
[0107] When two users change commissioning credentials in their respective two fragments 902 and 904 during fragmentation, each of the two users believes that they are changing the commissioning credentials throughout the entire mesh network 100. However, since the mesh network 100 is fragmented, both users can establish themselves as network commissioners and change the commissioning credentials in their respective network fragments. At some point later, fragments 902 and 904 will merge, but it may not be known which leader from the two fragments will be dominant as the leader for the merged mesh network. The dominant leader may not have a copy - of the most recently changed commissioning credentials. Since the commissioning credentials were changed independently in the two fragments, the fragment with the most recently updated commissioning credentials gains an advantage.
[0108] To determine which of the two network credentials is the most recent, the commissioning dataset includes timestamp information and commissioning credentials, and resolves differences between commissioning credentials when the mesh network merges. The timestamp information enables nodes in the mesh network 100 to determine the most recent update to the commissioning credentials in any fragment and synchronize the commissioning dataset in the devices in the mesh network 100 to the most recently updated commissioning credentials.
[0109] The timestamp information includes a timestamp and an indication of whether the timestamp is traceable to Coordinated Universal Time (UTC) or is a relative time reference within the mesh network 100. For example, if the commissioning device 210 uses a network time such as the Network Time Protocol (NTP) Access, access to time provided through a cellular network, timing information from a Global Positioning System (GPS) receiver, etc. In the case of a device such as a smartphone or a computer that does so, the timestamp is traceable to UTC. By way of non-limiting example, when the timestamp is traceable to UTC, the timestamp is expressed in seconds that are traceable to a known epoch, such as seconds since the start of UNIX (registered trademark) time. When the timestamp is UTC-traceable time, a display such as a U-bit is set to indicate that the timestamp is traceable to UTC. -15 In the case of an embedded system such as a proprietary commissioner where the commissioning device 210 does not have access to UTC-traceable time, the timestamp includes a relative time value. The relative time value is determined by using a previous value of the timestamp as provided by the leader 216 and adding an increment of clock ticks to the previous timestamp to generate a timestamp for the updated commissioning data set. By way of non-limiting example, the clock tick may be a 15-bit representation of a clock tick less than 1 second derived from a 32 kHz clock of a proprietary commissioner. When the timestamp is relative time, a display such as a U-bit is set to a value of 0 to indicate that the timestamp is expressed as relative time. The increment of the timestamp for relative time allows for a change to the commissioning data to be detected. When partitions are merged, if one of the commissioning timestamps is traceable to UTC and the second timestamp is relative time, the commissioning data with the UTC-traceable timestamp will be given a higher priority.
[0110]
[0111] If the timestamps are the same between commissioning credentials updated separately during a split, alternative means may be used to break the connection between the timestamps. In some embodiments, a lexicographical comparison (e.g., memcmp) may be performed to determine which credentials are more recent. In one embodiment, if there is a connection between the timestamps, the network fragment may be prioritized such that changes to the commissioning credentials in one network fragment are adopted. For example, if network fragments 902 and 904 each receive a commissioning credential change that includes the same timestamp, the network fragment with border router 202 may be considered the highest priority fragment so that the change in network fragment 902 is adopted if the timestamp values in the commissioning data sets of the two fragments are the same. fragment.
[0112] Exemplary methods 1000-1800 are described with reference to respective FIGS. 10-18 in accordance with one or more embodiments of mesh network commissioning. In general, any of the components, modules, methods, and operations described herein may be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. Some operations of the exemplary methods may be described in the general context of executable instructions stored on a computer-readable storage memory local and / or remote to a computer processing system, and implementation examples may include software applications, programs, functions, etc. Alternatively, or in addition to this, any of the functionality described herein may be implemented using a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), an application-specific oriented integrated circuit, an application-specific Application-specific Standard Product (ASSP), System-on-a-chip (SoC), Complex Programmable Logic Device (CPLD), etc., and can be at least partially performed by one or more hardware logic components including but not limited to these. System-on-a-chip system (SoC), Complex Programmable Logic Device (CPLD), etc., and can be at least partially performed by one or more hardware logic components including but not limited to these. System-on-a-chip system (SoC), Complex Programmable Logic Device (CPLD), etc., and can be at least partially performed by one or more hardware logic components including but not limited to these. System-on-a-chip system (SoC), Complex Programmable Logic Device (CPLD), etc., and can be at least partially performed by one or more hardware logic components including but not limited to these.
[0113] Figure 10 shows an exemplary method 1000 of mesh network commissioning generally related to enrolling nodes in a mesh network. The order in which the method blocks are described is not intended to be construed as limiting, and any number of the described method blocks can be combined in any order to implement the method or an alternative method.
[0114] At block 1002, a beacon request is received from an enrolling device, and at block 1004, a beacon is transmitted from a joining router to the enrolling device, and the beacon provides an indication that the mesh network is available for enrollment. For example, in mesh network 100, joining router 214 receives a beacon request from enrolling device 212 and then transmits a beacon to the enrolling device, and the beacon provides an indication that mesh network 100 is available for enrollment. The transmitted beacon is effective to enable enrolling device 212 to establish a local link between the enrolling device and the joining router.
[0115] At block 1006, a message is received from a joining device that requests to participate in the mesh network. For example, in mesh network 100, the joiner router 214 receives a message from the joining device 212 that requests to participate in the mesh network. The message received from the joining device 212 may include an encrypted device identifier that can be used to authenticate the joining device. The joining device is authenticated using juggling-based password-authenticated key exchange (J-PAKE), and the authentication is valid to establish a secure communication session between the commissioning device 210 of the mesh network 100 and the joining device.
[0116] At block 1008, the received message is forwarded to the commissioning device of the mesh network. For example, the joiner router 214 forwards the received message from the joining device 212 to the commissioning device 210 of the mesh network 100. In an implementation example, the message can be received and forwarded using Datagram Transport Layer Security (DTLS) or using the User Datagram Protocol (UDP). Additionally, the joiner router 214 that forwards the received message to the commissioning device 210 may include forwarding the received message through one or more routers of the mesh network 100 in the communication path between the joiner router 214 and the commissioning device 210. In an implementation example, one of the routers may be the border router 202 that connects the mesh network 100 to an external network, and the commissioning device is attached to the external network.
[0117] At block 1010, authentication for a participating device to join a mesh network is received, and at block 1012, network information is sent to the participating device, where the network information is valid to enable the participating device to join the mesh network 100. For example, the joiner router 214 receives, from the commissioning device 210, authentication for the participating device 212 to join the mesh network 100, and the joiner router 214 sends network information to the participating device, where the network information is valid to enable the participating device 212 to join the mesh network.
[0118] FIG. 11 shows an exemplary method 1100 of mesh network commissioning generally related to joining nodes to a mesh network. The order in which the method blocks are described is not intended to be construed as limiting, and any number of the described method blocks may be combined in any order to implement the method or alternative methods.
[0119] At block 1102, a beacon request is received from a participating device, and at block 1104, a beacon is sent from the joiner router to the participating device, where the beacon provides an indication that the mesh network is available for joining. For example, the joiner router 214 in the mesh network 100 receives a beacon request from the participating device 212 and then sends a beacon to the participating device, where the beacon provides an indication that the mesh network 100 is available for joining. The beacon includes the network name of the mesh network 100 and steering data indicating one or more participating devices 212 that are permitted to join the mesh network. The sent beacon is valid to enable the participating device to establish a local link between the participating device and the joiner router.
[0120] At block 1106, a DTLS-ClientHello message is received from a participating device that requests to participate in the mesh network. At block 1108, the received DTLS-ClientHello message is encapsulated within a DTLS relay reception notification message. For example, a joiner router receives a DTLS-ClientHello message from a participating device 212 that requests to participate in the mesh network 100, and encapsulates the received DTLS-ClientHello message within a DTLS relay reception notification message. The DTLS-ClientHello message can be received from the participating device 212 using the User Datagram Protocol (UDP). The DTLS relay reception notification message includes the address of the participating device 212, the address of the joiner router 214, and the received DTLS-ClientHello message.
[0121] At block 1110, the DTLS relay reception notification message is sent to the commissioning device of the mesh network. For example, the joiner router sends the DTLS relay reception notification message to the commissioning device 210 of the mesh network 100. In an implementation example, the joiner router may apply a speed limit to the transmission of the DTLS relay reception notification message sent from the participating device to the commissioning device 210.
[0122] At block 1112, a DTLS relay transmission notification message is received from the commissioning device, and at block 1114, the content of the DTLS relay transmission notification message is sent to the participating device, and the content enables the participating device to participate in the mesh network. For example, the joiner router receives a DTLS relay transmission notification message from the commissioning device 210, and sends the content of the DTLS relay transmission notification message to the participating device 212, and the content enables the participating device to participate in the mesh network 100, and the content is valid for establishing a secure communication session between the commissioning device 210 and the participating device. The DTLS relay transmission notification message includes the address of the participating device 212, the address of the joiner router 214, and the DTLS-HelloVerify message.
[0123] At block 1116, a display indicating that the participating device should be entrusted to receive network credentials for the mesh network is received from the commissioning device, and at block 1118, a key encryption key (KEK) shared between the commissioning device and the participating device is received. For example, the joiner router 214 receives a display indicating that the participating device 212 should be entrusted to receive network credentials for the mesh network 100 from the commissioning device 210, and also receives a key encryption key (KEK) shared between the commissioning device 210 and the participating device.
[0124] At block 1120, the network credentials are sent to the participating device using the KEK to secure the communication of the network credentials. For example, the joiner router uses the KEK to secure the communication of the network credentials and sends the network credentials including the network master key to the participating device 212, and the secure communication session can be used to perform the provisioning of the participating device.
[0125] FIG. 12 shows an exemplary method 1200 of mesh network commissioning that generally relates to establishing a commissioning session in a mesh network. The order in which the method blocks are described is not intended to be construed as limiting, and any number of the described method blocks can be combined in any order to implement the method or alternative methods.
[0126] At block 1202, the availability of a mesh network for a commissioning device is advertised, and at block 1204, an application to become a commissioner for the mesh network is received from the commissioning device. For example, the border router 202 of the mesh network 100 advertises the availability of a mesh network for a commissioning device and receives an application from the commissioning device 210 to become a commissioner for the mesh network. The application can be received from the commissioning device 210 in response to the advertisement of the availability of the mesh network. The commissioning device 210 can also request to securely connect to the border router 202, and the secure connection is established using Datagram Transport Layer Security (DTLS). In addition, the commissioning device 210 and the border router 202 can communicate through other networks other than the mesh network, such as a Wi-Fi network or an Ethernet® network.
[0127] At block 1206, the received application is sent to the leader device of the mesh network, and at block 1208, a response to the application is received from the leader device, and the response indicates acceptance or rejection of the application. For example, the border router 202 Send the received application from the commissioning device 210 to the leader device 216 of the mesh network 100, and then receive a response to the application from the leader device 216, where the response indicates acceptance or rejection of the application. The advertisement can be performed using a service discovery protocol that is the Multicast Domain Name System (mDNS).
[0128] At block 1210, an indication of acceptance or rejection of the application is sent to the commissioning device. For example, the border router 202 sends an indication of acceptance or rejection of the application to the commissioning device 210, and acceptance of the application by the leader device 216 authorizes the commissioning device 210 to become a commissioner for the mesh network. Acceptance of the application establishes a secure commissioning session, and acceptance of the application also updates the internal state of the leader device 216 to track the active commissioner for the mesh network, sets the participation permission flag for the mesh network to true, and enables the propagation of the commissioning data set within the mesh network.
[0129] In block 1212, the identity of the commissioning device is registered with the border router to establish a secure commissioning communication session. For example, border router 202 registers the identity of commissioning device 210 with border router 202 to establish a secure commissioning communication session. Registering the identity of commissioning device 210 includes providing encrypted commissioning credentials to border router 202, where the encrypted commissioning credentials are derived from the commissioning credentials entered by the user into commissioning device 210. Border router 202 includes a copy of the encrypted commissioning credentials that can be used to authenticate commissioning device 210 to mesh network 100, where the copy of the encrypted commissioning credentials was previously derived from the commissioning credentials, and the commissioning credentials were injected into leader device 216 of mesh network 100 that derived the copy of the encrypted commissioning credentials, and leader device 216 communicated the copy of the encrypted commissioning credentials securely to the border router.
[0130] Figure 13 shows an exemplary method 1300 of mesh network commissioning, generally related to establishing a commissioning session in a mesh network. The order in which the method blocks are described is not intended to be construed as limiting, and any number of the described method blocks may be combined in any order to implement the method or alternative methods.
[0131] At block 1302, an application for receiving a commissioning device as a commissioner for commissioning a participating device to participate in a mesh network is received. For example, the leader device 216 of the mesh network 100 receives an application for receiving the commissioning device 210 as a commissioner for commissioning the participating device 212 to participate in the mesh network. The application is received from the border router 202 connected to the leader device 216 through the mesh network, and the commissioning device 210 is connected to the border router 202 through another network such as a Wi-Fi network or an Ethernet (registered trademark) network. Also, the application is received using a secure communication session between the border router 202 and the commissioning device 210, and the secure communication session is established using Datagram Transport Layer Security (DTLS). The leader device 216 has a network interface for the mesh network The application can be received from the commissioning device 210 including the face through the mesh network 100, and the commissioning device 210 applies to become a commissioner by setting the unique commissioner bit to true in the network beacon. The commissioning device 210 can communicate the application to the leader device through the Constrained Application Protocol (CoAP) port using the IEEE 802.15.4 interface.
[0132] At block 1304, a determination is made as to whether to accept or reject the received application, and at block 1306, a response is sent to the commissioning device along with an indication as to whether to accept or reject the received application. For example, the leader device 216 determines whether to accept or reject the received application and then sends a response to the commissioning device 210 along with an indication as to whether to accept or reject the received application. The leader device 216 makes a determination as to whether to accept or reject the received application based on ensuring that there is one active commissioner for the mesh network 100.
[0133] In response to a determination to accept the received application at block 1308, the internal state tracking the active commissioner for the mesh network is updated. For example, the leader device 216 updates the internal state tracking the active commissioner for the mesh network.
[0134] At block 1310, a command for starting the participation mode for the mesh network is received from the commissioning device, and at block 1312, the commissioning data set is propagated within the mesh network. For example, the leader device 216 receives a command for starting the participation mode for the mesh network 100 from the commissioning device 210 and propagates the commissioning data set within the mesh network. The commissioning data set includes a commissioner session identifier, a commissioner timestamp, encrypted commissioner credentials, and a security policy indicating which security-related operations are permitted in the mesh network. When the commissioner is active on the mesh network 100, the commissioning data set further includes the location of the border router 202. When the participation mode is enabled in the mesh network, the commissioning data set further includes steering data indicating which of the participating devices 212 are permitted to participate in the mesh network.
[0135] At block 1314, encrypted commissioning credentials are derived from the commissioning credentials injected into the leader device 216 during the commissioning of the leader device. For example, the leader device 216 derives the encrypted commissioning credentials from the commissioning credentials injected into the leader device during the commissioning of the leader device. The derivation of the encrypted commissioning credentials is performed by applying a key derivation function, which performs hashing multiple times using a cipher-based message authentication code (CMAC). In an implementation example, the commissioning credentials are a human-scale passphrase, and the derivation of the encrypted commissioning credentials is effective for extending the length of the commissioning credentials.
[0136] At block 1316, a copy of the encrypted commissioning credentials is sent to the border router, enabling the border router to authenticate the commissioning device to the mesh network. For example, the leader device 216 sends a copy of the encrypted co py of the missioning credentials to the border router 202, enabling the border router 202 to authenticate the commissioning device 210 to the mesh network.
[0137] FIG. 14 shows an exemplary method 1400 of mesh network commissioning that generally relates to managing multiple commissioning sessions in a mesh network. The order in which the method blocks are described is not intended to be construed as limiting, and any number of the described method blocks can be combined in any order to implement the method or alternative methods.
[0138] At block 1402, a secure commissioning communication session is established between the commissioning device of the mesh network and the border router. For example, the commissioning device 210 establishes a secure commissioning communication session between the commissioning device of the mesh network 100 and the border router 202 to securely establish a network communication session for joining one or more participating devices 212 to the mesh network. The commissioning device 210 establishes a secure commissioning communication session by sending a request to the leader device 216 of the mesh network 100 from the commissioning device to request acceptance of the commissioning device 210 as an active commissioner for the mesh network, and the commissioning device receives an indication of acceptance of the request from the leader device.
[0139] In block 1404, participation for the mesh network is initiated. For example, the commissioning device starts a participation mode that advertises to one or more routers in the mesh network that the mesh network is accepting participation requests, thereby initiating participation for the mesh network. Commissioning device 210 can also initiate participation for mesh network 100 by sending a management message to leader device 216 to enable participation in the mesh network, the management message enabling leader device 216 to update network data for the mesh network. The network data is propagated to one or more router devices in the mesh network, and the network data includes an indication that mesh network 100 is available for participation. The network data can be broadcast in a beacon by the router device, the management message includes steering data indicating one or more participating devices 212, and commissioning device 210 is configured to cause one or more participating devices 212 to participate in the mesh network.
[0140] At block 1406, a request to join the mesh network is received from one of the participating devices. For example, commissioning device 210 receives a request to join mesh network 100 from one of participating devices 212, and the request may be received via a joiner router. Commissioning device 210 may send an indication to joiner router 214 that participating device 212 should be entrusted to receive network credentials for mesh network 100 and a key encryption key (KEK) shared between commissioning device 210 and the participating device. The indication sent to joiner router 214 enables the joiner router to securely send the network credentials to participating device 212 using the received KEK and commission the participating device to the mesh network. The request received from participating device 212 can include an encrypted device identifier of the participating device, and the encrypted device identifier is derived from the device identifier of the participating device using juggling password-authenticated key exchange (J-PAKE).
[0141] At block 1408, a secure joiner communication session is established between the commissioning device and the participating device. For example, commissioning device 210 establishes a secure joiner communication session between commissioning device and participating device 212. Commissioning device 210 can establish a secure joiner communication session by determining that the encrypted device identifier received from participating device 212 matches the encrypted device identifier derived by commissioning device 210 from a copy of the device identifier received as input from the user to the commissioning device, and commissioning device 210 uses the encrypted device identifier as a shared secret to secure the joiner communication session.
[0142] At block 1410, the participating device is authenticated using an encrypted device identifier, and at block 1412, the participating device joins the mesh network. For example, the commissioning device 210 authenticates the participating device 212 using an encrypted device identifier and causes the participating device 212 to join the mesh network.
[0143] FIG. 15 shows an exemplary method 1500 of mesh network commissioning that generally relates to provisioning a participating device in a mesh network. The order in which the method blocks are described is not intended to be construed as limiting, and any number of the described method blocks can be combined in any order to implement the method or an alternative method.
[0144] At block 1502, a commissioning communication session is established between the commissioning device of the mesh network and the border router. For example, the commissioning device 210 of the mesh network 100 establishes a commissioning communication session between the commissioning device 210 of the mesh network and the border router 202. At block 1504, a joiner communication session is established between the participating device and the commissioning device. For example, the commissioning device 210 of the mesh network 100 establishes a joiner communication session between the participating device 212 and the commissioning device.
[0145] At block 1506, commissioning information is sent to the participating device, and the commissioning information is usable by the participating device to join the mesh network. For example, the commissioning device 210 of the mesh network 100 sends to the participating device commissioning information that the participating device 212 can use to join the mesh network.
[0146] At block 1508, a display of the location of the commissioner application is received from the participating device, and at 1510, the commissioner application is searched for using the received display. For example, commissioning device 210 receives a location display of the commissioner application from the participating device, and the received location display may be a Uniform Resource Locator (URL), and the commissioning application searches for the commissioner application from a cloud service over the Internet. Commissioning device 210 can also use the received URL to determine whether the commissioner application is stored in the memory of the commissioning device.
[0147] At block 1512, the commissioner application is executed to provision the participating device. For example, commissioning device 210 utilizes the commissioner application to provision the participating device. The provisioning of participating device 212 includes updating software on the participating device, linking the participating device to a user account on a cloud service, and / or configuring the participating device, where the configuration is a local configuration related to other devices in the mesh network. At block 1514, the commissioning of the participating device is completed, enabling the participating device to join the mesh network. For example, the commissioning device 210 of mesh network 100 completes the commissioning, enabling the participating device 212 to join the mesh network.
[0148] FIG. 16 shows an exemplary method 1600 of mesh network commissioning that relates generally to searching and steering in a mesh network. The order in which the method blocks are described is not intended to be construed as limiting, and any number of the described method blocks can be combined in any order to implement the method or an alternative method.
[0149] At block 1602, steering data for the mesh network is determined, the steering data including an indication of device identifiers associated with devices that are permitted to join the mesh network. For example, the commissioning device 210 of the mesh network 100 determines steering data for the mesh network, the steering data including an indication of device identifiers associated with devices that are permitted to join the mesh network. In an example implementation, the steering data is a 16-bit cyclic redundancy check (CRC16) of the device identifier, which is an IEEE 64-bit extended unique identifier (EUI-64). The commissioning device 210 may also determine steering data for the mesh network 100 by determining steering data for additional device identifiers associated with additional devices that are permitted to join the mesh network.
[0150] At block 1604, the steering data is propagated from the commissioning device for the mesh network to a router in the mesh network. For example, the commissioning device 210 of the mesh network 100 propagates the steering data to a router in the mesh network, the steering data indicating that the commissioner is active on the mesh network. Propagating the steering data is effective to enable the router 102 to transmit the steering data in a beacon message, the steering data enabling a device associated with the device identifier to identify that the device is authorized to participate in the mesh network. Propagating the steering data by the commissioning device 210 is effective to enable a device to distinguish between the mesh network and other networks, the other networks being IEEE 802.15.4 networks.
[0151] FIG. 17 illustrates an exemplary method 1700 of mesh network commissioning generally related to searching and steering in a mesh network. The order in which the method blocks are described is not intended to be construed as limiting, and any number of the described method blocks may be combined in any order to implement the method or alternative methods.
[0152] At block 1702, steering data for the mesh network is requested, the steering data including an indication of device identifiers associated with devices permitted to participate in the mesh network, the indication represented as a set of values in a Bloom filter representing the device identifiers. For example, commissioning device 210 of mesh network 100 requests steering data for the mesh network and the steering data includes an indication represented as a set of values in a Bloom filter representing the device identifiers. In an implementation, commissioning device 210 requests the steering data by applying a first hash function to the device identifier to generate a first hash value and applying a second hash function to the device identifier to generate a second hash value. The device identifier may be an IEEE 64-bit extended unique identifier (EUI-64), and the device identifier may be the least significant 24 bits of the EUI-64. In an implementation, the first and second hash functions are cyclic redundancy checks (CRC), the first hash function being CRC16-CCITT and the second hash function being CRC16-ANSI.
[0153] The commissioning device 210 then performs a modulo operation on the first hash value to determine the first bitfield position in the Bloom filter and performs a modulo operation on the second hash value to determine the second bitfield position in the Bloom filter. The divisor for the modulo operation can be the length of the bit array of the Bloom filter. The commissioning device 210 can set the value at the first bitfield position of the Bloom filter to 1 and set the value at the second bitfield position of the Bloom filter to 1. The commissioning device 210 can set all of the bitfield values in the steering data to a value of 1 to indicate that the mesh network is available for any device to participate. Alternatively, the commissioning device 210 can set the bitfield value of the steering data to a value of 0 that disables participation for the mesh network.
[0154] In block 1704, the steering data is propagated from the commissioning device for the mesh network to a router in the mesh network. For example, the commissioning device 210 of the mesh network 100 propagates the steering data to a router in the mesh network, and the steering data indicates that the commissioner is active on the mesh network. Propagating the steering data enables the router 102 to transmit the steering data in a beacon message, and the steering data enables a device associated with a device identifier to identify that the device is permitted to participate in the mesh network by comparing a set of values in the Bloom filter with a second set of values determined by the device.
[0155] Figure 18 shows an exemplary method 1800 of mesh network commissioning that generally relates to dividing nodes in a mesh network. The order in which the method blocks are described is not intended to be construed as limiting, and any number of the described method blocks may be combined in any order to implement the method or alternative methods.
[0156] In block 1802, at a node device in a mesh network, a commissioning data set is received. For example, a node device (e.g., router 102 or end device 106) at a node in mesh network 100 receives a commissioning data set that includes a received timestamp, commissioning credentials, a network name of the mesh network, and a security policy indicating which security-related operations are permitted in the mesh network. The received timestamp includes a time value and an indication that the time value is traceable to Coordinated Universal Time (UTC).
[0157] In block 1804, the received timestamp included in the received commissioning data set is compared to the stored timestamp included in the commissioning data set stored at the node device. For example, mesh network 100 The node device in [description] compares the received timestamp included in the received commissioning data set with the stored timestamp included in the commissioning data set stored in the node device. In an implementation example, the node device and the leader device were previously commissioned to the mesh network, and the previous commissioning stored the same commissioning data set in the node device and the leader device. The stored commissioning data set in the node device can be updated after the split of the mesh network that stops the communication between the node device and the leader device on the mesh network. The split separates the mesh network, the first section of the mesh network includes the leader device, and the second section of the mesh network includes the node device. The node device can receive the commissioning data set after the merger of the first and second sections of the mesh network, and the merger re-establishes the communication path between the node device and the leader device on the mesh network.
[0158] In block 1806, a determination is made as to whether the stored timestamp included in the commissioning data set stored in the node device is more recent than the timestamp included in the received commissioning data set. For example, based on the comparison (in block 1806), the node device determines whether the stored timestamp included in the commissioning data set stored in the node device is more recent than the timestamp included in the received commissioning data set.
[0159] If the stored timestamp is more recent than the received timestamp (i.e., "yes" at 1806), then at 1808, a message is sent to the leader device of the mesh network, and the message includes the stored commissioning data set. For example, a node device in the mesh network sends a message including the stored commissioning data set to the leader device of the mesh network 100. The sent message enables the leader device to accept the stored commissioning data set as the most recent commissioning data set for the mesh network and propagate the stored commissioning data set to the mesh network. Instead, if the received timestamp is more recent than the stored timestamp (i.e., "no" at 1806), then at 1810, the stored commissioning data set is updated to be consistent with the received commissioning data set. For example, a node device in the mesh network updates the stored commissioning data set to be consistent with the received commissioning data set.
[0160] FIG. 19 shows a mesh network 100 (as described with reference to FIG. 1) and an exemplary environment 1900 in which embodiments of mesh network commissioning can be implemented. Generally, environment 1900 includes a mesh network 100 implemented as part of a smart home or other type of structure having any number of mesh network devices configured for communication in the mesh network. For example, the mesh network devices can include a thermostat 1902, a hazard detector 1904 (e.g., for smoke and / or carbon monoxide), cameras 1906 (e.g., indoor and outdoor), lighting units 1908 (e.g., indoor and outdoor), and any other type of mesh network device 1910 implemented inside and / or outside of structure 1912 (e.g., in a smart home environment). In this example, the mesh network devices can also be any of the devices implemented as router 102, end device 106, and / or participating device 212, as well as any of the aforementioned devices such as commissioning device 210, border router 202, joiner router 214, etc. and can include any of them.
[0161] In environment 1900, any number of mesh network devices can be implemented for wireless interconnectivity to communicate wirelessly with each other. The mesh network devices are modular and intelligent multi-sensing network-connected devices that can be seamlessly integrated with each other and / or with a central server or cloud computing system to provide any of a variety of useful smart home purposes and implementation examples. Examples of mesh network devices that can be implemented as any of the devices described herein are shown and described with reference to FIG. 20.
[0162] In an implementation example, the thermostat 1902 may include a Nest (registered trademark) learning thermostat that detects ambient climate characteristics (e.g., temperature and / or humidity) in a smart home environment and controls the HVAC system. The learning thermostat 1902 and other smart devices "learn" by incorporating occupant settings into the device. For example, the thermostat learns the preferred temperature setpoints for morning and night, the times when the occupants of the structure are asleep or awake, and the times when the occupants are typically away or at home.
[0163] The hazard detector 1904 may be implemented to detect the presence of a harmful substance or a substance indicating a harmful substance (e.g., smoke, fire, or carbon monoxide). In an example of a wireless interconnect, the hazard detector 1904 may detect the presence of smoke indicating a fire in the structure, in which case the hazard detector that first detects the smoke can broadcast a low-power wake-up signal to all of the connected mesh network devices at once. Other hazard detectors 1904 can then receive the broadcast wake-up signal and activate a high-power state for hazard detection to receive wireless communication of a warning message. Also, the lighting unit 1908 can receive the broadcast wake-up signal and start in the area where the detected hazard is located to illuminate and identify the problem area. In another example, the lighting unit 1908 may activate in one lighting color to indicate the problem area or region in the structure for a detected fire or intrusion, etc., and activate in another lighting color to indicate a safe area and / or an evacuation route from the structure.
[0164] In various configurations, the mesh network device 1910 can include an entry interface device that functions in cooperation with a network-connected door lock system and detects and responds to a person's approach to or departure from locations such as the outer door of structure 1912. The entry interface device can communicate with other mesh network devices based on whether someone has approached or entered the smart home environment. The entry interface device can control doorbell functionality, notify of a person's approach or departure via audio or visual means, and control settings for a security system, such as activating or deactivating the security system when a resident enters or exits. The mesh network device 1910 can also include other sensors and detectors for detecting ambient lighting conditions, detecting room occupancy (e.g., with an occupancy sensor), and controlling the output state and / or dim state of one or more lights. In some cases, the sensors and / or detectors may also control the output state or speed of a fan, such as a ceiling fan. Additionally, the sensors and / or detectors can detect occupancy in a room or enclosed space and control the power supply to outlets or devices, such as when the room or structure is unoccupied.
[0165] The mesh network device 1910 can also include connected devices and / or controlled systems such as refrigerators, stoves and ovens, washing machines, dryers, air conditioners, pool heaters, irrigation systems, security systems, and televisions, entertainment systems, co It may include other electronic devices and computing devices such as a computer, an intercom system, a garage door opener, a ceiling fan, a control panel, etc. When the plug is inserted, the device, device or system can notify itself to the mesh network as described above and can be automatically integrated with the control devices and devices of the mesh network in a smart home, etc. Note that the mesh network device 1910 may include devices that are physically located within the wireless communication range but are outside the structure, such as a device that controls a swimming pool heater or an irrigation system.
[0166] As described above, the mesh network 100 includes a border router 202 that is interface-connected for communication with an external network outside the mesh network 100. The border router 202 is connected to an access point 204, which is connected to a communication network 206 such as the Internet. The cloud service 208 connected via the communication network 206 provides services related to and / or using the devices within the mesh network 100. By way of example, the cloud service 208 may include applications for connecting end-user devices such as smartphones and tablets to devices in the mesh network, processing data obtained in the mesh network 100 and presenting it to the end user, linking devices in one or more mesh networks 100 to a user account of the cloud service 208, and provisioning and updating devices in the mesh network 100. For instance, a user can control a thermostat 1902 and other mesh network devices in a smart home environment using a network-connected computer or portable device such as a mobile phone or tablet device. Also, mesh network devices can communicate information to any central server or cloud computing system via the border router 202 and the access point 204. Data communication can be carried out using any of various custom or standard wireless protocols (e.g., Wi-Fi, ZigBee (registered trademark) for low power, 6LoWPAN, etc.) and / or by using any of various custom or standard wired protocols (CAT6 Ethernet (registered trademark), HomePlug (registered trademark), etc.).
[0167] Any of the mesh network devices in the mesh network 100 can function as a low-power and communication node for creating the mesh network 100 in a smart home environment. Individual low-power nodes of the network can periodically send out messages regarding what they are sensing, and other low-power nodes in the environment can repeat the messages in addition to sending out their own messages, thereby communicating the messages from node to node (i.e., from device to device) across the entire mesh network. The mesh network device can be realized to save power, especially in the case of battery-powered devices, by receiving messages using a low-power communication protocol, converting the messages to other communication protocols, and sending the converted messages to other nodes and / or a central server or cloud computing system. For example, a residence and / or ambient light sensor can not only measure ambient light but also detect a resident in the room and activate the light source when the ambient light sensor detects that the room is dark and when the occupancy sensor detects that someone is in the room. Also, the sensor can include a low-power wireless communication chip (e.g., a ZigBee chip) that periodically sends out messages regarding the occupancy of the room and the amount of light in the room, including momentary messages that occur simultaneously with the occupancy sensor detecting the presence of a person in the room. As described above, these messages may be wirelessly transmitted from node to node (i.e., from device to device) within the smart home environment and to a central server or cloud computing system through the Internet using the mesh network.
[0168] In other configurations, various of the mesh network devices can function as "trip wires" for an alarm system in a smart home environment. For example, if a perpetrator avoids detection by alarm sensors located at windows, doors, and other entry points of the structure or environment, the alarm can still be triggered by receiving messages such as occupancy, movement, heat, sound, etc. from one or more of the low-power mesh nodes in the mesh network. In other implementations, the mesh network can be used to automatically turn on or off the lighting unit 1908 as a person moves from room to room within the structure. For example, a mesh network device can detect the movement of a person through the structure and communicate a corresponding message via the nodes of the mesh network. Other mesh network devices receiving the message can use the message indicating which rooms are occupied to activate and / or deactivate accordingly. As mentioned above, the mesh network can also be utilized to provide emergency exit lighting, such as by turning on the appropriate lighting unit 1908 leading to a safe exit. The lighting unit 1908 may also be lit to indicate the direction along the exit path that a person should move to safely exit the structure.
[0169] Various mesh network devices may also be integrated and communicate with wearable computing devices such that they can be used to identify the occupants of the structure and determine their location, and accordingly adjust temperature, lighting, audio systems, etc. In other implementations, RFID sensing (e.g., a person wearing an RFID bracelet, necklace or key fob), synthetic vision techniques (e.g., a video camera and a face recognition processor), voice techniques (e.g., voice, acoustic pattern, vibration pattern recognition), ultrasonic sensing / imaging techniques, and infrared or near-field communication (NFC) techniques (e.g., a person wearing an infrared or NFC-enabled smartphone) draw useful conclusions from the information sensed regarding the location of the occupants in the structure or environment, together with a rule-based inference engine or artificial intelligence techniques.
[0170] In other implementation examples, the personal comfort area network, personal health area network, personal safety area network, and / or other such people-facing functionality of the service robot can be enhanced by logical integration with other mesh network devices and sensors in the environment according to rule-based inference techniques or artificial intelligence techniques to achieve better performance of these functionalities. In an example related to the personal health area, the system can detect, using, for example, any of the mesh network devices and sensors, whether a pet kept at home is moving towards the current location of the occupant, along with rule-based inference techniques and artificial intelligence techniques. Similarly, a hazard detector service robot is notified that the temperature and humidity levels are rising in the kitchen and infers that any small increase in the surrounding smoke level is probably due to cooking operations and not due to truly dangerous conditions, and can temporarily increase hazard detection thresholds such as the smoke detection threshold. Any service robot configured for any type of monitoring, detection, and / or servicing can be realized as a mesh node device on the mesh network according to a wireless interconnect protocol for communicating on the mesh network.
[0171] The mesh network device 1910 may also include a smart alarm clock for each individual occupant of the structure in the smart home environment. For example, an occupant can customize and set the alarm device for wake-up times such as the next day or the next week. Artificial intelligence can be used to consider the occupant's reaction to the alarm when it rings and infer over time about the preferred sleep pattern. Each individual occupant can then be tracked in the mesh network based on that person's unique signature. It is obtained. The unique signature is determined based on data obtained from sensors located in mesh network devices, such as sensors including ultrasonic sensors, passive IR sensors, etc. The unique signature of a resident can be based on a combination of patterns such as movement, voice, height, size, etc., and face recognition techniques can also be used.
[0172] In an example of wireless interconnection, the individual's wake-up time can be associated with thermostat 1902 in order to control the HVAC system in an efficient manner to pre-warm or pre-cool the structure to a desired sleep and wake-up temperature setting. The preferred settings can be learned over time, such as by incorporating the temperatures set on the thermostat before a person goes to bed and when they wake up. The collected data may also include biometric indicators of a person, such as breathing pattern, heart rate, movement, and inferences are made based on a combination of this data and data indicating when the person actually woke up. Other mesh network devices can use this data to provide other smart home purposes, such as adjusting thermostat 1902 to pre-warm or pre-cool the environment to a desired setting, and turning lighting 1908 on or off.
[0173] In an implementation example, the mesh network device can also be utilized for sensing sound, vibration, and / or movement, such as for detecting running water in a smart home environment and making inferences about water usage based on algorithms and mapping of water usage and consumption. This can be used to determine the signature or fingerprint of each water source in the home, also referred to as "voice fingerprinting water usage". Similarly, the mesh network device can be utilized to detect faint sounds, vibrations, and / or movements caused by unwanted pests such as mice and other rodents, as well as termites, cockroaches, and other insects. The system can then notify the resident of suspected pests in the environment with a warning message, etc., to help facilitate early detection and prevention.
[0174] Figure 20 shows an exemplary mesh network device 2000 that may be implemented as any one of the mesh network devices in a mesh network according to one or more embodiments of mesh network commissioning as described herein. Device 2000 may be integrated with an electronic circuit, a microprocessor, memory, input / output (I / O) logic control, communication interfaces and components, and other hardware, firmware, and / or software for implementing the device in a mesh network. Also, mesh network device 2000 may be implemented using any number of different components and any combination thereof, such as the exemplary devices shown in Figure 21 and further described with reference thereto.
[0175] In this example, mesh network device 2000 includes a low-power microprocessor 2002 and a high-power microprocessor 2004 (e.g., a microcontroller or digital signal processor) that process executable instructions. The device also includes input / output (I / O) logic control 2006 (e.g., for including an electronic circuit). The microprocessor may include an integrated circuit formed using one or more semiconductors, a programmable logic device, components of a logic device, and other realizations in silicon and / or hardware, such as a processor and memory system implemented as a system-on-chip (SoC). Alternatively, or in addition, the device may be implemented using any one or a combination of software, hardware, firmware, or fixed logic circuits that may be implemented using processing and control circuits. Low-power microprocessor 2002 and high-power microprocessor 2004 may also support one or more different device functionalities of the device. For example, the high-power micro The crop processor 2004 performs computationally intensive operations, while the low-power microprocessor 2002 may manage less complex processes such as detecting hazards or temperature from one or more sensors 2008. The low-power microprocessor 2002 may also activate or initialize the high-power microprocessor 2004 for computationally intensive processes.
[0176] One or more sensors 2008 may be implemented to detect various characteristics such as acceleration, temperature, humidity, water, supply power, proximity, external movement, device movement, audio signals, ultrasonic signals, optical signals, fire, smoke, carbon monoxide, global-positioning-satellite (GPS) signals, radio-frequency (RF), and other electromagnetic signals or electromagnetic fields. Thus, the sensor 2008 may include any one or a combination of a temperature sensor, a humidity sensor, a hazard-related sensor, other environmental sensors, an accelerometer, a microphone, an optical sensor below it including a charge-coupled device or a video camera (e.g.,), an active or passive radiation sensor, a GPS receiver, and a radio-frequency identification detector. In an implementation example, the mesh network device 2000 may include one or more primary sensors and one or more secondary sensors. The primary sensors sense data central to the core operation of the device (e.g., sensing temperature in a thermostat or sensing smoke in a smoke detector), while the secondary sensors sense other types of data (e.g., movement, light, or sound), and they can be used for energy efficiency purposes or smart operation purposes.
[0177] The mesh network device 2000 includes a memory device controller 2010 and a memory device 2012, such as any type of non-volatile memory and / or other suitable electronic data storage devices. The mesh network device 2000 may also include various firmware and / or software, such as an operating system 2014 maintained as computer-executable instructions by the memory and executed by a microprocessor. The device software may also include a commissioning application 2106 that implements embodiments of mesh network commissioning. The mesh network device 2000 also includes a device interface 2018 for interfacing with another device or peripheral component, and an integrated data bus 2020 that couples the various components of the mesh network device for data communication between the components. The data bus in the mesh network device may also be implemented as any one or a combination of different bus structures and / or bus architectures.
[0178] The device interface 2018 may receive input from a user (such as a user interface) and / or provide information to the user, and the received input may be used to define settings. The device interface 2018 may also include mechanical or virtual components that respond to user input. For example, the user may mechanically move a sliding component or a rotatable component, or movement along a touchpad may be detected, and such movement may correspond to adjusting the settings of the device. Physical and virtual movable user interface components can allow the user to set settings along a portion of an apparent continuum. The device interface 2018 may also receive input from any number of peripheral devices, such as buttons, keypads, switches, microphones, and imaging devices (such as camera devices).
[0179] The mesh network device 2000 includes a mesh network interface for communication with other mesh network devices in the mesh network, and an external network interface for network communication via a network such as the Internet, etc. The mesh network device 2000 may include a network interface 2022, such as one for communication with other mesh network devices via the mesh network interface, and for network communication via a network such as the Internet, etc. The mesh network device 2000 also includes a wireless system 2024 for wireless communication with other mesh network devices via the mesh network interface, and for multiple different wireless communication systems. The wireless system 2024 may include Wi-Fi, Bluetooth (registered trademark), mobile broadband, and / or point-to-point IEEE 802.15.4. Each of the different wireless systems may include a wireless device, an antenna, and a chipset implemented for a specific wireless communication technology. The mesh network device 2000 also includes a power source 2026, such as a battery, etc., and / or for connecting the device to a line voltage. An AC power source may also be used to charge the device's battery.
[0180] FIG. 21 shows an exemplary system 2100 including an exemplary device 2102 that can be implemented as any one of the mesh network devices that implement an embodiment of mesh network commissioning as described with reference to FIGS. 1-20 above. The exemplary device 2102 may be any type of computing device, client device, mobile phone, tablet, communication device, entertainment device, gaming device, media playback device, and / or other type of device. Also, the exemplary device 2102 may be implemented as any other type of mesh network device configured for communication on the mesh network, such as a thermostat, hazard detector, camera, lighting unit, commissioning device, router, border router, joiner router, participating device, end device, leader, access point, and / or other mesh network devices.
[0181] Device 2102 includes a communication device 2104 that enables wired and / or wireless communication of device data 2106, such as data communicated between devices in a mesh network, data being received, data scheduled for broadcast, data packets of the data, and data synchronized between devices. The device data may include any type of communication data, as well as voice data, video data, and / or image data generated by applications running on the device. The communication device 2104 may also include a transceiver for mobile phone communication and / or for network data communication.
[0182] Device 2102 also includes an input / output (I / O) interface 2108, such as a data network interface that provides connection links and / or communication links between the device, a data network (e.g., a mesh network, an external network, etc.), and other devices. The I / O interface can be used to couple the device to any type of component, peripheral device, and / or accessory device. The I / O interface also includes a data input port through which inputs such as any type of data, media content, and / or user input to the device can be received, and any type of communication data, as well as voice data, video data, and / or image data can be received from any content and / or data source.
[0183] Device 2102 includes a processing system 2110 that can be at least partially implemented in hardware such as any type of microprocessor, controller, etc. that processes executable instructions. The processing system may include integrated circuits formed using one or more semiconductors, programmable logic devices, components of logic devices, and other realizations in silicon and / or hardware such as a processor and memory system implemented as a system-on-chip (SoC). Alternatively, or in addition to this, the device may be realized using any one or a combination of software, hardware, firmware, or fixed logic circuitry that can be realized using processing and control circuitry. Device 2102 may further include any type of system bus or other data and command transfer system that couples the various components within the device. The system bus may include any one or a combination of different bus structures and architectures, as well as control lines and data lines.
[0184] Device 2102 also includes a computer-readable storage memory 2112 that is accessible by a computing device and provides persistent storage of data and executable instructions (e.g., software applications, modules, programs, functions, etc.). The computer-readable storage memory described herein excludes propagated signals. Examples of computer-readable storage memory include volatile and non-volatile memory, fixed and removable media devices, and any suitable memory device or electronic data storage that maintains data for access by a computing device. The computer-readable storage memory may include various realizations of random access memory (RAM), read-only memory (ROM), flash memory, and other types of storage memory in various memory device configurations.
[0185] The computer-readable storage memory 2112 is maintained as a software application in a computer-readable storage memory and provides storage for device data 2106 and various device applications 2114, such as an operating system executed by the processing system 2110. The device applications may also include a device manager, such as any form of control application, software application, signal processing and control module, code specific to a particular device, a hardware abstraction layer for a particular device, and the like. In this example, the device applications may also include a commissioning application 2116 that implements embodiments of mesh network commissioning, such as when the exemplary device 2102 is implemented as any of the mesh network devices described herein.
[0186] The device 2102 also includes an audio and / or video system 2118 that generates audio data for the audio device 2120 and / or generates display data for the display device 2122. The audio device and / or display device includes any device that processes, displays, and / or otherwise represents audio data, video data, display data, and / or image data, such as image content of a digital photograph. In an implementation example, the audio device and / or display device is an integrated component of the exemplary device 2102. Alternatively, the audio device and / or display device is a peripheral component external to the exemplary device. In an embodiment, at least a portion of the techniques described for mesh network commissioning may be implemented on a platform 2126 in a distributed system, such as through a "cloud" 2124. The cloud 2124 includes and / or represents a platform 2126 for services 2128 and / or resources 2130.
[0187] Platform 2126 abstracts the basic functionality of hardware, such as server devices (e.g., included in service 2128) and / or software resources (e.g., included as resource 2130), and connects exemplary device 2102 to other devices, servers, etc. Resource 2130 may also include applications and / or data that are available while computer processing is being performed on a remote server from exemplary device 2102. Additionally, service 2128 and / or resource 2130 may facilitate subscriber network services through the Internet, a cellular network, or a Wi-Fi network, etc. Platform 2126 may also function to abstract and scale resources to serve requests for resources 2130 that are realized via the platform in an interconnected device embodiment where functionality is distributed throughout system 2100. For example, functionality may be realized in part at exemplary device 2102 and via platform 2126 that abstracts the functionality of cloud 2124. Platform 2126 may also function to abstract and scale resources to serve requests for resources 2130 that are realized via the platform in an interconnected device embodiment where functionality is distributed throughout system 2100. For example, functionality may be realized in part at exemplary device 2102 and via platform 2126 that abstracts the functionality of cloud 2124.
[0188] Embodiments of mesh network commissioning have been described in language specific to features and / or methods, but the subject matter of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as exemplary realizations of mesh network commissioning, and other equivalent features and methods are intended to fall within the scope of the appended claims. Also, it should be understood that various different embodiments have been described and that each described embodiment can be implemented independently or in relation to one or more of the other described embodiments.
[0189] A method for safely allowing a participating device to participate in a mesh network includes the steps of receiving, by a joiner router, a message from a participating device that requests to participate in the mesh network; forwarding the received message to a commissioning device of the mesh network; receiving, from the commissioning device, authentication for the participating device to participate in the mesh network; and sending network information to the participating device, the network information being valid to enable the participating device to participate in the mesh network.
[0190] Instead of or in addition to the above method, further including the step of receiving a beacon request from a participating device and the step of transmitting a beacon from a joiner router to the participating device, the beacon providing an indication that the mesh network is available for joining; the step of transmitting the beacon being effective to enable the participating device to establish a local link between the participating device and the joiner router; the steps of receiving the message and forwarding the received message being performed using Datagram Transport Layer Security (DTLS); the steps of receiving the message and forwarding the received message being performed using User Datagram Protocol (UDP); the message received from the participating device including an encrypted device identifier that can be used to authenticate the participating device, the participating device being authenticated using Juggling Password-Authenticated Key Exchange (J-PAKE), the authentication being effective to establish a secure communication session between the commissioning device and the participating device; the step of forwarding the received message to the commissioning device including the step of forwarding the received message through one or more routers of the mesh network in the communication path between the joiner router and the commissioning device; and one of the one or more routers being a border router that connects the mesh network to an external network, the commissioning device being attached to the external network, any one or a combination of them being included.
[0191] A mesh network device implemented as a joiner router, the mesh network device including a mesh network interface configured for communication in a mesh network, and a memory and a processor system for implementing a commissioning application, the commissioning application receiving a message from a participating device that requests to participate in the mesh network via the mesh network interface, and transferring the received message to a commissioning device of the mesh network, and being configured to receive, from the commissioning device, authentication for the participating device to participate in the mesh network, and to start transmitting network information to the participating device, the network information being effective to enable the participating device to participate in the mesh network. The commissioning device of the mesh network is configured to transfer the received message to a commissioning device of the mesh network, and to receive, from the commissioning device, authentication for the participating device to participate in the mesh network, and to start transmitting network information to the participating device, the network information being effective to enable the participating device to participate in the mesh network.
[0192] Instead of or in addition to the above-described mesh network device, the commissioning application is configured to receive beacon requests from participating devices via a mesh network interface and initiate the transmission of beacons from a joiner router to the participating devices, where the beacons provide an indication that the mesh network is available for joining; the beacons are effective to enable a participating device to establish a local link between the participating device and the joiner router; the commissioning application is configured to receive messages using Datagram Transport Layer Security (DTLS) and forward the received messages; the commissioning application is configured to receive messages using User Datagram Protocol (UDP) and forward the received messages; the messages received from the participating devices include an encrypted device identifier that can be used to authenticate the participating device, and the participating device is authenticated using Juggling Password-Authenticated Key Exchange (J-PAKE), where the authentication is effective to establish a secure communication session between the commissioning device and the participating device; the commissioning application is configured to forward the received messages through one or more routers of the mesh network in the communication path between the joiner router and the commissioning device; and one of the one or more routers is a border router that connects the mesh network to an external network, and the commissioning device is attached to the external network, any one or a combination of these is included.
[0193] The mesh network system includes participating devices configured to require participation in the mesh network and a joiner router. The joiner router receives messages from the participating devices that require participation in the mesh network, transfers the received messages to the commissioning device of the mesh network, receives from the commissioning device an authentication for the participating devices to participate in the mesh network, and is configured to send network information to the participating devices. The network information is effective to enable the participating devices to participate in the mesh network.
[0194] Instead of or in addition to the mesh network system described above, the joiner router is configured to receive a beacon request from a participating device and send a beacon to the participating device. The beacon provides an indication that the mesh network is available for participation, and the beacon is effective to enable the participating device to establish a local link between the participating device and the joiner router; the message received from the participating device includes an encrypted device identifier that can be used to authenticate the participating device, and the participating device is authenticated using juggling-based password-authenticated key exchange (J-PAKE), and the authentication is effective to establish a secure communication session between the commissioning device and the participating device; and the joiner router is configured to transfer the received message to the commissioning device through one or more routers of the mesh network in the communication path between the joiner router and the commissioning device, and one of the routers is a border router that connects the mesh network to an external network, any one or a combination of these is included.
[0195] A method for securely allowing a participating device to participate in a mesh network includes steps of: receiving, at a joiner router, a DTLS-ClientHello message from a participating device that requests to participate in the mesh network; encapsulating the received DTLS-ClientHello message within a DTLS relay receive notification message; sending the DTLS relay receive notification message to a commissioning device of the mesh network; receiving, from the commissioning device, a DTLS relay transmit notification message; and sending the content of the DTLS relay transmit notification message to the participating device, the content being valid for enabling the participating device to participate in the mesh network. The method further includes steps of: receiving, from the commissioning device, an indication that the participating device should be entrusted to receive network credentials for the mesh network; receiving, from the commissioning device, a key encryption key (KEK) shared between the commissioning device and the participating device; and in response to receiving the indication, sending the network credentials from the joiner router to the participating device using the KEK to secure the communication of the network credentials.
[0196] Instead of or in addition to the above method, further including the steps of receiving a beacon request from a participating device and transmitting a beacon from a joiner router to the participating device; the beacon includes a network name and steering data indicating one or more participating devices permitted to participate in the mesh network; the step of receiving a DTLS-ClientHello message from the participating device utilizes the User Datagram Protocol (UDP); the DTLS relay receive notification message includes the address of the participating device, the address of the joiner router, and the received DTLS-ClientHello message; the DTLS relay transmit notification message includes the address of the participating device, the address of the joiner router, and the DTLS-HelloVerify message; the step of transmitting the content of the DTLS relay transmit notification message to the participating device is effective for establishing a secure communication session between the commissioning device and the participating device; the secure communication session can be used for provisioning the participating device; and further including the step of applying a speed limit to the transmission of the DTLS relay receive notification message transmitted from the participating device to the commissioning device, any one or a combination of these is included.
[0197] A mesh network device implemented as a joiner router, the mesh network device including a mesh network interface configured for communication in a mesh network and a memory and processor system for implementing a commissioning application, the commissioning application receiving a DTLS-ClientHello message from a participating device that requests to participate in the mesh network via the mesh network interface, encapsulating the received DTLS-ClientHello message within a DTLS relay receive notification message, initiating transmission of the DTLS relay receive notification message to a commissioning device of the mesh network, receiving a DTLS relay transmit notification message from the commissioning device, and initiating transmission of the content of the DTLS relay transmit notification message to the participating device, the content being valid to enable the participating device to participate in the mesh network, the commissioning application further receiving from the commissioning device an indication that the participating device should be entrusted to receive network credentials for the mesh network, receiving from the commissioning device a key encryption key (KEK) shared between the commissioning device and the participating device, and in response to the indication, initiating transmission of the network credentials from the joiner router to the participating device using the KEK to secure communication of the network credentials.
[0198] Instead of or in addition to the above-mentioned mesh network device, receiving a beacon request from a participating device via a mesh network interface and starting the transmission of a beacon from a joiner router to the participating device; the commissioning application is configured to receive a DTLS-ClientHello message from a participating device using the User Datagram Protocol (UDP); the DTLS relay receive notification message includes the address of the participating device, the address of the joiner router, and the received DTLS-ClientHello message, and the DTLS relay transmit notification message includes the address of the participating device, the address of the joiner router, and the DTLS-HelloVerify message; the content of the DTLS relay transmit notification message sent to the participating device is effective for establishing a secure communication session between the commissioning device and the participating device; the secure communication session can be used to perform the provisioning of the participating device, any one or a combination of these is included.
[0199] A mesh network system includes participating devices configured to require joining the mesh network and a joiner router. The joiner router receives a DTLS-ClientHello message from a participating device that requires joining the mesh network, encapsulates the received DTLS-ClientHello message within a DTLS relay reception notification message, and transmits the DTLS relay reception notification message to a commissioning device of the mesh network. The joiner router is configured to receive a DTLS relay transmission notification message from the commissioning device and transmit the content of the DTLS relay transmission notification message to the participating device. The content is valid for enabling the participating device to join the mesh network. The joiner router further receives from the commissioning device an indication that the participating device should be entrusted to receive network credentials for the mesh network, receives from the commissioning device a key encryption key (KEK) shared between the commissioning device and the participating device, and in response to the indication, is configured to transmit the network credentials from the joiner router to the participating device using the KEK to secure the communication of the network credentials.
[0200] Instead of, or in addition to, the above-described mesh network system, receiving a beacon request from a participating device and transmitting a beacon from a joiner router to the participating device; the beacon including a network name and steering data indicating one or more participating devices permitted to participate in the mesh network; the joiner router being configured to receive a DTLS-ClientHello message from the participating device using the User Datagram Protocol (UDP); and the DTLS relay receive notification message including the address of the participating device, the address of the joiner router, and the received DTLS-ClientHello message, and the DTLS relay transmit notification message including the address of the participating device, the address of the joiner router, and the DTLS-HelloVerify message, any one or a combination of these being included.
[0201] A method of authorizing a commissioning device to act as a commissioner for commissioning one or more participating devices to participate in a mesh network includes, at a border router, receiving from the commissioning device an application to act as a commissioner for the mesh network, transmitting the received application to a leader device of the mesh network, receiving from the leader device a response to the application, the response indicating acceptance or rejection of the application, and further including transmitting, in response to receiving the response, an indication of acceptance or rejection of the application to the commissioning device.
[0202] Instead of or in addition to the above method, further comprising the step of advertising, by a border router, the availability of a mesh network for a commissioning device, wherein the step of receiving the application is responsive to the commissioning device receiving the advertisement; further comprising the step of receiving, by the border router, a request from the commissioning device to securely connect to the border router; the secure connection being established using Datagram Transport Layer Security (DTLS); the step of sending an indication of acceptance of the application being establishing a secure commissioning session; further comprising the step of registering, with the border router, the identity of the commissioning device to establish a secure commissioning communication session, the step of registering including providing the border router with encrypted commissioning credentials, the encrypted commissioning credentials being derived from commissioning credentials entered by a user into the commissioning device; the border router including a copy of the encrypted commissioning credentials that can be used to authenticate the commissioning device to the mesh network; and a copy of the encrypted commissioning credentials having been previously derived from the commissioning credentials, the commissioning credentials having been injected into a leader device of the mesh network that derived the copy of the encrypted commissioning credentials, the leader device having securely communicated the copy of the encrypted commissioning credentials to the border router, any one or combination of which is included.
[0203] A mesh network device implemented as a border router, the mesh network device including a mesh network interface configured for communication in a mesh network, and a memory and a processor system for implementing a commissioning application, the commissioning application receiving, via the mesh network interface, from a commissioning device an application to become a commissioner for the mesh network for commissioning one or more participating devices to participate in the mesh network, initiating transmission of the received application to a leader device of the mesh network, being configured to receive from the leader device a response to the application, the response indicating acceptance or rejection of the application, and the commissioning application further being configured to initiate transmission of an indication of acceptance or rejection of the application to the commissioning device in response to the received response to the application.
[0204] Instead of or in addition to the mesh network device described above, the commissioning application is configured to advertise the availability of the mesh network for the commissioning device and to receive an application in response to the commissioning device receiving the advertised availability, the advertised availability being performed using a service discovery protocol including a multicast domain name system (mDNS); the commissioning application is configured to receive from the commissioning device a request to securely connect to the border router, the secure connection being established using datagram transport layer security (DTLS); acceptance of the application by the leader device authorizes the commissioning device to become a commissioner for the mesh network and the leader device updates an internal state to track active commissioners for the mesh network Accepting the application to enable involves setting the participation permission flag for the mesh network to true, propagating the commissioning data set within the mesh network, and the transmitted indication of accepting the application establishes a secure commissioning session; the commissioning application is configured to register the identity of the commissioning device with the border router to establish a secure commissioning communication session including the encrypted commissioning credentials provided to the border router, the encrypted commissioning credentials are derived from the commissioning credentials entered by the user into the commissioning device, and the border router includes a copy of the encrypted commissioning credentials that can be used to authenticate the commissioning device to the mesh network; the commissioning device and the border router communicate through a network other than the mesh network; and the other network is one of a Wi-Fi network or an Ethernet network, or any one or a combination of them is included.
[0205] A mesh network system includes a commissioning device configured to apply to become a commissioner for commissioning one or more participating devices to participate in the mesh network, and a border router. The border router receives an application from the commissioning device to become a commissioner for the mesh network, transmits the received application to the leader device of the mesh network, and is configured to receive a response to the application from the leader device. The response indicates acceptance or rejection of the application, and the border router is further configured to transmit an indication of acceptance or rejection of the application to the commissioning device.
[0206] Instead of or in addition to the above-described mesh network system, the border router is configured to advertise the availability of the mesh network for the commissioning device and receive an application in response to the commissioning device receiving the advertisement; the commissioning device and the border router communicate through a network other than the mesh network; the other network is one of a Wi-Fi network or an Ethernet network; and the border router is configured to send a display of acceptance of the application to establish a secure commissioning session, any one or a combination of these is included.
[0207] The method implemented by the leader device of the mesh network includes the steps of receiving, by the leader device, an application for accepting a commissioning device as a commissioner for commissioning participating devices to participate in the mesh network, determining whether to accept or reject the received application, sending a response including a display of the determination, and updating an internal state for tracking an active commissioner for the mesh network in response to the determination being acceptance.
[0208] Instead of or in addition to the above-described method, further including the step of receiving, from the commissioning device, a command to start a participation mode for the mesh network; further including the step of propagating a commissioning data set within the mesh network; the commissioning data set includes a commissioner session identifier, a commissioner timestamp, encrypted commissioner credentials, and a security policy indicating which security-related operations are permitted in the mesh network; encrypted from the commissioning credentials injected into the leader device during the commissioning of the leader device further comprising the step of deriving the commissioned credentials; the derivation of the encrypted commissioned credentials is performed by applying a key derivation function, and the key derivation function performs hashing a plurality of times using a cipher-based message authentication code (CMAC); further comprising the step of sending a copy of the encrypted commissioned credentials, which is valid to enable the border router to authenticate the commissioning device to the mesh network, to the border router; and, when the commissioner is active on the mesh network, the commissioning dataset further includes the location of the border router, any one or a combination of them is included.
[0209] A mesh network device implemented as a leader device of a mesh network, the mesh network device includes a mesh network interface configured for communication in the mesh network, and a memory and a processor system for implementing a commissioning application, the commissioning application receives, via the mesh network interface, an application for receiving a commissioning device as a commissioner for commissioning participating devices to participate in the mesh network, determines whether to accept or reject the received application, and starts sending a response including an indication of whether to accept or reject the received application, and is configured to update an internal state for tracking an active commissioner for the mesh network in response to the determination being an acceptance of the received application.
[0210] Instead of or in addition to the above-described mesh network device, the commissioning application is configured to receive from the commissioning device a command to initiate a participation mode for the mesh network; the commissioning application is configured to propagate a commissioning data set within the mesh network; the commissioning data set includes a commissioner session identifier, a commissioner timestamp, encrypted commissioner credentials, and a security policy indicating which security-related operations are permitted in the mesh network, and the commissioning application is further configured to derive the encrypted commissioner credentials from the commissioner credentials injected into the leader device during the commissioning of the leader device, the derivation of the encrypted commissioner credentials being performed by applying a key derivation function, the key derivation function performing hashing a plurality of times using a cipher-based message authentication code (CMAC); the commissioning application is configured to send a copy of the encrypted commissioner credentials, which is valid to enable the border router to authenticate the commissioning device to the mesh network, to the border router; and, when the commissioner is active on the mesh network, the commissioning data set further includes the location of the border router, any one or a combination of which is included.
[0211] A mesh network system includes a commissioning device configured to apply to become a commissioner for commissioning one or more participating devices to participate in the mesh network, and a leader device of the mesh network. The leader device receives an application for receiving the commissioning device as a commissioner for commissioning the participating devices to participate in the mesh network, determines whether to accept or reject the received application, and transmits a response including an indication of the determination of whether to accept or reject the received application. In response to the determination being acceptance, it tracks the active commissioner for the mesh network and is configured to update its internal state. It is configured to update its internal state.
[0212] Instead of or in addition to the above-described mesh network system, the leader device is configured to receive from the commissioning device a command to start a participation mode for the mesh network; the leader device is configured to propagate a commissioning data set within the mesh network; the commissioning data set includes a commissioner session identifier, a commissioner timestamp, encrypted commissioner credentials, and a security policy indicating which security-related operations are permitted in the mesh network, and the leader device is further configured to derive the encrypted commissioner credentials from the commissioner credentials injected into the leader device during commissioning of the leader device, and the derivation of the encrypted commissioner credentials is performed by applying a key derivation function, and the key derivation function performs hashing multiple times using a cipher-based message authentication code (CMAC); the leader device is configured to send a copy of the encrypted commissioner credentials, which is valid to enable the border router to authenticate the commissioning device to the mesh network, to the border router; and, when the commissioner is active on the mesh network, the commissioning data set further includes the location of the border router, any one or a combination of which is included.
[0213] A method for securely establishing a network communication session to allow one or more participating devices to participate in a mesh network includes establishing a secure commissioning communication session between a commissioning device of the mesh network and a border router, initiating participation for the mesh network, receiving, by the commissioning device, a request to participate in the mesh network from one of the participating devices, establishing a secure joiner communication session between the commissioning device and the participating device, and causing the participating device to participate in the mesh network.
[0214] Instead of or in addition to the above method, the step of establishing a secure commissioning communication session includes sending an application from the commissioning device to the leader device of the mesh network to request acceptance of the commissioning device as an active commissioner for the mesh network, and receiving an indication of acceptance of the application from the leader device; the step of initiating participation for the mesh network includes the commissioning device starting a participation mode to advertise to one or more routers in the mesh network that the mesh network has accepted a participation request; the step of initiating participation for the mesh network includes sending an administrative message to the leader device to enable the mesh network to participate, the administrative message being effective to enable the leader device to update network data for the mesh network and propagate the network data to one or more router devices in the mesh network, the network data including an indication that the mesh network is available for participation; further including the step of authenticating the participating device using an encrypted device identifier; the step of receiving a request to participate in the mesh network from one of the participating devices is received via a joiner router, and the method further includes the step of the participating device sending to the joiner router an indication that the participating device should be entrusted with receiving network credentials for the mesh network and a key encryption key (KEK) shared between the commissioning device and the participating device, the sending step including the joiner router receiving It is effective to securely send network credentials to participating devices using KEK and enable the participating devices to be commissioned into the mesh network; the step of receiving a request from a participating device includes the step of receiving an encrypted device identifier of the participating device, and the encrypted device identifier is derived from the device identifier of the participating device using password-authenticated key exchange by juggling (J-PAKE); the step of establishing a secure joiner communication session includes the step of determining by the commissioning device that the encrypted device identifier received from the participating device matches the encrypted device identifier derived by the commissioning device from a copy of the device identifier received as input from the user to the commissioning device, and the step of using the encrypted device identifier as a shared secret to secure the joiner communication session, and any one or a combination of them is included.
[0215] A mesh network device implemented as a commissioning device for allowing one or more participating devices to participate in a mesh network, the mesh network device including a mesh network interface configured for communication in the mesh network, and a memory and a processor system for implementing a commissioning application, the commissioning application establishing a secure commissioning communication session between the commissioning device of the mesh network and a border router, initiating participation for the mesh network, receiving a request to participate in the mesh network from one of the participating devices via the mesh network interface, establishing a secure joiner communication session between the commissioning device and the participating device, and being configured to allow the participating device to participate in the mesh network.
[0216] Instead of or in addition to the above-described mesh network device, the commissioning application is configured to send a request from the commissioning device to the leader device of the mesh network to request acceptance of the commissioning device as an active commissioner for the mesh network and receive an indication of acceptance of the request from the leader device; the commissioning application is configured to initiate participation for the mesh network by activating a participation mode that advertises that one or more routers in the mesh network have accepted a participation request; the commissioning application is configured to initiate participation for the mesh network by sending an administrative message to the leader device to enable the mesh network, the administrative message enabling the leader device to update network data for the mesh network and propagate the network data to one or more router devices in the mesh network, the network data including an indication that the mesh network is available for participation; requests received from participating devices include an encrypted device identifier of the participating device, the encrypted device identifier being derived from the device identifier of the participating device using password-authenticated key exchange by juggling (J-PAKE); the commissioning application is further configured to use the encrypted device identifier as a shared secret to establish a secure joiner communication session, having determined that the encrypted device identifier received from the participating device matches the encrypted device identifier derived by the commissioning device from a copy of the device identifier received as input from the user to the commissioning device; the commissioning application is configured to forward requests from participating devices to participate in the mesh network, the requests being for one or more is transferred to the commissioning device by the router device, or any one or a combination of them is included.
[0217] A mesh network system includes one or more participating devices configured to request participation in the mesh network and a commissioning device for the mesh network. The commissioning device establishes a secure commissioning communication session between the commissioning device and the border router of the mesh network, initiates participation for the mesh network, receives a request to participate in the mesh network from one of the participating devices, establishes a secure joiner communication session between the commissioning device and the participating device, and is configured to allow the participating device to participate in the mesh network.
[0218] Instead of or in addition to the above-described mesh network system, the commissioning device is configured to send an application from the commissioning device to the leader device of the mesh network to request acceptance of the commissioning device as an active commissioner for the mesh network in order to establish a secure commissioning communication session and to receive an indication of acceptance of the application from the leader device; the commissioning device is configured to initiate participation for the mesh network by activating a participation mode that advertises to one or more routers in the mesh network that the mesh network has accepted a participation request; the commissioning device is configured to initiate participation for the mesh network by sending an administrative message to the leader device to enable the mesh network to be joined, the administrative message enabling the leader device to update network data for the mesh network and propagate the network data to one or more router devices in the mesh network, the network data including an indication that the mesh network is available for participation; the commissioning device is configured to receive a request to join the mesh network from one of the participating devices via a joiner router, and the participating device should be entrusted to receive network credentials for the mesh network and a key encryption key (KEK) shared between the commissioning device and the participating device, and the transmitted indication enables the joiner router to securely send the network credentials to the participating device using the received KEK and enables the participating device to be commissioned into the mesh network, including any one or a combination of these.
[0219] A method for provisioning participating devices in a mesh network includes establishing a commissioning communication session between a commissioning device of the mesh network and a border router, establishing a joiner communication session between the participating device and the commissioning device, and transmitting commissioning information to the participating device, where the commissioning information is available for use by the participating device to participate in the mesh network. The method further includes receiving, from the participating device, a display of the location of the commissioning application, and executing the commissioning application to provision the participating device.
[0220] Instead of or in addition to the above method, further including the step of searching for the commissioning application using the received display; the received display of the location of the commissioning application is a Uniform Resource Locator (URL); the commissioning application is searched from a cloud service through the Internet; the commissioning device uses the received URL to determine whether the commissioning application is stored in the memory of the commissioning device; further including the step of terminating the commissioning of the participating device in response to the completion of the provisioning of the participating device, and the terminating step is effective to enable the participating device to participate in the mesh network; the provisioning of the participating device includes updating the software on the participating device; the provisioning of the participating device includes linking the participating device to a user account on a cloud service; the provisioning of the participating device includes configuring the participating device; and the configuration is a local configuration related to other devices in the mesh network, any one or a combination of which is included.
[0221] A mesh network device implemented as a commissioning device, the mesh network device including a mesh network interface configured for communication in a mesh network and a memory and processor system for implementing a commissioning application, the commissioning application being configured to establish a commissioning communication session between a commissioning device and a border router in the mesh network, establish a joiner communication session between a participating device and the commissioning device, and transmit commissioning information to the participating device, the commissioning information being usable by the participating device to participate in the mesh network, and the commissioning application further being configured to receive an indication of the location of the commissioner application from the participating device and execute the commissioner application to provision the participating device.
[0222] Instead of or in addition to the above-described mesh network device, the commissioning application is configured to search for the commissioner application using the received indication; the received indication of the location of the commissioner application is a Uniform Resource Locator (URL); the commissioner application is searched for from a cloud service over the Internet; the commissioning device uses the received URL to determine whether the commissioner application is stored in the memory of the commissioning device, any one or a combination of which is included.
[0223] A mesh network system includes participating devices configured to request participation in the mesh network and a commissioning device for the mesh network. The commissioning device is configured to establish a commissioning communication session between the commissioning device and a border router of the mesh network, establish a joiner communication session between the participating device and the commissioning device, and transmit commissioning information to the participating device. The commissioning information is usable by the participating device to participate in the mesh network. The commissioning device is further configured to receive an indication of the location of the commissioning application from the participating device and to execute the commissioning application to provision the participating device.
[0224] Instead of or in addition to the mesh network system described above, the commissioning application is configured to use the received indication to search for the commissioning application; the received indication of the location of the commissioning application is a Uniform Resource Locator (URL ); the commissioning application is retrieved from a cloud service over the Internet; and the commissioning device uses the received URL to determine whether the commissioning application is stored in the memory of the commissioning device, any one or a combination of these being included.
[0225] A method of identifying a device permitted to participate in a mesh network includes the step of obtaining steering data for the mesh network, the steering data including an indication of a device identifier associated with a device permitted to participate in the mesh network, the method further including the step of propagating the steering data from a commissioning device for the mesh network to one or more routers in the mesh network, the propagating step enabling the one or more routers to transmit the steering data in a beacon message, the steering data being effective to enable a device associated with the device identifier to be identified as being permitted to participate in the mesh network.
[0226] Instead of or in addition to the above method, the steering data includes a 16-bit cyclic redundancy check (CRC16) of the device identifier; the device identifier is an IEEE 64-bit extended unique identifier (EUI-64); the step of obtaining the steering data for the mesh network further includes the step of obtaining steering data for an additional device identifier associated with an additional device permitted to participate in the mesh network; the step of propagating the steering data is effective to enable a device to distinguish the mesh network from other networks; the other network is an IEEE 802.15.4 network; and the steering data indicates that a commissioner is active on the mesh network, any one or a combination of these being included.
[0227] A mesh network device implemented as a commissioning device, the mesh network device including a mesh network interface configured for communication in a mesh network and a memory and processor system for implementing a commissioning application, the commissioning application being configured to request steering data for the mesh network, the steering data including an indication of device identifiers associated with devices permitted to participate in the mesh network, the commissioning application further being configured to propagate the steering data from a commissioning device for the mesh network to one or more routers in the mesh network, the propagation enabling the one or more routers to transmit the steering data in a beacon message, the steering data being effective to enable a device associated with a device identifier to identify that the device is permitted to participate in the mesh network.
[0228] Instead of or in addition to the mesh network device described above, the steering data includes a 16-bit cyclic redundancy check (CRC16) of the device identifier; the device identifier is an IEEE 64-bit extended unique identifier (EUI-64); the commissioning application is configured to request steering data for additional device identifiers associated with additional devices permitted to participate in the mesh network in order to request steering data for the mesh network; the steering data is usable by a device to distinguish the mesh network from other networks; the other network is an IEEE 802.15.4 network; and either, the steering data indicates that a commissioner is active on the mesh network, any one or a combination of these is included.
[0229] A mesh network system includes participating devices configured to request participation in the mesh network and a commissioning device for the mesh network. The commissioning device is configured to request steering data for the mesh network. The steering data includes an indication of device identifiers associated with devices permitted to participate in the mesh network. The commissioning device is further configured to propagate the steering data from the commissioning device for the mesh network to one or more routers in the mesh network. The propagation enables the one or more routers to transmit the steering data in beacon messages. The steering data is effective to enable a device associated with a device identifier to identify that the device is permitted to participate in the mesh network.
[0230] Instead of or in addition to the mesh network system described above, the steering data includes a 16-bit cyclic redundancy check (CRC16) of the device identifier; the device identifier is an IEEE 64-bit extended unique identifier (EUI-64); the commissioning device is configured to request steering data for additional device identifiers associated with additional devices permitted to participate in the mesh network to obtain steering data for the mesh network; the steering data enables a device to distinguish the mesh network from other networks; the steering data indicates that a commissioner is active on the mesh network, any one or a combination of these may be included.
[0231] A method for identifying a device permitted to participate in a mesh network includes a step of obtaining steering data for the mesh network, the steering data including a display of device identifiers associated with devices permitted to participate in the mesh network, the display being represented as a set of values in a Bloom filter representing the device identifiers, the method further including a step of propagating the steering data from a commissioning device for the mesh network to one or more routers in the mesh network, the propagating step enabling the one or more routers to transmit the steering data in a beacon message, and the steering data enabling a device associated with the device identifier to identify that the device is permitted to participate in the mesh network by comparing a set of values in the Bloom filter obtained by the device with a second set of values.
[0232] Instead of or in addition to the above method, the step of obtaining steering data includes applying a first hash function to the device identifier to generate a first hash value, applying a second hash function to the device identifier to generate a second hash value, performing a modulo operation on the first hash value to obtain a first bitfield position in the Bloom filter, performing a modulo operation on the second hash value to obtain a second bitfield position in the Bloom filter, setting the value at the first bitfield position of the Bloom filter to 1, and setting the value at the second bitfield position of the Bloom filter to 1; the first and second hash functions are cyclic redundancy checks (CRC), the first hash function is CRC16-CCITT, and the second hash function is CRC16-ANSI; the divisor for the modulo operation is the length of the bit array of the Bloom filter; the device identifier is IEEE 64-bit extended That it is a single identifier (EUI-64); that the device identifier is the lowest 24 bits of the EUI-64; that the step of obtaining steering data for the mesh network further includes the step of obtaining steering data for additional device identifiers associated with additional devices permitted to participate in the mesh network; that it further includes the step of setting the value of the steering data to a value of 0 that disables participation for the mesh network; and that it further includes the step of setting all bit field values in the steering data to a value of 1 to indicate that the mesh network is available for participation by any device, any one or a combination of them being included.
[0233] A mesh network device implemented as a commissioning device, the mesh network device including a mesh network interface configured for communication in the mesh network and a memory and processor system for implementing a commissioning application, the commissioning application being configured to obtain steering data for the mesh network, the steering data including an indication of a device identifier associated with a device permitted to participate in the mesh network, the indication being represented as a set of values in a Bloom filter representing the device identifier, the commissioning application further being configured to propagate the steering data to one or more routers in the mesh network, the propagation being effective to enable the one or more routers to transmit the steering data in a beacon message, the steering data enabling a device associated with the device identifier to identify that the device is permitted to participate in the mesh network by comparing a set of values in the Bloom filter obtained by the device with a second set of values obtained by the device.
[0234] Instead of or in addition to the mesh network device described above, the commissioning application applies a first hash function to the device identifier to generate a first hash value, applies a second hash function to the device identifier to generate a second hash value, performs a modulo operation on the first hash value to determine a first bitfield position in the Bloom filter, performs a modulo operation on the second hash value to determine a second bitfield position in the Bloom filter, sets the value at the first bitfield position of the Bloom filter to 1, and sets the value at the second bitfield position of the Bloom filter to 1; the first and second hash functions are cyclic redundancy checks (CRC), the first hash function is CRC16-CCITT, the second hash function is CRC16-ANSI; and the divisor for the modulo operation is the length of the bit array of the Bloom filter; the device identifier is an IEEE 64-bit extended unique identifier (EUI-64), any one or a combination of these is included.
[0235] The mesh network system includes a participating device configured to request participation in the mesh network and a commissioning device, the commissioning device is configured to obtain steering data for the mesh network, the steering data includes a display of device identifiers associated with devices permitted to participate in the mesh network, the display is represented as a set of values in a Bloom filter representing the device identifier, the commissioning device is further configured to propagate the steering data to one or more routers in the mesh network, the propagation is effective to enable one or more routers to transmit the steering data in a beacon message, and the steering data is a second set of values obtained by the device associated with the device identifier for the set of values in the Bloom filter Compared to, the device is enabled to identify that participation in the mesh network is permitted.
[0236] Instead of or in addition to the above-described mesh network system, the commissioning device applies a first hash function to the device identifier to generate a first hash value, applies a second hash function to the device identifier to generate a second hash value, performs a modulo operation on the first hash value to obtain a first bitfield position in the Bloom filter, performs a modulo operation on the second hash value to obtain a second bitfield position in the Bloom filter, sets the value at the first bitfield position of the Bloom filter to 1, and sets the value at the second bitfield position of the Bloom filter to 1; the first and second hash functions are cyclic redundancy checks (CRC), the first hash function is CRC16-CCITT, and the second hash function is CRC16-ANSI; the divisor for the modulo operation is the length of the bit array of the Bloom filter; the device identifier is an IEEE 64-bit extended unique identifier (EUI-64); the commissioning device is configured to obtain steering data for additional device identifiers associated with additional devices permitted to participate in the mesh network in order to obtain steering data for the mesh network, any one or a combination of these is included.
[0237] A method for updating commissioning data at a node of a mesh network includes receiving a commissioning data set at a node device in the mesh network, comparing a timestamp included in the received commissioning data set with a stored timestamp included in a commissioning data set stored in the node device, determining from the comparing step that the stored timestamp is more recent than the received timestamp, and in response to the determining step, sending a message to a leader device of the mesh network, the message including the stored commissioning data set, the leader device being operative to receive the stored commissioning data set as the most recent commissioning data set for the mesh network and to propagate the stored commissioning data set through the mesh network.
[0238] Instead of or in addition to the above method, from the comparing step, a step of determining that the received timestamp is more recent than the stored timestamp, and in response to the step of determining that the received timestamp is more recent than the stored timestamp, a step of updating the stored commissioning data set to match the received commissioning data set; the received commissioning data set includes the received timestamp, commissioning credentials, the network name of the mesh network, and a security policy indicating which security-related operations are permitted in the mesh network; the received timestamp includes a time value and an indication that the time value is traceable to Coordinated Universal Time (UTC); the node device and the leader device have been previously commissioned into the mesh network, and the previous commissioning stored the same commissioning data set in the node device and the leader device; the stored commissioning data set in the node device is updated after the mesh network splits, the split separates the mesh network into multiple sections, the first section of the mesh network includes the leader device, and the second section of the mesh network includes the node device; the split stops communication between the node device and the leader device on the mesh network ; the step of receiving the commissioning data set at the node device occurs after the merger of the first and second sections of the mesh network, and the merger re-establishes a communication path between the node device and the leader device on the mesh network; and the node device includes any one or a combination of a router device or a router-qualified device.
[0239] A mesh network device implemented as a router, the mesh network device including a mesh network interface configured for communication in a mesh network and a memory and processor system for implementing a commissioning application, the commissioning application receiving a commissioning data set and comparing a timestamp included in the received commissioning data set with a stored timestamp included in a commissioning data set stored in the router, determining from the comparison that the stored timestamp is more recent than the received timestamp, and in response to the determination, being configured to send a message to a leader device of the mesh network, the message including the stored commissioning data set, the leader device being enabled to receive the stored commissioning data set as the most recent commissioning data set for the mesh network and to propagate the stored commissioning data set through the mesh network.
[0240] Instead of, or in addition to, the above-described mesh network device, the commissioning application determines from a comparison that the received timestamp is more recent than the stored timestamp, and in response to the determination that the received timestamp is more recent than the stored timestamp, is configured to update the stored commissioning data set to be consistent with the received commissioning data set; the received commissioning data set includes the received timestamp, commissioning credentials, the network name of the mesh network, and a security policy indicating which security-related operations are permitted in the mesh network; the received timestamp includes a time value and an indication that the time value is traceable to Coordinated Universal Time (UTC); the router and leader devices were previously commissioned into the mesh network, and the previous commissioning stored the same commissioning data set in the router and leader devices; and any one or a combination of the following: the stored commissioning data set in the router is updated after a split of the mesh network, the split separates the mesh network into multiple segments, the first segment of the mesh network includes the leader device, and the second segment of the mesh network includes the router.
[0241] The mesh network system includes a leader device configured to maintain commissioning data for the mesh network and a router device. The router device receives a commissioning data set, compares the timestamp included in the received commissioning data set with the stored timestamp included in the commissioning data set stored in the router, determines from the comparison that the stored timestamp is more recent than the received timestamp, and in response to the determination, is configured to send a message to the leader device of the mesh network. The message includes the stored commissioning data set, and the leader device is operative to accept the stored commissioning data set as the most recent commissioning data set for the mesh network and to propagate the stored commissioning data set to the mesh network.
[0242] Instead of or in addition to the mesh network system described above, the router device is configured to update the stored commissioning data set to be consistent with the received commissioning data set in response to a determination from the comparison that the received timestamp is more recent than the stored timestamp; the received commissioning data set includes the received timestamp, commissioning credentials, a network name of the mesh network, and a security policy indicating which security-related operations are permitted in the mesh network; the received timestamp includes a time value and an indication that the time value is traceable to Coordinated Universal Time (UTC); and any one or a combination of the following is included: the router and the leader device have been previously commissioned for the mesh network, and the previous commissioning stored the same commissioning data set in the router and the leader device.
Claims
1. A method for securely allowing a participating device to join a mesh network, the method comprising: receiving, by a joiner router, a message from a participating device requesting to join the mesh network; transferring the received message to a commissioning device of the mesh network; receiving, from the commissioning device, authentication for the participating device to join the mesh network; sending network information to the participating device, wherein the network information is valid to enable the participating device to join the mesh network.
2. further comprising receiving a beacon request from the participating device and sending a beacon from the joiner router to the participating device, wherein the beacon provides an indication that the mesh network is available for joining, according to the method of Claim 1.
3. The method of Claim 2, wherein the step of sending the beacon is effective to enable the participating device to establish a local link between the participating device and the joiner router.
4. The method according to any one of the preceding claims, wherein the step of receiving the message and the step of transferring the received message are performed using Datagram Transport Layer Security (DTLS).
5. The method according to any one of Claims 1 to 3, wherein the step of receiving the message and the step of transferring the received message are performed using User Datagram Protocol (UDP).
6. The message received from the participating device includes an encrypted device identifier that can be used to authenticate the participating device, the participating device is authenticated using Juggling Password Authenticated Key Exchange (J-PAKE), and the authentication is effective to establish a secure communication session between the commissioning device and the participating device, according to the method of any one of the preceding claims.
7. The step of transferring the received message to the commissioning device includes the step of transferring the received message through one or more routers of the mesh network in a communication path between the joiner router and the commissioning device, according to any one of the preceding claims.
8. One of the one or more routers is a border router that connects the mesh network to an external network, and the commissioning device is attached to the external network, according to claim 7.
9. A mesh network device implemented as a joiner router, the mesh network device comprising: A mesh network interface configured for communication in the mesh network; A memory and a processor system for implementing a commissioning application, the commissioning application: Receives a message from a participating device that requests to participate in the mesh network via the mesh network interface; Transfers the received message to a commissioning device of the mesh network; Receives from the commissioning device an authentication for the participating device to participate in the mesh network; Is configured to initiate sending network information to the participating device, The network information is valid to enable the participating device to participate in the mesh network, a mesh network device.
10. The commissioning application: Receives a beacon request from a participating device via the mesh network interface; Is configured to initiate sending a beacon from the joiner router to the participating device; The beacon provides an indication that the mesh network is available for participation, according to claim 9.
11. The beacon is valid to enable the participating device to establish a local link between the participating device and the joiner router, according to claim 10.
12. The commissioning application is a mesh network device according to any one of claims 9 to 11, configured to receive messages using Datagram Transport Layer Security (DTLS) and forward the received messages.
13. The commissioning application is a mesh network device according to any one of claims 9 to 11, configured to receive messages using the User Datagram Protocol (UDP) and forward the received messages.
14. Messages received from participating devices include encrypted device identifiers that can be used to authenticate the participating devices. The participating devices are authenticated using Juggling Password Authenticated Key Exchange (J-PAKE). The authentication is valid for establishing a secure communication session between the commissioning device and the participating devices, and is a mesh network device according to any one of claims 9 to 13.
15. The commissioning application is a mesh network device according to any one of claims 9 to 14, configured to forward received messages through one or more routers of the mesh network in the communication path between the joiner router and the commissioning device.
16. One of the one or more routers is a border router that connects the mesh network to an external network, and the commissioning device is attached to the external network. The mesh network device according to claim 15.
17. A mesh network system, A participating device configured to request to participate in the mesh network, Including a joiner router, the joiner router Receives messages from participating devices that request to participate in the mesh network, Forwards the received messages to the commissioning device of the mesh network, Receives from the commissioning device an authentication for the participating device to participate in the mesh network, Is configured to send network information to the participating device, The network information is valid for enabling the participating device to participate in the mesh network, and is a mesh network system.
18. A joiner router is configured to receive a beacon request from a participating device and send a beacon to the participating device, wherein the beacon provides an indication that the mesh network is available for participation and is valid to enable the participating device to establish a local link between the participating device and the joiner router. The mesh network system according to claim 17.
19. A message received from a participating device includes an encrypted device identifier that can be used to authenticate the participating device, wherein the participating device is authenticated using password-authenticated key exchange by juggling (J-PAKE), and the authentication is valid to establish a secure communication session between the commissioning device and the participating device. The mesh network system according to any one of the preceding claims.
20. The joiner router is configured to forward a received message to a commissioning device through one or more routers of the mesh network in a communication path between the joiner router and the commissioning device, wherein one of the routers is a border router that connects the mesh network to an external network. The mesh network system according to any one of claims 17 to 19.
21. A method for securely allowing a participating device to join a mesh network, the method comprising: receiving, by a joiner router, a DTLS-ClientHello message from a participating device requesting to join the mesh network; encapsulating the received DTLS-ClientHello message within a DTLS relay receive notification message; sending the DTLS relay receive notification message to a commissioning device of the mesh network; receiving, from the commissioning device, a DTLS relay transmit notification message; and sending the content of the DTLS relay transmit notification message to the participating device, the content being valid to enable the participating device to join the mesh network. The method further comprises Receiving, from a commissioning device, an indication that the joining device should be commissioned to receive network credentials for a mesh network; Receiving, from the commissioning device, a key encryption key (KEK) shared between the commissioning device and the joining device; In response to receiving the indication, transmitting, from a joiner router to the joining device, network credentials using the KEK to secure communication of the network credentials. A method comprising:
22. Receiving, from a joining device, a beacon request; and Transmitting, from a joiner router to the joining device, a beacon. The method according to claim 21, further comprising:
23. The beacon includes a network name and steering data indicating one or more joining devices permitted to join the mesh network. The method according to claim 22, wherein:
24. The step of receiving, from the joining device, a DTLS-ClientHello message utilizes the User Datagram Protocol (UDP). The method according to any one of claims 21 to 23, wherein:
25. A DTLS relay receive notification message includes: The address of the joining device; The address of the joiner router; and The received DTLS-ClientHello message. The method according to any one of claims 21 to 24, wherein:
26. A DTLS relay transmit notification message includes: The address of the joining device; The address of the joiner router; and A DTLS-HelloVerify message. The method according to any one of claims 21 to 25, wherein:
27. The step of transmitting the content of the DTLS relay transmit notification message to the joining device is effective to establish a secure communication session between the commissioning device and the joining device. The method according to any one of claims 21 to 26, wherein:
28. The secure communication session can be used to perform provisioning of the joining device. The method according to claim 27, wherein:
29. The method according to claim 21, further comprising applying a speed limit to the transmission of a DTLS relay receive notification message transmitted from the joining device to the commissioning device.
30. A mesh network device realized as a joiner router, the mesh network device comprising: A mesh network interface configured for communication in a mesh network; and A memory and a processor system for implementing a commissioning application, the commissioning application: Receives a DTLS-ClientHello message from a participating device requesting to participate in the mesh network via the mesh network interface; Encapsulates the received DTLS-ClientHello message within a DTLS relay receive notification message; Initiates transmission of the DTLS relay receive notification message to a commissioning device of the mesh network; Receives a DTLS relay transmit notification message from the commissioning device; Is configured to initiate transmission of the content of the DTLS relay transmit notification message to the participating device, the content being valid to enable the participating device to participate in the mesh network, and the commissioning application further: Receives an indication from the commissioning device that the participating device should be entrusted to receive network credentials for the mesh network; Receives a key encryption key (KEK) shared between the commissioning device and the participating device from the commissioning device; Is configured to initiate transmission of the network credentials from the joiner router to the participating device using the KEK to secure communication of the network credentials in response to the indication, a mesh network device.
31. The commissioning application: Receives a beacon request from a participating device via the mesh network interface; Is configured to initiate transmission of a beacon from the joiner router to the participating device, the mesh network device according to claim 30.
32. The commissioning application is configured to receive a DTLS-ClientHello message from a participating device using the User Datagram Protocol (UDP), the mesh network device according to claim 30.
33. The DTLS relay reception notification message includes the address of the participating device, the address of the joiner router, and the received DTLS-ClientHello message, and the DTLS relay transmission notification message includes the address of the participating device, the address of the joiner router, and the DTLS-HelloVerify message, the mesh network device according to any one of claims 30 to 32.
34. The content of the DTLS relay transmission notification message sent to the participating device is effective for establishing a secure communication session between the commissioning device and the participating device, the mesh network device according to any one of claims 30 to 33.
35. The secure communication session can be used for provisioning the participating device, the mesh network device according to any one of claims 30 to 34.
36. A mesh network system, comprising a participating device configured to request to participate in the mesh network, and a joiner router, the joiner router receives a DTLS-ClientHello message from a participating device requesting to participate in the mesh network, encapsulates the received DTLS-ClientHello message in a DTLS relay reception notification message, sends the DTLS relay reception notification message to the commissioning device of the mesh network, receives a DTLS relay transmission notification message from the commissioning device, is configured to send the content of the DTLS relay transmission notification message to the participating device, and the content is effective for enabling the participating device to participate in the mesh network, and the joiner router further receives from the commissioning device an indication that the participating device should be entrusted to receive network credentials for the mesh network, receives from the commissioning device a key encryption key (KEK) shared between the commissioning device and the participating device, and in response to the indication, is configured to send network credentials from the joiner router to the participating device using the KEK to secure the communication of the network credentials, the mesh network system.
37. The joiner router is configured to receive beacon requests from participating devices and transmit beacons from the joiner router to the participating devices, the mesh network device according to claim 36. **Claim 38** The beacon includes a network name and steering data indicating one or more participating devices permitted to participate in the mesh network, the mesh network device according to claim 37. **Claim 39** The joiner router is configured to receive a DTLS-ClientHello message from a participating device using the User Datagram Protocol (UDP), the mesh network device according to claim 36. **Claim 40** The DTLS relay reception notification message includes the address of the participating device, the address of the joiner router, and the received DTLS-ClientHello message, and the DTLS relay transmission notification message includes the address of the participating device, the address of the joiner router, and the DTLS-HelloVerify message, the mesh network device according to any one of claims 36 to 39. **Claim 41** A method of authorizing a commissioning device to act as a commissioner for commissioning one or more participating devices to participate in a mesh network, the method comprising: at a border router, receiving an application from the commissioning device to act as a commissioner for the mesh network; transmitting the received application to a leader device of the mesh network; and receiving, from the leader device, a response to the application, the response indicating acceptance or rejection of the application, the method further comprising: responding to the step of receiving the response by transmitting an indication of acceptance or rejection of the application to the commissioning device. **Claim 42** The method according to claim 41, further comprising advertising, by the border router, the availability of the mesh network for the commissioning device, wherein the step of receiving the application is in response to the commissioning device receiving the advertisement. **Claim 43** The method according to any one of the preceding claims, further comprising, by a border router, receiving, from a commissioning device, a request for secure connection to the border router.
44. The method according to claim 43, wherein the secure connection is established using Datagram Transport Layer Security (DTLS).
45. The method according to any one of claims 41 to 44, wherein the step of sending an indication of acceptance of the application establishes a secure commissioning session.
46. The method according to any one of claims 41 to 45, further comprising registering, by a commissioning device, an identity of the commissioning device with the border router to establish a secure commissioning communication session, the registering step including providing the border router with encrypted commissioning credentials derived from commissioning credentials entered by a user into the commissioning device.
47. The method according to claim 46, wherein the border router includes a copy of the encrypted commissioning credentials that can be used to authenticate the commissioning device to the mesh network.
48. The copy of the encrypted commissioning credentials was previously derived from the commissioning credentials, the commissioning credentials were injected into a leader device of the mesh network from which the copy of the encrypted commissioning credentials was derived, and the leader device communicated the copy of the encrypted commissioning credentials securely to the border router. The method according to claim 47.
49. A mesh network device implemented as a border router, the mesh network device comprising: a mesh network interface configured for communication in a mesh network; and a memory and a processor system for implementing a commissioning application, the commissioning application comprising Receive an application from a commissioning device to become a commissioner for a mesh network for commissioning one or more participating devices to participate in the mesh network via a mesh network interface, Initiate sending the received application to a leader device of the mesh network, Configured to receive a response to the application from the leader device, the response indicating acceptance or rejection of the application, and the commissioning application further A mesh network device configured to initiate sending a display of acceptance or rejection of the application to the commissioning device in response to the received response to the application.
50. The commissioning application is configured to advertise the availability of the mesh network for the commissioning device and receive an application in response to the commissioning device receiving the advertised availability, The mesh network device according to claim 49, wherein the advertised availability is performed using a service discovery protocol including a multicast domain name system (mDNS).
51. The commissioning application is configured to receive a request from the commissioning device to securely connect to a border router, The mesh network device according to any one of the preceding claims, wherein the secure connection is established using datagram transport layer security (DTLS).
52. Acceptance of the application by the leader device authorizes the commissioning device to become a commissioner for the mesh network, Acceptance of the application that enables the leader device to update an internal state tracking active commissioners for the mesh network sets a participation permission flag to true in the mesh network and propagates a commissioning data set within the mesh network, The mesh network device according to any one of claims 49 to 51, wherein the sent display of acceptance of the application establishes a secure commissioning session.
53. The commissioning application is configured to register the identity of the commissioning device with the border router to establish a secure commissioning communication session that includes the encrypted commissioning credentials provided to the border router. The encrypted commissioning credentials are derived from the commissioning credentials entered by the user into the commissioning device. The border router includes a copy of the encrypted commissioning credentials that can be used to authenticate the commissioning device to the mesh network, the mesh network device according to any one of claims 49 to 52.
54. The commissioning device and the border router communicate through a network other than the mesh network, the mesh network device according to any one of claims 49 to 52.
55. The other network is one of a Wi-Fi network or an Ethernet network, the mesh network device according to claim 54.
56. A mesh network system, A commissioning device configured to apply to become a commissioner for commissioning one or more participating devices to participate in the mesh network, Including a border router, the border router Receives an application from the commissioning device to become a commissioner for the mesh network, Transmits the received application to the leader device of the mesh network, Is configured to receive a response to the application from the leader device, the response indicates acceptance or rejection of the application, and the border router further Is configured to transmit an indication of acceptance or rejection of the application to the commissioning device, a mesh network system.
57. The border router advertises the availability of the mesh network for the commissioning device and is configured to receive an application in response to the commissioning device receiving the advertisement, the mesh network system according to claim 56.
58. The commissioning device and the border router are the mesh network system according to any one of the preceding claims, which communicate through a network other than the mesh network.
59. The mesh network system according to claim 58, wherein the other network is one of a Wi-Fi network or an Ethernet network.
60. The border router is configured to send a display of acceptance of the application to establish a secure commissioning session, and the mesh network system according to any one of claims 56 to 59.
61. A method implemented by a leader device of a mesh network, the method comprising: receiving, by the leader device, an application for accepting a commissioning device as a commissioner for commissioning a participating device to participate in the mesh network; determining whether to accept or reject the received application; sending a response including a display of the determination; and updating an internal state for tracking an active commissioner for the mesh network in response to the determination being an acceptance.
62. The method according to claim 61, further comprising receiving, from the commissioning device, a command for starting a participation mode for the mesh network.
63. The method according to claim 62, further comprising propagating a commissioning data set within the mesh network.
64. The commissioning data set includes: a commissioner session identifier; a commissioner timestamp; encrypted commissioner credentials; and a security policy indicating which security-related operations are permitted in the mesh network.
65. The method according to claim 64, further comprising deriving the encrypted commissioner credentials from the commissioner credentials injected into the leader device during the commissioning of the leader device.
66. Derivation of the encrypted commissioning credentials is performed by applying a key derivation function that performs hashing multiple times using a cryptographic message authentication code (CMAC), as claimed in claim 65. **Claim 67** The method according to claim 65, further comprising the step of sending a copy of the encrypted commissioning credentials that is valid for enabling a border router to authenticate a commissioning device to the mesh network. **Claim 68** The method according to claim 64, wherein when the commissioner is active on the mesh network, the commissioning data set further includes the location of the border router. **Claim 69** A mesh network device implemented as a leader device of a mesh network, the mesh network device comprising: A mesh network interface configured for communication in the mesh network; A memory and a processor system for implementing a commissioning application; The commissioning application: Receives an application for receiving a commissioning device as a commissioner for commissioning a participating device to participate in the mesh network via the mesh network interface; Determines whether to accept or reject the received application; Starts sending a response including an indication of whether to accept or reject the received application; A mesh network device configured to update an internal state for tracking an active commissioner for the mesh network in response to determining that the received application is an acceptance. **Claim 70** The mesh network device according to claim 69, wherein the commissioning application is configured to receive a command from the commissioning device to start a participation mode for the mesh network. **Claim 71** The mesh network device according to claim 70, wherein the commissioning application is configured to propagate a commissioning data set within the mesh network. **Claim 72** The commissioning data set includes: A commissioner session identifier; a commissioner timestamp, encrypted commissioner credentials, and a security policy indicating which security-related operations are permitted in the mesh network, the commissioning application is further configured to derive the encrypted commissioning credentials from the commissioning credentials injected into the leader device during the commissioning of the leader device, the derivation of the encrypted commissioning credentials being performed by applying a key derivation function, the key derivation function performing hashing multiple times using a cipher-based message authentication code (CMAC), the mesh network device of claim 71. **Claim 73** The commissioning application is configured to send a copy of the encrypted commissioning credentials to the border router that is valid to enable the border router to authenticate the commissioning device to the mesh network, the mesh network device of claim 72. **Claim 74** When the commissioner is active on the mesh network, the commissioning data set further includes the location of the border router, the mesh network device of claim 72. **Claim 75** A mesh network system, a commissioning device configured to apply to become a commissioner for commissioning one or more participating devices to participate in the mesh network, and a leader device of the mesh network, the leader device receives an application to receive the commissioning device as a commissioner for commissioning the participating devices to participate in the mesh network, determines whether to accept or reject the received application, sends a response including an indication of the determination of whether to accept or reject the received application 、 and is configured to update an internal state for tracking an active commissioner for the mesh network in response to the determination being acceptance, the mesh network system. **Claim 76** The leader device is configured to receive, from a commissioning device, a command to initiate a participation mode for a mesh network, the mesh network system according to claim 75.
77. The leader device is configured to propagate a commissioning data set within a mesh network, the mesh network system according to claim 76.
78. The commissioning data set a commissioner session identifier, a commissioner timestamp, encrypted commissioner credentials, and a security policy indicating which security-related operations are permitted in the mesh network, and the leader device is further configured to derive the encrypted commissioning credentials from commissioning credentials injected into the leader device during commissioning of the leader device, the derivation of the encrypted commissioning credentials being performed by applying a key derivation function, the key derivation function performing hashing a plurality of times using a cipher-based message authentication code (CMAC), the mesh network system according to claim 77.
79. The leader device is configured to send a copy of the encrypted commissioning credentials, which is valid to enable the border router to authenticate the commissioning device to the mesh network, to the border router, the mesh network system according to claim 78.
80. When the commissioner is active on the mesh network, the commissioning data set further includes the location of the border router, the mesh network system according to claim 78.
81. A method for securely establishing a network communication session to allow one or more participating devices to participate in a mesh network, the method comprising: establishing a secure commissioning communication session between a commissioning device of the mesh network and a border router; initiating participation for the mesh network; and receiving, by the commissioning device, a request from one of the participating devices to participate in the mesh network. Steps to establish a secure joiner communication session between a commissioning device and a participating device, and steps to allow the participating device to join a mesh network. **Claim 82** The step of establishing the secure commissioning communication session includes sending an application from the commissioning device to the leader device of the mesh network to request acceptance of the commissioning device as an active commissioner for the mesh network, and receiving a display of acceptance of the application from the leader device. The method according to claim 81 as described. **Claim 83** The step of initiating participation for the mesh network includes the commissioning device starting a participation mode to advertise to one or more routers in the mesh network that the mesh network is accepting participation requests. The method according to any one of the preceding claims. **Claim 84** The step of initiating participation for the mesh network includes sending a management message to the leader device to enable the mesh network. The management message is effective to enable the leader device to update network data for the mesh network and propagate the network data to one or more router devices in the mesh network. The network data includes an indication that the mesh network is available for participation. The method according to any one of claims 81 to 82. **Claim 85** The method according to any one of claims 81 to 84 further includes authenticating the participating device using an encrypted device identifier. **Claim 86** The step of receiving a request to join the mesh network from one of the participating devices is received via a joiner router. The method further The method according to claim 85, wherein the participating device should be commissioned to receive network credentials for the mesh network and a key encryption key (KEK) shared between the commissioning device and the participating device, and the step of transmitting comprises transmitting to the joiner router an indication that the joiner router is to securely transmit the received network credentials to the participating device using the received KEK and enable commissioning of the participating device to the mesh network.
87. The method according to claim 81, wherein the step of receiving a request from the participating device comprises receiving an encrypted device identifier of the participating device, the encrypted device identifier being derived from the device identifier of the participating device using juggling password-authenticated key exchange (J-PAKE).
88. The step of establishing the secure joiner communication session comprises determining by the commissioning device that the encrypted device identifier received from the participating device matches the encrypted device identifier derived by the commissioning device from a copy of the device identifier received as input from the user to the commissioning device, and using the encrypted device identifier as a shared secret to secure the joiner communication session, the method according to claim 87.
89. A mesh network device implemented as a commissioning device for joining one or more participating devices to a mesh network, the mesh network device comprising a mesh network interface configured for communication in the mesh network, and a memory and a processor system for implementing a commissioning application, the commissioning application establishing a secure commissioning communication session between the commissioning device of the mesh network and the border router, initiating participation for the mesh network, and receiving, via the mesh network interface, a request from one of the participating devices to join the mesh network Establish a secure joiner communication session between the commissioning device and the participating device, A mesh network device configured to allow the participating device to join the mesh network.
90. The commissioning application, To request acceptance of the commissioning device as an active commissioner for the mesh network, send a request from the commissioning device to the leader device of the mesh network, The mesh network device according to claim 89, configured to receive a display of acceptance of the request from the leader device.
91. The commissioning application is configured to initiate participation for the mesh network by starting a participation mode that advertises to one or more routers in the mesh network that the mesh network has accepted a participation request, the mesh network device according to any one of the preceding claims.
92. The commissioning application is configured to initiate participation for the mesh network by sending a management message to the leader device to enable the mesh network, the management message enabling the leader device to update network data for the mesh network and propagate the network data to one or more router devices in the mesh network, the network data including an indication that the mesh network is available for participation, the mesh network device according to any one of claims 89 to 90.
93. The request received from the participating device includes an encrypted device identifier of the participating device, the encrypted device identifier being derived from the device identifier of the participating device using password-authenticated key exchange by juggling (J-PAKE), the mesh network device according to claim 89.
94. The commissioning application, Determine that the encrypted device identifier received from the participating device matches the encrypted device identifier derived by the commissioning device from a copy of the device identifier received as input from the user to the commissioning device, The mesh network device according to claim 93, further configured to establish a secure joiner communication session that is further configured to use an encrypted device identifier as a shared secret to secure the joiner communication session.
95. The commissioning application is configured to forward a request to participate in the mesh network from a participating device, and the request is forwarded to the commissioning device by one or more router devices in the mesh network. The mesh network device according to any one of claims 89 to 92.
96. A mesh network system, One or more participating devices configured to request participation in the mesh network, and A commissioning device of the mesh network, and the commissioning device Is, Establish a secure commissioning communication session between the commissioning device and the border router of the mesh network, Initiate participation for the mesh network, Receive a request to participate in the mesh network from one of the participating devices, Establish a secure joiner communication session between the commissioning device and the participating device, A mesh network system configured to allow the participating device to participate in the mesh network.
97. The commissioning device is configured to request acceptance of the commissioning device as an active commissioner for the mesh network in order to establish a secure commissioning communication session, and send an application from the commissioning device to the leader device of the mesh network. The mesh network system according to claim 96, configured to receive a display of acceptance of the application from the leader device. The commissioning device is configured to initiate participation for the mesh network by starting a participation mode that advertises to one or more routers in the mesh network that the mesh network has accepted a participation request. The mesh network system according to any one of the preceding claims.
98.
99. The commissioning device is configured to initiate participation for the mesh network by sending an administrative message to a leader device to enable participation in the mesh network, the administrative message enabling the leader device to update network data for the mesh network and propagate the network data to one or more router devices in the mesh network, the network data including an indication that the mesh network is available for participation, the mesh network system according to any one of claims 96 to 97.
100. The commissioning device receives a request to participate in the mesh network from one of the participating devices via a joiner router, and the participating device is configured to send to the joiner router an indication that the participating device should be entrusted to receive network credentials for the mesh network and a key encryption key (KEK) shared between the commissioning device and the participating device, the sent indication enabling the joiner router to securely send the received KEK to the participating device for the network credentials and commission the participating device to the mesh network, the mesh network system according to claim 96.
101. A method of provisioning a participating device in a mesh network, the method comprising: establishing a commissioning communication session between a commissioning device and a border router of the mesh network; establishing a joiner communication session between the participating device and the commissioning device; sending commissioning information to the participating device, the commissioning information being usable by the participating device to participate in the mesh network; wherein the method further comprises: receiving an indication of the location of the commissioner application from the participating device; executing the commissioner application to provision the participating device.
102. The method according to claim 101, further comprising searching for the commissioner application using the received indication.
103. The received indication of the location of the commissioner application is the method according to any one of the preceding claims, which is a Uniform Resource Locator (URL).
104. The commissioner application is the method according to claim 103, which is retrieved from a cloud service through the Internet.
105. The commissioning device uses the received URL to determine whether the commissioner application is stored in the memory of the commissioning device, which is the method according to claim 103.
106. The method according to any one of claims 101 to 105 further includes the step of terminating the commissioning of the participating device in response to the completion of the provisioning of the participating device, and the terminating step is effective to enable the participating device to participate in the mesh network.
107. The provisioning of the participating device includes updating the software on the participating device, which is the method according to claim 101.
108. The provisioning of the participating device includes linking the participating device to a user account on a cloud service, which is the method according to claim 101.
109. The provisioning of the participating device includes configuring the participating device, which is the method according to claim 101.
110. The configuration is a local configuration related to other devices in the mesh network, which is the method according to claim 109.
111. A mesh network device realized as a commissioning device, the mesh network device includes a mesh network interface configured for communication in the mesh network, and a memory and a processor system for realizing the commissioning application, and the commissioning application establishes a commissioning communication session between the commissioning device of the mesh network and the border router, establishes a joiner communication session between the participating device and the commissioning device, is configured to send commissioning information to the participating device, and the commissioning information is available for use by the participating device to participate in the mesh network. The commissioning application further Receive a display of the location of the commissioner application from the participating device, A mesh network device configured to execute a commissioner application to provision the participating device.
112. The mesh network device according to claim 111, wherein the commissioning application is configured to search for the commissioning application using the received display.
113. The mesh network device according to any one of the preceding claims, wherein the received display of the location of the commissioner application is a Uniform Resource Locator (URL).
114. The mesh network device according to claim 113, wherein the commissioner application is retrieved from a cloud service over the Internet.
115. The mesh network device according to claim 113, wherein the commissioning device uses the received URL to determine whether the commissioner application is stored in the memory of the commissioning device.
116. A mesh network system, A participating device configured to request participation in the mesh network, and A commissioning device of the mesh network, the commissioning device Establish a commissioning communication session between the commissioning device and the border router of the mesh network, Establish a joiner communication session between the participating device and the commissioning device, Configured to send commissioning information to the participating device, the commissioning information being usable by the participating device to participate in the mesh network, and the commissioning device further Receive a display of the location of the commissioner application from the participating device, A mesh network system configured to execute a commissioner application to provision the participating device.
117. The mesh network system according to claim 116, wherein the commissioning application is configured to search for the commissioning application using the received display.
118. The received display of the location of the commissioner application is the mesh network system according to any one of the preceding claims, which is a Uniform Resource Locator (URL).
119. The commissioner application is the mesh network system according to claim 118, which is retrieved from a cloud service through the Internet.
120. The commissioning device uses the received URL to determine whether the commissioner application is stored in the memory of the commissioning device. The mesh network system according to claim 118.
121. A method for identifying a device permitted to participate in a mesh network, the method comprising: including the step of requesting steering data for the mesh network, the steering data including a display of a device identifier associated with a device permitted to participate in the mesh network, and the method further comprising: including the step of propagating the steering data from a commissioning device for the mesh network to one or more routers in the mesh network, the propagating step enabling the one or more routers to transmit the steering data in a beacon message, the steering data being effective to enable a device associated with the device identifier to be identified as a device permitted to participate in the mesh network.
122. The method according to claim 121, wherein the steering data includes a 16-bit cyclic redundancy check (CRC16) of the device identifier.
123. The method according to any one of the preceding claims, wherein the device identifier is an IEEE 64-bit extended unique identifier (EUI-64).
124. The step of requesting the steering data for the mesh network further includes the step of requesting steering data for an additional device identifier associated with an additional device permitted to participate in the mesh network. The method according to any one of claims 121 to 123.
125. The step of propagating the steering data is the method according to any one of claims 121 to 124, which is effective for a device to distinguish between a mesh network and other networks.
126. The method according to claim 125, wherein the other network is an IEEE 802.15.4 network.
127. The method according to claim 121, wherein the steering data indicates that a commissioner is active on the mesh network.
128. A mesh network device realized as a commissioning device, the mesh network device includes a mesh network interface configured for communication in the mesh network, and a memory and a processor system for realizing a commissioning application, and the commissioning application is configured to request steering data for the mesh network, the steering data includes an indication of a device identifier associated with a device permitted to participate in the mesh network, and the commissioning application further is configured to propagate the steering data from a commissioning device for the mesh network to one or more routers in the mesh network, and the propagation enables the one or more routers to send the steering data in a beacon message, and the steering data is effective for a device associated with the device identifier to identify that the device is permitted to participate in the mesh network. Mesh network device.
129. The mesh network device according to claim 128, wherein the steering data includes a 16-bit cyclic redundancy check (CRC16) of the device identifier.
130. The mesh network device according to any one of the preceding claims, wherein the device identifier is an IEEE 64-bit extended unique identifier (EUI-64).
131. The commissioning application is configured to request steering data for additional device identifiers associated with additional devices permitted to participate in the mesh network in order to obtain steering data for the mesh network, the mesh network device according to any one of claims 128 to 130.
132. The steering data is available for use by a device to distinguish the mesh network from other networks, the mesh network device according to any one of claims 128 to 131.
133. The other network is an IEEE 802.15.4 network, the mesh network device according to claim 132.
134. The steering data indicates that the commissioner is active on the mesh network, the mesh network device according to claim 128.
135. A mesh network system, An access device configured to request access to the mesh network, and A commissioning device of the mesh network, the commissioning device Is configured to request steering data for the mesh network, the steering data includes an indication of a device identifier associated with a device permitted to participate in the mesh network, and the commissioning device further Is configured to propagate steering data from a commissioning device for the mesh network to one or more routers in the mesh network, the propagation enables the one or more routers to transmit the steering data in a beacon message, and the steering data is effective to enable a device associated with the device identifier to identify that the device is permitted to participate in the mesh network, a mesh network system.
136. The steering data includes a 16-bit cyclic redundancy check (CRC16) of the device identifier, the mesh network system according to claim 135.
137. The device identifier is an IEEE 64-bit extended unique identifier (EUI-64), the mesh network system according to any one of the preceding claims.
138. The commissioning device is configured to request steering data for additional device identifiers associated with additional devices permitted to participate in the mesh network in order to request steering data for the mesh network, the mesh network system according to any one of claims 135 to 137.
139. The steering data enables a device to distinguish between a mesh network and other networks, the mesh network system according to any one of claims 135 to 138.
140. The steering data indicates that the commissioner is active on the mesh network (priority of GP-22882-01), the mesh network system according to claim 135.
141. A method for identifying a device permitted to participate in a mesh network, the method comprising: including the step of requesting steering data for the mesh network, the steering data including a display of device identifiers associated with devices permitted to participate in the mesh network, the display being represented as a set of values in a Bloom filter representing the device identifier, and the method further comprising: including the step of propagating the steering data from a commissioning device for the mesh network to one or more routers in the mesh network, the propagating step enabling one or more routers to transmit the steering data in a beacon message, the steering data enabling a device associated with the device identifier to compare a set of values in the Bloom filter with a second set of values obtained by the device and identify that the device is permitted to participate in the mesh network.
142. The step of requesting the steering data includes: applying a first hash function to the device identifier to generate a first hash value; applying a second hash function to the device identifier to generate a second hash value; performing a modulo operation on the first hash value to obtain a first bitfield position in the Bloom filter; To determine the second bit field position in the Bloom filter, performing a modulo operation on the second hash value, setting the value at the first bit field position of the Bloom filter to 1, setting the value at the second bit field position of the Bloom filter to 1, the method according to claim 141. **Claim 143** The first and second hash functions are cyclic redundancy checks (CRC), the first hash function is CRC16-CCITT, and the second hash function is CRC16-ANSIs, the method according to claim 142. **Claim 144** The divisor for the modulo operation is the length of the bit array of the Bloom filter, the method according to claim 142. **Claim 145** The device identifier is an IEEE 64-bit extended unique identifier (EUI-64), the method according to any one of the preceding claims. **Claim 146** The device identifier is the least significant 24 bits of the EUI-64, the method according to any one of claims 141 to 144. **Claim 147** The step of obtaining the steering data for the mesh network further includes obtaining steering data for additional device identifiers associated with additional devices permitted to participate in the mesh network, the method according to any one of claims 141 to 146. **Claim 148** The method according to claim 141 further includes setting the value of the steering data to a value of 0 that disables participation for the mesh network. **Claim 149** The method according to claim 141 further includes setting all bit field values in the steering data to a value of 1 to indicate that the mesh network is available for participation by any device. **Claim 150** A mesh network device implemented as a commissioning device, the mesh network device comprising: a mesh network interface configured for communication in the mesh network; and a memory and a processor system for implementing a commissioning application, the commissioning application comprising configured to obtain steering data for a mesh network, the steering data including a display of device identifiers associated with devices permitted to participate in the mesh network, the display represented as a set of values in a Bloom filter representing the device identifiers, and the commissioning application further configured to propagate the steering data to one or more routers in the mesh network, the propagation being effective to enable the one or more routers to transmit the steering data in beacon messages, the steering data enabling a device associated with a device identifier to compare a set of values in the Bloom filter with a second set of values determined by the device and identify that the device is permitted to participate in the mesh network, a mesh network device. **Claim 151** The commissioning application applies a first hash function to the device identifier to generate a first hash value, applies a second hash function to the device identifier to generate a second hash value, performs a modulo operation on the first hash value to determine a first bitfield position in the Bloom filter, performs a modulo operation on the second hash value to determine a second bitfield position in the Bloom filter, sets the value at the first bitfield position of the Bloom filter to 1, and sets the value at the second bitfield position of the Bloom filter to 1, the mesh network device according to claim 150. **Claim 152** The first and second hash functions are cyclic redundancy checks (CRC), the first hash function being CRC16-CCITT and the second hash function being CRC16-ANSIs, the mesh network device according to claim 151. **Claim 153** The divisor for the modulo operation is the length of the bit array of the Bloom filter, the mesh network device according to claim 151. **Claim 154** The device identifier is an IEEE 64-bit extended unique identifier (EUI-64), the mesh network device according to any one of the preceding claims. **Claim 155** A mesh network system, A participating device configured to request participation in a mesh network, and a commissioning device, wherein the commissioning device is configured to request steering data for the mesh network, the steering data including a display of device identifiers associated with devices permitted to participate in the mesh network, the display being represented as a set of values in a Bloom filter representing the device identifiers, and the commissioning device further configured to propagate the steering data to one or more routers in the mesh network such that the propagation is effective to enable the one or more routers to transmit the steering data in beacon messages, and the steering data enables a device associated with a device identifier to identify that the device is permitted to participate in the mesh network by comparing a set of values in the Bloom filter obtained by the device with a second set of values obtained by the device, a mesh network system.
156. The commissioning device is configured to apply a first hash function to the device identifier to generate a first hash value, apply a second hash function to the device identifier to generate a second hash value, perform a modulo operation on the first hash value to determine a first bitfield position in the Bloom filter, perform a modulo operation on the second hash value to determine a second bitfield position in the Bloom filter, set the value at the first bitfield position of the Bloom filter to 1, and set the value at the second bitfield position of the Bloom filter to 1, the mesh network system according to claim 155.
157. The first and second hash functions are cyclic redundancy checks (CRC), the first hash function is CRC16-CCITT, and the second hash function is CRC16-ANSIs, the mesh network system according to claim 156.
158. The divisor for the modulo operation is the length of the bit array of the Bloom filter, the mesh network system according to claim 156.
159. The mesh network system according to any one of claims 155 to 158, wherein the device identifier is an IEEE 64-bit extended unique identifier (EUI-64).
160. The mesh network system according to claim 155, wherein the computing device is configured to request steering data for additional device identifiers associated with additional devices permitted to participate in the mesh network in order to request steering data for the mesh network.
161. A method of updating commissioning data at a node in a mesh network, the method comprising: Receiving a commissioning data set at a node device in the mesh network; Comparing a timestamp included in the received commissioning data set with a stored timestamp included in a commissioning data set stored in the node device; Determining from the comparing step that the stored timestamp is more recent than the received timestamp; In response to the determining step, transmitting a message to a leader device of the mesh network, the message including the stored commissioning data set, the leader device being operative to accept the stored commissioning data set as the most recent commissioning data set for the mesh network and to propagate the stored commissioning data set through the mesh network.
162. Determining from the comparing step that the received timestamp is more recent than the stored timestamp; Further comprising, in response to determining that the received timestamp is more recent than the stored timestamp, updating the stored commissioning data set to be consistent with the received commissioning data set.
163. The received commissioning data set includes: The received timestamp; Commissioning credentials; The network name of the mesh network; The method according to any one of the preceding claims, comprising a security policy indicating which security-related operations are permitted in the mesh network.
164. The method according to claim 163, wherein the received timestamp includes a time value and an indication that the time value is traceable to Coordinated Universal Time (UTC).
165. The method according to any one of claims 161 to 164, wherein the node device and the leader device have been previously commissioned into the mesh network, and the previous commissioning stored the same commissioning data set in the node device and the leader device.
166. The method according to claim 165, wherein the stored commissioning data set in the node device is updated after the mesh network splits, the split separates the mesh network into a plurality of partitions, the first partition of the mesh network includes a leader device, and the second partition of the mesh network includes a node device.
167. The method according to claim 166, wherein the split stops communication between the node device and the leader device on the mesh network.
168. The method according to claim 166, wherein the step of receiving the commissioning data set at the node device occurs after the merger of the first and second partitions of the mesh network, and the merger re-establishes a communication path between the node device and the leader device on the mesh network.
169. The method according to any one of claims 161 to 168, wherein the node device is a router device or a router-qualified device.
170. A mesh network device implemented as a router, the mesh network device comprising a mesh network interface configured for communication in the mesh network, and a memory and a processor system for implementing a commissioning application, the commissioning application receiving a commissioning data set, comparing a timestamp included in the received commissioning data set with a stored timestamp included in the commissioning data set stored in the router. From the comparison, it is determined that the stored timestamp is more recent than the received timestamp, and in response to the determination, is configured to send a message to a leader device of the mesh network, the message including the stored commissioning data set, and the leader - device is effective to receive the stored commissioning data set as the most recent commissioning data set for the mesh network and to propagate the stored commissioning data set to the mesh network, a mesh network device.
171. The commissioning application, from the comparison, determines that the received timestamp is more recent than the stored timestamp, and in response to the determination that the received timestamp is more recent than the stored timestamp, is configured to update the stored commissioning data set to be consistent with the received commissioning data set, the mesh network device according to claim 170.
172. The received commissioning data set, includes the received timestamp, commissioning credentials, the network name of the mesh network, and a security policy indicating which security-related operations are permitted in the mesh network, the mesh network device according to any one of the preceding claims.
173. The received timestamp includes a time value and an indication that the time value is traceable to Coordinated Universal Time (UTC), the mesh network device according to claim 172.
174. The router and the leader device were previously commissioned to the mesh network, and the previous commissioning stored the same commissioning data set in the router and the leader device, the mesh network device according to any one of claims 170 to 173.
175. The stored commissioning data set in the router is updated after the mesh network splits, the split separates the mesh network into multiple sections, the first section of the mesh network includes a leader device, and the second section of the mesh network includes a router, the mesh network device according to claim 174.
176. A mesh network system, comprising: A leader device configured to maintain commissioning data for the mesh network, and A router device, the router device Receives a commissioning data set, Compares the timestamp included in the received commissioning data set with the stored timestamp included in the commissioning data set stored in the router, From the comparison, determines that the stored timestamp is more recent than the received timestamp, In response to the determination, is configured to send a message to the leader device of the mesh network, the message includes the stored commissioning data set, and is effective to enable the leader device to accept the stored commissioning data set as the most recent commissioning data set for the mesh network and propagate the stored commissioning data set to the mesh network, the mesh network system.
177. The router device From the comparison, determines that the received timestamp is more recent than the stored timestamp, In response to the determination that the received timestamp is more recent than the stored timestamp, is configured to update the stored commissioning data set to be consistent with the received commissioning data set, the mesh network system according to claim 176.
178. The received commissioning data set The received timestamp, Commissioning credentials, The network name of the mesh network, and A security policy indicating which security-related operations are permitted in the mesh network, the mesh network system according to any one of the preceding claims.
179. The mesh network system according to claim 178, wherein the received timestamp includes a time value and an indication that the time value is traceable to Coordinated Universal Time (UTC). **Claim 180** The mesh network system according to claim 176, wherein the router and the leader device have been previously commissioned into the mesh network, and the previous commissioning stored the same commissioning data set in the router and the leader device.
Citation Information
Patent Citations
Wireless node, multi-hop wireless network, adjacent node information registration method and program
JP2015065522A