Autenticación de desafío-respuesta


En seguridad informática , la autenticación de desafío-respuesta es una familia de protocolos en los que una parte presenta una pregunta ("desafío") y la otra parte debe proporcionar una respuesta válida ("respuesta") para ser autenticado . [1]

El ejemplo más simple de un protocolo de desafío-respuesta es la autenticación de contraseña , donde el desafío solicita la contraseña y la respuesta válida es la contraseña correcta.

Claramente, un adversario que puede espiar una autenticación de contraseña puede autenticarse a sí mismo de la misma manera. Una solución es emitir varias contraseñas, cada una de ellas marcada con un identificador. El verificador puede solicitar cualquiera de las contraseñas, y el probador debe tener la contraseña correcta para ese identificador. Suponiendo que las contraseñas se eligen de forma independiente, un adversario que intercepta un par de mensajes de desafío-respuesta no tiene pistas para ayudar con un desafío diferente en un momento diferente.

Por ejemplo, cuando otros métodos de seguridad de las comunicaciones no están disponibles, el ejército de EE . UU. utiliza el cifrado numérico AKAC-1553 TRIAD para autenticar y cifrar algunas comunicaciones. TRIAD incluye una lista de códigos de desafío de tres letras, de los cuales se supone que el verificador debe elegir aleatoriamente, y respuestas aleatorias de tres letras. Para mayor seguridad, cada conjunto de códigos solo es válido durante un período de tiempo particular que normalmente es de 24 horas.

Una técnica de desafío-respuesta más interesante funciona de la siguiente manera. Digamos, Bob está controlando el acceso a algún recurso. Alice viene buscando entrada. Bob lanza un desafío, quizás "52w72y". Alice debe responder con la cadena de caracteres que "encaja" en el desafío que lanzó Bob. El "ajuste" está determinado por un algoritmo "conocido" por Bob y Alice. (La respuesta correcta podría ser tan simple como "63x83z", con el algoritmo cambiando cada carácter del desafío usando un cifrado César ). En el mundo real, el algoritmo sería mucho más complejo.) Bob lanza un desafío diferente cada vez y, por lo tanto, conocer una respuesta correcta anterior (incluso si no está "oculta" por los medios de comunicación utilizados entre Alice y Bob) es inútil.

Los protocolos de desafío-respuesta también se utilizan para afirmar cosas distintas del conocimiento de un valor secreto. Los CAPTCHA , por ejemplo, son una especie de variante de la prueba de Turing , destinada a determinar si el espectador de una aplicación web es una persona real. El desafío enviado al espectador es una imagen distorsionada de algún texto, y el espectador responde escribiendo ese texto. La distorsión está diseñada para dificultar el reconocimiento óptico de caracteres (OCR) automatizado y evitar que un programa de computadora pase por humano.