Next: Trasmissione "sicura" tramite SSL
Up: Autorizzazione, autenticazione e trasmissione
Previous: Autorizzazione, autenticazione e trasmissione
  Contents
Il meccanismo di autorizzazione è piuttosto semplice. Si basa
sulla richiesta di inserimento da parte dell'utente di una parola chiave
(password) che viene controllata in un database.
Lo schema seguito è simile a quello dei sistemi Unix. La password viene
cifrata tramite la funzione crypt(3) dal servente e poi verificata
con quella memorizzata. Se le due stringhe coincidono, si consente l'accesso
alla risorsa, altrimente viene ritornato un messaggio di errore
(401 Authorization Required).
La parola chiave viene conservata per tutta la durata della sessione di
lavoro. Questo perché alla richiesta (GET) del browser di una
risorsa protetta, il server web risponde con la richiesta di nuova
autenticazione che viene fornita direttamente dal cliente. In questo modo si
evita di dover reinserire la password ad ogni accesso.
Questo sistema, data la sua semplicità, è suscettibile ad una serie di
attacchi. É possibile semplicemente utilizzando uno sniffer,
5 individuare il pacchetto TCP che contiene i dati utilizzati
per la richiesta di autorizzazione (utente e password). L'unica protezione
fornita dal protocollo HTTP é quella di utilizzare la funzione
uuencode6.
per non far transitare la password in chiaro. Tale protezione risulta perø'
poco utile ad un attacco mirato.
Per attivare questo schema, l'Apache deve essere configurato con il modulo
mod_auth (compilato di default7).
Inoltre nel file di configurazione conf/srm.conf è necessaria la
direttiva AccessFileName .htaccess. Questa fa si che si possa
specificare nel file .htaccess quali sono gli utenti che possono
accedere alle risorse protette. Queste risorse possono essere o singoli
file, oppure interi rami del filesystem. Nel nostro caso tale file contiene:
AuthName Gestione sito ftp
AuthType Basic
AuthUserFile /u/home/studenti/IN000071/htpasswd.users
require user ftpadm
dove viene specificato:
- AuthName
Nome con cui la risorsa viene presentata al cliente.
- AuthType
Tipo di autorizzazione (attualmente Basic o Digest).
- AuthUserFile
Locazione dove è contenuto il file delle parole chiave (password).
Tale file è creato dal programma support/htpasswd.
- require user
Solo gli utenti specificati possono accedere alla risorsa e solo fornendo
una password valida.
Per quanto riguarda l'autenticazione esiste anche un metodo alternativo.
Si tratta della codifica Digest. Viene calcolata la
funzione hash MD58tra il nome fornito, l'URI della risorsa a cui si
accede e la password inserita. Questo valore viene quindi inviato al
servente che lo controlla nel proprio database. Se i due valori coincidono
l'accesso è garantito. L'affidabilità di questo metodo è garantita
dal fatto che non viene trasmessa la parola chiave, ma il valore della
funzione hash9.
Next: Trasmissione "sicura" tramite SSL
Up: Autorizzazione, autenticazione e trasmissione
Previous: Autorizzazione, autenticazione e trasmissione
  Contents
Mirko Manea
2000-05-07