Commentaires : Moins d'une heure pour pirater un mot de passe par force brute : les RTX 4090 font des ravages

Oui, au max environ 6 ans, mais rien ne dit qu’il ne tombera pas sur le bon mot de passe en 3 heures, en 1 semaine ou en 3 mois plutôt que 6 ans, non ?

1 « J'aime »

Ou même du premier coup… Mais là c’est une question de probabilité, la probabilité est extrêmement faible.

Si il faut 6 ans max pour casser un mot de passe, la probabilité de le trouver en 3h, 1 semaine ou 3 mois est respectivement de ~1/17 500, ~1/300 et 1/24.

Puis là les 6 ans c’est avec l’algo de NTLM, qui est vraiment léger aujourd’hui… Avec un bcrypt en configuration par défaut de PHP d’aujourd’hui, tu multiplies le temps par 48 millions (et donc tu divises par 48 millions les probabilités que j’ai données juste au-dessus)…

1 « J'aime »

Je voulais savoir Matt où tu as vu 200KH/s ?
Moi je lis 300GH/s …

L’attaque par force brute est une méthode utilisée en cryptanalyse pour trouver un mot de passe ou une clé. Il s’agit de tester, une à une, toutes les combinaisons possibles.

Cette méthode est en général considérée comme la plus simple concevable. Elle permet de casser tout mot de passe en un temps fini indépendamment de la protection utilisée, mais le temps augmente avec la longueur du mot de passe. En théorie la complexité d’une attaque par force brute est une fonction exponentielle de la longueur du mot de passe, la rendant en principe impossible pour des mots de passe de longueur moyenne. En pratique des optimisations heuristiques peuvent donner des résultats dans des délais beaucoup plus courts.

Donc on s’attaque pas a l’algo

300 GH/s, c’est pour NTLM. 200 kH/s (184 même pour être précis), c’est pour bcrypt avec un coût à 5 (32 itérations).

À partir du Tweet cité dans l’article, tu remontes au Tweet de départ du même auteur, et tu as un lien Gist vers le résultat détaillé pour plein d’algo de hash différents : Hashcat v6.2.6 benchmark on the Nvidia RTX 4090 · GitHub

1 « J'aime »

Il vaudrait mieux expliquer aux gens que le vrai problème de sécurité n’est pas (oui il faut un minimum on est d’accord) la c!OmpL3xit& de leur mot de passe mais ce qu’ils en font… Tellement de mauvais usages ou de manque de précaution permettent de les récupérer sans devoir mettre à contribution la moindre carte graphique dans un calcul ou l’autre.

Réponse à phishing
Réemploi
Logique unique de construction pour tous.
Fichier texte sur le bureau (et pas que chez les vieux !)
Bref.

Pourquoi les RTX se retrouvent elles toujours dans les mauvais couts ?
Désolé, lapsus, …dans les mauvais coups.

1 « J'aime »

Lorsqu’il dit 6h , c’est maximum 6h , si on parle d’une moyenne ça peut prendre moins de 3h !

Bien sur. Là je comparais le temps pour faire l’ensemble des combinaisons comme expliqué dans l’article.
Et pour compléter ce que tu dis, il faut alors parler d’une moyenne pour trouver un mot de passe d’une longueur donnée, et on peut supposer qu’en gros c’est le temps max divisé par 2. Donc 3 ans pour 10 caractères.

Simplement parce que ce sont les plus puissantes pour ça à ce jour…

Mais bon, c’est de toute façon un peu du sensationnalisme, une RTX 3090 mettait à peine deux fois plus de temps, et une 6950 XT trois fois plus, ce qui ne fait pas changer l’ordre de grandeur des temps de cassages (qui restent largement trop long face aux bonnes pratiques d’aujourd’hui).

1 « J'aime »

si 8 caractères il faut 6h, combien pour 25, des années !? on a donc de la marge et pas d’inquiétude à avoir :wink:

Ça dépend comment c’est fait. La méthode classique aujourd’hui c’est d’avoir un sel aléatoire pour chaque hash, et du coup, le sel est stocké dans le hash, par exemple en utilisant le format MCF ou PHC, puisqu’il y en a besoin pour ensuite vérifier le hash.

Voilà par exemple 3 hash d’un même mot de passe avec la fonction password_hash de PHP, le premier en imposant le sel, les deux autres en laissant password_hash tirer un sel aléatoire :
$2y$10$012345678901234567890uHIlLXgSTdYTWM7ZF7pewbPCpXRHjYFa
$2y$10$SGPegcCvoy.8RKPVvnP0EeGFD.58VCyBWWeokVeVKR9/LRkXjbXM2
$2y$10$xbAW5sdbQOQWSDQqpQXSI.F8ym8BJFNdJIOXLAXcHj0N1wLrSomcK

C’est ça qui est ensuite stocké en base. Pour vérifier le hash, il suffit d’appeler password_verify avec le mot de passe à vérifier et le hash, aucune autre info à fournir, parce que le hash est autoportant : $2y$10$ ça indique l’algorithme utilisé et ses paramètres (2y, c’est l’implémentation de bcrypt de PHP, 10 c’est la valeur de coût), ensuite, dans le cas de bcrypt, les 22 caractères suivants sont le sel (qui doit faire 22 caractères base64 exactement, si on met un sel plus court il le refuse, si on met un sel plus long il le tronque, si on met un sel contenant des caractères n’existant pas en base64 il le convertit en base 64 et garde les 22 premiers caractères résultats), et le reste c’est le « vrai » hash du mot de passe salé.

Du coup, celui qui a réussi à voler la base de données, il a aussi les sels.

Par contre, à moins d’avoir utilisé le même sel partout (ce qui serait une grosse ânerie… au point que dans PHP ils ont maintenant carrément retiré l’option sel de password_hash, ça génère d’office un sel aléatoire), et c’est là que le sel joue son rôle de complexification, même s’il est connu : le brute force doit être fait indépendamment sur chaque mot de passe de la base de données.

Alors que s’il n’y a pas de sel ou un sel identique sur tous les mots de passe, le brute force peut s’appliquer à tous les mots de passe de la base en même temps.

Pour que le sel empêche complètement le brute force, il faut que l’attaquant n’ait pas connaissance du sel. Ça peut se faire en ayant par exemple un sel qui est lui même calculé à partir du mot de passe, mais ça complexifie le code.

Par exemple, en PHP, au lieu de faire simplement password_hash($pass) / password_verify($pass, $hash), tu peux faire password_hash($salted_pass) / password_verifiy($salted_pass, $hash) en calculant au préalable le mot de passe salé avec une autre méthode (par exemple, $salted_pass pourrait être un hash de mot de passe salé avec l’identifiant du compte). Là tu bloques effectivement le brute force… à condition que ton attaquant n’ait pas eu accès à ton code pour voir comment tu sales…

3 « J'aime »

"Heureusement, le prix de la RTX 4090 pourrait à lui seul dissuader plus d’un pirate de s’en payer les faveurs : comptez plus de 2 000 euros en France pour l’acquérir. "

:rofl::rofl:. Je ris…

C’est très bien le craquage par brutforce, mais c’est vraiment un truc de noob (sans être péjoratif et avec tout modestie) pour les systèmes de sécurité « non-réfléchis » et sans délai/limitation/lock/ban entre chaque essai.
Ce qui devrait être la base dans un système informatique.

On ne laisse pas une possibilité d’essais illimités quand on conçoit et met en place, un accès utilisateur « externe ».

Le web est un gruyère depuis bien trop longtemps et l’exploitation par brutforce n’est plus réellement possible sur la plupart des grands acteurs depuis de nombreuses années.
Il reste les millions de petits (oui, c’est là le problème en fait, pas qu’ils soient petits, mais le manque de connaissance par ces millions d’acteurs qui lancent des gruyères accessibles par brutforce)

Avant même de dire (je cite un titre), « La double authentification plus pertinente que jamais », il y a la limitation à l’essai, le délai entre les tests, les algo lents du style bcrypt, le ban et un un « tas » d’éléments de sécurité « de base » comme le principe des captchas qui sont utilisés avant même que la double identification te serve réellement sur les « grands acteurs de type gafam ».

Alors…

Oui, cette carte est formidable par sa puissance de calcul.

Oui, vous pourrez hasher des passwords, de l’md5 et etc comme ça vous chante, mais vous ne rentrerez pas davantage dans un système avec ce hashage supérieur qu’avec la carte précédente ou qu’une 1080…

NB: le gars de hashcat est vraiment un type bien, je dis pas le contraire, c’est juste qu’il faut pas faire croire que n’importe qui ayant une 4090, ira dans les comptes gmail, hotmail et le top 100 des sites les plus visités, car ça, c’est de la véritable ânerie pour les ignorants !

Un password de 4 caractères AVEC les garde-fous précédemment cité peut faire l’affaire sur n’importe quel site des gafam. (Attention, ce n’est pas à faire hein, mais c’est juste pour expliquer l’absurdité de la double authentification (qui rajoute une couche de sécurité et est utile, je ne dis pas le contraire), dont l’utilité est moindre vu que les acteurs implantant ce système ont généralement ces garde-fous !)

À côté de ça, purée, les md5 vont en prendre un coup héhé, la puissance de calcul de ces cartes devient juste monstrueuse, c’est dingue.

@pinkfloyd

J’utilise Spectre (anciennement masterpassword) depuis pas mal d’années.
Malheureusement, il n’y a toujours pas une version pour Android capable de remplacer le service Samsung pour remplir les id et mdp.
Ils y travaillent dans le cadre de la nouvelle mouture spectre. Résultat, je l’utilise uniquement comme générateur de mots de passe.
En plus c’est lourdingue, car pas de synchro entre les versions desktop et Android !

Sincèrement un pirate a plus vite fait des récupérer une des nombreuses bases qui trainent encore avec des mdp en clair… Comme beaucoup de gens utilisent le même login(email) et le même mdp, ils ont accès à peu près à tout.
J’ai du faire un projet de migration il y a quelques années. On nous a passé une base client MySQL avec les mails et mot de passe. Dans 90% des cas, j’ai pu me connecter à la boite mail. A partir de là, vous pouvez récupérer énormément d’infos et vous pouvez vous connecter à peu près partout.
Depuis il y a le MFA et j’invite tout le monde à l’activer au moins sur sa messagerie (globalement toutes le propose aujourd’hui) même si c’est un peu pénible au quotidien.

Il faut 0 seconde minimum (si par hasard il démarre directement avec le bon), x maximum, x/2 en moyenne.

Yep, c’est la limite de leur approche 0 stockage.

Autre problème, sur certains sites, l’identifiant n’est pas trivial non plus, et il manque donc un moyen de le stocker quelque part.

Et ça ne gère pas non plus les règles de complexité des mots de passe…

Perso je me suis fait une appli web pour générer mes mots de passe, sur le même principe que Spectre, mais je stocke quand même quelques infos, l’identifiant, le nom du site (qui servent en entrée de ma méthode de génération), le format du mot de passe (longueur, classes de caractères autorisées, classes de caractères obligatoires) et un incrément qui me permet de changer le mot de passe pour un site.

Il n’y a que le mot de passe maître que je ne stocke pas. C’est suffisant pour empêcher toute génération en cas de vol de ma base de données.

Un peu vague et sur plusieurs aspect ce titre je trouve.

Du force-brut, c’est évidemment que sur du soft local, aucun compte web laisserait faire ça.
Mais même en local, ya forcement des latences extrêmement supérieur au niveau de la tentative de connexion plutôt qu’au niveau de la génération du MPD?!
Un mot de passe de 4 chiffres c’est pas un mot de passe de 10 caractères (avec casses et spéciaux)
Je suppose qu’on évoque les temps pour générer toutes les combinaisons, donc que la dernière soit la bonne ce qui assurément n’arrive jamais.

Mais surtout, nul part a l’intérieur de l’article on parle de casser un MDP en moins d’1h !
C’est quoi cet URL ? (moins d’une heure)

Il ne s’agit pas du temps que met la carte à générer les mots de passe, mais bien le temps qu’elle met à générer les hash NTLM des mots de passe.

Donc c’est effectivement le temps qu’il lui faut pour cracker un mot de passe NTLM dont on connait le hash (suite par exemple à une intrusion dans un système qui stockait ce hash).

Sensationnalisme :wink:

Mais avec quand même un petit fond de vérité : comme la carte peut tester tous les mots de passe NTLM de 8 caractères en 6 heures, il y a statistiquement 1 chance sur 6 qu’elle casse un mot de passe NTLM donné en moins d’1h.