Password policies and local health
Partly implemented in 0.4.0. 16โ128 character length and character-group controls, three local presets, ambiguous-character exclusion and unbiased generation conditioned on selected groups. Remaining: Memorable passphrase word lists, full local health dashboard and optional breach checks are not implemented in this release.
Architecture and scope
The current generator offers a cryptographically random 24-character default, but no policy controls or health dashboard.
Design under review
Add length and class controls using rejection sampling. Sample complete strings uniformly and reject candidates missing a selected group, rather than biasing the distribution by injecting required characters. Reject impossible policies. Ship a reviewed, licensed word list for memorable multiword passphrases rather than inventing an unmeasured pronounceable entropy claim. Compute reused/weak/age indicators transiently after unlock; age alone is informational, not a forced rotation rule. Breach status remains unknown until a separately consented check.
Milestones
- M1: entropy/policy specification and deterministic RNG-edge/property tests
- M2: generator controls and documented site-policy presets with no external lookup
- M3: local health view that clears on lock and explains uncertainty
Required acceptance tests
- Requested classes and lengths hold across policy combinations
- Biased modulo sampling and all-disabled policies are rejected
- Health results never appear in persistent unencrypted storage
Limits
Current random generation remains available until the policy generator passes review. A numeric strength score is not a security guarantee.
Any implementation must preserve local unlock/export, add KDBX/KeePassXC regressions for crypto/format changes and update privacy disclosures before new data flows begin.