Un tema interesante que me pidieron publicar es el de las apps de autenticación de dos factores (2FA).
En este tutorial sólo comentaré los de Android.
Cuando queremos autenticarnos, ya comenté en un post anterior la enorme importancia de usar una contraseña segura y un doble factor de autenticación.
Como recordaremos, la autenticación multifactor se basa en:
- Algo que sé (contraseña, pregunta secreta…)
- Algo que soy (biometría, localización…)
- Algo que tengo (móvil, token, tarjeta PKI…)
En este caso nos centraremos en las contraseñas de un sólo uso (OTP, de One Time Password), a través de apps 2FA (Two Factor Authentication).
Lo primero es conseguir una app de autenticación de doble factor. En el caso de Android hay una que viene integrada entre las Google apps del Play Store, «Google Authenticator», aunque hay otras de otras empresas, como «Microsoft Authenticator» o incluso el «LastPass Authenticator», gestor de contraseñas que ya mencionamos en una entrada anterior.
He mencionado las anteriores porque me parecen empresas fiables. Hay muchas más, pero no me atrevo a dar referencias porque no sé de su prestigio.
El proceso es el siguiente:
- Habilitamos el 2FA en una cuenta de usuario de algún servicio (Google, Amazon, Facebook…)
- Nos mostrará un código QR y/o un código (el código siempre está. Si no aparece habrá que mostrarlo pulsando algún botón)
- Abrimos la app de autenticación del móvil y le decimos que añada una nueva cuenta
- Por lo general habilitará la cámara del móvil para poder escanear el código QR. Si no es así (porque no queramos darle acceso a la cámara por ejemplo), siempre tendremos la opción de copiar el código a mano.
- La app ya está configurada. Ahora tendremos que autenticarnos en la web por primera vez para que reconozca nuestro dispositivo.
- NOTA IMPORTANTE. Tenemos un tiempo para autenticarnos desde que damos de alta la clave en la app. Si no lo hacemos en un tiempo razonable (depende de la política de la web, pero pueden ser unos 5-10 minutos) tendremos que empezar de nuevo, porque ese código no será válido.
- Para autenticarnos, la web nos pedirá el usuario y contraseña como siempre.
- Una vez metamos las credenciales correctamente, nos pedirá un código (el que aparece en la app).
- La app nos mostrará un código durante un tiempo. Por lo general entre 15 y 30 segundos, dependiendo de la configuración de la web (no lo podemos cambiar nosotros). Pasado ese tiempo, ese código desaparecerá y aparecerá otro.
- Que desaparezca uno y aparezca otro es normal, no tenemos que ir a la carrera para autenticarnos antes de 15 segundos o tendremos que volver a empezar. Si se pasa la ventana de oportunidad (o queda poco tiempo para que la ventana desaparezca, lo sabremos porque los números se empiezan a poner rojos o algo, depende de la app) podemos esperar a la siguiente.
- Copiamos (o memorizamos) el código de la app y lo introducimos en la web tal y como nos pide.
- Y ya estaría. Si hemos metido el código bien y en tiempo (antes de que la ventana de oportunidad pase) nos deja entrar. Si no, entenderá que no somos los legítimos propietarios de la cuenta y tendremos que meter la contraseña de nuevo.
¿Cómo funciona?
La idea es sencilla.
Cuando habilitamos el doble factor y sacamos una foto al QR, la app va a generar un código de un sólo uso (el famoso OTP) mediante un algoritmo matemático. Ese algoritmo usará la secuencia que nos dieron junto al QR (por eso decía que ese código siempre está, aunque no se vea. El QR básicamente es la secuencia que nos dan junto al QR, pero escrito en lenguaje QR) y la hora en la que nos autenticamos por primera vez (el algoritmo TOTP, el más usado), de modo que la web y la app del móvil se sincronizan y van a generar las dos el mismo código de un solo uso.
El 2FA es una herramienta de seguridad muy útil. Conviene que se use siempre que se pueda, bien sea por biometría o mediante apps OTP.
Las apps OTP son recomendables para webs y cuentas de uso general. Mi recomendación es reservar las biométricas para cosas importantes y que requieran mucha seguridad, como el banco, o cosas que podemos controlar fácilmente (desbloquear el móvil). El principio básico es que si usamos la biometría para entrar en webs ajenas que no controlamos (Amazon, Facebook…) esas empresas tienen nuestros datos biométricos, y nosotros sólo somos nosotros una vez, es decir, no podemos resetearnos si roban nuestros datos biométricos de esos servidores.
Para esas aplicaciones son muy útiles los códigos OTP. Los podemos usar con seguridad y si los roban generamos otros.
Para el banco, las medidas de seguridad se presumen muy estrictas (lo son), y nuestro dinero es suficientemente importante como para que merezca la pena tenerlo a salvo sin que dependa de que nos roben el móvil, de modo que datos biométricos son recomendables.
Por último, desbloquear el móvil.
- ¿Pin?
- ¿Patrón?
- ¿Lector de huellas?
El móvil nos lo pueden robar, pero en caso de que lo roben, salvo que seamos un objetivo importante (el presidente de una corporación) y vayan a por la información contenida dentro, lo normal es que lo que quieran sea el móvil en sí, de modo que intentarán borrar todos los datos lo más rápido posible para poder venderlo como usado. Es decir, a nadie que nos robe el móvil le importarán nuestras huellas dactilares (a día de hoy, en el futuro veremos si esa información vale más que el móvil). Ventajas de la biometría para desbloquearlo. No te expones a que alguien vea el pin ni el patrón de desbloqueo. Desventajas… que tu pareja te pille durmiendo y te lo desbloquee, pero ese no es tema para tratar en este blog…