Linux

什麼是 SASL/GSSAPI?

  • April 8, 2021

很多次我都遇到過 SASL/GSSAPI 這個表達式。我已經多次搜尋Google,但我根本不明白它是什麼以及它與 Kerberos 的關係。

有人對此有簡單的解釋嗎?

SASL 和 GSSAPI 是可以插入各種身份驗證提供程序的框架。希望在支持 SASL 或 GS​​SAPI 的應用程序中使用 Kerberos 身份驗證的人只需要提供適當的 Kerberos 外掛,而不是使用特定於 Kerberos 的程式碼重寫應用程序。

SASL代表簡單身份驗證和安全層;它是一個框架,允許開發人員實現不同的身份驗證機制,並允許客戶端和伺服器為每個連接協商一個相互可接受的機制(而不是硬編碼或預配置它們)。

GSSAPI代表通用安全服務應用程序介面;它通常作為 SASL 可以使用的機制之一提供。它本身就是另一個用於開發和實現各種身份驗證機制的框架。這些機制包括 Kerberos、NTLM 和SPNEGO(簡單和受保護的 GSSAPI 協商機制):一種 GSSAPI 偽機制,允許與 GSSAPI 兼容的客戶端協商他們想要使用的 GSSAPI 機制。

這是一個範例,可以幫助您更清楚地說明這一點(為清楚起見,進行了粗略的簡化):

  1. 客戶端連接到伺服器並說:“我支持 SASL!我應該如何驗證自己?”
  2. 伺服器收到連接並響應,“我也支持 SASL,並且可以使用這些機制,按優先級降序排列:GSSAPI、CRAM-MD5、PLAIN。”
  3. 客戶回答:“在這些選擇中,我想使用 GSSAPI。”
  4. 伺服器響應“GSSAPI?資本。我支持 Kerberos 和 NTLM。”
  5. 客戶響應“讓我們使用 Kerberos。這是我的加密票證等。”

引用自:https://serverfault.com/questions/139896