Renforcer la sécurité du mot de passe de Dotclear

Depuis quelques années Dotclear utilise la méthode sha1 par défaut pour hasher les mots de passe. Depuis la 2.10 de Dotclear il est possible de définir un autre algorithme de hashage, parmi ceux disponibles en fonction de la version de PHP installée, pour peu que la longueur du hashage du mot de passe soit d’une longueur supérieure ou égale à 40 caractères.

J’en avais un peu parlé ici-même avant de l’implémenter dans Clearbricks et Dotclear.

Il se trouve que Google vient de publier un article qui annonce qu’ils ont découvert une collision avec le hashage sha1, ou dit autrement ils ont réussi à trouver deux documents PDF, dont le contenu diffère, et qui une fois hashés donnent le même résultat, ce qu’on appelle la collision. Or obtenir un même résultat à partir de deux contenus différents est pour le moins ennuyeux, ça voudrait dire que deux mots de passe différents seraient susceptible d’être enregistrés sous la même forme dans la base de données et les deux permettraient indifféremment la connexion au compte associé !

Bref pas glop.

Je pense qu’il est donc sage, de prévoir dès maintenant, de « renforcer » la sécurité côté mot de passe en sélectionnant un autre algorithme et tant qu’à faire autant en prendre un qui soit le plus long possible parmi ceux proposés par PHP : sha512 (il est disponible dans la version 5.3 et suivantes de PHP).

Pour faire ça, il suffit d’ajouter ce réglage dans le fichier inc/config.php :

// Cryptographic algorithm (default = sha1)
define('DC_CRYPT_ALGO','sha512');

Mais attention ! Modifier cet algorithme rend caduque les mots de passe enregistrés dans la base de données pour les utilisateurs enregistrés.

Il va falloir, une fois cette modification effectuée, se déconnecter (si ce n’était pas déjà fait), puis passer par l’option « J’ai oublié mon mot de passe » accessible sur l’écran de connexion en cliquant une première fois sur « Problème de connexion ? ».

Il vous faudra fournir votre identifiant et l’adresse email associée (celle utilisée à la création du compte, ou celle modifiée ensuite dans vos préférences utilisateur) et attendre de recevoir un premier mail qui vous fournira une adresse temporaire qu’il faut visiter[1] pour recevoir un deuxième mail contenant le nouveau mot de passe.

Ce nouveau mot de passe vous permettra alors de vous connecter à l’administration de Dotclear et d’aller dans la foulée modifier ce mot de passe par un de votre choix.

À noter que la prochaine version 2.12 de Dotclear positionnera l’algorithme à sha512 (ça sera valable pour les nouvelles installations).


Je récapitule la procédure :

  1. Déconnexion
  2. Ajout (ou modification) dans inc/config.php pour définir l’algorithme define('DC_CRYPT_ALGO','sha512');
  3. Déplier Problème de connexion ?
  4. Cliquer sur J’ai oublié mon mot de passe, fournir les infos (login et email), attendre le 1er mail
  5. Cliquer sur le lien fourni dans le mail et attendre le 2e mail
  6. Utiliser le mot de passe fourni dans le 2e mail pour se connecter puis changer son mot de passe dans « Mes préférences ».

À faire pour chaque utilisateur de l’installation (quel que soit le nombre de blogs auxquels il a accès).

PS : C’est une première étape pour le renforcement de la sécurité des mots de passe car j’ai prévu d’utiliser des fonctions un peu plus robustes dès qu’on imposera la version PHP 5.5 ou supérieure pour faire tourner Dotclear ; voir le ticket 2182 à ce sujet.

Note

[1] Cette étape permet de « valider » l’adresse email fournie.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/13224

Haut de page