Skip to content

Key lifecycle: disposable device keys, recoverable data root (recovery phrase / WebAuthn PRF), last-device loss #11

Description

@lannbot

Design the key lifecycle around the assumption that any single device can vanish. See NOTES.md — Key lifecycle.

The reality: browser storage is evictable (Safari's 7-day script-writable-storage rule for non-installed sites; navigator.storage.persist() is best-effort; installed-PWA exemptions vary by platform).

The split:

  • Device signing keys: non-extractable and disposable — losing them costs a re-enrollment, so enrollment must be cheap (see the identity issue).
  • The data-encryption root: separate and recoverable — wrapped under a KEK derived from a recovery phrase and/or the WebAuthn PRF extension (hardware-backed), backup bundle on the dumb storage layer.
  • Losing the last device must not mean losing the data; the recovery path is the crown jewels and gets its own threat-model section.

Open sub-questions:

  • PRF availability floor across the target browsers/authenticators; phrase-only fallback UX.
  • Backup bundle format and where it lives (any granted storage backend? all of them?).
  • Escrow spectrum: none / social recovery / provider-assisted — deliberately deferred, but the bundle format shouldn't foreclose it.
  • Rotation: what a data-root rotation costs (re-wrapping vs re-encrypting history — interacts with the group-crypto issue).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions