常见的SASL命令和包

182 阅读5分钟

SASL(简单认证和安全层)是一个框架,用于向基于网络或通信协议添加和实施认证和授权支持。SASL的设计和架构允许与各种认证机制进行协商。

值得注意的是,你可以将SASL与其他协议一起使用,如HTTP、SMTP、IMAP、LDAP、XMPP和BEEP。这个框架具有一系列的命令、回调程序、选项和机制。

尽管本文将重点讨论每个用户都应该知道的各种SASL命令,但我们将进一步讨论其他SASL包的其余部分。

SASL概要

下面是对SASL概要的总结:

常见的SASL命令

像大多数认证框架和协议一样,SASL有一系列的命令,包括:

::SASL::new option value ?...?

这个SASL命令有助于构建新的上下文令牌。正如你在与SASL的互动中发现的那样,你需要为大多数SASL程序提供一个新的令牌:

::SASL::configure option value ?...?

该命令修改和检查每个SASL上下文选项。你可以在SASL选项部分找到更多细节。

::SASL::step context challenge ?...?

这条命令可以说是SASL框架中最重要的一条。你可以对这个程序进行调用,直到它的读数为0。使用这个命令时,你会发现每个步骤都会从服务器上获取一个挑战字符串。同时,上下文将计算并存储响应。对于不需要任何服务器挑战的行动,确保你为参数提供空字符串。最后,确保所有机制从一开始就接受一个空挑战。

:: SASL::响应上下文

响应命令负责返回以下响应字符串,该字符串应发送到服务器。

::SASL::reset context

如果你想丢弃上下文的内部状态,reset命令会有所帮助。它重新初始化了SASL上下文,并允许你重新使用令牌。

::SASL::cleanup context

该命令通过释放与该上下文相关的任何资源来清理该上下文。但与你将发现的重置命令不同的是,在调用此程序后,令牌可能无法再使用。

::SASL::机制 ?类型?? "最小"?

mechanisms命令将为你提供一个可用机制的列表。该列表将按照首选机制的顺序出现。因此,最偏好的机制将总是在顶部。机制的最小偏好值默认为0,任何小于最小值的机制都不会出现在你返回的列表中。

这一要求有助于提高安全性,因为任何偏好值低于25的机制都容易被泄漏或窃听,除非你使用TLS或任何其他安全通道,否则不应出现。

::SASL::register mechanism preference-clientproc ?serverproc?

该命令允许你通过指定机制的名称和实现通道,将新机制添加到包中。启动机制命令后,你可以选择服务器程序,并从列表中选择最上面的机制。

SASL选项

一组选项指定了SASL框架上的程序。它们包括

-callback

-callback选项指定了每当机制需要用户信息时应评估的命令。要调用该工具,你需要使用当前的SASL上下文以及你需要的信息的具体细节。

-机制

该选项设置了在特定程序中使用的SASL机制。你可以查看机制部分,了解SASL支持的机制的全面清单。

-服务

服务 "选项设置了上下文的服务类型。如果没有设置机制参数,该选项将重置为一个空字符串。当-type选项被设置为server时,该选项将自动设置为有效的服务身份。

-server

当你选择作为SASL服务器操作时,-server选项设置SASL程序中使用的服务器名称。

-类型

这个选项指定了上下文类型,它只能是 "客户端 "或 "服务器"。 值得注意的是,-type上下文默认设置在客户端应用程序上,并将自动响应服务器挑战。然而,有时你可以写它支持服务器端。

SASL回调程序

SASL框架的设计是,只要需要任何用户凭证,就会调用上下文创建期间提供的任何程序。在创建上下文时,你还需要提出一个参数,说明你需要从系统中获得的信息细节。

理想情况下,你应该在每种情况下都期待一个单一的响应字符串:

  • login- 这个回调过程应该带回用户的授权身份。
  • username- 用户名回调过程返回用户的认证身份。
  • password- 通常情况下,这个回调过程会产生一个与目前领域中使用的认证身份类似的密码。如果你使用服务器端的机制,你应该首先调用认证身份和境界,然后再调用密码回调过程。
  • realm-境界字符串与协议有关,属于当前的DNS域。许多机制在划分认证身份时使用境界。
  • hostnam- 这应该返回客户端的主机名。

例子

下面的例子总结了本文中提出的大部分观点。它应该让你对使用这个框架和它的命令有一个概念。每次你调用step命令时,命令参数将是最后的响应,以允许机制采取所需的行动。

总结

SASL为应用程序和程序开发人员提供了可靠的认证、加密和数据完整性检查机制。但对于系统管理员来说,这是一个框架,你会发现在保护系统安全时很方便。了解和正确使用Linux SASL,首先要了解ASASL命令、SASL回调程序、SASL机制、SASL选项和框架的概要。