Hacia 2010, las contraseñas robadas eran la vía habitual para entrar en las cuentas, y los sistemas de tokens de hardware eran caros y propietarios. El grupo sectorial OATH desarrolló un algoritmo de contraseña de un solo uso basada en el tiempo, de modo que un código pudiera derivarse de la hora actual y un secreto compartido.
El diseño implicaba que el servidor nunca tuviera que llevar un registro de estado: ambas partes ejecutan HMAC sobre el mismo intervalo de tiempo, de modo que un teléfono y un sitio web coinciden en un código nuevo cada 30 segundos. La IETF publicó el resultado como RFC 6238 en mayo de 2011, un estándar abierto que cualquiera podía implementar.
Google lanzó entonces Google Authenticator como una aplicación gratuita en la que cualquiera podía inscribir códigos escaneando un código QR. Cualquier servicio podía adoptar el mismo estándar abierto, y la autenticación de dos factores pasó a ser una casilla que se marca en lugar de una compra de hardware, extendiéndose por bancos, redes sociales y herramientas para desarrolladores.
Derivar el código a partir del tiempo, de modo que no se necesite ningún estado en el servidor
El tiempo sustituye a los contadores, de modo que el servidor y el teléfono se mantienen sincronizados sin estado
Un RFC abierto implicaba que ningún proveedor fuera dueño del formato
La aplicación gratuita de Google eliminó la barrera del hardware para su adopción
Una contraseña robada por sí sola dejó de ser suficiente para entrar
Distribuir la implementación gratuita junto con el estándar abierto, y el estándar se adopta por sí mismo: no hace falta un equipo de ventas.
TOTP se convirtió en el segundo factor predeterminado para millones de servicios y está integrado en gestores de contraseñas y autenticadores de plataforma. Desde entonces, las claves de acceso WebAuthn resistentes al phishing han empezado a sustituirlo, pero TOTP sigue siendo el estándar de referencia para la autenticación de dos factores.
CONSULTA LAS PRUEBAS
Las fuentes
- Time-based one-time password Wikipedia · en.wikipedia.org
- RFC 6238: TOTP: Time-Based One-Time Password Algorithm IETF / RFC Editor · datatracker.ietf.org