Salage de mot de passe : Différence entre versions

Attention : vous consultez actuellement la documentation dédiée aux versions 1.x de Moodle. La documentation pour les versions 2.x de Moodle est consultable ici : Salage de mot de passe et celle pour Moodle 3.x est consultable là : Salage de mot de passe.

(Activer le salage de mot de passe)
(Changing the salt)
Ligne 16 : Ligne 16 :
 
''Remarque'' : pour des raisons de sécurité, la seule façon d'activer le salage de mot de passe est la modification du fichier config.php. Il n'y a intentionnellement aucun moyen de le faire à travers l'interface web de Moodle.
 
''Remarque'' : pour des raisons de sécurité, la seule façon d'activer le salage de mot de passe est la modification du fichier config.php. Il n'y a intentionnellement aucun moyen de le faire à travers l'interface web de Moodle.
  
==Changing the salt==
+
==Modifier le sel==
  
If for any reason you wish to change the salt, the old salt must be retained in config.php in addition to the new salt.
+
Si pour quelque raison vous devez modifier le sel de mot de passe, l'ancien sel doit être conservé dans le fichier config.php en plus du nouveau sel.
  
<code>passwordsaltmain</code> should be changed to <code>passwordsaltalt1</code> (note that the exact expressions must be used) for the old salt as follows:
+
Dans le fichier config.php, la chaîne <code>passwordsaltmain</code> doit être pour cela modifiée en <code>passwordsaltalt1</code> (il doit s'agir exactement de ces textes, lettre pour lettre) pour l'ancien sel, comme indiqué ci-dessous.
  
  $CFG->passwordsaltalt1 = 'old long random string';
+
  $CFG->passwordsaltalt1 = 'ancienne très longue chaîne de caractères aléatoires';
  $CFG->passwordsaltmain = 'new long random string';
+
  $CFG->passwordsaltmain = 'nouvelle très longue chaîne de caractères aléatoires';
  
If you change your salt again in the future, you must retain all the previous salts for some time (until every user has logged in at least once, so they start using the new salt). You can use $CFG->passwordsaltalt2, $CFG->passwordsaltalt3, etc. to keep up to 20 previous salts.
+
Si plus tard vous modifiez encore le sel de mot de passe, il faudra conserver tous les sels précédents durant [http://www.dailymotion.com/video/x1app0_le-fut-du-canon_fun un certain temps] (jusqu'à ce que chaque utilisateur se soit connecté au moins une fois, et utilise donc le nouveau sel). On peut utiliser $CFG->passwordsaltalt2, $CFG->passwordsaltalt3, etc. pour conserver jusqu'à 20 sels précédents.
  
''Warning: If you change the salt and do not retain the old one in config.php you will no longer be able to login to your site!''
+
''Attention ! Si vous modifiez le sel et ne conservez pas l'ancien dans le fichier config.php, vous ne pourrez plus vous connecter à votre Moodle !''
  
 
==Disabling password salting==
 
==Disabling password salting==

Version du 19 novembre 2009 à 19:33

Remarque : la traduction de cet article n'est pas terminée. N'hésitez pas à traduire tout ou partie de cette page ou à la compléter. Vous pouvez aussi utiliser la page de discussion pour vos recommandations et suggestions d'améliorations.


Qu'est-ce que le salage de mot de passe ?

Dans la base de données de Moodle, les mots de passe sont stockés sous forme cryptée, que l'on appelle 'empreinte md5 du mot de passe'.

Le salage de mot de passe est une méthode de rendre l'empreinte des mots de passe plus sûre en ajoutant aux mots de passe une chaîne de caractères aléatoires avant de calculer leur empreinte md5, ce qui rend beaucoup plus complexe l'opération de retrouver le mot de passe à partir de son empreinte. Plus la chaîne aléatoire est longue, et plus cette opération est rendue complexe.

Activer le salage de mot de passe

Pour définir un sel de mot de passe, il suffit d'ajouter la ligne ci-dessous à votre fichier config.php :

$CFG->passwordsaltmain = 'une très longue chaîne de caractères aléatoires';

La chaîne de caractères aléatoires doit être composée d'un mélange de lettres, de chiffres et d'autres caractères. Le générateur de sel Moodle peut être utilisé pour obtenir une telle chaîne suffisamment longue. Une longueur d'au moins 40 caractères est recommandée.

Remarque : pour des raisons de sécurité, la seule façon d'activer le salage de mot de passe est la modification du fichier config.php. Il n'y a intentionnellement aucun moyen de le faire à travers l'interface web de Moodle.

Modifier le sel

Si pour quelque raison vous devez modifier le sel de mot de passe, l'ancien sel doit être conservé dans le fichier config.php en plus du nouveau sel.

Dans le fichier config.php, la chaîne
passwordsaltmain
doit être pour cela modifiée en
passwordsaltalt1
(il doit s'agir exactement de ces textes, lettre pour lettre) pour l'ancien sel, comme indiqué ci-dessous.
$CFG->passwordsaltalt1 = 'ancienne très longue chaîne de caractères aléatoires';
$CFG->passwordsaltmain = 'nouvelle très longue chaîne de caractères aléatoires';

Si plus tard vous modifiez encore le sel de mot de passe, il faudra conserver tous les sels précédents durant un certain temps (jusqu'à ce que chaque utilisateur se soit connecté au moins une fois, et utilise donc le nouveau sel). On peut utiliser $CFG->passwordsaltalt2, $CFG->passwordsaltalt3, etc. pour conserver jusqu'à 20 sels précédents.

Attention ! Si vous modifiez le sel et ne conservez pas l'ancien dans le fichier config.php, vous ne pourrez plus vous connecter à votre Moodle !

Disabling password salting

Note: Not Recommended! Once enabled, you should leave password salt enabled.

To disable password salting in Moodle, you can delete, comment out, or change the value of passwordsaltmain to "empty"

// EXAMPLE: set to empty string
$CFG->passwordsaltmain = '';


// EXAMPLE: comment out
/*
$CFG->passwordsaltmain = '';
*/

However, you are not done! You must also move the old salt to an "alt" value, just like the "changing the salt" description, above:

$CFG->passwordsaltalt1 = 'old long random string';
$CFG->passwordsaltmain = '';

Importing users from another site

If you import users from another Moodle site which uses a password salt, you need to add the other site's salt to config.php too. Upto 20 alternate salts may be added

$CFG->passwordsaltalt1, $CFG->passwordsaltalt2, ...  $CFG->passwordsaltalt20

How does password salting work?

When a password is checked, the code looks for
CFG->passwordsaltmain
. If set, it appends the user's password to the salt before calculating the md5 hash.

If the unsalted md5 hash of a user's password validates, it is assumed that the salt was set for the first time since the last time the user logged in. The user's password is upgraded, using the salt.

If neither the unsalted md5 hash, or the salted md5 hash validates, the code looks for up to 20 alternate salts.

If you change salts, in order not to orphan existing user accounts, you must enter the old salt into one of the alternate slots.

When a user who has an "old salt" password logs in, the first test of their authentication with the new salt will fail... then the code will test any alternate salts, looking for one that allows the password to be proven valid.

If a user is deemed valid, the system will upgrade the user's hashed password to the latest salt.