Le mot de passe constitue la technologie d’authentification utilisateur la plus courante, mais c’est également la moins sécurisée. Voici quelques éléments à considérer pour rendre votre organisation moins vulnérable tout en continuant d’avoir recours à une authentification fondée sur le mot de passe.
Les approches de gestion des mots de passe sont toutes similaires : votre mot de passe est stocké dans une base de données de votre ordinateur et lorsque vous le tapez pour ouvrir une session, les deux valeurs sont comparées. Depuis environ 35 ans, l’usage veut que les mots de passe soient stockés sous forme d’un algorithme de hachage, qui consiste en une opération de chiffrement irréversible visant à convertir les mots de passe en jargon binaire. Lors de la saisie initiale du mot de passe, l’ordinateur procède à la fonction de hachage et stocke la valeur chiffrée. Puis, lorsque vous ouvrez une session sur l’ordinateur, celui-ci procède au hachage du mot de passe que vous entrez et le compare avec la valeur stockée dans la base de données. Si les deux valeurs chiffrées sont identiques, c’est que les deux mots de passe le sont aussi.
Pourquoi les mots de passe ne sont-ils pas plus sécuritaires malgré ce processus? Pour simplifier à l’extrême, les amateurs de jeux vidéo sont en cause. La popularité et la rentabilité des jeux en trois dimensions se sont traduites par deux décennies d’efforts soutenus afin de développer des cartes graphiques à ultra-hautes résolution et fidélité. L’ère des graphiques de qualité cinématographique affichés à une fréquence d’image élevée est à nos portes. Chaque carte graphique est munie d’un processeur graphique (GPU) composé de 3 000 petites unités centrales de traitement (CPU), ce qui en fait un ordinateur en soi. Ces unités centrales ne sont douées qu’en arithmétique, mais c’est exactement ce dont on a besoin pour décoder des valeurs chiffrées. Les pirates qui s’attaquent aux mots de passe ont appris à utiliser des processeurs graphiques à 500 $ pour décoder des valeurs chiffrées à une vitesse fulgurante. Cette pratique leur permet d’essayer des milliards, voire des centaines de milliards de possibilités de mots de passe par seconde. Dans l’éventualité où un pirate réussit à accéder à votre base de données de mots de passe chiffrés, celui-ci peut tenter une « attaque en force » afin de reconvertir vos mots de passe en texte brut simplement en testant toute combinaison possible de lettres, de chiffres et autres symboles, jusqu’à ce qu’il trouve les combinaisons qui correspondent.
Il existe une solution en deux volets pour vous aider à vous protéger contre ces pirates. Le premier volet consiste à renforcer votre stratégie de hachage de mots de passe, et le second à accroître la longueur et la complexité des mots de passe en tant que tels.
Renforcement de la procédure de hachage
L’objectif est de rendre les algorithmes si compliqués à décoder que même des milliards de tentatives par seconde ne suffisent pas à les déchiffrer. Voici trois mesures à prendre pour renforcer vos algorithmes.
- Accroître la longueur de la valeur chiffrée. Utilisez l’algorithme SHA-256 lors du hachage, ou, encore mieux, l’algorithme SHA-512, ou encore – et c’est la solution idéale –, un algorithme spécialement conçu pour le hachage de mots de passe, comme SHA512crypt ou bcrypt.
- Ajouter un « grain de sel » à chaque mot de passe utilisateur. Le « sel » constitue du texte généré de façon aléatoire que l’on ajoute aux mots de passe utilisateur. Cette pratique, communément appelée « salage », fait en sorte que lorsque deux utilisateurs choisissent le même mot de passe, les valeurs chiffrées sont différentes malgré tout.
- Exécuter la fonction de hachage plusieurs fois. Cette méthode consiste à exécuter la fonction de hachage, puis à l’exécuter de nouveau sur l’algorithme produit, et à l’exécuter de nouveau, et ainsi de suite. Le processus en sera tellement ralenti que le pirate devra redoubler d’efforts et de temps pour arriver à décoder la valeur finale.
Allongement des mots de passe
Des mots de passe plus longs et plus complexes augmentent le nombre de tentatives nécessaires avant qu’un pirate ne trouve la bonne combinaison. Cependant, le problème avec les mots de passe très complexes est que les utilisateurs les détestent. Pour surmonter cet obstacle, vous pouvez installer une application de gestion des mots de passe sur l’ordinateur de l’utilisateur. Cette solution présente un autre avantage : elle oblige le pirate à contourner la protection sur chaque ordinateur plutôt que d’arriver à décoder les 10 000 mots de passe utilisateur sur votre serveur en une seule attaque. Si 10 000 utilisateurs sont connectés à votre réseau, le pirate devra pénétrer les 10 000 téléphones et ordinateurs y étant reliés – une tâche beaucoup plus difficile que celle de compromettre un seul serveur.
La mise en œuvre d’une authentification robuste est un enjeu de plus en plus important pour les entreprises, particulièrement en raison des utilisateurs mobiles. Bien qu’il soit pratiquement impossible de mettre en place des processus de sécurité d’authentification parfaits, le soin apporté lors du développement d’un schéma d’authentification peut contribuer à réduire les risques à un niveau acceptable. Pour en apprendre davantage à ce sujet, consultez mon précédent billet de blogue sur l’authentification robuste pour les appareils mobiles.