查看: 888|回复: 0

[技术交流] mesh 分层架构-Network layer

[复制链接]

8

主题

12

帖子

33

积分

助理工程师

Rank: 1

积分
33
发表于 2020-5-27 13:43:59 | 显示全部楼层 |阅读模式
Network layer:
network layer 从 lower transport layer 接收到数据后和其他字段进行组合并进行加密和混淆后传给 Bearer layer。
mesh network PDU格式在表3.7中定义,并在下面的图3.7中进行说明:

字段分析:IVI:

IVI field 为 IV index 的 最低有效位。


NID:

NID field包含一个 7-bit network identifier,由 Network Key 生成。


CTL:
CTL field 是 1 bit 的值,用于确定消息是 Control Message 还是 Access Message同时决定 NetMIC 的大小,  如表3.8所示:
   
TTL:

TTL field 是一个 7 bit 字段,决定中继的次数。 定义了以下值:



      • 0 =尚未中继,将不会中继
      • 1 =可能已经中继,但是不会中继
      • 2至126 =可能已经中继并且可以中继
      • 127 =尚未中继,可以中继

SEQ:
SEQ field 是一个 24 bit 整数,当与IV索引组合时,它应该是此节点发起的每个新 Network PDU 的唯一值。

SRC:
SRC field 是 16 bit 的值,用于标识 此Network PDU 源自哪个 element 。 该地址应该是unicast address。

DST:
DST field 是 16 bit 的值,用于标识此 Network PDU 所针对的一个或多个元素。 该地址应该是unicast address, group address, or virtual address。

TransportPDU:

TransportPDU  field 由 lower transport layer 设置,并且不应由 Network layer 更改。

NetMIC 为 32 bit 时是 1~16个字节;NetMIC 为 64 bit 时是 1~12个字节;


NetMIC:
NetMIC field 是一个 32 bit 或 64 bit 字段(取决于CTL位的值),用于验证DST和TransportPDU未被更改(原因看请看 Network layer 认证和加密)。


Network layer 认证和加密:
使用AES-CCM对 DST 和 TransportPDU 进行加密和身份验证。
使用从 network key 派生的 Encryption Key 对所有 Network PDU 进行加密。
network layer 加密的示意图如图3.41所示。


网络层混淆:
为了混淆 Network Header(CTL,TTL,SEQ,SRC),这些值应与 加密函数e的结果 组合,以防止被动窃听者通过侦听 Network PDU 来确定节点的身份 。

为了混淆 Network PDU,将已经加密的 Network PDU 的前六个字节 与 IV index 和 Privacy Key 结合在一起。

已加密的 Network PDU 的前六个字节包括EncDST,和 EncTransportPDU 和/或 NetMIC字段的四个字节。 这些字节称为 PrivacyRandom value 。

Privacy Key  从 Network key 中派生密钥,即使 Privacy Key 被泄露,也可以保护 Network key。
IV index 与 PrivacyRandom 值连接,并与 Privacy Key 一起用作 加密功能e的输入 。 其输出称为PECB值。

然后,将PECB值的前六个字节与 TTL,SEQ 和 SRC 异或,然后成为 ObfuscatedData 。

NID / IVI字节, ObfuscatedData,EncDST,EncTransportPDU和NetMIC的组合成Network PDU 。

network layer obfuscation 的图示如图3.42所示。



反转时,将执行以下操作:

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表