Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 04/01/2007, 15h39   #1
Membre habitué
 
Inscription : avril 2006
Messages : 234
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 234
Points : 130
Points : 130
Par défaut [Sécurité] Chiffrement en PHP

Amis du soir bonsoir,
Voila je cherche un algo de cryptage. Je connais le célébrissime SHA-1 bien sur il est deja tombé, et ca ne me tente pas trop de basé ma sécurité la dessus (bien qu'il ne soit pas déchiffrable facilement à mon avis). Il y'a SHA-256 mais j'ai du mal à trouver une implémentation en php 4.2 (j'aimerais une bib à télécharger que je mettrais directos dans mon projet).

Je cherche un algo qui ne soit pas reversible (une fois crypté il est impossible de revenir en arrière. Tchô
roudoudouduo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 15h41   #2
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
Si tu veux du non réversible, pourquoi pas le MD5 ?
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 16h03   #3
Membre habitué
 
Inscription : avril 2006
Messages : 234
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 234
Points : 130
Points : 130
Entre md5 et sha1 je choisis SHA-1 car il y'a moins de risque de collision. (md5 est depuis longtemps hacké et sha-1 est son successeur (si je ne me trompe pas).
roudoudouduo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 16h50   #4
Membre habitué
 
Inscription : février 2005
Messages : 153
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 153
Points : 116
Points : 116
Citation:
Envoyé par roudoudouduo
Entre md5 et sha1 je choisis SHA-1 car il y'a moins de risque de collision. (md5 est depuis longtemps hacké et sha-1 est son successeur (si je ne me trompe pas).

c'est pas le contraire il me sembler que c t le SHA-1 qui été devenue décryptable
Halukard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 18h42   #5
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
J'ai lu un article il y a 3 mois dans un science et vie (ou la recherche, je sais plus) que des mathématiciens travaillant sur le md5 ont trouvé un moyen de trouver une chaine qui puisse donner le même hash qu'un hash donné avec une probabilité de 2 puissance 51... Ca serait actuellement la meilleure performance...
Tape le sur la calculatrice juste pour rigoler... Par ailleur, pour ce qui est du risque de collision, sur un mot de 32 caracteres avec 62 carateres différents utilisables, tu dois avoir un milliard de fois plus de chance de gagner 10 fois de suite le gros lot au loto que d'avoir une collision entre 2 hash ...
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 19h50   #6
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
As tu essayé la lib mcrypt (voir Doc PHP) ?

les modes de chiffrements :
  • MCRYPT_3DES
  • MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x seulement)
  • MCRYPT_ARCFOUR (libmcrypt > 2.4.x seulement)
  • MCRYPT_BLOWFISH
  • MCRYPT_CAST_128
  • MCRYPT_CAST_256
  • MCRYPT_CRYPT
  • MCRYPT_DES
  • MCRYPT_DES_COMPAT (libmcrypt 2.2.x seulement)
  • MCRYPT_ENIGMA (libmcrypt > 2.4.x seulement, alias de MCRYPT_CRYPT)
  • MCRYPT_GOST
  • MCRYPT_IDEA (non-free)
  • MCRYPT_LOKI97 (libmcrypt > 2.4.x seulement)
  • MCRYPT_MARS (libmcrypt > 2.4.x seulement, non-libre)
  • MCRYPT_PANAMA (libmcrypt > 2.4.x seulement)
  • MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.x seulement)
  • MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.x seulement)
  • MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.x seulement)
  • MCRYPT_RC2
  • MCRYPT_RC4 (libmcrypt 2.2.x seulement)
  • MCRYPT_RC6 (libmcrypt > 2.4.x seulement)
  • MCRYPT_RC6_128 (libmcrypt 2.2.x seulement)
  • MCRYPT_RC6_192 (libmcrypt 2.2.x seulement)
  • MCRYPT_RC6_256 (libmcrypt 2.2.x seulement)
  • MCRYPT_SAFER64
  • MCRYPT_SAFER128
  • MCRYPT_SAFERPLUS (libmcrypt > 2.4.x seulement)
  • MCRYPT_SERPENT(libmcrypt > 2.4.x seulement)
  • MCRYPT_SERPENT_128 (libmcrypt 2.2.x seulement)
  • MCRYPT_SERPENT_192 (libmcrypt 2.2.x seulement)
  • MCRYPT_SERPENT_256 (libmcrypt 2.2.x seulement)
  • MCRYPT_SKIPJACK (libmcrypt > 2.4.x seulement)
  • MCRYPT_TEAN (libmcrypt 2.2.x seulement)
  • MCRYPT_THREEWAY
  • MCRYPT_TRIPLEDES (libmcrypt > 2.4.x seulement)
  • MCRYPT_TWOFISH (pour les vieilles versions mcrypt 2.x, ou mcrypt > 2.4.x )
  • MCRYPT_TWOFISH128 (les TWOFISHxxx sont disponibles dans les nouvelles versions 2.x, mais pas dans les versions 2.4.x)
  • MCRYPT_TWOFISH192
  • MCRYPT_TWOFISH256
  • MCRYPT_WAKE (libmcrypt > 2.4.x seulement)
  • MCRYPT_XTEA (libmcrypt > 2.4.x seulement)
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 08h57   #7
Membre habitué
 
Inscription : avril 2006
Messages : 234
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 234
Points : 130
Points : 130
Citation:
J'ai lu un article il y a 3 mois dans un science et vie (ou la recherche, je sais plus) que des mathématiciens travaillant sur le md5 ont trouvé un moyen de trouver une chaine qui puisse donner le même hash qu'un hash donné avec une probabilité de 2 puissance 51... Ca serait actuellement la meilleure performance...
Tape le sur la calculatrice juste pour rigoler... Par ailleur, pour ce qui est du risque de collision, sur un mot de 32 caracteres avec 62 carateres différents utilisables, tu dois avoir un milliard de fois plus de chance de gagner 10 fois de suite le gros lot au loto que d'avoir une collision entre 2 hash ...
Je ne suis pas d'accord avec toi : effectivement avec une calculatrice tu n'es pas sortis du compte, mais avec d'autres ressources comme des ordinateurs ou des supercalculateurs c'est unettement plus facile (et moderne) !

PS : (la probabilite de gagner 10 fois de suite au lotos est de 1/2^230 environ lol)

Citation:
c'est pas le contraire il me sembler que c t le SHA-1 qui été devenue décryptable
Les deux sont décryptables :
MD5
http://fr.wikipedia.org/wiki/MD5
SHA-1
http://fr.wikipedia.org/wiki/Sha1
Certes les articles de wikipedia n'ont pas que des informations justes mais je pense que il est interessant de les regarder pour qui s'interesse au cryptage.

Citation:
As tu essayé la lib mcrypt (voir Doc PHP) ?
Je travaille en partie sur le serveur de mon boulot où mcrypt n'est pas installé. J'aimerais faire profiter l'application de mon entreprise de mes trouvailles envetuelles (je bosse en plus sur une appli pour moi )
roudoudouduo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 10h13   #8
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
le md5 et le sha-1 sont en effet "attaquables" par collision... maintenant, il n'existe actuellement aucun cryptage qui soit parfait. Et si un tel cryptage existe, il ne le sera sans doute plus dans 1 an.

Donc plutot que de te concentrer sur la recherche (impossible) d'un cryptage parfait, j'ajouterais plutot deux choses a ton application :

1) Un algo basé sur sha-1 + un algo "maison" ensuite pour trifouiller un poil les données (voir passer un md5 sur le sha-1, faire une rotation de bit, inverser des plages de caracteres, changer le codage en 7 bit au lieu de 8, prendre les caracteres ascii de chaque caractere et refaire un sha-1, etc... tu n'est limitée que par ton imagination ;o)

Tant que ton algo reste "secret", un pirate ne pourra exploiter les collisions de sha-1 que d'une seule maniere : en demandant a ton site d'executer ton algo et de voir le resultat, donc :

2) Un systeme qui permet d'eviter l'execution de l'algo plus de X fois dans la journée pour une adresse IP ou une session de cookie donnée, ou encore un type de navigateur, un host, voir meme une limite globlale dans la journée, ou encore mieux, une limite dynamique basée sur le nombre moyen d'appel "normal" de l'algo dans une journée : Si d'habitude tu as 500 appels a l'algo dans la journée avec une marge de + ou - 100, tu peux te douter lors du 1000ieme ou 2000ieme appel qu'il y a tentative de piratage et prendre les mesures associées (bannissement de l'IP, changement des pass des utilisateurs, ou meme, changement dynamique de l'algo de cryptage (en ajoutant 1 ou X qqpart par exemple, mais comme c'est non reversible, ca oblige a changer tout les pass))

A noter que pour qu'une attaque par collision ait lieu il faut deja que le pirate réussisse a obtenir la chaine sha-1. Tu peux aussi essayer d'eviter ca : ne pas la stocker dans un cookie, ne pas l'utiliser dans une URL, etc...
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h24.


 
 
 
 
Partenaires

Hébergement Web