Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Authentification par challenge MD5 [ Réseau & Internet / Autre ] (psyjc)

lundi 12 février 2007 à 12:37:13 | Authentification par challenge MD5

psyjc

Bonjour tout le monde,
j'ai code un petit script d'authentification login/pass PHP qui fonctionne sur le principe d'un challange par MD5.
le code est relativement simple et court et il fonctionne mais ma grande question c'est : et il secure ?
l'idee etant que quelqu'un qui ecoute la connexion ne puisse pas retrouver le login/password d'aucune maniere.
Voici le code :



<?php session_start();processForm(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <title>PHP Wake On LAN</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script type="text/javascript" src="md5.js"></script>
    <script type="text/javascript">
    function SubmitDiggest()
    {
        if (document.inputForm.login.value != "" && document.inputForm.password.value != "")
        {
                document.inputForm.digLogin.value = MD5(document.inputForm.login.value + document.inputForm.diggest.value);
                document.inputForm.digPassword.value = MD5(document.inputForm.password.value + document.inputForm.diggest.value);
                document.inputForm.login.value = "";document.inputForm.login.disabled = true;
                document.inputForm.password.value = "";document.inputForm.password.disabled = true;
                document.inputForm.diggest.value = "";document.inputForm.diggest.disabled = true;
                document.inputForm.submit.disabled = true;
                return true;
        }
        else
                return false;
    }
   </script>
</head>
<body>

<form action="" method="post" name="inputForm" onsubmit="return SubmitDiggest();">
    <p>login: <input type="text" name="login" value="" /></p>
    <p>password: <input type="password" name="password" value="" /></p>
    <p>
       <input type="hidden" name="digLogin" value="" />
       <input type="hidden" name="digPassword" value="" />
       <input type="hidden" name="diggest" value="<?php echo InitDigest(); ?>" />
       <input type="submit" name="submit" value="Wake Up" />
    </p>
</form>

</body>
</html>
<?php

function processForm()
{
        $login = "jyce";
        $pass = "mmm";
        if (isset($_POST['digLogin']) && isset($_POST['digPassword']))
        {
                if ($_POST['digLogin'] == md5($login.$_SESSION['rand']) && $_POST['digPassword'] == md5($pass.$_SESSION['rand']))
                {
                        echo "successfuly";
                }
                else
                {
                        echo "failed";
                }
        }
        print_r($_POST);
}

function InitDigest()
{
         $_SESSION['rand'] = md5(rand());
         return $_SESSION['rand'];
}

lundi 12 février 2007 à 12:41:13 | Re : Authentification par challenge MD5

psyjc

dites? Ya pas moyen d'editer les messages ?

lundi 12 février 2007 à 13:06:46 | Re : Authentification par challenge MD5

juki_webmaster

Membre Club
Salut,

Si quelqu'un ecoute deja les idenfiants login/password c'est qu'il a deja un accee a la machine de la victime, il pourais trés bien keyloggé les frapes , ça lui serais plus utile pour les numeros de carte bleu (HTTPS) par exemple..
Ta methode pourais ce montrer bien, si seulement l'utilisateur n'avez rien a saisir au clavier :)

La seul chose qui me vient a l'idée c'est l'argument autocomplete="off", qui ne rempli pas le champ, si quelqu'un a un accee physique à la machine. (cassable par une faille XSS).

Pour editer les messages, c'est pas possible de le faire soit-meme, contact un admin.


lundi 12 février 2007 à 13:45:29 | Re : Authentification par challenge MD5

psyjc

Oui, je sais qu'avec un keylogger on peut directement "capturer" les infos a la source. Mais ici c'est plutot les attaques pour lesquelles un acces a la machine cliente est impossible. c'est a dire les techniques de sniffing, Man in the middle ou vol de sessions, ou d'autres auxquelles je ne pense pas forcement...

lundi 12 février 2007 à 14:21:17 | Re : Authentification par challenge MD5

juki_webmaster

Membre Club
Man in the middle > ça revient au meme, dans ce cas l'attaquant n'a pas a donner un formulaire avec du Javascript utilisant MD5, car il ne pouras pas obtenir le mdp en claire, donc il envoie une page sans ton JS, le client valide, il obtien les identifiants en claire, qu'il hash est renvoie au serveur, bingo !

Vol de sessions > eviter les failles XSS (htmlentities() & cie), ne pas transmettre le SESSID dans l'url etc.. si ya MITM ça ne sert a rien.

Sniffing > oué ça pourais proteger, au pire l'attaquant s'identifit avant la victime (<parano />). mais n'auras pas ces identifiants !


lundi 12 février 2007 à 15:24:40 | Re : Authentification par challenge MD5

psyjc

Ok, jai compris.
Pense tu qu'il soit possible d'optimiser ce code afin de le rendre plus secure sachant que je ne peux ni me servir d'https, ni d'authentification http (basic/digest) car les clients qui vont appeler cette page ne supportent pas ces modes.

lundi 12 février 2007 à 18:05:30 | Re : Authentification par challenge MD5

Epoc22

Membre Club
Perso, le md5() m'a pas convaincu ensuite j'ai essayé crypt() marche pas et ensuite sha1() : c'est bon il fonctionne !

mardi 13 février 2007 à 20:04:19 | Re : Authentification par challenge MD5

stu76

Membre Club
Hello,

Moi pesro j'utilise MD5 mais je fais un assemblage car le moyen de piratage ne permettent pas encore de casser le cryptage MD5. Il existe bien des banques de données dans lesquels on trouve des milliers de mots et leurs équivalent MD5 et c'est avec c'est robot que bcp de hackers rentre dans les systèmes protégés.

Donc moi, je mets un variable dans un fichier comme le connection.php ou le haeder.php peut importe. Cette variable contient des caractères spéciaux exemple :

$cript = '&|@²²³{}!è°-_';

ensuite quand on enregistre le mots de passe de l'utilisateur je fais une addition de c'est deux clés exemple :
$pass = 'mot de passe utilisateur
$a =md5($script); // première valeur
$b=md5($pass); //deuxième valeur

$c= $a && $b;

Le pass enregistrer dans la base de données est beaucoup plus complexe que celui de l'utilisateur, résultat aucun robot ne peut casser ce genre de montage.

Pour info il parrait que sha1 n'est pas bon, il est bcp plus fragile que md5.

Voilà, c'est mon avis la méthode que j'utilise sur plusieur site sécurisé, bien entendu j'utilise le https en plus de cette sécurité.

++

Stu76



Cette discussion est classé dans : login, document, value, md5, inputform


Répondre à ce message

Sujets en rapport avec ce message

envoyer un mail avec concatenation d'un message et de l'url [ par philcode ] Bonjour,Comment ajouter au corps du message l'url qui envois la popup de mail concatenné à un petit message du type "vas voir ce site il est super: ur Personne ne trouve le PB ?????? [ par manueg ] Bonjour, mon souci est que dans IE tout est OK et dans Netscape j'ai un message d'erreur sur l'URLVoici le code :Si vous pouvez le tester chez vous et Liste déroulante php + remplissage automatique de champs [ par fullzone ] Bonjour ! Je suis actuellement face à un vrai casse-tête, qui sera peut-être très simpliste pour vous ;)Dans un formulaire, j'ai une liste déroulante plusieur form sur un meme fichier? [ par soufia ] salut!je souhaite proteger mes champs lors de l'inscription des client alors j'utilise en plus de php, js pour avoir des msg box.mais mon 1er pb; que Pb de modification de données [ par EksTaZia ] bonjour a tous, j'ai un formulaire permettant (normalement) de modifier les données, j'ai repris mes exemples des autres mais sur cette page cela n probleme d'envoie de mail [ par atomik29 ] Bonjour tt le mondeVoila mon probleme :Je dois envoyer un mail mais pour recup les variables qui se trouvent dans ma popup j'utilise le javascriptLe p recuperations des variables XML d'une page asp dans du PHP [ par macao45 ] Bonjour,je cherche à recuperer les variables XML generer par une page asp d'un serveur en IIS ( ou je n'ai aucun droit ) dans une form en php sous lin login [ par astuces_jeux ] Bonjour je cherche comment faire une page login qui vas vers un agenda que mes uti placer document.form1.input.value dans une variable php [ par skiso ] j'aimerais savoir comment place placer document.form1.input.value dans une variable phpou comment placer document.form1.input.value  dan modifications pour ne pas avoir de nom a un form [ par Teclis01 ] Bonsoir,J ai demandé il y a peu de temps pour changer un formulaire afin de modifier une balise qui est incorrectj ai essayé de passer par Id comme m


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.