IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Chiffrement en PHP


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 234
    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ô

  2. #2
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Si tu veux du non réversible, pourquoi pas le MD5 ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 234
    Par défaut
    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).

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 154
    Par défaut
    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

  5. #5
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    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 ...

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    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)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 234
    Par défaut
    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)

    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.

    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 )

  8. #8
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    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...

Discussions similaires

  1. [Sécurité] site web php easyphp
    Par Go_Ahead dans le forum Langage
    Réponses: 1
    Dernier message: 16/01/2007, 09h47
  2. [Sécurité] Chiffrement des infos dans l'URL
    Par Dsphinx dans le forum Langage
    Réponses: 14
    Dernier message: 04/01/2007, 15h57
  3. Réponses: 7
    Dernier message: 29/11/2006, 21h38
  4. [Sécurité] Sécurité de 'test.php?page=truc'
    Par Yoshio dans le forum Langage
    Réponses: 6
    Dernier message: 14/08/2006, 11h55
  5. [Sécurité] sécurité admin avec PHP
    Par carter15_2001 dans le forum Langage
    Réponses: 3
    Dernier message: 04/01/2006, 02h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo