stringtranslate.com

CRAM-MD5

En criptografía , CRAM-MD5 es un mecanismo de autenticación de desafío-respuesta (CRAM) basado en el algoritmo HMAC-MD5 . Como uno de los mecanismos admitidos por la Capa de seguridad y autenticación simple (SASL), se utiliza a menudo en software de correo electrónico como parte de la autenticación SMTP y para la autenticación de usuarios POP e IMAP , así como en aplicaciones que implementan LDAP , XMPP , BEEP y otros protocolos.

Cuando este tipo de software requiere autenticación a través de conexiones no cifradas, se prefiere CRAM-MD5 a los mecanismos que transmiten contraseñas "sin cifrar", como LOGINy PLAIN. Sin embargo, no puede evitar la derivación de una contraseña a través de un ataque de fuerza bruta , por lo que es menos eficaz que los mecanismos alternativos que evitan las contraseñas o que utilizan conexiones cifradas con Transport Layer Security (TLS).

Protocolo

El protocolo CRAM-MD5 implica un único ciclo de desafío y respuesta, y es iniciado por el servidor:

  1. Desafío: El servidor envía una cadena codificada en base64 al cliente. Antes de la codificación, podría ser cualquier cadena aleatoria, pero el estándar que define actualmente CRAM-MD5 dice que tiene el formato de un Message-IDvalor de encabezado de correo electrónico (incluidos los corchetes angulares ) e incluye una cadena arbitraria de dígitos aleatorios, una marca de tiempo y el nombre de dominio completo del servidor .
  2. Respuesta: El cliente responde con una cadena creada de la siguiente manera.
    1. El desafío es decodificar base64.
    2. El desafío decodificado se codifica mediante HMAC-MD5 , con un secreto compartido (normalmente, la contraseña del usuario o un hash de la misma) como clave secreta.
    3. El desafío hash se convierte en una cadena de dígitos hexadecimales en minúscula.
    4. El nombre de usuario y un carácter de espacio se anteponen a los dígitos hexadecimales.
    5. Luego, la concatenación se codifica en base64 y se envía al servidor.
  3. Comparación: el servidor utiliza el mismo método para calcular la respuesta esperada. Si la respuesta proporcionada y la respuesta esperada coinciden, la autenticación se realizó correctamente.

Fortalezas

El hash unidireccional y el nuevo desafío aleatorio proporcionan tres tipos de seguridad:

Debilidades

Normas

CRAM-MD5 está definido por el documento de estándares IETF RFC 2195, que reemplaza al RFC 2095, de principios de 1997. Estos estándares de facto definen CRAM-MD5 como un método de autenticación para los protocolos de administración de buzones de correo electrónico POP e IMAP .

CRAM-MD5 es uno de los métodos de autenticación soportados por Simple Authentication and Security Layer (SASL), definido en 2006 por RFC 4422, que reemplaza al estándar RFC 2222 de 1997.

La Autoridad de Números Asignados en Internet (IANA) mantiene un registro de mecanismos SASL, [3] incluido CRAM-MD5, para uso limitado.

CRAM-MD5 es necesario para la retransmisión de correo a pedido (ODMR), definida en RFC 2645.

Obsoleto

El 20 de noviembre de 2008 se recomendó dejar de utilizar el estándar. Como alternativa, se recomienda, por ejemplo, SCRAM o SASL Plain protegido por TLS . [4]

Véase también

Referencias

  1. ^ "función verificar_credenciales". Fuente de Dovecot 2.0 . Consultado el 23 de enero de 2014 .
  2. ^ "archivo hmac-md5.c". Fuente de Dovecot 2.0 . Consultado el 23 de enero de 2014 .
  3. ^ "Mecanismos de Capa de Seguridad y Autenticación Simple (SASL)". Registros de Protocolo . IANA .
  4. ^ Zeilenga <[email protected]>, Kurt. "CRAM-MD5 a histórico". tools.ietf.org . Consultado el 5 de diciembre de 2020 .