我想从 Xiaomi Aqara switch 解密 Zigbee paquets .这是我在网络上嗅探到的原始加密帧:
原始加密帧
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 网络 key :
AD:8E:BB:C4:F9:6A:E7:00:05:06:D3:FC:D1:62:7F:B8
我想写一个解密 paquets 的代码,但我不知道该怎么做。我知道使用的算法是 EAS-128,我尝试在线工具,如 cryptii , 但我无法输出上面显示的解密帧。
我也不知道应该使用哪个版本(CBC、CFB、OFB、CTR、GCM、ECB),也不知道初始化向量 IV 是什么。
欢迎任何解释、使用在线工具的工作解决方案,或使用 Python、node.js、PHP 或 C/C++ 编写的代码。
最佳答案
算法是 AES-128-CCM*,详见 section 4.3.1.1和 annex A of the ZigBee specification .
问题中带有框架的详细答案:https://lucidar.me/en/zigbee/zigbee-frame-encryption-with-aes-128-ccm/
关于encryption - 解密 ZigBee paquets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66156637/