Generazione del file .htpasswd
Genera in sicurezza nel navigatore il file .htpasswd usato per l'autenticazione di base di Apache e Nginx. Sono previsti bcrypt, APR1-MD5 e SHA-1. Le parole d'ordine non vengono trasmesse ad alcun servente.
Consigli
- Si raccomanda bcrypt, oggi l'algoritmo più sicuro, utilizzabile con Apache dalla versione 2.4 e con Nginx. Più si alza il valore del costo, più il calcolo rallenta e più l'insieme resiste agli attacchi esaustivi: dieci è il valore comunemente raccomandato.
- APR1-MD5, riconoscibile dal prefisso
$apr1$, si usa quando serve la compatibilità con le versioni di Apache anteriori alla 2.2 e funziona con quasi tutte le versioni di Apache e Nginx. - SHA-1, con il prefisso
{SHA}, offre scarsa resistenza alle collisioni ed è oggi sconsigliato: usatelo soltanto in ambienti datati che ne richiedano la compatibilità. - Si raccomanda vivamente di collocare il file .htpasswd in una posizione non raggiungibile direttamente dal servente web, cioè fuori dalla radice dei documenti.
- Usatelo insieme a HTTPS. Le credenziali dell'autenticazione di base sono soltanto codificate in Base64 e non cifrate: in HTTP viaggerebbero in chiaro.
Domande frequenti
.htaccess oppure nella configurazione principale, indicando in AuthUserFile il percorso del file generato.AuthType Basic AuthName "Restricted Area" AuthUserFile /etc/apache2/.htpasswd Require valid-user
location /admin {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}Nginx prevede tanto bcrypt quanto APR1-MD5.utente:sintesi, alla fine del file. Ogni riga corrisponde a un utente; le righe vuote e quelle di commento, che cominciano con #, sono ignorate.
A proposito — perché l'autenticazione di base, per quanto antica, si usa ancora
L'autenticazione di base di HTTP è un meccanismo semplicissimo, definito nel 1999 dalla norma RFC 2617 e oggi aggiornato dalla RFC 7617. Il funzionamento è elementare: nome utente e parola d'ordine si separano con i due punti, si codificano in Base64 e si inseriscono nell'apposita intestazione di autorizzazione.
Proprio per la sua semplicità è tuttora largamente usata, in particolare come prima linea di difesa per gli ambienti di prova e gli strumenti interni, in combinazione con le restrizioni per indirizzo IP, oppure per proteggere in fretta il punto di accesso di un'interfaccia. Il vantaggio maggiore è che funziona con due o tre righe di configurazione e non richiede né componenti aggiuntivi né una base di dati.
Va però usata con cautela: non prevede una disconnessione, poiché la sessione dura finché il navigatore resta aperto, e non offre di serie né la scadenza delle parole d'ordine né l'autenticazione a più fattori. Per i servizi che richiedono un'autenticazione vera e propria conviene valutare OAuth 2.0 o i protocolli di identità che vi si fondano.