Sicherheit

Verschlüsselt, bevor es dein Gerät verlässt

Deine Notizen werden auf deinem Gerät verschlüsselt, mit Schlüsseln, die nur du und die Agenten, die du verbindest, entsperren können. Hier steht, wie die Schlüssel funktionieren, was unsere Server sehen und was nicht, wo deine Daten liegen, und welche Grenzen wir noch nicht gelöst haben.

Die Schlüssel

Dein Passwort verlässt nie dein Gerät.

Wenn du dich registrierst, erzeugt dein Browser deine Schlüssel. Aus deinem Passwort wird auf deinem Gerät ein Master-Key, mit Argon2id (mindestens 3 Durchläufe über 64 MiB Speicher). Daraus entstehen zwei Werte: ein Login-Hash, das Einzige, was wir beim Anmelden bekommen (und wir speichern davon nur einen Hash), und der Schlüssel, der deine Kontoschlüssel entsperrt.

Jeder Workspace hat seinen eigenen Zufallsschlüssel, und alles darin ist mit diesem Schlüssel per XChaCha20-Poly1305 verschlüsselt. Du und jeder Agent, den du verbindest, bekommt eine Kopie davon, versiegelt für das eigene Schlüsselpaar des Empfängers und von dir signiert, damit unser Server keinen eigenen Schlüssel unterschieben kann. Alles baut auf libsodium auf, ohne selbstgebaute kryptografische Primitive.

Auf deinen Geräten

Dein PasswortArgon2id

Wird auf deinem Gerät zu deinem Master-Key. Keines von beiden wird je an uns geschickt.

Wiederherstellungsschlüssel

32 zufällige Bytes, einmal beim Erstellen angezeigt, für den Fall, dass du dein Passwort vergisst. Wird nie an uns geschickt.

jedes entsperrt eine gesperrte Kopie von

KontoschlüsselX25519Ed25519

Beim Registrieren in deinem Browser erzeugt: Ein Schlüsselpaar öffnet deine Workspace-Schlüssel, das andere signiert deine Änderungen.

öffnet die eigene versiegelte Kopie von

Workspace-SchlüsselXChaCha20-Poly1305

Ein Zufallsschlüssel pro Workspace. Nachdem du einem Agenten den Zugriff entzogen hast, nutzt alles, was danach geschrieben wird, einen neuen.

eigene Kopie

ein verbundener Agent hat eine eigene Kopie des Workspace-Schlüssels

Agenten-SchlüsselX25519Ed25519

Von der knowtarium-CLI auf dem Computer erzeugt, den du verbindest: Einer öffnet die eigene versiegelte Kopie des Workspace-Schlüssels, der andere signiert die Änderungen, sobald du dich für ihn verbürgst.

verschlüsselt alles darin

Notiztext, Titel, Dateinamen, Eigenschaften, Tags und Links, Namen von Ordnern und Workspaces, Kommentare, Verlauf und Anhänge

deine Inhalte verlassen es nur verschlüsselt

Auf unseren Servern

  • Deine Notizen, Namen, Kommentare und Anhänge, verschlüsselt
  • Deine Kontoschlüssel, gesperrt durch dein Passwort und noch einmal durch deinen Wiederherstellungsschlüssel
  • Jede versiegelte Kopie eines Workspace-Schlüssels, von dir signiert
  • Öffentliche Schlüssel und Signaturen
  • Einweg-Hashes, die dein Passwort und deinen Wiederherstellungsschlüssel prüfen

Nichts davon öffnet deine Notizen ohne einen Schlüssel, der nur auf deinen Geräten liegt.

Wie die Schlüssel zusammenhängen: Dein Passwort und dein Wiederherstellungsschlüssel entsperren jeweils deine Kontoschlüssel; deine Kontoschlüssel öffnen den Workspace-Schlüssel; jeder verbundene Agent öffnet seine eigene Kopie mit seinen eigenen Schlüsseln; der Workspace-Schlüssel verschlüsselt alles im Workspace. Von deinen Schlüsseln speichern unsere Server nur gesperrte Kopien, öffentliche Schlüssel, Signaturen und Einweg-Hashes; deine Inhalte erreichen sie nur als Chiffretext.

Was wir sehen

Was unsere Server erreicht.

Was wir sehenWas wir nie sehen
Dein Konto

Was wir sehen

  • Deine E-Mail-Adresse, und ob du sie bestätigt hast
  • Einweg-Hashes, die dein Passwort und deinen Wiederherstellungsschlüssel prüfen, nie das Passwort oder den Schlüssel selbst
  • Deine öffentlichen Schlüssel, die Schlüsseleinstellungen deines Passworts (Salt und Stärke) und deine privaten Schlüssel, so gesperrt, dass wir sie nicht öffnen können
  • Deine Sitzungen: wann jede begonnen hat, zuletzt aktiv war und endet, und den User-Agent des Browsers, ohne IP-Adresse
  • Wann dein Konto zuletzt aktiv war
  • Deine App-Einstellungen, etwa dein Farbschema

Was wir nie sehen

  • Dein Passwort, und den daraus erzeugten Master-Key
  • Deinen Wiederherstellungsschlüssel
  • Deine privaten Schlüssel, entsperrt
Abrechnung

Was wir sehen

  • Deinen Plan, den Status deines Abos und deine Zahlungen (Beträge, Währung und Daten)
  • Deine Kunden-ID bei Polar

Was wir nie sehen

  • Deine Kartendaten: Polar nimmt die Zahlung auf seinen eigenen Seiten entgegen
Deine Notizen

Was wir sehen

  • Wie viel Speicher du nutzt, und die Größe jedes verschlüsselten Elements
  • Versionsnummern, Zeitstempel und welche Generation des Workspace-Schlüssels jedes Element nutzt
  • Anzahlen: Versionen, Kommentare, Prüfungen, offene Änderungen und Teile von Anhängen
  • Wie lange jeder Workspace seinen Verlauf behält

Was wir nie sehen

  • Notiztext, Titel und Dateinamen
  • Eigenschaften, Tags und Links
  • Anhänge, samt Namen und Typen
  • Kommentare und Details des Verlaufs
  • Was sich von einer Version zur nächsten geändert hat
Workspaces und Ordner

Was wir sehen

  • IDs deiner Workspaces, Ordner, Notizen und Anhänge, und wie sie verschachtelt sind
  • Jede Änderung an einem Ordner (wer sie gemacht hat, wann und wohin er verschoben wurde, nach ID), mit seinem Namen vorher und nachher, verschlüsselt
  • Welcher Ordner der Stammordner des Workspace ist, nach ID

Was wir nie sehen

  • Die Namen deiner Workspaces und Ordner
Agenten

Was wir sehen

  • Welche Person oder welcher verbundene Agent jede Änderung gemacht hat und welcher Art sie war (eine Bearbeitung, eine Löschung, eine Freigabe), nach ID, mit der Signatur bei signierten Änderungen
  • Welche Notizen (nach ID) jeder Agent oder Browser abruft und wann, während die Anfrage eintrifft (die Sync-API speichert das nicht)
  • Ob jede Prüfung deiner Agenten übernommen oder verworfen wurde
  • Den Zugriff jedes Agenten (Lesen oder Lesen und Schreiben, und welche Ordner, nach ID), seine Berechtigungen und jede Änderung daran, die du signiert hast, seine öffentlichen Schlüssel, und wann er verbunden, zuletzt genutzt oder entzogen wurde
  • Welche Ordner dich erst fragen, nach ID, und wann du das geändert hast
  • Welche Notizen deine Anweisungen für Agenten sind, nach ID, in einer Liste, die du signiert hast, und wann du oder eine angenommene Änderung sie aktualisiert

Was wir nie sehen

  • Die Namen deiner Agenten
  • Den Inhalt dessen, was ein Agent gelesen, geschrieben oder vorgeschlagen hat
  • Was in deinen Anweisungen für Agenten steht
  • Was die Prüfungen deiner Agenten gefunden haben und welche Notizen sie verglichen haben
Der Web Clipper

Was wir sehen

  • Welcher Ordner die Inbox jedes Workspace ist, nach ID, und den öffentlichen Schlüssel der Inbox, mit deiner Signatur
  • Für jede Erweiterung, die du verbindest: einen Hash ihres Zugriffstokens, ihren öffentlichen Signaturschlüssel mit deiner Signatur, den Workspace, in den sie speichert (nach ID), und wann sie verbunden, zuletzt genutzt, zuletzt eine Seite gespeichert und getrennt wurde
  • Für jede Seite in der Warteschlange: ihre verschlüsselte Größe, wann sie ankam und welche Erweiterung sie geschickt hat. Sobald sie als Notiz abgelegt ist, wird sie aus der Warteschlange gelöscht

Was wir nie sehen

  • Link, Titel, Notiz und Kategorie jeder Seite, die du speicherst
  • Den Namen der Erweiterung
Netzwerk und Suche

Was wir sehen

  • Deine IP-Adresse, die mit jeder Anfrage unsere Server erreicht: Die Sync-API speichert sie nicht (ihre Rate Limits behalten nur einen Hash mit Schlüssel), und Vercel, das die Web-App ausliefert, behält sie kurz in seinen Server-Logs

Was wir nie sehen

  • Deine Suchen und deinen Graph: Beides entsteht auf deinem Gerät

Zwei Anbieter sehen etwas mehr. Die Benachrichtigungen von Polar an uns enthalten auch deinen Namen und deine Rechnungsadresse, die wir nicht speichern, und wir können sie im Dashboard von Polar sehen. Resend, das unsere Konto-E-Mails verschickt, bekommt deine Adresse und den Inhalt jeder E-Mail.

Die Browsererweiterung Web Clipper hat keinen Schlüssel, der deine Notizen liest: Jede Seite, die sie speichert, wird in deinem Browser verschlüsselt. Die Datenschutzerklärung sagt, was sie liest und was wir speichern.

Die Datenschutzerklärung listet dieselben Daten auf, mit dem Grund, warum wir sie behalten, und wie lange.

Wo es liegt

Gespeichert in der EU.

Die Datenbanken, Storage-Buckets und Workspace-Objekte unserer Sync-API liegen bei Cloudflare in dessen EU-Jurisdiktion: Die Datenbanken und Buckets wurden dort angelegt, und jeder Workspace lebt in einem Durable Object, das ebenfalls dort angelegt wurde. Unsere Deploy-Prüfung lehnt jede Konfiguration ab, die die Workspaces oder Buckets woanders ablegen würde. Kurze Logs von Fehlern und von ungewöhnlichen Abrechnungsbenachrichtigungen von Polar (was passiert ist und wo in unserem Code, mit technischen IDs wie der Request-ID von Cloudflare oder der Benachrichtigungs-ID von Polar; nie IP-Adressen oder deine Inhalte) speichert das Logging von Cloudflare, für das diese Einstellung nicht gilt.

Das betrifft den Speicherort der Daten. Cloudflare, ein US-Unternehmen, betreibt die Sync-API für uns als Auftragsverarbeiter. Diese Website und die Web-App liefert Vercel aus, Konto-E-Mails verschickt Resend, und Polar verkauft die bezahlten Pläne als Merchant of Record. Deine Notizen erreichen sie nur verschlüsselt, wenn überhaupt; die Datenschutzerklärung sagt, was jeder davon bekommt.

  • EU-Jurisdiktion

    D1-Datenbanken

    Dein Konto, deine Schlüssel in gesperrter Form, deine verbundenen Agenten und Browsererweiterungen und dein Abrechnungsstatus.

  • EU-Jurisdiktion

    R2-Buckets

    Die verschlüsselten Versionen deiner Notizen, die vorgeschlagenen Änderungen deiner Agenten und deine Anhänge.

  • EU-Jurisdiktion

    Durable Objects

    Eines pro Workspace: seine Ordner, Versionen, Kommentare und Verlaufseinträge, und Seiten, die vom Web Clipper warten, nach ID und verschlüsselt.

Agenten

Dein Agent entschlüsselt auf deinem Computer.

  • 01

    Auf deinem Computer entschlüsselt

    Beim Verbinden, mit oder indem du deinen Agenten darum bittest, entstehen die eigenen Schlüssel des Agenten auf deinem Computer, und er bekommt eine für sie versiegelte Kopie des Workspace-Schlüssels. Der MCP-Server, den dein Agent startet, entschlüsselt die Notizen dort. Deine Notizen laufen nur als Chiffretext über unsere Server.

  • 02

    Von dir verbürgt

    Wenn du einen Agenten freigibst, signierst du seinen Schlüssel. Jede Änderung, die er speichert, ist mit diesem Schlüssel signiert, wird als seine angezeigt und lässt sich mit einem Klick rückgängig machen. In Ordnern mit Ask me first warten seine Änderungen stattdessen auf dich. Er löscht oder ordnet nur mit Berechtigungen um, die du ihm gibst, jede von dir signiert.

  • 03

    Sein KI-Anbieter sieht, was er liest

    Was dein Agent liest, geht an seinen KI-Anbieter (zum Beispiel Anthropic oder OpenAI), zu dessen Bedingungen. Wir betreiben keine KI-Modelle, also geht in unserem Namen nichts an eines.

  • 04

    Jederzeit entziehbar

    Entziehst du einem Agenten den Zugriff, ist er sofort von unseren Servern ausgesperrt, und alles, was danach geschrieben wird, nutzt einen neuen Workspace-Schlüssel, den der Agent nicht hat. Was er schon gelesen hat, und den alten Schlüssel, behält er.

Remote-Connectoren gibt es noch nicht. Connectoren für claude.ai und ChatGPT sollen in einer attestierten Enklave laufen: einem versiegelten Server, dessen Code dein Browser prüft, bevor er einen Schlüssel herausgibt. Heute gibt es keine, also entschlüsselt kein Server von Knowtarium deine Notizen.

Bekannte Grenzen

Was Verschlüsselung nicht lösen kann.

Wir liefern den Code der Web-App aus

Jedes Mal, wenn du die Web-App öffnest, lädt dein Browser den Code, der deine Notizen verschlüsselt, von uns (gehostet bei Vercel). Würde dieser Code manipuliert, bei uns oder bei unserem Hoster, könnte er deine Schlüssel verraten, und du würdest es kaum merken. Eine strenge Content Security Policy lässt die App nur ihre eigenen Skripte ausführen und nur mit sich selbst und unserer Sync-API sprechen (und, während du einen Agenten verbindest, mit der CLI auf deinem Computer). Das hält eingeschleuste Skripte fern, schützt dich aber nicht vor einem fehlerhaften Deploy. Es gibt noch keine Möglichkeit, den Code zu prüfen, den dein Browser ausführt.

Beides verloren, alles weg

Verlierst du sowohl dein Passwort als auch deinen Wiederherstellungsschlüssel, können wir deine Notizen nicht entschlüsseln, und du auch nicht (nur Agenten, die du schon verbunden hattest, können es noch, bis du neu anfängst). Du kannst mit derselben E-Mail-Adresse neu anfangen, aber das löscht jeden Workspace im Konto.

Metadaten, die wir nicht verbergen können

Deine E-Mail-Adresse, Größen, Zeitstempel, Anzahlen, wie deine Ordner und Notizen verschachtelt sind, welche Notizen wann abgerufen werden und welcher Agent was geändert hat. Wer Zugriff auf unsere Server hätte, könnte erfahren, wann und wie viel du arbeitest, aber nie, was du geschrieben hast.

Ein entzogener Agent behält den alten Schlüssel

Ein neuer Schlüssel schützt nur, was nach dem Entziehen geschrieben wird: Nichts wird neu verschlüsselt. Was vorher geschrieben wurde, bleibt unter dem alten Schlüssel: eine Notiz, bis sie sich ändert und der Aufbewahrungszeitraum ihrer alten Version vorbei ist, und Kommentare, Verlaufseinträge und Anhänge, so lange sie aufbewahrt werden. Ein entzogener Agent könnte sie noch lesen, wenn er an diese verschlüsselten Kopien käme, die unsere Server ihm nicht mehr geben.

Ordner und Berechtigungen setzt unser Server durch

Ein Agent, den du auf einige Ordner beschränkst oder dem du das Löschen nicht erlaubst, hat trotzdem den Workspace-Schlüssel; es ist unser Server, der ihm die anderen Ordner vorenthält und ablehnt, was du nicht erlaubt hast. Agenten löschen nie angehängte Dateien, und jedes Löschen, Verschieben oder jede Ordneränderung ist vom Agenten signiert, wird von der App gegen die Berechtigungen geprüft, die du signiert hast, und ist zwei Wochen lang (oder so lange wie dein Aufbewahrungszeitraum, falls der kürzer ist) mit Undo aufgelistet. Eine gelöschte Notiz kommt zurück, solange dein Aufbewahrungszeitraum sie behält. Ihre Konventionen sagen ihnen, nur zu löschen oder umzuordnen, wenn du darum bittest, aber das ist eine Anweisung, keine Sperre. Wenn ein Ordner auf keinen Fall für einen Agenten erreichbar sein darf, leg ihn in einen anderen Workspace.

Anweisungen leiten, sie erzwingen nichts

Deine Ordner-Anweisungen sagen einem Agenten, wie er schreiben soll, aber das Modell kann sie trotzdem falsch umsetzen, und ein veränderter Client könnte sie übergehen. Was wir durchsetzen, ist, wer sie ändert: Unser Server lehnt es ab, wenn ein Agent direkt in sie schreibt, und ein Agent wendet nur Anweisungen an, die du signiert hast. Ein Agent, der auf einige Ordner beschränkt ist, liest auch die Anweisungen der Ordner darüber, also schreib dort nichts hinein, was er nicht sehen soll.

Open Source

Lies den Code.

Die Verschlüsselung, die Schlüsselverwaltung, der Sync-Client, die CLI und der MCP-Server sind Open Source unter der MIT-Lizenz, in knowtarium-sdk. Die Web-App baut auf demselben Paket auf. Jedes Release der CLI seit 0.1.0 wird aus diesem Repository mit Provenance auf npm veröffentlicht, also hält npm fest, welcher Build es erzeugt hat.

Ein unabhängiges Sicherheitsaudit gab es noch nicht. Wenn du ein Problem findest, melde es bitte vertraulich per E-Mail an support@knowtarium.com mit „Security“ im Betreff.