Documentación técnica de ZeroDataGate, una pasarela de privacidad que se interpone entre las aplicaciones de una organización y los modelos de IA que esas aplicaciones consumen.
Este repositorio contiene exclusivamente documentación técnica. El código fuente del proyecto se desarrolla en un repositorio privado.
Cuando una organización conecta sus sistemas a un modelo de lenguaje, el texto que envía suele llevar dentro mucho más de lo que la tarea necesita. Un expediente completo para pedir un resumen, una conversación entera para clasificar una incidencia, un correo íntegro para redactar la respuesta. El modelo no necesita el número de documento del interesado para resumir su caso, pero lo recibe igual, y con él sale de la organización todo lo que iba pegado.
El enfoque habitual es confiar en el compromiso contractual del proveedor y en la buena fe de quien programa la integración. Eso deja tres agujeros. El primero: cada aplicación implementa su propia protección, de forma distinta y con distinta suerte. El segundo: no queda constancia de qué salió, así que cuando hay que responder ante una auditoría no hay nada que enseñar. El tercero: basta con que un equipo configure una credencial nueva por su cuenta para que la política deje de aplicarse sin que nadie se entere.
ZeroDataGate parte de una premisa: el modelo debe entender el caso sin ver a las personas. La protección no es una biblioteca que cada aplicación decide usar, sino una aduana por la que el tráfico pasa obligatoriamente.
flowchart LR
A["Aplicaciones<br/>de la organización"] --> B["Detección<br/>qué hay en el texto"]
B --> C["Tokenización<br/>referencias opacas"]
C --> D["Bóveda cifrada<br/>correspondencia con TTL"]
C --> E["Gate de presalida<br/>último control"]
E -->|"limpio"| F["Proveedor de IA"]
E -->|"queda algo"| X["Bloqueo"]
F --> G["Rehidratación<br/>de la respuesta"]
D -.->|"solo para volver"| G
G --> A
B & C & E & G --> H["Auditoría<br/>encadenada por hash"]
La aplicación manda su texto tal cual. El motor reconoce lo que hay dentro, lo sustituye por referencias que no significan nada fuera del sistema, guarda la correspondencia cifrada y con caducidad corta, y solo entonces deja salir el texto. Cuando vuelve la respuesta, cada referencia recupera su valor y la aplicación recibe algo que parece que nunca pasó por ningún filtro. Todo el recorrido queda registrado.
- Detección determinista de datos personales, credenciales y datos sensibles, con validación de dígito de control donde el formato lo permite, diccionarios y heurística para nombres, y reglas propias por organización.
- Sustitución por referencias opacas con bóveda cifrada, clave derivada por organización, índice ciego para poder buscar sin descifrar y caducidad corta.
- Un único punto de salida envuelto por un escudo que vuelve a analizar el texto justo antes de enviarlo y busca literalmente los valores originales dentro. Si encuentra uno, la petición no sale.
- Auditoría encadenada por hash, firmada y de solo anexado, que resiste incluso al administrador del sistema.
- Política por organización con ajustes por aplicación que solo pueden endurecerla, nunca relajarla, más modelos autorizados y cuota de gasto por aplicación.
- Panel de gobierno y auditoría que en ningún momento muestra un valor guardado en la bóveda.
- Procesamiento en lote fuera del proceso que atiende peticiones, capaz de reanudar un trabajo interrumpido en vez de reempezarlo.
- Respuesta en streaming protegida, con reconstrucción de las referencias a medida que llegan los fragmentos.
- Gestión de secretos desde el almacén del sistema operativo, ficheros montados o un gestor de secretos externo, con la clave que firma la auditoría separada de la que cifra los datos.
Esto es seudonimización, no anonimización. Sustituir los identificadores directos reduce mucho la exposición frente al proveedor, pero el contexto sigue identificando: una descripción suficientemente concreta señala a una persona aunque no lleve su nombre. La normativa de protección de datos sigue tratando el resultado como dato personal, y el sistema está diseñado bajo esa premisa, no contra ella. Lo que aporta es reducir la superficie, dejar constancia de lo que salió y hacer que la política se aplique sola.
| Documento | Contenido |
|---|---|
| Arquitectura | Contextos acotados, hexagonal, circuitos principales y diagramas |
| Estructura del proyecto | Organización conceptual por capas y reglas de dependencia |
| Stack tecnológico | Tecnologías por capa y su porqué |
| Funcionalidades | Descripción funcional detallada con flujos |
| Decisiones técnicas | Decisiones de diseño, su motivación y la alternativa descartada |