Мы оцениваем возможность замены нашего обычного HTTPS / RESTful через сотовую сеть (4G-LTE) на CoAP / DTLS через NB-IoT, чтобы продлить время автономной работы удаленных устройств. Приложение IoT, которое мы развернули, занимает лишь небольшую часть полосы пропускания данных 4G-LTE, а UDP через NB-IoT достаточно хорош; поэтому качество передачи не является нашей главной заботой.
Но проблема в том, что теперь мы используем взаимную аутентификацию на уровне SSL / TLS и назначаем разные клиентские сертификаты разным подгруппам. И я не уверен, как это сделать в CoAP / DTLS.
Я узнал, что модель учетных данных по умолчанию для CoAP / DTLS - это Pre-Shared Key (PSK), и я также узнал из RFC4279, что я могу использовать пару идентификаторов PSK / общих ключей в качестве простой альтернативы. на имя пользователя, которое могло бы соответствовать моим потребностям. Но когда я пытался понять, как это реализовать, я обнаружил, что интернет-ресурс очень ограничен. Пока я исследовал node-coap.js
и libcoap
, но не могу найти никаких подсказок в документах. Оба, казалось, одновременно поддерживали только одну учетную запись.
Как лучше всего развернуть сервер CoAP-DTLS, который может поддерживать несколько наборов идентификаторов / общих ключей PSK? Или мне нужно реализовать весь механизм аутентификации на уровне приложения?