【ZigBee 系列】| 大解密 ! 带你了解 NXP Zigbee 3.0 设备抓包数据的含义


大家好,又见面了,之前出了关于 ZigBee 抓包的工具和方法,很多亲们表示抓到了,不过抓出来的一长溜一长溜的数据是啥意思呢?
 
今天我们就针对抓出来的数据进行详解, 那个啥,小本本~~记起来!
 

对 Zigbee 通讯的设备进行数据抓包,能够看到设备实际传输数据内容,有利于分析Zigbee 网络的问题。下图是新设备入网过程 Ubiqua 捕获到的多个数据包。以 Transport Key 数据包进行分析为例。



在图 1 中可以看到 Transport Key 数据包是来自 APS 层,由节点网络地址 0X00 传输给节点网络地址 0X0921 。Zigbee 3.0 网络架构分为: PHY 物理层、 MAC 数据链路层、NWK 网络层、 APL 应用层( APS 属于应用层)。抓包无法体现 PHY 层,所以下面就 MAC 、NWK 、APS 层来分析 Transport Key 数据包。

一、 MAC 层分析 Transport Key

MAC 层的帧格式有 4 种:Beacon 、Data 、Acknowledgment 、MAC command ,每种类型帧格式有差异。MAC 中一般帧格式如下图:

MHR 、MAC Payload 、MFR 对应抓包数据内容:

 

1.1 MAC Frame Control 包含信息如下图:

1. Frame Type: MAC 帧类型 ,Data 表示这是 MAC 的 Data 帧。 
2. Security Enabled: No 表示该帧数据在 MAC 层不受安全加密。
3. Frame Pending: 如果发送帧的设备有更多的数据给接收者,则设置为 1 位。否则,此子字段应设置为零。
4. Acknowledgment Request: 指定接收方设备在接收到数据或 MAC 命令帧时是否需要确认,此帧为需要。
5. Intra- PAN: 指定当源地址和目标地址同时存在时,是否只发送包含一个 PAN ID 字段的 MAC 帧。此帧是。
6. Destination Addressing Mode: 表示该帧目标节点使用 16 位短地址。
7. Source Addressing Mode: 表示该帧发送节点使用 16 位短地址。

1.2 Sequence Number:

防止重复帧的处理。此值将为每一个新传输增加一。

1.3 Destination PAN Identifier:

表示目标节点所在 PID 是 0XBA74 。

1.4 Destination Address:

目的节点地址 0X0921 。

1.5 Source Address:

源节点地址 0X0000 。

1.6 MAC Payload:

此处为 NWK 层中 Transport Key 数据。


二、 NWK 层分析 Transport Key

NWK 层的帧格式有 2 种:Data 、NWK command ,每种类型帧格式差异。NWK 中一般帧格式如下图:

NWK header 、Payload 对应抓包数据内容:


2.1 Nwk Frame Control 包含信息如下图:



1. Frame Type: 此帧为 Date ,表示是 NWK data 帧。
2. Protocol Version: 网络层协议版本号。此帧 2 。
3. Discover Route: 是否使用控制路由发现。此帧是。
4. Multicast Flag: 如果帧是单播或广播帧,它的值为 0 ;如果是多播帧,它的值为 1 。此帧数据不是多播传输。
5. Security Enabled: NWK层是否需要安全保护。 No 表示不需要安全保护。
6. Source Route: 出现路由子帧为 1,否则为 0 。

2.2 Destination IEEE Address Include:

NO 表示该 NWK 帧不包括目的节点 IEEE 地址。

2.3 Source IEEE Address Include:

NO 表示该 NWK 帧不包括源节点 IEEE 地址。

2.4 Destination Address:

目的节点短地址 0X0921 。

2.5 Source Address:

源节点短地址 0X0000 。

2.6 Radius:

设备将数据发送到网关,途径路由转发,该值就会被减 1 。目前为 0X1E 。

2.7 Sequence Number:

用于防止接收重复帧。此值将为每一个新传输增加一。

2.8 NWK Payload:

此处为 APS 层中 Transport Key 数据。



三、 APS 层分析 Transport Key

APS 层的帧格式有 3 种: Data 、command 、acknowledgement ,每种类型帧格式有差异。APS 中一般帧格式如下图:

APS header 、APS Payload 对应抓包数据内容:


3.1 APS Frame Control 包含信息如下图:

1. Frame Type: APS 帧类型。此处是 APS Command 帧,表示发送命令。
2. Delivery Mode: 传输方式。该数据包是单播方式传输到目的节点。
3. Ack Format: 控制 acknowledgement frame 格式。0 表示该帧的 Acknowledgement 帧中出现 destination endpoint 、 cluster identifier 、profile identifier 、source endpoint 。1 ,表示不出现。
4. Security Enabled: APS 层是否需要安全保护。Yes 表示需要安全保护。
5. Acknowledgement Request: 是否需要 acknowledgement frame 。No 表示不需要目的节点发送确认。
6. Extended Header Present: No 表示该 APS 帧没有扩展帧。

3.2 APS Counter:

防止重复帧的处理。此值将为每一个新传输增加一个。

APS Aux Header: 在 Security Enabled 为 Yes 才会出现附加帧。

3.3 APS Aux Header(NWK Aux Header 与此相同)包含信息如下图:

1. Security Control :
a. Security Level: 帧的安全保护方式。None 表示不加密,不提供完整信息。
b. Key Identifier: 用于保护帧的密钥。key-transport key 是表示传输密钥加密 APS 。
c. Extended Nonce: Yes ,表示存在辅助帧的发送方地址。
2. Frame Counter: 防止重复帧的处理。此值将为每一个新传输增加一个。
3. Source Address: 辅助帧的发送方地址。该帧发送方地址: 00: 15: 8D: 00: 00: F4: D2: 62 。
4. Key Sequence: 密钥序列号。使用 Network key 才会出现 Key Sequence 。该帧使用的是 key-transport key 。

3.4 Frame Payload

1. APS Command ID: 标识正在使用的 APS 命令。这里表示发送 Transport Key 命令。
2. Key Type: 表示传输是 Standard Network Key 。
3. Key Descriptor:
a. Key: 表示 Standard Network Key 值是 59: 4A: 47: E0: 65: E6: 33: DC: 31: 42: DF: 98: BD: 5E: 4B: 14 。
b. Sequence Number: 序列号,用于防止接收重复帧。
c. Destination Address: 接收该密钥的节点地址,这里是 00: 15: 8D: 00: 00: 32: EA: 60。
d. Source Address: 发送该密钥的节点地址,这里是 00: 15: 8D: 00: 00: F4: D2: 62 。

 故 Transport Key 数据包传输网络密钥 59: 4A: 47: E0: 65: E6: 33: DC: 31: 42: DF: 98: BD: 5E: 4B: 14 。由短地址 0X0000 的节点传输给短地址 0X0921 的节点。网络密钥通过 APS 层、NWK 层、MAC 层组装成完整数据发送至目的节点,在目的节点分解包得到该网络密码。


 今天的分享就到这里,你学废了吗?如果还有其他想知道的,欢迎给我留言哦!

 

参考资料:

1. docs-05-3474-21-0csg-zigbee-specification-PRO2015.pdf
2. 802.15.4-2006.pdf


 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论