Saltar al contenido

Seguridad

Los datos financieros merecen una contención de nivel financiero.

Esta página describe lo que hacemos hoy, en términos concretos. Evita el lenguaje de marketing a propósito. Cuando algo todavía no está implantado, lo dice.

Ruta de control

En curso

  1. Solicitud · acción sensible

    pendiente

    Un miembro elimina un archivo original

    La solicitud llega con la cookie de sesión (limitada al host, SameSite=Lax) y el contexto del espacio de trabajo del miembro.

  2. Aislamiento del espacio de trabajo

    pendiente

    La seguridad a nivel de fila filtra la consulta

    La propia base de datos restringe la consulta al espacio de trabajo del miembro. El código de la aplicación no puede eludir la política por accidente.

  3. Almacenamiento privado

    pendiente

    El objeto vive en un bucket privado

    Bajo el prefijo del espacio de trabajo, leído solo por el servidor para extraer el texto, nunca devuelto al navegador. Eliminar retira el objeto; no se limita a ocultarlo.

  4. AAL2 · elevación

    pendiente

    Se exige un segundo factor reciente

    Las acciones sensibles requieren una verificación TOTP reciente (AAL2), no solo una sesión válida.

  5. Evento de auditoría

    pendiente

    Autor · acción · objeto · fecha y hora

    La eliminación se registra con su autor y su marca de tiempo, igual que las confirmaciones de reglas, las decisiones y los cambios de miembros.

Cada control existe hoy en el código y se ejercita en las pruebas automatizadas.

Arquitectura

El recorrido de un documento y el control que se aplica en cada paso. Cada propiedad de abajo está implementada hoy.

  1. Navegador

    Cookie de sesión limitada al host, SameSite=Lax, renovada en el servidor en cada solicitud.

    Implementado
  2. Límite del espacio de trabajo

    Seguridad a nivel de fila: cada consulta se filtra por espacio de trabajo en la base de datos, no solo en la aplicación.

    Implementado
  3. Almacenamiento privado

    Archivos en un bucket privado bajo el prefijo del espacio de trabajo. Los lee solo el servidor, para extraer su texto; nunca se devuelven al navegador. Eliminables bajo demanda; eliminados automáticamente según calendario.

    Implementado
  4. Extracción

    Un modelo propone términos de facturación a partir del texto del contrato. Las propuestas se etiquetan y se almacenan separadas de las reglas.

    Implementado
  5. Reglas confirmadas por personas

    Solo una persona convierte una propuesta en regla. Con versión, fecha y autor.

    Implementado
  6. Cálculo determinista

    Aritmética de enteros, un solo redondeo, cada paso registrado. Repetible a partir de las entradas almacenadas.

    Implementado

Cada control de abajo existe en el código y lo ejercitan las suites de pruebas automatizadas. La verificación en el entorno de producción alojado forma parte de la puerta de lanzamiento y no se afirma aquí.

Aislamiento de espacios de trabajo

Cada registro de negocio — contratos, reglas, archivos subidos, hallazgos, decisiones — lleva un identificador de espacio de trabajo. El acceso se aplica mediante seguridad a nivel de fila (row-level security) en la base de datos: una consulta solo devuelve filas que pertenecen a un espacio de trabajo del que el usuario conectado es miembro. El código de la aplicación no puede eludirlo por error, porque la base de datos aplica la política sea cual sea la consulta.

Las credenciales de servicio con privilegios elevados se usan solo en el servidor, nunca desde el navegador. Sirven para los webhooks de pago y la consulta de la suscripción, la ejecución diaria de retención, el formulario público de solicitud de Free Preflight (cuya tabla no puede leer ningún usuario con sesión) y para guardar el resultado del motor de cálculo una vez comprobada la pertenencia de quien lo ejecuta. El hook de correo de autenticación está protegido por un secreto compartido distinto.

Almacenamiento y conservación

  • Los archivos subidos los escribe el servidor en un bucket de almacenamiento privado. No hay objetos públicos.
  • Los archivos nunca se devuelven al navegador. El servidor lee un archivo solo para extraer su texto, y las políticas de almacenamiento limitan la lectura, la subida y la eliminación a los miembros del espacio de trabajo bajo cuyo prefijo está el archivo.
  • Un miembro con una verificación reciente del segundo factor puede eliminar cualquier archivo original de inmediato. La eliminación retira el objeto del almacenamiento y el texto extraído de él; no se limita a ocultarlo, y queda registrada en el registro de auditoría.
  • Los archivos originales que no hayas eliminado se retiran automáticamente al final del periodo de retención del espacio de trabajo: 30 días por defecto, que el propietario del espacio puede fijar entre 7 y 90 días. La retirada se produce durante la ejecución diaria posterior a la fecha de vencimiento —normalmente en un plazo de 24 horas— y queda registrada en el registro de auditoría.
  • Solo se eliminan el archivo original y el texto extraído de él. Todo lo derivado de ellos permanece en tu espacio de trabajo: las reglas de facturación confirmadas y sus extractos de cláusula, así como las propuestas de la IA y sus extractos, están vinculadas al acuerdo del cliente y se reutilizan de un ciclo al siguiente; las filas importadas normalizadas, los hallazgos con sus datos y pasos de cálculo y tus decisiones de confirmar o rechazar están vinculados al preflight; los metadatos del archivo (nombre, tamaño, huella) están vinculados al registro del espacio de trabajo. Abandonar un ciclo en borrador o archivar un cliente oculta estos registros sin eliminarlos. Se retiran cuando el propietario elimina el espacio de trabajo; hasta entonces, cada resultado puede reproducirse y auditarse.

Límites de la IA

Se utiliza un modelo de lenguaje para dos tareas concretas: extraer condiciones de facturación candidatas de un contrato y proponer qué línea de factura podría corresponder a qué concepto. Su salida se valida, se etiqueta como propuesta por la IA y se almacena separada de las reglas confirmadas.

  • Nada de lo que propone el modelo afecta a un hallazgo financiero hasta que una persona lo confirma.
  • El modelo nunca calcula dinero. Todos los importes los produce un motor determinista a partir de las reglas confirmadas y la evidencia importada, en unidades monetarias enteras, con cada paso registrado.
  • El texto del contrato se envía al proveedor de IA únicamente desde nuestros servidores, por conexiones cifradas. El proveedor lo procesa para responder a la solicitud; según sus condiciones estándar de API puede conservar entradas y salidas hasta 30 días, y más tiempo, hasta dos años, si un intercambio se marca por infringir sus normas. No hemos firmado un acuerdo de retención cero de datos.

Analítica y monitorización

Registramos eventos de producto (se creó un preflight, se confirmó una regla) y errores de la aplicación para mantener el servicio en funcionamiento. Estos eventos contienen identificadores y marcas de tiempo, no contenido. Los extractos de contratos, las líneas de factura, los importes y el contenido de los archivos quedan excluidos de la analítica y de los informes de error.

Acceso y sesiones

  • La autenticación la gestiona nuestro proveedor de identidad; nunca almacenamos contraseñas en claro.
  • Las sesiones se basan en una cookie: limitada al host truviate.com, enviada con SameSite=Lax y renovada en el servidor en cada solicitud.
  • La pertenencia al espacio de trabajo determina lo que un usuario puede ver y hacer. Retirar a un miembro revoca su acceso de inmediato.
  • Todo el tráfico se cifra en tránsito con TLS.

Autenticación multifactor y elevación de nivel

  • La autenticación multifactor con contraseña de un solo uso basada en tiempo (TOTP) se exige antes de la primera subida de documentos: una subida sin autenticador registrado se rechaza, y la aplicación te lleva a la pantalla de registro y de vuelta a la subida.
  • Las acciones sensibles (gestión de miembros, ajustes de seguridad, eliminación del espacio de trabajo) exigen una verificación reciente del segundo factor (elevación AAL2), no solo una sesión válida.
  • Desde los ajustes de seguridad puedes cerrar todas tus otras sesiones, o todas las sesiones incluida esta. Un cambio de contraseña también cierra tus otras sesiones.

Registro de auditoría

  • Confirmaciones de reglas, decisiones sobre hallazgos, cambios de miembros y eliminaciones se registran con quién actuó y cuándo.
  • Los hallazgos conservan sus entradas y pasos de cálculo, de modo que cualquier resultado puede reproducirse a partir de los datos almacenados.

Retención y purga

  • Un miembro con una verificación reciente del segundo factor puede eliminar de inmediato los archivos subidos, y se purgan automáticamente en la ejecución diaria posterior al final del periodo de retención del espacio de trabajo. Las eliminaciones automáticas y manuales quedan registradas en el registro de auditoría.
  • Eliminar un espacio de trabajo elimina sus registros; el último propietario no puede retirarse por accidente.

Implementado hoy, estado en producción y límites conocidos

Implementado en la aplicación y ejercitado por pruebas automatizadas
  • Aislamiento de espacios de trabajo
  • Almacenamiento y conservación
  • Límites de la IA
  • Autenticación multifactor y elevación de nivel
  • Registro de auditoría
  • Retención y purga
Estado en producción y límites conocidos
  • Límites de tasa: los contadores de la aplicación sobre subidas, extracciones, ejecuciones e invitaciones se mantienen por instancia de servidor, una primera barrera y no un almacén compartido; los límites de inicio de sesión, registro y restablecimiento de contraseña los aplica el proveedor de identidad.
  • El correo transaccional desde un dominio de envío verificado, el hook de correo de autenticación y la protección contra bots en el inicio de sesión y los formularios públicos están en servicio en producción y se prueban allí desde el 22 de septiembre de 2026.
  • No se ha encargado ninguna revisión de seguridad independiente por un tercero; ninguna está en curso. Véase más abajo lo que todavía no afirmamos.

Lo que todavía no afirmamos

Truviate aún no ha completado una certificación de seguridad de terceros ni una auditoría independiente. Preferimos decirlo con claridad antes que tomar prestada una insignia. Los controles anteriores son los que realmente están en marcha; si necesitas algo concreto para tu propia revisión, pregúntanos y responderemos directamente.

Divulgación responsable

Si crees haber encontrado un problema de seguridad, escribe a support@truviate.com con detalles suficientes para reproducirlo. Acusamos recibo con rapidez, te mantenemos informado durante la investigación y no emprendemos acciones contra quienes investigan de buena fe.