CoAP协议学习笔记 3.1 CoAP协议翻译 加密基础介绍

CoAP协议学习笔记可点此查看

1 前言

在之前的学习中,没有过多关注加密。但实际部分厂家的IoT平台(阿里云、OneNET)已经启用了相关安全处理,有必要深入学习下。

在 CoAP 协议 RFC7252 的第9章 Securing CoAP ,即是本译文内容。

2 协议翻译

本节描述了 CoAP 的 DTLS 绑定。

在配置(provisioning)阶段,要提供给CoAP设备它必须的安全信息,包括密钥资料和访问控制列表。本规范定义了RawPublicKey模式中的配置处理。在配置阶段结束时,设备将处于四种安全模式之一,同时具有给定模式的如下信息。NoSec和RawPublicKey这两个模式在规范中是强制执行的。

  • NoSec模式:没有协议级别的安全性(DTLS被禁用)。适当时候才使用底层加密的相关安全技术。有关IPsec的使用,请参阅
    [IPsec-CoAP]。针对某些受限设备的链路层,也提供链接层加密,这可能需要适当的密钥管理。

  • PreSharedKey模式:DTLS已启用,有一个预共享密钥列表[RFC4279],每个密钥都包含一个列表,表示它可以与哪些节点的列表进行通信,具体见9.1.3.1节。在极端情况下,每个节点可能各有一个密钥来进行通信(1:1节点/密钥比率)。相反,如果有两个以上的实体共享一个特定的预共享密钥,这个密钥只能让这个实体作为该组的一个成员进行ID验证,而不能让整组一起验证。

  • RawPublicKey模式:DTLS已启用,设备具有无需认证的非对称密钥(一个原始的公共密钥),验证使用[RFC7250]中描述的机制,见第9.1.3.2节。该设备还具有根据公钥计算的ID以及可与之通信的节点的ID列表。

  • Certificate模式:DTLS已启用,并且该设备具有一个非对称密钥对,并带有X.509证书[RFC5280],该证书将其绑定到其主题,并由第9.1.3.3节中所述的一些通用信任根进行签名。 该设备还具有可用于验证证书的根信任锚的列表。

在“NoSec”模式下,系统只需通过普通的UDP over IP发送数据包,同时指示“coap”协议 scheme 和 CoAP 默认端口。 只有让攻击者不能通过CoAP节点发送或接收来自网络的数据包,才能保护系统安全; 请参阅第11.5节了解这种方法的其他复杂情况。

其他三种安全模式使用DTLS实现,同时指示“coap”协议 scheme 和 DTLS保护的CoAP 默认端口。结果是一个安全关联,可以用来进行ID验证(在安全模式范围内),并基于此ID验证来授权通信伙伴。CoAP本身不提供用于认证或授权的协议原语;在需要时,可以通过通信安全(即IPsec或DTLS)或通过对象安全(在有效载荷内)来提供。需要特定操作才能授权的设备预计需要以下两种安全形式之一。在涉及中间人的情况下,通信安全通常只在中间人是信任关系的一部分时才起作用。CoAP没有提供转发的方式来处理不同级别的授权,比如客户端可能有一个中间人来转发中间人或原始服务器的消息 - 因此可能需要在第一中间人执行所有授权。

4 END


猜你喜欢

转载自blog.csdn.net/iotisan/article/details/80309658