Ambos son mejores que nada
Vamos a dejar esto claro: si estás eligiendo entre 2FA basado en SMS y sin 2FA, activa SMS. Un segundo factor débil supera a ningún segundo factor. Pero si tienes la opción entre SMS y una aplicación autenticadora TOTP, la autenticadora es la mejor opción. Aquí está por qué.
Cómo funciona el 2FA por SMS
Cuando inicias sesión en una cuenta con 2FA basado en SMS, el servicio envía un mensaje de texto con un código numérico corto a tu número de teléfono. Escribes el código en el formulario de inicio de sesión, y si coincide, estás autenticado.
Sencillo. Ampliamente soportado. Casi todo el mundo tiene un teléfono que recibe mensajes.
El problema es que SMS fue diseñado para comunicación, no para seguridad. Los mensajes de texto pasan por la red de tu operador, y hay varios puntos a lo largo de ese camino donde las cosas pueden salir mal.
Cómo funciona TOTP
TOTP genera códigos en tu dispositivo usando un secreto compartido y la hora actual. Si quieres la explicación completa, hay un artículo separado sobre cómo funciona TOTP. La versión corta: tu aplicación autenticadora y el servidor tienen una copia de la misma clave secreta. Ambos saben qué hora es. Así que producen independientemente el mismo código de 6 dígitos cada 30 segundos. No se necesita red.
Dónde falla SMS
Intercambio de SIM
Este es el problema más grande. Un ataque de intercambio de SIM ocurre cuando alguien convence a tu operador de teléfono de transferir tu número a una nueva tarjeta SIM. El atacante llama al soporte al cliente, se hace pasar por ti (usando información personal de filtraciones de datos, redes sociales, o ingeniería social), y pide activar tu número en su dispositivo.
Una vez que controlan tu número, reciben tus códigos SMS. Luego pueden iniciar sesión en cualquier cuenta donde uses 2FA basado en SMS.
El intercambio de SIM no es teórico. Se ha usado para robar criptomoneda, entrar en cuentas corporativas, y atacar a periodistas y activistas. El Centro de Denuncias de Delitos por Internet del FBI recibió más de 2,000 quejas de intercambio de SIM en un solo año.
Vulnerabilidades SS7
SS7 es un conjunto de protocolos que las redes telefónicas usan para enrutar llamadas y mensajes. Fue diseñado en los años 70, cuando las únicas entidades en la red eran compañías de telecomunicaciones confiables. La seguridad no era una prioridad.
Los investigadores han demostrado que atacantes con acceso a la red SS7 pueden interceptar mensajes de texto sin que la víctima lo sepa. Este tipo de ataque requiere cierta sofisticación técnica y acceso a la red, así que no es algo que un script kiddie al azar logre. Pero actores estatales y grupos criminales bien financiados lo han usado.
Dependencia de red
SMS requiere servicio celular. Sin señal, sin código. Si estás viajando internacionalmente, en un sótano, o en algún lugar con cobertura irregular, es posible que no puedas iniciar sesión.
TOTP funciona offline. El código se genera localmente en tu dispositivo. Podrías estar en modo avión, en un submarino, donde sea. Mientras el reloj de tu dispositivo sea aproximadamente correcto, los códigos funcionan.
Retrasos en la entrega
Los mensajes de texto a veces llegan tarde. Congestión del operador, problemas de red, o enrutamiento internacional pueden retrasar un SMS por segundos o incluso minutos. Si el código expira antes de que lo recibas, tienes que solicitar uno nuevo. Molesto, y ocasionalmente un problema real cuando necesitas iniciar sesión rápidamente.
Los códigos TOTP están disponibles instantáneamente. Abres la aplicación, y el código está ahí.
Dónde SMS tiene ventaja
Conveniencia. No necesitas instalar una aplicación. No necesitas escanear códigos QR. No necesitas entender qué es una “clave secreta”. El servicio te envía un código por mensaje de texto, y lo escribes. Para personas que no se sienten cómodas gestionando una aplicación autenticadora, SMS es más fácil de configurar y usar.
También está la cuestión del respaldo. Si pierdes tu teléfono, puedes obtener una nueva SIM con tu mismo número de tu operador. Recuperar el acceso a una aplicación autenticadora puede ser más difícil si no configuraste respaldos.
La brecha de seguridad, en términos sencillos
La diferencia principal: los códigos TOTP nunca viajan por una red. Se generan en tu dispositivo y se escriben en un formulario de inicio de sesión. Eso es todo. No hay mensaje para interceptar, ni operador para manipular socialmente, ni vulnerabilidad de protocolo para explotar.
Los códigos SMS viajan por infraestructura que no controlas: la red de tu operador, enrutamiento SS7, torres celulares. Cada salto es un punto potencial de intercepción.
NIST (el Instituto Nacional de Estándares y Tecnología de EE. UU.) etiquetó a SMS como un autenticador “restringido” en 2016, recomendando que los servicios se muevan hacia métodos basados en aplicaciones o hardware. Esa recomendación no ha cambiado.
Comparación práctica
| SMS | TOTP | |
|---|---|---|
| Necesita servicio celular | Sí | No |
| Vulnerable a intercambio de SIM | Sí | No |
| Vulnerable a intercepción SS7 | Sí | No |
| Dificultad de configuración | Baja | Baja-media |
| Entrega de código | A veces retrasada | Instantánea |
| Funciona offline | No | Sí |
| Estándar abierto | No | Sí (RFC 6238) |
La conclusión
Si un servicio ofrece TOTP como opción, úsalo. La configuración toma un minuto, y obtienes un segundo factor significativamente más seguro. Si SMS es la única opción disponible, úsalo de todas formas. Cualquier segundo factor reduce tu riesgo comparado con solo una contraseña.
Para un generador TOTP basado en navegador que puedes probar ahora mismo, visita 2fa.zip.