Précédent   Forum des professionnels en informatique > Systèmes > Linux > Sécurité
Sécurité Vos questions sur la sécurité sous Linux/Unix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/11/2006, 00h52   #1
Invité régulier
 
Développeur informatique
Inscription : août 2006
Messages : 24
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2006
Messages : 24
Points : 7
Points : 7
Par défaut Faille connue avec htpasswd?

bonjour,

j'ai généré un fichier 'users' à l'aide de htpasswd sur une distribution ubuntu:

# htpasswd -c users username

pour le mot de passe de mon utilisateur 'username', c'est quelque chose comme:

# azertyu1234

le problème est que j'arrive à me connecter avec l'utilisateur en question en tapant des mots de passe erronés, comme par exemple:

# azertyu1
# azertyu1111
# azertyu1234567...

en revanche, avec les suivants, je me fais jeter:

# azertyu2
# azertyu2234

est-ce une faille connue de ce brave htpasswd? des idées? je n'ai rien trouvé à ce sujet en googlant..

merci pour votre aide!
gloumouth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 08h25   #2
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
ben le hashage n'est pas forcemment injectif...
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 13h18   #3
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 545
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 545
Points : 7 771
Points : 7 771
quelque soit l'OS si ta configuration sécurité par défaut est un password de X caractères tout mot de passe de X caractères justes + autre chose passera tjrs puisque seul le nombre maximal de caractère con-tenable est testé.
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 17h22   #4
Membre Expert
 
Avatar de _solo
 
Inscription : juin 2006
Messages : 889
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 889
Points : 1 084
Points : 1 084
Citation:
Envoyé par gloumouth
pour le mot de passe de mon utilisateur 'username', c'est quelque chose comme:

# azertyu1234

le problème est que j'arrive à me connecter avec l'utilisateur en question en tapant des mots de passe erronés, comme par exemple:

# azertyu1
# azertyu1111
# azertyu1234567...

en revanche, avec les suivants, je me fais jeter:

# azertyu2
# azertyu2234
Abandonne ton outils et apprend a faire des htaccess avec tes dix doigts et un editeur de textes

ps j'ai mis en rouge et en vert pour que ce soit plus visible.
_solo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 17h24   #5
Invité régulier
 
Développeur informatique
Inscription : août 2006
Messages : 24
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2006
Messages : 24
Points : 7
Points : 7
Citation:
Envoyé par gorgonite
ben le hashage n'est pas forcemment injectif...
mais encore? si tu pouvais développer un poil gorgonite stp, j'apprecierais beaucoup!
gloumouth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 18h14   #6
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
Citation:
Envoyé par gloumouth
mais encore? si tu pouvais développer un poil gorgonite stp, j'apprecierais beaucoup!


en gros, il est possible que plusieurs chaines de caractères est le même hash... donc en les comparant, on ne pourra pas faire la différence (la probabilité que ça arrive dépend de la graine servant à initialiser le hash)

mais vu les exemples que tu as donné, il est probable que frp31 ait donné la bonne réponse... en effet, on fait désormais des lectures bornées en taille, pour éviter les overflows
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 18h54   #7
Invité régulier
 
Développeur informatique
Inscription : août 2006
Messages : 24
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2006
Messages : 24
Points : 7
Points : 7
Citation:
Envoyé par gorgonite
en gros, il est possible que plusieurs chaines de caractères aient le même hash... donc en les comparant, on ne pourra pas faire la différence (la probabilité que ça arrive dépend de la graine servant à initialiser le hash) mais vu les exemples que tu as donné, il est probable que frp31 ait donné la bonne réponse... en effet, on fait désormais des lectures bornées en taille, pour éviter les overflows
Merci pour ces infos.

Est-il alors possible de modifier la valeur/taille de cette graine afin de réduire la probabilité et sans dépasser la limite critique qui permettrait l'overflow?
gloumouth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 19h09   #8
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
Citation:
Envoyé par gloumouth
Est-il alors possible de modifier la valeur/taille de cette graine afin de réduire la probabilité

ben tout dépend du système de hashage...
pour ceux utilisés par htpasswd, ça m'étonnerait. prends un hashage plus complexe

Citation:
et sans dépasser la limite critique qui permettrait l'overflow?
les overflow, c'est pour les lectures lors de l'exécution... c'est un autre problème
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2006, 02h43   #9
Membre émérite
 
Inscription : août 2003
Messages : 878
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 878
Points : 935
Points : 935
"overflow"... on aura tout vu...

Personne n'a pensé à lancer htpasswd sans paramètre histoire de voir quelles étaient les options existantes et les valeurs par défaut ?

Essayez...

Alors ? Quel type de "hash" est produit par défaut ?
<insérez votre réponse ici>
Ca s'rait pas basé sur du DES par hasard ?
Et ça fonctionne comment ?
Le mot de passe est utilisé comme clé pour chiffrer une valeur connue (et pas l'inverse !).
Quelle est la longueur d'une clé DES ?
...
56 bits.
Soit : 8 caractères de 7 bits.

Voilà pour la limite.

Si vous avez des doutes sur ce qui précède, faites un :Comment avoir des mots de passe plus longs ?
Vous devriez trouver avec quelque-chose comme :
Code :
htpasswd 2>&1 | grep encryption | grep -v '(default)'
__________________
Un problème bien exposé
est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.
David.Schris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2006, 11h08   #10
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
Citation:
Envoyé par David.Schris
"overflow"... on aura tout vu...
et pourquoi ?

tu ne saurais pas pourquoi on est passé de gets à fgets ???


Citation:
Envoyé par David.Schris
Personne n'a pensé à lancer htpasswd sans paramètre histoire de voir quelles étaient les options existantes et les valeurs par défaut ?
le man htpasswd aurait répondu...

Citation:
Envoyé par David.Schris
Alors ? Quel type de "hash" est produit par défaut ?
<insérez votre réponse ici>
Ca s'rait pas basé sur du DES par hasard ?
Et ça fonctionne comment ?
Le mot de passe est utilisé comme clé pour chiffrer une valeur connue (et pas l'inverse !).
Quelle est la longueur d'une clé DES ?
...
56 bits.
Soit : 8 caractères de 7 bits.

faux... le système de hashage par défaut dépend de l'OS sur lequel on génére son htpasswd (md5 ou crypt)


Citation:
Envoyé par David.Schris
Comment avoir des mots de passe plus longs ?
Vous devriez trouver avec quelque-chose comme :
Code :
htpasswd 2>&1 | grep encryption | grep -v '(default)'
ou changer de hashage...


Citation:
Envoyé par man htpasswd
-m Use MD5 encryption for passwords. On Windows, Netware and TPF, this is the default.

-d Use crypt() encryption for passwords. The default on all platforms but Windows, Netware and TPF. Though possibly supported by htpasswd on all platforms, it is not supported by the httpd server on Windows, Netware and TPF.

-s Use SHA encryption for passwords. Facilitates migration from/to Netscape servers using the LDAP Directory Interchange Format (ldif).
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2006, 17h08   #11
Membre émérite
 
Inscription : août 2003
Messages : 878
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 878
Points : 935
Points : 935
Citation:
Envoyé par gorgonite
et pourquoi ?

tu ne saurais pas pourquoi on est passé de gets à fgets ???
Pourquoi ? Parce qu'il n'y a pas de rapport entre la limite imposée (sur la longueur de la clé) par un algorithme de chiffrement et un quelconque "overflow".
Tu peux utiliser fgets() autant que tu veux, DES sera toujours DES.

Citation:
Envoyé par gorgonite
le man htpasswd aurait répondu...
Si tu veux jouer à ça, très bien : "htpasswd" est plus court à taper que "man htpasswd" (et cela fonctionne même quand tu n'as pas de pages "man")...

Citation:
Envoyé par gorgonite
faux... le système de hashage par défaut dépend de l'OS sur lequel on génére son htpasswd (md5 ou crypt)
Dans quel forum se trouvent la question et ma réponse ?
Dans " Forum des développeurs > Général informatique > Linux & Développement pour Linux > Sécurité ".
Quel OS a été utilisé par le PO ?
Citation:
Envoyé par gloumouth
j'ai généré un fichier 'users' à l'aide de htpasswd sur une distribution ubuntu
Quel "système de hashage" est utilisé par défaut sous Linux ?
Vérifions avec le code source de htpasswd :
Citation:
Code C :
1
2
3
4
5
6
7
8
9
10
11
12
    apr_file_printf(errfile, " -m  Force MD5 encryption of the password"
#if defined(WIN32) || defined(TPF) || defined(NETWARE)
        " (default)"
#endif
        "." NL);
    apr_file_printf(errfile, " -d  Force CRYPT encryption of the password"
#if (!(defined(WIN32) || defined(TPF) || defined(NETWARE)))
            " (default)"
#endif
            "." NL);
    apr_file_printf(errfile, " -p  Do not encrypt the password (plaintext)." NL);
    apr_file_printf(errfile, " -s  Force SHA encryption of the password." NL);
__________________
Un problème bien exposé
est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.
David.Schris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2006, 17h51   #12
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
Citation:
Envoyé par David.Schris
Pourquoi ? Parce qu'il n'y a pas de rapport entre la limite imposée (sur la longueur de la clé) par un algorithme de chiffrement et un quelconque "overflow".
Tu peux utiliser fgets() autant que tu veux, DES sera toujours DES.
on n'a pas du se comprendre... je parlais de la façon dont elle utilisée fgets dans la lecture du mot de passe saisi par l'utilisateur
par exemple, dans la fenêtre de son navigateur) ; et donc le fait que les mots de passe plus longs, ayant pour préfixe le mot de passe correct de longueur maximal, passent aussi

Citation:
Envoyé par David.Schris
Quel OS a été utilisé par le PO ?
Quel "système de hashage" est utilisé par défaut sous Linux ?
Vérifions avec le code source de htpasswd :
une question sur htpasswd est assez classique... et il est bon que les utilisateurs, même s'ils passent 90% de leur temps sous Linux, sachent qu'en passant sous d'autre système, ils pourraient avoir un autre hashage
(d'expérience, c'est le genre de truc auquel on ne pense pas ; et qui prennent un temps fou à "débugger", car totalement illogique)
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2006, 18h18   #13
Membre émérite
 
Inscription : août 2003
Messages : 878
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 878
Points : 935
Points : 935
Citation:
Envoyé par gorgonite
on n'a pas du se comprendre... je parlais de la façon dont elle utilisée fgets dans la lecture du mot de passe saisi par l'utilisateur
par exemple, dans la fenêtre de son navigateur) ; et donc le fait que les mots de passe plus longs, ayant pour préfixe le mot de passe correct de longueur maximal, passent aussi
La bonne blague...
Tu me trouves le code source d'un navigateur qui lit le mot de passe saisi par l'utilisateur dans une fenêtre en utilisant fgets() et j'accepterai de croire que tu es sérieux et non que tu essayes de t'en sortir par une pirouette. Marché conclu ?

Citation:
Envoyé par gorgonite
une question sur htpasswd est assez classique... et il est bon que les utilisateurs, même s'ils passent 90% de leur temps sous Linux, sachent qu'en passant sous d'autre système, ils pourraient avoir un autre hashage
Je n'ai pas dit le contraire. J'ai seulement souligné le fait que nous étions, ici, dans un forum dédié à linux, que la question portait sur l'utilisation d'un programme compilé pour linux et utilisé sous linux. Ceci pour dire que ma réponse s'adressait à une personne ayant rencontré un problème avec un programme compilé pour linux, utilisé sous linux et ayant posé une question dans un forum dédié à linux... Et sous linux, puisqu'on en parle, le "système de hashage" par défaut avec le programme dont il est question est "CRYPT", c.à.d. : utilisation de la fonction "crypt()" qui, sous linux, utilise DES par défaut (je maintiens).

Citation:
Envoyé par gorgonite
(d'expérience, c'est le genre de truc auquel on ne pense pas ; et qui prennent un temps fou à "débugger", car totalement illogique)
1) On y pense quand on lit l'aide avant d'utiliser le programme.
2) Ce n'est pas illogique (ex. : dans quelle DLL de Windows trouve-t-on une fonction "crypt()" compatible avec celle de linux ?).
__________________
Un problème bien exposé
est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.
David.Schris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2006, 18h49   #14
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
Citation:
Envoyé par David.Schris
La bonne blague...
Tu me trouves le code source d'un navigateur qui lit le mot de passe saisi par l'utilisateur dans une fenêtre en utilisant fgets() et j'accepterai de croire que tu es sérieux et non que tu essayes de t'en sortir par une pirouette. Marché conclu ?

tu es vraiment irrécupérable... je vais jeter l'éponge
je donnais un exemple qui montre pourquoi ça marche quand même !!!

Citation:
Envoyé par David.Schris
1) On y pense quand on lit l'aide avant d'utiliser le programme.
2) Ce n'est pas illogique (ex. : dans quelle DLL de Windows trouve-t-on une fonction "crypt()" compatible avec celle de linux ?).
parce qu'il n'y a pas de DES sous windows ???
première nouvelle...
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2006, 19h02   #15
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Citation:
Envoyé par gorgonite
tu es vraiment irrécupérable... je vais jeter l'éponge
On se calme les enfants, nous sommes pas sur un terrain de batailles. Si vous voulez jouer, vous allez voir dehors si j'y suis.

++
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h23.


 
 
 
 
Partenaires

Hébergement Web