Skip to content

Master Password

Le Master Password protège l'accès à l'interface Runeya lorsque vous souhaitez éviter tout accès non autorisé depuis localhost.

Fonctionnement

Navigateur
    │  POST /auth/login { password }

 Server
    │  Argon2id hash compare
    │  JWT signé (24h)

 Navigateur stocke le JWT
    │  Authorization: Bearer <jwt>

 tRPC protectedProcedure ← valide le JWT
  1. Le mot de passe est haché avec Argon2id (résistant aux GPUs et side-channel)
  2. Un pepper est stocké dans le keychain OS (hors de ./.runeya/) pour renforcer le hash
  3. La clé de chiffrement AES-256 est dérivée du mot de passe + pepper
  4. Un JWT signé est émis pour la session (validité 24h)

Configurer un master password

  1. Allez dans Paramètres → Sécurité
  2. Cliquez "Définir un mot de passe"
  3. Entrez et confirmez votre mot de passe
  4. Sauvegardez

À la prochaine ouverture de l'interface, un écran de connexion s'affiche.

Réinitialiser le mot de passe

Perte des secrets

Si vous réinitialisez le master password, les secrets chiffrés (variables secret: true) seront inaccessibles car la clé de chiffrement change. Exportez vos secrets avant toute réinitialisation.

Pour réinitialiser :

sh
runeya reset-password

Cette commande supprime le hash du mot de passe et régénère la clé de chiffrement. Les services continuent de fonctionner mais leurs variables secrètes devront être re-saisies.

Sans master password

En mode local-simple sans mot de passe configuré, l'interface est accessible sans authentification depuis localhost. C'est le comportement par défaut, adapté au développement solo.

Sécurité du keychain

Le pepper est stocké dans :

  • macOS : Keychain Services
  • Linux : Secret Service (GNOME Keyring / KWallet)
  • Windows : Windows Credential Manager

Cela signifie que même si ./.runeya/ est copié sur une autre machine, les secrets restent illisibles sans le pepper du keychain d'origine.

Publié sous licence MIT.