Mot de passe

Bonjour

Je cherche à mettre un mot de passe dans un script bash je m’explique :
avec read je demande un mot de passe, quand je l’entre il faut que le script vérifie s’il est bon. J’ai pas d’idée… Sauriez vous comment faire pour que ce soit TOTALEMENT sécurisé ?

Merci pour votre aide :slightly_smiling:

je suis pas sur que cela soit possible
puisque que l’ont peut toujours ouvrir et lire le code du script
pour lire le mot de passe

Et en utilisant md5sum? (par exemple, ou un autre “système”… je ne suis pas sûr que md5 soit assez “solide” dans ce cas…) Tu fais la somme de ce qui est entré et tu la compare avec “l’empreinte” de ton mot de passe… :wink: … mais bon, ce n’est pas secure à 100% ça… rien n’empêche, par exemple, un bon vieux brute force des familles, si le pass est trop court… :confused:

:smt006

HASH="FBsDK2zxt0IXE" read MOTDEPASSE if [ `mkpasswd $MOTDEPASSE FB` = $HASH ] ; then echo Yes man else echo go to hell fi
essayez de trouver le mot de passe :slightly_smiling:

BF311uebag

Merci pour toutes vos réponse oui c’est vrai que niveau sécurité c’est plutôt pour éviter que les nombreux utilisateurs de mon serv’ ne puisse lire le mdp et puis ils sont pas trop doué niveau prog donc ça va :slightly_smiling:
Question à fran.b : ton script est opérationnel ?

Merci et désolé pour le délai entre chaques réponses

Je l’ai essayé en modifiant les variables marche pas mais ça me rappelle un peu ce que j’ai fait dans un script avec useradd où il faut crypter le mdp en md5 pour qu’il puisse etre reconnu par useradd ja sais pas…

[quote=“Excess”]Merci pour toutes vos réponse oui c’est vrai que niveau sécurité c’est plutôt pour éviter que les nombreux utilisateurs de mon serv’ ne puisse lire le mdp et puis ils sont pas trop doué niveau prog donc ça va :slightly_smiling:
Question à fran.b : ton script est opérationnel ?
[/quote]
Ben oui

[quote]francois@totoche:~$ mkpasswd ploc FB
FBFh7VjzSuqpw
francois@totoche:~$ emacs /tmp/gre.sh
francois@totoche:~$ /tmp/gre.sh
ploc
Yes man
francois@totoche:~$ /tmp/gre.sh
grouc
go to hell
francois@totoche:~$ cat /tmp/gre
gre/ gre.sh
francois@totoche:~$ cat /tmp/gre.sh
#!/bin/sh
HASH="FBFh7VjzSuqpw"
read MOTDEPASSE
if [ mkpasswd $MOTDEPASSE FB = $HASH ] ; then
echo Yes man
else
echo go to hell
fifrancois@totoche:~$
[/quote]

Merci beaucoup ça fonctionne :slightly_smiling:
mais le “FB” sert à quoi ? merci

FB dans cet exemple est appelé “SALT”:
man crypt: salt is a two-character string chosen from the set [a–zA–Z0–9./]. This string is used to perturb the algorithm in one of 4096 different ways.
:slightly_smiling:

Merci beaucoup :smiley:

[quote=“tukuyomi”]FB dans cet exemple est appelé “SALT”:
man crypt: salt is a two-character string chosen from the set [a–zA–Z0–9./]. This string is used to perturb the algorithm in one of 4096 different ways.
:slightly_smiling:[/quote]Mais dans ce cas la longueur du mot de passe prise en compte n’est que de 8 caractères, non? … je ne suis pas allé voir le man ( :blush: ) mais j’ai essayé “empiriquement”:$ mkpasswd 01234567 FB FB/BqFT17mT9A $ mkpasswd 012345678 FB FB/BqFT17mT9A
Alors que sans le “salt”:$ mkpasswd 01234567 OquagfYktXQmo $ mkpasswd 012345678 g6bJMks1Nsiig :unamused:

:smt006

Mais non, c’est fait pour tester:

[quote]francois@totoche:~$ mkpasswd 012345678 g6
g6bJMks1Nsiig
francois@totoche:~$ mkpasswd 01234567 Oq
OquagfYktXQmo
francois@totoche:~$ mkpasswd 012345678 Oq
OquagfYktXQmo
francois@totoche:~$ mkpasswd 01234567 g6
g6bJMks1Nsiig
francois@totoche:~$
[/quote]Seuls les 8 premiers caractères sont pris en compte (mais ça c’est connu sur ce type de mot de passe).

Quand tu ne précises pas la graine, celle ci est aléatoire:

[quote]francois@totoche:~$ mkpasswd 01234567
/Zd3FDBj0eXlQ
francois@totoche:~$ mkpasswd 01234567
ZikJsrjSZmLzQ
francois@totoche:~$ mkpasswd 01234567
QV6B.HxzxIAP6
francois@totoche:~$ mkpasswd 01234567
I.ybhsIxN2oEA
francois@totoche:~$ mkpasswd 01234567
owORoS.VlmdT2
[/quote]

Merci pour ces précisions… :wink: … donc avec mkpasswd on est “limité” à 8 caractères… avec ou sans “graine” … c’est ça? … (il me semble d’ailleurs avoir entendu il y a longtemps ça… c’était pas utilisé pour le hashage des pass “système” avant? … il me semble qu’un collègue m’avait dit qu’il s’en était apperçu “par hazard”… en faisant une faute dans son long mot de passe, après le 8eme caractère et que c’était passé… :unamused: … mais ce ne sont que de vague souvenir… :wink: )

:smt006

Absolument, cela dit un mot de passe de 8 caractères avec des chiffres majuscules et minuscules reste très sûr, ça te fait 281474976710656 possibilités soit à raison d’un test toutes les microsecondes, ça te fait en gros une espérance de 2-3 ans pour craquer un mot de passe. À mon avis c’est jouable. Avec johntheripper (en ayant le Hash), tu as une espérance de 1 an avant de craquer le mot de passe sur une machine 3.6GHz… Mias désormais c’est envisageable…

Bonjour,

Si on met un “sleep 1” après le “go to hell”, ça fait un test par seconde au lieu d’un test par microseconde. Ca change un peu les calculs.

Sinon j’ai lu quelques trucs pour sécuriser un script shell :

#!/bin/sh - PATH='/usr/local/bin:/usr/bin:/bin' \export PATH \unalias -a hash -r # supprimer les commandes en memoire ulimit -H -c 0 -- # pas de fichier core umask 0077 # a adapter

[quote=“branch”]Bonjour,

Si on met un “sleep 1” après le “go to hell”, ça fait un test par seconde au lieu d’un test par microseconde. Ca change un peu les calculs.[/quote]Pas si on a accès aux “sources”… sleep ou pas, le hash tu l’as… :wink:

:smt006

Ah oui je partais du principe que le répertoire et le fichier du script avaient les bons droits (par exemple avec un groupe spécial).

Mais on peut remplacer le mkpasswd par md5sum:

#!/bin/sh HASH="63ae418041958618dbc9c66cf47377ce" read MOTDEPASSE if [ `echo -n $MOTDEPASSE | md5sum | cut -f1 -d" "` = $HASH ] ; then echo Yes man else echo go to hell fi

[quote=“fran.b”]Mais on peut remplacer le mkpasswd par md5sum:

#!/bin/sh HASH="63ae418041958618dbc9c66cf47377ce" read MOTDEPASSE if [ `echo -n $MOTDEPASSE | md5sum | cut -f1 -d" "` = $HASH ] ; then echo Yes man else echo go to hell fi[/quote]Arrête!!! t’es vraiment pas cool!!! j’ai pas encore fini de casser ton premier mot de passe… :laughing: :smt005 :laughing:

:smt006

$ cat exemple-fran.b-md5.sh #!/bin/sh HASH="63ae418041958618dbc9c66cf47377ce" read MOTDEPASSE if [ `echo -n $MOTDEPASSE | md5sum | cut -f1 -d" "` = $HASH ] ; then echo Yes man else echo go to hell fi

./exemple-fran.b-md5.sh blop Yes man :mrgreen: :mrgreen: :mrgreen: … trop fort le Num’s!!! :smt005

(oui bon… :unamused: :
google.fr/#hl=fr&source=hp&q … bdbeb3d18b
md5.wintvs.com/blop
:unamused: )

:smt006