在这个 Zigbee 捕获中使用什么密钥来加密密钥传输?

逆向工程 加密
2021-06-16 02:35:25

我正在使用 Zigbee 系统,并且我一直在尝试获取在配对期间交换的网络密钥。我对 TI Packet Sniffer、Wireshark 和 Killerbee 的组合不太走运——它一直在失败。这种组合过去对我有用。

我安装了 Perytons-M4 的试用版,并使用我的 CC2531 USB 记忆棒捕获了配对。令我惊讶的是,这会自动恢复密钥并开始解密其余数据。

但是,在发送以交换密钥的 APS_CMD_KEY_TRANSPORT 消息中,Perytons 显示 APS 层数据实际上已经加密,使用的是我以前从未见过的密钥 (4BAB0F173E1434A2D572E1C1EF478782)

许多 Zigbee 设备的密钥是“ZigBeeAlliance09”,这里的某些通信就是这种情况,但这不是用于密钥交换的密钥。

捕获完成后,Perytons 的“密钥管理”窗口会显示“ZigBeeAlliance09”密钥以及在 APS_CMD_KEY_TRANSPORT 中发送的密钥,但不会显示用于解密 APS 数据的密钥

该设备是 Yale PIR 相机(制造商的产品页面)。我一直无法识别使用的物理 Zigbee 模块,但它们看起来像这来自 PIR这来自面板不幸的是,我无法找到一种以其他人易于阅读的方式从 Perytons 中获取数据的方法。

显示 APS 数据的加密和密钥

显示捕获期间恢复的密钥

我用过谷歌,查看了 Zigbee 规范并查看了 Perytons 文档,但找不到任何东西。有任何想法吗?

2个回答

正在使用的配置文件是什么?

家庭自动化(这是大多数设备使用的)使用“ZigBeeAlliance09”信任中心链接密钥来加密 APS_CMD_KEY_TRANSPORT 消息中的随机网络密钥。加入的设备解密 APS_CMD_KEY_TRANSPORT 消息中的随机网络密钥,然后使用网络密钥加密/解密进一步的网络层有效载荷。大多数商业嗅探器会看到 APS_CMD_KEY_TRANSPORT 消息并解密网络密钥。家庭自动化的 APS 层通常没有进一步的加密。

Light Link Profile(例如 Philips Hue)使用与 HA 相同的安全机制,但不使用公开可用的“ZigBeeAlliance09”信任中心链接密钥,而是仅向拥有通过 Light Link Profile 认证的设备的制造商提供的密钥过程。

Smart Energy 配置文件使用与 HA 相同的网络层安全机制,但具有进一步的 APS 层安全性,它使用非常安全的 certicom 证书传输的密钥(因为它通常是公用事业公司使用它进行计量并且不希望抄表被篡改和)。

问候,TC。

使用的密钥只是 ZigBeeAlliance09 的哈希值。你在你的照片中看到它很清楚。

ZigBee 使用默认密钥作为“ZigBeeAlliance09”不同哈希排列的基础。在 ZigBee 规范中查找它。