J'ai ma clef secrete, que je ne communique à personne, et pour chaque site j'utilise une chaine pour l'identifier, par exemple linuxfr ou servicepublic. Je calcule condensat HMAC (SHA256), puis je décompose ce condensat dans un alphabet et je tronque. Par defaut j'utilise l'alphabet alphanumérique (donc base62), et je tronque à 15 caractères.
Cela se résume en :
frommdpimportmdpmdp('ma_clef','le_service').get()
Si la clef est suffisament forte, cela fait une entropie de 89 bits.
Après dans la vrai vie j'ai une toute petite gui que je lance avec un raccourci clavier, je rentre ma clef et le nom du site, puis je valide et ça me met le mot de passe dans le champ de texte. (Ce code fait appel à celui cité içi, mais il est trop moche pour que je publie ici), et j'ai une version de secours qui s'utilise en ligne de commande sur mon mobile au cas où.
De cette manière, je n'ai aucun soucis de synchronisation d'une quelquonque base de donnée.
# Mots de passe via HMAC
Posté par jben . En réponse au journal Sécurité des mots de passe. Évalué à 6. Dernière modification le 10 mai 2013 à 14:27.
Perso pour générer mes mots de passes j'utilise HMAC tel que décrit dans la RFC2104.
J'ai ma clef secrete, que je ne communique à personne, et pour chaque site j'utilise une chaine pour l'identifier, par exemple
linuxfrouservicepublic. Je calcule condensat HMAC (SHA256), puis je décompose ce condensat dans un alphabet et je tronque. Par defaut j'utilise l'alphabet alphanumérique (donc base62), et je tronque à 15 caractères.Cela se résume en :
Si la clef est suffisament forte, cela fait une entropie de 89 bits.
Après dans la vrai vie j'ai une toute petite gui que je lance avec un raccourci clavier, je rentre ma clef et le nom du site, puis je valide et ça me met le mot de passe dans le champ de texte. (Ce code fait appel à celui cité içi, mais il est trop moche pour que je publie ici), et j'ai une version de secours qui s'utilise en ligne de commande sur mon mobile au cas où.
De cette manière, je n'ai aucun soucis de synchronisation d'une quelquonque base de donnée.