19. 安全考虑 (Security Considerations)
19.1. 概述 (Overview)
从安全角度看, RPL 网络与任何其他网络没有区别. 它们容易受到被动窃听攻击, 并且在参与通信不需要物理接入线缆时, 甚至可能受到主动篡改. ad hoc 网络的本质及其成本目标施加了额外安全约束, 也许使这些网络成为最难保护的环境. 设备成本低, 在计算能力, 可用存储和功耗方面能力有限; 不能总是假设它们具备可信计算基础或高质量随机数生成器.
通信不能依赖固定基础设施的在线可用性, 并且可能涉及此前从未通信过的设备之间的短期关系. 这些约束可能严重限制密码学算法和协议的选择, 并影响安全架构的设计, 因为需要谨慎处理设备之间信任关系的建立和维护. 此外, 电池寿命和成本约束严格限制了这些网络可承受的安全开销, 而在更高带宽网络中, 这远不是同等程度的关注点. 这些安全架构元素中的大多数可以在更高层实现, 因此可被视为超出本规范范围. 然而, 对这些更高层的接口需要格外谨慎.
本标准中的安全机制基于对称密钥和公钥密码学, 并使用由更高层过程提供的密钥. 这些密钥的建立和维护超出本规范范围. 这些机制假定密码学操作具有安全实现, 并且密钥材料具有安全且真实的存储.
所规定的安全机制提供以下安全服务的特定组合:
数据机密性 (Data confidentiality): : 保证所传输信息只披露给其预期接收方.
数据真实性 (Data authenticity): : 保证所传输信息的来源 (并由此保证信息在传输过程中未被修改).
重放保护 (Replay protection): : 保证能够检测到所传输信息的重复副本.
及时性 (延迟保护) (Timeliness (delay protection)): : 保证所传输信息被及时接收.
实际提供的保护可以按每个分组进行调整, 并允许不同级别的数据真实性 (在需要时尽量减少所传输分组中的安全开销), 以及可选的数据机密性. 当需要非平凡保护时, 始终提供重放保护.
重放保护通过在分组保护过程中使用非重复值 (CCM nonce), 并存储某些状态信息 (发起设备以及最后从该设备收到的 CCM nonce 计数器) 来提供. 这些信息允许检测该特定 CCM nonce 值此前是否已由发起设备使用. 此外, 在那些板载松散同步时钟的设备之间提供所谓的延迟保护. 可接受时间延迟可以按每个分组进行调整, 并允许不同延迟 (以便支持通过多跳通信路径传输的分组具有更长延迟).
密码学保护可以使用两个对等设备之间共享的密钥 (link key), 或一组设备共享的密钥 (group key), 从而在密钥存储和密钥维护成本与所提供的密码学保护之间允许一定灵活性和应用特定权衡. 如果 group key 用于点对点通信, 则只提供针对外部设备的保护, 而不提供针对共享密钥组中潜在恶意设备的保护.
数据真实性可以使用基于对称密钥或基于公钥的技术提供. 使用基于公钥的技术 (通过签名) 时, 可以佐证所传输信息的唯一发起方; 而使用基于对称密钥的技术时, 数据真实性只相对于共享密钥组中的设备提供. 因此, 在需要比单独基于对称密钥的认证技术所能提供的认证更细粒度的场景中, 例如组通信 (广播, 组播) 或需要不可否认性的场景, 基于公钥的认证可能有用.