AMQP。使用JWT进行基于证书的身份验证更好吗?

问题描述:

我们正在寻找确保AMQP连接安全的最佳方式。我们的AMQP客户端遍布全球,与AMQP服务器的连接需要安全。正如oasis-open.org推荐的那样,我们使用TLS来实现传输级安全性。现在正在为AMQP客户寻找AUTH机制。AMQP。使用JWT进行基于证书的身份验证更好吗?

一种方法是使用相同的TLS证书对用户进行身份验证,SECOND方式是使用新着名的JWT作为AMQP的身份验证机制。每当客户端发布或订阅AMQP队列时,它应该通过将JWT发送到服务器来获得服务器的身份验证。

+0

智威汤逊在客户出示其证书后发放。你现在用什么作为客户端的凭证?例如:用户名 - 密码 – pedrofb

+0

您对_“我们正在寻找确保AMQP连接的最佳方式”_安全性,可用性,易维护性的含义是什么? – pedrofb

+0

我们正在寻找安全和易于维护。我们使用TLS确保传输层的通信信道安全。但仍在寻找有效的认证机制?我们应该使用普通用户/密码还是应该共享认证证书?如果我们使用证书,那么它们应该是自签名还是来自像digicert等CA. – learner

在客户端通过安全TLS通道呈现其凭据后发布JWT。这里的关键是认证机制

  • 用户/密码比使用客户端证书易于使用和维护,但它不太安全。用户可以设置一个弱密码,或丢失他注释的帖子。

  • 客户端证书需要客户端计算机上的额外安装。窃取证书要困难得多,因为您可以使用系统密钥库,使用密码保护或甚至使用硬件。但是,证书分发是一个复杂的过程。您可以使用自己的CA,但您需要考虑如何获取证书给用户和安装过程。此外,双向TLS频道的配置在您的客户端中会很复杂。我认为使用外部CA不是一种选择,因为每个用户都需要从该CA获取证书,而且这是一个无法控制的过程。

+0

我遇到的另一种方法是在Digest-MD5中使用SASL认证机制。我从Apache QPID安全指南中了解到这一点。 https://qpid.apache.org/releases/qpid-0.30/cpp-broker/book/chap-Messaging_User_Guide-Security.html。 SASL是否具有良好的认证机制是避免客户证书复杂性的更好方法?您可以评论哪种机制更适合用作SASL的身份验证机制? – learner

+0

阅读文档:使用Digest-MD5的SASL基本上是一种用户/密码机制,但是使用共享密码(密码)发送哈希质询,而不是自己发送密码。如果您不使用保护频道的TSL,那将会很有趣。在我看来,在大多数情况下(Google或Facebook使用它),用户/密码机制就足够了,除非您需要高安全级别。然后,您需要添加一个额外的安全因素,如客户端证书。但是生成和分发证书非常复杂。只有在你知道如何去做的时候才考虑它 – pedrofb