VaultContext

VaultContext conserva file, fino a 8 MiB ciascuno all’inizio, per le persone e i loro assistenti. Anche nomi e descrizioni sono cifrati. Metti i file dentro e li riprendi con il client da riga di comando o con lo skill.

VaultContext separa l’autenticazione dalla decifrazione. L’accesso con Google verifica la tua identità, mentre la tua passphrase decifra in memoria il tuo bundle di chiavi private. I file vengono cifrati sulla tua macchina prima del caricamento, quindi il server conserva sempre e solo testo cifrato. Il modello dati usa X25519 per cifrare una chiave del vault per ogni membro, firme Ed25519 e un formato di cifratura autenticata (AEAD) che lega il testo cifrato al suo contesto. Il server può comunque vedere chi è membro, quando qualcosa è cambiato e quanto è grande il testo cifrato. Poiché non ci sono chiavi di recupero, perdere la passphrase chiude il vault in modo permanente.

Sblocco

sequenceDiagram
  participant You as CLI
  participant Server as VaultContext
  participant Mem as Memoria del processo

  You->>Server: accesso con Google
  Server-->>You: token dell’applicazione
  You->>Server: scarica il bundle di chiavi cifrato
  You->>Mem: decifra il bundle con la passphrase
  You->>Server: leggi o scrivi il testo cifrato del file
  You->>Mem: decifra o cifra il file

Il bundle di chiavi private è conservato solo sul server, e solo in forma cifrata. Il client può mettere in cache il token dell’applicazione e un’impronta pubblica. Non mette in cache il bundle privato. Non ci sono chiavi di recupero. Una passphrase persa, senza una sessione sbloccata e senza una voce del Keychain di macOS registrata, significa che i file restano illeggibili. Reimpostare l’account Google non li decifra.

La registrazione facoltativa nel Keychain conserva la passphrase su quel Mac, non la chiave privata.

flowchart TB
  account[Account Google]
  identity[Identità di cifratura]
  personal[Cassaforte personale]
  project[Cassaforte di progetto]
  members[Proprietario, editor, lettori]

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

Le casseforti personali sono private. Una cassaforte di progetto ha un proprietario e degli editor e lettori nominati, scelti con l’email Workspace esatta. Quelle persone hanno bisogno di un account attivo e verificato che abbia già creato la propria identità di cifratura. I nuovi membri possono leggere la cronologia che è stata conservata. Rimuovere un membro interrompe subito il recupero e mette in pausa le scritture finché le chiavi non vengono ruotate. Le copie già scaricate restano scaricate.

Il client tiene le chiavi sbloccate in un socket locale per lo stesso utente del sistema operativo, per 15 minuti per impostazione predefinita, finché non esegui lock. La macchina su cui sblocchi è considerata affidabile. Il contenuto dei file sono dati che leggi tu, non istruzioni che il client deve eseguire o condividere.