en:Simple Authentication and Security Layer

{{short description|Framework for authentication and data security in Internet protocols}}

Simple Authentication and Security Layer (SASL) is a framework for authentication and data security in Internet protocols. It decouples authentication mechanisms from application protocols, in theory allowing any authentication mechanism supported by SASL to be used in any application protocol that uses SASL. Authentication mechanisms can also support proxy authorization, a facility allowing one user to assume the identity of another. They can also provide a data security layer offering data integrity and data confidentiality services. DIGEST-MD5 provides an example of mechanisms which can provide a data-security layer. Application protocols that support SASL typically also support Transport Layer Security (TLS) to complement the services offered by SASL.

John Gardiner Myers wrote the original SASL specification (RFC 2222) in 1997. In 2006, that document was replaced by RFC 4422 authored by Alexey Melnikov and Kurt D. Zeilenga. SASL, as defined by RFC 4422 is an IETF Standard Track protocol and is, {{as of | 2006|lc=y}}, a Proposed Standard.

SASL mechanisms

A SASL mechanism implements a series of challenges and responses. Defined SASL mechanisms{{cite web|url=https://www.iana.org/assignments/sasl-mechanisms|title=Simple Authentication and Security Layer (SASL) Mechanisms|work=iana.org}} include:

{{glossary}}

{{term|EXTERNAL}} {{defn|where authentication is implicit in the context (e.g., for protocols already using IPsec or TLS)}}

{{term|ANONYMOUS}} {{defn|for unauthenticated guest access}}

{{term|PLAIN}} {{defn|a simple cleartext password mechanism, defined in RFC 4616}}

{{term|OTP}} {{defn|a one-time password mechanism. Obsoletes the SKEY mechanism.}}

{{term|SKEY}} {{defn|an S/KEY mechanism.}}

{{term|CRAM-MD5}} {{defn|a simple challenge-response scheme based on HMAC-MD5.}}

{{term|DIGEST-MD5}} {{defn|(historicRFC 6331), partially HTTP Digest compatible challenge-response scheme based upon MD5. DIGEST-MD5 offered a data security layer.}}

{{term|SCRAM}} {{defn|(RFC 5802), modern challenge-response scheme based mechanism with channel binding support}}

{{term|NTLM}} {{defn|an NT LAN Manager authentication mechanism}}

{{term|GS2-}} {{defn|family of mechanisms supports arbitrary GSS-API mechanisms in SASL.{{cite web

|url=http://josefsson.org/sasl-gs2/

|title=Using GSS-API Mechanisms in SASL: The GS2 Mechanism Family

|author=Simon Josefsson

}} It is now standardized as RFC 5801.}}

{{term|GSSAPI}} {{defn|for Kerberos V5 authentication via the GSSAPI. GSSAPI offers a data-security layer.}}

{{term|BROWSERID-AES128}} {{defn|for Mozilla Persona authentication

{{cite web

|url=http://tools.ietf.org/id/draft-howard-gss-browserid

|title=A SASL and GSS-API Mechanism for the BrowserID Authentication Protocol

|author=Luke Howard

}}}}

{{term|EAP-AES128}} {{defn|for GSS EAP authentication

{{cite web

|url=http://tools.ietf.org/html/draft-ietf-abfab-gss-eap

|title=A GSS-API Mechanism for the Extensible Authentication Protocol

|author=Sam Hartman

|date=December 2013

}}}}

{{term|MSN Chat GateKeeper (& GateKeeperPassport)}} {{defn|a challenge-response mechanism developed by Microsoft for MSN Chat}}

{{term|OAUTHBEARER}} {{defn|OAuth 2.0 bearer tokens (RFC 6750), communicated through TLS{{cite IETF |title= A Set of Simple Authentication and Security Layer (SASL) Mechanisms for OAuth |rfc= 7628 |date=August 2015 |publisher= IETF |accessdate= October 7, 2016}}}}

{{term|OAUTH10A}} {{defn|OAuth 1.0a message-authentication-code tokens (RFC 5849, Section 3.4.2)}}

{{glossary end}}

SASL-aware application protocols

Application protocols define their representation of SASL exchanges with a profile. A protocol has a service name such as "ldap" in a registry shared with GSSAPI and Kerberos.{{cite web|url=https://www.iana.org/assignments/gssapi-service-names|title=Generic Security Service Application Program Interface (GSSAPI)/Kerberos/Simple Authentication and Security Layer (SASL) Service Names|work=iana.org}}

{{As of | 2012}} protocols currently supporting SASL include:

See also

References

{{Reflist}}