有没有什么方法可以保证COAP通过UDP数据包发送的消息?我可以实现的任何开源项目。此消息交换与服务器进行,客户端将是嵌入式设备。因此加密算法也必须能够在其上运行。我也遇到了cyassl。但问题是它使用TCP协议而不是UDP?有什么想法吗?
谢谢
答案 0 :(得分:4)
DTLS可用于保护CoAP单播消息,但是,CoAP多播消息不受现有DTLS协议的保护。因为有效的密钥分发问题尚未解决。这意味着多播消息的标头可能会暴露给嗅探器工具,包括URI路径。
如今,有一个名为OSCoAP的协议可能对此有所帮助。它仍在实施中。
这是OSCoAP最新的IDTF文件草案:https://tools.ietf.org/html/draft-ietf-core-object-security-02
但是,有人对此表示怀疑。它提到OSCoAP将在第4节中加密URI路径。然后密钥分发仍然可能是多播中的问题。但它并没有提到任何困难。但是对CoAP消息安全感兴趣的人可以查看OSCoAP。
答案 1 :(得分:2)
保护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)
答案 2 :(得分:0)
发送前加密数据让您不必担心传输协议(即UDP,TCP等)。当然,您需要解密服务器上的数据。
如果您需要传输层安全性,则应该查找DTLS实现。 DTLS是一种SSL / TLS,旨在通过UDP和类似的传输运行。不过,我不确定是否存在受约束设备的DTLS实现。