RFC 3206

The SYS and AUTH POP Response Codes

πŸ“… published February 2002, from ietf

RFC 3206: The SYS and AUTH POP Response Codes ✨

  • RFC: 3206 πŸ’–
  • Title: The SYS and AUTH POP Response Codes
  • Author: Randall Gellens, QUALCOMM πŸŽ€
  • Category: Standards Track
  • Date: February 2002
  • Obsoletes / Updates: This document doesn't list anything it obsoletes or updates.

Network Working Group, so this one is an official Internet standard, bestie 🌈

Status of This Memo πŸ“‹

okay so this is an Internet standards track protocol doc for the Internet community, and it's asking for discussion and suggestions for improvements πŸ¦‹ For the current standardization state and status, check the "Internet Official Protocol Standards" (STD 1). And the memo can be distributed freely, no limits πŸ’…

Copyright (C) The Internet Society (2002). All Rights Reserved. 🌸

Abstract πŸ”

this memo proposes two response codes, SYS and AUTH, so clients can tell exactly what the best response to an authentication failure is, no guessing 😀 It also defines a brand new capability, AUTH-RESP-CODE πŸ‘‘

Table of Contents πŸ—‚οΈ

 1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . .  2
 2.  Conventions Used in this Document . . . . . . . . . . . . . . 2
 3.  Background   . . . . . . . . . . . . . . . . . . . . . . . .  2
 4.  The SYS Response Code   . . . . . . . . . . . . . . . . . . . 3
 5.  The AUTH Response Code   . . . . . . . . . . . . . . . . . .  3
 6.  The AUTH-RESP-CODE Capability   . . . . . . . . . . . . . . . 4
 7.  IANA Considerations   . . . . . . . . . . . . . . . . . . . . 4
 8.  Security Considerations  . . . . . . . . . . . . . . . . . .  4
 9.  References   . . . . . . . . . . . . . . . . . . . . . . . .  5
10.  Author's Address  . . . . . . . . . . . . . . . . . . . . . . 5
11.  Full Copyright Statement   . . . . . . . . . . . . . . . . .  6

1. Introduction 🧚

okay so RFC 2449 [POP3-EXT] added extended [POP3] response codes, so clients get more info about errors and can respond in a smarter way 🧠 It came with two starter codes, IN-USE and LOGIN-DELAY, which try to separate credential problems from everything else πŸŽ€

honestly those two are helpful, but they don't go far enough 😭 So this memo adds two more response codes, SYS and AUTH, which let clients unambiguously figure out the optimal response to an authentication failure πŸ’…

And a new capability, AUTH-RESP-CODE, is defined too ✨

2. Conventions Used in this Document πŸ“–

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [KEYWORDS] 🫢

3. Background πŸ•°οΈ

RFC 2449 [POP3-EXT] introduced the IN-USE and LOGIN-DELAY response codes 🌷 The whole point is to let clients clearly see what caused a failure so they know how to react πŸ”₯ For example, a client needs to know whether the user should be asked for new credentials, or whether the POP3 session should just be tried again later πŸ™ˆ (Some deployed POP3 clients try to parse the text of authentication failure errors, looking for strings that particular servers use to say the mailbox is locked. Yikes πŸ’€)

IN-USE means an exclusive lock couldn't be grabbed for the user's mailbox, probably because another POP3 session is already going πŸ”’ LOGIN-DELAY tells the client the user hasn't waited long enough before logging in again ⏳

But there are other errors that don't need new credentials, and some of them should still be brought to the user's attention πŸ‘€

Even with IN-USE and LOGIN-DELAY, clients can't be sure whether some other error needs new user credentials 😩

4. The SYS Response Code πŸ› οΈ

The SYS response code says a failure is due to a system error, not the user's credentials or some external condition 🌈 It's hierarchical, with two possible second-level codes, TEMP and PERM. (Case is not significant at any level of the hierarchy πŸŽ€)

SYS/TEMP means the problem is probably temporary, so there's no need to freak the user out unless the failure keeps happening πŸ“ Examples might be a central resource that's locked or temporarily unavailable, or not enough free disk or memory, and so on πŸ§ƒ

SYS/PERM is for problems that probably won't fix themselves without someone stepping in 🚨 It's appropriate to alert the user and suggest they contact the organization's support or assistance people πŸ“ž Examples include corrupted mailboxes and system configuration errors πŸ’œ

The SYS response code is valid with an -ERR response to any command πŸ’…

5. The AUTH Response Code πŸ”

The AUTH response code tells the client there's a problem with the user's credentials πŸ™…β€β™€οΈ That could be a wrong password, an unknown user name, an expired account, an attempt to log in against policy (like from a not-allowed location or at an unauthorized time), or some other problem 🌸

The AUTH response code is valid with an -ERR response to any authentication command, including AUTH, USER (see note), PASS, or APOP ✨

Servers that include the AUTH response code with any authentication failure SHOULD support the CAPA command [POP3-EXT] and SHOULD include the AUTH-RESP-CODE capability in the CAPA response πŸŽ€ AUTH-RESP-CODE assures the client that only errors with the AUTH code are caused by credential problems 🫢

NOTE: Returning the AUTH response code to the USER command reveals to the client that the specified user exists. It is strongly RECOMMENDED that the server not issue this response code to the USER command. πŸ™ˆ

6. The AUTH-RESP-CODE Capability πŸ¦‹

Here's the full capability entry, verbatim:

CAPA tag:
    AUTH-RESP-CODE

Arguments:
    none

Added commands:
    none

Standard commands affected:
    none

Announced states / possible differences:
    both / no

Commands valid in states:
    n/a

Specification reference:
    this document

Discussion:
    The AUTH-RESP-CODE capability indicates that the server includes
    the AUTH response code with any authentication error caused by a
    problem with the user's credentials.

7. IANA Considerations πŸ“š

IANA added the AUTH-RESP-CODE capability to the list of POP3 capabilities (established by RFC 2449 [POP3-EXT]) 🌟

IANA also added the SYS and AUTH response codes to the list of POP3 response codes (also established by RFC 2449 [POP3-EXT]) πŸ’–

8. Security Considerations 🚨

Okay, this part is serious, bestie 😀 Section 5, The AUTH Response Code, discusses the security issues related to use of the AUTH response code with the USER command. Read that section before you do anything with it πŸ”₯πŸ‘€

9. References πŸ“Ž

[KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.

[POP3]     Myers, J. and M. Rose, "Post Office Protocol -- Version
           3", STD 53, RFC 1939, May 1996.

[POP3-EXT] Gellens, R., Newman, C. and L. Lundblade, "POP3 Extension
           Mechanism", RFC 2449, November 1998.

10. Author's Address πŸ’Œ

Randall Gellens
QUALCOMM Incorporated
5775 Morehouse Drive
San Diego, CA  92121-2779
U.S.A.

Phone: +1 858 651 5115
EMail: randy@qualcomm.com

The full legal text is kept verbatim here so nothing gets lost 🫢

Copyright (C) The Internet Society (2002).  All Rights Reserved.

This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works.  However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.

The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement πŸ™

Funding for the RFC Editor function is currently provided by the Internet Society 🌈

πŸ“¦ where this page comes from