3

我想从小米 Aqara 交换机中解密 Zigbee 包。这是我在网络上嗅探到的原始加密帧:

原始加密帧

61 88 64 47 24 00 00 8A 5C 48 02 00 00 8A 5C 1E 5D 28 E1 00 00 00 01 3C E8 01 00 8D 15 00 01 00 01 12 00 04 01 01 62 18 C3 0A 55 00 21 01 00 AC 4C 76 AF 8A FB

这是相同的解密帧(使用Ubiqua解密):

解密帧

61 88 64 47 24 00 00 8A 5C 48 02 00 00 8A 5C 1E 5D 28 E1 00 00 00 01 3C E8 01 00 8D 15 00 01 EA 59 DE 1F 96 0E EA 8A EE 18 5A 11 89 30 96 41 4E 05 A2 43 8A FB

这是详细的相同框架:

MAC Header :    61 88 64 47 24 00 00 8A 5C
MAC Payload:    48 02 00 00 8A 5C 1E 5D
NWK Aux Header: 28 E1 00 00 00 01 3C E8 01 00 8D 15 00 01
NWK Payload:    00 01 12 00 04 01 01 62 
APS Payload:    18 C3 0A 55 00 21 01 00 
NWK MIC:        AC 4C 76 AF 
MAC Footer:     8A FB

我也知道 ZigBee 网络密钥:

AD:8E:BB:C4:F9:6A:E7:00:05:06:D3:FC:D1:62:7F:B8

我想写一个解密包的代码,但我不知道该怎么做。我知道使用的算法是 EAS-128,我尝试了 cryptii 之类的在线工具,但我无法输出上面提供的解密帧。

我也不知道应该使用哪个版本(CBC、CFB、OFB、CTR、GCM、ECB),也不知道什么是初始化向量 IV。

欢迎任何解释、使用在线工具的工作解决方案或用 Python、node.js、PHP 或 C/C++ 编写的代码。

4

1 回答 1

2

该算法为 AES-128-CCM*,详见 ZigBee 规范的第 4.3.1.1 节附件A。

问题中框架的详细答案:https ://lucidar.me/en/zigbee/zigbee-frame-encryption-with-aes-128-ccm/

于 2021-02-19T08:39:30.400 回答