CRAM-MD5

Ir a: navegación, búsqueda de

En criptografía, CRAM-MD5 es un autenticación mediante desafío y respuesta mecanismo (CRAM) basado en el HMAC-MD5 algoritmo. Como uno de los mecanismos de apoyo de la Autentificación simple y capa de seguridad (SASL), a menudo se utiliza en un software de correo electrónico como parte de Autenticación SMTP y para la autentificación de SO3 y IMAP los usuarios, así como en aplicaciones de ejecución LDAP, XMPP, BIPy otros protocolos.

Cuando este tipo de software requiere autenticación sobre conexiones no cifradas, CRAM-MD5 se prefiere sobre los mecanismos que transmiten las contraseñas "a"salvo, tales como INICIO DE SESIÓN y LLANO. Sin embargo, no puede prevenir la derivación de una contraseña a través de un ataque de fuerza bruta, así que es menos eficaz que mecanismos alternativos que evite las contraseñas o que utilizan conexiones encriptadas con Transport Layer Security (TLS).

Contenido

  • 1 Protocolo
  • 2 Fortalezas
  • 3 Debilidades
  • 4 Estándares
  • 5 Véase también
  • 6 Referencias

Protocolo

El protocolo de CRAM-MD5 implica un desafío individual y ciclo de respuesta y se inicia el servidor:

  1. Desafío: El servidor envía un Base64-codificado en cadena para el cliente. Antes de codificarlo, podría ser cualquier cadena aleatoria, pero el estándar que define actualmente CRAM-MD5 dice que está en el formato de un ID del mensaje valor de encabezado de correo electrónico (incluyendo corchete angular de cierres) e incluye una cadena arbitraria de dígitos al azar, un fecha y horay del servidor nombre de dominio completamente calificado.
  2. Respuesta: El cliente responde con una cadena creada como sigue.
    1. El desafío es base64-descodificado.
    2. El desafío decodificado es hash utilizando HMAC-MD5, con un secreto compartido (normalmente, la contraseña del usuario, o un hash de éstos) como la clave secreta.
    3. El desafío hash se convierte en una cadena de dígitos hexadecimales en minúsculas.
    4. El nombre de usuario y un carácter de espacio se antepone a los dígitos hexadecimales.
    5. La concatenación es codificada en base64 y se envía al servidor
  3. Comparación: El servidor utiliza el mismo método para calcular la respuesta esperada. Si coincide con la respuesta dada y la respuesta esperada, autenticación era acertada.

Fortalezas

El hash unidireccional y el nuevo desafío al azar ofrecen tres tipos de seguridad:

  • Otros no pueden duplicar el hash sin conocer la contraseña. Esto proporciona autenticación.
  • Otros no pueden reproducir el hash — es dependiente en el desafío impredecible. Esto se llama vario frescura o prevención de la repetición.
  • Los observadores no aprenden la contraseña; Esto se llama secreto.

Debilidades

  • No autenticación mutua:: el cliente no verifica el servidor.
  • Almacenamiento de contraseñas débiles: algunas implementaciones requieren acceso a las contraseñas de texto sin formato del usuario, mientras que otros (e.g. Palomar) Utilice el paso intermedio del proceso HMAC para almacenar el MD5-hash de la contraseña (en sentido estricto de HMAC variables internas i_key_pad y o_key_pad).[1][2] Estas implementaciones que aprovechan para informática md5(something_with_64_bytes || something_else), sólo md5_internal(something_with_64_bytes) y something_else son necesarios para saber (causa de Merkle – Damgård uso en MD5; md5_internal es md5 sin el bloque final). Como i_key_pad y o_key_pad están en el comienzo del hash interno y externo de HMAC y tienen una longitud de 64 bytes, se puede utilizar este hecho.
  • Amenaza de reversibilidad: una línea ataque de Diccionario recuperar la contraseña es factible después de capturar un intercambio exitoso de protocolo CRAM-MD5 (por ejemplo, mediante Cain & Abel).
  • Proxy-capacidad: A diferencia un acuerdo clave de autenticación de contraseña Esquema (PAKE), CRAM-MD5 no establece un secreto compartido entre los dos extremos pero desconocido a un espía. Un activo hombre en el medio puede por lo tanto abrir una conexión con el servidor, conseguir un reto, ofrecer ese desafío al cliente, recibir respuesta del cliente y adelante esa respuesta en el servidor. Ahora lo puedes dejar mensajes más del cliente mientras haciéndose pasar por el cliente al servidor.

Estándares

CRAM-MD5 se define por la Documento de estándares-pista IETF RFC 2195, que reemplaza a RFC 2095, desde antes de 1997. Estos de facto estándares CRAM-MD5 se define como un método de autenticación para los protocolos de administración Buzón correo electrónico POP y IMAP.

CRAM-MD5 es uno de los métodos de autenticación soportados por Autentificación simple y capa de seguridad (SASL), definido en 2006 por RFC 4422, que reemplaza a la norma de 1997 RFC 2222.

El Autoridad de números asignados de Internet (IANA) mantiene un registro de los mecanismos de SASL,[3] incluyendo CRAM-MD5, para un uso limitado.

CRAM-MD5 se requiere para Relé de correo bajo demanda (ODMR), definida en RFC 2645.

Véase también

  • Simple Mail Transfer Protocol (SMTP)
  • John Klensin

Referencias

  1. ^ "función verify_credentials". Fuente del palomar 2.0. 23 de enero 2014.
  2. ^ "archivo hmac-md5.c". Fuente del palomar 2.0. 23 de enero 2014.
  3. ^ "Simple autenticación y mecanismos de seguridad (SASL) capa". Registros de protocolo. IANA.

Otras Páginas

Obtenido de"https://en.copro.org/w/index.php?title=CRAM-MD5&oldid=655407374"