Retourner aux forums || Retourner au forum Astuces.divers
Astuces.divers : [Admin] Construire des mots de passe forts mais facilement reconstructibles
Posté par champi (page perso, ) le 10 novembre 2007Cette méthode permet de construire un ensemble illimité de mot de passe à partir d'un mot de passe maitre unique donc facilement mémorisable pour pouvoir retrouver tous les autres en cas d'oublis.
La base64 sert à avoir une distribution des caractères sur l'alphabet complet (majuscules et minuscule) + les characteres numeriques.
Voici donc mkpasswd.py
#!/usr/bin/python
"""Utility script to build a set of strong yet rebuildable passwords
The final password is build from a potentialy weak but easy to remember yet
secret master password and a domain-specific key like the name of the website
you are building a password for.
The password is then the 8th first characters of the base64 encoding of
hexadecimal sha digest of the concatenation of the master seed and the domain
key::
>>> make_password("foobar", "amazon")
'YWRjM2Fl'
>>> make_password("foobar", "paypal")
'MzM2Yzhm'
>>> make_password("foobar", "paypal", lowercase=True)
'mzm2yzhm'
:author: Olivier Grisel <olivier.grisel@ensta.org>
This script is placed in the Public Domain:
http://creativecommons.org/licenses/publicdomain/
"""
import sha, base64
LENGTH = 8
LOWERCASE = False
def make_password(master_seed, domain_key, lowercase=LOWERCASE):
hash = sha.new(master_seed + domain_key).hexdigest()
password = base64.b64encode(hash)[:LENGTH]
if lowercase:
return password.lower()
else:
return password
def main():
# seed and domain prefix are read interactively from stdin to avoid
# password data to be stored in the shell command history
master_seed = raw_input("master seed: ")
domain_key = raw_input("domain key [e.g. 'paypal']: ")
print "your password is:", make_password(master_seed, domain_key)
def _test():
import doctest
doctest.testmod()
if __name__ == "__main__":
import sys
if len(sys.argv) > 1 and sys.argv[1] == "--selftest":
_test()
else:
main()
Utilisation:
$ python mkpasswd.py
Pour lancer les tests:
$ python mkpasswd.py --selftest
> Lire le message (6 commentaires, moyenne: 1,2).
Utilisation de getpass
Pour éviter d'afficher le "master seed" à la saisie, tu peux utiliser getpass.
import sha, base64, getpass
[...]
master_seed = getpass.getpass("master seed: ")
Etienne
-
[^]Re: Utilisation de getpass
Posté par champi (page perso, ) le 12/01/2008 à 16:19. (lien). Évalué à 1.Merci beaucoup je cherchai justement quelque chose dans le genre sans succes.
-
[^]Re: Utilisation de getpass
Posté par champi (page perso, ) le 16/02/2008 à 14:33. (lien). Évalué à 1.Pour info, j'ai packagé ce script avec des amelioration (getpass + utilisation d'une base62 - sans les characteres speciaux parfois interdits).
http://pypi.python.org/pypi?%3Aaction=search&term=virtua(...)
$ easy_install -U virtualkeyring
$ vkr
master password: <type the secret password here>
domain key [e.g. 'login@host']: foobar@example.com
your password is: hRnf6udB
please clean your console (ctrl-L) after usage
-
presque pareil sans outils :)
dans l'idée je fait pareil, mais sans aucun outils,
bien sur celà n'offre pas les même avantage.
mais j'ai un mot de passe unique "maitre" auquel je concatene une extention en fonction du domaine (ou un numero de version là ou il faut changer de mot de passe souvent)
et j'ai une astuce toute bête pour retenir le mot de passe (du coups on peu en avoir deux ou trois en fonction de la criticité)
il suffit de prendre les paroles d'une chanson que vous connaissez bien..
exemple "The sweet smell of a great sorrow lies over the land" (pink floyd - sorrow)
donne comme mot de passe : Tssoagslotl (1ere lettre de chaque mots)
et en lui ajoutant l'extension : Tssoagslotl-paypal
du coup ca marche partout, et pas de risque de l'oublier.
-
[^]Re: presque pareil sans outils :)
Posté par steph1978 () le 24/02/2008 à 03:34. (lien). Évalué à 1.Un peu risqué comme méthode car cela demande une grande confiance dans le service utilisé.
Sur le domaine filou.com, tu utiliserais "Tssoagslotl-filou" ?
Pour peu que l'admin de ce service soit un peu curieux et peu scrupuleux, il aura vite fait de trouver ton mot de passe pour d'autre services. Si en plus tu utilises souvent le même login ou la même adresse mail, t'es mal.
L'intérêt de la méthode proposée dans cet article est de passer par un digest qui empêche totalement de remonter au mot de passe racine.
Revenir en haut de page || Retourner aux forums || Retourner au forum Astuces.divers



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.