Vault 🇬🇧 🇩🇪 🇫🇷
  • Senden
  • Anfordern
  • So funktioniert es
  • Sicherheit & Vertrauen
  • Preise
  • Secrets für KI-Agenten, ohne sie in den Chat zu kopieren

    Dein Agent braucht ein Datenbank-Passwort oder einen API-Key. Statt ihn in den Chat zu tippen, gibst du ihn im Browser ein, und er geht direkt an den einen Befehl, den du gesehen hast. Der Agent bekommt das Ergebnis, nie den Wert.

    Warum der Chat der falsche Ort ist

    Was du in eine Agenten-Sitzung tippst, bleibt im Verlauf, im Sitzungsprotokoll auf deiner Platte und beim Modellanbieter. Wir haben es bei uns selbst gemessen: 68 von 70 Deployment-Geheimnissen standen im Klartext in Sitzungsprotokollen. Rotieren hilft nichts, solange der nächste Wert denselben Weg nimmt.

    Wie die 68 von 70 gemessen wurden

    01

    So funktioniert es

    1. Der Agent ruft vault-ask mit dem Namen des Werts und dem Befehl auf, der ihn braucht. vault-ask erzeugt lokal ein Schlüsselpaar und zeigt nur einen Link.
    2. Du öffnest den Link. Bevor du etwas eingibst, zeigt die Seite genau den Befehl, der den Wert bekommt.
    3. Dein Browser verschlüsselt den Wert für das Schlüsselpaar auf dem Rechner des Agenten. Der Server speichert nur Chiffrat, genau wie bei jeder anderen Vault-Anfrage.
    4. vault-ask entschlüsselt lokal, prüft, dass der Befehl, den du gesehen hast, der ist, den es gleich startet, und gibt den Wert nur an diesen Befehl. Der Agent sieht: DB_PASSWORD empfangen, 32 Zeichen, an Befehl übergeben.
    02

    Installation

    Node.js 20 oder neuer, keine weiteren Abhängigkeiten:

    npm install -g @erseni/vault-ask

    Oder direkt aus dem öffentlichen Quellcode, ohne npm:

    git clone https://gitlab.erseni.net/open-source/secrets-component.git npm install -g ./secrets-component/cli
    03

    Drei Wege, einen Wert zu übergeben

    Der Standard: der Wert existiert nur als Umgebungsvariable dieses einen Kindprozesses. Auf die Platte wird nichts geschrieben.

    vault-ask DB_PASSWORD -- psql -h db.example.com -U app

    Für Werte, die bleiben sollen: in eine .env-Datei mit Rechten 600.

    vault-ask STRIPE_KEY SENTRY_DSN --env-file .env

    Für Schlüssel und Zertifikate: ein Wert in eine Datei, Rechte 600.

    vault-ask TLS_KEY --file certs/server.key

    Einen Weg, der den Wert ausgibt, gibt es bewusst nicht. Mehrere Namen in einem Aufruf ergeben eine Seite mit mehreren Feldern.

    Die andere Richtung: der Agent schickt dir ein Passwort

    Bitte deinen Agenten um ein neues Passwort, und du bekommst einen Einmal-Link statt des Passworts im Chat. vault-ask send erzeugt den Wert auf dem Rechner des Agenten, verschlüsselt ihn dort und schreibt denselben Wert in die .env-Datei oder den Befehl, der ihn braucht, damit dein System und dein Link übereinstimmen.

    vault-ask send DB_PASSWORD --env-file .env

    Der Link zeigt den Wert einmal und ist danach verbraucht. Senden zählt auf dasselbe Tageskontingent wie Anfragen.

    Schutz gegen den Agenten selbst

    • An einen Zweck gebunden: Befehl oder Dateipfad stehen fest, sobald die Anfrage entsteht, und du siehst sie, bevor du tippst. Die Seite verschlüsselt das Gesehene zusammen mit dem Wert, vault-ask vergleicht beides nach dem Entschlüsseln und lehnt alles andere ab. Ein anderer Befehl braucht eine neue Anfrage und damit einen neuen Blick von dir.
    • Maskierte Ausgabe: vault-ask läuft als Elternprozess und ersetzt den Wert in allem, was der Befehl ausgibt, auch in Base64-, URL- und Hex-Kodierung. vault-ask X -- env zeigt drei Sterne.
    • Hooks für Claude Code: ein PreToolUse-Guard liegt dem Paket bei. Er blockt das Lesen der Dateien, die vault-ask geschrieben hat, und lehnt vault-ask mit einer Shell, env, printenv oder echo als Befehl ab.

    Die ehrliche Grenze

    All das fängt Versehen ab und macht einen manipulierten Agenten sichtbar. Einen Agenten, der unter deinem eigenen Betriebssystem-Benutzer mit Shell läuft, macht es nicht harmlos: er kann den Speicher von Prozessen lesen, die er gestartet hat. Vollständigen Schutz gibt es nur durch Rechtetrennung, bei der ein Dienst unter einem anderen Benutzer das Geheimnis hält und der Agent nur einen Verweis darauf bekommt. Das steht so in unserem Threat Model, statt mehr zu versprechen, als der Code hält.

    Für Umgebungen ohne Shell: MCP

    vault-ask-mcp bietet dieselben Bausteine als MCP-Werkzeuge: request_secret schreibt einen Wert in eine Datei, run_with_secret startet einen Befehl damit, send_secret schickt dir einen erzeugten Wert als Einmal-Link. Der Server sagt dem Agenten zu Beginn jeder Sitzung, wann welches Werkzeug dran ist, deshalb führt „generier mir ein Passwort für meine Datenbank“ ohne jede Einrichtung zu einem Link.

    claude mcp add vault-ask -- vault-ask-mcp

    Grenzen

    • Ohne Konto: 3 Anfragen pro Minute, abgesichert durch einen Proof of Work.
    • Free mit API-Key: 50 Anfragen pro Tag, ohne Proof of Work.
    • Pro: 500 Anfragen pro Tag.
    • Business: unbegrenzt, mit einem technischen Deckel von 60 Anfragen pro Minute.
    export VAULT_ASK_API_KEY=vak_...
    API-Key anlegen Quellcode und Threat Model

    Produkt

    Sicherheit

    Rechtliches

    Verträge hier kündigen © 2026 Erseni Ltd. Zero-Knowledge-Prinzip.