Autentificación en dos pasos en Android y en Ubuntu Touch

Aegis Authenticator

Para acceder a cualquier servicio en Internet, ya sea nuestro correo electrónico o a los diferentes servicios, usamos un usuario y una contraseña. Con los dos elementos el sistema puede identificarnos y nos permite acceder a la información privada. Este sistema es muy básico y tiene varios problemas. El primero es que el usuario recicle contraseñas entre diferentes servicios. Por ejemplo, es relativamente sencillo conocer el correo electrónico que ha usado el usuario. La contraseña es más complicado excepto si el usuario la ha usado en más servicios. Es cierto que es complicado crear una contraseña independiente por servicio pero hay herramientas que nos lo facilitan. Al trabajar con servicios con millones de usuarios, se puede producir una filtración de usuarios / contraseñas. Con esa información, un atacante puede probar las contraseñas que se han filtrado y con un poco de suerte, acceder a nuestras cuentas.

SMS como autentificación en dos pasos

Con el fin de limitar este problema, se suele utilizar un factor adicional para identificarnos. El nivel más básico incluye un SMS a nuestro número de teléfono. Como el teléfono siempre está con nosotros, es razonable pensar que evita el problema. Es cierto, en parte. Un atacante puede solicitar un duplicado de SIM. Si lo consigue, teniendo en cuenta que se pide antes el DNI, puede usar nuestro usuario / contraseña y superar el código que nos llega por SMS. Debido a esta problemática, no se recomienda usar autentificación en dos pasos con SMS. El problema que tenemos es que muchos servicios, bancos incluidos, piensan que el riesgo es pequeño y lo siguen utilizando. De momento les sale más rentable este sistema que migrar a una versión más segura.

Logo SMS Backup & Restore

Código como autentificación en dos pasos

Este caso es similar al anterior en el sentido que introducimos un código para acceder al servicio. La diferencia es que el código se genera en nuestro teléfono, sin depender de ningún elemento extra como el SMS. Cuando abrimos una aplicación que trabaje con códigos de autentificación en dos pasos, se genera un código “aleatorio” que cambia cada 30 segundos. Por el tipo de aplicación que son, no permiten hacer capturas de pantalla así que os pondré capturas de pantalla del creador de la aplicación. Ese código que cambia tiene que “cambiar” igual en el lado del servidor. Cuando los dos códigos coinciden, el servidor nos deja entrar en nuestra cuenta.

Authy (Android)

Cada servicio que tengamos en la aplicación necesita de una semilla. Esa semilla es la que permite generar los códigos aleatorios. No se puede obtener la semilla a partir de los códigos generados. Se define cuando añadimos una cuenta a la aplicación de autentificación en dos pasos. Una ventaja que tenemos con este tipo de aplicaciones es que, como sólo necesitan la semilla para generar los códigos, pueden funcionar en cualquier sistema operativo: Android, Ubuntu Touch, Windows, GNU/Linux, etc.

Las aplicaciones de autentificación en dos pasos se pueden dividir en dos grupos dependiendo de si se sincronizan en línea o trabajan de forma local. Las primeras sincronizar sus datos con un servidor. A partir de tus credenciales y de una contraseña de desbloqueo, puedes acceder a los códigos. Son más cómodas pero también están expuestas a ataques de terceros. Authy es una aplicación muy usada y tuvieron hace relativamente poco una intrusión en sus sistemas. Parece que no obtuvieron información importante pero siempre existe un riesgo.

Pantalla de ejemplo de Authy (Google Play)

Aegis Authenticator (Android)

Aegis Authenticator funciona de forma similar a KeePass. Definimos un archivo con una contraseña y con esa información podemos acceder a los códigos. Si queremos guardar una copia de los archivos es necesario copiar el archivo de forma manual al ordenador. Los datos están cifrados y se pueden desbloquear usando el lector de huellas. Un detalle que me gustaría comentar es que es recomendable usar aplicaciones diferentes para credenciales y para códigos de autentificación. Si están juntos los datos, por ejemplo en KeePass, un tercero podría acceder en el mismo sitio a los credenciales y a los códigos de autentificación. Al tenerlo en dos sitios la cosa se complica. Por ejemplo, se puede tener el desbloqueo por huella en Aegis Authenticator y sólo poder acceder a los datos de KeePass con la contraseña.

Pantalla de ejemplo de Aegis Authenticator (Google Play)

2FA Manager (Ubuntu Touch)

Esta aplicación hace la misma función que Aegis Authenticator pero en Ubuntu Touch. La ha programado Joan CiberSheep y es una aplicación fiable. Está adaptada para funcionar en Ubuntu Touch (Focal).

2FA Manager (Ubuntu Touch)

Aplicaciones cerradas para autentificación en dos pasos

Por lo general, el usuario puede elegir la aplicación que usa. Hay servicios, como algunos gimnasios, que tienen una aplicación propia para la autentificación en dos pasos. Como no podemos escanear el QR inicial, no podemos sacar la semilla y obligatoriamente hay que usar su aplicación. En estos casos poco se puede hacer ya que, aunque usan un sistema abierto para generar los códigos de autentificación, no nos dejan acceder a la semilla. Es una forma que tienen de controlar los dispositivos que tienen la aplicación instalada.

Conclusiones

Si tenéis cuentas en diferentes servicios en línea, es recomendable tener por una parte, un usuario y una contraseña fuerte. Por otra parte, hay que activar la autentificación en dos pasos si lo admiten. Lo primero se puede lograr usando un gestor de contraseñas offline como es KeePass. Aunque sea más cómodo usar un gestor de contraseñas online, no es recomendable porque los servidores sufren ataques y se pueden filtrar todas nuestras contraseñas. Para lo segundo podéis usar algunas de las aplicaciones que hemos visto en esta entrada. Me gustaría haber puesto más capturas de pantallas, pero es complicado cuando el propio sistema operativo las bloquea. Si tenéis cualquier duda, podéis preguntarme en los comentarios y os guiaré.

Puede ser duro tener que seguir estas medidas de seguridad, pero es necesario. Cualquier servidor recibe ataques de forma continua desde Internet. Contra más grande sea el premio, más lo van a intentar. No tienen nada que perder y mucho que ganar. El punto más importante es, bajo ningún concepto, reciclar contraseñas entre servicios. Con que se filtre la contraseña de un sitio, ya pueden acceder a las cuentas en las que hayas usado las mismas contraseñas. La autentificación en dos pasos lo limita pero es importante usar un gestor de contraseñas y tener credenciales diferentes por servicio.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.