# Cómo tu IA usa tu clave de Stripe sin verla nunca

Source: https://lodos.md/es/blog/ia-que-no-puede-leer-tus-secretos
Published: 2026-06-08 · Author: Samet Samyeli · Language: es · Reading time: 4 min

El patrón de inyección de secretos en tiempo de ejecución que permite a lodos cobrarle a un cliente con tu clave de Stripe mientras la clave nunca entra en el contexto del modelo de IA.

---

Este es el dilema incómodo que enfrenta todo producto de "agente de IA": para hacer trabajo útil, el agente necesita tus credenciales. Para cobrarle a un cliente, necesita tu clave de Stripe. Para desplegar, necesita tu token de nube. La respuesta habitual es entregar esos secretos al modelo y esperar que nada se filtre.

Nosotros no queríamos esperar. Por eso lodos está construido para que la filtración sea **estructuralmente imposible** y la compilación falla si alguien rompe eso alguna vez.

## El problema de darle un secreto a un modelo

Una vez que un secreto en texto plano entra en el contexto de un modelo de lenguaje, ya perdiste el control sobre él. Puede aparecer en la transcripción, en una llamada a una herramienta, en un log, en un resumen que el modelo escriba más tarde, o en una respuesta a un seguimiento redactado con astucia. La inyección de prompts, una instrucción maliciosa escondida en una página web, un correo o un documento que el agente lee, convierte ese riesgo latente en una vía activa de exfiltración.

La conclusión honesta es que **el modelo nunca debería ver el secreto en primer lugar.** Todo lo demás es mitigación encima de un defecto de diseño.

## Referenciado, inyectado, auditado

lodos maneja cada credencial a través de tres etapas.

### 1. Referenciado

Tu IA nunca trabaja con un valor. Trabaja con un marcador de posición:

```
{{secrets.stripe.sk_live}}
```

Esa referencia es todo lo que el modelo llega a ver, en el chat, en un flujo de trabajo, en una tarea. Puede razonar sobre *usar* la clave de Stripe sin sostenerla nunca.

### 2. Inyectado

Cuando un trabajo realmente necesita la credencial, lodos la descifra **localmente** y la pasa a un subproceso aislado como una variable de entorno, fuera de la vista del modelo, y desaparece en el momento en que el trabajo termina.

```bash
# The agent asked to run this; lodos resolved the reference and
# injected the real value into the subprocess environment only.
STRIPE_API_KEY={{secrets.stripe.sk_live}} ./charge-customer.sh
```

El modelo ve la línea de la izquierda. El subproceso obtiene el valor de la derecha. Los dos nunca se encuentran dentro de la transcripción.

### 3. Auditado

Cada acceso se añade a una cadena HMAC a prueba de manipulaciones. El log registra *que* se usó un secreto, nunca *qué valor*. Las rutas de campo son opacas, y cualquier intento de alterar el historial rompe la cadena.

## Por qué no nos limitamos a confiar en una política

Sería fácil escribir "la IA está configurada para no revelar secretos" y seguir adelante. Creemos que eso no vale nada sin un mecanismo que lo haga cumplir, así que incorporamos la garantía en el proceso de publicación.

Un escaneo de invariantes en tiempo de compilación se ejecuta en cada publicación y hace fallar la compilación si alguna de estas cosas se llega a violar:

- No existe ninguna herramienta, en ningún sitio, que devuelva el valor de un secreto en texto plano.
- No existe ningún proveedor de API de modelo en crudo, solo Claude Code embebido con tu propio inicio de sesión.
- No existe ningún `eval`, `Function`, `vm` ni `child_process` en ninguna ruta de renderizado.
- Las herramientas desconocidas fallan de forma cerrada, nunca se permiten en silencio.
- El agente se ejecuta con `bash` explícitamente prohibido.
- Ningún permiso individual puede completar la "trifecta letal" de datos privados + contenido no confiable + exfiltración.
- Los flujos de trabajo son únicamente declarativos, no existe ninguna ruta de código para ejecutar.

Si un commit futuro añade una herramienta que le entregue un secreto al modelo, la publicación simplemente no se lanza.

## Lo que rechazamos, y lo que enviamos en su lugar

El muro forzó mejores diseños, no menos funciones:

| Rechazamos | Enviamos en su lugar |
| --- | --- |
| Una API de modelo en crudo que la IA llama directamente | Claude Code embebido con tu propio inicio de sesión |
| Dejar que la IA ejecute comandos del host (bash) | Inyección en subproceso en tiempo de ejecución, ciega a los secretos |
| `eval()` en los flujos de trabajo | YAML declarativo, sin ruta de código para ejecutar |
| Presentaciones generadas con imágenes (salida a la nube) | Presentaciones de texto sin conexión, cero red |

Negarnos a filtrar no eliminó capacidad. La enfocó.

## La conclusión

Puedes darle a un agente de IA trabajo real con credenciales sin darle tus credenciales. El secreto permanece cifrado en tu máquina, entra en un subproceso solo en el momento de su uso, y nunca cruza al contexto del modelo.

Esa es la idea completa detrás de lodos: [tu IA ve tu trabajo, no tus secretos](/blog/the-zero-knowledge-company-os). Lee la [arquitectura de seguridad](/security) completa, o [descarga lodos](/download) y dale a tu agente un trabajo en lugar de una clave.
