如何保护RabbitMQ / MQTT等消息传递系统以用于移动应用程序?

时间:2014-10-29 13:35:59

标签: security mobile rabbitmq messaging mqtt

假设我想编写一个移动聊天应用程序(仅作为示例)。

如何仅接收针对一个客户端的消息,并且不要让其他客户端接收不适合他们的消息!

  • 创建仅为客户端所知的临时队列? - 足够安全吗?
  • 使用客户端公钥加密邮件? - 需要自己的PKI!
  • 根据客户端在每次请求时发送的某些凭据限制对队列的访问? - 每个请求都需要进行身份验证!
  • ...?

如果客户端向传出队列发送消息,如何防止其他客户端直接从队列中读取消息!

  • 限制只写访问权限? - 不知道这是否可行......
  • 加密邮件? - 需要自己的PKI!
  • ...?

我希望我的问题/问题很明确,我真的很期待听到您的想法和最佳做法!

提前致谢!

//编辑:因此,为每个具有加密消息的客户端使用临时队列可能是一个不错的选择。或者你有任何其他想法???

1 个答案:

答案 0 :(得分:2)

如果您使用RabbitMQ AMQP代理,那么您可以使用Validated User-ID extension权限,但您必须为每个客户创建单独的用户。

使用每个客户端队列可能是一个不错的选择,但你必须意识到它“通过默默无闻的安全性”并且它闻起来。但正如您所建议的,邮件加密可能会解决这个问题

您可以使用Access Control,但您可能会发现有一些服务器应用程序可以处理复杂的用户管理事务,并使用客户端API来更好地管理用户策略。