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

  1. #21
    Membre averti

    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Points : 379
    Points
    379
    Par défaut
    Si la connexion n'est pas sécurisé en effet LOL se promenerait en clair, mais à ce niveau j'ai toujours utilisé SSL.
    ______________
    Never underestimated the browser
    Ne jamais sous-estimé le navigateur
    Vic Gundotra, Google IO 2009

  2. #22
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Tu confonds je crois. Le SSL se situe entre le navigateur et le serveur web. De ce côté là, de fait, c'est secure (jusqu'à preuve du contraire du moins...).
    Entre le serveur web et le serveur MySQL, il n'y a pas de cryptage.

  3. #23
    Membre averti

    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Points : 379
    Points
    379
    Par défaut
    Oh je vois. Ce que tu veux dire c'est qu'entre PHP et MySQL mon "LOL" voyage en clair c'est ça ?

    Si c'est le cas bonne remarque, mais par chance tous mes serveurs ont PHP et MySQL sur la même station !!!
    ______________
    Never underestimated the browser
    Ne jamais sous-estimé le navigateur
    Vic Gundotra, Google IO 2009

  4. #24
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 159
    Points
    3 159
    Par défaut
    Citation Envoyé par 10_GOTO_10 Voir le message
    Peu importe, le but du pirate est d'entrer dans un système, pas d'avoir ton mot de passe. Donc s'il arrive a trouver le hash de ton MDP plutôt que le MDP lui-même, le résultat est le même.
    En effet, cela dépend ou se situe l'attaque. Hasher côté BDD pose problème à cause de la liaison Serveur d'appli <-> Serveur de BDD. Hasher côté client pose le problème de la liaison Client <-> Serveur d'appli.

    Il suffit donc de :
    - Hasher côté client (edit : non c'est mal)
    - Appliquer la protection préconisée par les experts

    Edit :

    Citation Envoyé par 10_GOTO_10 Voir le message
    Parce que le pirate ne va pas entrer ni "LOL" ni "LOTERIE", mais "F6D37...". Le hashage est fait en local, donc rien n'empêche de faire une appli (et j'imagine qu'il faut de toutes façons en faire une pour mesurer précisément le timing) qui ne fait que le POST final (dans le cas d'une appli web, par exemple).
    En fait le hashage est rarement fait en local, il est plutôt fait soit côté serveur de BDD soit côté serveur d'appli. D'ailleurs, s'il était fait en local, ça voudrait dire que le pirate dispose sur le client du code qui hashe le mot de passe ! Bouh que c'est mal !

    La protection Client <-> Serveur d'appli se réalise en général en SSL. Ensuite, du côté des serveurs, on hashe ou l'on veut ce qu'on veut. Pour que le pirate essaye de trouver le hash avec cette technique, ça veut dire qu'il a directement la main pour interroger l'appli serveur qui prend en entrée un mot de passé hashé et ressort la validation ou non du mot de passe. En général, si un pirate arrive à là, il arrive facilement à se procurer le mot de passe root de la bdd. En particulier dans le cas d'une appli php.

    Evidemment, c'est tout de même un cas de figure à envisager, et la correction est à faire côté base de données. Ce qui est emmerdant car en général, une base ne sait pas si le champ stocké est un mot de passe ou pas ! C'est juste une chaîne de caractère. Changer la méthode de comparaison pourrait faire chuter les perfos du parcours d'autres tables qui ne nécessitent pas cette protection.


    Bref, j'en reviens à mon affirmation première : si on crypte, on est pas emmerdé !
    Find me on github

  5. #25
    Membre averti

    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Points : 379
    Points
    379
    Par défaut
    Citation Envoyé par jblecanard Voir le message
    - Appliquer la protection préconisée par les experts
    C'est quoi c'est protection préconisée ?
    ______________
    Never underestimated the browser
    Ne jamais sous-estimé le navigateur
    Vic Gundotra, Google IO 2009

  6. #26
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 159
    Points
    3 159
    Par défaut
    Citation Envoyé par CIFQ_Drew Voir le message
    C'est quoi c'est protection préconisée ?
    Celle citée en début de post, à savoir dé-corréler le temps de réponse et l'opération de comparaison de celui-ci.
    Find me on github

  7. #27
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 343
    Points : 124
    Points
    124
    Par défaut
    au pire un petit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php usleep(rand(0,500)); ?>
    et ca règle tout doute !

  8. #28
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Citation Envoyé par jblecanard Voir le message
    - Hasher côté client
    Le problème revient au même: au lieu de lancer le mot de passe, tu lances le hash. On peut alors le considérer comme le mot de passe pour le site.

    Alors effectivement le hacker ne pourra pas voir le mot de passe voyager en clair sur le réseau. Mais s'il veut juste entrer dans le système, il s'en fiche pas mal.

  9. #29
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 159
    Points
    3 159
    Par défaut
    Citation Envoyé par Antoine_935 Voir le message
    Le problème revient au même: au lieu de lancer le mot de passe, tu lances le hash. On peut alors le considérer comme le mot de passe pour le site.

    Alors effectivement le hacker ne pourra pas voir le mot de passe voyager en clair sur le réseau. Mais s'il veut juste entrer dans le système, il s'en fiche pas mal.
    Oui oui j'ai dit une connerie, voir mon edit. Je campe sur ma première position le hash n'est jamais fait en local sur le client
    Find me on github

  10. #30
    Membre averti

    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Points : 379
    Points
    379
    Par défaut
    Alors, ma technique est-elle bonne ? 10_GOTO_10 et Antoine_935 ont semé le doute sur ma technique !!!
    ______________
    Never underestimated the browser
    Ne jamais sous-estimé le navigateur
    Vic Gundotra, Google IO 2009

  11. #31
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 159
    Points
    3 159
    Par défaut
    Citation Envoyé par CIFQ_Drew Voir le message
    Alors, ma technique est-elle bonne ? 10_GOTO_10 et Antoine_935 ont semé le doute sur ma technique !!!
    Si tu n'oublies pas d'ajouter une graine et que ta base de donnée n'est accessible que depuis le serveur d'appli, oui, à mon avis.

    10_GOTO_10 a semé le doute en disant que le hashage était local au client mais ce n'est pas le cas.
    Find me on github

  12. #32
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 887
    Points : 1 531
    Points
    1 531
    Par défaut
    Citation Envoyé par jblecanard Voir le message
    10_GOTO_10 a semé le doute en disant que le hashage était local au client mais ce n'est pas le cas.
    Heu, oui, j'ai semé le doute mais de bonne foi: c'est ce qui est généralement conseillé, voir ici, par exemple.

    Mais en creusant un peu, c'est effectivement totalement inutile (voir ici):

    Le principe consiste donc à crypter une partie seulement des informations échangées. En l'occurrence, le mot de passe. Mais attention à ne pas tomber dans le piège classique !

    En effet, certains programmeur procèdent comme suit :

    L'utilisateur entre son mot de passe, et soumet le formulaire. Le mot de passe est crypté en Javascript. Le champ de mot de passe est vidé et le mot de passe crypté est inséré dans un champ caché.

    Enfin, le formulaire est soumis au serveur. Le serveur récupère le mot de passe crypté et le compare aux mots de passe cryptés dans la base.

    Cela ne sert strictement à rien ! En effet, le pirate n'aura qu'à envoyer directement la chaîne cryptée ! A la limite, ça permet au pirate de ne pas utiliser le mot passe sur des sites différents et à l'administrateur de la base de donnée de ne pas voir les mots de passe en clair.
    Comme quoi en matière de sécurité il ne faut être sûr de rien.

  13. #33
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 32
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par laclac Voir le message
    au pire un petit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php usleep(rand(0,500)); ?>
    et ça règle tout doute !
    Ça complexifie l'attaque mais ça ne résout pas le problème.
    J'imagine que pour lutter contre les "network jitter", et atteindre une précision de l'ordre de la nano, leurs algos se basent sur des statistiques. En augmentant (fortement ?) le nombre d'essais pour une entrée fixée tu dois à priori pouvoir retrouver les mêmes résultats.

  14. #34
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 343
    Points : 124
    Points
    124
    Par défaut
    Ça complexifie l'attaque mais ça ne résout pas le problème.
    J'imagine que pour lutter contre les "network jitter", et atteindre une précision de l'ordre de la nano, leurs algos se basent sur des statistiques. En augmentant (fortement ?) le nombre d'essais pour une entrée fixée tu dois à priori pouvoir retrouver les mêmes résultats.
    Cela est effectivement possible mais il faudrait alors des milliers/millions de requêtes pour croiser temps de reponse + propabilité...
    D'autant que je ne crois pas que cette technique soit applicable pour le web. Il suffit que le serveur soit un peu en charge pour faussé les temps de reponses (ou le debit).

    Autant dire que l'expert qui a pondu son analyse se fait bien voir, mais c'est complément inapplicable dans le domaine du web. Peut-être pour ça que personne s'y protège !

  15. #35
    Modérateur
    Avatar de Flaburgan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 229
    Points : 3 579
    Points
    3 579
    Par défaut
    Oui, je ne comprends pas comment ce type d'attaque est réalisable sur un réseau qui peut avoir des temps de latence si différents...


    Edit : un ami vient de me donner la réponse : pour un serveur web, il est possible de récupérer son stamp...
    "Historiquement, techniquement, économiquement et moralement, Internet ne peut pas être contrôlé. Autant s’y faire." Laurent Chemla

    Je soutiens Diaspora*, le réseau social libre.

    Veillez à porter une attention toute particulière à l'orthographe...

    Blog collaboratif avec des amis : http://geexxx.fr

    Mon avatar a été fait par chiqitos, merci à lui !

  16. #36
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Citation Envoyé par Flaburgan Voir le message
    Edit : un ami vient de me donner la réponse : pour un serveur web, il est possible de récupérer son stamp...
    Qu'est ce que le stamp ?

    Sinon j'ai réfléchi un peu au problème hier soir et ça ne tient pas trop la route selon moi...

    Déjà pour toutes les applications Web qui sont sur des serveurs mutualisés je ne vois pas comment on peut tenir compte du temps de réponse. Le temps de réponse du serveur dépend des autres applications qui tournent en même temps. Les bases de données sont aussi mutualisées en général dans ce cas là... ça fait quand même beaucoup d'aléatoire je trouve pour quelque chose qui doit être très précis...

    Ensuite vient le problème du hachage. Et je suis tout à fait d'accord avec ce qui a été dit au niveau du hachage.

    Imaginons qu'il rentre le mot de passe "toto", et que les hacker arrivent tant bien que mal à trouver que les deux premières lettres du hach sont les bonnes. Ils font quoi ensuite... ils essaient "touo" "totp" ? le hache va changer complétement... ça ne rime à rien...

    Donc je dirais que leur attaque ne marche que sur un serveur dédié et sur des mots de passe non crypté. Et je dirais même que vu la latence du web et de toutes les données qui y transitent ça ne marcherait qu'en local.

    PS : Crypter le hash en javascript pourrait servir à ne pas diffuser les mots de passe en clair sur le réseau au moment du login. Mais bon j'en ai jamais trop entendu parler au niveau de la sécurité et ce n'est pas ce qui est exploité ici. Dans ce cas là il faut mieux utiliser une connexion https je pense.

  17. #37
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 159
    Points
    3 159
    Par défaut
    Salut

    En fait, j'ai compris d'où vient la confusion :

    10_GOTO_10 pense au cryptage en matière de sécurité de transmission du mot de passe. Je pense que la solution d'Elitwork d'ajouter un le captcha est inutile aussi : un pirate peut consulter et comprendre le code javascript utilisé. Mon avis : autant forcer SSL pour l'authentification, c'est beaucoup plus sûr.

    Moi, je pensais au cryptage du mot de passe sur le plan du stockage dans la base de donnée. Pour moi, on ne doit plus stocker les mots de passes en clair, car si un pirate parvient à obtenir le contenu de la base, il obtient les mots de passes ! Mots de passes probablement utilisés sur d'autres applis par les mêmes utilisateurs. S'ils sont cryptés, ils sont inexploitables.

    Inconvénient : on ne peut pas redonner son mot de passe à un utilisateur qui l'a perdu. Solution : lui en redonner un généré au hasard. Je déteste les sites qui me redonnent mon mot de passe en clair : ça veut dire qu'il est stocké en clair et c'est dangereux !

    Pour crypter un mot de passe, il vaut mieux utiliser SHA-1 ou SHA-2 plutôt que MD5. Il faut également ne pas oublier d'ajouter une graine.

    Par exemple :

    est dangereux. En effet, si le pirate voit deux chaînes cryptées identiques, il pourra en déduire que les deux utilisateurs ont des mots de passes identiques !

    Il faut faire par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mdpCrypte = sha2(mdp + login + motcle)
    motcle étant un mot unique connu seulement des programmeurs de l'application. Ainsi, vous êtes certains que la chaîne cryptée sera unique pour chaque utilisateur, quand bien même d'autres auraient le même mot de passe et/ou le même login dans d'autres bases.


    Rapport avec le post : la comparaison du mot de passe étant un calcul SHA-2 et une comparaison entre deux chaînes cryptées, l'attaque suggérée n'est pas exploitable.
    Find me on github

  18. #38
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    Pour la 425 000 000 ème fois, SHA-1 et MD5 ne sont pas des algorithmes de chiffrement (cryptage n'existe pas en français) mais de hachage, cela n'a vraiment rien à voir.

    Attention à employer la bonne syntaxe quand vous parlez de ça, pensez aux centaines de gens qui lisent vos messages
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  19. #39
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 159
    Points
    3 159
    Par défaut
    Citation Envoyé par Marco46 Voir le message
    Pour la 425 000 000 ème fois, SHA-1 et MD5 ne sont pas des algorithmes de chiffrement (cryptage n'existe pas en français) mais de hachage, cela n'a vraiment rien à voir.

    Attention à employer la bonne syntaxe quand vous parlez de ça, pensez aux centaines de gens qui lisent vos messages
    C'est tout à fait exact, mais l'abus de langage n'est pas si choquant à partir du moment ou on ne peut pas retrouver le mot de passe original à partir du hash.
    Find me on github

  20. #40
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    Citation Envoyé par jblecanard Voir le message
    C'est tout à fait exact, mais l'abus de langage n'est pas si choquant à partir du moment ou on ne peut pas retrouver le mot de passe original à partir du hash.
    Si, on peut retrouver le mot de passe original avec un dictionnaire.

    Tu prends le mot "toto". Il sera toujours haché de la même manière. Alors qu'avec un algo de chiffrement c'est la clef qui détermine l'output donc du coup tu n'auras pas le même output en fonction de la clef.

    -> rien à voir.
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

Discussions similaires

  1. [SP-2010] Erreur d'affichage des documents dans le navigateur Office Web Apps
    Par Jean-Claude Dusse dans le forum SharePoint
    Réponses: 0
    Dernier message: 23/09/2011, 18h37
  2. Réponses: 1
    Dernier message: 07/10/2009, 23h15
  3. Réponses: 2
    Dernier message: 14/08/2008, 16h34
  4. Réponses: 4
    Dernier message: 18/06/2007, 16h15
  5. Tomcat 5.5 ( gestion des privilèges d'une web app )
    Par mick72 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 03/09/2005, 06h54

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