Ancora su Apache Web Server

Transcript

Ancora su Apache Web Server
Elementi di
Sicurezza e Privatezza
Laboratorio 5
Chiara Braghin
Ancora su
Apache Web Server
1
Valutazione file .htaccess
• Data una richiesta di accesso ad un file la
valutazione parte dalla directory dove si
trova il fale e sale fino alla radice del
server
 I file .htaccess vengono combinati secondo
il principio most specific takes precedence
 Lʼordine di valutazione caso di utilizzo
contemporaneo di diversi “contenitori” è
<Directory>, <Files> e <Location>
2
Direttive per accesso user-based
• Require
 Presuppone un’autenticazione dell’utente
 Sintassi:
 require valid-user: un qualsiasi utente
valido
 require user alice bob: solo alice e bob
3
2
Host-based vs User-based
• Le direttive non sono mutuamente esclusive e
possono essere usate in contemporanea
• La direttiva satisfy definisce come i due tipi
di restrizioni interagiscono
 satisfy all: un accesso è permesso se sia
le direttive host-based sia le direttive user-based
sono soddisfatte
 satisfy any: un accesso è permesso se
almeno una direttiva è soddisfatta
4
Autenticazione (1)
• Non fa uso di tecniche crittografiche
• Autenticazione basata sulla coppia (login,
password)
• Richiede la creazione di un file delle password
(htpasswd)
 htpasswd -c file username password
 htpasswd /etc/apache/passwd user
• Si assume che le password vengano comunicate
agli utenti per mezzo di un canale out-of-band
• Si crea il file .htaccess nella directory che
contiene le risorse da proteggere con password 5
3
Autenticazione (2) - Direttive
• AuthName
 Assegna un nome all’area da proteggere
• AuthType (Basic o Digest)
 Seleziona il metodo di autenticazione
• AuthUserFile
 Specifica il file che contiene i nomi degli
utenti e delle relative password
6
Esempio
<Directory /miosito/dir_controllata>
AuthType Basic
AuthName "Area Protetta"
AuthUserFile /usr/local/apache/passwords
Require valid-user
Order Allow,Deny
Allow from 192.168.10.
Satisfy Any
</Directory>
7
4
Autenticazione digest (1)
• Digest calcolato dalla password ed altri bit di
informazione (e.g., nonce) tramite una
funzione di hash (MD5)
 MD5(MD5(<password>)+":"+<nonce>+":"+MD5(<method>
+":"+<url>))
 Invece di inviare la password in chiaro come
nellʼautenticazione base, viene inviato il digest
 La stessa funzione viene calcolata lato server
 Accesso garantito se i due valori corrispondono
8
Autenticazione digest (2)
• Flusso di autenticazione
 Richiesta di accesso (url) inviata dal client
 Il server risponde con errore 401
“Authentication required” + nonce
 Il client combina password, nonce, url,
metodo e li ritorna al server
 Il server recupera la password dellʼutente e
calcola lʼhash
 Accesso garantito o negato
9
5
Esercizi da NON consegnare
1.
2.
3.
4.
5.
6.
Creare un file delle password che contenga almeno gli
utenti alice e bob
Creare una cartella cartella_segreta che contenga un
file index.html
Fare in modo che solo alice possa leggere il file
index.html
Fare in modo che sia alice che bob oppure un utente
che fa la richiesta con IP 192.168.13.1 possano leggere
il file index.html
Fare in modo che bob possa leggere il file index.html
solo se fa la richiesta con IP 192.168.13.2
Fare in modo che l’utente trudy non possa leggere il file
10
6