begin process at 2012 05 31 10:29:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Sécurité des mots de passe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Sécurité des mots de passe

samedi 19 novembre 2011 à 00:51:13 | Sécurité des mots de passe

Jiho64

Bonjour,

Je projette d'écrire un sujet sur la sécurité des sites web en général et je souhaiterai avoir quelques précisions sur les mots de passe, afin de ne pas écrire de bêtise, même si mes questions vont bien au-delà des points techniques que je souhaiterai aborder.

J'ai donc plusieurs questions :

base64_encode() est bien une fonction réversible ? (question rhétorique en fait, mais c'est pour être sûr que j'ai compris)

L'idée de faire une boucle avec cette fonction pour crypter un mot de passe est-elle risible ? même en faisant une boucle de 100 itérations ?


La fonction md5() n'est pas réversible car elle génère un hash ? (question rhétorique encore)

Peut-on affirmer que les CMS open sources PHP tels Wordpress ou Drupal ne stockent jamais de mot de passe en clair, mais des hashs ? crypt, md5 ou sha1 d'ailleurs ?


Plus compliqué...

Sachant que la fonction md5() génère toujours un hash de 32 caractères composé de lettre minuscules et de chiffres, peut-t-il y avoir un hash identique pour 2 mots de passe différents si $salt reste le même ? (la question marche avec sha1, 40 caractères, majuscules et chiffres)

Si la réponse à la question précédente est oui, et en se basant sur un mot de passe composé de minuscule, majuscule, chiffre, ponctuation, bref tout ce qu'on peut taper avec un clavier occidental, existe-t-il un nombre optimal de caractère pour un mot de passe ?

En effet, s'il existe plusieurs solutions pour un hash, il y en a obligatoirement une (ou deux) plus courte que les autres non ?

Merci d'éclairer ma lanterne..
samedi 19 novembre 2011 à 01:24:19 | Re : Sécurité des mots de passe

NHenry

Membre Club Administrateur CodeS-SourceS
Bonjour,

1) base64_encode, comme son nom l'indique encode la donnée, donc pas de cryptage et réversible.
2) En général on préfère hasher un mdp plutôt que le crypter.
Mais dans le cas de coordonnées bancaire, le cryptage (si on stocke l'information) est une base, car un numéro de carte hashé n'a aucune utilité.
3) MD5 (tout comme SHA1) n'est pas réversible
4) Oui, ça s'appelle des collisions, pour un même hash, il existe plusieurs chaines sources possible.
5)Pour retrouver un mdp à partir d'un hash, il faut y aller par brute-force, mais utiliser un mot de passe compliqué ne garanti pas qu'un mdp plus simple ne puisse donner le même hash.

Actuellement, il y a des techniques pour retrouver une chaine source pour un hash MD5 (lourd, mais techniquement et temporellement possible), de fait, on lui préfère SHA1 maintenant.

---------------------------------------------------------------------
  1. Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien
  2. Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
  3. Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés.

---
Mon site
samedi 19 novembre 2011 à 13:06:51 | Re : Sécurité des mots de passe

Jiho64

Merci pour cette réponse rapide !
samedi 19 novembre 2011 à 21:09:28 | Re : Sécurité des mots de passe

TychoBrahe

Salut,

Ha, voici un sujet intéressant :)
Je vais commencer par me faire un peu de pub en recommandant un article que j'ai écrit à ce sujet : Chiffrement, hachage et compagnie : disambiguation. Ceci fait, je me permet de compléter la réponse donnée par NHenry.

Sachant que la fonction md5() génère toujours un hash de 32 caractères composé de lettre minuscules et de chiffres


Oui et non. Quand on calcule le md5 de quelque chose, on génère un hash stocké sur 128 bits. Afin de représenter ce hash on va utiliser une notation hexadécimale, et donc 32 chiffres allant de 0 à F (oui, en base 16 on va utiliser les premières letrtes de l'alphabet afin de compléter les chiffres manquants).

peut-t-il y avoir un hash identique pour 2 mots de passe différents si $salt reste le même ? (la question marche avec sha1, 40 caractères, majuscules et chiffres)


mais utiliser un mot de passe compliqué ne garanti pas qu'un mdp plus simple ne puisse donner le même hash.


Comem NHenry l'a dit, une colision est possible. Cependant je tient à relativiser cette possibilité. Dans le cadre du md5, le nombre de possibilités est de (plusieurs notations) :
2^128
16^32
340282366920938463463374607431768211456
Soit approximativement 3.4*10^38

Il faut savoir que le corps humain est composé d'environ 10^27 atomes et la terre 10^50. Alors avec de l'ordre de 10^38 possibilités il y a de la marge, énormément de marge. Si, pour md5, il est possible de créer des colisions (lorsqu'on connais la donnée de base il me semble), le risque d'avoir par erreur une telle colision est ridiculement faible, et a vrai dire totalement négligeable.

Si la réponse à la question précédente est oui, et en se basant sur un mot de passe composé de minuscule, majuscule, chiffre, ponctuation, bref tout ce qu'on peut taper avec un clavier occidental, existe-t-il un nombre optimal de caractère pour un mot de passe ?


Comme toujours, il faut maximiser la longueur ainsi que le jeu de caracctères utilisés et bien entendu éviter les mots du dictionnaire (même écrits en |_337). Certains recommandent d'utiliser de simples phrases qui, bien que le jeu de caractères soit restreint, ont l'avantage d'être très longues et faciles à retenir.

Au passage, regarde donc un peu du côté des rainbow tables ainsi que de John the Ripper.
lundi 21 novembre 2011 à 09:19:04 | Re : Sécurité des mots de passe

syndrael

Pas mieux que mes collègues !!
S.
jeudi 24 novembre 2011 à 20:07:31 | Re : Sécurité des mots de passe

Jiho64

Merci pour ces précisions TychoBrahe, ton blog est très intéressant, particulièrement ton article sur les vulnerability scanners.


Cette discussion est classée dans : fonction, mot, mots, question, passe


Répondre à ce message

Sujets en rapport avec ce message

mot de passe [ par huricane ] Bonjour, J'ai un problème pour crypter de simple mot de passe dans une base de donnée. Je suis sous postgresql et je dispose d'une table utilisateur o Question sécurité d'une base de données [ par MadM@tt ] Bonjour à tous, voilà je développe un site en php a vec une base de données MySql. Seulement je me pose plusieurs questions sécurités surtout par rapp LDAP : Authentification avec mot de passe crypté [ par Startrik ] Bonjour, Voila je fais une application php qui permettra d'authentifier un utilisateur en se servant de son login et mot de passe qui sont dans une an Fonction inverse à password() ??? [ par Eric25 ] Bonjour,Je voudrais savoir s'il existe une fonction inverse à la fonction password. J'ai stocké des mots de passe dans ma base en les cryptant avec pa la fonction mail() [ par refkaben ] Bonjour à tous!J'ai une fonction mail qui sert à envoyé le mot de passe à un memebre en cas ou il l'a oublié, j'ai le code suivant:if($action="valider probléme avec la fonction crypt [ par misterpoulet ] Bonjour a tousVoila je suis en train de créer un site web qui comportera une interface admin.Donc j'ai voulu empécher n'importe qui de pouvoir y touch les mots de passe [ par kishkaya ] Il parait que certain mot de passe prennent en compte l'utilisation de caractere qui ne s'affichent pas (comme F1 ou Ctrl + quelquechose)j'aimerais co Mots de passes temporaires [ par samraimi ] Bonjour,Je souhaiterais sécuriser une partie de mon site par mot de passe. Mais je voudrais avoir à envoyer moi-même mot de passe (jusque-là pas de pr Gestion des mots de passe des utilisateurs [ par Dexterage ] Bonjour,Je travaille actuellement sur un petit projet perso, et je voudrais avoir quelques avis sur les gestions des mots de passe utilisateurs.Quand Problème avec ouverture de page par mots de passe sur mon site fonctionne sur firefox mais pas sur IE [ par Filou54 ] Espace Privé <tit


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales