Services sécurité WordPress

L’algorithme des mots de passe de WordPress est-il sécurisé ?

Mettez à jour l'algorithme des mots de passe pour bien protéger votre site WordPress

Lorsque WordPress est installé, un utilisateur administrateur est créé, dont les informations d’identification sont enregistrées dans la table wp-users de la base de données WordPress.

Si vous consultez la table wp-users, en utilisant la ligne de commande mysql ou phpmyadmin, vous verrez que le mot de passe en texte clair saisi pour l’utilisateur administrateur a été remplacé par une séquence, commençant par un motif de 4 caractères ($P$B), de chiffres, de lettres et de caractères aléatoires.

Sauvegarde du mot de passe de l’utilisateur dans la base de données

Sauvegarde du mot de passe de l’utilisateur dans la base de données

Au moment de l’enregistrement de l’utilisateur, le mot de passe est combiné avec une séquence aléatoire de 64 caractères appelée « sel » pour être ensuite traité par une procédure cryptographique de hachage et enfin enregistré dans la table wp-users avec le nom de l’utilisateur et d’autres données supplémentaires.

Vérification du mot de passe lors de la connexion

Lors de la procédure de connexion, le mot de passe saisi par l’utilisateur est combiné avec le sel stocké dans la base de données, puis traité par une autre procédure de hachage et le résultat est comparé avec le hachage stocké dans la base de données.
Si les séquences correspondent parfaitement, l’accès au système est accordé, sinon il est refusé.

Type de hachage

La fonction de hachage est une fonction cryptographique capable de mapper une chaîne aléatoire (séquence de caractères) en une nouvelle chaîne de longueur prédéfinie.

L’une des principales particularités de cette fonction est l’irréversibilité, c’est-à-dire l’impossibilité de retrouver la chaîne initiale à partir de la chaîne finale, contrairement au cryptage qui permet de retrouver le texte initial grâce à l’utilisation de clés cryptographiques (publiques et privées).

Pour produire des chaînes de hachage, il est nécessaire d’utiliser des algorithmes cryptographiques.
L’algorithme utilisé par WordPress, depuis les premières versions, est l’algorithme MD5 (Message Digest 5) inventé par le professeur Ronald Rivest du MIT en 1991.

Cependant, aujourd’hui, l’algorithme MD5 n’est plus considéré comme sûr, puisqu’en 2004, des chercheurs chinois ont réussi à obtenir une « collision » (lorsque des chaînes différentes produisent un hachage identique), ce qui fait que l’algorithme n’est plus totalement sûr.

Pour renforcer les vulnérabilités de l’algorithme MD5, les développeurs de WordPress ont inclus, à partir de la version 2.5 (mars 2008), un système de gestion des mots de passe (Portable PHP Password Hashing Framework, développé par Openwall) qui utilise l’algorithme MD5, combiné toutefois avec un sel de 64 caractères et un plus grand nombre d’itérations ou de rondes (8 192) lors du processus de hachage.

Analyse de la structure de hachage

A titre d’exemple, prenons le hash suivant :

$P$BXox1.zpleKOuW4jFS6/Fmg4iaiK.B/

Les 2 premiers caractères ($P) représentent le type d’algorithme de hachage utilisé (dans le cas de WordPress, il s’agit de MD5)

Les 3e et 4e caractères ($B) représentent le nombre d’itérations effectuées (dans le cas de WordPress, ils sont 8 192).

Ensuite, il y a une séquence de 30 caractères, dont les 8 premiers (BXox1.zp) représentent un sel aléatoire et enfin les 22 derniers caractères représentent le hachage (leKOuW4jFS6/Fmg4iaiK.B/).

Comment améliorer la sécurité des mots de passe

Aujourd’hui, parmi les algorithmes les plus sûrs, il en existe deux : bcrypt (dérivé de Blowfish, utilisé par défaut dans les systèmes BSD de type Unix), et Argon2 considéré comme plus sûr que bcrypt.

Dans le répertorire des extensions de WordPress, il existe quelques extensions qui permettent d’utiliser des algorithmes plus sécurisés tels que bcrypt (étiquette : bcrypt)

La seule extensions répertoriée comme ayant été testée avec la dernière version (5.2.3 au moment de la rédaction) est l’extension Password Evolved (développeur : Carl Alexander).

Pour en savoir plus

1) Lisez mon article : « Comment créer des mots de passe anti-piratage »

2) « Evaluation of password hashing schemes in open source web platforms »

Départment des Systèmes Numériques, Université du Pirée, Grèce
23 Juillet 2018

 

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur email
Roberto Jobet
Roberto Jobet

Je suis un ingénieur systèmes Linux, expert en infosécurité spécialisé dans la sécurité WordPress. J'offre des services professionnels de sécurité pour protéger la confidentialité, l'intégrité et la disponibilité de sites WordPress.

Tous les articles

D'autres articles qui pourraient vous intéresser !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.