Esta página es para quien revisa la seguridad de una integración, del lado del cliente o del tuyo. Resume cómo protege Totem las claves y los datos, y qué hacer con los datos personales que copias. En Autenticación se detalla cada control.
Claves
- Una clave es un secreto aleatorio largo. Empieza por
tsk_live_, sigue con un identificador de búsqueda y después con unos 256 bits de secreto aleatorio y una suma de control. La suma de control permite a Totem rechazar una clave mal copiada antes de buscarla. - Totem nunca guarda la clave. Conserva un resumen irreversible del secreto, calculado con HMAC-SHA-256 y otro secreto que se guarda fuera de la base de datos de Totem, así que una copia de la base de datos no basta para usar una clave. Totem muestra la clave una sola vez, al crearla, y sus registros identifican una clave por su identificador de búsqueda, nunca por su secreto.
- Las claves no caducan. Una clave funciona hasta que la rotas o la revocas. Rota las claves con la periodicidad que te convenga, por ejemplo cada 90 días, y siempre que se vaya alguien que tenía acceso; en Pruebas y puesta en producción se explica cómo ensayarlo.
- Las claves solo se gestionan en Ajustes. Las claves se crean, se rotan y se revocan en Ajustes → Desarrolladores, nunca a través de la API. Crear o rotar una clave, añadir un equipo y cambiar la lista de IP permitidas piden al administrador que vuelva a iniciar sesión si no lo ha hecho hace poco, y se avisa de cada cambio a los administradores que gestionan la integración y a los de cada equipo que cubre, en Totem y por correo electrónico.
- Revocar es rápido. Una clave revocada deja de funcionar en un máximo de 5 segundos, y revocar nunca exige volver a iniciar sesión, así que puede hacerse al momento durante un incidente.
- El acceso es de solo lectura y por equipos. Ninguna clave puede crear ni modificar nada en Totem. Una clave lee solo los equipos de su integración, con acceso de administrador a ellos, incluidos los canales y los registros marcados como privados, así que da a cada integración solo los equipos que necesita.
- Una clave puede atarse a tus servidores. Una lista de IP permitidas limita una clave a las direcciones IPv4 que indiques.
- Adivinar está limitado. Los intentos fallidos repetidos bloquean durante un tiempo la dirección o la clave, como se explica en Intentos fallidos.
Registros de actividad
Para cada clave, Ajustes → Desarrolladores muestra el Último uso: cuándo hizo la clave su última petición y la red /24 desde la que llegó. Puede ir hasta 10 minutos por detrás.
La Actividad reciente de cada integración muestra sus cambios más recientes, como su creación, cada rotación o revocación de una clave y cada cambio de sus equipos, de su lista de IP permitidas o de su nombre, con la fecha y quién lo hizo. Totem conserva cada una de estas entradas durante 365 días.
Totem cuenta además las peticiones de cada clave por día y por endpoint, y conserva esas cuentas durante 90 días.
Dónde funciona la API
- Región. La API funciona en Google Cloud, en la región
europe-west1, en Bélgica, y lee la base de datos de Totem, que se almacena en la Unión Europea. - Cifrado en tránsito.
api.totemstudio.aisolo responde en el puerto 443, por HTTPS con TLS 1.2 o posterior. No hay ningún servicio en HTTP sin cifrar, así que una clave nunca viaja sin cifrar, y las respuestas de la propia API llevanStrict-Transport-SecurityyX-Content-Type-Options: nosniff. - Sin caché. Delante de la API no hay ninguna CDN ni caché compartida, y cada respuesta de la propia API lleva
Cache-Control: no-store. - Sin navegadores. La API no envía cabeceras CORS y rechaza una clave secreta enviada con una cabecera
Origin(400 secret_key_in_browser), así que una clave pegada en una página web falla al momento en lugar de funcionar sin que nadie lo note. - Un cortafuegos delante. Un cortafuegos filtra las peticiones antes de que lleguen a la API, como se describe en Errores.
Datos personales que recibes
La API devuelve datos personales: el nombre, el correo electrónico, el teléfono, la empresa y las etiquetas de los leads, de dónde vino cada lead (valores UTM y nombres de anuncios, campañas y formularios) y sus actividades, el nombre visible de los miembros del equipo y los metadatos de las llamadas, las conversaciones y las citas. Nunca devuelve el texto de los mensajes, las transcripciones de las llamadas ni las grabaciones. Una vez copias estos datos, protegerlos os corresponde a ti y al cliente al que pertenecen. Te recomendamos que:
- Uses los datos solo para lo que pidió el cliente. Si construyes la integración para un cliente de Totem, usa lo que devuelve solo para los fines de ese cliente.
- Protejas tu copia. Guárdala cifrada, limita quién puede leerla y deja los registros fuera de los logs, los informes de errores y las solicitudes de soporte. Muestra identificadores, no registros enteros.
- Apliques las eliminaciones en cuanto lleguen. Borra el registro de tu copia y de todos los sistemas a los que lo pasaste, y conserva solo su marca de eliminación. Se explica en Eliminaciones, y ¿Cómo respeto las solicitudes de supresión? trata las supresiones.
- Apliques primero los permisos de contacto, antes de que cualquiera de tus sistemas contacte con una persona, como se explica en Primero, los permisos de contacto.
- Devuelvas las bajas a Totem. La API es de solo lectura, así que Totem no puede conocer una baja registrada en tus sistemas. Cuando una persona se dé de baja en ellos, asegúrate de que también quede registrada en el lead en Totem.
- Trates los campos de texto como datos no fiables, como se explica en Convenciones.
- Borres lo que ya no recibes. Cuando se revoca una integración o un equipo sale de ella, Totem ya no puede enviarte eliminaciones de esos datos: borra tu copia, salvo que el cliente te pida conservarla y tenga sus propios motivos para ello. Mientras el acceso está denegado, por ejemplo porque el plan del cliente ha dejado de incluir la API, tampoco llegan eliminaciones: si eso dura más de lo que permite tu política de conservación, borra tu copia.
Informa de una vulnerabilidad
Si encuentras un problema de seguridad en la API, en esta documentación o en el SDK de TypeScript, escribe en privado a hello@totemstudio.ai. Cuenta qué encontraste y cómo reproducirlo con datos ficticios, e incluye los identificadores de petición si los tienes. No incluyas nunca una clave real ni datos reales de clientes, y no lo publiques en una incidencia pública. Si se ha filtrado una de tus claves, sigue primero Si se filtra una clave.