Saltar al contenido

Lo esencial

Cuatro puntos que resumen el documento.

Cada punto enlaza a la cláusula que lo desarrolla. Si solo tienes un minuto, este es el minuto.

  1. Cláusula 01

    No afirmamos certificaciones que no tenemos

    No contamos con SOC 2 ni ISO 27001. Si tu organización necesita una evaluación, compartimos la documentación técnica disponible.

    Ver la cláusula

  2. Cláusula 04

    El navegador nunca habla con la IA

    Las claves de OpenAI, Anthropic, Google y Meta existen solo en el servidor. El navegador nunca las recibe ni llama a esos proveedores.

    Ver la cláusula

  3. Cláusula 03

    Cada organización ve solo lo suyo

    Las consultas se filtran por tu organización desde el usuario autenticado. Un acceso cruzado responde 404.

    Ver la cláusula

  4. Cláusula 06

    Las mediciones no se sobrescriben

    El histórico es de solo anexado, así que cualquier cifra se puede auditar contra las filas que existían antes.

    Ver la cláusula

Verificación en vivo

Esta página se comprueba en tu navegador.

El navegador lee las cabeceras de esta misma respuesta y el estado de sus cookies. Ninguna comprobación viaja a un servidor nuestro: lo que ves abajo lo puedes reproducir con la consola abierta.

Ejecutando comprobaciones

Respuesta de esta visita

midiendo

Tu navegador no ejecuta JavaScript, así que la verificación en vivo no puede correr. Los controles documentados están más abajo.

  • Conexión cifrada

    location.protocol

    Comprobando
  • No revela el framework

    respuesta.headers["x-powered-by"]

    Comprobando
  • Tipo de contenido

    respuesta.headers["x-content-type-options"]

    Comprobando
  • Enmarcado

    respuesta.headers["x-frame-options"]

    Comprobando
  • Origen de referencia

    respuesta.headers["referrer-policy"]

    Comprobando
  • Permisos del dispositivo

    respuesta.headers["permissions-policy"]

    Comprobando
  • Política de contenido (CSP)

    respuesta.headers["content-security-policy"]

    Comprobando
  • Cookies legibles por JavaScript

    document.cookie

    Comprobando

Los controles que no se pueden comprobar desde el navegador están documentados con su estado real en la tabla de abajo.

Controles documentados

El estado real de cada control.

«Planificado» significa que está en la lista de verificación previa al lanzamiento y no se ha completado. No hay estados intermedios ni certificaciones que no tengamos.

11 de 12 implementados · 1 en la lista previa

ÁreaMedidaEstado
ContraseñasHash argon2id; nunca en texto claro ni en registrosImplementado
SesionesJWT de acceso de corta duración + sesiones de refresco con rotación y revocaciónImplementado
CookieshttpOnly, SameSite=Lax, de primera parteImplementado
CSRFSameSite más cabecera personalizada obligatoria en mutaciones desde el navegadorImplementado
Aislamiento de datosFiltro por organización en la capa de consultas; acceso cruzado responde 404Implementado
Limitación de frecuenciaRedis en autenticación y endpoints públicosImplementado
Claves de proveedores de IASolo en el entorno de servidor; el navegador nunca llama a los proveedoresImplementado
Validación de entradaEsquemas tipados en toda la APIImplementado
AuditoríaRegistro de actividad con actor, entidad, fecha e IPImplementado
RegistrosLogs estructurados con redacción de secretos y cabeceras de autorizaciónImplementado
HistóricoMediciones de solo anexado; re-evaluaciones no sobrescribenImplementado
Lista de verificación previa al lanzamientoRevisión de dependencias, cabeceras HTTP, copias de seguridad y respuesta a incidentesPlanificado
Reporta vulnerabilidades a hola@asoma.app. El detalle de cada control está en Divulgación responsable.

Cláusulas del documento

  1. Principios

    En claroTres reglas de diseño: el navegador nunca llama a la IA, cada dato es de una organización y nada se sobrescribe. Sin certificaciones que no tenemos.

    El sistema se diseñó con tres reglas: el navegador nunca habla con las plataformas de IA, cada dato pertenece a una organización y solo esa organización puede leerlo, y nada relacionado con una medición se sobrescribe. Lo que sigue describe cómo se aplican esas reglas en la implementación actual.

    No contamos con certificaciones externas (por ejemplo SOC 2 o ISO 27001) y no afirmamos tenerlas. Si tu organización necesita una evaluación de seguridad, escríbenos y compartiremos la documentación técnica disponible.

  2. Autenticación y sesiones

    En claroContraseñas con hash argon2id, tokens de acceso de corta duración y cookies httpOnly que el código del navegador no puede leer.

    La autenticación es de primera parte y vive en la API, que es la única autoridad sobre quién eres y a qué organización perteneces.

    1. Las contraseñas se almacenan únicamente como hash argon2id. Nunca se guardan ni se registran en texto claro.
    2. Cada inicio de sesión emite un token de acceso JWT de corta duración y una sesión de refresco respaldada en base de datos, con rotación en cada uso y revocación individual.
    3. Ambos viajan en cookies httpOnly con SameSite=Lax, inaccesibles para el código JavaScript del navegador.
    4. Toda mutación desde el navegador debe incluir además una cabecera CSRF personalizada; la combinación SameSite más cabecera mitiga la falsificación de solicitudes entre sitios.
    5. La capa de Next.js verifica la firma del token para proteger las rutas de la aplicación de forma barata; la API vuelve a verificar cada solicitud.
  3. Aislamiento entre organizaciones

    En claroCada consulta se filtra por tu organización desde el usuario autenticado. Cruzar de organización responde 404, para no revelar ni la existencia del recurso.

    Cada recurso de cliente lleva el identificador de su organización y, cuando aplica, de su proyecto. Las rutas de la API están ancladas a la organización o al proyecto, y la pertenencia se carga desde el usuario autenticado, nunca desde una cabecera o parámetro controlado por el cliente. Los sub-recursos se consultan siempre mediante una unión con el proyecto filtrada por organización, en la capa de consultas. Las pruebas automatizadas verifican que un acceso cruzado entre organizaciones responde 404, para no revelar siquiera la existencia del recurso.

    Las funciones de administración interna usan rutas separadas, reservadas a superadministradores, y no comparten controladores con las rutas de clientes.

  4. Credenciales de plataformas de IA

    En claroLas claves de los proveedores de IA viven solo en el servidor. El navegador nunca las recibe.

    Las claves de OpenAI, Anthropic, Google y Meta existen únicamente en el entorno de la API y de los trabajadores en segundo plano. El navegador nunca las recibe ni llama directamente a esos proveedores: las solicitudes salen desde nuestros servidores, con tiempos de espera acotados y reintentos limitados. Las cabeceras de autorización se eliminan de cualquier registro.

  5. Límites de uso y abuso

    En claroAutenticación y endpoints públicos tienen límite de frecuencia en Redis. El análisis gratuito guarda un hash de la IP, no la IP.

    Los endpoints de autenticación y los endpoints públicos (análisis gratuito, contacto, eventos de analítica) están protegidos con limitación de frecuencia respaldada en Redis. El análisis gratuito además guarda un hash de la dirección IP para limitar repeticiones sin conservar la IP en claro. Cada ejecución contra una plataforma de IA registra tokens y costo, y los límites del plan se aplican antes de ejecutar.

  6. Validación y datos

    En claroToda entrada se valida con esquemas tipados. Las mediciones son de solo anexado y borrar un proyecto es un archivado lógico.

    Toda entrada a la API se valida con esquemas tipados antes de llegar a la lógica de negocio. La base de datos es PostgreSQL con identificadores UUID; las mediciones (ejecuciones, respuestas, evaluaciones, citas) son de solo anexado y no se modifican de forma destructiva, lo que permite auditar cualquier cifra histórica. La eliminación de proyectos es un archivado lógico; la eliminación definitiva es una operación administrativa explícita.

  7. Registro y auditoría

    En claroLas acciones relevantes quedan en un registro con actor, entidad, fecha e IP. Los secretos se redactan antes de escribirse.

    Las acciones relevantes (creación y cambios de proyectos, marcas, preguntas, oportunidades y acciones, cambios de miembros) se guardan en un registro de actividad con actor, entidad, fecha e IP. Los registros de aplicación son estructurados (JSON) e incluyen identificadores de solicitud, organización y proyecto para poder seguir una operación de extremo a extremo. Los secretos, tokens y cabeceras de autorización se redactan antes de escribirse. Los fallos de ejecución y evaluación se persisten con su código de error y se muestran en el panel interno para su revisión.

  8. Operación

    En claroUn monolito modular: menos componentes, menos superficie. Los secretos no están en el repositorio.

    La plataforma es un monolito modular: una API, un trabajador de tareas en segundo plano, PostgreSQL y Redis. Menos componentes significa menos superficie de exposición. Cada variable de entorno está documentada y los secretos no se incluyen en el repositorio. Antes del lanzamiento comercial completaremos la lista de verificación de seguridad previa al lanzamiento documentada en nuestro roadmap interno.

  9. Divulgación responsable

    En claroSi encuentras una vulnerabilidad, escríbenos a hola@asoma.app. Confirmamos la recepción y no actuamos legalmente contra investigación de buena fe.

    Si encuentras una vulnerabilidad, escríbenos a hola@asoma.app con una descripción del problema y los pasos para reproducirlo. Confirmaremos la recepción, te mantendremos informado del avance y no emprenderemos acciones legales contra investigaciones realizadas de buena fe que no accedan a datos de terceros ni degraden el servicio. Te pedimos no divulgar el hallazgo públicamente hasta que esté corregido.