11.2. Schemi di autenticazione

In precedenza abbiamo già fornito alcune nozioni di base per quello che concerne gli schemi di autenticazione. Per "schema di autenticazione" si intende definire il tipo di protocollo che viene utilizzato per la validazione delle credenziali utente tra Browser web ed il Server, dove quest'ultimo può essere un Proxy Server o un Web Server. Ad oggi Squid supporta tre schemi di autenticazione

A partire da Squid-2.5-STABLE1, tutta la parte relativa alla autenticazione è stata totalmente modularizzata, permettendo l'utilizzo contemporaneo di un maggior numero di schemi di autenticazione. La scelta dei moduli da attivare viene effettuata al momento della configurazione dei parametri di compilazione di Squid

% ./configure --enable-auth="elenco schemi" 
  

nell'esempio di cui sopra, il valore "elenco schemi" può assumere i valori ntlm, basic e digest.

Nelle versioni precedenti, in particolare le releases 2.3 e la 2.4, era disponibile il solo schema di autenticazione basic.

Nel caso in cui siano attivi più schemi di autenticazione, il Browser web seleziona automaticamente quello da lui supportato scegliendo quindi il livello di sicurezza dichiarato come più alto, l'ordine di priorità è il seguente

11.2.1. Basic authentication

È lo schema di autenticazione standard supportato da tutti i Browser web come Netscape, Mozilla, Opera, Internet Explorer, Konqueror, etc. Viene spesso indicato come "Clear Text Authentication" perchè prevede lo scambio di username e password tra Browser e server, con una semplice codifica a base64, ovvero in chiaro, naturalmente questo tipo di autenticazione risulta essere estremamente insicuro perchè le password vengono trasmesse attraverso la rete continuamente e un maleintenzionato potrebbe osservare il traffico dei dati per ottenere la password che successivamente potrebbe utilizzare per vestire i panni dell'utente leggittimo. Con questo tipo di autenticazione, l'utente deve esplicitamente inserire i dati di autenticazione all'inizio di ogni nuova sessione.

11.2.2. NTLM authentication

È uno schema di autenticazione proprietario tipico dei prodotti Microsoft, nella cui terminologia è comunemente indicato come "integrated authentication". lo schema NTLM è supportato dai browser web Microsoft Internet Explorer (a partire dalla versione 3.02) e da Mozilla (a partire dalla versione 1.4) nonchè dai prodotti server Microsoft IIS (Internet Information Server), Proxy Server 2.0 ed ISA Server. Per funzionare correttamente NTLM necessita di un Dominio Windows NT oppure delle Active Directory di Windows 2000/2003. In ambienti Windows 2000/2003 opera indifferentemente in modalità mixed o nativa, purchè in fase di installazione dell'Active Directory sia stata selezionata la compatibilità con i sistemi pre Windows 2000. Per verificare se un Dominio Active Directory sia stato stato installato in modalità compatibile pre Windows 2000 é sufficiente eseguire Active Directory Users and Computers e controllare se nel gruppo "Pre-Windows 2000 Compatible Access" situato nel container built-in sia presente l'utente Everyone. Se non fosse presente, riferirsi all'articolo Q303973 (http://support.microsoft.com/) della Knowledge Base Microsoft.

Lo schema di autenticazione NTLM è stato implementato anche con licenza GPL, queste versioni sono basate sul reverse engineering del protocolo, le più note sono Squid 2.5 e mod_ntlm per Apache Web Server. Peculiarità di NTLM è l'esecuzione della procedura di autenticazione in maniera assolutamente trasparente all'utente senza alcuna richiesta di username/password, sfruttando le credenziali fornite durante l'autenticazione in un Dominio Windows NT o con le Active Directory di Windows 2000/3.

Grosso svantaggio di NTLM è quello di essere "Connection Oriented", ovvero peer to peer, ciò fa si che un server HTTP operante con l'autenticazione NTLM non possa essere connesso tramite un Proxy Server, ma solamente in modalità "direct".

11.2.3. Digest authentication

È lo schema di autenticazione standard proposto come successore dello schema Basic, Digest authentication si propone di superare i problemi legati allo scambio in chiaro dello username e della password tra browser web e server HTTP. Digest utilizza un protocollo di tipo challenge/handshake per evitare la rivelazione della password quando la stessa viene immessa in rete. Attualmente lo schema di autenticazione Digest è largamente inutilizzato, benchè sia supportato dalle ultime versioni di Internet Explorer, Mozilla, Netscape ed Opera. Per maggiori dettagli sulla Digest authentication riferirsi alla RFC 2617 (http://www.ietf.org/rfc/rfc2617.txt).