在 SASL 身份验证中,特定客户端和服务器每次连接时之间的消息是否相同?

在 SASL 身份验证中,特定客户端和服务器每次连接时之间的消息是否相同?

我使用 Cyrus SASL 库编写了一个测试客户端和服务器,并手动强制它选择 GSSAPI 作为机制。在调试时,我打印了在两者之间传递的每条消息的 md5sum。我注意到每次连接时序列似乎都相同。也就是说,如果第一次协商的消息序列是 clientMessage1、serverResponse1、clientMessage2 等... 以成功进行身份验证,如果我重新启动客户端,则会重复相同的 clientMessage1、serverResponse2、clientMessage2 等... 序列。

在我看来,这似乎是一个安全问题。这是正确的行为吗?如果是,我应该将这些通信包装在 TLS 中吗?

答案1

GSSAPI 可以使用任意数量的底层协议。但是,您说得对,如果重复相同的消息,则可能会发生重放攻击。

您知道 GSSAPI 上使用的是什么低级协议吗?

相关内容