有什么方法可以保护 COAP 通过 UDP 数据包发送的消息?我可以实施的任何开源项目。此消息交换与服务器进行,客户端将是嵌入式设备。所以密码算法也必须能够在它上面运行。我也遇到了cyassl。但问题是它使用 TCP 协议而不是 UDP ?有任何想法吗 ?
谢谢
有什么方法可以保护 COAP 通过 UDP 数据包发送的消息?我可以实施的任何开源项目。此消息交换与服务器进行,客户端将是嵌入式设备。所以密码算法也必须能够在它上面运行。我也遇到了cyassl。但问题是它使用 TCP 协议而不是 UDP ?有任何想法吗 ?
谢谢
DTLS 可用于保护 CoAP 单播消息,但是,CoAP 多播消息不受现有 DTLS 协议的保护。因为高效的密钥分配问题还没有解决。这意味着多播消息的标头可能会暴露给嗅探器工具,包括 URI 路径。
如今,有一个称为 OSCoAP 的协议可能会对此有所帮助。它仍在实施中。
这是 OSCoAP 的最新 IDTF 文件草案:https ://datatracker.ietf.org/doc/html/draft-ietf-core-object-security-02
不过,也有人对此表示怀疑。它提到 OSCoAP 将在第 4 节中加密 URI 路径。然后密钥分发仍然可能是多播中的问题。但它没有提到那里有任何困难。但是对 CoAP 消息的安全性感兴趣的人可以看看 OSCoAP。
保护 CoAP 的方法是 DTLS(数据报的 TLS)
RFC 对这个主题非常清楚: https ://datatracker.ietf.org/doc/rfc7252/?include_text=1
详见第 9 节。
DTLS 就是众所周知的 TLS/SSL,但适用于在 UDP 传输上运行。
tinydtls( http://trinydtls.sf.net)是嵌入式设备的一个不错且简单的实现
对于服务器端,您可以使用 Californium 和 Scandium ( http://eclipse.org/californium )
发送前的数据加密让您不必担心传输协议(即它是 UDP、TCP 等)。当然,您需要解密服务器上的数据。
如果您想要传输层安全性,您应该寻找 DTLS 实现。DTLS 是 SSL/TLS 的一种,旨在通过 UDP 和类似的传输方式运行。不过,我不确定是否存在针对受限设备的 DTLS 实现。