This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Changing default TC link key in ZBOSS

Hi,

I have been trying to experiment with the nrf5 SDK for thread and zigbee. Our product uses a NRF52840 in the form of a BL654 module and we have been using xbee S2C modules for our zigbee communication needs.

We would like to use the zigbee implementation of the nordic SDK for our product, so we can skip the xbee module and make our product simpler and cheaper in production and maintenance.

However, we have been using the xbee modules to join our coordinator modules (also xbee S2C) with a predifned TC link key per installation (KY AT command in the xbee). We would like to be able to set this link key in ZBOSS, but I cant find how that is suppose to be done. There seems to be no function for it, only to set the encryption key of the trust centre (which is not the link key).

I tried to change the define in zb_config_common.h:

//#define ZB_STANDARD_TC_KEY {0x5A, 0x69, 0x67, 0x42, 0x65, 0x65, 0x41, 0x6C, 0x6C, 0x69, 0x61, 0x6E, 0x63, 0x65, 0x30, 0x39 };
#define ZB_STANDARD_TC_KEY { 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, 0, 0, 0, 0, 0, 0, 0, 0 }; // TEST KC link key

But that didnt seem to do anything. Our product joins just fine on this started network, using this link key:

But the output of the NRF just says it cant do network steering:

When I restart the network using the default key 5A6967426565416C6C69616E63653039, it works just fine with the NRF:

Parents
  • Hi,

    I don't have experience with Xbee modules but  from the Zigbee specification: "The default value for the centralized security global trust center link key shall have a value of 5A 69 67 42 9923 65 65 41 6C 6C 69 61 6E 63 65 30 39 (ZigBeeAlliance09)."

    The define ZB_STANDARD_TC_KEY in zb_config_common.h is a pre-compiled parameter and is set to this value based on the Zigbee specification, it's not possible to change.

    Best regards,

    Marjeris

  • The default link key yes, that shall be ZigBeeAlliance09. It also is allowed (zigbee spec) to use a pre-configured unique link key, that is known by the trust centre and joining node.

    I am trying to use a preconfigured key instead of the defined ZigBeeAlliance09 default key for joining.

    It seems to me that bit is not supported at the moment?

  • Hi Mark,

    Do you know if the Xbee devices form a centralized or a distributed network?

    For distributed networks we have the following API function zb_zdo_set_tc_standard_distributed_key() to set a custom distributed key.

    For centralized network is my understanding that the TC is responsable for establishing a random network key for each device as they join, using the default global link key or from a pre-configured unique link key derived from "install code".

    We have support for using "install code" for deriving a pre-configured TC link ke using the install code API.

    Take a look at the 'Security' section in the Zigbee stack API overview in the infocenter.

    These are the methods supported in our stack.

  • We use TC for random network keys and use a pre-configured unique link key for every installation (coordinator/end device combi)

    I have read the part about the install codes, but that is a zigbee 3.0 spec option. The xbee's we have installed, can not use zigbee 3.0 as far as I know (only the newer xbee 3 devices can).

  • Hi again,

    To summarize my previous answers:

    For centralized networks ZBOSS uses global link key defined with ZB_STANDARD_TC_KEY, set by default to ZigbeeAlliance09. There is no API to configure this, it will require the ZBOSS libraries to be recompiled.

    An unique link key can be generate in a similar way when using install codes, but indeed this seems to be a Zigbee 3.0 feature.

    For distributed networks you can set a custom distributed link key by calling zb_zdo_set_tc_standard_distributed_key().

    These are the only 3 types of link keys we support with the ZBOSS stack. I think this is in accordance to the Zigbee Base Behaviour Specification (section 6.3 Link Keys).

  • Thank you for your answer. I think we are going to change the way we use our installations, based on this information.

Reply Children
No Data
Related