
Clés API juste-à-temps pour les agents IA - et tout autre processus que vous y acheminez : l'appelant ne voit jamais qu'un espace réservé.
# Keys on the Wire **Votre agent IA ne détient jamais vos clés API. Il envoie un espace réservé ; le vrai secret est substitué en transit.** Empêche les voleurs d'identifiants (Shai-Hulud et similaires) et les agents victimes d'injection de prompt de divulguer vos secrets. Un agent compromis n'a rien à voler. [](https://pypi.org/project/keys-on-the-wire/) [](./LICENSE) [](https://github.com/inflightsec/keys-on-the-wire/actions/workflows/test.yml) ## Comment ça fonctionne 1. Votre agent envoie une requête avec un *espace réservé*, pas la clé. 2. Keys on the Wire substitue le vrai secret depuis votre coffre-fort, en transit. 3. L'agent ne voit jamais la clé. Rien à fuiter, rien à voler.  Sous le capot, c'est un proxy HTTPS en boucle locale. Il récupère chaque identifiant depuis votre coffre-fort juste à temps et l'injecte dans la requête sortante, de sorte que le processus appelant (votre agent, ou tout ce que vous routez à travers lui) ne détient jamais les octets réels. Backends de coffre-fort : **Trousseau macOS**, Bitwarden Secrets Manager, Google Secret Manager, AWS Secrets Manager, `static` (sans coffre-fort, pour essayer) et `env`. Sur un Mac, le backend Trousseau ne nécessite ni compte cloud ni dépendance supplémentaire : vos secrets restent là où ils sont déjà. (`kow setup` utilise toujours Bitwarden par défaut ; passez le backend souhaité.) Voir [Architecture des adaptateurs](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/adapter-architecture.md). ## Voyez-le en action [](docs/demo.cast) ## Démarrage rapide **1. Installez** (Linux `pipx`, macOS `brew`) : ```bash pipx install 'keys-on-the-wire[bitwarden]' # macOS : brew install inflightsec/keys-on-the-wire/keys-on-the-wire sudo kow setup --bws ``` **2. Installez la compétence** pour que votre agent écrive la liaison à votre place : ``` /plugin marketplace add inflightsec/keys-on-the-wire /plugin install kow@keys-on-the-wire ``` **3. Courtisez un service.** Dites *« routez l'API Stripe via Keys on the Wire. »* La compétence génère l'espace réservé et affiche la note exacte à coller dans votre coffre-fort. Elle ne voit jamais votre clé. **4. Ajoutez la vraie clé** dans votre coffre-fort avec cette note, puis routez votre agent via le proxy : ```bash kow env && kow run claude ``` Terminé. L'agent n'envoie que l'espace réservé ; Keys on the Wire substitue la vraie clé en transit. Nouveau ici ? Le [Guide de démarrage rapide](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/quickstart.md) détaille la première exécution complète, et [Prérequis](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/prerequisites.md) couvre la configuration du coffre-fort. Vous préférez les variables d'environnement shell à `kow run` ? Voir [Utilisation](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/usage.md). ## Avant de le pointer vers des clés de production - **Essayez-le derrière un seul processus.** `kow run -- <commande>` définit les variables de proxy et de CA uniquement dans ce processus ; votre shell de connexion ne les hérite jamais. [Limitation à un seul processus](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/single-process.md). - **Le mode fail-closed est le seul mode.** Si kow est arrêté, les appels routés échouent ; une liaison qui refuse renvoie 503 plutôt que de laisser passer la requête sans protection. - **Il arrête le vol, pas l'abus.** kow retire la clé du contexte de l'agent ; il ne juge pas pourquoi une API est appelée. Restreindre une liaison avec `methods:` et `paths:` est le levier, et il est appliqué. [Est-ce fait pour vous ?](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/is-it-for-you.md) trace la frontière complète. - **L'authentification au-delà des en-têtes statiques est incluse :** actualisation OAuth2 et client-credentials, JWT bearer, GitHub App, HMAC et AWS SigV4, avec des préréglages pour Google, Microsoft, Auth0, Slack, Atlassian et Okta. ## Courtisez un serveur MCP Chaque serveur MCP conserve un jeton à longue durée de vie en clair dans la configuration de votre client, lisible par tous les autres serveurs que le client charge. `kow mcp install` remplace ce secret permanent par un espace réservé et route le trafic sortant du serveur via le proxy : ``` kow mcp install github --host api.github.com --env-var GITHUB_PERSONAL_ACCESS_TOKEN \ --server-cmd "npx -y @modelcontextprotocol/server-github" ``` Il affiche la note de coffre-fort et la commande exacte `claude mcp add --env`. Conception et modèle de menace : [ADR-0040](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/adrs/ADR-0040-mcp-server-credential-broker.md). ## La liaison tient en une ligne L'intégration d'un identifiant n'est pas un YAML écrit à la main. La [compétence kow](https://github.com/inflightsec/agent-vault-proxy/blob/main/skills/kow) incluse demande la forme d'authentification et l'hôte, puis vous indique exactement quoi coller dans le champ Notes de votre secret : ``` # kow-binding api.acme.com ``` Cette ligne de marqueur est ce qui en fait une liaison ; sans elle, la note reste une simple description humaine, jamais analysée ([ADR-0025](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/adrs/ADR-0025-notes-binding-marker.md)). L'assistant propose, vous appliquez. Il ne voit ni ne stocke jamais le secret. ## Documentation **Commencez ici** — [Est-ce fait pour vous ?](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/is-it-for-you.md) si vous évaluez · [Prérequis](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/prerequisites.md) pour configurer votre coffre-fort · [Démarrage rapide](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/quickstart.md) pour une première exécution en 10 minutes. **Comprendre** — [Concepts](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/concepts.md) pour espace réservé, liaison, CA et fail-closed en termes simples · [Architecture](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/architecture.md) pour le modèle de menace, les invariants G1 à G9 et les risques résiduels. **Installer et exploiter** — [Linux](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/install-systemd.md) · [Docker](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/docker.md) · [macOS](https://github.com/inflightsec/homebrew-keys-on-the-wire) · [Utilisation](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/usage.md) · [Processus unique](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/single-process.md) · [Isolation Linux](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/linux-isolation.md) · [Isolation macOS](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/macos-isolation.md) · [Google Secret Manager](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/gcp-secret-manager.md) **Référence** — [bindings.example.yaml](https://github.com/inflightsec/agent-vault-proxy/blob/main/bindings.example.yaml) est le schéma de configuration complet · [Architecture des adaptateurs](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/adapter-architecture.md) pour les backends de coffre-fort et comment en ajouter un · [Comparaison](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/comparison.md) avec Vault Agent, Doppler, `op run` et autres · [CHANGELOG](https://github.com/inflightsec/agent-vault-proxy/blob/main/CHANGELOG.md) · [SECURITY](https://github.com/inflightsec/agent-vault-proxy/blob/main/SECURITY.md) · [CONTRIBUTING](https://github.com/inflightsec/agent-vault-proxy/blob/main/CONTRIBUTING.md) · [CREDITS](https://github.com/inflightsec/agent-vault-proxy/blob/main/CREDITS.md) ## Open source, sans verrouillage Chaque fonctionnalité est dans ce dépôt sous licence Apache-2.0. Pas de niveau payant, pas de service hébergé, pas de télémétrie. Le proxy ne communique jamais avec l'extérieur : ses seules connexions sortantes sont votre coffre-fort et les API en amont que votre agent appelle. Si une [alternative](https://github.com/inflightsec/agent-vault-proxy/blob/main/docs/comparison.md) correspond mieux à votre configuration, utilisez-la. Une dépendance optionnelle n'est pas open source : le [`bitwarden-sdk`](https://pypi.org/project/bitwarden-sdk/) du backend Bitwarden, que vous installez uniquement si vous utilisez ce backend. Voir [LICENSE](https://github.com/inflightsec/agent-vault-proxy/blob/main/LICENSE) et [NOTICE](https://github.com/inflightsec/agent-vault-proxy/blob/main/NOTICE).