web-dev-qa-db-fra.com

Comment les mots de passe sont-ils volés aux entreprises si elles ne stockent que des hachages?

Partout où je regarde, il est dit que les serveurs stockent les mots de passe sous forme hachée, mais vous avez ces dernières nouvelles sur les pirates informatiques qui volent les mots de passe de grandes entreprises. Qu'est-ce que je rate?

55
W2a

Il y a deux défaillances courantes, en plus de laisser les bases de données ou les fichiers être volés en premier lieu.

Malheureusement, et contre toutes les recommandations de sécurité, de nombreux systèmes stockent toujours des mots de passe en texte brut.

Les mots de passe hachés ne sont techniquement pas réversibles, mais comme cela a été souligné par d'autres, il est possible de hacher des millions de suppositions de mot de passe, puis de simplement rechercher des correspondances. En fait, ce qui se passe généralement, c'est que des tableaux de mots de passe et de hachages pré-calculés (Rainbow Tables) sont disponibles et utilisés pour rechercher des correspondances. Une bonne table Rainbow peut prendre en charge une correspondance de pourcentage élevé en fractions de seconde par hachage de mot de passe.

L'utilisation d'un sel ( une extension non secrète supplémentaire du mot de passe ) dans le hachage empêche l'utilisation de Rainbow précalculé les tables.

La plupart des compromettants dépendent des tables Rainbow. Calculer leur propre ensemble de hachage est certainement possible, mais cela prend beaucoup de temps (comme en mois ou plus), c'est donc généralement le hachage Vanilla qui est vulnérable.

L'utilisation d'un sel arrête les tables Rainbow, et un nombre élevé de hachages de hachage hachés peut effectuer une transition par force brute de plusieurs mois à des années ou plus. La plupart des institutions ne mettent tout simplement pas en œuvre ce niveau de sécurité.

86
user10216038

Lorsque vous entendez que des mots de passe ont été volés, parfois les entreprises le signalent même s'il s'agit simplement de mots de passe hachés qui ont été volés. C'est ainsi que vous pouvez prendre des mesures dans le cas où ils sont cassés. Malheureusement, il existe encore des entreprises qui ne stockent pas correctement leurs mots de passe; Par exemple, si vous recherchez la violation de mot de passe rockyou, vous constaterez qu'ils stockaient leurs mots de passe en texte clair, ce qui signifie qu'ils ont été compromis dès qu'ils ont été volés. Dans d'autres cas, comme la violation de mot de passe Adobe, il y a eu une mauvaise gestion du stockage des mots de passe cryptés dans leur base de données. D'autres fois, les entreprises utilisent le hachage sur leurs mots de passe mais utilisent des algorithmes de hachage non sécurisés ou ne salent pas correctement leurs mots de passe. En bref, si une entreprise suit les méthodes de stockage de mots de passe recommandées, les mots de passe devraient en théorie être sécurisés sous leur forme hachée, mais une bonne entreprise informera toujours ses clients de la violation. Cependant, il existe de nombreux exemples où les entreprises ne stockent pas correctement les mots de passe, ce qui les fait craquer assez rapidement.

30
Dam30n

Vous hachez un grand nombre de mots de passe potentiels*, puis vérifiez si chaque sortie correspond à des hachages de la base de données de mots de passe volés. Le craquage par force brute est possible parce que les gens ne le font pas choisissent généralement des mots de passe hautement imprévisibles.

Lorsqu'une base de données de mots de passe est volée, le matériel volé comprend toutes les informations nécessaires pour effectuer un craquage hors ligne. (C'est simplement un processus de devinette et de vérification. D'autres méthodes peuvent être disponibles avec des méthodes de hachage ou de stockage de mot de passe moins sécurisées.)

* Si des sels sont utilisés, le cracker doit également en tenir compte. Si chaque compte utilise un sel unique, les crackers ne peuvent pas simplement cibler tout le monde en hachant une fois chaque mot de passe candidat. Si plusieurs comptes sont ciblés, le mot de passe que vous souhaitez essayer doit être haché une fois pour chaque sel. Si les hachages de mot de passe ne sont pas salés ou utilisent tous le même sel, il est beaucoup plus facile de faire des attaques non ciblées; il vous suffirait de hacher un mot de passe candidat une seule fois pour déterminer la liste complète des utilisateurs qui avaient ce mot de passe. Les sels rendent également inutiles les tentatives de précalcul des hachages pour économiser l'effort de craquage. Les sels NE réduisent PAS le nombre de hachages à évaluer si un seul compte est ciblé. Ces nuances mises à part, la base du craquage de mot de passe reste un processus de supposition et de vérification.


Le hachage de mots de passe avec une fonction résistante à la pré-image avec une entrée suffisamment suffisamment imprévisible est suffisant pour rendre impossible la récupération d'un mot de passe. (Un mot de passe inhumainement fort.)

Cependant, la plupart des gens ne le font pas dans le monde réel, une base de données volée de hachages est potentiellement aussi inquiétante qu'une liste de mots de passe non hachés pour un grand sous-ensemble d'utilisateurs sur un site Web typique.

Si le pirate de mot de passe trouve un mot de passe candidat dont le hachage correspond à celui stocké dans la base de données, il aura récupéré le mot de passe (faible) d'origine.


Alternativement, si une fonction de hachage n'est pas résistante à la pré-image (y compris lorsque la sortie du hachage est trop courte), une procédure de vérification et de vérification peut produire des faux positifs. (Mots de passe alternatifs non identiques à l'original.)

Les comptes d'utilisateurs de l'entreprise avec la violation de données sont toujours vulnérables parce que ces mots de passe déverrouilleront le compte d'un utilisateur, même = s'ils ne sont pas identiques au mot de passe d'origine. (Le serveur n'a aucun moyen de savoir s'il s'agit du mot de passe d'origine. Le hachage correspond toujours à celui de la base de données volée dans ce cas.)

N'utilisez pas intentionnellement une fonction de hachage non sécurisée, bien sûr ... Il est toujours possible d'inférer le mot de passe d'origine ou de réduire le nombre de possibilités. Ce qui rendrait encore plus vulnérables les utilisateurs qui réutilisent les mots de passe sur d'autres sites Web.


Il existe d'autres façons de voler des mots de passe qui ne proviennent pas d'une fuite d'une copie d'une base de données de hachages de mots de passe. Les informations de connexion en texte brut peuvent être enregistrées. (En observant le trafic réseau non chiffré/déchiffré, en piratant et en réécrivant le code du serveur, ou en utilisant des bogues côté client, par exemple.) Ensuite, ce journal peut être exfiltré.

Et bien sûr, certaines entreprises n'ont peut-être pas utilisé en premier lieu des schémas de vérification de mot de passe sécurisés ou peuvent divulguer le texte en clair via un bogue1 , 2 .

Malgré les explications alternatives pour certains cas de violations massives de mots de passe, la récupération de mots de passe en texte clair à partir de hachages de mots de passe est courante et efficace. Cependant, il n'est pas si efficace que 100% des hachages dans chaque fuite de grande base de données seront récupérés.

Si les mots de passe sont traités avec une fonction de hachage cryptographique, les utilisateurs avec des mots de passe extrêmement forts n'ont pas besoin d'être aussi inquiets que les utilisateurs typiques. (Mais la plupart des gens surestiment la force du mot de passe et leur propre intelligence.) Après avoir dépensé des ressources importantes pour casser 99% des hachages, cela ne vaut probablement pas la peine ou pratique de casser le dernier 1%. Mais les mots de passe forts ne sont pas bons si les mots de passe ne sont pas hachés.

Les développeurs doivent utiliser un algorithme d'étirement des mots de passe. Ces algorithmes essaient simplement de rendre le hachage de mot de passe plus cher. (Pour les utilisateurs légitimes et les crackers de mots de passe.) Argon2 est actuellement le meilleur algorithme d'étirement de mot de passe , en particulier sur les processeurs Intel/ARM. Argon2 en particulier peut faire beaucoup pour réduire la fraction de hachage qui se fissurera. (Les mots de passe faibles seront toujours craquables.)

19
Future Security

De nombreuses possibilités:

  1. Même si les mots de passe doivent être hachés avant le stockage, ce n'est pas toujours le cas. Malheureusement, même aujourd'hui, il y a encore beaucoup de mots de passe stockés en texte clair. Volez la base de données, obtenez tous les mots de passe.

  2. Les mots de passe peuvent être stockés ailleurs. Les mots de passe peuvent être inclus dans les journaux, par exemple. Volez des journaux, obtenez tous les mots de passe qui ont été utilisés dans ces journaux.

  3. Les mots de passe peuvent être hachés mais pas salés. Vous créez donc une liste de mots de passe -> combinaisons de hachage basées sur toutes sortes de mots de passe. Vous inversez ce tableau pour qu'il devienne hachage -> mot de passe ( tableau de recherche). Obtenez la base de données, convertissez les hachages en mots de passe, obtenez beaucoup de mots de passe.

  4. Les mots de passe sont hachés et salés. Mais beaucoup d'utilisateurs utilisent des mots de passe très faibles (123456, mot de passe, letmein, qwerty ...) . Essayez des listes de mots de passe contre ces hachages. Obtenez la base de données, faites une attaque de dictionnaire sur les hachages, obtenez beaucoup de mots de passe.

  5. Variation sur le précédent, au lieu d'une liste prédéterminée de mots de passe, essayez mots de passe basés sur d'autres informations que vous avez sur l'utilisateur (nom d'utilisateur, prénom, nom, date de naissance, e -courrier...).

  6. Encore une autre variante, car de nombreux utilisateurs réutilisent le même mot de passe: essayez les mots de passe pour le même e-mail/nom d'utilisateur récupéré d'autres violations .

  7. Encore une autre variante, quand il existe une politique de mot de passe solide qui nécessite de changer régulièrement de mot de passe: si vous avez un mot de passe précédent pour l'utilisateur, essayez simplement de changer les derniers chiffres: si l'utilisateur avait le mot de passe "joe12" à un moment donné, essayez joe13, joe14, joe15 ... Si vous avez la date à laquelle le mot de passe initial était valide et connaissez l'intervalle de changement de mot de passe, cela peut être assez rapide.

  8. Les mots de passe sont hachés et salés, mais utilisez hachages faibles (rapides). Identique à # 4-7, mais vous pouvez faire beaucoup plus de tentatives beaucoup plus rapidement, vous pouvez donc essayer un dictionnaire plus grand, ou même essayer de manière assez systématique toutes les combinaisons ( attaque par force brute).

  9. Les communications entre les clients et les serveurs sont sensibles aux attaques man-in-the-middle (MITM). Les mots de passe sont capturés en cours de route.

  10. Vous effectuez l'ingénierie sociale. "Bonjour, c'est le département informatique, il y a un problème avec votre compte, nous devons réinitialiser quelque chose, pouvez-vous me donner votre mot de passe"? Vous seriez étonné de la fréquence à laquelle cela fonctionne s'il est correctement encadré.

  11. Ingénierie sociale de masse, alias phishing: envoyez une campagne d'e-mail de masse demandant de vous connecter à un site qui capturera tous ces mots de passe.

  12. Piratez le site et modifiez-le pour qu'il envoie tous les mots de passe reçus à un serveur distant (ou les enregistre dans un fichier que vous récupérerez plus tard).

  13. Idem, mais modifiez le code côté client pour le faire. Cela pourrait être aussi simple qu'un XSS stocké hack.

  14. Une variation de ce qui précède: keyloggers.

Il existe probablement plusieurs autres méthodes, mais cela vous donne une idée de la facilité avec laquelle il peut être possible de récupérer des tonnes de mots de passe.

18
jcaron

Comme nous ne discutons pas de la façon dont les mots de passe ont été volés, et plus encore des conséquences, j'éviterai les nombreux facteurs que les entreprises devraient mettre en œuvre pour aider à prévenir ces violations de données.

Si vous créez un site Web et gérez la base de données, c'est à nous de stocker ces informations efficacement. Si nous ne le faisons pas, en cas de violation de données, les attaquants peuvent afficher les mots de passe dans ce qui peut aussi bien être du texte brut, comme c'est souvent le cas (selon la façon dont ils sont stockés).

En bref, vous ne voudriez jamais que cela se produise! - Le craquage de mot de passe est une chose très courante et réelle, simplement parce que les mots de passe sont hachés ne les sécurise en aucune façon.

Supposons qu'une entreprise dispose de 1 000 mots de passe clients, tous hachés.

Disons que 600 de ces clients avaient un mot de passe de 8 caractères, la probabilité que ces mots de passe soient piratés dans les 5 premières minutes (étant généreux) est très élevée.

"5 minutes?! Mais ils ont été hachés!" ....

Oui, mais les mots de passe de ces 600 clients étaient toujours médiocres, ainsi qu'un algorithme de hachage tout aussi médiocre.

Sans entrer dans trop de détails pour simplifier l'explication; le craquage de mot de passe fonctionne en faisant simplement correspondre le hachage à un fichier de mots de dictionnaire, en parcourant chaque mot pour voir si leur hachage correspond à ceux qui ont été obtenus auprès de ces 600 clients, par exemple, votre mot de passe peut être:

Mot de passe: Sécurité

MD5 haché: 2FAE32629D4EF4FC6341F1751B405E45

Je lance ensuite quelques outils de piratage favorables contre ces hachages pour les "casser".

Si jamais vous souhaitez stocker vous-même les mots de passe, le MD5 doit être évité, ci-dessus était purement à titre d'exemple. Au lieu de cela, recherchez les types d'algorithmes de hachage les plus puissants, il est beaucoup plus difficile pour les attaquants d'utiliser avec succès les mots de passe qu'ils ont volés.

La réponse courte; le hachage ou le format dans lequel vous stockez vos mots de passe n'a aucun effet sur la capacité des pirates à les voler. Ils sont volés en raison d'une variété de vulnérabilités différentes. Il existe une multitude d'attaques permettant d'obtenir des mots de passe (hachés ou non).

6
Tipping44

Un point particulièrement important est que lorsque la base de données de mots de passe est sécurisée et uniquement accessible au service légitime, une personne essayant d'accéder à un compte ne peut les essayer individuellement que via le service légitime. Des tentatives infructueuses répétées peuvent être remarquées, une alerte automatisée est fournie et des mesures appropriées sont prises pour limiter les tentatives de connexion supplémentaires à partir de la même source.

Une fois que la base de données de mots de passe a été volée et que les détails de l'algorithme de hachage sont connus, la ou les personnes en possession de la base de données de mots de passe volés peuvent essayer des millions ou des milliards de mots de passe contre leur copie de la base de données sans provoquer d'alerte supplémentaire pour quiconque, et quand ils en ont trouvé un qui fonctionne sur leur copie hors ligne, ils tentent alors d'accéder au service légitime se faisant passer pour l'un des utilisateurs de ce service (peut-être vous!).

Une proportion importante d'utilisateurs ont des mots de passe susceptibles de faire partie du premier milliard qu'un attaquant tenterait, il ne s'agit donc que d'une question de temps relativement court avant que l'attaquant puisse accéder à une proportion importante de comptes.

Les utilisateurs qui ont vraiment des mots de passe forts devraient pouvoir ignorer en toute sécurité un compromis où seuls des mots de passe hachés ont été divulgués, mais de nombreux utilisateurs n'ont en fait pas de mots de passe suffisamment forts pour résister à ce type d'attaque hors ligne, simplement ceux qui semblent assez forts pour le vérificateur automatisé de la force des mots de passe des sites, qui est normalement plus soucieux de s'assurer que les comptes sont suffisamment solides pour résister aux attaques en ligne contre le service légitime.

1
Steve