- ENTRADA 004 -

2FA: Autenticación en dos factores


Mucho cuidado con el tal Juan Pujol García, alias Garbo, es muy testarudo



No voy a explicar que es 2fa porque ya hay 2.500 webs donde te lo explican, en cambio escasas son las que te explican cómo funciona este sistema de autenticación de 2 factores para tus cuentas en la red.


Cuando activas 2fa en la configuración del servicio que quieras, para este ejemplo Mastodon (podría ser twitter, facebook, etc), se nos da un código QR y/o un código de texto que introducirás en la app que utilices en el smartphone (en mi caso Aegis, pero puedes usar freeotp, andotp o la que quieras). Este código viene a ser como una "llave maestra" y es válida únicamente para nuestra cuenta. Dicha llave va a ser nuestro generador único de claves de un solo uso (OTP), así que será mejor que hagas copias de seguridad y las guardes bien en un sitio diferente.


Enhorabuena, ya tienes el generador listo para generar claves OTP


Ahora cuando entres en el servicio Mastodon, aparte de tu usuario y contraseña, te pedirá un código. Abres la app Aegis y sobre esa "llave maestra", automáticamente se aplican cálculos complejos mediante un algoritmo que no varía, pero al que se le aplica una "semilla", en argot informático, que sí que se altera periódicamente, y que está basado en la hora del dispositivo.



NOTA: Por ese motivo es importantísimo que tu reloj del sistema esté sincronizado con la red, ya que si difiere de más de 30 segundos es posible que los códigos que se generan no sean válidos



La app toma la hora completa cuando hacemos el pedido de la clave OTP, lo mezcla con la "llave maestra" y obtenemos una clave de acceso única que solo dura 30 segundos. Pasado ese tiempo, se repite el proceso y la clave cambia por otra nueva.


¿Cómo sabe el servicio Mastodon que las clave OTP que yo genero son correctas? Las apps cumplen con un protocolo llamado TOTP (contraseña de un solo uso basada en tiempo). Dado que el propio servicio Mastodon nos ha dado su "llave maestra" que sí conoce, todo resultado del calculo realizado bajo TOTP en su "llave maestra" va a ser reconocido por ellos.



Lo bueno de este sistema es que esto funciona sin necesidad de estar conectadas a Internet. Una vez tenemos la llave maestra (para esto sí necesitamos conexión) el algoritmo de cálculo viene con la app y para la semilla, el tiempo lo coge del dispositivo, por lo que acceder a nuestras claves se hace casi imposible ya que no se pueden sufrir ataques externos. Si encima activamos el cifrado en la app, las "llaves maestras" estarán seguras si te roban o pierdes el dispositivo.



Bonus track: Esto también se puede hacer en el Pc. Tienes pass-otp como complemento a pass, o authenticator bajo GTK. Si quieres leer cómo usar pass-otp, sigue este enlace:


2FA por consola con pass


Tags: #2fa #pass


◄ Listado de noticias

◄◄ Inicio



/blog/