Mecanismo de autenticación de respuesta de desafío salado


En criptografía, el mecanismo de autenticación de respuesta de desafío salado ( SCRAM ) es una familia de mecanismos modernos de autenticación de respuesta de desafío basados ​​​​en contraseña que brindan autenticación de un usuario a un servidor. Como se especifica para la Capa de seguridad y autenticación simple (SASL), se puede usar para inicios de sesión basados ​​en contraseña en servicios como SMTP e IMAP ( correo electrónico ) o XMPP (chat). Para XMPP, es obligatorio admitirlo. [1]

Alice quiere iniciar sesión en el servidor de Bob. Necesita demostrar que es quien dice ser. Para resolver este problema de autenticación, Alice y Bob acordaron una contraseña que Alice conoce y que Bob sabe cómo verificar.

Ahora Alice podría enviar su contraseña a través de una conexión sin cifrar a Bob en forma de texto claro, para que él la verifique. Sin embargo, eso haría que la contraseña fuera accesible para Mallory, quien está interviniendo la línea. Alice y Bob podrían intentar eludir esto encriptando la conexión. Sin embargo, Alice no sabe si el cifrado fue configurado por Bob y no por Mallory mediante un ataque de intermediario . Por lo tanto, Alice envía una versión codificada de su contraseña, como en CRAM-MD5 o DIGEST-MD5 . Como es un hash, Mallory no obtiene la contraseña en sí. Y debido a que el hash está salado con un desafío, Mallory podría usarlo solo para un proceso de inicio de sesión. Sin embargo, Alice quiere darle cierta información confidencial a Bob y quiere asegurarse de que sea Bob y no Mallory.

Para solucionar esto, Bob se registró en una autoridad de certificación (CA), que firmó su certificado. Alice solo podía confiar en ese sistema de firma, pero sabe que tiene debilidades . Para darle seguridad adicional de que no hay un ataque de intermediario, Bob crea una prueba de que conoce la contraseña (o un hash salado de la misma) e incluye su certificado en esta prueba. Esta inclusión se denomina vinculación de canales, ya que el canal de cifrado inferior está "vinculado" al canal de aplicación superior.

Entonces Alice tiene una autenticación de Bob, y Bob tiene una autenticación de Alice. En conjunto, tienen autenticación mutua . DIGEST-MD5 ya habilitaba la autenticación mutua, pero a menudo se implementaba incorrectamente. [2]

Cuando Mallory ejecuta un ataque de intermediario y falsifica una firma de CA, podría recuperar un hash de la contraseña. Pero no pudo hacerse pasar por Alice ni siquiera para una sola sesión de inicio de sesión, ya que Alice incluyó en su hash la clave de cifrado de Mallory, lo que resultó en un error de inicio de sesión de Bob. Para realizar un ataque totalmente transparente, Mallory necesitaría conocer la contraseña utilizada por Alice o la clave de cifrado secreta de Bob.