Si vous comparez des gestionnaires de mots de passe ou recherchez la sécurité des mots de passe, vous tomberez rapidement sur des termes comme le hachage et le salage. Bien que ces termes semblent des étapes préparatoires de pommes de terre pour le petit-déjeuner, ce sont en réalité des processus essentiels pour sécuriser tout compte en ligne.
Cet article explique ce que signifie le hachage et le salage des mots de passe, comment ils fonctionnent et pourquoi ils sont nécessaires.
Comment nous sécurisons les mots de passe chez Proton
Hachage des mots de passe
Le hachage est une façon de brouiller l’information en une chaîne fixe de lettres et de chiffres. Vous pouvez prendre des informations non chiffrées, qu’il s’agisse d’un mot de passe, d’une image ou d’un livre entier, et les introduire dans une fonction de hachage, qui transforme ces informations en une valeur hachée d’un nombre spécifique de caractères. Par exemple, SHA-256, l’une des fonctions de hachage les plus courantes, crée toujours des valeurs hachées de 256 bits (32 octets).
Créez vos propres valeurs hachées(nouvelle fenêtre)
En plus de créer un produit à longueur fixe, il y a deux autres éléments qui distinguent le hachage du chiffrement standard. Le hachage est :
- Irréversible — Vous ne pouvez pas « dé-hacher » (ou régénérer l’information d’origine) une valeur hachée peu importe ce que vous faites.
- Déterministe — Si vous entrez les mêmes informations d’entrée dans une fonction de hachage, elle renverra la même valeur hachée chaque fois.
- Imprévisible — Il devrait être presque impossible de deviner sa valeur hachée résultante pour des informations d’entrée données. En fait, si vous pouvez prendre une valeur hachée et facilement deviner ou créer l’entrée qui générerait cette valeur hachée, alors cette fonction de hachage devrait être considérée comme vulnérable et à éviter.
Ces trois caractéristiques font du hachage un bon moyen de stocker et de vérifier les mots de passe de manière sécurisée.
Hachage, stockage de mots de passe et authentification
Lorsque vous créez un nouveau compte en ligne, vous fournissez invariablement un nom d’utilisateur (généralement votre adresse e-mail) et créez un mot de passe. Cela permet au service de connaître votre identité et de vérifier que c’est vraiment vous.
Mais le mot de passe pose un problème compliqué pour les prestataires de services. Ils ont essentiellement trois options. Ils peuvent stocker votre mot de passe en texte clair, de manière chiffrée ou hachée.
Il ne faut pas être un expert en cybersécurité pour voir les problèmes liés au stockage de mots de passe en clair. Cela permettrait au service d’accéder à votre compte à tout moment, et votre mot de passe serait exposé en cas de violation.
Le chiffrement ne fonctionne pas non plus. Si un service chiffre un mot de passe en utilisant des clés qu’il contrôle, il peut toujours accéder à votre mot de passe à tout moment (et potentiellement l’exposer en cas de violation). Et il ne peut pas chiffrer votre mot de passe en utilisant une clé qu’il ne controle pas (une clé de votre appareil, par exemple) car cela ne lui permet pas de vérifier la validité de votre mot de passe lors de votre connexion.
Le hachage constitue un bon compromis. Parce que le hachage est irréversible, les services peuvent stocker votre mot de passe et garantir à leurs utilisateurs qu’ils ne peuvent pas accéder à leurs comptes et que leurs mots de passe seront en sécurité en cas de violation.
Et parce que le hachage est déterministe, un service peut vérifier un mot de passe en comparant les deux valeurs hachées. Si les valeurs hachées correspondent, le service sait que les informations d’entrée (les mots de passe) correspondent, même si le service ne sait pas quel est le mot de passe réel.
C’est un système ingénieux, mais le hachage a un problème de prévisibilité. Si vous supposez que l’un des mots de passe les plus courants pour tout service sera « password ». Avec cette information, vous pouvez probablement trouver les comptes qui utilisent « mot de passe » simplement en observant les valeurs hachées les plus répétées.
En fait, il existe une cyberattaque dédiée à craquer les hachages à l’aide de ce qu’on appelle des tables de pluie, qui compilent les hachages et tentent de comprendre les règles qui les gouvernent dans de grandes tables. Elles sont efficaces précisément parce que les hachages sont prévisibles.
Salage des mots de passe
Pour minimiser la prévisibilité d’une fonction de hachage, les programmeurs utilisent le salage. Le salage est une technique qui prend la fonction de hachage prévisible et ajoute un peu de ‘saveur’ supplémentaire — d’où le terme ‘sel’ — sous forme d’imprévisibilité. Un sel est un court ensemble de caractères aléatoires ajoutés à chaque mot de passe avant qu’il soit haché.
Ce qui rend un sel spécial, c’est que chacun est unique pour chaque utilisateur. Si vous créez un mot de passe avec un service, il se voit attribuer un sel que personne d’autre n’a. Si vous changez votre mot de passe, certains services utiliseront un nouveau sel qui l’accompagne. Cela garantit essentiellement qu’aucun mot de passe (et donc, aucune valeur hachée) n’est jamais répété tant qu’une nouvelle valeur de sel aléatoire est utilisée pour chaque nouveau mot de passe.
Cela rend la tâche de tout potentiel attaquant beaucoup plus difficile. Leurs tables de pluie sont inutiles puisque le salage rend les valeurs hachées imprévisibles. Tout ce qui reste à faire est de s’assurer que votre mot de passe soit suffisamment aléatoire pour décourager toute attaque par dictionnaire.
Comment nous sécurisons les mots de passe chez Proton
Chez Proton, nous plaçons la vie privée et la sécurité de nos utilisateurs en premier. Nous n’envoyons jamais votre mot de passe à nos serveurs, nous nous appuyons plutôt sur le protocole de mot de passe sécurisé à distance (SRP). Le SRP permet à un utilisateur de s’authentifier auprès d’un serveur (et vice versa) en prouvant qu’il connaît le mot de passe sans partager le mot de passe lui-même ou toute information qu’un attaquant pourrait utiliser pour en déduire le mot de passe (comme une somme de hachage, par exemple). Votre mot de passe reste sécurisé sur votre appareil.
En savoir plus sur la façon dont Proton utilise le SRP
Nous utilisons bien le hachage et le salage, mais pour vos clés de compte. Une fois que vous êtes connecté avec succès, Proton envoie vos clés de compte à votre client. Votre client salera et hachera votre mot de passe en utilisant bcrypt et utilisera la valeur de hachage résultante comme clé pour déchiffrer votre clé de compte. Une fois votre clé de compte déchiffrée, elle peut ensuite être utilisée pour accéder à vos e-mails, calendriers, etc. Ce processus se déroule localement sur votre appareil afin que votre mot de passe et votre hachage ne le quittent jamais.
Vous pouvez étendre ce niveau de protection à vos autres comptes également avec Proton Pass, notre gestionnaire de mots de passe chiffré de bout en bout.
Comme vous pouvez le lire dans notre analyse complète du modèle de sécurité de Proton Pass, nous chiffrons de bout en bout vos mots de passe individuellement ainsi que les coffres-forts où vous les stockez, empêchant quiconque, y compris nous, de pouvoir voir vos éléments à tout moment du processus de transfert.
Nous pouvons offrir ce type de sécurité améliorée car nous sommes entièrement financés par vous, nos utilisateurs. Sans actionnaires ni investisseurs en capital-risque à préoccupations, nous pouvons nous concentrer sur le développement d’outils qui offrent le meilleur en matière de sécurité et d’utilisabilité sans réduire les coûts ou rogner.
Le résultat est un service qui vous place en premier, qu’il s’agisse d’avoir la meilleure technologie de chiffrement ou d’offrir une interface de meilleure classe. Si cela ressemble à quelque chose que vous aimeriez essayer par vous-même, rejoignez Proton Pass aujourd’hui.