• [^] # Re: Objectivité

    Posté par . En réponse au journal Les cons? ça ose tout!. Évalué à 0.

    Et moi je pense que toi, tu n'as pas perçu l'importance de ce problème. Dans les faits, MD5 est déprécié depuis plus de 20 ans, ses faiblesses sont démontrées depuis tout aussi longtemps et son utilisation dans un but de sécurité est fortement découragée. En gros (voir la page man de md5sum, c'est déjà un début):

    "Ne pas utiliser MD5 à des fins de sécurité!"

    ou encore:

    "Do not use MD5 for security purposes."

    C'est pas clair, ça?

    Tel est aussi le message envoyé par les experts en cryptographie et en sécurité informatique (dont Bruce Schneier, tu peux aller vérifier). Tu n'as aucun effort à faire pour lire ça un peu partout. Libre à toi de l'ignorer mais prétendre que je ne comprends pas le concept et que je prouve que je ne sais pas de quoi je parle... ça me sidère!

    Quelqu'un qui arrive encore aujourd'hui à justifier, envers et contre tout, l'utilisation de MD5 dans un contexte de sécurité est précisément quelqu'un qui ne sait pas de quoi il parle.

    Pour craquer l'URL, le mauvais raisonnement consiste à prétendre que 32 caractères aléatoires représentent un nombre de possibilités trop élevé. Pourquoi? Parce que c'est raisonner à l'envers.

    Puisqu'il ne faut que quelques secondes à quelques minutes pour craquer un hash MD5 avec du matériel commun, il suffit de générer autant de suites (dont la taille est limitée à quelques caractères), que l'on passe à MD51 pour multiplier les chances de tomber sur une URL valide, n'importe laquelle. Un des (nombreux) problèmes de MD5 est que plus la donnée "hashée" est petite, plus le temps nécessaire pour la craquer devient court. Et en dessous d'une certaine longueur, qui augmente à mesure que le temps passe, ce temps est ridiculement court, de l'ordre de la seconde.

    En un mois, soient environ 2.500.000 secondes, et si on considère un système capable de générer 40 milliards de hash MD5 à la seconde, ça fait 1017 hashes par force brute au bout d'un mois. Et encore, là, on est sur un système qui date de 2016...

    Ce n'est qu'une question de patience: à mesure que le temps passe, n'importe quelle URL finira craquée. Or il suffit d'une seule fuite, de craquer un seul de ces codes MD5 pour que la sécurité de toutes les données personnelles soit compromise. Et le nombre de clients ne se compte pas en dizaines de milliers mais bien plus que ça.

    À moins qu'il sache quelle était l'entrée de la fonction de hashage, [...]

    Voilà, on y arrive: c'est exactement le point! MD5 1) ne protège pas contre la détection de la source employée et 2) la sécurité d'un système doit être inchangée même en connaissant l'algorithme (voir l'article concernant "la sécurité par l'obscurité" sur Wikipédia, pour commencer). Or là, ce n'est pas le cas.

    [...] ce serait pareil avec n'importe quelle fonction de hashage

    LOL! En fait tu en viens exactement, de manière détournée, à dire la même chose que moi: utiliser exclusivement une fonction de hashage dans une URL pour l'accès, sur un site public, à des données personnelles et privées est une mesure insuffisante.

    Que veux-tu que je te dise d'autre...

    Dois-je aussi rappeler que l'utilisation de MD5 ne constitue qu'une partie du raisonnement?


    1 C'est ce que fait hashcat, entre autres. Le craquage par force brute est limité à quelques caractères mais plus le temps passe, plus ce type de craquage est effectif. D'autres attaques, de type "rainbow table" sont également possibles. J'ignore si cette dernière est applicable ici mais dans tous les cas, les outils ne manquent pas.