RPL安全特性的实现与评估
立即解锁
发布时间: 2025-08-22 01:55:42 阅读量: 1 订阅数: 4 


自组织网络与无线技术会议论文集2017
# RPL安全特性的实现与评估
## 1. RPL协议概述
IPv6低功耗有损网络路由协议(RPL)是一种专注于资源受限设备和有损无线环境的IPv6距离矢量路由协议。RPL假设大部分流量是上行的,即指向作为边界路由器的单个节点。下行流量(由边界路由器生成并指向其他节点)被认为是零星的,节点到节点的流量则很少。
RPL构建并维护一个用于上行数据传输的逻辑拓扑,即面向目标的有向无环图(DODAG)。在DODAG中,每个节点都有一组邻居(父节点集),这些邻居是上行数据传输的候选节点。在父节点集中,会选择一个节点作为首选父节点,用于上行数据转发,其他父节点则作为备用。
DODAG以一个称为DODAG根的单节点为根,所有上行数据都指向该根节点。DODAG根也是其他节点的边界路由器,它通过发送DODAG信息对象(DIO)消息来触发网络形成。初始时,每个非根节点监听DIO消息,收到DIO消息后,节点使用消息中包含的信息加入网络。加入网络后,节点开始发送DIO消息,以宣传其存在和到根节点的距离。在常规操作中,DIO消息的发送由Trickle算法调节,该算法旨在通过最小化冗余消息和动态调整传输速率来降低节点的功耗。可以通过DODAG信息请求(DIS)消息异步请求发送DIO消息,例如在网络形成期间加速节点加入过程或在常规网络操作中从错误中恢复。所有RPL消息(DIO、DIS等)都是类型为155的ICMPv6消息。
## 2. RPL安全机制
### 2.1 安全模式
DODAG可以在以下三种安全模式之一下运行:
- **无安全模式**:RPL消息以明文形式发送,没有任何安全保护。
- **预安装模式**:RPL消息通过基于密码学的安全机制进行保护,使用假设在每个节点启动时已经存在的密钥。
- **认证模式**:RPL消息以与预安装模式相同的方式进行保护,但节点在经过认证过程后从某个密钥管理机构接收密钥。
在本文中,预安装模式和认证模式统称为“安全模式”。
### 2.2 安全服务
RPL规范定义了以下安全服务:
- **数据机密性**:确保路由信息不被未授权实体披露。
- **数据真实性**:确保路由控制消息在传输过程中不被修改。
- **重放保护**:确保丢弃路由控制消息的恶意重复副本。
如果DODAG在安全模式下运行,所有RPL消息都将受到保护。安全的RPL消息遵循特定的格式,消息体之前有一个安全部分。ICMPv6报头的代码字段确定RPL消息的类型,安全部分的算法字段指定用于认证和加密消息的算法套件。目前,仅支持使用AES - 128的CCM(带CBC - MAC的CTR)算法。CCM是一种128位块密码的操作模式,通过结合CTR(计数器)加密操作模式和CBC - MAC(密码块链接消息认证码),可以同时提供机密性和真实性。LVL位(安全级别)指定消息是仅经过认证还是同时经过认证和加密,以及MAC字段的长度。密钥标识符字段用于标识所使用的加密密钥,计数器字段是每个发送的RPL消息递增的值,用于CCM的输入和实现重放保护机制。
### 2.3 一致性检查消息
为了从节点丢失当前计数器值的情况中恢复(例如在重启后),RPL规范预见了一致性检查(CC)消息。CC消息用于向目标节点通知其计数器字段的最后有效值,并发起通用的挑战 - 响应握手。CC消息的格式包含目标计数器字段、CC随机数和R位等,RPL实例ID和DODAG ID字段用于在存在多个RPL实例或同一RPL实例中有多个DODAG的情况下标识发送节点所属的DODAG。
## 3. 实现方案
### 3.1 实现概述
我们提供了一个符合标准的Contiki实现的RPL安全机制,可从公共存储库获取。该实现扩展了标准模块ContikiRPL,有两种可能的配置:
- **轻安全配置**:仅实现数据机密性和数据真实性服务。
- **全安全配置**:除了实现数据机密性和数据真实性服务外,还实现重放保护服务。
两种配置都使用假设在每个节点启动时已经存在的网络范围加密密钥,实现了RPL规范预见的预安装安全模式。不过,该实现也可适应认证安全模式,在认证安全模式下,节点从某个密钥管理机构接收密钥。认证模式相对于预安装模式会损失一些性能,因为节点在加入网络时还需要经过认证过程。因此,本文中呈现的性能也代表了认证模式的最佳情况性能。
### 3.2 威胁模型
- **轻安全配置**:防御试图窃听合法RPL消息以推断拓扑结构,或伪造恶意RPL消息以成为网络一部分并充当内部攻击者的对手。这种配置可以应对一系列简单但具有破坏性的路由攻击。
- **全安全配置**:除了防御轻安全配置所针对的对手外,还防御试图重放合法RPL消息以修改拓扑结构的对手。例如,对手可以在根节点无法直接到达的网络区域重放根节点最初发送的合法DIO消息,使受害节点认为它们与根节点有直接连接,从而导致其上行通信中断。
### 3.3 轻安全配置
轻安全配置只是在每个RPL消息中包含一个安全部分,通过消息认证码(MAC)提供完整性,通过加密提供机密性。在这种配置下,节点获取第一个首选父节点的过程(加入过程)与无安全模式类似,只是DIO消息是安全的。加入操作的流程如下:
1. 已加入节点发送多播安全DIO消息。
2. 新节点接收该消息,检查安全DIO消息的MAC有效性,并可能对其进行解密。
3. 新节点使用DIO消息中携带的信息选择已加入节点作为父节点,完成加入过程。
已加入节点发送安全DIO消息是周期性的,由Trickle算法调节。可以通过安全DIS消息异步请求发送安全DIO消息。
### 3.4 全安全配置
全安全配置与轻安全配置一样,通过加密提供完整性和机密性。此外,它通过检查传入消息安全部分的计数器字段来提供重放保护。每个节点为每个邻居维护一个计数器水印,包含从该邻居
0
0
复制全文
相关推荐









