Подтвердить что ты не робот

MQTT Security - как запретить пользователям, подписывающимся на темы?

Теперь у меня есть все настройки и работа для MQTT. Я использую IBM wmqtt.jar и брокера Mosquitto.

Мой Java-сервлет создает MQTTConnection для брокера и публикуется в разделе "AndroidDeviceID/myAppName"..

Клиент Android подписался на эту тему...

Мне кажется, что если бы кто-нибудь знал имя устройства моего пользователя, они могли бы создать простое приложение для Android и подписаться на эту тему в моем брокере MQTT. Затем они получают от моих пользователей все уведомления (в данном случае сообщения о мгновенных сообщениях).

Как это правильно избежать?

4b9b3361

Ответ 1

Mosquitto обеспечивает безопасность через аутентификацию имени пользователя и пароля, а также ограничение доступа к темам с списками контроля доступа. На странице руководства mosquitto.conf есть подробные сведения: http://mosquitto.org/man/mosquitto-conf-5.html

Ответ 2

ACL ограничивает доступ клиентов к темам, для этого я использую auth-plugin, вот ссылка mosquitto auth plugin

Ответ 3

В целом, MQTT сохраняет безопасность очень "легкой", поскольку она была первоначально разработана для использования с закрытыми сетями датчиков. Реализация брокера заключается в том, чтобы обеспечить, например, SSL и решить, как обращаться с бэкэндом имени пользователя/пароля.

Шифрование данных сообщений вряд ли когда-либо будет предоставлено самим протоколом и что-то, что обычно выполняется на прикладном уровне, если это важно.

Ответ 4

Если вам нужен более индивидуальный способ управления доступом и разрешения тем, попробуйте использовать брокера HiveMQ MQTT. Как описано в документации, вы можете реализовать свое поведение с помощью плагина. Такой подход позволяет вам полностью решить, как обрабатываются аутентификация и авторизация клиентов, публикуются и подписываются [1]. Если вас интересует, лучший способ начать с вашего собственного плагина описан здесь [2].

Кстати, также очень легко настроить TLS для HiveMQ [3].

Christian (Команда HiveMQ)

[1] http://www.hivemq.com/docs/plugins/1.5.0/#auth-permission-chapter

[2] http://www.hivemq.com/documentations/getting-started-plugins/

[3] http://www.hivemq.com/docs/hivemq/1.5.0/#hivemqdocs_ssl_tls