
Compartir códigos TOTP sin compartir el secreto
Dar a tus compañeros un código TOTP válido guardando el secreto en el mismo sitio, y lo que implica cada enfoque el día que hay que retirar un acceso.
El secreto y la hora actual son las únicas entradas de un código TOTP: no se puede, por tanto, calcular uno sin el secreto. El truco no es compartir el secreto de otro modo, sino hacer que el dispositivo de cada uno deje de necesitarlo: algo guarda el secreto y distribuye los códigos bajo demanda. Esa distinción es todo el asunto de cómo compartir códigos 2FA en equipo con seguridad; este artículo habla de mecánica.
Por qué la diferencia cuenta tanto
Un código vale unos treinta segundos. Enviárselo a un compañero es más o menos tan delicado como leer un número de seguimiento de un paquete: para cuando se filtre, ya no es válido, y de todos modos solo habría servido para un intento de conexión.
Un secreto vale todo lo que vale la cuenta, mientras la 2FA siga configurada. Suele tener de 16 a 32 caracteres, es lo que contiene el código QR, y sus copias son invisibles: nada en la página de seguridad de la cuenta te dirá jamás que cuatro personas escanearon la pantalla de configuración en 2024.
Es esa asimetría la que hace que «compartimos los códigos» y «compartimos el código QR una vez» describan dos posturas de seguridad completamente distintas, aunque ambas se parezcan a compartir 2FA.
Tres formas de distribuir códigos, no secretos
Una caja fuerte compartida que muestra los códigos
El secreto lo introduce una vez la persona que administra la cuenta, y se guarda cifrado. Los compañeros a los que se ha dado acceso abren la entrada y ven el código vigente con su cuenta atrás. Nunca ven la cadena de detrás, y no pueden inscribir su propia aplicación a partir de ahí.
Es la respuesta polivalente, y la que sobrevive a las altas y a las bajas, porque el acceso es una lista que se modifica en lugar de un secreto que no se puede reclamar.
En forma de producto, eso es una aplicación de autenticación compartida: la caja fuerte guarda el secreto, la gente no guarda nada.
Una llamada de API desde tus propias herramientas
Si la conexión la hace un script, una exportación nocturna, un job de CI o un robot que publica en una cuenta de cliente, el código no necesita llegar hasta un humano. Tus herramientas piden el código vigente en el momento de conectarse, y el secreto se queda en el servidor.
La regla: la credencial que tu script usa para pedir el código debe estar tan protegida como la propia cuenta, y limitada a la única cuenta que necesita.
Leerlo en voz alta, deliberadamente
Alguien con acceso lee el código a un compañero por teléfono. Merece nombrarse, porque es lo que ya hacen la mayoría de los equipos, y porque no está mal. Se comparte exactamente lo efímero, y nada más.
Sus límites son prácticos y no criptográficos: hacen falta dos personas despiertas a la vez, no deja ningún rastro de quién se conectó, y convierte a una persona en el cuello de botella de todas las demás.
Lo que se pierde al compartir el secreto en su lugar
Si el secreto sale, pegado en un canal, capturado en imagen o depositado en una nota compartida, tres cosas se vuelven ciertas de golpe, y siguen siéndolo hasta el restablecimiento de la 2FA:
- Se pierde el recuento. Imposible saber cuántos dispositivos lo guardan.
- Se pierde la revocación. Retirar a alguien de un canal no retira el secreto de su aplicación de autenticación.
- Se pierde la independencia del segundo factor. Allí donde el secreto se encuentra junto a la contraseña, un atacante que alcance ese sitio tiene los dos factores.
Nada de esto es teórico, y nada aparece en una auditoría de la propia cuenta. Se ve meses después, cuando alguien que dejó la empresa sigue disponiendo de un generador de códigos funcional.
Una lista de comprobación corta
- El secreto se introduce una vez, en un solo sitio, por un administrador de la cuenta.
- Todos los demás tienen acceso a los códigos, concedido persona a persona y cuenta a cuenta.
- Las consultas se registran, para que «quién se conectó el martes» tenga respuesta.
- Los códigos de recuperación se guardan con el secreto, no se distribuyen con él.
- Todo secreto que se haya publicado en algún sitio se considera quemado: restablecer la 2FA de esa cuenta y volver a inscribir.
Preguntas frecuentes
No en tu propio dispositivo: el secreto es la única entrada, junto con la hora. Lo que sí se puede hacer es dejar que otra cosa guarde el secreto y genere el código bajo demanda, que es lo que hace una caja fuerte compartida o una llamada de API.
Sí. El código QR codifica un URI otpauth: que contiene el secreto en claro. Cualquiera que vea la imagen puede inscribir su propia aplicación de autenticación, definitivamente.
Si las personas solo han visto códigos, basta con retirarles el acceso y ya está. Si guardan el secreto, la única revocación real consiste en restablecer la 2FA de la propia cuenta y volver a inscribir a todos los que deben conservar el acceso.
Hace falta que sea recuperable, que no es lo mismo que compartido. Guárdalo donde los administradores de la cuenta puedan encontrarlo, con los códigos de recuperación del proveedor, y da a todos los demás acceso a los códigos.
Sigue leyendo · Compartir códigos en equipo
Cómo compartir códigos 2FA en equipo con seguridadGuía
Cuatro formas de compartir códigos 2FA en equipo, lo que cuesta cada una, y cómo dar los códigos sin distribuir el secreto que los genera.
¿Pueden varias personas usar el mismo TOTP?
Sí, técnicamente: varios dispositivos con el mismo secreto generan el mismo código. Lo que pasa de verdad entre dos, y lo que cuesta.
Dar a los empleados acceso a la 2FA sin darles el secreto
Diseñar los accesos 2FA de la plantilla: qué se concede por cuenta y por rol, y cómo gestionar altas, cambios de puesto y salidas.