Nachdem SSH-Schlüssel in den Agent-Prompt wandern, warum ein LLM-Proxy die Logs trotzdem unverändert verkauft
Um den 11. September 2026 erklärte der Sicherheitsforscher Chaofan Shou, er habe bei einem großen chinesischen LLM-Proxy rund 6 TB ungeschwärzte Fable-Aufrufdaten gekauft. Darin lagen, so seine Darstellung, private SSH-Schlüssel, VPN-Konfigurationen, Alibaba-Cloud-Keys und GitLab-Tokens – genug, um interne Systeme mehrerer Unternehmen und Labore zu erreichen. Dieser Artikel prüft den Dump nicht nach und entscheidet nicht, ob ein namentlich genannter Betreiber schuldig ist. Er öffnet einen Mechanismus, den Sie sofort nachvollziehen können: Sobald ein Hop den Anfragekörper lesen muss, um weiterzuleiten, sitzt ein Schlüssel, der in den Agent-Prompt geraten ist, dort bereits im Klartext. Das ist keine Bedienungsanleitung für Links bereinigen oder das Burn-Link-Formular.
Zuerst klären, welchen Hop der Prompt wirklich nimmt
Dieser Artikel beantwortet nur, warum ein LLM-Proxy Aufrufprotokolle unverändert verkaufen kann, nachdem SSH-Schlüssel und Cloud-Tokens in den Agent-Prompt gewandert sind. Er ist weder das Formular auf Links bereinigen noch die Datenschutzerklärung eines Modell-Anbieters.
Was passiert, wenn der Prompt einen Proxy trifft
Die Frage ist nicht: „Trainiert der Modell-Anbieter mit meinem Chat?“ Zuerst: Sitzt auf diesem Hop eine Zwischenbox, die den Körper sehen muss?
Ein LLM-Proxy – im deutschen Sprachraum oft als OpenAI-kompatibler API-Proxy, API-Router oder Modell-Gateway verkauft – sitzt zwischen Ihrem Editor und dem Upstream-Modell. Teams nutzen ihn, um eine Regionssperre zu umgehen, ein geteiltes Kontingent zu bündeln oder Tokens günstiger zu kaufen. Kommt Ihre Anfrage an, prüft der Proxy Ihr Kontingent, setzt seinen eigenen Upstream-Schlüssel ein und schickt denselben Prompt an Claude oder ein anderes Modell. Diese drei Schritte gelingen nur, wenn er TLS auf seinem Hop beendet und das JSON-Feld messages liest – oder den Agent-Kontext, der darin steckt. Englische Berichte zu Shous Beitrag vom 11. September, darunter ChainCatcher und Wccftech, sagen denselben Satz klarer: Anfrage und Antwort laufen durch den Proxy, also sieht der Proxy den vollen Klartext. Ein chinesisches Security-Briefing nannte jeden Anwendungsschicht-Proxy ohne Ende-zu-Ende-Verschlüsselung am selben Tag „von Bauart ein Packet-Sniffer“; siehe SecRSS, „AI-Relay-Daten auf dem Schwarzmarkt“.
Ein Coding-Agent macht diesen Hop gefährlicher. Cursor, Claude Code und selbst gebaute Agenten lesen mit der von Ihnen erteilten Rechte den Workspace, scannen eine .env, greifen Terminalausgaben und setzen diese Fragmente in den nächsten Prompt. Sie müssen -----BEGIN OPENSSH PRIVATE KEY----- nicht selbst in ein Chatfeld kleben. Hat der Agent einen privaten Schlüssel oder ein Deploy-Skript gelesen, weil Sie ihn gebeten haben, „auf die Staging-Box zu kommen“, liegen diese Bytes bereits im Körper, der zum Proxy geht. Eine frühere Arbeit aus Shous Gruppe, Your Agent Is Mine: Measuring Malicious Intermediary Attacks on the LLM Supply Chain, hat 428 Router geprüft: neun haben die Antwort umgeschrieben, siebzehn haben nach einem eingesetzten AWS-Testschlüssel wirklich AWS aufgerufen, einer hat ETH aus einer Testwallet abgezogen. Das ist eine zweite Behauptung: „greift der Proxy aktiv an?“ Dieser Artikel prüft die stillere: Mit einem globalen Log reicht es, dass der Proxy nicht einmal böswillig ist. Er behält den Schlüssel, den Sie hineingelegt haben.
Das ist nicht derselbe Weg wie „ein Ticket in den Web-Chat kleben“. Auf einer Chatseite sehen Sie wenigstens, dass Sie einfügen. Beim weitergeleiteten Agenten setzt oft ein Werkzeug den Kontext zusammen. Was Sie auf diesem Rechner prüfen sollten, ist nicht „habe ich den Schlüssel getippt“, sondern „sitzt auf diesem Hop eine Zwischenbox, die den Körper lesen muss – und enthält dieser Körper jetzt ein Zugangsdatum, das sich unverändert nutzen lässt.“
Ein Proxy kann Aufrufprotokolle verkaufen, nicht weil er das Upstream-Modell geknackt hat, sondern weil er Klartext sehen muss, bevor er irgendetwas weiterleitet. HTTPS schützt die Leitung zu ihm und die Leitung von ihm zum Modell. Es schützt nicht die Kopie, die im Proxy-Prozess bereits geöffnet liegt.
Warum sich diese Aufrufprotokolle unverändert verkaufen lassen
„Unverändert“ heißt: Der Anfragekörper ist noch da – nicht nur ein Zähler „dieser Nutzer hat einmal aufgerufen“.
Der billigste Weg für einen Proxy, zu debuggen, abzurechnen oder Fine-Tune-Text zu sammeln, ist, die geöffnete Anfrage in eine Datenbank zu schreiben. Prompt, Systemanweisung, Dateifragment, das der Agent gelesen hat, und Werkzeugergebnisse bleiben Textfelder. 6 TB Aufrufdaten zu verkaufen heißt, genau diese schon geöffnete Historie zu verkaufen. Shou sagte, im Dump lägen SSH-Schlüssel, die ins Intranet reichen, und glpat--Tokens; öffentliche Zusammenfassungen zeigten geschwärzte Enterprise-GitLab-Hosts. UsePwd hat diesen Dump nicht gekauft, und diese Seite behandelt „reicht, um Firma X zu übernehmen“ nicht als geprüfte Feststellung. Was Sie prüfen können, ist der Mechanismus: Speichert das Log den Anfragekörper, wird ein hineingeschriebener Schlüssel nicht von allein zu Sternchen.
Weder das Schloss in der Adresszeile noch der Satz „wir trainieren nicht mit Ihren Chats“ stoppt diese Schicht. Schickt Ihr Browser oder Editor die Anfrage an den Proxy, endet TLS auf diesem Hop. Der Proxy öffnet danach eine neue TLS-Sitzung mit seinem eigenen Upstream-Konto. Jede Leitung ist verschlüsselt. Der Prozess auf der Maschine dazwischen sieht trotzdem Klartext-JSON. Selbst wenn das Upstream-Modell das Gespräch nie zum Training nutzt, sieht es die Kopie nicht, die der Proxy für sich behalten hat. Ob diese Kopie existiert und ob sie verkauft wird, ist die Speicherpolitik des Proxys – nicht ein Schalter „temporärer Chat“, den Sie im Editor umgelegt haben.
Ein Abrechnungslog und ein Aufrufkörper sind außerdem nicht dieselbe Datei. Tokenzahlen, Modellnamen und Statuscodes verkaufen keinen SSH-Schlüssel. Sobald der Betrieb das volle messages-Array behält, um „diesen fehlgeschlagenen Agent-Schritt nachzuspielen“, ist dieselbe Datei nützlich zum Debuggen und nützlich auf einem Schwarzmarkt. Shous Beitrag hat sich in chinesischen Entwicklerkreisen ausgebreitet, weil Käufer keine Kurzfassung bekommen haben. Sie haben Zugangsdaten bekommen, die noch funktionierten. Die Frage lautet nicht „loggt der Proxy“, sondern „steht im Log der Prompt-Körper“.
Wer auf dem Weg sitzt, liest den Körper nicht. Das schützt den Transit, nicht die Kopie, die im Proxy-Prozess bereits geöffnet ist.
Um den Auth-Header zu schreiben, abzurechnen und weiterzuleiten, muss er Prompt und angehängte Fragmente lesen.
6 TB sind wertvoll, weil es noch Anfragehistorie ist, kein Aufrufzähler.
Der direkte Weg zur offiziellen Modell-API nimmt diese Zwischenbox weg, die den Körper sehen muss. Er heißt nicht, der Prompt lebe nur noch auf Ihrem Rechner. Die Server des Anbieters empfangen weiter Klartext. Der Käufer wechselt nur von „einem grauen Proxy“ zu „der Firma, die Sie gewählt haben“. Dieser Artikel bleibt beim Proxy, weil die September-Offenlegung „jemand hat den Körper als Paket verkauft“ aus einem Gedankenexperiment in eine laufende Geschichte gedreht hat. Nach dem Direktanschluss bleibt die Antwort auf „darf ein Schlüssel in den Prompt“ dieselbe: nein.
Welche Geheimnisse Formatmasken wirklich treffen
Sternchen senken die Chance, dass ein gängiges Token ganz kopiert wird. Sie decken keinen privaten Schlüsselblock ohne kurzes Präfix.
Die UsePwd-Schwärzung erkennt im aktuellen Tab sechs Feldtypen: Telefon, Ausweisnummer, Bankkarte, E-Mail, gängige Tokens und IP. Die Tokenklasse trifft Präfixe, die Sie prüfen können, darunter sk-, sk-ant-, sk-proj-, AKIA, ghp_, github_pat_, glpat-, xoxb- und Bearer . Öffnen und nutzen – ohne Anmeldung. Der Originaltext wird nicht hochgeladen und nicht in die Statistik geschrieben. Fügen Sie eine Probe mit glpat- ein, behält die Seite das Präfix, maskiert die Mitte und lässt die letzten vier stehen – oder, bei voller Maske, nur Präfix plus Sternchen. Dieser Schritt reicht, um auf diesem Rechner zu zeigen: Gängige Cloud- und Git-Host-Tokens lassen sich an einer Formatregel fassen.
Ein privater SSH-Schlüssel ist meist kein solches Präfix. Ein OpenSSH-Schlüssel ist ein PEM-Block, der mit -----BEGIN OPENSSH PRIVATE KEY----- beginnt, als Base64 weiterläuft und auf einer passenden END-Zeile endet. VPN-Profile, kubeconfigs, Datenbank-URLs und Alibaba-Cloud-AccessKeys, die nicht wie AKIA… aussehen, rutschen ebenfalls durch. Sternchen über einer Telefonnummer im Ticket helfen nicht, wenn der Agent id_ed25519 schon in den Kontext gelesen hat. Warum Formatmaskierung ein Ticket trotzdem demselben Kunden zuordnen kann, bevor Sie es in eine Dialog-KI einfügen, steht in einem anderen Artikel: Warum Formatmaskierung ein Support-Ticket trotzdem demselben Kunden zuordnet. Jener Text handelt von der Identitätsschicht, die bleibt. Dieser handelt von einem Login, das bleibt – und ein Zugangsdatum in einem Proxy-Log lässt sich oft unverändert nutzen.
Selbst ein Token, das als glpat-***wQ4x dasteht, kann zusammen mit einem Repo-Host die Suche auf ein Projekt verengen. Die volle Maske streicht die letzten vier. Sie streicht nicht „dieser Chat handelt von jener Box, jenem Cluster“. Die Bewegung, die wirklich eine Schicht nimmt, ist, private Schlüssel und Cloud-Tokens aus dem Prompt zu halten: Schreiben Sie das Runbook als „das Geheimnis läuft über einen getrennten Einmal-Link“, und lassen Sie den Agenten Schritte sehen, nicht Material. Muss eine Passphrase zu einem Kollegen, nutzen Sie Burn-Link: Dieser Tab verschlüsselt mit AES-256-GCM, Klartext höchstens 32 KB, der Schlüssel sitzt hinter # in s.html?id={id}#{key}, der Server speichert nur Geheimtext. Erzeugen und Lesen sind sofort nutzbar – ohne Registrierung.
sk-, glpat-, ghp_ und AKIA passen auf eine Regel. Die letzten vier Stellen können die Suche weiter verengen.
Es gibt kein kurzes Präfix. Ist der ganze Base64-Block in den Prompt gewandert, hat das Proxy-Log den ganzen Block.
Der Prompt hat nur Schritte. Das Geheimnis läuft über Burn-Link: Geheimtext auf dem Server, Schlüssel nur hinter #.
Wo das von Ticket-Sternchen und Chat-Keys abweicht
Alle drei Fälle lassen Klartext Ihren Bildschirm verlassen. Die zurückbleibende Kopie ist nicht dieselbe Sorte Ding.
Wandert ein Ticket in eine Dialog-KI, ist das erste Risiko: „lässt sich das noch einer Person zuordnen?“ Das Telefon trägt Sternchen; Name, Straße und Ticket-ID bleiben. Verkauft ein Proxy Agent-Aufrufprotokolle, ist das erste Risiko: „kann jemand noch in fremde Systeme?“ Ein GitLab-Token, ein SSH-Schlüssel und ein Cloud-Key sind das Login. Beides unter „wir haben etwas in eine KI geklebt“ zu falten, verdeckt die Reihenfolge: Beim Ticket fragen Sie, ob die Identitätsschicht noch da ist; beim Schlüssel fragen Sie, ob der Körper ein nutzbares Zugangsdatum hält – und ob dieser Hop eine Zwischenbox hat, die diesen Körper lesen muss.
Nach einem Leak der Cloud-Umgebungsvariablen gehört der rotierte Schlüssel nicht zurück ins Chatfenster; siehe Nach einem Leak der Cloud-Umgebungsvariablen gehört der neue Schlüssel nicht in den Chat. Jener Artikel ist das zweite Leck: Slack, ein Ticket oder ein Screenshot hinterlässt eine durchsuchbare Klartextkopie. Dieser Artikel ist das erste Leck, und es kann auf dem Modellaufruf passieren: Sie haben den Schlüssel nie „an einen Kollegen geschickt“. Sie haben nur einen Agenten den Workspace nehmen und ein Deploy zu Ende bringen lassen. Chatverlauf und Proxy-Log sind nicht dasselbe Archiv. Die Behandlung ist dieselbe – ein neuer Schlüssel gehört nicht auf einen Kanal, der den Körper behält.
Ein URL-#-Fragment kommt nicht in eine HTTP-Anfrage; siehe Warum das #-Fragment einer URL nicht in Server-Logs steht. Burn-Link legt den Entschlüsselungsschlüssel in dieses Fragment, damit die Maschine, die Geheimtext speichert, den Schlüssel nicht sieht. Ein Proxy ist das Gegenteil: Seine Arbeit ist, den Körper zu lesen. Lesen Sie „der Burn-Server sieht den Schlüssel nicht“ nicht als „keine Zwischenbox sieht den Prompt“. Die beiden Wege haben unterschiedliche Sichtbarkeit. Beide lassen sich im Netzwerkpanel prüfen.
UsePwd kann das Log eines fremden Proxys nicht abschalten und einen Agenten nicht davon abhalten, einen Workspace zu lesen, den Sie schon freigegeben haben. Was Sie prüfen können: ob ein gängiges Token auf diesem Rechner maskiert wird, und ob ein Geheimnis über einen Einmal-Link laufen kann, der nur Geheimtext speichert. Lesen Sie diesen Artikel nicht als „diese Seite installieren, und kein Proxy verkauft Ihre Logs mehr“.
Sofort vergleichen, was die Maske trifft
Ziel ist nicht der Beweis „jeder Proxy verkauft 6 TB“. Ziel ist der Beweis, im Browser, den Sie gerade nutzen: Welche Zeichenketten werden maskiert, welche bleiben im Klartext.
-
01
Zwei Proben vorbereiten, die nie ein echtes System berühren
Fügen Sie keinen lebenden privaten Schlüssel, keinen Cloud-Token und kein GitLab-Token ein. Erste Probe: unechte Tokens wie
glpat-TESTONLY0000000000wQ4xundsk-test_UsePwdRelayCheck20260916. Zweite Probe: eine unechte PEM-Hülle nur mit-----BEGIN OPENSSH PRIVATE KEY-----,USEPWD-FAKE-KEY-NOT-REALund der passendenEND-Zeile. Die Schritte unten vergleichen nur Formatregeln. Sie übergeben kein echtes Zugangsdatum an ein Modell oder einen Proxy. -
02
Die erste Probe auf der lokalen Schwärzungsseite einfügen
Öffnen Sie Schwärzung. Die Seite ist sofort nutzbar. Fügen Sie die erste Probe ins Schwärzungsfeld. Ein häufiges Ergebnis:
glpat-undsk-test_gelten als Tokens, die Mitte wird zu Sternchen. Drücken Sie F12 und öffnen Sie Netzwerk: Während dieser Originaltext verarbeitet wird, sollte der Anfragekörper die gerade eingefügte Zeichenkette nicht enthalten. Dieser Schritt prüft „die Formatregel trifft ein gängiges Präfix“, nicht „der Proxy ist abgeschaltet“. -
03
Die zweite Probe einfügen und sehen, ob der PEM-Block bleibt
Leeren Sie das Feld, dann fügen Sie den unechten Schlüsselblock ein. Ein häufiges Ergebnis: Die ganze
BEGIN-/END-Spanne steht noch da, weil Formatmasken PEM-Panzerung nicht als Feld behandeln. Schreiben Sie das auf: Liest ein Agent eine echteid_ed25519in den Prompt, bekommt das Proxy-Log genau diesen unmaskierten Block – keine Telefonnummer mit Sternchen. Ticket-Schwärzung reicht an diese Schicht nicht heran. -
04
„Schritte“ und „Material“ trennen und einen Einmal-Link nutzen
Öffnen Sie Burn-Link, legen Sie die Dummy-Passphrase
RelayCheck-20260916in einen Testlink, lassen Sie die Leseanzahl auf dem Standard 1 und den Ablauf auf 24 Stunden. Nach dem Erzeugen sollten Sies.html?id=und ein#-Segment sehen. Im Netzwerkpanel sollte die Nutzlast zum Server Geheimtext sein, und die Anfrage-URL sollte den Text hinter#nicht enthalten. Im Prompt schreiben Sie nur „das Material liegt auf einem Einmal-Link“, nicht die Passphrase selbst. Werfen Sie den Link danach weg. -
05
Für eine ganze Konfigurationsdatei auf Datei verschlüsseln wechseln
Ein VPN-Profil oder alles über 32 KB gehört nicht in Burn-Link. Für eine einzelne Datei bis 5 GB nutzen Sie Datei verschlüsseln: AES-256-GCM-Streaming auf diesem Rechner, Ausgabe
.lock/.enc, die Datei wird standardmäßig nicht hochgeladen. Die Passphrase schicken Sie auf einem eigenen Einmal-Link. Was Sie prüfen: „Geheimtextdatei und Passphrase teilen sich keinen Kanal, der den Körper behält“ – nicht „nach der Verschlüsselung darf der Agent den privaten Schlüssel lesen“.
Zeigt Ihr Editor den API-Host schon auf einen Dritt-Proxy, nehmen Sie zuerst ein Wegwerfprojekt und prüfen, ob es .env oder ~/.ssh in den Kontext liest, bevor Sie diesen Hop behalten. Experimentieren Sie nicht mit produktiven Schlüsseln. Eine direkte offizielle API nimmt eine graue Zwischenbox weg. Sie macht einen privaten Schlüssel im Prompt trotzdem nicht sicher.
Was Schlüssel außerhalb des Prompts nicht stoppt
„Ich habe selbst nicht eingefügt“ als „im Proxy-Log kann kein Schlüssel liegen“ zu lesen, lässt Grenzen aus, die Sie trotzdem prüfen können.
Darf ein Agent den Workspace lesen, kann er einen Schlüssel in die Anfrage setzen, ohne dass Sie ein Chatfeld öffnen. YOLO-Modus, automatisch genehmigte Shell-Befehle und „das ganze Repo als Kontext“ verbreitern diese Fläche. Der Befund der Arbeit, dass manche Proxys Extra-Anweisungen in die Antwort geschoben haben, ist ein zweiter, aktiver Weg: Derselbe Hop kann den Schlüssel behalten, den Sie geschickt haben, und den Code umschreiben, den Sie zurückbekommen. Diese Seite kann nicht prüfen, ob ein bestimmter Proxy Pakete verändert. Sie kann nur erinnern: Der Hop, den Sie nicht sehen, kann loggen – und er kann umschreiben.
Ein bereits verkaufter 6-TB-Dump verschwindet nicht, weil Sie heute die Prompt-Gewohnheit ändern. Shou sagte, ein Teil dieser Zugangsdaten könne noch funktionieren. Die Reihenfolge lautet: zuerst widerrufen – Cloud-Konsole, GitLab, Hosts, VPN – dann neues Material ausgeben. Der neue Schlüssel gehört weder zurück in den Agent-Kontext noch zurück ins Chatfenster. Langzeitspeicher oder Sync über mehrere Geräte gehört in einen eigenen Passwortmanager. UsePwd hat keine Konten und keinen Tresor und kann einen verlorenen Link nicht nach Nutzer wiederfinden. Zur Identität siehe Über uns.
Formatmaskierung ist eine Hilfe, kein Versprechen, dass nichts durchrutscht. Wichtige Ausgangstexte brauchen weiter einen menschlichen Blick. Erzeugen Sie eine Passphrase zwischen 6 und 128 Zeichen im Passwort-Generator und nutzen Sie Passwort prüfen für lokale Stärke und die öffentliche Liste schwacher Passwörter, die mit der Seite kommt – nicht eine netzweite Have-I-Been-Pwned-Abfrage. Diese Seiten sind wie dieser Artikel sofort nutzbar. Lesen Sie ein HTTPS-Schloss oder ein Etikett „temporär“ am Chat nicht als „im Proxy-Prozess liegt kein Klartext“. Leitungsverschlüsselung und ein Körper im Prozess sind nicht dieselbe Schicht.
Fragen, die kommen, wenn ein Schlüssel in den Prompt geraten ist
Die vier Punkte bleiben in der Grenze dieses Artikels. Sie wiederholen nicht die Knöpfe auf den Tool-Seiten.
Wenn Sie fertig sind, vergleichen Sie, was die Maske trifft
Der Artikel beantwortet, warum ein LLM-Proxy Aufrufprotokolle unverändert verkaufen kann, nachdem ein Schlüssel in den Agent-Prompt geraten ist. Um ein unechtes Token gegen die Formatmaske zu legen oder Material auf einen Einmal-Link zu schieben, öffnen Sie die passende Seite – ohne Registrierung.