Renforcement de la sécurité des mots de passe dans MySQL Server 8.0

Renforcement de la sécurité des mots de passe dans MySQL Server 8.0Depuis plusieurs versions, MySQL propose un module de renforcement de la sécurité des mots de passe. L’exécution du script de post-installation mysql_secure_installation est censé pouvoir le configurer. J’ai pu constater hier sur deux machines que ce n’était pas toujours le cas. Pour quelle raison ? Mystère et boule de gomme !

Emplacement des modules et des plugins

Vous pouvez connaître l’emplacement des modules/composants/plugins de votre installation MySQL par la commande :

SHOW GLOBAL VARIABLES LIKE 'plugin_dir';

Par défaut, sous Linux, les plugins et les composants sont stockés dans /usr/lib/mysql/plugin.

Désactiver le module validate_password

Cela se fait très simplement à l’aide de l’instruction suivante que vous devez saisir après vous être connecté à votre instance MySQL :

UNINSTALL COMPONENT 'file://component_validate_password';

Activer le module validate_password

Pour réactiver le module de renforcement de la sécurité de vos mots de passe, tapez à partir de l’interpréteur MySQL :

INSTALL COMPONENT 'file://component_validate_password';

Configurer le niveau de renforcement des mots de passe

Pour visualiser les options du module, tapez à partir de votre interpréteur MySQL ou d’un GUI :

SHOW GLOBAL VARIABLES LIKE 'validate_password.%';

Vous pouvez empêcher l’utilisateur d’utiliser son login comme mot de passe (validate_password.check_user_name -> ON). Vous pouvez fixer la longueur minimale du mot de passe (validate_password.length -> 8). Vous pouvez aussi forcer à mélanger minuscules et majuscules (validate_password.mixed_case_count -> 1). Vous pouvez encore déterminer le nombre de chiffres à utiliser dans le mot de passe (validate_password.number_count -> 1). Vous pouvez fixer le nombre de caractères spéciaux (validate_password.special_char_count -> 1) ainsi que le niveau de complexité des mots de passe (validate_password.policy -> LOW, MEDIUM, STRONG). Le mode STRONG permet de définir un fichier au niveau de la variable validate_password.dictionary_file, dans laquelle vous indiquez une blacklist de mots à ne pas employer pour définir le mot de passe des utilisateurs. Par défaut, ce fichier doit être stocké dans /var/lib/mysql. Le propriétaire de ce fichier doit être l’utilisateur mysql.

L’exemple ci-dessous équivaut, de fait, à désactiver le niveau de complexité des mots de passe.

SET PERSIST validate_password.check_user_name=OFF;
SET PERSIST validate_password.length=0;
SET PERSIST validate_password.mixed_case_count=0;
SET PERSIST validate_password.number_count=0;
SET PERSIST validate_password.special_char_count=0;
SET PERSIST validate_password.policy=LOW;
SET PERSIST validate_password.dictionary_file=;

Pour rappel, l’instruction SET PERSIST – dans MySQL Server 8 et supérieur – ajoute les variables dans le fichier /var/lib/mysql/mysql-auto.cnf.

Source : The Password Validation Component

 

MySQL / ,