Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
wardn — isolement des identifiants pour les agents IA. Les agents ne voient jamais les vraies clés API - garantie structurelle, pas une politique. | Kitploit
Outils/GitHubGitHub/rohansx/wardn
Authentification et AutorisationOutils de Chiffrement/DéchiffrementSécurité CloudDevSecOpsUtilitaires et FrameworksDétection de SecretsGestion des Identités et des Accès (IAM)Sécurité de la Chaîne LogistiqueSécurité des API
GitHubrohansx/wardn

wardn

36313il y a 2 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

isolement des identifiants pour les agents IA. Les agents ne voient jamais les vraies clés API - garantie structurelle, pas une politique.

Voir le dépôt
Partager

wardn

Un pare-feu d'identifiants pour les agents IA.

L'affirmation principale est structurelle, pas politique : les agents reçoivent des jetons fictifs, jamais de véritables clés API. La vraie clé ne traverse qu'une seule interface réseau — à l'intérieur du proxy wardn, en route vers l'API amont — et est retirée des réponses avant qu'elles n'atteignent l'agent. Les journaux, l'environnement, les fenêtres de contexte du LLM, les fichiers temporaires et l'historique du shell ne contiennent que des substituts.```text agent process OPENAI_KEY=wdn_placeholder_a1b2c3d4e5f6g7h8 (useless) agent logs Authorization: Bearer wdn_placeholder_a1b2... (useless) LLM context wdn_placeholder_a1b2c3d4e5f6g7h8 (useless) wardn proxy injects the real key in-flight, single seam (deleted on response) ~/.vibeguard/vault.enc AES-256-GCM(Argon2id(passphrase)) (encrypted at rest)

C'est l'affirmation principale et elle est défendable aujourd'hui contre la compromission d'agent, l'injection de prompts, le vol de logs et l'exfiltration de compétences.
Lisez [docs/THREAT-MODEL.md](https://github.com/rohansx/wardn/blob/main/docs/THREAT-MODEL.md) pour la répartition honnête entre ce qui est couvert et ce qui ne l'est pas — y compris le niveau où l'affirmation plus forte « la compromission de l'hôte ne fuit rien » devient atteignable.

Le coffre lui-même (chiffré au repos, clé dérivée d'une phrase de passe) est un composant réel et la raison pour laquelle le pare-feu peut fonctionner sur une seule machine. Le niveau à venir [docs/HOSTED-TIER.md](https://github.com/rohansx/wardn/blob/main/docs/HOSTED-TIER.md) enveloppe en outre le proxy dans une enclave de calcul confidentiel de sorte que même un VPS entièrement compromis ne puisse pas lire la clé.

[![Crates.io](https://img.shields.io/crates/v/wardn.svg)](https://crates.io/crates/wardn)
[![License](https://img.shields.io/crates/l/wardn.svg)](LICENSE)

## Le Problème

Chaque framework d'agent IA aujourd'hui stocke les clés API dans des variables d'environnement ou des fichiers `.env`. Un agent compromis, une compétence malveillante, un voleur générique ou une injection de prompt exfiltrent `Authorization: Bearer sk-...` d'un journal LLM et obtiennent un accès complet à vos informations d'identification.```
~/.env              → OPENAI_KEY=sk-proj-real-key      # plaintext, readable by anyone
agent context       → "Use OPENAI_KEY=sk-proj-real-key" # leaked into LLM context window
agent logs          → Authorization: Bearer sk-proj-... # sitting in log files

The Fix: A Credential Firewall

wardn remet aux agents une chaîne de substitution inutile et supprime la clé réelle de toutes les surfaces qu'il peut atteindre. Les vraies clés sont injectées au niveau du réseau — une seule couture — et retirées des réponses avant qu'elles n'atteignent l'agent.``` agent environment → OPENAI_KEY=wdn_placeholder_a1b2c3d4e5f6g7h8 (useless) wardn vault → OPENAI_KEY=sk-proj-real-key (encrypted at rest) upstream request → Authorization: Bearer sk-proj-real-key (network transit only) upstream response → ...real keys stripped, placeholders returned... (re-injected on the way back) agent logs → Authorization: Bearer wdn_placeholder_a1b2... (useless) LLM context window → wdn_placeholder_a1b2c3d4e5f6g7h8 (useless)

## Architecture```mermaid
flowchart TB
    subgraph Agent["AI Agent Process"]
        A1["Agent Code"]
        A2["ENV: OPENAI_KEY=wdn_placeholder_a1b2..."]
    end

    subgraph Wardn["wardn daemon · localhost:7777"]
        direction TB
        P["HTTP Proxy"]
        MCP["MCP Server\n(stdio)"]

        subgraph Pipeline["Request Pipeline"]
            direction LR
            S1["Identify\nAgent"] --> S2["Resolve\nPlaceholder"] --> S3["Check\nAuth"] --> S4["Rate\nLimit"] --> S5["Inject\nReal Key"]
        end

        subgraph ResponsePipeline["Response Pipeline"]
            direction RL
            R1["Strip Real\nKeys"] --> R2["Replace with\nPlaceholders"]
        end

        subgraph Vault["Encrypted Vault"]
            V1["AES-256-GCM"]
            V2["Argon2id KDF"]
            V3["Placeholder Map\nper agent × credential"]
        end
    end

    subgraph External["External APIs"]
        E1["api.openai.com"]
        E2["api.anthropic.com"]
        E3["..."]
    end

    A1 -- "placeholder token\nin headers/body" --> P
    A1 -. "MCP: get_credential_ref\nlist_credentials\ncheck_rate_limit" .-> MCP
    MCP -. "placeholder token\n(never real keys)" .-> A1
    P --> Pipeline
    Pipeline --> External
    External --> ResponsePipeline
    ResponsePipeline -- "response with\nplaceholders only" --> A1
    Pipeline <--> Vault
    ResponsePipeline <--> Vault

    style Agent fill:#1a1a2e,stroke:#e94560,color:#fff
    style Wardn fill:#0f3460,stroke:#16213e,color:#fff
    style Pipeline fill:#16213e,stroke:#e94560,color:#fff
    style ResponsePipeline fill:#16213e,stroke:#e94560,color:#fff
    style Vault fill:#1a1a2e,stroke:#00d2ff,color:#fff
    style External fill:#0a0a0a,stroke:#533483,color:#fff

Fonctionnement```

Agent sends request with placeholder in Authorization header │ ▼ ┌─────────────────────────┐ │ wardn proxy │ │ localhost:7777 │ │ │ │ 1. Identify agent │ │ 2. Resolve placeholder │ │ 3. Check authorization │ │ 4. Check rate limit │ │ 5. Inject real key │ │ 6. Forward request │ │ 7. Strip key from resp │ │ 8. Return to agent │ └─────────────────────────┘ │ ▼ External API (only place real key exists in transit)

## Démonstration

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/12823/1fa6109ffd855ec98c173c5edd2d7ee77f6b0c918a3cdecb1ea5fbfe8326161d.gif" alt="démonstration de wardn" width="800">
</p>

## Niveaux de confiance, en toute honnêteté

| Niveau | Où | Ce qui est garanti |
|---|---|---|
| **Auto-hébergé (aujourd'hui)** | votre ordinateur portable, votre VPS, CI | Coffre crypté au repos, protection par pare-feu contre les agents. **Ne défend pas** contre un root sur l'hôte. |
| **Hébergé (à venir)** | géré par wardn ou BYO-cloud | Enclave de calcul confidentiel (Nitro / SEV-SNP) + attestation à distance + flux de chiffrement vers le proxy. Véritable revendication « la compromission de l'hôte ne fuit rien ». |

Le niveau auto-hébergé est la revendication principale et est livré aujourd'hui. Le niveau hébergé
est la voie de mise à niveau stricte : il coûte de l'argent et de la complexité opérationnelle, et
sa conception se trouve dans [docs/HOSTED-TIER.md](https://github.com/rohansx/wardn/blob/main/docs/HOSTED-TIER.md). Inventaire complet et honnête
de ce qui est et n'est pas couvert :

👉 **[docs/THREAT-MODEL.md](https://github.com/rohansx/wardn/blob/main/docs/THREAT-MODEL.md)** — tableau des sujets couverts / non couverts,
« aucun coffre logiciel n'élimine la compromission de l'hôte » clairement mentionné, et
la voie de mise à niveau.

## Installer```bash
# Prebuilt binary (Linux/macOS, amd64/arm64), checksum-verified
curl -sSf https://raw.githubusercontent.com/rohansx/wardn/main/install.sh | sh

# or from crates.io
cargo install wardn

# or Homebrew, once the tap is published (see Formula/wardn.rb)
brew install rohansx/wardn/wardn

Démarrage rapide```bash

Create an encrypted vault and store your keys

wardn vault create wardn vault set OPENAI_KEY wardn vault set ANTHROPIC_KEY

Set up Claude Code integration (one command)

wardn setup claude-code

Voilà. Claude Code utilise désormais le serveur MCP de wardn pour obtenir des jetons placeholders au lieu de lire les vraies clés de votre environnement.

### Ce qui se passe ensuite
Télécharger l’outil