Sicherheit

Stand: 8. Oktober 2026 · English

Du sollst einer Anwendung ohne offenen Quellcode eine Anmeldung und, für die Kostenzahlen, einen Admin-Schlüssel anvertrauen. Dass man da zögert, ist berechtigt. Diese Seite ist das Protokoll, das du bei einer solchen App sonst gar nie zu sehen bekommst: was geprüft wurde, was gefunden wurde, was behoben ist — und was bewusst so geblieben ist.

Die meisten geben nie einen Schlüssel ein

Bei einer gratis App mit geschlossenem Code ist die Frage berechtigt, was sie im Gegenzug von dir will. Darum zuerst das Wichtigste: Für die beiden Abos, wegen denen die meisten hier landen — Claude und ChatGPT — meldest du dich schlicht an. Das läuft über OAuth, auf den Anmeldeseiten der Anbieter selbst, und dein Passwort bekommt die App nie zu sehen. Es entsteht kein Admin-Schlüssel, und du kopierst nirgendwo etwas hinein.

Jede API-Karte ist freiwillig und bleibt leer, solange du es nicht anders willst. Installieren, anmelden, fertig — für die meisten stellt sich die Schlüsselfrage gar nie. Sie kommt erst auf, wenn du zusätzlich sehen willst, was dich die APIs kosten. Darum geht es im Rest dieser Seite.

Warum einer App trauen, deren Code du nicht lesen kannst?

Es gibt kostenlose, quelloffene Werkzeuge, und ihr stärkstes Argument stimmt: Man kann nachlesen, was ein Programm tut, bevor man ihm einen Admin-Schlüssel gibt. Das kann diese App nicht bieten. Sie zahlt in einer anderen Währung — Bequemlichkeit und Absicherung durch die Plattform, nicht Nachprüfbarkeit. Für die Sandbox sorgt macOS selbst, sie steht nicht bloss in einer README; die App ist signiert und notarisiert und mit einem Klick installiert; und Sicherheitskorrekturen kommen per automatischem Update bei allen an, nicht nur bei denen, die eine Release-Seite im Auge behalten. Das gilt für die Store-Fassungen auf Mac, iPhone und Uhr — die Windows-Fassung liegt in keinem Store: dort gibt es weder Sandbox noch Signatur noch automatisches Update.

✓ Und die eigentliche Antwort auf die Vertrauensfrage: das Sicherheitsprotokoll.

Geschlossener Code muss nicht «vertrau mir einfach» heissen. Das Sicherheitsprotokoll dokumentiert vier Prüfdurchgänge mit ihren konkreten Funden — was untersucht wurde, was dabei herauskam, was behoben ist und was bewusst offen blieb. Es ersetzt das Lesen des Quelltexts nicht; es ist das Ehrlichste, was eine geschlossene Codebasis auf den Tisch legen kann.

Und wenn du lieber die Arbeit beurteilst als die Behauptungen darüber: Die unangenehmen Fehler schreibe ich in den Notizen auf — was kaputt war, woran es wirklich lag und was ich dagegen getan habe.

Was diese Prüfung ist und was nicht

Sie ist eine dokumentierte, modellgestützte Prüfung gegen anerkannte Rahmenwerke, durchgeführt mit Claude Fable 5 an vier Terminen, jeder mit schriftlichem Bericht. Sie ist kein externes Audit. Es wurde keine unabhängige Firma beauftragt, und niemand ausserhalb dieses Projekts hat den Quellcode gelesen. Wer ein externes Audit als Messlatte anlegt, wird hier nicht fündig — daran ändert auch keine Formulierung etwas.

Was sie stattdessen liefert, ist eine nachrechenbare Aufstellung, keine Plakette. Jeder Befund unten nennt die Fehlerklasse und was dagegen unternommen wurde.

Welche Fassung geprüft wurde

Der letzte vollständige Durchgang lief am 10. August 2026 gegen den Code, der als Version 5.0 ausgeliefert wurde. Aktuell im Store ist 6.5.

Seither dazugekommen und damit nicht von einem förmlichen Durchgang abgedeckt: die Karten für OpenRouter und Grok, das zweite Claude-Konto, der Demomodus, der Einrichtungsassistent, das Verschieben der Karten, die Monatssummen-Zeile, die Bewertungsanfrage, GitHub Copilot, der Live-Abruf für ChatGPT, die Störungsanzeige und die Kaffeekasse (6.5). Die Härtung aus den Durchgängen — keine Weiterleitungen, Zugangsdaten nur im Schlüsselbund, gedeckeltes Lesen fremder Transkripte — gilt auch dafür, weil sie in den gemeinsamen Schichten sitzt. Ehrlich bleibt trotzdem: 6.5 hat keinen eigenen Durchgang hinter sich, und etwas anderes zu behaupten würde diese Seite sinnlos machen.

Geprüft gegen

Die Durchgänge

Durchgang 2.1 — fünf Befunde, alle behoben

2. August 2026 · zwei unabhängige Läufe

  • Befehlseinschleusung über den Codex-Pfad (CWE-78) — AppleScript ist raus, der Pfad wird shell-maskiert in eine .command-Datei geschrieben.
  • HTML-Einschleusung in der Rückkanal-Seite — die Ausgabe wird maskiert.
  • Datenwettlauf auf startup im Codex-Anschluss — Zugriff nur noch über die Queue.
  • Ignorierter Rückgabewert von SecRandomCopyBytes — wirft jetzt, statt stillschweigend schwachen Zufall zu liefern.
  • Pfadausbruch über eine agentId aus einem fremden Transkript — Zeichen werden gefiltert.

Durchgang 3.1 — kein kritischer und kein hoher Befund, neun Punkte behoben

4. August 2026 · zwei unabhängige Läufe · 103 Tests grün

Die fünf Befunde aus 2.1 waren nachweislich weiterhin geschlossen.

  • Ganzzahl-Falle aus fremden Transkripten (CWE-190). Eine einzige Zeile mit "input_tokens": 1e300 brachte die App beim Umrechnen zum Absturz — und weil die Datei im Aktivitätsfenster blieb, beim Neustart gleich wieder. Werte werden gedeckelt, Summen sättigend gerechnet.
  • «Projektordner öffnen» startete alles, worauf der Pfad zeigte (CWE-73). Der Pfad stammt aus dem cwd-Feld eines fremden Transkripts; zeigte er auf ein Programmbündel, war der Klick ein Programmstart. Jetzt nur noch im Finder zeigen, und nur bei einem echten Ordner.
  • Weiterleitungen mit dem Admin-Schlüssel im Kopf (CWE-522). Alle Clients nutzen eine Session, die HTTP-Weiterleitungen nicht folgt — eine 301-Antwort kann den Schlüssel nicht zu einem fremden Host tragen.
  • Wettlauf beim Abmelden (CWE-613). Eine laufende Token-Erneuerung schrieb die eben gelöschten Token wieder in den Schlüsselbund. Sie verwirft ihr Ergebnis jetzt.
  • Prüfen-und-Setzen-Wettlauf beim Start des Codex-Dienstes (CWE-362) — zwei Aufrufer konnten zwei Kindprozesse starten, einer blieb als Waise zurück. Jetzt atomar.
  • Fehlende Ressourcengrenzen (CWE-400): 4 MB je Lesedurchgang, 200 Subagenten-Dateien je Sitzung, 4 MB Puffer im Codex-Anschluss, 25 Projekte bei OpenAI, und die Codex-Protokolle werden nur noch am Dateiende gelesen.
  • Symbolische Verweise (CWE-59) — die Verlaufsdatei wird mit O_NOFOLLOW geöffnet.
  • Ehrliche Zeitstempel — Werte aus dem Codex-Protokoll tragen den Zeitpunkt aus dem Protokoll, nicht den der Abfrage; Kontostand und Coding-Kontingent von Kimi haben getrennte Zustände, damit nicht der eine den anderen als frisch ausweist.
  • Weniger Preisgabe — die Schlüsselvorschau zeigt nur noch die letzten vier Zeichen (der Selbsttest ist zum Verschicken gedacht), und die Schlüsselbund-Einträge stehen auf «nur dieses Gerät».

Durchgang 4.1 — Anzeigeschicht

9. August 2026 · zwei Läufe: einmal auf Fehler und Verbesserungen, einmal auf die Sicherheit der Anzeigeschicht

Beide Berichte wurden vor der Veröffentlichung eingearbeitet. Eine eigene Befundliste hat dieser Durchgang nicht hervorgebracht — hier eine zu konstruieren wäre Füllmaterial.

Durchgang 4.2 — kein kritischer Befund; zwei wichtige und drei kleine behoben

10. August 2026 · ausgeliefert als Version 5.0

  • UTC-Tagesgrenze in der Guthabenrechnung. Die Kostenintervalle der Schnittstelle beginnen an UTC-Mitternacht, der Stichtag wurde aber mit dem lokalen Kalender gebildet — westlich von UTC fiel der Aufladetag aus der Summe, und die App zeigte zu viel Guthaben. Sie rechnet jetzt in UTC, ein Test prüft acht Zeitzonen.
  • Ungedeckeltes Int(…) auf die Restzeit im Menüleistensymbol: eine masslose resets_at-Antwort des Servers konnte die App zum Absturz bringen. Jetzt auf acht Tage gedeckelt.
  • Klein: Decimal(Double) verfälscht Beträge, der Aufladebetrag läuft deshalb über die Zeichenkette; eine veraltete Kostensumme konnte neben einem neuen Betrag stehen; eine unnötig offene Schnittstelle wurde geschlossen.

Die Befunde von 2.1 bis 4.1 waren nachweislich weiterhin geschlossen.

Bewusst nicht umgesetzt

Das sind Abwägungen, keine Versäumnisse. Sie stehen hier, weil eine Prüfung, der man nicht widersprechen kann, nichts wert ist.

Wohin die Mac-App Verbindungen aufbaut

Das ist die vollständige Liste — dieselbe, die die App auf ihrer Über-Seite zeigt. Weiterleitungen werden nicht befolgt, und die Inhalte deiner Sitzungen werden nie übertragen.

AdresseWofürVoraussetzung
claude.com, platform.claude.com An- und Abmeldung bei ClaudeDein Claude-Abo
api.anthropic.com Nutzungsfenster des Abos und, davon getrennt, die Kosten der Schnittstelle Anmeldung bzw. Admin-Schlüssel
auth.openai.com Anmeldung beim ChatGPT-Konto — die Seite gehört OpenAI Nur während der Anmeldung (App-Store-Fassung)
chatgpt.com Kontingente und Guthaben des angemeldeten ChatGPT-Kontos ChatGPT-Anmeldung
api.openai.comKosten und Tokenverbrauch der OpenAI-Schnittstelle Admin-Schlüssel, freiwillig
api.moonshot.ai / api.moonshot.cn, api.kimi.com Kontostand und Coding-Kontingent bei KimiAPI-Schlüssel, freiwillig
openrouter.aiGuthaben, Verbrauch und das Limit auf deinem Schlüssel Gewöhnlicher Schlüssel, freiwillig
management-api.x.aiGuthaben und Ausgabenlimit bei xAI Management-Schlüssel, freiwillig
api.github.com Der Benutzername zu deinem Token und der Abrechnungsbericht für GitHub Copilot GitHub-Token, freiwillig
api.deepseek.com Kontostand bei DeepSeek, je Währung — ab Fassung 7.2 API-Schlüssel, freiwillig
status.claude.com, status.openai.com, status.moonshot.cn, www.githubstatus.com Die öffentlichen Störungsmeldungen der Anbieter — es geht nichts hin, es kommt nur eine öffentliche Statusdatei zurück. GitHub für die Copilot-Karte, ab Fassung 7.2 Nur bei eingerichteter Karte des jeweiligen Anbieters
localhost:<port>/callback Der Rückweg der Anmeldung, ausschliesslich auf der Rückschleife—
Lokale Dateien: ~/.claude, ~/.codex Deine Claude-Code-Sitzungen und die Kontingente des ChatGPT-Abos, gelesen auf deinem Mac. Nichts davon verlässt das Gerät. Lesezugriff, den du einmal erteilst

In dieser Liste steht kein eigener Server — es gibt keinen. Die ChatGPT-Kontingente kommen entweder aus der lokalen Codex-Installation oder, wenn du dich in der App bei ChatGPT anmeldest, direkt von chatgpt.com.

Die iPhone-App spricht mit denselben Diensten, ab 2.11 auch mit DeepSeek und ab 2.13 mit www.githubstatus.com; ihre eigene Tabelle steht in ihrer Datenschutzerklärung. Die Windows-Fassung spricht ebenfalls mit denselben Diensten und ab 1.5 mit einem weiteren Ziel: Einmal am Tag fragt sie bei api.github.com nach, ob es eine neuere Fassung gibt — ohne Zugangsdaten, mit nichts als der IP-Adresse und der Kennung «AI-Cockpit». Abschaltbar unter Einstellungen › Über. Ab 1.6 liest sie zudem www.githubstatus.com für die Copilot-Karte und legt alle Daten in %APPDATA%\AI-Cockpit ab (bis 1.5: %APPDATA%\AI Dock).

Glaub mir nicht. Schau auf die Leitung.

Das Sicherheitsprotokoll nennt jede Adresse, zu der die App überhaupt eine Verbindung aufbaut — Zeile für Zeile, mit dem Zweck dahinter. Diese Liste ist keine Beruhigung, sondern eine Behauptung, auf der du mich behaften kannst.

Also behafte mich darauf. Häng einen Netzwerkmonitor davor — Little Snitch, LuLu, was immer du ohnehin einsetzt — und lass ihn einen Arbeitstag lang mitlaufen. Alles, was er aufzeichnet, muss in dieser Liste stehen. Steht etwas nicht drin, gehört das an die Öffentlichkeit, und mir ist deutlich lieber, ich lese davon, als dass es niemand sagt: Das Feedback-Formular kommt direkt bei mir an.

Warum ein Admin-Schlüssel — und was er kann

OpenAI und Anthropic geben Kosten- und Verbrauchszahlen ausschliesslich über ihre Admin-Endpunkte heraus; ein gewöhnlicher Projektschlüssel liefert dort nichts. Das ist ein echtes Zugeständnis von dir, darum die zwei Punkte, auf die es ankommt:

Wer diesen Tausch nicht machen will, lässt die beiden Karten weg. Jede Karte ist optional, und der Rest des Cockpits arbeitet ohne sie.

Eine Lücke melden

Über das Kontaktformular — bitte gleich zu Beginn vermerken, dass es eine Sicherheitsmeldung ist, und eine Adresse hinterlassen, unter der du erreichbar bist. Die Antwort kommt dorthin, die Einzelheiten müssen also nicht ins Formular selbst. Bitte vor einer Veröffentlichung ein paar Tage Zeit lassen — hier sitzt eine Person, kein Sicherheitsteam.