Intereting Posts

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

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

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

Клиент Android подписывается на ту же тему …

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

Как этого избежать?

Solutions Collecting From Web of "MQTT Security – как запретить пользователям, подписывающимся на темы?"

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

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

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

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

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

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

Кристиан (команда 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