Password salting

Da MoodleDocs.
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Cosa è il password salting?

In Moodle le password sono memorizzate in forma criptata, detta 'md5 hash'.

Il Password salting è un metodo per rendere più robuste le password aggiungendo una stringa di caratteri random alla password prima di effettuare il calcolo dell'hash md5 (tanto maggiore è la lunghezza del salt, tanto più robusto sarà l'hash md5).

Abilitare il password salting

Per impostare un password salt, è necessario aggiungere la linea seguente al file config.php:

$CFG->passwordsaltmain = 'una stringa molto lunga con numerosi caratteri';

La stringa di caratteri random dovrebbe contenere lettere, numeri ed altri caratteri. Per ottenere una stringa random è possibile usare il Moodle Salt Generator. Si raccomanda di usare una stringa di almeno 40 caratteri.

Nota: Per motivi di sicurezza è possibile abilitare il password salting solamente aggiungendo il salt al file config.php - non è possibile abilitarlo dall'interfaccia di Moodle.

Modificare il salt

Se si desidera modificare il salt, il salt precedente deve essere mantenuto nel file config.php assieme al nuovo salt.

passwordsaltmain deve essere cambiato in passwordsaltalt1 (seguire esattamente la sintassi) come segue:

$CFG->passwordsaltalt1 = 'il salt precedente';
$CFG->passwordsaltmain = 'il nuovo salt';

Se si desidera cambiare ulteriormente il salt, si devono mantenere tutti i salt precedenti (almeno fino a quando tutti gli utenti avranno eseguito il login e l'hash della loro password sarà stato aggiornato con il nuovo salt). E' possibile mantenere fino a 20 salt usando la sintassi $CFG->passwordsaltalt2, $CFG->passwordsaltalt3, eccetera.

Attenzione: se si modifica il salt senza mantenere il precedente, no sarà più possibile eseguire il login nel sito!

Disabilitare il password salting

Nota: Fortemente sconsigliato! Una volta abilitato, non disabilitate il password salting.

Per disabilitare il password salting in Moodle, è possibile eliminare, commentare o modificare il salt con una stringa vuota.

// ESEMPIO: salt con stringa vuota
$CFG->passwordsaltmain = '';


// ESEMPIO: salt commentato
/*
$CFG->passwordsaltmain = '';
*/

Naturalmente è anche necessario mantenere il salt precedente, esattamente come per la modifica di salt:

$CFG->passwordsaltalt1 = 'il salt precedente';
$CFG->passwordsaltmain = '';

Importare utenti da altri siti

Se si desidera importare utenti da altri siti che fanno uso di password salting, è necessario aggiungere il salt dei siti di provenienza al file config.php. E' possibile aggiungere fino a 20 salt

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

Come funziona il password salting?

Durante il controllo di una password, il codice cerca il salt contenuto in CFG->passwordsaltmain. Se il codice trova il salt, la password viene concatenata con il salt subito prima di calcolare l'hash md5.

Se la password dovesse risultare valida anche senza salt, il codice presume che il salt è stato impostato dopo l'ultimo login dell'utente. In seguito l'hash md5 viene aggiornato usando il salt.

Se la password non risulta valida né con né senza salt, il codice cerca altri 20 salt alternativi.

Se il salt viene modificato, per evitare che gli acocunt già esistenti non possano più autenticarsi, è indispensabile mantenere il salt precedete come indicato in 'Modificare il salt'.

Quando un utente si autentica con una password il cui hash non è più quello attuale, il codice eseguirà il test con tutti gli altri salt disponibili.

Se è possibile autenticare l'utente l'hash md5 sarà aggiornato con il salt main.