Modèle de sécurité

Ce que nous ne pouvons pas voir, nous ne pouvons pas le perdre.

Rempar est conçu pour qu'une compromission complète du serveur ne révèle aucun secret. Voici comment, sans détour.

Dérivation de clé

Le mot de passe maître est normalisé (NFKC) puis dérivé avec Argon2id. Deux sous-clés en sont tirées par HKDF : une pour s'authentifier, une pour envelopper la clé du coffre. L'une ne permet jamais de retrouver l'autre.

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")

Clé par élément

Chaque fiche a une clé aléatoire de 32 octets, scellée par la clé du coffre. Le contenu est chiffré avec XChaCha20-Poly1305 et l'identifiant de la fiche est lié dans les données authentifiées.

blob = { k: seal(vault_key, item_key), c: seal(item_key, content) }

Connaissance nulle

Le serveur stocke le hachage de auth_key, les paramètres publics du KDF et des blobs opaques. Il ne connaît ni mot de passe, ni clé, ni nom d'élément. La pré-connexion renvoie un sel factice déterministe pour les e-mails inconnus : aucune énumération de comptes.

Compte et appareils

Jeton d'accès par appareil, jeton de rafraîchissement à rotation. Un jeton rejoué révoque l'appareil. La 2FA TOTP (Google Authenticator) protège la connexion. Vous révoquez un appareil perdu depuis n'importe quel autre.

Kit de secours

32 octets aléatoires affichés une seule fois en Crockford base32. Une copie de la clé du coffre est scellée avec. Sans mot de passe maître et sans kit, rien n'est récupérable, par personne.

Gestes de sécurité

Secrets masqués par défaut, remasqués après 30 s. Presse-papiers vidé après 30 s. Verrouillage après 5 min, en veille et à la fermeture, avec effacement de la clé en mémoire. Délais progressifs après échec : 30 s, 1 min, 5 min. Aucune suppression silencieuse.

Ce que le serveur ne voit jamais

    • Votre mot de passe maître
    • La clé maître, la clé d'enveloppe et la clé du coffre
    • Le contenu ou le nom d'un élément
    • Votre kit de secours
    • Plus de 5 caractères d'empreinte lors d'une vérification de fuite