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- Le mot de passe est haché avec Argon2id (résistant aux GPUs et side-channel)
- Un pepper est stocké dans le keychain OS (hors de
./.runeya/) pour renforcer le hash - La clé de chiffrement AES-256 est dérivée du mot de passe + pepper
- Un JWT signé est émis pour la session (validité 24h)
Configurer un master password
- Allez dans Paramètres → Sécurité
- Cliquez "Définir un mot de passe"
- Entrez et confirmez votre mot de passe
- 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 :
runeya reset-passwordCette 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.