05/22 Update documents

This commit is contained in:
2026-05-22 11:00:30 -04:00
parent f5dc6660c5
commit 78334982e0
2 changed files with 29 additions and 7 deletions
+3 -2
View File
@@ -20,8 +20,8 @@ A self-hosted, zero-knowledge password manager — web app and Chrome/Firefox ex
- **Import / Export** — encrypted JSON backup; CSV export (plaintext, handle carefully); import from Chrome, Bitwarden, and 1Password CSV formats (RFC 4180 compliant parser)
- **Account MFA** — TOTP-based login (Google Authenticator / Authy); single-use code enforcement prevents replay attacks
- **Passkeys / WebAuthn** — register device biometrics or hardware keys (YubiKey, cross-device QR) as a sign-in method; master password still required to unlock vault (zero-knowledge preserved); manage passkeys in Account Settings; transport type shown per credential (📱 Device / 🔑 Security key)
- **Master password change** — atomic zero-knowledge re-encryption of entire vault including item names
- **Account recovery** — 128-bit recovery code; server never stores it; challenge-response proof prevents forgery
- **Master password change** — atomic zero-knowledge re-encryption of entire vault including item names and ECDH sharing private key; sharing continues to work after password change
- **Account recovery** — 128-bit recovery code; server never stores it; challenge-response proof prevents forgery; vault item names re-encrypted along with vault data; recovery key uses per-user email as PBKDF2 salt
- **Audit log** — server-side trail of all create/edit/delete/import/export actions; no plaintext names ever logged
- **Encrypted item names** — `enc_name`/`iv_name`; server holds only the item type as a label
- **Browser history** — back/forward button works for all views (`history.pushState`)
@@ -81,6 +81,7 @@ Sharing: ECDH(Alice_priv, Bob_pub) ──► sharedKey ──► AES-256-GCM(en
- **Passkey / WebAuthn** — FIDO2 assertion proves identity to the server without a password; vault key still derived from master password client-side; `sign_count` updated on each use for clone detection
- **Password age tracking** — `password_changed_at` stored inside encrypted blob; security dashboard uses actual password change date, not item creation date
- **Emergency access stale snapshot detection** — server flags provisioned snapshots created before the `enc_name` fix; UI prompts grantor to re-provision
- **Recovery key hardening** — recovery key derived with `PBKDF2(recoveryCode, userEmail, 200k iter)`; per-user email salt prevents cross-account recovery code reuse; legacy `'passkeeper-recovery'` salt accepted transparently for existing codes
A database breach exposes only encrypted ciphertext. The server cannot read vault names, passwords, tags, or shared item names.