¿Se puede compartir un código QR de Google Authenticator?

Sí, y funciona: el código QR es el secreto. Qué contiene la imagen, qué puede hacer el segundo teléfono y qué registra el proveedor.

Sí, y funciona exactamente como cabe esperar: quien escanee ese código QR obtiene una entrada de autenticación que genera los mismos códigos que los tuyos, en el mismo instante, indefinidamente. Nada de esto es de un solo uso, y nada en el lado del proveedor lo nota. Si es buena idea es otra cuestión, que merece su propio tratamiento; este artículo habla de lo que pasa de verdad.

Funciona porque el código QR no es ni un enlace a tu cuenta ni una invitación de un solo uso. Es una foto de la propia credencial, y por eso lo compartido no se deshace una vez vista la imagen. Lo que un equipo debería hacer con una cuenta de Google Authenticator compartida se trata en compartir los códigos de Google Authenticator en equipo.

Qué hay realmente en la imagen

Un código QR de configuración codifica un texto corto: un URI otpauth://. El lector lee los caracteres, la aplicación los analiza, y la inscripción ha terminado. Lleva:

  • El secreto, en forma de cadena base32, en claro. Ni cifrado ni firmado, y es la única entrada que cuenta.
  • La etiqueta y el emisor: el nombre de cuenta y el nombre de servicio que ves en la lista de la aplicación. Cosmético, y cambiarlos no cambia nada en los códigos.
  • El periodo, en general treinta segundos, la vida de cada código.
  • El número de cifras, en general seis.
  • El algoritmo, en general SHA-1 para TOTP.

Los tres últimos varían en proveedores que quieren ocho cifras o una ventana de sesenta segundos, y el código QR los transporta para que la aplicación no tenga que adivinar. Todo lo que una aplicación de autenticación necesita está en esa cadena, lo que equivale a decir que una captura del código QR es la credencial. Cómo el secreto se convierte en seis cifras se trata en la guía completa del TOTP en equipo.

Dos teléfonos, las mismas seis cifras

Dos personas que escaneen el mismo código QR verán el mismo código, cambiando en el mismo momento, y seguirán siendo idénticos mientras sobreviva la inscripción.

No es una función de sincronización. Un código TOTP se calcula a partir del secreto y de la hora actual redondeada al periodo, sin la menor petición de red: la aplicación nunca pregunta al proveedor cuál es el código. Da a dos dispositivos el mismo secreto y relojes más o menos en hora, y no pueden producir respuestas distintas.

Esos códigos idénticos hacen que el duplicado parezca una cuenta compartida con dos dispositivos autorizados, cuando en realidad existen dos copias independientes de una misma credencial, sin ningún vínculo entre ellas. Un reloj muy desfasado es la única forma de que uno de los dispositivos se salga del ritmo.

Lo que la cuenta registra: nada

Esta es la parte que más cuesta creer. Cuando una segunda persona escanea el código QR:

  • ninguna petición llega al proveedor;
  • ningún dispositivo aparece en los ajustes de seguridad de la cuenta;
  • no se envía ningún correo;
  • nada distingue la segunda aplicación de la primera, en ningún sentido.

La inscripción guarda un secreto en la cuenta: no un dispositivo, no una lista de dispositivos, no un recuento. El proveedor no tiene forma de saber cuántas aplicaciones guardan el secreto, así que no hay ninguna revocación por dispositivo a la que recurrir después. Lo único que invalida una copia es invalidar el propio secreto, desactivando la 2FA de la cuenta y volviéndola a configurar, lo que corta a todos los depositarios de golpe, tú incluido. Ese restablecimiento se describe paso a paso en cómo funcionan los secretos TOTP y por qué no hay que compartirlos.

También explica por qué auditar la cuenta no te enseña nada. La página de seguridad de un servicio donde cuatro personas han escaneado la pantalla de configuración se parece exactamente a la de un servicio donde solo lo hizo una.

Por qué el código QR se muestra normalmente una sola vez

La mayoría de los proveedores muestran el código QR de inscripción durante la configuración y nunca más. Una vez confirmado un código, la página ha desaparecido, y pedir al soporte que la vuelva a mostrar no funciona. Es deliberado: el secreto se escribe en la cuenta en el momento de la inscripción, y el servicio no tiene ninguna razón para mostrarlo dos veces.

Algunos proveedores van más lejos. El secreto en pantalla es un candidato que solo se convierte en el secreto real de la cuenta cuando se introduce un código válido generado con él: si abandonas o recargas la página, obtienes otro, y el código QR fotografiado un minuto antes genera ahora códigos que la cuenta rechaza. Si una imagen guardada de un código QR da códigos rechazados, esta suele ser la explicación.

Cuando ya no lo tienes

No organices nada alrededor de recuperar la imagen original. Vuelve a inscribirte:

  1. Ten a mano los códigos de recuperación de la cuenta, generando una nueva serie si el proveedor se niega a mostrar los existentes.
  2. Desactiva la 2FA en los ajustes de seguridad del proveedor.
  3. Vuelve a activarla y apunta la nueva inscripción al sitio donde el secreto debe vivir a partir de ahora.
  4. Comprueba que un código funciona antes de cerrar la pestaña, y después guarda los nuevos códigos de recuperación en un lugar que no sea la cuenta que recuperan.

Lleva unos minutos y jubila todas las copias del antiguo secreto que anden por ahí, que a menudo es la verdadera razón para hacerlo.

Escanear un código QR que otra persona ya ha escaneado

No pasa nada en particular. La imagen no se consume, la primera inscripción no se ve afectada, y nadie recibe aviso. Obtienes una entrada funcional, la persona siguiente también, sin límite superior. Escanearlo dos veces en el mismo teléfono da dos entradas con el mismo nombre, que generan las mismas cifras.

No hay ningún conflicto que resolver porque no hay ningún estado compartido. Un enlace de restablecimiento de contraseña existe una vez y se gasta; un código QR es la fotografía de una cadena de caracteres.

Lo que Google Authenticator hace, y no hace, aquí

Google Authenticator no tiene ninguna función de compartir, y las dos funciones que la gente confunde con eso hacen otra cosa:

  • La sincronización copia tus cuentas a tus propios dispositivos a través de tu cuenta de Google. Afecta a tu teléfono y a tu tableta, no a tus compañeros. Usarla para un equipo equivale a hacer que varias personas se conecten a una misma cuenta de Google.
  • La transferencia existe para mover tus entradas cuando cambias de teléfono. Apuntada al dispositivo de otra persona, copia los secretos, con el mismo resultado que dar el código QR.

La aplicación tampoco puede decirte lo que guardas. Una entrada que otra persona configuró en tu teléfono es idéntica a una que creaste tú, porque las dos son un secreto con una etiqueta: sin propietario, sin caducidad, sin advertencia. La aplicación de Microsoft se comporta de otro modo en un punto, porque las aprobaciones por notificación no se duplican así, lo que se trata en compartir los códigos de Microsoft Authenticator en equipo.

Borrar la imagen después no cambia nada

Una vez escaneado un código QR, la copia está hecha. Borrar la captura de pantalla, retirar el mensaje o pedir a un compañero que quite la foto de su galería no alcanza a una aplicación que ya guarda el secreto.

La imagen también sobrevive al momento para el que hacía falta: un carrete sincronizado con una copia en la nube, un adjunto en un historial de conversación que los recién llegados pueden remontar, una copia en el ticket donde alguien pedía un acceso. Considera que todo código QR que se ha enviado a alguna parte ha salido definitivamente, y si eso importa para la cuenta en cuestión, el remedio es la reinscripción de arriba.

Qué hacer cuando varias personas necesitan códigos

Primero, comprueba si la plataforma puede dar a cada persona su propia credencial. Cuando puede, no hay ningún código QR que compartir, porque cada persona inscribe su propio segundo factor. Qué cuentas tienen realmente una sola credencial es el tema de la 2FA de una cuenta compartida: ¿cómo debería abordarla un equipo?.

Para las cuentas que de verdad solo tienen una, deja de distribuir el secreto y distribuye los códigos: un solo sitio guarda el secreto, y el acceso a los códigos que genera es una lista que se modifica en vez de una copia que no se puede reclamar. La mecánica está en compartir códigos TOTP sin compartir el secreto, y la comparación de enfoques, teléfono dedicado y entrada compartida de gestor de contraseñas incluidos, está en las mejores formas de gestionar la 2FA de una cuenta compartida.

Dónde se sitúa Share Auth

Share Auth es el sitio único que guarda el secreto. El secreto de cada cuenta se introduce una vez y se cifra en reposo, y los miembros invitados ven el código vigente con su cuenta atrás en lugar de la cadena que hay detrás: no hay, por tanto, nada que puedan escanear en una aplicación suya. Los permisos se ajustan por miembro y por cuenta, cada consulta de código se escribe en un registro de accesos, y retirar a un miembro retira su acceso en todas partes de golpe. Los scripts que deban conectarse pueden pedir los códigos por la API, en lugar de que una persona los lea en voz alta.

El plan gratuito cubre tres secretos y tres miembros sin tarjeta bancaria, lo justo para sacar una cuenta compartida del código QR y ver si este funcionamiento le va bien a tu equipo.

Preguntas frecuentes

Sí. El código QR no es una invitación de un solo uso, es una imagen que contiene el secreto. Todos los que lo escanean inscriben en su propia aplicación una copia perfectamente funcional del segundo factor de la cuenta.

Sigue leyendo · Aplicaciones de autenticación

9 min de lectura

¿Es seguro compartir un código QR 2FA?

No, y lo más útil es saber por qué: quién ve un código QR compartido, qué puede hacer con él, y si una filtración merece un restablecimiento.