The CRAM-MD5 protocol involves a single challenge and response cycle, and is initiated by the server:
The one-way hash and the fresh random challenge provide three types of security:
CRAM-MD5 is defined by the IETF standards-track document RFC 2195, which supersedes RFC 2095, from earlier in 1997. These de facto standards define CRAM-MD5 as an authentication method for the email mailbox-management protocols POP and IMAP.
CRAM-MD5 is one of the authentication methods supported by Simple Authentication and Security Layer (SASL), defined in 2006 by RFC 4422, which supersedes the 1997 standard RFC 2222.
The Internet Assigned Numbers Authority (IANA) maintains a registry of SASL mechanisms,3 including CRAM-MD5, for limited use.
CRAM-MD5 is required for On-Demand Mail Relay (ODMR), defined in RFC 2645.
It was recommended to deprecate the standard in 20 November 2008. As an alternative it recommends e.g. SCRAM or SASL Plain protected by TLS instead.4
"function verify_credentials". Dovecot 2.0 source. Retrieved 23 January 2014. http://git.infradead.org/dovecot/dovecot-2.0/blob/c68fb0dbc05e1a472d5a043ee368954b1034d8cb:/src/auth/mech-cram-md5.c#l48 ↩
"file hmac-md5.c". Dovecot 2.0 source. Retrieved 23 January 2014. http://git.infradead.org/dovecot/dovecot-2.0/blob/c68fb0dbc05e1a472d5a043ee368954b1034d8cb:/src/lib/hmac-md5.c ↩
"Simple Authentication and Security Layer (SASL) Mechanisms". Protocol Registries. IANA. https://www.iana.org/assignments/sasl-mechanisms ↩
Zeilenga, Kurt (24 November 2008). "CRAM-MD5 to Historic". tools.ietf.org. Retrieved 2020-12-05. https://tools.ietf.org/html/draft-ietf-sasl-crammd5-to-historic-00.html ↩