什么是 SASL/GSSAPI?

26 linux kerberos sasl

我曾多次遇到过 SASL/GSSAPI 表达。我在 Google 上搜索了很多次,但我根本不明白它是什么以及它与 Kerberos 有何关系。

有人对此有一个简单的解释吗?

Han*_*an5 60

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。这是我的加密票等。”

  • 非常感谢非常清楚的解释 (2认同)

dso*_*ano 5

SASL 和 GSSAPI 是可以插入各种身份验证提供程序的框架。希望在支持 SASL 或 GS​​SAPI 的应用程序中使用 Kerberos 身份验证的人只需提供适当的 Kerberos 插件,而不是使用特定于 Kerberos 的代码重写应用程序。

  • 事实上,正如我所说,“SASL ......可以插入各种身份验证提供程序”。它们是两个不同的框架,您可以将各种身份验证提供程序(例如 Kerberos 或 NTLM)插入其中。 (2认同)