docs(config): design encrypted local-settings store (VA-29) #29
Loading…
Reference in a new issue
No description provided.
Delete branch "plan/encrypted-settings-store-VA-29"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes VA-29 (planning ticket: deliverable is this design doc).
Adds
docs/local-settings-store.md, the pinned design for replacing the plaintext.mshconfig with an encrypted at-rest local-settings store. No agent code changes.Decisions pinned
install_secret..mshkey inventory (swept fromcrates/) with move targets: every key moves into the encrypted store, none needs plaintext bootstrap.MshConfigBTreeMap) does not justify a SQL engine, and whole-file crypto makes SQLCipher's page-level crypto redundant. The ticket title's "SQLite" is deliberately overridden, with the reasoning recorded.ring). Argon2/PBKDF2 rejected: the input is a high-entropy secret, not a password.ring), software-constant-time for the headless ARM targets, fresh random nonce per write.base32(SHA-384(install_secret)[..20]).vss; secret in a0600sidecar excluded from the backup set. Resolves the ticket'sagent_idopen question (platform enum, not per-install;node_idlives in the sled store opened after config load)..msh->.vss, rotate to.msh.bak), operator inspection subcommands, and corruption/recovery flows all spelled out.Follow-up
VA-30 (implementation) is described in section 14 / scope and should be opened with the scope locked. I was blocked from creating it automatically; see PR discussion.