Los protocolos desafío-respuesta (en inglés challenge-response protocol) son una familia de protocolos que permiten la autenticación de entidades mediante el siguiente sistema:
- Una parte (verificador) presenta una cuestión (desafío)
- La parte que se quiere autenticar recibe la cuestión y elabora una respuesta que envía al verificador
- El verificador recibe la respuesta y evalúa si la respuesta responde correctamente a la cuestión, y por tanto la entidad que envió la respuesta queda autenticado, o no.
Los protocolos de desafío-respuesta se pueden clasificar atendiendo a si se aprovechan o no de técnicas criptográficas en su implementación. Así podemos hablar de protocolos desafío-respuesta criptográficos (los que se apoyan en técnicas criptográficas) y protocolos desafío-respuesta no criptográficos.
Protocolos desafío-respuesta no criptográficos
Entre los protocolos desafío-respuesta no criptográficos los más habituales son:
- Autenticación mediante contraseña. Es el más simple de los protocolos desafío-respuesta. El desafío consiste en preguntar la contraseña y la respuesta consiste en responder con la contraseña correcta. Claramente un adversario que escuche la contraseña podrá autenticarse respondiendo con esa contraseña capturada (ataque de replay), saltándose así la seguridad del sistema.
- Uso de múltiples contraseñas cada una asociadas a un identificador distinto. Son vulnerables a ataques de replay si se captura además de la contraseña el identificador.
- Uso de protocolos de contraseña de un solo uso que no utilicen tecnologías criptográficas.
Protocolos desafío-respuesta criptográficos
Entre los protocolos desafío-respuesta criptográficos los más habituales son:
- Uso de protocolos de contraseña de un solo uso que utilizan tecnologías criptográficas.
- Uso de funciones hash criptográficas tipo MAC. La clave de la función MAC es compartida por el verificador y el que se quiere autenticar y es mantenida en secreto por ambos. El verificador genera un mensaje aleatorio al que llamamos nonce. El que se quiere autenticar responde con el resultado de aplicar la función MAC sobre ese nonce.
- Uso de algoritmos de cifrado simétrico. La clave secreta es compartida por el verificador y el que se quiere autenticar. El protocolo funciona de forma análoga a como los hace con las funciones MAC
- Uso de algoritmos de firma digital. El que se quiere autenticar firma con la clave privada un mensaje generado por el verificador. El verificador sólo tiene que verificar la firma con la clave pública.