AMQP。与基于证书的身份验证相比,使用JWT是更好的方法吗

AMQP。与基于证书的身份验证相比,使用JWT是更好的方法吗,jwt,amqp,tls1.2,Jwt,Amqp,Tls1.2,我们正在寻找保护AMQP连接的最佳方法。我们的AMQP客户端分布在世界各地,与AMQP服务器的连接需要安全。我们使用TLS实现oasis-open.org推荐的传输级安全。现在正在寻找AMQP客户端的身份验证机制 一种方法是使用相同的TLS证书对用户进行身份验证,第二种方法是使用新的著名的JWT作为AMQP的身份验证机制。每当客户端发布或订阅AMQP队列时,它都应该通过向服务器发送JWT来获得服务器的身份验证。JWT是在客户端通过安全TLS通道提供其凭据后发出的。这里的关键点是身份验证机制 用户

我们正在寻找保护AMQP连接的最佳方法。我们的AMQP客户端分布在世界各地,与AMQP服务器的连接需要安全。我们使用TLS实现oasis-open.org推荐的传输级安全。现在正在寻找AMQP客户端的身份验证机制


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

JWT是在客户端通过安全TLS通道提供其凭据后发出的。这里的关键点是身份验证机制

用户/密码易于使用和维护,但其安全性不如使用客户端证书。用户可以设置一个弱密码,或者在他注释的地方丢失该密码

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


JWT在客户机出示其凭证后发出。您现在在客户端使用什么作为凭据?用户名密码你是什么意思?我们正在寻找保护AMQP连接安全性、可用性和易维护性的最佳方法?我们正在寻找安全性和易维护性。我们已经使用TLS保护了传输层的通信通道安全。但是仍然在寻找有效的身份验证机制吗?我们应该使用普通用户/密码还是共享证书进行身份验证?如果我们使用证书,那么这些证书应该是自签名的还是来自诸如digicert等CA?我遇到的另一种方法是在Digest-MD5中使用SASL身份验证机制。我是从ApacheQPID安全指南中获取的。具有良好身份验证机制的SASL是避免客户端证书复杂性的更好方法吗?你能评论一下哪种机制更适合用作SASL的身份验证机制吗?阅读文档:带Digest-MD5的SASL基本上是一种用户/密码机制,但是发送一个带有共享密码的哈希挑战,而不是发送密码本身。如果您不使用保护通道的TSL,那将非常有趣。在我看来,用户/密码机制在大多数情况下是足够的谷歌或Facebook使用它。。。除非你需要高安全级别。然后,您需要添加一个额外的安全因素,如客户端证书。但是生成和分发证书是复杂的。只有当你知道如何去做时才考虑它