Prüfe, ob ein Relay die offizielle Antwort geliefert hat
Füge eine API-Antwort mit Nachweis in den Verifier unten ein. Er prüft die Signatur in deinem Browser und zeigt dir, von welchem offiziellen Upstream-Host die Antwort stammt und ob das Relay sie verändert hat. Deine Daten verlassen deinen Rechner nicht.
- Bleibt in deinem Browser
- Open-Source-Verifier
- Kostenlos, ohne Registrierung
Antwort in drei Schritten prüfen
- 1
Prüfung für deinen Key aktivieren
Aktiviere auf der API-Seite für den Key die Option „Offizielle Prüfung“. Einen Nachweis tragen nur Antworten von Claude Messages und GPT Responses, die unverändert durchgereicht werden.
- 2
Die gesamte Antwort speichern
Sende eine Streaming-Anfrage und schreibe die Antwort-Bytes mit curl -o unverändert in eine Datei; am Ende sollte event: tee.proof stehen. Füge bei Anfragen ohne Streaming den Header x-wokey-tee-proof-mode: multipart hinzu und speichere die gesamte Multipart-Antwort. Nutze unter Windows curl.exe -o statt der Umleitung > in PowerShell oder erneutem Speichern im Editor – beides ändert Zeilenenden oder Kodierung.
- 3
In den Verifier einfügen
Füge die vollständige Antwort in den Verifier unten ein oder ziehe sie hinein und starte die Prüfung. Sie läuft in deinem Browser auf dieser Seite und sendet keine Netzwerkanfragen.
curl -sN https://api.wokey.ai/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":256,"stream":true,"messages":[{"role":"user","content":"Hello"}]}' \
-o captured-responseDer Verifier oben wird direkt aus dem Open-Source-Repository über GitHub Pages veröffentlicht und läuft nie über Server von Wokey. Wokey kann ihn also nicht gegen eine Version austauschen, die immer „bestanden“ meldet. Du kannst die Seite auch speichern und offline öffnen.
Der Verifier bittet dich, PCR0 zu vergleichen – den Messwert des Enclave-Images. Nimm den Wert, der im Open-Source-Repository veröffentlicht ist und den jeder aus dem Quellcode reproduzieren kann, nicht einen Wert, der mit der Antwort mitkommt.
So liest du das Ergebnis
- Alle Prüfungen bestanden
- Die Attestierung lässt sich bis zum Root-Zertifikat von AWS Nitro zurückverfolgen, PCR0 stimmt mit dem veröffentlichten Wert überein, die Signatur ist gültig und die Antwort-Bytes passen zum signierten Hash. Der angezeigte Upstream-Host (zum Beispiel api.anthropic.com) ist die Quelle der Antwort, und das Relay hat sie nicht verändert.
- Nachweis gültig, Antwortinhalt fehlt
- Du hast nur das Event tee.proof eingefügt. Der Nachweis wurde von einer echten Enclave signiert, aber ohne den Inhalt lässt sich der Hash nicht neu berechnen. Damit ist nicht belegt, dass der Inhalt, den du gesehen hast, unverändert ist. Füge die gesamte Antwort ein.
- PCR0 stimmt nicht überein
- Die Attestierung ist echt, aber in der Enclave läuft nicht das geprüfte Image. Behandle die Antwort als nicht belegt.
- Signatur- oder Hash-Prüfung schlägt fehl
- Der Nachweis oder die Antwort wurde verändert, oder beim Speichern oder Kopieren haben sich Bytes geändert (zum Beispiel durch eine Umkodierung). Speichere die Rohantwort erneut mit curl -o; schlägt die Prüfung weiterhin fehl, vertraue der Antwort nicht. Hat ein Programm beim Speichern die Zeilenenden auf CRLF umgeschrieben oder die Datei als UTF-16 gespeichert, wandelt der Verifier sie zurück und weist darauf hin; über das Ergebnis entscheidet weiterhin der signierte Hash.
- Kein tee.proof
- Die Antwort ist nicht belegt: Vielleicht ist die Prüfung für den Key nicht aktiviert, die Anfrage lief über eine Formatumwandlung oder die Enclave war nicht verfügbar. Behandle sie als nicht belegt.
Andere Relays prüfen: was jede Methode erkennt und was ihr entgeht
Ohne Signatur des Upstreams sind nur indirekte Prüfungen möglich. Sie decken offensichtliche Probleme auf, aber das beste Ergebnis lautet „nichts Verdächtiges gefunden“, nie „als offiziell bestätigt“. Hier sind die gängigen Methoden und ihre Grenzen.
| Methode | Vorgehen | Erkennt | Erkennt nicht |
|---|---|---|---|
| Token-Zählung | Vorgehen: Sende denselben festen Prompt an dasselbe Modell über die offizielle API und über das Relay und vergleiche input_tokens in usage. | Erkennt: Ein Modell eines anderen Anbieters: Tokenizer unterscheiden sich je nach Anbieter, die Zahlen weichen also deutlich voneinander ab. | Erkennt nicht: Modelle eines Anbieters teilen sich oft einen Tokenizer, ein günstigeres Modell derselben Familie fällt daher nicht auf. Außerdem brauchst du einen Referenzwert von der offiziellen API. |
| Prompt-Caching | Vorgehen: Sende zweimal dasselbe Präfix, das länger ist als die minimale cachebare Länge des Modells. Prüfe, ob die zweite Antwort cache_read_input_tokens meldet und zum Preis für Cache-Lesen abgerechnet wird. | Erkennt: Ein Backend, das nicht der offizielle Upstream ist, oder ein Relay, das das Caching bricht, aber den vollen Preis berechnet. | Erkennt nicht: Ein Cache-Treffer zeigt nur, dass das Backend Caching unterstützt – nicht, welches Modell dahintersteckt. |
| Langer Kontext | Vorgehen: Sende einen Text nahe am angegebenen Kontextlimit, verstecke in der Mitte eine wichtige Information und frage danach. | Erkennt: Ein Modell mit kleinerem Kontextfenster, das sich als das echte ausgibt, oder ein Relay, das den Verlauf stillschweigend kürzt. | Erkennt nicht: Eine richtige Antwort belegt nicht die Modellversion, und diese Prüfung kostet die meisten Token. |
| Protokolldetails | Vorgehen: Vergleiche die Reihenfolge der Streaming-Events (message_start bis message_stop), das Format der Nachrichten-IDs, die Header und den Aufbau der Fehlermeldungen mit der offiziellen Dokumentation. | Erkennt: Grobe Wrapper, die die Ausgabe eines anderen Modells in das Claude-Format pressen. | Erkennt nicht: Jedes dieser Felder lässt sich leicht fälschen; ein sorgfältiger Wrapper bildet sie exakt nach. |
Worauf du dich nicht verlassen solltest
- Das Modell fragen „Wer bist du?“ oder „Wie aktuell ist dein Wissensstand?“: Offizielle Modelle liegen dabei selbst oft falsch, und ein Relay kann per System-Prompt jedes Modell behaupten lassen, es sei Claude.
- Qualität oder Geschwindigkeit der Antworten nach Gefühl beurteilen: Prompts, Auslastung und Zufall beeinflussen beides zu stark; das ist höchstens ein Hinweis.
Warum es hier keinen Ein-Klick-Scanner für beliebige Relays gibt
- Ein Scan muss Anfragen mit deinem API-Key für dieses Relay senden. Liefen sie über unsere Server, würdest du uns den Key eines anderen Dienstes anvertrauen – und den wollen wir nicht verwahren.
- Das Relay direkt aus dem Browser aufzurufen scheitert, weil die meisten Relays keine Cross-Origin-Anfragen erlauben.
- Die Prüfungen oben können nur „verdächtig“ oder „nichts gefunden“ sagen. Als Punktzahl verpackt würden sie verlässlich wirken und in die Irre führen.
Checkliste zum Selbsttest eines Relays
Bevor du dich für ein Relay entscheidest oder wenn du an deinem aktuellen zweifelst, prüfe in dieser Reihenfolge:
- Trägt die Antwort einen Upstream-Nachweis, den du offline prüfen kannst? Falls ja: Ist der signierte Upstream-Host offiziell, zum Beispiel api.anthropic.com für Claude?
- Stimmen die input_tokens für einen festen Prompt mit der offiziellen API überein?
- Meldet die Antwort nach dem Wiederholen eines langen Präfixes Cache-Lesen, und wird sie zum Cache-Preis abgerechnet?
- Wird Kontext nahe am angegebenen Limit ohne Kürzung verarbeitet?
- Legt das Relay offen, woher sein Upstream stammt und ob es Anfrageinhalte protokolliert oder speichert?
- Lässt sich ein Relay nicht prüfen, sende darüber keine Geheimnisse, Kundendaten oder andere sensible Inhalte.
Was ein Nachweis zeigt und was nicht
Zeigt
- Von welchem offiziellen Upstream-Host die Antwort stammt.
- Die Antwort-Bytes entsprechen exakt dem, was der Upstream geliefert hat, einschließlich des Felds model; das Relay hat nichts verändert.
- In der Enclave läuft ein Image, das aus öffentlichem Quellcode gebaut wurde (PCR0 ist reproduzierbar).
Zeigt nicht
- Vertraulichkeit: Beim Weiterleiten verarbeitet das Relay weiterhin Klartext.
- Antworten ohne Nachweis, etwa Anfragen mit Formatumwandlung und Bildgenerierung.
- Das erneute Ausliefern einer alten Antwort bei byteweise identischen Anfragen.
Häufige Fragen
Wird die eingefügte Antwort irgendwohin hochgeladen?
Nein. Der Verifier ist eine reine Frontend-Seite, die Signaturen mit dem im Browser eingebauten WebCrypto prüft und keine Netzwerkanfragen sendet. Das kannst du im Netzwerk-Tab der Entwicklertools deines Browsers nachvollziehen – oder du speicherst den Verifier und nutzt ihn offline.
Sind KI-API-Relays legal?
Das hängt von den Gesetzen an deinem Standort und am Standort des Relays ab sowie von den Nutzungsbedingungen des Upstream-Anbieters, die sich je nach Region und Anbieter unterscheiden; diese Seite ist keine Rechtsberatung. Lies vor der Nutzung die Bedingungen des Upstreams und die Regeln vor Ort, besonders bei sensiblen oder regulierten Daten. Dieses Tool beantwortet eine Frage, die sich technisch prüfen lässt: ob die Antwort, die du erhalten hast, das Original des offiziellen Upstreams ist.
Woran erkenne ich, ob ein Relay ein „abgespecktes“ Modell ausliefert?
Wirkt ein Modell über ein Relay schlechter, liegt das meist an einem dieser Punkte: stillschweigender Wechsel auf ein günstigeres Modell, gekürzter Gesprächsverlauf, ein niedrigeres Ausgabelimit oder abgeschaltetes Thinking. Eine Antwort mit Nachweis schließt den ersten Punkt aus: Die Signatur deckt die Original-Bytes des Upstreams ab, das Feld model kommt also von der offiziellen API. Kürzungen und geänderte Parameter passieren auf der Anfrageseite, die der Nachweis der Antwort nicht abdeckt; dabei helfen die Prüfungen zu langem Kontext und Token-Zählung oben.
Was unterscheidet eine Claude-Mirror-Seite von der offiziellen Seite?
Die offiziellen Produkte sind claude.ai und die Anthropic API. Eine Mirror-Seite ist eine Chat-Seite eines Drittanbieters, die die offizielle API, geteilte Konten oder das Modell eines anderen Anbieters nutzen kann – mit eigenen Funktionen und eigener Datenschutzerklärung –, und Nutzer können meist nicht erkennen, was dahintersteckt. Wenn du die API aus Tools wie Claude Code oder Cursor nutzt, geht es um API-Relays, und der Maßstab ist derselbe: Kann der Dienst dir einen Upstream-Nachweis geben, den du selbst prüfen kannst?
Was, wenn die Antwort kein tee.proof enthält?
Prüfe, ob für den Key die „Offizielle Prüfung“ aktiviert ist und ob du eine Route aufrufst, die unverändert durchreicht – Claude Messages oder GPT Responses. Anfragen mit Formatumwandlung, etwa Claude über Chat Completions, tragen nie einen Nachweis. Ist die Enclave vorübergehend nicht verfügbar, weicht die Anfrage auf den Ersatzweg aus, und auch diese Antwort hat keinen Nachweis. Behandle jede Antwort ohne Nachweis als nicht belegt.
Kann ich mit diesem Tool auch andere Relays prüfen?
Der Verifier prüft nur Antworten, die einen Proof-of-Observation-Nachweis tragen. Das Protokoll ist Open Source, und jedes Relay kann es umsetzen; für Relays, die das nicht getan haben, bleiben nur die indirekten Prüfungen oben, und das beste Ergebnis lautet „nichts Verdächtiges gefunden“.