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 expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Citation Envoyé par bressan Voir le message
    Ok, ok, j'étais dans le faux.
    Il faudrait donc que je m'intéresse à l'algorithme de chiffrement Blowfish dont vous parliez précédemment.
    Ça devrait d'ailleurs être (a priori) plus efficace et sûrement plus simple que de faire n md5 entrecoupés de n sha-X suivant l'heure avec des sels différents ...
    Ce n'est juste pas la même chose. Un hachage et un chiffrement n'ont pas le même but.
    Si on prend le cas d'un site web qui possède un formulaire d'inscription ouvert à tous. Généralement, l'utilisateur inscrit son mot de passe et le site stock dans la base de données un hash de ce mot de passe.
    Pourquoi un hash ? Pour plusieurs raisons :
    - Les hash ont une taille fixe, quelque soit la donnée d'origine.
    - Le calcul d'un hash est bien plus rapide que celui d'un chiffrement.
    - Le hash n'est pas réversible (enfin ... normalement)
    - Du fait que le hash n'est pas réversible, le site ne connais pas le mot de passe, ce qui est un gage de protection de la vie privée.

    Ensuite, quand l'utilisateur se connecte au site, il tape son mot de passe, le site calcul le hash de ce qu'il a tapé et le compare au hash qu'il a stocké.

    Seulement voila, un des problème est que puisque le hash possède une taille fixe et qu'il n'est pas réversible, ca veux dire que plusieurs chaines de texte différentes peuvent avoir le même hash. Le crack d'un hash consiste du coup en une méthode qui permet d'obtenir la plus petite donnée possible qui donnera un hash souhaité.

    Maintenant, si on passe au chiffrement, c'est réversible, ca veux dire que le site connais le mot de passe. La taille résultante n'est pas fixe ce qui signifie qu'il faut adapter la base de données pour stocker du texte de taille inconnue (même si on peut déterminer la taille maximale).
    Quoi qu'il en soit, au moment de la connexion, soit le site chiffre le mot de passe tapé par l'utilisateur et compare les deux versions chiffrées, ce qui risque d'échouer car avec certains algorithme de chiffrement, des données entrent en compte telles que la date/l'heure/... et donc tu as le risque de ne pas tomber sur le même résultat.
    Soit il décrypte le mot de passe stocké et compare les deux versions en claire.
    Dans les deux cas, il faut stocker la clef de chiffrage. Soit elle est dans la base de données, unique par utilisateur, et donc la protection est totalement nulle. Soit elle est globale à tout le site, et la protection n'est guerre mieux vu que l'attaquant capable de copier la base de donnée est généralement capable d'inspecter le code et d'y trouver la clef qui lui servira alors pour toute la base. Au final, le temps qu'y passera l'attaquant sera risible.

    Pour résumer, l'attaque réussit dès que l'attaquant connais toutes les données sensibles.
    En utilisant un chiffrement, ta seule donnée sensible est la clef de chiffrement, c'est elle qu'il faut protéger. Et comment ? En la chiffrant également ? Ca ressemble à un serpent qui se mort la queue.
    Alors qu'avec des hash, en données sensible tu as l'algo utilisé, les bidouilles de tromperies expliquées plus haut, le sel et sa position. Si les bidouilles expliquée plus haut sont appliquée de façon à faire varier la méthode pour chaque utilisateur, alors ca fait autant de nouvelles données à connaitre. Et du coup, même si techniquement parlant ce n'est pas impossible, ca va demander infiniment plus de temps à l'attaquant pour réussir son coup. Tellement plus qu'il est possible que ca en décourage plus d'un, ou qu'entre deux ton système change et les données que possède l'attaquant deviennent obsolète.

    Je pense qu'une des meilleurs sécurité est la personnalisation. On le voit dans la lutte contre le spam avec les captcha. On s'aperçoit que les bots, capables d'analyser les images tordues (tellement tordues que même nous, humains, avons de plus en plus de mal à les lire), sont incapable d'analyser des captcha tout con, personnalisé comme on le voit sur certains site.
    Comme par exemple des question style "Comment s'appelle ma grand-mère Lucette ?". C'est pour ca que je pense que ces petites bidouilles que j'ai expliquée plus haut ont leurs effets. C'est tellement con que personne n'y pense. C'est absolument pas dur à mettre en place. Et comme personne ne fait comme ca, alors aucun bot n'a été créé pour le casser.

    Plus on s'enferme à tous faire exactement la même chose parce que "c'est la sécurité d'aujourd'hui" et plus la sécurité deviens faible car ca amène plus de monde à travailler à la casser, et le jour où il y arrivent, tout ceux qui ont utilisé cette sécurité seront exposé. Des standards de hash/chiffrement sont indispensables, mais chaque développeur devrait créer son propre petit puzzle pour les stocker, dans l'unique but d'empêcher les bots de fonctionner et donc de faire perdre énormément de temps aux attaquant. Le petit casse tête n'a pas vocation à servir de protection contre l'attaque, ca sert juste à casser l'artillerie lourde de l'attaquant. Parce que prendre d'assaut une forteresse à l'aide de catapulte et autre trébuchet, sans problème, mais y aller à pied avec sa petite épée, ben c'est pas la même chose...

    Citation Envoyé par Inazo Voir le message
    C'est faux, c'est la taille du sha256 ça... Le SHA-512 est à 128 caractères non ?
    Possible, j'ai pas vérifié et j'ai une fièvre de cheval aujourd'hui. Mais bon, on s'en tamponne de la taille, c'est le principe que je voulais montrer. Planquer un hash dans un chaine qui pourrait être un hash d'un autre type dans le seul but de tromper les bots et le hacker qui va surement buter dessus comme un con, le temps de comprendre qu'on se moque de lui.

    @kaymak:
    Ça c'est peut-être ta façon de faire, ce n'est pas celle que j'ai expliqué. Je n'ai pas parlé de sel variant par user et/ou dans le temps. Et si tu fais ainsi, il faudra bien que tu conserve le sel utilisé si tu veux t'assurer que le mot de passe fournit en login est bien le même que celui enregistré en base. Donc retour à la case départ.
    Quand à bcrypt, il y a une fonction php fournie avec l'installation par défaut, présente depuis un sacré paquet d'années. Mais encore une fois, c'est du chiffrement, pas du hashage, ca peut paraître semblable, mais les applications en sont totalement différentes. Le chiffrement c'est quand on veux protéger une donner dont la valeur d'origine à une réelle importance. Alors que le hash sert de contrôle uniquement, la valeur d'origine n'a aucune importance. On s'en sert par exemple après un téléchargement, si hash est le même qu'indiqué sur le site du téléchargement, c'est qu'il n'y a pas eu de corruption pendant le transfert. Mais si les hash diffèrent, alors le hash ne te sera absolument d'aucune aide pour trouver ce qui à été corrompu et encore moins pour réparer.

  2. #22
    Membre confirmé Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Points : 632
    Points
    632
    Par défaut
    Pas de soucis ^^

  3. #23
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Citation Envoyé par Inazo Voir le message
    Un hash de hash simple ça se voit quand même comme le nez au milieu de la figure, car après décodage tombé sur une chaine de 32 ou 41 voir 64 ça laisse perplex ^^.
    Et de deux spécialistes en carton. DEUX !

    Une fonction de hachage, c'est pas bijectif. Et tu peux être sur qu'il y en a un paquet de chaines plus courtes qui ont le même hash. D'autant que MD5 => 32 caractères, c'est juste la façon dont c'est usuellement représenté. Mais ce n'est rien de plus que la représentation d'un nombre en hexadécimal.

  4. #24
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    Une fonction de hachage, c'est pas bijectif. Et tu peux être sur qu'il y en a un paquet de chaines plus courtes qui ont le même hash.
    Sauf qu'en informatique on ne travaille pas sur des infinis. Tu as un hash et sur le site c'est écris en gros de saisir un mot de passe entre 6 et 12 caractères par exemple ... tu va pas aller te mettre à imaginer l'infinité des collisions théoriques possibles pour la même clef.

    Après, l'histoire des hash ne reste qu'une partie des faces par lesquelles ont peut attaquer un serveur. C'est pas comme si on pouvais attaquer n'importe quel serveur en testant 700 000 000 mots de passe à la seconde sur celui ci...

  5. #25
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Citation Envoyé par smyley Voir le message
    Sauf qu'en informatique on ne travaille pas sur des infinis. Tu as un hash et sur le site c'est écris en gros de saisir un mot de passe entre 6 et 12 caractères par exemple ... tu va pas aller te mettre à imaginer l'infinité des collisions théoriques possibles pour la même clef.
    Bien sur, sauf que la, je répondait à ceux qui croyaient qu'ils allaient retrouver un clair de 32 caractère voir plus à partir d'un hash. Dans un tel cas, tu vas toujours tomber sur un truc plus court qui à le même hash.

    Fais un calcul rapide : tu as 16^32 MD5 possibles. Or, rien qu'avec de l'alphanumérique, tu as 36^32 truc à hacher. Soit 186 140 372 879, 5 clairs par MD5. Si tu tombes sur le MD5, c'est vraiment que tu as un chance incroyable.

    Il n'y a pas besoin d'aller jusqu'à l'infini pour voir que le raisonnement utilisé précédemment est juste totalement vicié. je répondait au commentaire disant qu'un hash d'un hash, ça se voit comme le nez au millieu de la figure, genre on va retomber sur des hachages en « décodant » le hash. C'est juste n'importe quoi . . .

  6. #26
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    186 140 372 879
    On divise par 700 000 000 ça donne ~266s de calcul

    A cette échelle pour juste bruteforcer je vois pas d'ailleurs en quoi ça aide de savoir qu'on a hashé un hash : on teste tout, et si rien ne marche on admet que ça a été encore hashé et on recommence en connaissant la taille à "décoder" et on recommence sur le nouvel arbre de possibilités.

    C'est tout sauf "pratique" et "intelligent" mais vu qu'on semble parler d'énumération exhaustive ...

  7. #27
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Citation Envoyé par smyley Voir le message
    On divise par 700 000 000 ça donne ~266s de calcul
    Toi, tu n'as juste pas compris ce qu'était ce nombre. C'est le nombre de solution moyennes autre que le hash lui-même. Si tu trouve un clair, tu as une chance sur des milliards de trouver le hash d'origine en cas de double hash. Bref, tu ne verras pas « facilement » que c'est el hash d'un has, comme nous le disaient les spécialistes ci-dessus.

    Citation Envoyé par smyley Voir le message
    A cette échelle pour juste bruteforcer je vois pas d'ailleurs en quoi ça aide de savoir qu'on a hashé un hash : on teste tout, et si rien ne marche on admet que ça a été encore hashé et on recommence en connaissant la taille à "décoder" et on recommence sur le nouvel arbre de possibilités.
    Bah, ça au moins, ça va marcher.

  8. #28
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    Toi, tu n'as juste pas compris ce qu'était ce nombre.
    Citation Envoyé par smyley Voir le message
    les smileys aussi ça compte

  9. #29
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 5
    Points
    5
    Par défaut
    Aie aie aie ...

    Attention ! Sauf en bonne connaissance de causes, il ne faut JAMAIS combiner des algorithmes. Un excellent mathématiciens peut arriver à trouver une faille !!!

    Je n'ai pas d'exemple de régression, mais il me vient à la pensée le Double DES. En gros, cet algorithme est la preuve vivante que cela ne sert à rien de multiplier bêtement un algorithme sans trop savoir ce que l'on fait.

    Edit : Ne jouez pas les apprentis matheus, c'est un domaine que je préfère laisser aux experts. Il vaut mieux utiliser des solutions connues et reconnues que de croire inventer la méthode du siècle.

  10. #30
    Membre actif Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Points : 274
    Points
    274
    Par défaut
    Des pirates se sont amusés a construire un cluster de 200 PS3 et ont tombé SSL... Source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://hackaday.com/2008/12/30/25c3-hackers-completely-break-ssl-using-200-ps3s/
    Donc je pense pas que l'algo BCrypt servent a quelque chose :p

  11. #31
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Déjà, je ne me suis jamais prétendu spécialiste...
    Ensuite, depuis le début on parle d'un mot de passe utilisateur, donc toutes les solutions qui ne rentrent pas dans les bornent qu'impose le site sont fausses.
    Oui, quand on fait le hash d'un autre hash, il y a beaucoup de données qui pourraient donner le même résultat. Seulement, des données composées de 6 à 12 caractères, avec uniquement lettres, nombres et éventuellement quelques signes de ponctuations, bah y'en a plus tant que ca. D'autant qu'un attaque est généralement faite sur tout une base, donc si tu va te retrouver avec des résultats qui vont immédiatement te montrer qu'il y a double hash, parce que dans le lot il y en aura forcément qui seront hors bornes, ou même tout simplement parce que tu n'aura aucun résultat type "password", "bonjour", ... bref, tu es en train de t'exciter et nous insulter parce que j'ai dit un peu vite qu'on obtiendrais un autre md5 ce qui est faux, certes, encore que les chances sont loin d'être si faible que ce que tu prétend (tu ne prend en compte que le nombre de possibilité de hash, sans tenir compte de l'algo de hash lui même, fait pour éparpiller les résultat afin de minimiser au maximum la possibilité de 2 hash identiques pour une donnée d'entrée différente). Il n'en reste pas moins vrai que ca se verra immédiatement qu'on est en présence d'un double hash.
    C'est pas la seule faute que j'ai faite, et comme je disais aussi, j'avais une fièvre de cheval alors désolé si je fais ce genre de raccourcit. Après tout, l'objet de la discussion était uniquement de montrer qu'un double hash n'assure aucune sécurité supplémentaire. Alors cool, calme toi, personne ne t'agresse, fais preuve d'un peu d'empathie.

    Citation Envoyé par lun4t1k Voir le message
    Des pirates se sont amusés a construire un cluster de 200 PS3 et ont tombé SSL... Source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://hackaday.com/2008/12/30/25c3-hackers-completely-break-ssl-using-200-ps3s/
    Donc je pense pas que l'algo BCrypt servent a quelque chose :p
    En l'occurrence :
    Citation Envoyé par le site lié
    This attack is possible because of a flaw in MD5.
    C'est le md5 qui à servit de faille, or l'article parle de remplacer le md5 par le bcrypt.
    Quoi qu'il en soit, un jour ou l'autre, le bcrypt tombera aussi, c'est valable pour tous les algos, qu'ils soient réversibles ou non.

  12. #32
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    Whaou, que d'âneries dites sur ce fil.

    Citation Envoyé par Thorna Voir le message
    Hum, j'ai du mal à penser qu'un algorythme, même peu connu ou utilisé, qui date de 1999 soit encore dans le coup du point de vue sécurité.
    Blowfish est loin d'être un algorithme (avec un i) inconnu. Et la plupart des algorithmes réellement utilisés actuellement sont au moins aussi vieux, voir bien plus (RSA a près de 30 ans). Il faut du temps pour que les spécialistes se persuadent de la robustesse d'un chiffrement.

    Citation Envoyé par Inazo Voir le message
    Oui c'est plus compliqué mais je le répète de manière plus claire le MD5 est obsolète. John The Ripper, fameux logiciel du genre, a été annoncé il y a quelque année comme ayant cassé le md5... Et quand on parle de casser c'est à dire de faire ce qui en théorie n'est pas possible avec le md5 c'est a dire le dé-hasher (désolé j'ai pas de termes plus français en tête).
    Non, si MD5 a effectivement été affaibli il n'existe pas d'attaque pour retrouver un mot de passe à partir de son hash autre que la force brute. L'attaque découverte permet de générer des collisions (deux mots de passe qui ont le même hash) c'est tout.

    Citation Envoyé par Inazo Voir le message
    Donc de toute façon dans les applications récentes on ne devrait plus trouver du MD5 et du SHA1, et avoir au moins une chaine de sel, soit unique par compte soit générale pour l'application. De toute manière en cas de vol de votre BDD vous êtes dans la mer**e...
    L'inconvénient des sels uniques à l'application est qu'ils permettent de de détecter facilement les comptes utilisant des mots de passe courant (genre "password" ou "123456") car ils auront tous le même hash.

    Citation Envoyé par ctxnop Voir le message
    Non, ca ne rend pas du tout les choses plus compliquées, au lieu de trouver un mot de passe on trouvera un autre hash md5. Et ca se reconnait immédiatement. Il suffit donc de recommencer. C'est juste un peu plus long, mais sur du md5, ca va pas pourrir les vacances du hacker.
    L'article parle de casser des mots de passe de 6 caractères, pour un mot de passe de 32 ça risque d'être très très... très long.
    Mais en cryptographie en suppose toujours que l'attaquant connait la méthode utilisée. Il est en fait complètement inutile de "casser" le premier MD5. Il suffit de passer deux fois l'algorithme MD5 sur le mot de passe et voir si les hash correspondent. C'est un peu plus lent qu'un MD5 simple (à voir s'il n'existe pas des optimisations possibles), mais en fait on se retrouve avec le principe décrit dans l'article, avoir un hash lent à calculer pour ralentir l'attaque, sauf que là l'attaque est encore largement faisable (sur des mots de passe courts).

    Citation Envoyé par ctxnop Voir le message
    Plus on s'enferme à tous faire exactement la même chose parce que "c'est la sécurité d'aujourd'hui" et plus la sécurité deviens faible car ca amène plus de monde à travailler à la casser, et le jour où il y arrivent, tout ceux qui ont utilisé cette sécurité seront exposé. Des standards de hash/chiffrement sont indispensables, mais chaque développeur devrait créer son propre petit puzzle pour les stocker, dans l'unique but d'empêcher les bots de fonctionner et donc de faire perdre énormément de temps aux attaquant. Le petit casse tête n'a pas vocation à servir de protection contre l'attaque, ca sert juste à casser l'artillerie lourde de l'attaquant. Parce que prendre d'assaut une forteresse à l'aide de catapulte et autre trébuchet, sans problème, mais y aller à pied avec sa petite épée, ben c'est pas la même chose...
    L'expérience montre que c'est une très mauvaise idée, car vouloir faire un système sécurisé sans être spécialiste conduit souvent à des désillusions (voir l'exemple du WEP par exemple, alors on peut imaginer ce que cela donne pour un simple développeur de sites Web).

    Citation Envoyé par lun4t1k Voir le message
    Des pirates se sont amusés a construire un cluster de 200 PS3 et ont tombé SSL... Source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://hackaday.com/2008/12/30/25c3-hackers-completely-break-ssl-using-200-ps3s/
    Donc je pense pas que l'algo BCrypt servent a quelque chose :p
    On a pensé à ce genre d'attaque depuis que la faiblesse sur MD5 a été dévoilée, Mais elle n'est pas utilisable pour retrouver des mots de passe à partir de leur MD5.

  13. #33
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Citation Envoyé par sovitec Voir le message
    L'article parle de casser des mots de passe de 6 caractères, pour un mot de passe de 32 ça risque d'être très très... très long.
    Mais en cryptographie en suppose toujours que l'attaquant connait la méthode utilisée. Il est en fait complètement inutile de "casser" le premier MD5. Il suffit de passer deux fois l'algorithme MD5 sur le mot de passe et voir si les hash correspondent. C'est un peu plus lent qu'un MD5 simple (à voir s'il n'existe pas des optimisations possibles), mais en fait on se retrouve avec le principe décrit dans l'article, avoir un hash lent à calculer pour ralentir l'attaque, sauf que là l'attaque est encore largement faisable (sur des mots de passe courts).
    Donc ca reviens exactement à ce qu'on disait: ca ne ralenti pas ou très peu.

    Citation Envoyé par sovitec Voir le message
    L'expérience montre que c'est une très mauvaise idée, car vouloir faire un système sécurisé sans être spécialiste conduit souvent à des désillusions (voir l'exemple du WEP par exemple, alors on peut imaginer ce que cela donne pour un simple développeur de sites Web).
    Va falloir que je ré-explique combien de fois ? Il n'est nullement question de se prendre pour un spécialiste et d'inventer des algo mathématique ultra complexes de protections qui deviendraient des standards que tout le monde utiliserait après. Je parle juste d'utiliser une sécurité existante et fiable au possible, comme tout le monde, mais en plus d'en personnaliser le stockage via un petit puzzle pas bien complexe mais le plus trompeur possible. Comme par exemple, faire croire à l'utilisation d'un algo alors qu'on en utilise un autre. C'est tout con, ca ne met pas en danger la fiabilité de l'algo utilisé puisqu'il reste totalement intacte, et ca casse le fonctionnement des bots qui ne sont pas prévu pour l'utilisation d'une telle fourberie. C'est tout, ca ne va pas plus loin, ce n'est pas se prendre pour un spécialiste, ni réinventer la roue ou un algo ultra complexe.
    Tu cites le WEP comme exemple, mais le WEP n'est justement pas personnalisé, c'est le même algo pour tout ceux qui l'utilisent, alors forcément des outils ont été fait pour le casser et aujourd'hui c'est un jeu d'enfant de le faire tomber.
    A contrario, moi je cite l'exemple des captcha "stupides" qu'on commence à voir fleurir et qui sont finalement aussi efficaces si ce n'est plus que les solutions complexes type reCaptcha. La raison est simple, les bots ont été créés pour faire tomber les générateurs d'images, pas pour répondre à des question stupides. J'ai vu un site (je ne sais plus lequel malheureusement) où le webmaster avait comme captcha "combien font un plus un ?". C'est tout, ca ne varie jamais, toujours la même question. Et pourtant il dit que ca arrête la quasi totalité des spams. Parce qu'aucun bot n'est fait pour contrer son test et ce notamment parce que personne n'utilise le même test que lui. Le jour où un bot sera fait pour sa question, il n'aura qu'a changer de question.
    Cette petite personnalisation de rien du tout est suffisante pour casser les outils de masse, et quand on casse un outil de masse on fait perdre énormément de temps à l'attaquant. Mais jamais il n'a été question dans mes propos que ca remplace une sécurité standardisée, connue, fiable, ..., c'est complémentaire uniquement.

  14. #34
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Citation Envoyé par lun4t1k Voir le message
    Des pirates se sont amusés a construire un cluster de 200 PS3 et ont tombé SSL... Source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://hackaday.com/2008/12/30/25c3-hackers-completely-break-ssl-using-200-ps3s/
    Donc je pense pas que l'algo BCrypt servent a quelque chose :p
    J'aime bien comment les choses sont présentées, mais il se trouve que c'est largement insuffisant pour faire tomber SSL.

  15. #35
    Membre actif Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Points : 274
    Points
    274
    Par défaut
    This attack is possible because of a flaw in MD5.
    En fait, j'avais pas lu l'article !

  16. #36
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Citation Envoyé par ctxnop Voir le message
    Tu cites le WEP comme exemple, mais le WEP n'est justement pas personnalisé, c'est le même algo pour tout ceux qui l'utilisent, alors forcément des outils ont été fait pour le casser et aujourd'hui c'est un jeu d'enfant de le faire tomber.
    Le personnalisation n'est pas le problème. Le problème, c'est que des pseudo spécialistes en sécurité se sont réunis, sous couvert de secret, et on pondu un truc supposé sécure.

    Sauf que le truc n'était pas sécure du tout. Il m'a fallut environs 15 mins avec connaissance de la méthode pour savoir comment générer des paquets valides dans connaitre la clef.

    Je te laisse imaginer ce que peuvent faire des spécialistes en sécurité de ça. le problème c'est que ça a été fait en secret, ce qui fait qu'ils n'ont pas vu la crevasse de sécurité qu'ils avaient laissé.

    Et la même chose s'est produit en téléphonie mobile.

    Si tu veux quelque chose de fiable, il ne faut au contraire pas prendre un truc personnalisé, mais bien le truc qui est largement connus de tous, testé et éprouvé.

  17. #37
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    Le personnalisation n'est pas le problème. Le problème, c'est que des pseudo spécialistes en sécurité se sont réunis, sous couvert de secret, et on pondu un truc supposé sécure.

    Sauf que le truc n'était pas sécure du tout. Il m'a fallut environs 15 mins avec connaissance de la méthode pour savoir comment générer des paquets valides dans connaitre la clef.

    Je te laisse imaginer ce que peuvent faire des spécialistes en sécurité de ça. le problème c'est que ça a été fait en secret, ce qui fait qu'ils n'ont pas vu la crevasse de sécurité qu'ils avaient laissé.

    Et la même chose s'est produit en téléphonie mobile.

    Si tu veux quelque chose de fiable, il ne faut au contraire pas prendre un truc personnalisé, mais bien le truc qui est largement connus de tous, testé et éprouvé.
    Faut que je te la refasse encore ? ou tu lis pas du tout peut etre ?

    Depuis le début je dis de prendre quelque chose de "connus de tous, testé et éprouvé", ca se traduit par un hash, ou un crypt quelconque, ce qui est le plus adapté a ton problème.
    Et ensuite, par dessus, personnaliser la manière dont c'est stocké pour casser le fonctionnement des bots, et si possible tromper l'attaquant sur la nature de la protection utilisée.

    Et tu connais pas la meilleure ? Cette histoire de tromper l'attaquant sur la protection utilisée, ben ca aussi c'est connu et largement utilisé. On retrouve ca essentiellement dans des services tels que des serveur ftp, http, smtp, ... qui permettent de configurer une sorte de "user-agent" pour indiquer de fausses informations de version, voire carrément se faire passer pour un autre serveur (genre vsftpd qui se ferait passer pour proftpd), allant même parfois jusqu'a mentir sur le système d'exploitation utilisé. Pourquoi ? Juste pour tromper l'attaquant qui va alors chercher des failles correspondantes aux versions qu'il a détecté, sauf que celles-ci ne seront probablement pas valables sur la version réelle. Bien sur, s'il n'est pas stupide, il s'en rendra compte au bout d'un moment. Mais en attendant, bah il va perdre du temps et risquera de se faire repérer avec ses tentatives foirées.

    Personne ici n'a dit qu'on devrait se réunir en groupe, se prendre pour des pros, créer un algo de hash a 2 roubles pensant qu'il sera sécure et l'utiliser en remplacement d'un vrai algo fait par des gens qui ont, eux, une réelle connaissance de la question. Je dis qu'il faut absolument utiliser ces algos réputés, mais encore une fois, je prend un sha-256, suffisant pour mon application, je colle du bourrage pour lui faire prendre la taille d'un sha-512, et l'attaquant va se croire en présence d'un sha-512, alors que non, c'est un sha-256. L'algo du sha-256 reste totalement identique, c'est juste qu'au lieu de le stocker tel quel, on a coller derrière une chaine de texte "hexadecimale", le tout à la gueule d'un sha-512, est un hash valide également (bien qu'on ne connaisse pas la données qui aurait donné ce sha-512), mais seul les 256 premiers bits sont réellement un hash, le reste n'est la que pour tromper. Et un truc tout con comme ca, ca fait perdre un temps fou à l'attaquant, et jusqu'a preuve du contraire, tout ce qu'on peu faire pour se protéger c'est bien ca : faire perdre du temps à l'attaquant.

    Après, encore une fois, ce genre de tromperie n'est valable que si elle est personnalisée. J'entends par la que si tous les sites font la même fourberie, celle-ci devient totalement inutile puisque connue de tous et que du coup on peu modifier les bots pour les adapter. La tromperie mise en place n'a pas besoin d'être ultra complexe, elle a juste besoin d'être le plus unique possible (et le plus trompeur possible, cela va de soit). Bien évidemment, elle ne doit rester qu'une tromperie et surtout pas devenir la méthode de protection.

  18. #38
    Membre averti Avatar de Jenna
    Inscrit en
    Décembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2009
    Messages : 272
    Points : 339
    Points
    339
    Par défaut
    Citation Envoyé par lochnar Voir le message
    le but du sel est de rallonger le mot de passe afin que cela complique la tâche de celui qui voudrait déchiffrer le mot de passe sans le connaitre...
    Pas tout à fait. Le but du sel est de générer 2 empreintes différentes avec le même mot de passe.

    Sur un systeme Unix, le sel est aléatoire et est souvent fonction du pid du process, de la date et d'autres choses encore.

    2 personnes disposant du même mot de passe ("123456") auront des empreintes de mot de passe différentes car le sel utilisé sera (très probablement) différent.
    La valeur n'attend pas le nombre des années

  19. #39
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    ctxnop > je comprend ton point.*Pour des choses très simples comme celles que tu cites, ça fonctionne.

    mais attention, car cela peut induire des failles. Par exemple, dans le cas du WEP, aucune des fonctions de crytpage mise en œuvre n'est cassée. C'est la façon dont elles sont utilisées qui l'est.

  20. #40
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    Citation Envoyé par ctxnop Voir le message
    Donc ca reviens exactement à ce qu'on disait: ca ne ralenti pas ou très peu.
    Oui, j'aurai du être plus clair sur le fait que j'étais d'accord avec la conclusion. Mais suite à ce message s'ensuit une discussion surréaliste sur le cassage des mots de passe de 32 caractères, mais je ne voulais pas tout quoter.

    Citation Envoyé par ctxnop Voir le message
    Va falloir que je ré-explique combien de fois ?...
    Sauf que le WEP (je conserve mon exemple) est basé sur des briques reconnues (RC4 toussa) sauf que la sauce a été mal faite. Utiliser des algorithmes reconnus ne suffit pas, il faut aussi savoir les combiner intelligemment, et ce n'est pas aussi évident que tu as l'air de le croire.
    (Edit: grillé par deadalnix)

Discussions similaires

  1. comment crypter les mots de passe?
    Par JauB dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 23/11/2005, 16h37
  2. Réponses: 1
    Dernier message: 19/09/2005, 13h56
  3. Réponses: 5
    Dernier message: 17/12/2004, 09h25
  4. Comment cacher un mot de passe ?
    Par benxitd dans le forum Windows
    Réponses: 2
    Dernier message: 02/12/2004, 10h59
  5. Comment changer le mot de passe sous Interbase
    Par ETOKA dans le forum InterBase
    Réponses: 3
    Dernier message: 05/08/2004, 11h25

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