11.6. Digest Authentication

l'Autenticazione Digest funziona esclusivamente con la versione 2.5 di Squid

11.6.1. Configurazione

Lo schema di autenticazione Digest utilizza i seguenti parametri

auth_param digest program cmdline
auth_param digest children numberofchildren
auth_param digest realm realmstring
auth_param digest nonce_garbage_interval timeinterval
auth_param digest nonce_max_duration timeinterval
auth_param digest nonce_max_count number
auth_param digest nonce_strictness on|off
auth_param digest post_workaround on|off
   

il TAG program cmdline

Specifica il comando che avvia il programma utenticatore esterno. Tale programma legge una riga da stdin contenente "username":"realm" e risponde su stdout con un appropriato valore H(A1) codificato base64 in un loop senza fine. Riferirsi alla RFC 2616 (http://www.faqs.org/rfcs/rfc2616.html) per la definizione di H(A1).

Di default, lo schema di autenticazione Digest non viene attivato a meno che non sia specificato un programma autenticatore. Ad esempio:

auth_param digest program /usr/local/squid/libexec/digest_pw_auth /usr/local/squid/etc/digpass
   

il TAG children numberofchildren

Indica quante istanze del programma di autenticazione devono essere eseguite contemporaneamente. Se viene configurato un numero di autenticatori troppo basso, Squid potrebbe essere costretto ad attendere un autenticatore libero, rallentando la navigazione. Il valore predefinito è 5, quando l'elaborazione di H(A1) avviene tramite rete, può essere raccomandabile aumentare questo valore.

auth_param digest children 5
   

il TAG realm realmstring

Specifica il nome realm che viene fornito ai client per lo schema di autenticazione Digest (Il testo che l'utente vedrà nella dialog box di autenticazione del browser). Il valore predefinito è "Squid proxy-caching web server".

auth_param digest realm Squid proxy-caching web server
   

il TAG nonce_garbage_interval timeinterval

specifica ogni quanto tempo viene verificata la validità dei nonce assegnati ai client Il valore predefinito é 5 minuti.

auth_param digest nonce_garbage_interval 5 minutes
   

il TAG nonce_max_duration timeinterval

specifica la durata massima della validità di un dato nonce. Il valore predefinito é 30 minuti.

auth_param digest nonce_max_duration 30 minutes
   

il TAG nonce_max_count number

specifica il massimo numero di volte che un dato nonce può essere riutilizzato. Il valore predefinito é 50.

auth_param digest nonce_max_count 50
   

il TAG nonce_strictness on|off

determina se Squid richiede incrementi del nonce count esattamente di uno o se invece accetta incrementi generici (off), per quei useragent che generano dei nonce count che incrementano casualmente di un valore superiore all'unità (Per esempio 1,2,4,6). Il valore predefinito é off.

auth_param digest nonce_strictness off
   

il TAG check_nonce_count on|off

disabilita totalmente il nonce count check come workaround ad alcune implementazioni anomale di digest qop in alcuni browser. Il valore predefinito é on, ovvero verificare il nonce count per evitare attacchi di tipo authentication replay.

auth_param digest check_nonce_count on
   

il TAG post_workaround on|off

questo é un workaround per un bug presente in alcuni browser che inviano una richiesta incorretta di digest durante un'operazione di POST basata su un nonce di una precedente operazione di GET. Questa funzione é normalmente disattiva.

auth_param digest post_workaround off
   

11.6.1.1. helper digest_pw_auth

É attualmente l'unico autenticatore disponibile per lo schema di autenticazione Digest, viene tendenzialmente fornito come riferimento per nuove implementazioni. Come back-end viene utilizzato un file il cui formato prevede linee del tipo "username:password".

  • Le linee che iniziano con '#' sono considerate un commento

  • É possibile lasciare delle linee vuote

esempio di configurazione

auth_param digest program /usr/local/squid/libexec/digest_pw_auth /usr/local/squid/etc/digpass
auth_param digest children 10
auth_param digest realm Squid proxy-caching web server
auth_param digest nonce_garbage_interval 5 minutes
auth_param digest nonce_max_duration 30 minutes
auth_param digest nonce_max_count 25
auth_param digest check_nonce_count on
    

In questo caso digest_pw_auth si trova in /usr/local/squid/libexec, il file contenente le password é /usr/local/squid/etc/digpass, il numero di helper in esecuzione é 10, il garbage dei nonce avviene ogni 5 minuti, la loro durata é di 30 minuti con 25 riutilizzi massimi ed il TTL dell'autenticazione é pari a 30 minuti.

L'helper digest_pw_auth é utilizzabile su tutte le piattaforme supportate da Squid.