next up previous contents
Next: Trasmissione "sicura" tramite SSL Up: Autorizzazione, autenticazione e trasmissione Previous: Autorizzazione, autenticazione e trasmissione   Contents

Autorizzazione e autenticazione

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:

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 up previous contents
Next: Trasmissione "sicura" tramite SSL Up: Autorizzazione, autenticazione e trasmissione Previous: Autorizzazione, autenticazione e trasmissione   Contents
Mirko Manea
2000-05-07