- ZigBee Alliance - Welcome to the new ZigBee

advertisement
NFR - Unified Joining Process –
14-0159-01
The New Feature Request (NFR) form is used to submit an NFR for consideration and approval AND track progress of
work.
Process Stage /
Information
Content
Proposal
To Be Completed by Submitting Organization/Organizations
Name of
Feature
(Proposed)
Unified Joining Process
Author
Jonathan Cressman, Energate Inc., jcressman@energateinc.com
Date Submitted
March 19, 2014
Feature
Description
The hardest part of communicating with embedded devices is securely joining embedded devices
to the correct network. We are proposing a single common joining algorithm for all devices and
all networks.
A joining process must do the following 12 things*
a. Be flexible and allows for trade off between security and ease of use
b. Is always secure against a passive attacker regardless to the security level chosen
and only insecure at the lowest security setting to an active attacker during a
small time window.
c. Result in a shared common secure key
d. Be immune to brute force attacks but still use a short secret!
e. Support devices with limited or no user interface.
f. Steer devices to attempt to join the correct network
g. Protect devices from joining the wrong network and validate the network
h. and networks from allowing unauthorized devices to join
i. Symmetric – all devices perform same basic operations regardless of role or
security level and out of band data (joining code) can be communicated from the
joining device to the network or vice versa.
j. Does not require a certificate authority
k. Computationally inexpensive
l. Avoids two generals paradox where one party thinks it has joined the network,
the other thinks joining has failed and neither side can resolve this conflict
without outside intervention.
Current Limitations
The two (three) current joining methods have many limitations and do not satisfy the 12
requirements listed above and force a vendor to choose methods based on the security
concerns. The new method is the same for all environments.
ZigBee Alliance New Feature Request Form
Page 1 of 9
Confidential: For Alliance Members Only
NFR - Unified Joining Process –
14-0159-01
Specifically:
HA and ZLL Joining method (using well known key)
 Lacks any real security
 Lacks steering – devices can accidentally join the wrong network and network will
accept unauthorized devices.
Install Code – without CBKE
 Codes of 52 digits are hard to print on devices
 Codes are hard to read and communicate accurately by humans
 MAC address is not protected by the CRC
 48 bit Code is insecure (64 bit is on the edge)
 Not symmetric – the code can only go from the joining device to the network
SE (install code with CBKE)
 Requires a Certificate Authority
 Computationally expensive – each device performs 3 Elliptic curve operations
 Potential for devices to get stuck in a two generals like problem where one device
thinks it has joined but the other side doesn’t.
a
b
c
d
e
f
g
h
i
j
k
l
HA well
known key












Install
code












Install code
plus CBKE












Unified
Joining












* If there is a feature that is needed that I have missed I am open to suggestions. I have
intentionally left one feature of the SE method out because it would require a CA and I don’t
think it is useful.
ZigBee Alliance New Feature Request Form
Page 2 of 9
Confidential: For Alliance Members Only
NFR - Unified Joining Process –
14-0159-01
Rough outline
Every device will have a variable length Joining Code printed on it of length 0 to 20 digits. The
format of the Joining Code is:
Steering ID/Shared Secret/Check Sum
1. The Joining Code is shared between the joining device and the network. Unlike a WiFi
laptop joining a router, most embedded devices will not have a user interface to choose
a network and enter a password. Therefore the most common way of sharing the
Joining Code is to read the code off the joining device and enter it into a device on the
network. The Check Sum, if present, is to give the user immediate feedback if they have
entered the Joining Code incorrectly.
2. The network then is set to allow devices to join and the joining device is told to look for a
network to join. This will most often just be pressing a button on the joining device and
another button on a device on the network.
3. The joining device will attempt to join any network that has signalled that it is allowing
devices to join, the network will look at the join attempt and check if the devices
Steering ID matches the Steering ID of a joining code that it knows. If the Steering ID
does not match the device is not allowed to continue. A steering ID of length zero
means allow all devices to attempt to join.
4. Both devices use the Shared Secret to choose the same generator of an elliptic curve.
This choosing algorithm allows for a zero length Shared Secret. Both devices then
independently choose a random number between zero and the number of elements of
the curve. We are then essentially doing Diffie-Hellman key exchange using the
generator as the common base. If both sides generate the same number we will know
that both sides started with the same generator and we will now have a large random
number to use as a basis for a symmetric encryption key a passive attacker will have no
knowledge of.
a. Let those random numbers be A and B and the generator of the curve be G. ‘^’
shall mean exponentiation. The joining device sends G^A to the network and the
network sends G^B to the joining device. The joining device knows A and takes
the G^B it just received and calculates (G^B)^A = G^(BA) = G^AB. Likewise the
network can calculate (G^A)^B = G^(AB). A passive attacker, even if he now uses
brute force to guess G, will only know G, G^A and G^B.
b. Based on the type of network the network now sends information uniquely
identifying it and any network layer keys to the joining device.
c. The joining device on confirming it can decrypt the network information knows it
is now successfully joined to the network. It then sends a deprecate Joining
Code message to the network.
ZigBee Alliance New Feature Request Form
Page 3 of 9
Confidential: For Alliance Members Only
NFR - Unified Joining Process –
14-0159-01
d. The network receives the deprecate Joining Code message and removes that
joining code from its list of joining codes
Variations
No Joining Code
Low security devices that give obvious feedback that they have joined the correct network (e.g.
light bulbs) could use the zero length Joining Code. These devices would still do the key
exchange step and create a secure key known only by the network and the light. If an active
attacker was present the attacker could perform a man-in-the-middle attack but the
convenience of the joining experience outweighs the risk.
Short Shared Secret
This is likely the most common joining method for devices of medium importance where only
one device is being added to the network at a time and there likely are not multiple networks
allowing devices to join at the same time.(e.g. home owner outdoor temperature sensors,
factory adding energy monitors). Here the Joining code could be /1234/. Such a device will look
for any network to join. To prevent a brute force attack on the Shared secret the device and the
network will both only allow a small number of join attempts. If after this small number of
attempts the devices have failed to agree on a new key no further joining attempts will be
possible without an person intervening and re-permitting joining on the device and the network.
Continuously Joining Device
A device being installed to a network where the network is controlled remotely may want to be
continuously attempting to join a network (e.g. a utility controlled load control device for a pool
pump, utility capacitor bank switch, remote sensors). In such a case a long Steering Code is
used. Thus the device could be looking for a network to join for hours or days and it might see
many networks that are permitting joining but only the network that knows its Steering ID will
allow the device to attempt to join.
Joining Code Entered on the Joining Device
Some embedded devices will have a limited user interface and want to join a network with an
even more limited interface (e.g. a smart thermostat like the Nest attempting to join a WiFi
network). In this case the WiFi router would have a Joining Code such as 98/222222/34. The
joining code would be entered on the thermostat and the router and thermostat would be told
to start joining. The thermostat will only join the WiFi network and even though the router
always uses the same shared secret the risk, even if multiple devices are allowed to join it, is still
very low that an attacker could compromise the network.
Limitations and Criticisms
Requires elliptic curve library
ZigBee Alliance New Feature Request Form
Page 4 of 9
Confidential: For Alliance Members Only
NFR - Unified Joining Process –
14-0159-01
Does not explicitly prove the identity of the devices involved
A malicious active attacker can:
 Perform man-in-the-middle attacks if no shared secret is present,
 Can use up the joining attempts of devices with Shared Secrets and require human
intervention.
Scope and
Purpose
Limitations of
the current
version
This Joining method is to replace the current joining methods for profile interoperability. The
new joining method exceeds the requirements of all the existing profiles.
HA and ZLL Joining method (using well known key)
 Lacks any real security
 Lacks steering – devices can accidentally join the wrong network and network will
accept unauthorized devices.
Install Code – without CBKE
 Codes of 52 digits are hard to print on devices
 Codes are hard to read and communicate accurately by humans
 MAC address is not protected by the CRC
 48 bit Code is insecure (64 bit is on the edge)
 Not symmetric – the code can only go from the joining device to the network
SE (install code with CBKE)
 Requires a Certificate Authority
 Computationally expensive – each device performs 3 Elliptic curve operations
 Potential for devices to get stuck in a two generals like problem where one device
thinks it has joined but the other side doesn’t.
Will this
features be
mandatory or
optional?
Affected TSC
and Work
Groups
MANDITORY – this method is being proposed as the common joining method for all ZigBee
devices.
Does this affect
Base Device
operations?
Does this affect
existing
application
clusters,
commands,
Yes – Steering, joining
Profile interop
Foundation
ZigBee Pro
No – only affects joining.
Yes – the joining would now result in a secure APS link key that would be acceptable by SE
networks so HA devices would be able to access SE clusters directly.
ZigBee Alliance New Feature Request Form
Page 5 of 9
Confidential: For Alliance Members Only
NFR - Unified Joining Process –
14-0159-01
etc.?
Will this affect
interoperability?
Will this be
backward
compatible?
YES
YES – this is a new joining method
NO – this will not affect the joining experience for many users. For secure networks there will
still be out of band information that needs to be passed (although it is shorter), for EZ mode
users the zero length joining code would be used so the experience would be the same.
Technical
Requirements
ZibBee Pro needs a way to pass a message from the joining device to the network.
All devices will need the Elliptic curve library.
Related
Documents
[List any other related documents check into the ZigBee Alliance document management system]
Supporting
Alliance
members
[List the Alliance members that are requesting this new feature]
Effort
Participants
Energate
Rainforest Automation
Develco
Schneider Electric
Silabs
Sensus
If necessary, please contact the chairs of relevant work groups and secure time to discuss in
order to recruit participants or develop support for the proposed NFR.
Once an author believes the proposed NFR is complete and has sufficient support, please submit
for approval to the TC Chair and the Alliance Marketing lead.
To be completed by TC based on Marketing action
Marketing
Review
Approved by
Marketing?
When?
[ YES/NO – Date]
Comments
Initial TC
Review
To be completed by TC
Approved by TC? [ YES/NO – Date]
When?
ZigBee Alliance New Feature Request Form
Page 6 of 9
Confidential: For Alliance Members Only
NFR - Unified Joining Process –
14-0159-01
Actions from TC
review
ID
Description
Target Completion Date
Feature ID
Assigned
Champion
[Person, Organization, e-mail address]
Priority
[High / Medium / Low]
Affected TSC
and Work
Groups
Affected TSC and WG:
[Enter all possible working groups that may be affected by this new feature]
TC to forward to affected TSC or WGs for review.
TSC or Working
Group Review
To be completed by TSC or WG. Section should be duplicated if multiple groups are affected.
Approved by TSC [ YES/NO – Date]
or WG? When?
Interfaces to
other affected
groups
Where work
should be
performed?
[Work Group(s) affected and description of required interfaces.]
[List existing task groups or work groups or recommendations for new groups.]
Deliverables and
Actions to
Realize
Deliverables
Describe major milestones of development including spec text delivery date, ballots for
0.7, test plan development, interoperability testing, ballots for 0.9, SVE testing etc.
ID
Description
Target Completion Date
[1]
[e.g. Deliverable X]
[1.1] [e.g. Freeze specification for Deliverable X]
[2]
[e.g. Deliverable Y]
Additional
Comments
[Comments related to interoperability, backward compatibility or similar issues should be noted
here.
Chairperson(s) of work group(s) to refer back to TC for second review
Second TC
ZigBee Alliance New Feature Request Form
Page 7 of 9
Confidential: For Alliance Members Only
NFR - Unified Joining Process –
14-0159-01
Review
Approved by TC? [ YES/NO – Date]
When?
Actions from TC
review
ID
Where will the
work be done?
[Name of group and work group where will will be performed.]
New Task
groups or Work
Groups Created
[List of work groups, document containing scope and charter]
Feature
Creation
Documents &
CCBs for
Approval by TC
Final TC Review
Description
Target Completion Date
Once specification, test plan, PICs are created, they must be submitted for final TC review.
??? Suggest deleting this section. Don’t think this form should be a project tracking thing.
Should be covered by normal work group processes and minutes.
Document or CCB #
Title
Description
This section to be completed by TC during final review.
Approved by TC? [ YES/NO – Date]
When?
Actions from TC
Review
ID
Description
Completion date
of errata and
CCBs
[Date]
ZigBee
specification
where feature is
[ZigBee specification release containing this new feature]
ZigBee Alliance New Feature Request Form
Target Complete Date
Page 8 of 9
Confidential: For Alliance Members Only
NFR - Unified Joining Process –
14-0159-01
included
Additional
Comments
ZigBee Alliance New Feature Request Form
Page 9 of 9
Confidential: For Alliance Members Only
Download