Coap 服务器未授权访问 C#

Coap Server Unauthorized Access C#

我正在尝试了解 CoAP 服务器如何处理身份验证。 DTLS 似乎是唯一的选择。但是我找不到任何明确的 .NET 示例。我也在服务器端看到了关于 cookie 的提及,但仅此而已,没有更多信息。

https://github.com/chkr1011/CoAPnet 似乎是个不错的图书馆。他们也有一个客户端示例,但我找不到它的服务器示例。 Projest 似乎也有 CoAP 服务器,但是我在源代码中找不到它。

如果url已知,任何客户端都可以向服务器发送请求吗? DTLS 是要走的路吗?在 C# 中是否有任何 server/client DTLS 示例?

如果 java 服务器也有帮助,请查看 eclipse/californium。我们 运行 一个位于“californium.eclipse.org” 的 sonbox,如果你想“连接”一个客户端,你可以只使用“openssl” PSK 演示凭据“Client_identity”和“secretPSK”。

Can any client send requests to the server if url is known?

这取决于协议变体。没有加密(普通coap),是的。然后一些项目在请求中使用“令牌”来验证请求(参见 ThingsBoard)。使用加密(DTLS、coaps),您需要有效的凭据,例如PSK(如上所述)、x.509 证书或原始 Public 密钥证书。还有一些设置,其中只有服务器使用 x.509 验证自己,然后客户端使用已经加密的通信通过其他机制进行验证(例如 username/password,与模型非常相似,主要用于 https ).

最痛苦的通常是寻找实现,可以用intended/wanted的方式。也许某些项目可以帮助您调整实施。

Is DTLS the way to go?

在我看来,是的。 OSCORE(有效载荷加密)的替代方案目前正在开发中,我们将拭目以待,这是否会改变游戏规则。

Is there any server/client example of DTLS in C#?

我不知道。也许您会问您已经找到的项目。或者在这里问 CoAP-CSharp