MySQL
e' il piu' diffuso DBMS relazionale Open Source.
L'attenzione di MySQL verso le problematiche di sicurezza e'
cresciuta nel tempo ed ogni nuova versioni introduce ulteriori
funzionalita' in questo senso.
In questa pagina descriviamo le funzioni di verifica della qualita'
della password introdotte nella versione 5.6 di MySQL mediante
il plugin validate_password.
La validazione delle password e' importante per impedire che gli utenti
impostino password troppo semplici e quindi facilmente attaccabili.
La versione di MySQL cui fa riferimento il documento e' la 5.7 [NdE la 5.7 e' l'ultima versione di produzione disponibile da ottobre 2015] perche' in tale versione il plugin e' stato ulteriormente esteso.
Per configurare la funzione di Validate Password ci sono tre modi... attivare il relativo plugin con:
[mysqld] plugin-load-add=validate_password.so
Ovviamente e' necessario riavviare MySQL per far rileggere il file my.cnf.
Oppure registrare il plugin interattivamente con:
Infine... non fare nulla perche' molte configurazioni lo impostano gia' automaticamente di default (eg. yum repository)!
Una volta configurato il plugin, l'utilizzo e' semplicissimo:
se in uno statement di CREATE USER, ALTER USER, ...
insomma in un qualsiasi statement SQL che contenga la password in chiaro
non si specifica una password sufficientemente complessa
viene restituito l'errore:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
Sono definiti tre livelli di policy sulla qualita' delle password:
Infine puo' essere controllato se la password contiene il nome dell'utente (default controllo non attivo).
Tutti i controlli sono gestiti mediante variabili facilmente impostabili e verificabili con il comando:
Dalla versione MySQL 5.6 e' disponibile la funzione SQL validate_password(str)
che consente di verificare se la stringa in chiaro str e' una buona password o meno.
La funzione ritorna un intero da 0 (pessima) a 100 (STRONG) ed ovviamente utilizza il plugin per il controllo.
Se la stringa soddisfa la password policy MEDIUM il valore restituito e' 75.
La funzione e' utile per le applicazioni che gestiscono la modifica delle password degli utenti.
L'utilizzo di password complesse e' un elemento importante per la sicurezza delle basi dati. Il plugin MySQL validate_password permette il controllo in modo semplice ed efficace.
Per una documentazione completa e tutti i dettagli si rimanda alla documentazione MySQL ufficiale.
Per una descrizione degli algoritmi di memorizzazione delle password si puo' leggere questo documento.
Titolo: MySQL Validate Password
Livello: Intermedio
Data:
14 Febbraio 2016
Versione: 1.0.0 - 14 Febbraio 2016
Autore: mail [AT] meo.bogliolo.name