PrivacyTools.io

Hachage et authentification : comment vos mots de passe sont-ils stockés sur les sites web ?

Hachage et authentification : comment vos mots de passe sont-ils stockés sur les sites web ?

Il est important, quand on apprend le chiffrement et qu’on l’utilise avec des mots de passe forts, de regarder aussi comment ces mots de passe sont stockés sur le serveur du site web. Le problème, c’est qu’une fois que vous envoyez quelque chose à un serveur, cela vous échappe à moins que vous n’exploitiez le serveur vous-même. Il est donc important que les propriétaires de serveurs stockent le moins d’informations possible sur le serveur, sauf si elles sont dans un format illisible et chiffré.

Les injections SQL et les compromissions de bases de données peuvent exposer n’importe quoi en texte clair, et ce sont des événements étonnamment très courants. Le hachage ressemble au chiffrement, mais il entre en jeu au moment de stocker un mot de passe de façon sûre. Quand vous vous inscrivez sur beaucoup de sites web, ils prennent votre mot de passe et le stockent sur le serveur, de sorte qu’à chaque connexion il compare simplement les deux mots de passe et, s’ils sont identiques, il vous connecte. Cependant, c’est incroyablement peu sûr, même avec SSL en place.

Les bons sites web et serveurs (ce qui devrait être la majorité d’entre eux aujourd’hui) hachent vos mots de passe avant de les envoyer au serveur, ce qui revient en gros à les stocker de façon brouillée. Cela se fait couramment via ce que l’on appelle des “algorithmes de hachage” comme SHA256 ou SHA512. En passant, ce sont deux algorithmes de hachage courants qui sont souvent accompagnés de PBKDF2 (utilisé pour l’étirement de clé https://www.schneier.com/cryptography/paperfiles/paper-low-entropy.pdf afin de contrer les tentatives de force brute). Ensuite, la fois suivante où vous vous connectez au site, votre navigateur convertit le mot de passe en cette même chaîne de caractères aléatoires et la compare à la chaîne de caractères aléatoires qu’il a stockée sur le serveur. Si les deux correspondent, vous êtes authentifié et autorisé à entrer dans votre compte.

En entrant un peu plus dans le détail de l’étirement de clé et de PBKDF2, il existe un terme apparenté connu sous le nom d’itérations de mot de passe ou nombre d’itérations, qui définit la puissance de calcul à dépenser entre deux tentatives de mot de passe. Plus le nombre de tours utilisés est élevé, plus votre compte, votre chiffrement ou votre mot de passe sera sûr. Les entreprises peuvent aussi ajouter un sel au hachage, qui ajoute une chaîne de caractères aléatoires à la fin et contre activement les attaques par dictionnaire (https://en.wikipedia.org/wiki/Salt_%28cryptography%29). À titre de référence, voici les nombres d’itérations par défaut de 4 services et applications courants :

  • LastPass : 5 000 (côté client) + 100 000 de plus (côté serveur)
  • TrueCrypt : 1000
  • VeraCrypt : 500 000
  • FileVault2 : 41 000