CoAP (DTLS) 连接到 Amazon Web Services (AWS) for IoT
CoAP (DTLS) connection to Amazon Web Services (AWS) for IoT
我们正在努力将网状节点连接到 Amazon Web Services。 Mesh 节点本质上是受限设备,我们无法直接在这些节点上 运行 MQTT(TCP 太昂贵)
我们的方法是将 CoAP 用于网格,但如果出于安全原因和从云端进行节点管理,我们可以将这些节点直接连接到 AWS,那将是理想的选择。
AWS 直接支持 HTTP 但不支持 CoAP。从我们收集到的信息来看,CoAP 与 HTTP 非常相似。它还使用类似的安全机制(DTLS 与 TLS)。
有人试过吗?一个简单的 CoAP 到 HTTP 代理是否有可能在 AWS 上维护 CoAP 设备和 HTTP 代理之间的安全会话?
不幸的是,我不能说出任何关于代理的信息(除了这种方法乍一看似乎有些笨拙)。
但在那之前,你能在你的网状节点上负担得起 DTLS 吗?
例如,您将需要一个又好又快的随机源。
每次握手都需要生成一个 32 字节的随机数 "cookie".
假设我们将预共享密钥和 AES128 与 CCM8 一起使用(因为没有必要使用更简单的东西):
每个 CoAP 数据包都将被加密并扩展到:
DTLS 头:13 字节
Nonce:16 字节
此外,您还需要在握手期间存储一些数据包(我不能说出确切的大小,但我想它是数百个字节)。
总之,这取决于您想要获得的安全级别。
CoAP 规范中已存在交叉代理定义CoAP specification, RFC7252, Section 10
开源项目Eclipse/Californium包含这样一个代理实现。有关详细信息,请参阅 Proxy 2, README。
我们正在努力将网状节点连接到 Amazon Web Services。 Mesh 节点本质上是受限设备,我们无法直接在这些节点上 运行 MQTT(TCP 太昂贵)
我们的方法是将 CoAP 用于网格,但如果出于安全原因和从云端进行节点管理,我们可以将这些节点直接连接到 AWS,那将是理想的选择。
AWS 直接支持 HTTP 但不支持 CoAP。从我们收集到的信息来看,CoAP 与 HTTP 非常相似。它还使用类似的安全机制(DTLS 与 TLS)。
有人试过吗?一个简单的 CoAP 到 HTTP 代理是否有可能在 AWS 上维护 CoAP 设备和 HTTP 代理之间的安全会话?
不幸的是,我不能说出任何关于代理的信息(除了这种方法乍一看似乎有些笨拙)。
但在那之前,你能在你的网状节点上负担得起 DTLS 吗?
例如,您将需要一个又好又快的随机源。
每次握手都需要生成一个 32 字节的随机数 "cookie".
假设我们将预共享密钥和 AES128 与 CCM8 一起使用(因为没有必要使用更简单的东西):
每个 CoAP 数据包都将被加密并扩展到:
DTLS 头:13 字节
Nonce:16 字节
此外,您还需要在握手期间存储一些数据包(我不能说出确切的大小,但我想它是数百个字节)。
总之,这取决于您想要获得的安全级别。
CoAP 规范中已存在交叉代理定义CoAP specification, RFC7252, Section 10
开源项目Eclipse/Californium包含这样一个代理实现。有关详细信息,请参阅 Proxy 2, README。