rfc-4959

IMAP Extension for Simple Authentication and Security Layer (SASL) Initial Client Response

R. Siemborski, A. Gulbrandsen
date2007-09 streamIETF wgnon working group statusPROPOSED STANDARD pages7 canonicalhttps://www.rfc-editor.org/rfc/rfc4959 doi10.17487/RFC4959 errataview
To date, the Internet Message Access Protocol (IMAP) has used a Simple Authentication and Security Layer (SASL) profile which always required at least one complete round trip for an authentication, as it did not support an initial client response argument. This additional round trip at the beginning of the session is undesirable, especially when round-trip costs are high. This document defines an extension to IMAP which allows clients and servers to avoid this round trip by allowing an initial client response argument to the IMAP AUTHENTICATE command. [STANDARDS-TRACK]

Extracted elements (13)

design-rationale §1

The extension was designed to eliminate at least one complete round trip at the beginning of an IMAP session, which is particularly undesirable when round-trip costs are high. Prior to this extension, the IMAP SASL profile always required at least one complete round trip because it did not support an initial client response argument.

email, security

interoperability-note §3

If either the client or the server do not support the SASL-IR capability, a mechanism which uses an initial client response is negotiated using the challenge/response exchange described in RFC 3501, with an initial zero-length server challenge.

email, security

normative-requirement §3 MUST NOT

Clients that implement this extension MUST NOT send an initial client response to servers that do not advertise the SASL-IR capability; in such a situation, clients MUST fall back to IMAP-compatible mode.

email, security

normative-requirement §3 MUST

If the client uses an initial response with a SASL mechanism that does not support an initial response, the server MUST reject the command with a tagged BAD response.

email, security

normative-requirement §3 MUST

Servers that implement this extension MUST support clients that omit the initial client response.

email, security

normative-requirement §3 MUST

The initial client response MUST be encoded as BASE64 as defined in RFC 4648, and MUST be transmitted outside of a quoted string or literal.

email, security

normative-requirement §3 MUST

To send a zero-length initial response, the client MUST send a single pad character ('='). This indicates the response is present but is a zero-length string.

email, security

normative-requirement §3 MUST

When decoding BASE64 data in the initial client response, decoding errors MUST be treated as IMAP would handle them in any normal SASL client response. The server should check for characters not in the BASE64 alphabet and pad characters not at the end of the string.

email, security

protocol-element §1

The SASL-IR extension is present in any IMAP server that returns 'SASL-IR' as one of the supported capabilities in its CAPABILITY response. Servers supporting this extension accept an optional initial client response with the AUTHENTICATE command for SASL mechanisms that support it.

email, security

registry §5

IANA has added 'SASL-IR' to the IMAP4 Capabilities Registry.

email, registry

security-consideration §6 MUST

Server implementations MUST treat the omission of an initial client response from the AUTHENTICATE command as defined by RFC 3501, as if this extension did not exist.

email, security

security-consideration §6 MUST

Server implementations that enforce line length limits MUST be aware that the addition of the initial response parameter to AUTHENTICATE may increase the maximum line length that IMAP parsers may expect to support. Server implementations MUST be able to receive the largest possible initial client response that their supported mechanisms might receive.

email, security

wire-format §7

The AUTHENTICATE command is redefined as: 'AUTHENTICATE' SP auth-type [SP (base64 / '=')], followed by *(CRLF base64). The optional second argument carries the initial client response encoded as BASE64, or '=' to indicate a zero-length initial response.

email, security