Sicherheit

„Vertrau uns“ ist keine Antwort.

Klorn liest die Mails anderer Leute, damit du es nicht musst. Genau dieser Satz ist das Bedrohungsmodell: Die wichtigste Eingabe ist Text von Fremden, und manche von ihnen sind Angreifer. Hier steht, was die Architektur tatsächlich garantiert, jeweils mit der Datei, die es umsetzt.

Diese Übersetzung dient nur der Orientierung; maßgeblich ist die englische Fassung. Englische Fassung lesen

Google-Prüfung und unabhängige Bewertung

Google hat seine OAuth-Prüfung für Klorn am 2026-10-03 abgeschlossen. Davor wurde Klorn von TAC Security unabhängig nach CASA Tier 2 bewertet; Ergebnis: In Compliance. Der Letter of Validation aus dieser Bewertung wurde anschließend bei Google eingereicht.

Bewertung
CASA Tier 2, dynamische Anwendungssicherheitstests (DAST), durch TAC Security
Ergebnis
In Compliance, auf Assurance Level AL1 (OWASP ASVS Level 1)
Daten
Bewertet am 2026-08-12 · Bericht ausgestellt am 2026-08-30 · Google-Prüfung abgeschlossen am 2026-10-03
Neubewertung
Jährlich. Die nächste Bewertung ist im August 2027 fällig

Die fünf Google-Scopes und wofür jeder einzelne da ist

Diese fünf sind die Google-Scopes, die in dieser Prüfung genehmigt wurden, und die einzigen Mail- und Kalender-Scopes, die Klorn anfordert. Klorn fragt nicht nach dem Vollzugriffs-Scope von Gmail, und beim Kalender nur nach calendar.events und calendar.readonly — nie nach dem vollen Kalender-Scope.

gmail.readonly
Deine Nachrichten lesen, damit Klorn sie sortieren, den Grund für jede Entscheidung anzeigen und auf Wunsch einen Thread zusammenfassen kann.
gmail.modify
Den Zustand einer Nachricht ändern, wenn du in Klorn handelst: archivieren oder zurückholen, in den Papierkorb verschieben oder wiederherstellen, mit Stern versehen, als gelesen oder ungelesen markieren und einen Antwortentwurf in Gmail speichern.
gmail.send
Mails nur senden, wenn du es freigibst — eine Antwort, die du bestätigst, eine mailto-Abmeldung, um die du bittest — oder eine Auto-Antwort nach Regeln, die du selbst festlegst.
calendar.readonly
Frei/Gebucht-Zeiten über alle deine Kalender lesen, damit Meeting-Mails gegen deinen echten Terminplan geprüft und Konflikte erkannt werden.
calendar.events
Einen Termin in deinem Hauptkalender anlegen, ändern oder entfernen, wenn du Klorn darum bittest — nicht die Kalendereinstellungen und nicht das Teilen von Kalendern.

Die Anmeldung mit Google fragt nur nach deinem Namen und deiner E-Mail-Adresse. Die Mail- und Kalender-Scopes kommen später, in einem zweiten Zustimmungsbildschirm, wenn du ein Postfach verbindest — und eine reine Kalenderverknüpfung fragt nach calendar.readonly, ganz ohne Mail-Scope. (openid und userinfo.email/userinfo.profile stehen ebenfalls in dieser Datei — sie zeigen, welches Konto sich angemeldet hat, sind nicht sensibel und nicht Teil dessen, was Google geprüft hat.)

Wohin die Daten gehen

OAuth-Tokens werden vor dem Speichern mit AES-256-GCM verschlüsselt, jede gehostete Oberfläche läuft nur über TLS, und Analysedaten enthalten nie Nachrichteninhalte — die Tabelle unten nennt jeweils die zugehörige Datei. Logs laufen nach dem festen Zeitplan unter Wie lange etwas gespeichert wird ab. Wenn deine Mails gar nicht erst über unsere Server laufen sollen, hoste denselben Code selbst, mit deinem eigenen Modellschlüssel oder einem lokalen Modell. Die Datenschutzerklärung findest du unter /privacy.

Was das bedeutet und was nicht. Die Prüfung und die Bewertung betreffen, wie Klorn mit den Google-Daten umgeht, die es anfordert. Sie sind keine Empfehlung von Klorn durch Google und decken nichts über diese Scopes hinaus ab. Heute kannst du Gmail, Google Kalender, Naver Mail (Beta) und iCloud Mail (Beta) verbinden; andere Anbieter sind noch nicht verfügbar.

Was die Architektur garantiert

EigenschaftWas tatsächlich giltWo du es prüfst
E-Mail ist feindliche EingabeJeder Mailtext, jeder Betreff und jeder Fremdstring wird in <untrusted_content>-Markierungen gehüllt, bevor er ein Modell erreicht, und bereits vorhandene Wrapper-Tags werden vorher entfernt, damit eine präparierte Nachricht den Wrapper nicht schließen kann. Prompt-Injection gehört zum Bedrohungsmodell und ist keine hingenommene EinschränkungSECURITY.md
Token-Verschlüsselung im RuhezustandAES-256-GCM, bevor das Token die Datenbank berührt, mit Schlüsselrotation über einen Keyring (v1/v2-Umschläge), sodass bei einem vermuteten Leck ohne festen Umstellungstag rotiert wird. Fehlt der Schlüssel außerhalb von dev/test, bricht der Start ab, statt auf einen Ersatz zurückzufallencrypto-tokens.ts
Ausgehende AktionenSenden, endgültiges Löschen und externes Weiterleiten können sich nicht auf die Konfidenz des Klassifikators stützen. Jede dieser Aktionen braucht einen Beleg, der bei der Freigabe erzeugt wird und einen sha256 der kanonischen Nutzlast fixiert, der bei der Ausführung erneut geprüft wird. Hat sich dazwischen irgendetwas verändert, wird die Aktion verweigertattention-floor.ts
Entwickler-KomfortfunktionenDas Dev-JWT-Secret, der Dev-Verschlüsselungsschlüssel, localhost-CORS und der Demo-Nutzer liegen hinter einer dev/test-Allowlist, die bei jedem anderen NODE_ENV sicher sperrt (fail closed)env.ts
AnalyseNur First-Party. Eine kurze Allowlist grober Ereignisnamen in Klorns eigener Postgres-Datenbank. Kein externer Tracker und nie Nachrichteninhalteanalytics.ts
Verschlüsselung bei der ÜbertragungNur TLS auf jeder gehosteten Oberfläche — API, Web, Google-APIs, Modellanbieterself-hosting.md

Wie lange etwas gespeichert wird

Die Aufbewahrung von Logs wird durch einen geplanten Löschlauf durchgesetzt, nicht durch ein Versprechen: Agentenaktionen, Mailverarbeitung, Push-Zustellung und Webhook-Protokolle werden nach 90 Tagen gelöscht, Rate-Limit-Zeilen nach 30 und die Token-Abrechnung nach 180 für die Analyse von Kostenabweichungen. Die Fristen sind eine Tabelle im Quellcode, keine Einstellung, die wir unbemerkt ausweiten könnten, ohne dass es in einem Diff auftaucht.

Eine Schwachstelle melden

Schreib an k0820086@gmail.com mit einer Beschreibung und Schritten zur Reproduktion. Bitte eröffne für einen ausnutzbaren Fund kein öffentliches Issue. Du bekommst innerhalb weniger Tage eine Eingangsbestätigung; Korrekturen an der Freigabeschwelle und an den Pfaden der Token-Verschlüsselung haben Vorrang vor allem anderen. Maschinenlesbare Kontaktdaten findest du unter /.well-known/security.txt.

Was wir nicht behaupten. Abgesehen von der oben genannten Bewertung nach CASA Tier 2 hatte Klorn keinen Penetrationstest durch Dritte und kein SOC-2-Audit, und diese Seite deutet auch keines an. Klorn ist ein Produkt in der Beta, das eine einzelne Person pflegt. Der ausgleichende Kontrollmechanismus: Der Code steht unter AGPL-3.0, und die sicherheitsrelevanten Pfade sind oben mit Dateinamen genannt — du kannst sie lesen, statt uns beim Wort zu nehmen.

SECURITY.md enthält die ausführlichere Fassung, einschließlich der bekannten Lücken, die wir lieber benennen als verschweigen.