| Internet-Draft | SMTP REMEMBERME | May 2026 |
| Melnikov | Expires 30 November 2026 | [Page] |
This document specifies an SMTP extension for generating quick reauthentication tokens that allow clients to re-login without user interaction, once authentication using a strong SASL mechanism is completed.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 30 November 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
This document specifies an SMTP [RFC5321] (update to rfc5321bis, once published) extension which is a protocol specific extension to Simple Authentication and Security Layer (SASL) [RFC4422] framework for generation of proof-of-posession reauthentication tokens. Such tokens can be used for subsequent 1 roundtrip reauthentication using SASL mechanisms such as REMEMBERME and HT2-*.¶
The typical sequence of events is going to be like this:¶
Client establishes SMTP connection protected by TLS on Connection 1.¶
On Connection 1 the client authenticates using a strong SASL mechanism, which might be CPU intensive, and most likely requires user interaction, e.g., SCRAM with 2FA extension, PASSKEY, OAUTH with 2FA.¶
On Connection 1 the client requests reauthentication token using REMEMBERME command.¶
<Connection gets interrupted or closed due to inactivity>¶
Client establishes another SMTP connection protected by TLS on Connection N. The client then uses a previous issues quick reauthentication token with one of 1 round trip SASL mechanisms such as REMEMBERME and HT2-*. The same token is reusable on other SMTP connections until it is replaced or revoked.¶
SMTP servers advertise support for this extension by returning one or more <token-type> in the EHLO REMEMBERME response.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
The REMEMBERME command is used to request a reauthentication token that is suitable for 1 round trip SASL authentication mechanisms. The REMEMBERME command takes 1 parameter which is token type name. See Section 5 for the list of registered tokens types.¶
This command is only allowed after a successfully completed AUTH command [RFC4954].¶
Upon receipt of REMEMBERME command the SMTP server checks that the specified token type is recognized and supported. If it is, it generates a new token of the requested type and returns it in the 235 response, that might also contain the 2.7.X enhanced status code.¶
S: 220-smtp.example.com ESMTP Server
C: EHLO client.example.com
S: 250-smtp.example.com Hello client.example.com
S: 250-AUTH GSSAPI PASSKEY SCRAM-SHA-256
S: 250-ENHANCEDSTATUSCODES
S: 250 STARTTLS
C: STARTTLS
S: 220 Ready to start TLS
... TLS negotiation proceeds, further commands
protected by TLS layer ...
C: EHLO client.example.com
S: 250-smtp.example.com Hello client.example.com
S: 250-AUTH GSSAPI PASSKEY SCRAM-SHA-256 PLAIN
S: 250 REMEMBERME JWT RANDOM
C: AUTH SCRAM-SHA-256 ...
<SASL exchange>
S: 235 2.7.0 Authentication successful
... later in the same session ...
C: REMEMBERME JWT
S: 235 2.7.X <base64-encoded token>
¶
Note that in the above example list of capabilities returned in EHLO response changes after STARTTLS. Also note that the order of AUTH and REMEMBERME lines in EHLO response can be arbitrary.¶
rememberme-cmd = "REMEMBERME" SP token-type
token-type = atom
;; SHOULD be registered with IANA
rememberme-rsp = "235" [SP 2.7.X] SP base64-token
;; Successful response to REMEMBERME command
;; contains a base64-encoded token.
;; An optional enhanced status code might preceed the token.
base64-token = base64
¶
TBD. Register the SMTP capabilities and create a separate registry of token types? The separate registry will be shared with the IMAP REMEMBERME document.¶
Also request assignment of 2.7.X from https://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml¶