Bonsoir Edgar,
Edgar Bonet a écrit :
> Le mercredi 16 août, Olivier Allard-Jacquin a écrit :
>> [...] tu as intérêt d'opter sur une clef à base de caractères
>> aléatoires, du genre d'une sortie MD5
>> <extrait>
>> [olivier@phoenix ~]$ echo toto | md5sum
>> 11a3e229084349bc25d97e29393ced1d -
>> </extrait>
>
> J'éviterais ce genre de clef. La sortie de MD5 n'a rien d'aléatoire,
> c'est au contraire parfaitement déterministe. Elle n'a en fait pas plus
> d'entropie que le mot de passe que tu y as mis en amont (« toto » dans
> ton exemple). Tu n'as fait que « brouiller » le mot de passe, lui donner
> une *apparence* aléatoire. C'est ce genre de démarche qui a conduit tant
> de gens à pondre des algos de cryptage qui avaient l'air bons, mais qui
> ne résistent pas à un cryptanalyste.
C'est pour cela que je disais de rajouter aléatoirement des caractères
en majuscule, et plus de caractères spéciaux (-_è;/!$%)~&...)
De toute façon, la sortie "brute" de md5 ne vaut pas grand chose en
terme de complexité, car il n'y a que 16 possibilités par caractère
(0->9a-f). Alors qu'avec une combinaison de caractères à base de :
- 26 majuscules
- 26 minuscules
- 10 chiffres
- des caractères spéciaux (y compris les caractères accentués)
on arrive facilement à plus de 70 possibilités par caractère. Ce qui
commence à être beaucoup plus difficile à casser par une attaque de
force brute !
> Si tu veux un aléatoire de bonne qualité, /dev/random c'est pas mal. Par
> exemple :
>
> $ dd bs=12 count=1 if=/dev/random 2>/dev/null | mimencode
> P1UpGubp15/reX+a
>
> donne 96 bits d'entropie (8 par octet de /dev/random, 6 par caractère
> sorti par mimencode en base64).
Bonne idée que l'utilisation de mimencode ! Pour une génération
aléatoire de mot de passe, j'avais réalisé une fonctionnalité
équivalente avec une fonction de perl inline. Mais c'était plus long à
écrire ! :)
Bonne nuit,
Olivier
--
~~~~~~~ _____/\_____ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix / _ \/ _ \ Olivier Allard-Jacquin
/ / \ / \ \ Web: http://olivieraj.free.fr/
/___/ / \ \___\ Mail: olivieraj@???
~~~~ ///// ///\\\ \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!