保护从移动应用程序访问MQTT的最佳做法?

问题描述 投票:0回答:1

我想创建一个应用程序(将是公开的),该应用程序将实时向服务器发送数据或从服务器接收数据。因为对于此特定用例,PUB / SUB模式很自然地适合,所以我正在考虑将MQTT协议与TLS一起使用。在这种情况下,保护访问的最佳做法是什么?

  • 只有一个用户使用密码在代理中注册了移动应用程序(例如Mosquitto或RabbitMQ),并使用ACL通过ID限制客户端的主题并将这些秘密存储在移动应用程序中,这是否安全?如果没有,什么是合适的解决方案? (如果考虑到潜在的大量用户,如果在经纪人中为每个应用程序帐户使用单个用户,这不是性能问题吗?)
  • 还有其他允许从移动应用程序安全访问代理的方案吗?
android ios mobile rabbitmq mqtt
1个回答
0
投票

不,单个用户名/密码是一个非常糟糕的主意。 (只需要有人拆卸应用程序,用户名/密码就会被盗用,任何人都可以冒充其他人)。将clientIds链接到用户也可能意味着用户只能拥有一个设备。

使用户使用用户名/密码登录应该对性能的影响最小,因为只有在连接时才进行检查。

这也意味着您可以撤消单个用户的用户名/密码,而不必交付新版本的应用程序。

用户名/密码的替代方法是向用户颁发证书,以使他们向代理进行身份验证。证书中的CN可用于识别用户。

© www.soinside.com 2019 - 2024. All rights reserved.