我正在构建一个向动态数量的消费者提供私人消息的系统。消费者使用他们自己的用户名/密码订阅队列并等待消息(消费者也可以发送消息)。该消息包含敏感信息。
问题是,如何确保(以安全的方式)发布者向消费者1"将仅由" consumers1"收到。我做了一些研究:
哪种方法最安全? VPN是否是备选方案1中TLS / SSL的良好替代品?选项1似乎是最简单的实现和维护,但是它足够安全吗?
答案 0 :(得分:0)
选项1.验证的用户ID为发布消息的客户端提供有限的身份验证。这是你的情况吗?或客户是消费者?如果他们只是消费者,那么我不会看到经验证的用户ID有帮助。 VPN阻止中间人嗅探你的客户凭证,我认为这是TLS的良好替代品。
选项2,结合每个客户端的适当权限(读取权限,命名客户端应限制的队列)将阻止其他一个客户端读取另一个客户端的消息。
选项3与选项2类似,但由于虚拟主机充当安全边界,因此即使权限设置不正确,一个客户端也无法读取另一个客户端的消息。
还要考虑贵组织的安全漏洞。具有敏感数据的邮件将在您的RabbitMQ群集中未加密。您可能还希望对邮件正文进行加密,但这会大大增加复杂性。
如果是我的系统,我真的很关心客户端隔离和客户端数据的保护,我至少会:
然后取决于它的实际程度(以及我是多么偏执):