begin process at 2010 02 10 13:13:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Réseau & Internet

 > 

Autre

 > 

Authentification par challenge MD5


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

Authentification par challenge MD5

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ée 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...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,499 sec (4)

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