Was ist SASL? (Simple Authentication and Security Layer)

Bei dem Simple Authentication and Security Layer, kurz SASL, handelt es sich um ein Framework, dass zur Authentifizierung verschiedener Dienstleitungen im Netzwerk verwendet wird. Definiert wurde SASL im Oktober 1997 im RFC 2222. Später im Juni 2006 wurde das RFC durch das RFC 4422 ersetzt.

SASL bietet dem Anwendungsprotokoll, wie zum Beispiel HTTP, eine RFC-standardisierte Schnittstelle zur Aushandlung der Kommunikationsparameter. Meistens wird eine Authentifizierungsmethode mit dem Clientsystem ausgehandelt. Möglich ist auch, dass der Server mit dem Client zuerst ein verschlüsseltes Transportprotokoll, wie beispielsweise TLS, ausgehandelt und schlußendlich darauf wechselt. Bei der SASL Implementierung einigen sich Client und Server auf ein Authentifizierungsverfahren, dass anschließend von der Applikation transparent benutzt werden kann. Dadurch wird die Entwicklung von sicheren Applikationsprotokollen vereinfacht. Der Softwareentwickler muss nur eine bestehende SASL-Implementierung verwenden, anstatt das komplette Verfahren zur Authentifizierung und Datenverschlüsselung selbst zu programmieren.

Aktuell wird SASL unter anderem bei SMTP, IMAP, POP3, LDAP und XMPP verwendet. Dabei werden mehrere SASL Authentifizierungsmechanismen unterstützt. Diese Verfahren sind bei der IANA aufgelistet. Bekannt sind folgende Verfahren:

  • PLAIN, alle Daten werden unverschlüsselt im Klartext ausgetauscht (oft wird mit TLS der nötige Sicherheitsmechanismus bereitgestellt)
  • GSSAPI, hierbei handelt es sich ebenso um ein Framework, wie SASL. GSSAPI bietet beispielsweise auch Kerberos v5 an.
  • CRAM-MD5 (Challenge-Response Authentication Mechanism, Message Digest 5), verhindert die Übertragung des Passworts im Klartext. Bei CRAM-MD5 handelt es sich um ein Authentifizierungsverfahren nach dem Challenge-Response-Prinzip. Das Verfahren arbeitet auf Basis des MD5-HMAC-Algorithmus.
  • DIGEST-MD5 Das Verfahren ist ähnlich zu CRAM-MD5, jedoch mit der zusätzlichen Möglichkeit, wie Parameter zur Integritätssicherung der Nachrichten auszuhandeln.
  • OTP (One-Time-Pad), bietet eine Passwortverifizierung mit Einmalpasswörtern. Das Password hat nur einmal eine Gültigkeit, anschließend verfällt es.
  • ANONYMOUS, der Benutzer kann den Dienst ohne Authentifizierung verwenden. Es wird unter Umständen nach einem Kennwort verlangt, allerdings sind alle Eingaben gültig.
  • EXTERNAL, die Authentifizierung erfolgt in diesem Fall außerhalb von SASL, also mittels eines anderen Dienstes.

Weiterführende Artikel:

  1. Installation von SASL mit Verwendung im Apache 2 unter Ubuntu 11.04
  2. Benutzeranmeldung mit SASL als “shell-less” Benutzer mit einem geschützten Webbereich beim Apache 2 Server unter Ubuntu 11.04

Interessante RFCs zum Thema:

  1. RFC 4422 „Simple Authentication and Security Layer (SASL)“, June 2006
  2. RFC 2222 „Simple Authentication and Security Layer (SASL)“, October 1997
  3. RFC 2444 „The One-Time-Password SASL Mechanism“, October 1998
  4. RFC 4752 „The Kerberos V5 („GSSAPI“) Simple Authentication and Security Layer (SASL) Mechanism“, November 2006