VaultContext

VaultContext speichert Dateien, zu Beginn bis zu 8 MiB je Datei, für Personen und ihre KI-Assistenten. Namen und Beschreibungen sind ebenfalls verschlüsselt. Du legst Dateien hinein und holst sie heraus, mit dem Kommandozeilen-Client oder dem Skill.

VaultContext trennt Authentifizierung von Entschlüsselung. Die Google-Anmeldung prüft deine Identität, während deine Passphrase dein privates Schlüsselbündel im Speicher entschlüsselt. Dateien werden auf deinem Rechner verschlüsselt, bevor sie hochgeladen werden, deshalb speichert der Server immer nur Geheimtext. Das Datenmodell nutzt X25519, um einen Tresorschlüssel für jedes Mitglied zu verschlüsseln, Ed25519-Signaturen und ein authentifiziertes Verschlüsselungsformat (AEAD), das den Geheimtext an seinen Kontext bindet. Der Server kann weiterhin sehen, wer Mitglied ist, wann sich etwas geändert hat und wie groß der Geheimtext ist. Weil es keine Wiederherstellungsschlüssel gibt, sperrt eine verlorene Passphrase den Tresor dauerhaft.

Entsperren

sequenceDiagram
  participant You as CLI
  participant Server as VaultContext
  participant Mem as Prozessspeicher

  You->>Server: Google-Anmeldung
  Server-->>You: Anwendungstoken
  You->>Server: das verschlüsselte Schlüsselbündel herunterladen
  You->>Mem: das Bündel mit der Passphrase entschlüsseln
  You->>Server: Datei-Geheimtext lesen oder schreiben
  You->>Mem: die Datei entschlüsseln oder verschlüsseln

Das private Schlüsselbündel wird nur auf dem Server gespeichert, und nur in verschlüsselter Form. Der Client darf das Anwendungstoken und einen öffentlichen Fingerabdruck zwischenspeichern. Das private Bündel speichert er nicht zwischen. Es gibt keine Wiederherstellungsschlüssel. Eine verlorene Passphrase, ohne entsperrte Sitzung und ohne eingetragenen macOS-Keychain-Eintrag, bedeutet, dass die Dateien unlesbar bleiben. Das Google-Konto zurückzusetzen entschlüsselt sie nicht.

Ein optionaler Keychain-Eintrag speichert die Passphrase auf diesem Mac, nicht den privaten Schlüssel.

flowchart TB
  account[Google-Konto]
  identity[Verschlüsselungsidentität]
  personal[Persönlicher Tresor]
  project[Projekt-Tresor]
  members[Eigentümerin oder Eigentümer, Bearbeitende, Lesende]

  account --> identity
  identity --> personal
  identity --> project
  project --> members

Persönliche Tresore sind privat. Ein Projekt-Tresor hat eine Eigentümerin oder einen Eigentümer und benannte Bearbeitende und Lesende, gewählt über die genaue Workspace-E-Mail-Adresse. Diese Personen brauchen ein aktives, geprüftes Konto, das seine Verschlüsselungsidentität schon angelegt hat. Neue Mitglieder können Historie lesen, die behalten wurde. Ein Mitglied zu entfernen stoppt den Abruf sofort und pausiert Schreibzugriffe, bis die Schlüssel rotiert sind. Kopien, die schon heruntergeladen wurden, bleiben heruntergeladen.

Der Client hält entsperrte Schlüssel in einem lokalen Socket für denselben Betriebssystembenutzer, standardmäßig 15 Minuten, bis du lock ausführst. Der Rechner, auf dem du entsperrst, ist vertrauenswürdig. Dateiinhalte sind Daten, die du lesen kannst, keine Anweisungen, die der Client ausführen oder teilen soll.