La réponse courte
La réponse courte est: "Vous ne serez donc pas frappé par un recours collectif de 5 millions de dollars." Cela devrait être une raison suffisante pour la plupart des PDG. Le hachage des mots de passe est beaucoup moins cher.
Mais plus important encore: il ne suffit pas de hacher simplement les mots de passe comme vous l'avez suggéré dans votre question. Vous aurez toujours le procès. Vous devez en faire plus.
Pourquoi vous devez faire plus prend un peu plus de temps à expliquer. Prenons donc le long chemin pendant un moment pour que vous compreniez ce que vous expliquez, puis nous tournerons autour de votre synopsis de 5 minutes.
Le hachage n'est que le début
Mais commençons par ça. Supposons que vous stockiez les mots de passe de vos utilisateurs comme ceci:
# id: user: password1: alice: pizza2: bob: passw0rd3: carol: baseball
Maintenant , disons qu'un attaquant parvient à obtenir plus d'accès à votre système que vous ne le souhaiteriez. Il n'est là que pendant 35 secondes avant que vous détectiez le problème et que vous fermiez le trou. Mais au cours de ces 35 secondes, il a réussi à récupérer votre base de données de mots de passe. Oui, vous avez commis une erreur de sécurité, mais vous l'avez corrigée maintenant. Vous avez corrigé le trou, corrigé le code, mis à jour votre pare-feu, quel qu'il soit. Alors tout va bien, maintenant, non?
Eh bien, non, il a votre base de données de mots de passe.
Cela signifie qu'il peut désormais usurper l'identité de chaque utilisateur de votre système. La sécurité de votre système est détruite. La seule façon de récupérer est de recommencer avec une NOUVELLE base de données de mots de passe, obligeant chacun à changer son mot de passe sans utiliser son mot de passe existant comme une forme d'identification valide. Vous devez les contacter hors bande via une autre méthode (téléphone, e-mail ou autre) pour vérifier leur identité afin de recréer leurs mots de passe, et en attendant, toute votre opération est morte dans l'eau.
Et si vous ne le voyiez pas voler la base de données de mots de passe? Rétrospectivement, il est peu probable que vous le voyiez réellement se produire. La façon dont vous le découvrirez probablement est de remarquer une activité inhabituelle sur les comptes de plusieurs utilisateurs. Peut-être que pendant des mois, c'est comme si votre système n'avait aucune sécurité et que vous ne compreniez pas pourquoi. Cela pourrait ruiner votre entreprise.
Nous avons donc haché
Au lieu de stocker le mot de passe, nous stockons un hachage du mot de passe. Votre base de données ressemble maintenant à ceci:
# id: user: sha11: alice: 1f6ccd2be75f1cc94a22a773eea8f8aeb5c682172: bob: 7c6a61c68ef8b9b6b061b28c348bc1ed7921cb533f1cc98bc1ed7921cb533: carol9d8a2c8a2c2c: car1c8a2c2c2c2c2c2c: que vous stockez est un jeton opaque qui peut être utilisé pour vérifier si un mot de passe est correct, mais ne peut pas être utilisé pour récupérer le mot de passe correct. Eh bien, presque. Google ces hachages, je vous défie.
Nous sommes donc passés à la technologie des années 1970. Toutes nos félicitations. Nous pouvons faire mieux.
Donc nous salons
J'ai passé un long moment à répondre à la question de savoir pourquoi saler les hachages, y compris des exemples et des démonstrations de la façon dont cela fonctionne dans le monde réel. Je ne reprendrai pas la discussion sur le hachage ici, alors allez-y et lisez l'original:
Pourquoi les hachages salés sont-ils plus sécurisés?
Assez amusant , hein? OK, maintenant nous savons que nous devons saler nos hachages ou nous pourrions aussi bien ne jamais avoir haché les mots de passe pour commencer. Nous en sommes maintenant à la technologie des années 1990. Nous pouvons encore faire mieux.
Nous répétons donc
Vous avez remarqué ce bit au bas de la réponse que j'ai liée ci-dessus, n'est-ce pas? Le peu sur bcrypt et PBKDF2? Ouais, il s'avère que c'est vraiment important. Avec la vitesse à laquelle le matériel peut effectuer des calculs de hachage aujourd'hui ( merci, bitcoin!), un attaquant doté d'un matériel standard peut détruire tout votre fichier de mots de passe hachés et salés en quelques heures. , calculant des milliards, voire des billions de hachages par seconde. Vous devez les ralentir.
Le moyen le plus simple de les ralentir est de simplement leur faire travailler plus. Au lieu de calculer un hachage pour vérifier un mot de passe, vous devez calculer 1000. Ou 100 000. Ou quel que soit le nombre qui vous convient. Vous pouvez également utiliser scrypt ("ess-crypt"), qui nécessite non seulement beaucoup de puissance CPU, mais aussi beaucoup de RAM pour faire le calcul, rendant le matériel dédié que j'ai lié ci-dessus largement inutile .
Il s'agit de l'état actuel de la technique. Félicitations et bienvenue dans la technologie d'aujourd'hui .
Avons-nous terminé?
Que se passe-t-il maintenant lorsque l'attaquant saisit votre fichier de mot de passe? Eh bien, maintenant, il peut le battre hors ligne au lieu de faire des tentatives de supposition en ligne contre votre service. Malheureusement, une bonne partie de vos utilisateurs (4% à 12%) aura utilisé le mot de passe «123456» ou «mot de passe» à moins que vous ne les empêchiez activement de le faire, et l'attaquant tentera de les deviner en premier.
Si vous voulez assurer la sécurité des utilisateurs, ne les laissez pas utiliser "mot de passe" comme mot de passe. Ou l'un des autres top 500, d'ailleurs. Il existe un logiciel pour rendre le calcul précis de la force des mots de passe facile (et gratuit).
Mais aussi, l'authentification multifacteur n'est jamais un mauvais appel. Il est facile d’ajouter à n’importe quel projet. Donc vous pourriez aussi bien.
Maintenant, vos 5 minutes de gloire
Vous êtes devant votre patron, il vous demande pourquoi vous devez utiliser PBKDF2 ou similaire pour hacher vos mots de passe. Vous évoquez le recours collectif de LinkedIn et dites: "C'est le niveau minimum de sécurité légalement attendu dans l'industrie. Rien de moins est littéralement de la négligence." Cela devrait prendre beaucoup moins de 5 minutes, et si votre patron n'est pas convaincu, c'est qu'il n'écoutait pas.
Mais vous pourriez continuer: "Le coût de la mise en œuvre de la technologie de hachage est négligeable, alors que le coût de ne pas la mettre en œuvre pourrait être de plusieurs millions ou plus." et "En cas de violation, une base de données correctement hachée vous permet de vous positionner comme une organisation bien gérée et soucieuse de la sécurité, tandis qu'une base de données mal hachée est un embarras très public qui, comme l'histoire l'a montré à maintes reprises, va ne pas être ignoré ou négligé le moins du monde par les médias. "
Si vous voulez être technique, vous pouvez hacher à nouveau ce qui précède. Mais si vous parlez à votre patron, vous devriez savoir mieux que cela. Et les analogies sont beaucoup moins efficaces que de simplement montrer les effets réels qui sont parfaitement visibles sans revêtement de sucre nécessaire.
Vous n'amenez pas les gens à porter des gants de sécurité en racontant une bonne analogie . Au lieu de cela, vous mettez de la viande de déjeuner dans le bécher et quand il explose dans des flammes vertes et bleues, vous dites: "C'est ce qui va arriver à votre doigt."
Utilisez le même principe ici.