Beveiligingsmodel
Wat wij niet kunnen zien, kunnen wij niet verliezen.
Rempar is zo ontworpen dat een volledige compromittering van de server geen enkel geheim onthult. Zo werkt het, zonder omwegen.
Sleutelafleiding
Het hoofdwachtwoord wordt genormaliseerd (NFKC) en daarna afgeleid met Argon2id. Twee subsleutels worden eruit getrokken via HKDF: één om te authenticeren, één om de kluissleutel te omhullen. De ene laat nooit toe de andere terug te vinden.
master_key = Argon2id(password, salt, m=65536 KiB, t=3, p=4) auth_key = HKDF(master_key, "rempart/auth/v1") wrap_key = HKDF(master_key, "rempart/wrap/v1")
Sleutel per item
Elke fiche heeft een willekeurige sleutel van 32 bytes, verzegeld door de kluissleutel. De inhoud wordt versleuteld met XChaCha20-Poly1305 en de identificatie van de fiche is gebonden in de geauthenticeerde gegevens.
blob = { k: seal(vault_key, item_key), c: seal(item_key, content) } Zero-knowledge
De server bewaart de hash van auth_key, de publieke KDF-parameters en ondoorzichtige blobs. Hij kent geen wachtwoord, geen sleutel, geen itemnaam. De pre-login geeft een deterministisch vals salt terug voor onbekende e-mailadressen: geen enumeratie van accounts.
Account en apparaten
Toegangstoken per apparaat, roterend vernieuwingstoken. Een opnieuw afgespeeld token trekt het apparaat in. De TOTP-2FA (Google Authenticator) beschermt het inloggen. U trekt een verloren apparaat in vanaf elk ander apparaat.
Noodkit
32 willekeurige bytes, slechts één keer getoond in Crockford base32. Een kopie van de kluissleutel wordt ermee verzegeld. Zonder hoofdwachtwoord en zonder kit is niets te herstellen, door niemand.
Beveiligingsgewoonten
Geheimen standaard gemaskeerd, na 30 s opnieuw gemaskeerd. Klembord gewist na 30 s. Vergrendeling na 5 min, in sluimerstand en bij het sluiten, met wissen van de sleutel in het geheugen. Oplopende wachttijden na mislukking: 30 s, 1 min, 5 min. Geen stille verwijdering.
Wat de server nooit ziet
- Uw hoofdwachtwoord
- De hoofdsleutel, de omhulsleutel en de kluissleutel
- De inhoud of de naam van een item
- Uw noodkit
- Meer dan 5 tekens van de hash bij een datalekcontrole