Axys : amélioration du chiffrement des mots de passe
Illustration : locked CC BY-NC-ND Karol Franks
Depuis sa création en 2009 pour les besoins des sites Biblys, le service d'authentification Axys utilise, pour encrypter les mots de passe des utilisateurs, la fonction de hachage MD5, considérée aujourd'hui comme peu fiable.
En mai 2015, a commencé le ré-encryptage systématique des mots de passe avec un algorithme plus récent et plus sûr. Il n'est pas possible d'opérer ce processus sans connaître le mot de passe de l'utilisateur, qui n'est pas stocké en clair dans la base données pour des raisons de sécurité. Le ré-encryptage ne peut donc se faire qu'au moment de la connexion, lorsque l'utilisateur entre son mot de passe.
Cela signifie que seuls les utilisateurs qui se sont connectés au moins une fois à leur compte Axys depuis mai 2015 ont vu leur mot de passe ré-encrypté. Fin mars, cela représente environ 8850 comptes Axys sur un total de 18000.
Le 1er mai 2016, les mots de passe utilisant l'ancien méthode d'encryptage seront supprimés définitivement. Les utilisateurs dont le mot de passe n'aura pas été ré-encrypté pourront toujours utiliser leur compte Axys, mais ils devront pour cela demander la réinitialisation de leur mot de passe par courriel.
La prochaine étape consistera à forcer toutes les connexions à Axys à utiliser le protocole sécurisé SSL. En attendant, vous pouvez déjà accéder à Axys en utilisant HTTPS à l'adresse <https://secure.axys.me/>.
Pourquoi les mots de passe sont-ils encryptés dans la base de données ?
Si une base de données venait à être piratée, toutes les informations qu'elle contient seraient accessibles au pirate. Pour cette raison, on ne les sauvegarde jamais en clair les mots de passe dans une base de donnés : on les protège grâce à une fonction de hachage cryptographique. Par exemple, le mot de passe "correcthorsebatterystaple", une fois "haché", devient : e9f5bd2bae1c70770ff8c6e6cf2d7b76.
L'une des propriétés du hachage cryptographique est qu'il est impossible de faire la traduction en sens inverse et d'obtenir le mot de passe en clair à partir de son hachage. Comment alors s'assurer que l'utilisateur entre le bon mot de passe au moment de la connexion ? Tout simplement en appliquant la fonction de hachage au mot de passe entré dans le formulaire de connexion, en en comparant le résultat au hachage sauvegardé dans la base de données.
En cas de piratage, le pirate n'obtiendra que des hachages dont il ne peut (en théorie) rien faire.
Pourquoi la fonction de hachage MD5 est-elle considérée comme peu fiable ?
Bien qu'il soit toujours impossible d'obtenir un mot de passe à partir d'un hachage MD5, rien n'empêche un pirate qui aurait obtenu un hachage d'essayer de hacher toutes les chaînes de caractères possibles pour constituer un dictionnaire, jusqu'à obtenir le hachage correspondant. MD5 étant un algorithme relativement peu coûteux en terme de puissance de calcul, cette opération est envisageable.
Des fonctions de hachage plus récentes et plus couteuses rendent cette opération beaucoup plus difficile, quoique l'évolution de la puissance de calcul des processeurs (et notamment l'utilisation de puces graphiques) oblige à les améliorer sans cesse. Pour mieux protéger les mots de passe, on peut ajouter une chaîne de caractère unique et aléatoire appelée "salt" (grain de sel) au mot de passe avant son encryptage ce qui limite la possibilité de créer des dictionnaires. On peut également augmenter le coup algorithmique de l'encryptage en appliquant plusieurs fois la fonction de hachage cryptographique sur le mot de passe puis sur le hachage produit, et ainsi de suite.
Image : Encrypted stories CC BY Joel Penner
Pourquoi ne pas ré-encrypter automatiquement tous les mots de passe ?
Parce qu'encrypter un mot de passe nécessite de connaître le mot de passe en clair, qui n'est pas stocké dans la base de donnée, il n'est pas possible de ré-encrypter automatiquement tous les mots de passe. Ce processus ne peut se faire qu'au seul moment où Axys a brièvement connaissance de votre mot de passe en clair : à la connexion, lorsque vous le tapez dans le formulaire.
Comment m'assurer que mon mot de passe à bien été ré-encrypté ?
Déconnectez-vous puis reconnectez-vous à votre compte Axys. Si vous avez fait cette manipulation au moins une fois entre mai 2015 et aujourdh'ui, votre mot de passe à déjà été ré-encrypté à l'aide de la nouvelle fonction de hachage.
Mon mot de passe a-t-il été compromis ?
Rien ne permet de penser que la base contenant votre mot de passe encrypté à été compromis. Mais si cela devait se produire à l'avenir, votre mot de passe serait mieux ainsi mieux protégé.
Dois-je changer mon mot de passe ?
Vous pouvez garder votre mot de passe actuel. Toutefois, c'est l'occasion d'en choisir un nouveau ! Il est en effet conseillé de changer votre mot de passe régulièrement, en particulier si vous utilisez le même pour plusieurs services. Personnellement, j'en change une fois par an.
Comment choisir un bon mot de passe ?
On dit parfois qu'un bon mot de passe combine des caractères majuscules, minuscules, des chiffres et des symboles. En réalité, la longueur est le meilleur moyen de protéger votre mot d critère permettant de juger de la difficulté à "cracker" un mot de passe (c'est à dire obtenir le mot de passe en clair à partir de son hachage, à l'aide d'une attaque par dictionnaire).
Par exemple, à raison de 1000 essais par seconde, un mot de passe comme Pa$sw0rd pourra être forcé en 3 jours tandis pour "unmotdepassepluslong", il faudra 157 milliards d'années, soit plus de 10 fois l'âge de l'univers ! Choisissez donc de préférence une phrase, facile à retenir, et introduisez idéalement une variante de manière à disposer d'un mot de passe différent pour chaque service auquel vous êtes inscrit.