Gestionar la 2FA de una cuenta de Stripe compartida

Stripe tiene miembros de equipo, roles y claves restringidas: la mayoría de las conexiones compartidas sobran. Lo que queda de verdad.

La mayoría de las conexiones compartidas de Stripe no tienen razón de existir. Stripe tiene miembros de equipo con roles, y claves de API restringidas para todo lo automatizado: la respuesta, para casi todas las personas que hoy usan una contraseña compartida, es una invitación con un rol y su propio segundo factor.

Lo que queda después suele ser un único identificador: el propietario de la cuenta. Ese sí es único, controla los datos bancarios, y es aquel cuya 2FA merece una custodia meditada en lugar de un teléfono en el bolsillo de alguien.

Por qué los equipos comparten aun así un identificador de Stripe

No por negligencia. Cuatro situaciones familiares:

  • Finanzas lo tiene y soporte lo necesita. Alguien debe encontrar un pago a las 23 h y la persona que tiene el identificador duerme.
  • El contable lo necesita una vez al mes. Montar un acceso parece desproporcionado para doce visitas al año.
  • Una agencia tiene los identificadores del cliente. Se enviaron por correo al arrancar y nadie quiere reabrir la conversación.
  • Nadie quiere tocar la cuenta propietaria. Funciona, está ligada a la dirección de un fundador, y modificarla parece arriesgado.

Las tres primeras tienen respuestas claras en el propio Stripe. La cuarta es el verdadero asunto.

Primero: usa los miembros de equipo y los roles

Invitar a la gente es el paso que elimina el problema en vez de gestionarlo. Cada miembro del equipo se conecta con su propia dirección de correo, configura su propio segundo factor, y aparece con su propio nombre en la actividad de la cuenta. Los roles de Stripe permiten ajustar el acceso al trabajo: administración completa para quien la necesita, roles más estrechos para soporte y análisis.

Tres casos se repiten todo el tiempo:

Soporte y operaciones. Un rol que permita buscar pagos y emitir reembolsos si es su oficio, y nada que se acerque a los datos bancarios. Es lo que elimina el mensaje de las 23 h a quien tiene el teléfono.

El contable. Un rol orientado a la lectura vale más que entregar el identificador, y convierte el fin del encargo en una simple retirada en vez de un cambio de contraseña.

Las agencias que trabajan en la cuenta de un cliente. Pide al cliente que te invite como miembro del equipo en lugar de enviarte identificadores. Es mejor para él, puesto que ve lo que has hecho y puede retirarte limpiamente, lo que hace la conversación fácil, y te libra por completo de su problema de 2FA.

Si el inicio de sesión único está disponible en tu cuenta, resuelve todo esto de golpe y merece que te informes.

Para todo lo automatizado: claves de API restringidas

Los scripts, los procesos de conciliación y las herramientas internas no deberían conectarse al panel en absoluto. Las claves de API restringidas existen para eso, y son todo lo que un secreto TOTP no es: limitadas a permisos precisos, revocables individualmente, y renovables sin tocar el acceso de nadie.

La regla: si un humano escribe un código de seis cifras para que una máquina haga su trabajo, la integración está mal construida.

Lo que queda de verdad: la cuenta propietaria

Algunas cosas dependen del propietario de la cuenta y no se delegan: cambiar la cuenta bancaria, transferir la propiedad, recuperar el propio identificador. Ese identificador es real, es único, y varias personas suelen necesitar poder alcanzarlo, porque una empresa donde exactamente un ser humano puede cambiar el destino de los pagos tiene otro problema.

Ahí es, pues, donde la 2FA compartida es legítima, y ahí donde debe llevarse con mano firme:

  • Una custodia única del secreto, introducido una vez, conocida por al menos dos administradores.
  • Un acceso a los códigos por persona, para el pequeño número de gente que de verdad lo necesita.
  • Un registro de quién leyó un código, porque en una cuenta de pagos «quién se conectó el martes» debe tener respuesta.
  • Códigos de recuperación guardados fuera de la cuenta que recuperan, con la ubicación del secreto anotada en alguna parte.

El razonamiento general detrás de esos cuatro puntos está en cómo compartir códigos 2FA en equipo con seguridad, y la comparación de mecanismos en las mejores formas de gestionar la 2FA de una cuenta compartida.

Lo que no hay que hacer en una cuenta de pagos

  • Capturar el código QR de inscripción para que cada uno lo añada. Es el secreto, definitivamente, en dispositivos desconocidos. En una cuenta de Stripe es el peor sitio para hacerlo.
  • Guardar el secreto TOTP en la misma entrada de caja fuerte que la contraseña. Una sola compromisión entrega entonces los dos factores.
  • Dejar el SMS como segundo factor. Una cuenta de pagos bien vale el esfuerzo de un intercambio de tarjeta SIM; un código generado por una aplicación, no.
  • Hacer del teléfono de una sola persona la única vía de acceso. Es un problema de disponibilidad en la cuenta que paga a tus proveedores.

Cuando alguien se va de una cuenta de Stripe

Cuando alguien se marcha, en este orden:

  1. Retira su acceso de miembro del equipo. Una acción, nada más se toca.
  2. Rota las claves de API que creó, así como toda clave restringida usada por sus herramientas.
  3. Si alguna vez guardó el secreto TOTP de la cuenta propietaria, restablece la 2FA de esa cuenta, cierra todas las sesiones y cambia la contraseña. El secreto no sale de su teléfono por sí solo.
  4. Revisa los ajustes de pago y de cuenta bancaria, así como la actividad reciente, para detectar lo que hubiera cambiado en torno a su salida.

El paso 3 es la razón de ser de la custodia descrita antes: si solo dos administradores han guardado el secreto, la mayoría de las salidas se saltan ese paso, y las que no se lo saltan corresponden a un trabajo conocido y acotado.

Dónde se sitúa Share Auth

Para la cuenta propietaria y cualquier otra cuenta de Stripe que de verdad tenga un solo juego de datos de conexión: el secreto se introduce una vez y se cifra en reposo, las personas que necesitan los códigos ven el código vigente y su cuenta atrás en lugar del secreto, los permisos se ajustan por miembro, y cada consulta se escribe en un registro de accesos. Retirar a alguien retira su acceso en todas partes de golpe.

Para todo lo demás de este artículo, los miembros de equipo y las claves restringidas de Stripe son la mejor respuesta, y ninguna caja fuerte tiene que meterse.

Preguntas frecuentes

Sí, y sin compartir ningún identificador: invítalas como miembros del equipo. Cada una se conecta con su propia dirección de correo y su propio segundo factor, recibe un rol ajustado a su trabajo, y aparece con su propio nombre en la actividad de la cuenta.

Sigue leyendo · Herramienta por herramienta