Master Password (algorithme)
Master Password est un algorithme créé par Maarten Billemont pour créer des mots de passe de manière reproductible. Il est différent du gestionnaire de mots de passe car les mots de passe ne sont pas stockés sur le disque dur ou sur un serveur, mais ils sont recréés à chaque fois que l'utilisateur entre les mêmes informations ; principalement, leur nom complet, un mot de passe maître et un nom unique pour chaque site internet pour lequel il est destiné.
Créateur | Maarten Billemont |
---|---|
Première version | |
Dernière version | 2.3 () |
Dépôt | https://gitlab.com/MasterPassword/MasterPassword |
Écrit en | Java, C, JavaScript |
Système d'exploitation | Microsoft Windows |
Langues | Anglais |
Type | Générateur de mot de passe |
Licence | Licence publique générale GNU |
Site web | https://masterpasswordapp.com |
Par le fait de ne stocker aucun mot de passe, cette approche essaye de rendre plus difficile les attaques sur les bases de données ou les interceptions de mots de passe. Elle permet aussi de ne plus avoir besoin de synchronisation entre les appareils ou de sauvegardes de la potentielle base de données. Elle permet aussi d'éliminer le risque d'une fuite de mot de passe depuis la base de données.
L'algorithme
modifierL'algorithme implique les paramètres suivants[1] :
- Le nom : Le nom complet de l'utilisateur, utilisé comme un sel.
- Le mot de passe maître : Le mot de passe utilisé pour générer la clé maîtresse
- Le nom du site internet : Un nom unique pour chaque service auquel le mot de passe est associé. Souvent le nom de domaine est utilisé comme nom du site.
- Le compteur : Un nombre entier qui peut être incrémenté quand il faut modifier le mot de passe. Par défaut, sa valeur est 0.
- Le type de mot de passe : Le type de mot de passe défini la longueur et la constitution du mot de passe finale, voir ci-dessous.
Génération de la clé maîtresse
modifierLa clé maîtresse est une chaine de caractères de 64 octets généré à partir du mot de passe maître et salé en utilisant le nom complet de l'utilisateur. Le sel est utilisé pour éviter les attaques par Rainbow table. L'algorithme scrypt, intentionnellement lent, est utilisé pour générer la clé pour rendre une attaque par brute-force impossible.
salt = "com.lyndir.masterpassword" + length(name) + name
master_key = scrypt(master_password, salt, 32768, 8, 2, 64)
Générations de modèles de départ
modifierLe modèle de départ (ou template seed) est un mot-de-passe secret unique à chaque site internet, généré à partir de la clé maîtresse, du nom du site et du compteur en utilisant l'algorithme HMAC-SHA256. Il est ensuite converti en une suite de caractères en utilisant les modèles de mots de passes. Le modèle de départ fait en sorte que chaque site aie un mot de passe unique pour l'utilisateur.
seed = hmac_sha256(clé maîtresse, "com.lyndir.masterpassword" + length(nom_du_site) + nom_du_site + compteur)
Implémentations
modifierMaarten Billemont a créé plusieurs logiciels libres implémentant cet algorithme, sa license est GPLv3[2] :
- Une application pour iOS. L'implémentation iOS a été créé en 2012[3].
- Une application pour Mac OS X
- Une application pour Android
- Une application avec interface graphique écrit en Java
- Une application en terminal écrit en C
- Une extension pour le navigateur Firefox et Chrome[4],[5]
- Une application web écrit en JavaScript[6]
Références
modifier- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Master_Password_(algorithm) » (voir la liste des auteurs).
- Maarten Billemont, « The Master Password Algorithm » [archive du ] (consulté le )
- « License file of the MasterPassword repository » (consulté le )
- Maarten Billemont, « Release 1.0.0 » (consulté le )
- Masterpassword's Firefox add-on
- Masterpassword's Chrome plugin
- Maarten Billemont, « Master Password Homepage » (consulté le )