我们正在评估用NB-IoT上的CoAP/DTLS取代传统的HTTPS/RESTful蜂窝网络(4G-LTE(的实用性,以延长远程设备的电池寿命。我们部署的物联网应用程序只占用4G-LTE数据带宽的一小部分,UDP over NB-IoT就足够了;所以传动性能不是我们主要关心的问题。
但问题是,我们现在在SSL/TLS层中使用相互身份验证,并将不同的客户端证书分配给不同的子组。我不知道如何在CoAP/DTLS中做到这一点。
我了解到CoAP/DTLS的默认凭据模型是预共享密钥(PSK(,我还从RFC4279了解到,我可以使用PSK身份/共享密钥对作为用户名的简单替代方案,这正好符合我的需求。但当我试图弄清楚如何实现这一点时,我发现互联网资源非常有限。到目前为止,我已经调查了node-coap.js
和libcoap
,但在文档中找不到任何提示。两者似乎同时只支持一个凭据。
部署能够支持多个PSK身份/共享密钥集的CoAP DTLS服务器的最佳做法是什么?还是我需要在应用层实现整个身份验证机制?
服务器/云端CoAP的一个选项是Eclipse Californium。我参与了那个项目,因此可能有偏见。也就是说,我们实际上正是为了这个目的建造了加州。