ShareCapsule Finance

Security

Encrypt locally, minimize what the relay can know.

The finance planner uses browser cryptography for its local vault. Optional device sync moves that encrypted vault between trusted devices without giving the relay the vault passphrase.

Security model published

Local vault

ControlCurrent design
Vault encryptionAES-GCM with a 256-bit key.
Passphrase derivationPBKDF2-HMAC-SHA-256 with a per-vault random salt and 600,000 iterations.
Persistent storageEncrypted vault envelope in IndexedDB rather than plaintext financial JSON.
Unlocked stateDecrypted finance state and derived key are held in page memory while the vault is unlocked.
Automatic lockThe planner locks after inactivity and can be locked manually.

Device pairing and sync

One-time QR pairing

The QR carries opaque pairing capability data, not the vault passphrase or readable financial information. Pairings are short-lived and intended to be single-use.

Separate sync authorization

The relay authorization token is separate from the finance vault passphrase. Possession of a sync token does not by itself decrypt the finance vault.

Encrypted payload relay

The relay stores the already-encrypted vault envelope plus technical metadata such as revision and opaque device identifiers.

Conflict protection

Revision checks are used so two devices changing the vault do not silently overwrite one another with a last-writer-wins assumption.

Unlocked-device refresh

When a trusted device is already unlocked, newer encrypted vault data can be decrypted locally with the key already held in that device’s page memory and reflected in the UI without sending the key or passphrase to the relay.

What this protects against

Accidental server-side collection of readable transaction and balance data.
A sync database exposing plaintext financial records.
Third-party analytics or ad scripts receiving finance data from the planner.
Casual inspection of browser storage without the vault passphrase.
Silent overwrite when two trusted devices have diverging vault revisions.

What it cannot protect against

A compromised endpoint can defeat strong cryptography. Malware, hostile browser extensions, screen capture, keylogging, a compromised browser or an attacker with sufficient device access may expose data while the vault is unlocked. Users should also keep active pairing QR codes private.

Before broad public use

Verify production response security headers.
Add and test rate limiting and abuse controls on the sync API.
Test pairing expiry, replay attempts, malformed requests and conflict resolution.
Confirm server logs do not capture secrets or encrypted request bodies unnecessarily.
Inspect browser storage and D1 records to confirm finance values remain encrypted.
Obtain an independent security review before positioning sync as production-hardened for broad real-world use.