在 SASL 驗證中,每次連線時特定用戶端和伺服器之間的訊息是否相同?

在 SASL 驗證中,每次連線時特定用戶端和伺服器之間的訊息是否相同?

我使用 Cyrus SASL 庫編寫了一個測試客戶端和伺服器,並且手動強制它選擇 GSSAPI 作為機制。在偵錯時,我列印了每個訊息在兩條訊息之間傳遞時的 md5sum。我注意到每次連接時的順序似乎都是相同的。也就是說,如果第一次協商的訊息序列是 clientMessage1、serverResponse1、clientMessage2 等...以成功進行驗證,如果我隨後重新啟動客戶端,則重複相同的 clientMessage1、serverResponse2、clientMessage2 等序列。

在我看來,這似乎是一個安全問題。這是正確的行為嗎?

答案1

GSSAPI 可以使用任意數量的底層協定。但是,您是對的,如果重複相同的訊息,則可能會發生重播攻擊。

您知道 GSSAPI 使用了什麼低階協定嗎?

相關內容