¿Qué Técnicas de Autenticación Utilizar?

Autor: Ignacio Velásquez L.

En una entrada anterior se planteó una serie de preguntas con las que se enfrenta un desarrollador a la hora de implementar técnicas de autenticación en una aplicación. Entre ellas: “¿cuál es la técnica de autenticación más apropiada para esta aplicación?” y “¿qué criterios considerar para seleccionarla?”. En esta entrada buscamos responder a estas preguntas.

Debemos recordar que la autenticación se utiliza para validar la identidad de los usuarios de sistemas informáticos, y que las técnicas de autenticación se categorizan en (i) aquellas basadas en “Algo que se Sabe” (Factor de Conocimiento, como las contraseñas); (ii) aquellas basadas en “Algo que se Posee” (Factor de Posesión, como los dispositivos token o las tarjetas de coordenadas); y (iii) aquellas basadas en “Algo que se Es” (Factor de Inherencia o Biométricas, como las huellas dactilares).

Entonces, habiendo tantas técnicas de autenticación, ¿habrá alguna que sea mejor que todas las demás? La respuesta es que no, pues cada una tiene sus ventajas y debilidades. Por ejemplo, los dispositivos token y otras técnicas basadas en el factor de posesión tienden a ser muy seguras, pues uno sólo puede autenticarse si posee el dispositivo, pero precisamente debido a que éste se debe portar constantemente es que la usabilidad de estas técnicas no es la mejor. El caso opuesto se ve con las contraseñas, cuya usabilidad es alta, debido a que solo se debe ingresar una cadena de texto para autenticarse, pero que no presentan un alto nivel de seguridad pues cualquiera que averigüe la contraseña puede acceder a los datos del usuario. ¿Y que tal las biométricas? Si bien éstas tienden a ser más seguras que las contraseñas y más usables que las técnicas basadas en posesión, los costos para su implementación generalmente son más altos.

De este modo, ninguna técnica logra ser mejor que las demás para todos los casos, pero sí es posible que una técnica sea más adecuada para contextos específicos que otras. Aquí es donde surgen otras dos preguntas: ¿cómo sabe un desarrollador qué técnica debería implementar para una aplicación en concreto? y ¿qué criterios se deberían utilizar para tomar esta decisión?

Bien, en la comparación anterior se puede apreciar que se mencionan temas de usabilidad, seguridad y costos. Un estudio en el que ha participado el autor permitió identificar que estos temas eran utilizados a modo de categorías de criterios para seleccionar entre las distintas técnicas de autenticación. También se identificaron otros criterios, como las tendencias futuras y la privacidad de las técnicas, pero éstos eran utilizados muy escasamente. A continuación, se presentan algunos ejemplos de criterios para cada una de las tres categorías:

  • Criterios de Usabilidad: ¿Cuán fácil es utilizar la técnica de autenticación? ¿Existe una curva de aprendizaje para su uso? ¿Requiere la posesión de algún dispositivo?
  • Criterios de Seguridad: ¿Cuál es el nivel de importancia que tiene la seguridad para la aplicación? ¿Trabajará ésta con información sensible del usuario?
  • Criterios de Costos: ¿Cuánto costará la implementación de la técnica de autenticación? ¿Será necesario incurrir en costos adicionales por cada usuario que utilice la aplicación?

Estos y otros criterios son los utilizados normalmente por desarrolladores de software para seleccionar las técnicas de autenticación más adecuadas para las aplicaciones que desarrollan. Pero existe un criterio más que tiene una gran relevancia y es el contexto para el que va dirigida la aplicación. Así, para una aplicación a ser utilizada en un contexto comercial o bancario probablemente sea más importante poseer un mayor nivel de seguridad, aunque esto implique una reducción en el ámbito de la usabilidad, debido a que se trabajaría con transacciones de dinero e información sensible de los usuarios. En cambio, si tenemos una página web donde el usuario solo deba autenticarse para realizar comentarios, por ejemplo, entonces la usabilidad cobraría un rol más importante que la seguridad.

Producto del estudio en el que ha participado el autor, se ha generado un Framework teórico que apoya a la comparación y selección de las distintas técnicas de autenticación, incluida la autenticación multi-factor. Este Framework, llamado Kontun (del Mapudungun “entrar en propiedad ajena”, que es lo que busca evitar la autenticación), toma la lista de criterios anteriormente indicados, instanciada en base a los requerimientos de la aplicación que se desea desarrollar, y provee una lista conteniendo las técnicas de autenticación recomendadas para esa aplicación. Un prototipo de herramienta que implementa este Framework teórico puede ser obtenida aquí. Invitamos a los lectores a utilizar este prototipo y que nos entreguen su realimentación por medio de los comentarios.

Captura de pantalla del prototipo de herramienta del Framework Kontun

Llegamos al final de la entrada. Hemos podido profundizar un poco más en el tema de la autenticación, ratificando que no existe una técnica de autenticación que sea universalmente superior a las demás, además de conocer los criterios que utilizan los desarrolladores para seleccionar qué técnica implementar en cada aplicación. Un par de preguntas para finalizar: ¿cuáles son sus técnicas de autenticación favoritas? ¿qué criterios utilizan o valoran más ustedes para seleccionar entre una u otra técnica de autenticación?

Ignacio Velásquez L.

Ingeniero Civil en Informática

Magister en Ciencias de la Computación

ignaciovl@outlook.com