coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 16 oct. 2005 à 13:53
d'ou l'importance de mes parenthèses...
J'ai jamais aimé les failles de sécurité... cf mes dèrnières sources php...
Bon, à part ça, si on met les bons droits aux serveurs, sous linux, on ne risque pas grand chose...
cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010 16 oct. 2005 à 13:31
Coucou747 en relisant ton commentaire, je pense que les protocols sont important et qu'il est aussi nécessaires de les apprendre, c'est souvent en jouant sur la souplesse d'un protocole qu'on arrive a créer un comportement différent et à s'ouvrir une faille surtout si le cryptage ou le programme qui met en place le cryptage n'a pas prévu d'autre comportement que celui normal.
Perso c'et ce que j'en pense à discuter.
milkasoprano
Messages postés239Date d'inscriptionjeudi 21 juillet 2005StatutMembreDernière intervention 1 juillet 2007 16 oct. 2005 à 10:39
Je vais dire mon avis !
c'est super ! pour connaitre comment faire pour utuiliser cette fonction ...
c'est bien expliquer ca permet aux gens qui ne connaisse pas la fonction de poster ceci sur le forum !
donc je met 10/10 pour l'explication donnée
keke_tuning
Messages postés7Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 juin 2005 27 sept. 2005 à 22:13
Bonjour, je relance la discussion :-) :
- Le mieux pour les vrais parano du cryptage sa serait de ne pas en faire !
- Et puis histoire de rassurer ceux qui ne le savait pas : les mots de passes des zones membres qui transitent (et sont donc lisible) ne sont PAS PIRE que le FTP qui fait exactement pareil (le mot de passe n'est pas crypté lors du login...) bon après il existe SFTP mais c'est une autre histoire ;-)
@+
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 10 juin 2005 à 15:25
je n'ai que 16 ans, l'age ne veut rien dire !
Pour SSL, bah cherches sur google, les protocols, c'est pas super simple, le mieux, c'est d'apprendre juste la théorie pour comprendre, mais pas les protocols (quand on n'en a pas besoin)...
Je peux te passer de la doc sur RSA, AES, DES et les courbes éliptiques...
pour la sécuritée, lis misc...
keke_tuning
Messages postés7Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 juin 2005 10 juin 2005 à 14:54
Et puis, je ne peux pas vous pondre des scripts de très hautes sécurité quand on sais que je n'ai que 15 ans et que je ne connais pas encore les bases du cryptage SSL... d'ailleurs vous pourriez pas me donner des tut là dessus svp ?
keke_tuning
Messages postés7Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 juin 2005 10 juin 2005 à 14:52
Pour la récupération de mot de passe, on regénère aléatoirement un nouveau mot de passe qui remplacera l'ancien ;)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 5 juin 2005 à 19:10
perso, j'ai pas vraimpent essayé, j'ai fais une lib pour grands nombres, mais je n'ai jamais eu le courrage de lm'exploiter...
Inekman
Messages postés291Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention30 juin 2006 5 juin 2005 à 19:07
Oui c'est ce que j'ai dit sur un post plus haut. Des labo de crypto ont ainsi calculé que la première collision arriverai à partir de la 2^64 ème, je sais plus pourquoi, y'avait un tableau avec des calculs qui expliquait leur raisonnement. A raison de 5 million de hash / sec, ils disent pouvoir atteindre cette collision au bout de 2 années de calcul. Faut que je retrouve le lien :-)
cs_Catman
Messages postés19Date d'inscriptionlundi 10 juin 2002StatutMembreDernière intervention 5 juin 2005 5 juin 2005 à 19:05
Oki, bon ben je vais m'en tenir à md5 alors :)
Aussi pour une longueur de paire de clé RSA qui sera calculée avec javascript, je peux monter jusqu'à combien en étant raisonnable ?
(je vois déja les:"oh avec un bon 30cm tu peux monter jusqu'à 230 sur l'autoroute !" :))
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 5 juin 2005 à 17:08
Moi je suis pas trop d'accord avec cette histoire de collision! Il y a des pseudo collisions qu'il est possible d'avoir. Mais de là à dire des collisions... si quelqu'un a un article, je suis preneur... et voilà que j'en trouve un!: http://eprint.iacr.org/2004/199.pdf
Enfin bon, je reste certain que faut vraiment y aller pour tomber sur une de ces collisions. Il y a même des concours organisés par les laboratoires de crypto à ce sujet, c'est dire!
Alors je ne m'inquièterais pas trop CATMAN ;o)
cs_Catman
Messages postés19Date d'inscriptionlundi 10 juin 2002StatutMembreDernière intervention 5 juin 2005 5 juin 2005 à 16:40
Mais au fait, un truc à éclaircir à propos de md5:
Si on a plusieurs séquences différentes qui peuvent donner le même hash, ça n'a aucune importance que ce soit la bonne séquence ou pas, puisqu'à la comparaison on aura le même hash donc considéré comme valide.
On fait quoi dans ce cas là ?
cs_Catman
Messages postés19Date d'inscriptionlundi 10 juin 2002StatutMembreDernière intervention 5 juin 2005 5 juin 2005 à 14:14
Si tu prends par les sentiments aussi. :)
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 5 juin 2005 à 11:16
Bon, allons y pour les URLS...
PGP (http://www.pgpi.org/doc/pgpintro/#p16) ... The certificate holder's public key ? ... RSA, DH (Diffie-Hellman), or DSA (Digital Signature Algorithm)... The preferred symmetric encryption algorithmfor the key ? ... The supported algorithms are CAST, IDEA or Triple-DES.
lolo32
Messages postés36Date d'inscriptionmercredi 13 février 2002StatutMembreDernière intervention 6 juin 2006 5 juin 2005 à 10:43
de toute façon, si on fait un calcul avec du JS, il faut obligatoirement vérifier coté serveur que le calcul a été fait, ce qui fait double emploie.
@malik7934
IDEA n'est pas libre de diffusion, dpnc tout le monde ne peut pas l'utiliser, donc, ca revient à peut près à la même chose que dit Antidote (le JS n'est pas forcément utilisé par le poste client).
cs_Catman
Messages postés19Date d'inscriptionlundi 10 juin 2002StatutMembreDernière intervention 5 juin 2005 5 juin 2005 à 00:18
Oui mais ça implique que tu envois les données non calculées, alors qu'en client elle partent déja codées, ça renforce la sécurité. Mais comme tu dis, c'est pas aussi fiable qu'en côté serveur, après ça depend des besoins je pense.
cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010 4 juin 2005 à 23:11
pour JS je pense que ça dépends un peu aussi de la machine cliente nan ? Tout le monde n'est pas encore équipé de P4 HT puis le client peux très bien faire le choix de bloquer les JS etc ...
Je remet pas en cause le possibilité de JS met plutot le coté aléatoire de son application. je préfère faire un calcul coté serveur au moins on ai sur qu'il sera éxécuter toujours de la même façon.
cs_Catman
Messages postés19Date d'inscriptionlundi 10 juin 2002StatutMembreDernière intervention 5 juin 2005 4 juin 2005 à 22:03
D'accord avec malik en ce qui concerne js, ça n'est pas java, les possibilités ne sont pas les mêmes (ceci dit ça reste quand même possible, c'est l'important !).
En revanche, gpg est la version gnu de pgp, et il génére aussi des clés rsa (entre autre).
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 4 juin 2005 à 20:02
Pour JS, j'demande qu'à voir... mais en attendant je me permets d'exprimer des doutes pour ce qui est de la vitesse de calcul ou l'utilisation de la mémoire.
Ceci dit, PGP utilise entre autre RSA, mais pas seulement -> IDEA. Et en ce qui concerne GPG, il n'utilise pas RSA...
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 4 juin 2005 à 19:23
gpg, c'est du rsa...
et en js, tu peux gérer des grands nombres en faisant un iobj...
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 4 juin 2005 à 18:27
c'est tout simplement une question de limitation de calcul
cs_Catman
Messages postés19Date d'inscriptionlundi 10 juin 2002StatutMembreDernière intervention 5 juin 2005 4 juin 2005 à 18:23
Oui et pgp est bien plus rapide aussi. Mais pourquoi Javascript pose problème ?
cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010 4 juin 2005 à 17:27
Pour ce qui est des clef publique et cle privé une connexion SSL s'en occupe très bien toute seule, mais si on reste dans le cryptage proprement dit mieux que le rsa tu as gpg très utilisé dans le domaine professionnel banque et autre. Chaque utilisateur définie un clé à l'aide du programme, chaque utilisateur fait validée sa clé par l'autre, puis chaque message est décrypté par la suite avec sa clé perso.
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 4 juin 2005 à 12:27
clé publique et privée... pis RSA, c'est pas ca avec des petites clés: il y a des attaques justement contre ca! Du coup, javascript... hem!
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 4 juin 2005 à 11:23
pour une sécuritée maximale, le md est inutile, mais le rsa est béni :
-le serveur cré une paire de clef publique qu'il envoi au client dans sa page
-le client tape son mot de passe
-du javascript crypte le mdp
-du php retrouve le password
ici, c'est impossible de trouver le mot de passe... Il faut cependant utiliser toujours la même clef pour le même client, et des clefs différentes pour les autres clients... Les mdp ne doivent pas non plus être trop courts...
Inekman
Messages postés291Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention30 juin 2006 4 juin 2005 à 03:43
Je ne saurai dire si la longueur du pass à une influence significative sur le hash généré, toujours est-il que vous avez une chance sur 3.402824e+38 (16^32) de tomber sur le même. Donc, perso y'a pas photo :-)
cs_Catman
Messages postés19Date d'inscriptionlundi 10 juin 2002StatutMembreDernière intervention 5 juin 2005 4 juin 2005 à 01:26
Oki, donc en fait un md5($pass) ne peut pas être trouvé aussi facilement que ça (surtout si le pass est long), je pensais qu'avec un brute force on avait 100% de chances de trouver. Quand à la méthode du jeton c'est quand même bien sympa :)
cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010 3 juin 2005 à 18:07
C'est tout à fait vrai.
Inekman
Messages postés291Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention30 juin 2006 3 juin 2005 à 11:45
Et les probabilités donne une infime chance que cela soit possible, même si ça l'est...donc je pense que la faille est négligeable ou alors faut vraiment être un acharné pour s'entêter à trouver une séquence ayant le même md5 qu'un mdp hashé :D
cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010 3 juin 2005 à 08:08
Il a été prouver de toute manière que le MD5 admettait des collisions. On peut trouver une séquence qui donne un md5 indentique sans qu'elle soit bonne pour autant...
lolo32
Messages postés36Date d'inscriptionmercredi 13 février 2002StatutMembreDernière intervention 6 juin 2006 3 juin 2005 à 00:44
c'est pour eviter les méthodes d'attaques brutales que la clé founie par le serveur ne doit être utilisée pour vérifier un identifiant qu'une et une seule fois. En cas d'attaque par un dictionnaire, ou de brute force, il est pratiquement impossible de trouver la bonne séquence, car la clé varie à chaque fois.
cs_Catman
Messages postés19Date d'inscriptionlundi 10 juin 2002StatutMembreDernière intervention 5 juin 2005 3 juin 2005 à 00:11
lol ça me fait penser à un post que j'ai vu y a pas longtemps ou une gars mettait sa main à couper qu'on ne pourrait pas "décrypter" sa chaine. Le post suivant lui donne le message en clair ainsi que des liens vers de la doc sur le md5 !
En ce qui concerne le "déhashage" (le md5 produit bien un hash il me semble ?), il me semble que c'est evident, on parle pas de "déhasher" un md5 mais bien d'obtenir un hash identique à partir d'un dictionnaire ou d'un programme de type brute force.
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 2 juin 2005 à 23:02
Charmante discussion...
J'aimerais bien que ceux qui sont capables de "déhasher" lèvent la main... car on dirait qu'il y en a par ici! ;o)
cs_Catman
Messages postés19Date d'inscriptionlundi 10 juin 2002StatutMembreDernière intervention 5 juin 2005 2 juin 2005 à 22:52
Tu veux dire le hash de message ? (md5 ne crypte pas).
C'est vrai que dans ce cas, le hash plus la clé, si le message est un passe faible à trois caractères, la clé ne sert pas à grand chose.
tu pourras donc intercepter $result et clé. Mais là ça devient un peu plus hardu dans la mesure ou il y a deux inconnus concatenes et un troisieme qui est la méthode de calcul du hash final ($result).
Enfin, et c'est l'objetctif de la clé d'ailleurs, il est impossible d'envoyer ce que l'on a intercepté puisque $result sera à chaque fois différent.
Et en asymétrique ça donne quoi ? (je n'ai pas trouvé de methode grain de sel en asymétrique).
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 2 juin 2005 à 17:58
pas d'accord, car si on peut intercepter la page, on aura à la fois le cryptage et la clef... faut faire ça mais en assymétrique
cs_Catman
Messages postés19Date d'inscriptionlundi 10 juin 2002StatutMembreDernière intervention 5 juin 2005 2 juin 2005 à 00:00
Oui tout à fait d'accord avec LOLO32.
Le message envoyé par le poste client concaténé avec la clé renouvellée du serveur et le tout hashé en md5, c'est vraiment la meilleur solution.
lolo32
Messages postés36Date d'inscriptionmercredi 13 février 2002StatutMembreDernière intervention 6 juin 2006 25 mai 2005 à 08:48
ATTENTION : Crypter avec l'adresse IP sur le client ET le serveur, c'est pas valable.
Explications :
Imaginez un poste sur un réseau local (adresse ip privée, donc 10.x.x.x, ou 192.168.x.x, ...). Le client ne connaissant que cette adresse ip, et pas celle utilisée sur internet, l'adresse de cryptage sera par exemple, coté client, 192.168.1.1, et, à cause des administrateurs réseaux, sera 193.252.19.4. Or, ces deux adresses sont deux adresses valides, mais une est connue SEULEMENT du réseau local (192.168.1.1), alors que l'autre sera utilisée par le serveur Web pour crypter, et parce que les deux adresses, bien qu'appartenant au même ordinateur, ne donneront pas le même résultat lors du cryptage.
Le meilleur moyen est que le serveur génère une valeur ALÉATOIRE (un jeton), et l'envoie au client. C'est cette valeur qui sera utilisée par le client pour crypter. Mais surtout, il ne faut pas pouvoir deviner les valeurs précédentes, ni suivantes, et que le jeton ne soit utilisé QU'UNE ET UNE SEULE FOIS.
C'est le principe mis en jeu lors d'une authentification HTTP en mode digest, et par d'autres protocoles d'authentifications client/serveur.
PROTECTIONNISTE
Messages postés67Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention23 septembre 20081 24 mai 2005 à 20:54
Faut il encore que le gars sache que le pass crypté qu'il reçoit et crypté avec l'ip du client et ceci était qu'un exemple, on peut aussi crypté en utilisant l'heure du serveur et autorisé une connection que dans un temps limite (3 minutes par exemple).
enfin du coup en oblige le pirate à avoir un niveau suffisament élevé, et lui donner beaucoup de travail ;)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 24 mai 2005 à 20:05
on peut se faire passer pour un pc qui a une autre ip...
PROTECTIONNISTE
Messages postés67Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention23 septembre 20081 24 mai 2005 à 19:50
Le seul moyen d'empecher la capture (ou du moins l'utilisation d'un passe récupérer dans une trame c'est de le crypter (du coté lient) avec une info du poste client (genre IP) vous puis du coté serveur on decrypte avec l'ip, et donc le gars devras bien galérer pour refaire le decryptage.
Et donc le mec ne pourra pas réutiliser le passe tel quel (en crypter dans la trame) car il n'aura pas la même ip et donc le serveur décryptera mais pas le bon mot de passe au final.
cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010 1 mars 2005 à 18:27
Bien sur lolo32,
L'utilité des phrase ici c'est surtout d'expliquer le fonctionnement du script ^^
lolo32
Messages postés36Date d'inscriptionmercredi 13 février 2002StatutMembreDernière intervention 6 juin 2006 1 mars 2005 à 08:47
plus simple, il y a une fonction mysql, nommée mysql_escape_string(string), ou tu place une chaine de caractère à passer dans une requète. Cette chaine est controlée par mysql, et tous les caractères spéciaux (ex: ' " ) sont précédés d'un \ pour qu'ils soient utilisés comme caractère dans la chaine, et pas en tant que nouvelle instruction SQL.
@ Antidote
je ne suis pas tout a fait d'accord avec ton petit script de connexion.
plutot que de mettre "mauvais mot de passe" ou "login inexistant", ce qui donne des indications aux hackers, met simplement "login ou mot de passe incorrect".
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 28 févr. 2005 à 19:58
faut controler les pseudos et pass avec des exp reg...
cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010 28 févr. 2005 à 19:53
PPS : désolé pour les fautes d'ortographes et l'écriture sinon le MD5 c'est un hashage. Voilà ^^
cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010 28 févr. 2005 à 19:49
Si dans mon formulaire j'entre bonj'our comme pseudo, j'obtient une erreur mysql ...
" jour " est pris comme élément de la requête donc si j'entre une commande SQL à la place ....
ex : pseudo = bon' OR 1=1 --
les " -- " étant les commentaires de mysql donc ce qui est derrière n'est pas pris en compte. La condition de ta requête se retrouve toujours vrai et donc je suis logué avec le premier utilisateur entré dans la base qui trop souvent est l'administrateur du site. Je me retrouve donc avec les droit d'administration.
Petit exemple trèèèèèèèèèèès connu d'injection SQL dans un champ. Mais puisque c'est pour débutant autant le préciser.
CE N EST PAS POUR INSITER LES PETIT HACKER DEBUTANT.
Protège tes formulaires 'sensibles' qui ont des champ qui irons directement dans ta base.
par exemple met un petit addslashes() que tu relis avec un stripslashes() ...etc
Ensuite ta requête n'est toujours pas sécurisée même avec ça car on est pas à l'abri d'un petit malin qui pourrait passer.
fait pluôt :
if($r = mysql_query("SELECT * FROM matable WHERE pseudo='$pseudo'")) {
// vérifie l'existance du pseudo
if (mysql_num_rows($r) > 0) {
$o = mysql_fetch_object($r);
if ($o->password == $password) {
echo 'connecté';
}else {
die('Mauvais mot de passe');
}
} else {
die('Pseudo inexistant');
}
}
Ainsi même si le hacker passe avec une injection SQL il faudra qu'il rentre avec le bon mot de passe du premier utilisateur de la table.
Ce n'est qu'un exemple.
Débutant à vous de jouer !
PS : J'en profite pour y mettre un peu d'objet j'aime bien ^^
ehmarc
Messages postés393Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention29 septembre 2008 28 févr. 2005 à 08:56
Crypter un mot de passe peut etre superflu, mais cependant cela empeche l'administrateur de connaitre les mots de passe de ces internautes c'est surtout dans ce sens qu'il faut voir ce type "d'encodage".
Pour avoir une certainne honneteté vis à vis de l'utilisateur!
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 27 févr. 2005 à 13:20
en php t'as des ou triple des de facile à utiliser... (pour les paranos)
malik7934
Messages postés1154Date d'inscriptionmardi 9 septembre 2003StatutMembreDernière intervention15 août 200917 27 févr. 2005 à 13:10
Histoire de mettre mon grain de sel (!), je voudrais signaler que si le mot de passe est hashé ou non, s'il n'y a pas un seed, c'est toujours la même chose qu'on envoit! Conclusion: ajouter un seed. Exemple: on se connecte au site, le serveur envoit une valeur qui sera par exemple utilisée comme clé pour crypter le hashage du mot de passe (un simple Vigenères ou plus puissant pour les paranos qui ont que ça à faire). Ensuite le tout est envoyé et du coup, ce n'est jamais deux fois la même chose qui passe avec le même mot de passe... le serveur pourra ensuite faire le check. Il y a d'autres méthodes bien sûr pour arriver à ce résultat. Ce n'est qu'un exemple.
Je rappelle cependant que c'est réservé aux paranos... ;o)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 27 févr. 2005 à 01:09
tu sais quand un pass est sur un serveur, le crypter, c'est un peu... superflu...
keke_tuning
Messages postés7Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 juin 2005 26 févr. 2005 à 23:33
Bien sur, j'ai donné cette méthode pour tous ceux qui ne veulent pas se prendre la tête avec les HTTPS, SSL, les clé de cryptage hyper complexe etc etc...
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 26 févr. 2005 à 19:14
lolo32 pour le md5 c'est ce que j'ai dit plus haut...
lolo32
Messages postés36Date d'inscriptionmercredi 13 février 2002StatutMembreDernière intervention 6 juin 2006 26 févr. 2005 à 18:48
@ coucou747:
on trouve aussi des méthodes de chiffrage (cryptage, crypter, ou autre, ne sont pas des mots français) pour https en AES 256 bits, d'après les certificats affichés par certains sites, tel, par exemple, https://sourceforge.net
Pour le chiffrage en md5 coté client en javascript, il suffit à l'intrut de capturer les trames du client pour récupérer le mot de passe chiffré en md5, puis de le renvoyer au serveur quand il en a besoin, donc, tel quel, ce n'est pas plus utile, si ce n'est beaucoup plus de code coté client, et empèche certains navigateurs internet, ne comprenant pas tout le code javascript, d'utiliser le site Web.
C'est une solution que je ne conseille à personne dans ce cas la, sans utilisation de rejeu.
Je vous laisse méditer tout ça.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 26 févr. 2005 à 14:11
https c'est du rsa 128 suivit d'un triple des 112 bits
fser
Messages postés74Date d'inscriptionvendredi 26 septembre 2003StatutMembreDernière intervention23 avril 2005 26 févr. 2005 à 14:10
la premiere condition, c'est d'avoir un serveur qui le permet.
donc déja free >> oust
et apres, google je sais pas en detail perso.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 26 févr. 2005 à 14:10
il pourait passer de la façon suivante :
plutot que de poster le password, il posteras le password chifré... au pire, il imiteras le comportement du navigateur dans une console en telnet...
Inekman
Messages postés291Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention30 juin 2006 26 févr. 2005 à 14:08
ah ben voilà, mais nous, on peut faire du ssl via https ? Ca marche comment pour faire un truc comme ça sur un site perso ?
fser
Messages postés74Date d'inscriptionvendredi 26 septembre 2003StatutMembreDernière intervention23 avril 2005 26 févr. 2005 à 13:52
Coucou je vois pas pourquoi "il pourrait passer" :
on hash le mdp sur le poste client, il le renvoie, on compare, si saibon, saibon sinon spabon ...
Inekman : pour remedier au probleme de circulation en clair certains sites proposent une identification en ssl via https.
Inekman
Messages postés291Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention30 juin 2006 26 févr. 2005 à 13:45
ah ben peut-être ché pas :-D
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 26 févr. 2005 à 13:42
l'autre n'aura qu'a envoyer le mot de passe hashé... comme ça même si il ne connait pas le mot de passe, il pourra passer...
quand on sait analyser une trame réseau, on sait lancer telnet....
Inekman
Messages postés291Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention30 juin 2006 26 févr. 2005 à 13:22
d'ailleurs, un truc qui n'est pas assez sécurié dans cette histoire, c'est que le md5 est généré par le serveur, ce qui veut dire que le mot de passe est envoyé en clair sur le serveur. Si quelqu'un de malveillant analyse les trames (demandez moi pas comment, je sais pas comment on fait :-P) il verra le mot de passe en clair.
Une solution serait de hasher le mot de passe sur le poste client à l'aide d'une implémentation javascript du md5 puis de balancer le mot de passe hashé sur le serveur pour l'insertion dans la base de données et là l'autre il l'a dans l'os.
Voilà, sinon, pour des débutants, y'a la base de ce qu'il faut savoir pour faire ce que tu as dis en haut dans la description du code.
Bravo.
fser
Messages postés74Date d'inscriptionvendredi 26 septembre 2003StatutMembreDernière intervention23 avril 2005 26 févr. 2005 à 12:45
Coucou, tu as raison.
d'apres ce que j'ai lu ( question de rigueur quoi ), ça serait une transformation de chaîne dans un seul sens.
ce qui rend les mots de passé inrecuperables.
J'encourage quand meme la source.
5+
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 26 févr. 2005 à 12:42
ce n'est pas crypté... vas voir ce qu'est le md5...
quand on crypte, on a un mécanisme de décryptage (ou notre corespondant l'a)
fser
Messages postés74Date d'inscriptionvendredi 26 septembre 2003StatutMembreDernière intervention23 avril 2005 26 févr. 2005 à 10:28
Mouais apres tout le code est spécifié pour débutants ... alors pourquoi pas ?
bon c'est quand meme plus une base qu'autre chose mais bon, au moins c'est crypté :)
bonne continuation en php.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 25 févr. 2005 à 21:10
idem que ton autre source plus haut...
si je mettais toutes les pages de mon site sur celui là, j'aurais posté plus de sources...
16 oct. 2005 à 13:53
J'ai jamais aimé les failles de sécurité... cf mes dèrnières sources php...
Bon, à part ça, si on met les bons droits aux serveurs, sous linux, on ne risque pas grand chose...
16 oct. 2005 à 13:31
Perso c'et ce que j'en pense à discuter.
16 oct. 2005 à 10:39
c'est super ! pour connaitre comment faire pour utuiliser cette fonction ...
c'est bien expliquer ca permet aux gens qui ne connaisse pas la fonction de poster ceci sur le forum !
donc je met 10/10 pour l'explication donnée
27 sept. 2005 à 22:13
- Le mieux pour les vrais parano du cryptage sa serait de ne pas en faire !
- Et puis histoire de rassurer ceux qui ne le savait pas : les mots de passes des zones membres qui transitent (et sont donc lisible) ne sont PAS PIRE que le FTP qui fait exactement pareil (le mot de passe n'est pas crypté lors du login...) bon après il existe SFTP mais c'est une autre histoire ;-)
@+
10 juin 2005 à 15:25
Pour SSL, bah cherches sur google, les protocols, c'est pas super simple, le mieux, c'est d'apprendre juste la théorie pour comprendre, mais pas les protocols (quand on n'en a pas besoin)...
Je peux te passer de la doc sur RSA, AES, DES et les courbes éliptiques...
pour la sécuritée, lis misc...
10 juin 2005 à 14:54
10 juin 2005 à 14:52
5 juin 2005 à 19:10
5 juin 2005 à 19:07
5 juin 2005 à 19:05
Aussi pour une longueur de paire de clé RSA qui sera calculée avec javascript, je peux monter jusqu'à combien en étant raisonnable ?
(je vois déja les:"oh avec un bon 30cm tu peux monter jusqu'à 230 sur l'autoroute !" :))
5 juin 2005 à 17:08
Enfin bon, je reste certain que faut vraiment y aller pour tomber sur une de ces collisions. Il y a même des concours organisés par les laboratoires de crypto à ce sujet, c'est dire!
Alors je ne m'inquièterais pas trop CATMAN ;o)
5 juin 2005 à 16:40
Si on a plusieurs séquences différentes qui peuvent donner le même hash, ça n'a aucune importance que ce soit la bonne séquence ou pas, puisqu'à la comparaison on aura le même hash donc considéré comme valide.
On fait quoi dans ce cas là ?
5 juin 2005 à 14:14
5 juin 2005 à 11:16
PGP (http://www.pgpi.org/doc/pgpintro/#p16)
... The certificate holder's public key ? ... RSA, DH (Diffie-Hellman), or DSA (Digital Signature Algorithm)... The preferred symmetric encryption algorithmfor the key ? ... The supported algorithms are CAST, IDEA or Triple-DES.
GPG (http://www.gnupg.org/(en)/features.html)
... Does not use any patented algorithms.
RSA (http://www.x5.net/faqs/crypto/q22.html)
...RSA is patented under U.S. Patent 4,405,829, issued September 20, 1983
voilà voilà...
5 juin 2005 à 10:43
@malik7934
IDEA n'est pas libre de diffusion, dpnc tout le monde ne peut pas l'utiliser, donc, ca revient à peut près à la même chose que dit Antidote (le JS n'est pas forcément utilisé par le poste client).
5 juin 2005 à 00:18
4 juin 2005 à 23:11
Je remet pas en cause le possibilité de JS met plutot le coté aléatoire de son application. je préfère faire un calcul coté serveur au moins on ai sur qu'il sera éxécuter toujours de la même façon.
4 juin 2005 à 22:03
En revanche, gpg est la version gnu de pgp, et il génére aussi des clés rsa (entre autre).
4 juin 2005 à 20:02
Ceci dit, PGP utilise entre autre RSA, mais pas seulement -> IDEA. Et en ce qui concerne GPG, il n'utilise pas RSA...
4 juin 2005 à 19:23
et en js, tu peux gérer des grands nombres en faisant un iobj...
4 juin 2005 à 18:27
4 juin 2005 à 18:23
4 juin 2005 à 17:27
4 juin 2005 à 12:27
4 juin 2005 à 11:23
-le serveur cré une paire de clef publique qu'il envoi au client dans sa page
-le client tape son mot de passe
-du javascript crypte le mdp
-du php retrouve le password
ici, c'est impossible de trouver le mot de passe... Il faut cependant utiliser toujours la même clef pour le même client, et des clefs différentes pour les autres clients... Les mdp ne doivent pas non plus être trop courts...
4 juin 2005 à 03:43
4 juin 2005 à 01:26
3 juin 2005 à 18:07
3 juin 2005 à 11:45
3 juin 2005 à 08:08
3 juin 2005 à 00:44
Pour ceux qui serait interressé par une méthode d'identification HTTP de l'utilisateur par jeton, voici un lien (en anglais) vers une RFC : http://ftp.ics.uci.edu/pub/ietf/http/rfc2617.txt
3 juin 2005 à 00:11
En ce qui concerne le "déhashage" (le md5 produit bien un hash il me semble ?), il me semble que c'est evident, on parle pas de "déhasher" un md5 mais bien d'obtenir un hash identique à partir d'un dictionnaire ou d'un programme de type brute force.
2 juin 2005 à 23:02
J'aimerais bien que ceux qui sont capables de "déhasher" lèvent la main... car on dirait qu'il y en a par ici! ;o)
2 juin 2005 à 22:52
C'est vrai que dans ce cas, le hash plus la clé, si le message est un passe faible à trois caractères, la clé ne sert pas à grand chose.
Mais par exemple:
$login = "robert";
$pass = "simonepourtoujours";
$cle = nb_aléatoire();
$logpas = md5($login.$pass);
$result = md5($logpas.$cle);
tu pourras donc intercepter $result et clé. Mais là ça devient un peu plus hardu dans la mesure ou il y a deux inconnus concatenes et un troisieme qui est la méthode de calcul du hash final ($result).
Enfin, et c'est l'objetctif de la clé d'ailleurs, il est impossible d'envoyer ce que l'on a intercepté puisque $result sera à chaque fois différent.
Et en asymétrique ça donne quoi ? (je n'ai pas trouvé de methode grain de sel en asymétrique).
2 juin 2005 à 17:58
2 juin 2005 à 00:00
Le message envoyé par le poste client concaténé avec la clé renouvellée du serveur et le tout hashé en md5, c'est vraiment la meilleur solution.
25 mai 2005 à 08:48
Explications :
Imaginez un poste sur un réseau local (adresse ip privée, donc 10.x.x.x, ou 192.168.x.x, ...). Le client ne connaissant que cette adresse ip, et pas celle utilisée sur internet, l'adresse de cryptage sera par exemple, coté client, 192.168.1.1, et, à cause des administrateurs réseaux, sera 193.252.19.4. Or, ces deux adresses sont deux adresses valides, mais une est connue SEULEMENT du réseau local (192.168.1.1), alors que l'autre sera utilisée par le serveur Web pour crypter, et parce que les deux adresses, bien qu'appartenant au même ordinateur, ne donneront pas le même résultat lors du cryptage.
Le meilleur moyen est que le serveur génère une valeur ALÉATOIRE (un jeton), et l'envoie au client. C'est cette valeur qui sera utilisée par le client pour crypter. Mais surtout, il ne faut pas pouvoir deviner les valeurs précédentes, ni suivantes, et que le jeton ne soit utilisé QU'UNE ET UNE SEULE FOIS.
C'est le principe mis en jeu lors d'une authentification HTTP en mode digest, et par d'autres protocoles d'authentifications client/serveur.
24 mai 2005 à 20:54
enfin du coup en oblige le pirate à avoir un niveau suffisament élevé, et lui donner beaucoup de travail ;)
24 mai 2005 à 20:05
24 mai 2005 à 19:50
Et donc le mec ne pourra pas réutiliser le passe tel quel (en crypter dans la trame) car il n'aura pas la même ip et donc le serveur décryptera mais pas le bon mot de passe au final.
1 mars 2005 à 18:27
L'utilité des phrase ici c'est surtout d'expliquer le fonctionnement du script ^^
1 mars 2005 à 08:47
@ Antidote
je ne suis pas tout a fait d'accord avec ton petit script de connexion.
plutot que de mettre "mauvais mot de passe" ou "login inexistant", ce qui donne des indications aux hackers, met simplement "login ou mot de passe incorrect".
28 févr. 2005 à 19:58
28 févr. 2005 à 19:53
28 févr. 2005 à 19:49
" jour " est pris comme élément de la requête donc si j'entre une commande SQL à la place ....
ex : pseudo = bon' OR 1=1 --
les " -- " étant les commentaires de mysql donc ce qui est derrière n'est pas pris en compte. La condition de ta requête se retrouve toujours vrai et donc je suis logué avec le premier utilisateur entré dans la base qui trop souvent est l'administrateur du site. Je me retrouve donc avec les droit d'administration.
Petit exemple trèèèèèèèèèèès connu d'injection SQL dans un champ. Mais puisque c'est pour débutant autant le préciser.
CE N EST PAS POUR INSITER LES PETIT HACKER DEBUTANT.
Protège tes formulaires 'sensibles' qui ont des champ qui irons directement dans ta base.
par exemple met un petit addslashes() que tu relis avec un stripslashes() ...etc
Ensuite ta requête n'est toujours pas sécurisée même avec ça car on est pas à l'abri d'un petit malin qui pourrait passer.
fait pluôt :
if($r = mysql_query("SELECT * FROM matable WHERE pseudo='$pseudo'")) {
// vérifie l'existance du pseudo
if (mysql_num_rows($r) > 0) {
$o = mysql_fetch_object($r);
if ($o->password == $password) {
echo 'connecté';
}else {
die('Mauvais mot de passe');
}
} else {
die('Pseudo inexistant');
}
}
Ainsi même si le hacker passe avec une injection SQL il faudra qu'il rentre avec le bon mot de passe du premier utilisateur de la table.
Ce n'est qu'un exemple.
Débutant à vous de jouer !
PS : J'en profite pour y mettre un peu d'objet j'aime bien ^^
28 févr. 2005 à 08:56
Pour avoir une certainne honneteté vis à vis de l'utilisateur!
27 févr. 2005 à 13:20
27 févr. 2005 à 13:10
Je rappelle cependant que c'est réservé aux paranos... ;o)
27 févr. 2005 à 01:09
26 févr. 2005 à 23:33
26 févr. 2005 à 19:14
26 févr. 2005 à 18:48
on trouve aussi des méthodes de chiffrage (cryptage, crypter, ou autre, ne sont pas des mots français) pour https en AES 256 bits, d'après les certificats affichés par certains sites, tel, par exemple, https://sourceforge.net
Pour le chiffrage en md5 coté client en javascript, il suffit à l'intrut de capturer les trames du client pour récupérer le mot de passe chiffré en md5, puis de le renvoyer au serveur quand il en a besoin, donc, tel quel, ce n'est pas plus utile, si ce n'est beaucoup plus de code coté client, et empèche certains navigateurs internet, ne comprenant pas tout le code javascript, d'utiliser le site Web.
C'est une solution que je ne conseille à personne dans ce cas la, sans utilisation de rejeu.
Je vous laisse méditer tout ça.
26 févr. 2005 à 14:11
26 févr. 2005 à 14:10
donc déja free >> oust
et apres, google je sais pas en detail perso.
26 févr. 2005 à 14:10
plutot que de poster le password, il posteras le password chifré... au pire, il imiteras le comportement du navigateur dans une console en telnet...
26 févr. 2005 à 14:08
26 févr. 2005 à 13:52
on hash le mdp sur le poste client, il le renvoie, on compare, si saibon, saibon sinon spabon ...
Inekman : pour remedier au probleme de circulation en clair certains sites proposent une identification en ssl via https.
26 févr. 2005 à 13:45
26 févr. 2005 à 13:42
quand on sait analyser une trame réseau, on sait lancer telnet....
26 févr. 2005 à 13:22
Une solution serait de hasher le mot de passe sur le poste client à l'aide d'une implémentation javascript du md5 puis de balancer le mot de passe hashé sur le serveur pour l'insertion dans la base de données et là l'autre il l'a dans l'os.
Voilà, sinon, pour des débutants, y'a la base de ce qu'il faut savoir pour faire ce que tu as dis en haut dans la description du code.
Bravo.
26 févr. 2005 à 12:45
d'apres ce que j'ai lu ( question de rigueur quoi ), ça serait une transformation de chaîne dans un seul sens.
ce qui rend les mots de passé inrecuperables.
J'encourage quand meme la source.
5+
26 févr. 2005 à 12:42
quand on crypte, on a un mécanisme de décryptage (ou notre corespondant l'a)
26 févr. 2005 à 10:28
bon c'est quand meme plus une base qu'autre chose mais bon, au moins c'est crypté :)
bonne continuation en php.
25 févr. 2005 à 21:10
si je mettais toutes les pages de mon site sur celui là, j'aurais posté plus de sources...