1. TC gets the install code and the 64-bit IEEE address of the device that will use this install code to join, via any user interface (serial, display and switches, etc.). The install code must be physically provided with the joining device. 2. TC validates the CRC of the install code introduced. If this is valid then a TCLK entry is added into the TC with the derived key and the address of the corresponding device. 3. The joining device is instructed to use its install code to generate the corresponding TCLK. 4. The network is open by any means. 5. The joining device performs association and the Trust Center delivers the network key encrypted in APS layer with the install code derived key. 6. After this, the joining device must perform the update of its TCLK as BDB specification requires.
Zstack 3.0 引入了install code 生成TCLK的机制, 以上是开发文档中10.5.2 关于install code 工作流程的描述。
字面理解 如下:
1. TC 端 通过串口,显示 或者按键等手段 获取入网设备的install code 和64bit IEEE地址
2. TC 端对install code 进行CRC确认,确认通过,在TCLK entry 中加入derived key
3. 入网设备通过 install code 产生通信用的 TCLK
4. 网络打开
5. 入网设备 完成 association 动作, TC 端分发 由derived key 进行APS 加密 的 network key 给入网设备
6. 以上操作结束后, 根据BDB specification 要求, 入网设备执行 TCLK 更新?
但有以下疑问:
1. install code 实际应用中可以是二维码或者其他形式,但 这个install code 具体是公示 贴产品外部,还是 秘密不公开,由实施人员秘密传输给TC 端?
2. TC端 加入到TC entry 的 derived key 是不是 通过install code 生成的TCLK ? 和第3步中,入网设备端 生成的 TCLK 是一样的吗?
3. 全部操作结束后,第6步 为什么还要执行更新TCLK? 这个更新的TCLK 具体是什么? 是install code 生成的那个吗?
4. 如果install 是公示的话,而生成算法都是一样的,那么是不是只要获得install code ,就可以伪装 入网从而获取到network key?
希望有具体的实例应用 可以介绍介绍?谢谢!