Valoración
  • Actualmente 0 de 5 Estrellas.
Tu valoración
  • Actualmente 0 de 5 Estrellas.
  • 1
  • 2
  • 3
  • 4
  • 5
OPINIÓN

Autenticación mediante desafío-respuesta

13/12/2016 - Francisco Jurado Zambrana. Gerente de Desarrollo de Negocio de Ingenia
¿Es usted usuario de Facebook? ¿De LinkedIn? ¿Sube fotos a Instagram? ¿Usa un ordenador en su trabajo? ¿Tiene una cuenta de correo en Google Mail o similar? ¿Trabaja con su banco vía Internet? Bien, entonces no será necesario explicarle qué es –en estos contextos– una contraseña: ante cada uno de esos sistemas de los que es usuario, usted se acredita como tal mediante un pequeño secreto que comparte con el sistema en cuestión; y ese secreto es, justamente, su contraseña.

¿Es seguro este mecanismo? Pues, claramente, lo será mientras su contraseña se mantenga secreta. Todo lo que debilite el secreto, debilita el procedimiento. Por ejemplo, si para no olvidarla la escribe en un pósit que pega en la pantalla de su ordenador, la estará poniendo en claro riesgo; así que, sería mejor memorizarla. Por fortuna, de momento no podemos leer lo que hay en su mente, pero, aun así, a veces podemos imaginarlo… Esto es, sería mejor que no fuera su fecha de nacimiento, ni la matrícula de su coche, ni el nombre de su hijo, etc.

En cualquier caso, aunque su contraseña sea difícil de predecir y la guarde en lo más recóndito de su intimidad, hay un momento en el que, de alguna forma, la tendrá que revelar (en principio, sólo al sistema ante el que se intenta acreditar). Así que, aun suponiendo que de verdad accedemos al sistema auténtico, y no a un impostor, resulta que, desde que la contraseña sale de sus dedos hasta que llega al lugar donde se comprueba, hay varios lugares en los que un espía podría hacerse con ella.

No disponemos aquí de espacio para presentar las diversas estratagemas que se usan para tan deshonesto fin, unas muy sofisticadas, otras increíblemente simples (la ingenuidad humana no tiene límites). Tampoco pretendemos atemorizarle. Como, de hecho, va a tener que seguir utilizando contraseñas, hágalo, pero de forma higiénica: no elija contraseñas obvias, no las apunte donde se puedan ver –mejor, no las apunte en ningún sitio–, cámbielas de vez en cuando, mantenga su equipo libre de patógenos, no utilice equipos dudosos, no acceda a ningún sitio desde enlaces en e-mails, etc.; también sería recomendable utilizar contraseñas diferentes para cada servicio, aunque, ciertamente, esto puede resultar un tanto engorroso.Puesto que la debilidad intrínseca de la autenticación mediante contraseña es que para su validación hay que revelarla, se han ingeniado alternativas con las que podemos demostrar que estamos en posesión de un secreto sin necesidad de enviarlo.

Funciones resumen

¿Cómo es posible tal cosa? Para explicarlo sin entrar en tecnicismos, imagine la siguiente situación. Partimos de que usted y yo compartimos un secreto. Alguien, que puede ser o no usted, me llama para que realice cierta gestión en su nombre. Para cerciorarme de que la petición realmente procede de usted, le planteo al interlocutor un problema, uno de cuyos datos es, precisamente, el secreto que compartimos. Entonces, si me proporciona una solución correcta será porque tiene conocimiento del dato secreto, y podré suponer que es usted. Pero observe que, sin embargo, no me ha tenido que revelar el dato secreto. Y cada vez, obviamente, le plantearé un problema diferente.

Naturalmente, el problema tiene que ser de tal naturaleza que, conocidos los datos no secretos y la solución, sea imposible (o al menos muy difícil) deducir el dato secreto. Aquí viene en nuestra ayuda la criptografía, con unos artilugios matemáticos denominados “funciones resumen” (en inglés digest functions o hash functions). Una función es un criterio que asocia a cada elemento de un conjunto un elemento de otro conjunto. Las funciones resumen utilizadas en criptografía tienen la propiedad de que son fáciles de calcular (para un ordenador modesto) pero virtualmente imposibles de invertir (incluso con un ordenador muy potente). Es decir, el conocimiento del resultado de aplicar la función a un valor, digamos x, no permite deducir el valor de x.

Podemos utilizar este tipo de funciones para diseñar un sistema de autenticación basado en un secreto compartido que no necesite revelarlo. El mecanismo, simplificando un poco, es el siguiente: el sistema presenta una cadena de caracteres, no demasiado larga, escogida al azar (el desafío); el usuario concatena esta cadena con el secreto y le aplica una función resumen; éste comunica al sistema el resultado (la respuesta); el sistema puede entonces –realizando el mismo cálculo– comprobar si la respuesta es correcta. La fortaleza del sistema depende de las propiedades criptográficas de la función elegida y de la longitud del secreto compartido.

Hemos dicho que estas funciones son fáciles de calcular (en una dirección), incluso con un ordenador modesto, pero resulta que los teléfonos que usamos actualmente son ordenadores (y, de hecho, no tan modestos).

Tocken Móvil

Ingenia ha desarrollado una aplicación (con versiones iOS y Android) llamada Token Móvil que permite utilizar de una forma cómoda este esquema de autenticación. El usuario, tras instalar la aplicación, la configura introduciendo el secreto compartido, que es una cadena de caracteres (un tanto larga; la seguridad depende de esta longitud). Este secreto, por tanto, sólo se teclea una vez, durante la configuración, y se guarda en la memoria del teléfono (convenientemente cifrada). La aplicación funciona de forma totalmente autónoma, sin ningún tipo de comunicaciones. Para más seguridad, durante la configuración (y, adicionalmente, en cualquier momento posterior, si el usuario así lo desea), se establece una contraseña local para la aplicación, de forma que sólo se pueda usar si se conoce. Esta contraseña no se comparte con nadie, nunca sale del teléfono.

Una vez configurada, para usar la aplicación se introduce la contraseña local y, entonces, surge el desafío que nos propone el sistema, normalmente en su página web. La aplicación calcula la respuesta al desafío y la muestra durante unos segundos en la pantalla. El usuario debe teclear esta respuesta en la página web para enviarla al servicio de autenticación del sistema. Hay diversas variantes posibles. Por ejemplo, se puede usar en combinación con el mecanismo clásico de contraseña, o enviar el desafío por un canal alternativo, típicamente vía SMS.

Naturalmente, en la parte del servidor hay que proporcionar los servicios correspondientes de validación. Hay varias alternativas, desde una solución relativamente cerrada basada en una extensión propietaria de los servicios de autenticación y autorización de Microsoft, hasta desarrollos completamente a medida para su integración con cualquier sistema. 

Volver

Newsletter

¿Quieres estar informado? Ya puedes suscribirte GRATIS a nuestra newsletter mensual