La activación de un segundo factor de autenticación (two-factor authentication o 2FA) permite añadir un nivel extra de protección a nuestras cuentas de usuario de servicios online.
Cuando se ha activado 2FA, para acceder a nuestra cuenta de usuario se necesita, además del nombre de usuario (username) y la contraseña (password), una información adicional proveniente de alguna de estas categorías:
- Algo que conoces: un PIN (personal identification number), otra contraseña, la respuesta a una “pregunta secreta”, un patrón de teclas específico, etc.
- Algo que tienes: una tarjeta inteligente, un teléfono, un pequeño token hardware, etc.
- Algo que eres: el patrón biométrico de la huella digital, un escaneo del iris del ojo, una impresión de voz, etc.
Uno de los métodos 2FA más básicos se basa en enviar un SMS al teléfono del usuario. Después de introducir un nombre de usuario y una contraseña válidos en el servicio online, se envía al usuario un código de un único uso (OTP, one-time password) que éste deberá introducir para completar el acceso.
Nota: El uso de SMS como 2FA no se considera seguro debido a la existencia de técnicas mediante las cuales un ciberdelincuente puede suplantar el teléfono del usuario para recibir el código OTP (por ejemplo el SIM swapping).
Software tokens
Una de las formas más populares de 2FA es la generación por software de códigos de un único uso basados en tiempo (TOTP, time-based one-time password).
Para usarlos, es necesario descargar e instalar una aplicación 2FA en el teléfono móvil o en el ordenador. Esta aplicación genera un código temporal (habitualmente cada 30 segundos) que será necesario introducir, después del nombre de usuario y la contraseña, para acceder a un determinado servicio online:
Estas aplicaciones generan estos códigos temporales mediante un algoritmo que utiliza una clave secreta que proporciona cada servicio, normalmente mediante un código QR, en el momento de activar 2FA en el mismo.
Activación de 2FA
La mayoría de servicios online que se preocupan por la seguridad permiten activar 2FA o 2SV (two-step verification) desde alguna opción de la configuración de la cuenta relacionada con la seguridad.
Opciones de seguridad
En el siguiente ejemplo, esta opción está en la sección Your profile
→ Security settings
→ Two-Factor Authentication
. Pulsaremos Click here to Enable
para comenzar el proceso:
Método 2FA
Si el servicio online soporta diferentes tipos de 2FA, intentaremos evitar el uso del teléfono/SMS y elegiremos la opción para generar códigos TOTP mediante una aplicación:
Nota: Aunque el sitio web indique Google Authenticator, se puede utilizar cualquier aplicación que permita generar códigos TOTP: Microsoft Authenticator, Authy, andOTP, etc.
Código QR y clave secreta
A continuación, el servicio suele mostrar un código QR que se puede escanear mediante la aplicación 2FA para añadir el servicio a la misma. A veces, también se proporciona la clave secreta en forma de texto para poder añadir el servicio a la aplicación 2FA de forma manual:
Nota: Hay quien argumenta que no se deben escanear los códigos QR 2FA debido a que éstos incluyen más información de la necesaria para generar los códigos TOTP (por ejemplo, la dirección de correo electrónico o la URL del servicio).
Si pierdes o te roban el teléfono, y la aplicación 2FA no realiza copias de seguridad de la información, podríamos perder el acceso a nuestros servicios online al no poder introducir el segundo factor de autenticación. Por ese motivo, se recomienda guardar en un lugar seguro los códigos QR y la clave secreta para poder volver a introducirlos en la aplicación si fuese necesario.
Nota: Este lugar seguro no debería ser nuestro gestor de contraseñas habitual ya que, si un atacante consigue obtener acceso al mismo, tendría todo lo necesario para acceder a nuestros servicios online. Por este motivo, hay quien imprime los códigos QR para guardarlos fuera del ordenador.
Guardado seguro de la información 2FA
Una solución al problema de guardar la información 2FA de forma segura podría ser la siguiente:
- Gestor de contraseñas principal (por ejemplo Bitwarden) para guardar:
- nombre del servicio y URL del mismo
- nombre de usuario
- contraseña (generada de forma aleatoria)
- notas sobre el servicio
- etc.
- Gestor de contraseñas local (por ejemplo KeePassXC) para guardar únicamente:
- nombre del servicio
- imagen adjunta del código QR (en formato
png
ojpg
) - clave secreta
- backup codes (si se proporcionan)
Nota: Si se necesita más seguridad, la base de datos de este gestor de contraseñas local se puede almacenar en una unidad encriptada (por ejemplo usando Cryptomator).
Añadir el servicio a la aplicación 2FA
A continuación, se añade el servicio a la aplicación 2FA de forma manual introduciendo la clave secreta que se ha guardado en el gestor de contraseñas local. De esta forma, si todo funciona correctamente, se garantiza que la información guardada es correcta para una posible recuperación en el futuro.
Si el servicio no proporciona la clave secreta, se puede utilizar una aplicación para escanear códigos QR (por ejemplo, Barcode Scanner) para obtenerla a partir de la URI otpauth://totp
tal como se muestra en la siguiente imagen:
Verificación del 2FA
Finalmente, se requerirá introducir el código TOTP obtenido mediante la aplicación 2FA para que el servicio lo valide:
Si la validación es correcta, el servicio quedará configurado para usar 2FA a partir de ese instante. Al final del proceso, algunos servicios también proporcionan uno o más backup codes de un solo uso para usarlos cuando no se puede utilizar la aplicación 2FA:
Nota: Es muy aconsejable guardar los backup codes en el mismo gestor de contraseñas local que el código QR y la clave secreta.