Title: Autenticazione Utente Kerberos 5
1Autenticazione Utente Kerberos 5
X
- Tesina di Sicurezza su Reti
- Studenti
- Domenico Di Giorgio 556/000405
Cris Malinconico 556/000145 - Armando Pagliara 556/000195
Marco Rossi 556/000875 - Anno Accademico 2003/2004
www.kerberos5.cjb.net
2Tesina di Sicurezza Su Reti
X
- Progettazione di unapplicazione Client/Server
per la gestione di un Data-Base Remoto con
autenticazione tramite Kerberos 5
T R A C C I A
www.kerberos5.cjb.net
3Cosè Kerberos
X
- Kerberos è un sistema di autenticazione
sviluppato al M.I.T. tra il 1980 e il 1983 in
concomitanza col progetto ATHENA e in
collaborazione con IBM e la Digital Equipment
Corporation. - Il sistema di autenticazione è stato paragonato
al famoso Cerbero (Kerberos) poiché si basa su
tre procedure - autenticazione
- autorizzazione
- cifratura
- Kerberos è stato progettato per eliminare la
necessità di dimostrare il possesso di
informazioni segrete (come la password) per
divulgare la propria identità . Basato sul modello
di distribuzione delle chiavi sviluppato da
Needham e Schroeder, usa la crittografia a chiave
simmetrica (con una chiave per cifrare e
decifrare) per le comunicazioni tra client e
server.
www.kerberos5.cjb.net
4Come funziona Kerberos
X
- Kerberos è un protocollo per autenticare utenti e
servizi. Esso consta di tre figure fondamentali - Principals
- KDC
- Ticket
- Consideriamo principals gli utenti che Kerberos
deve - autenticare
- KDC è il Key Distribution Center il quale
pubblica le - prove dellidentità attraverso i
tickets. - I tickets contenitori di chiavi di sessione con
una breve durata di vita. - L'identità è controllata scambiando messaggi
(request-response) in cui si usa una chiave di
sessione di vita breve, ciò permette
di non inviare sulla rete alcuna password . - Vengono generate casualmente chiavi di sessione
utilizzate per criptare/decriptare i messaggi.
www.kerberos5.cjb.net
5Caratteristiche dei Tickets
X
- Valido per un periodo di tempo limitato (e.g.
25h) - Può essere rinnovato se valido e nel periodo di
tempo permesso per il rinnovamento (e.g. 14d) - Può essere inizialmente nullo
- Può essere inoltrabile agli altri hosts
- (TGT) può essere usato per ottenere ulteriori
ticket - Può essere distrutto se non se ne ha bisogno
- È immagazzinato in un archivio, di solito /tmp/
- Tipi di ticket
- Tickets iniziali
- Tickets Pre-Autenticati
- Ticket Invalidi
- Ticket Postdatati
- Ticket rinnovabili
- Proxy Ticket
- Forwarded Ticket
www.kerberos5.cjb.net
6Installazione di Kerberos
X
kerberos_1.3.3
linuxgt ./configure linuxgt make linuxgt make
install linuxgt make check
src
doc
www.kerberos5.cjb.net
7Configurazione di Kerberos
X
- krb5.conf e kdc.conf
- sono i due file di configurazione che devono
essere modificati per un corretto funzionamento
di KerberosV - Per la configurazione di Kerberos vedremo anche
- Creazione Data-Base Access Control List
- Administrator Principals
Keytab - Kerberos Server
Struttura dei file
www.kerberos5.cjb.net
8krb5.conf
X
- libdefaultsContiene le librerie di default
utilizzate da Kerberos 5. - realmsContiene informazioni relative ad ogni
realm, ossia le macchine su cui si trovano i
server Kerberos. - domain_realmQuesto tag è utilizzato dai
programmi per determinare il realm di
appartenenza di un host. - loggingContiene i path dei file di log
- appdefaultsContiene i valori di default che
possono essere utilizzati dagli applicativi di
Kerberos 5
www.kerberos5.cjb.net
9kdc.conf
X
- kdcdefaultsContiene informazioni relative alle
porte su cui può girare il KDC. - realmsContiene una sottosezione per ogni realm
definito nel krb5.conf ed ogni sottosezione
contiene informazioni specifiche per ogni realm,
incluse quelle che stabiliscono dove trovare i
sever Kerberos (per quel realm).
www.kerberos5.cjb.net
10Creazione database di Kerberos
X
linuxgt /usr/local/sbin/kdb5_util create -r
MY.REALM -s Initializing database
'/usr/local/var/krb5kdc/principal' for realm
'MY.REALM'. master key name 'K/M_at_MY.REALM'You
will be prompted for the database Master
Password.It is important that you NOT FORGET
this password.Enter KDC database master key lt
digita la master passwordRe-enter KDC database
master key to verify lt ridigita la password
- Il comando da eseguire per poter creare il
database di Kerberos per il realm definito nei
file di configurazione.
www.kerberos5.cjb.net
11Access Control List
X
- L'Access Control List è un file con estensione
.acl e contiene la lista dei principal che sono
amministratori del database di Kerberos. Il nome
del file .acl deve essere lo stesso del nome
specificato nel file kdc.conf (di default
kadm5.acl).
Pricipali permessi a permette l'aggiunta di
nuovi principal d permette la cancellazione di
principal esistenti m permette la modifica di
principal esistenti c permette il cambio di
password di un principal i permette le
interrogazioni sul database l permette la
visualizzazione del principal Carattere jolly
www.kerberos5.cjb.net
12Administrator Principals
X
- L'aggiunta di un principal amministratore del
database prevede l'utilizzo del seguente comando
linuxgt /usr/local/sbin/kadmin.localkadmin.local
addprinc admin/admin_at_MY.REALMWARNING no policy
specified for "admin/admin_at_MY.REALM"defaulting
to no policy.Enter password for principal
admin/admin_at_MY.REALM lt digita la master
passwordRe-enter password for principal
admin/admin_at_MY.REALM lt ridigita la password
Principal "admin/admin_at_MY.REALM"
created.kadmin.local
www.kerberos5.cjb.net
13Keytab
X
- Il keytab kadmind rappresenta la chiave che i
vecchi demoni di amministrazione come kadmind4 e
v5passwdd useranno per decifrare i ticket di
kerberos provenienti dai client o dagli
amministratori e determinare se essi hanno
accesso oppure no al database. È necessario
creare il keytab kadmind aventi come principal
kadmin/admin e kadmin/changepw.
linuxgt /usr/local/sbin/kadmin.localkadmin.local
ktadd k /usr/loca/var/krb5kdc/kadm5.keytab
kadmin/admin kadmin/changepwEntry for principal
kadmin/admin with kvno 5, encryption    type
Triple DES cbc mode wih HMAC/sha1 added to
keytab   WRFILE /usr/loca/var/krb5kdc/kadm5.keyt
ab.Entry for principal kadmin/admin with kvno 5,
encryption    type DES cbc mode wih CRC-32 added
to keytab   WRFILE /usr/loca/var/krb5kdc/kadm5.k
eytab.Entry for principal kadmin/changepw with
kvno 5, encryption    type Triple DES cbc mode
wih HMAC/sha1 added to keytab   WRFILE
/usr/loca/var/krb5kdc/kadm5.keytab.Entry for
principal kadmin/changepw with kvno 5, encryption
   type DES cbc mode wih CRC-32 added to
keytab   WRFILE /usr/loca/var/krb5kdc/kadm5.keyt
ab.Kadmin.local quitlinuxgt
www.kerberos5.cjb.net
14StartUp Kerberos-Server
X
- È possibile avviare i demoni di kerberos sulla
macchina in cui è stato installato il KDC. - I due comandi da eseguire sono i seguenti
linuxgt /usr/local/sbin/krb5kdc linuxgt
/usr/local/sbin/kadmind
Se tutto è andato a buon fine eseguendo il
comando tail sui due file di log avremo il
seguente risultato
linuxgt tail /var/log/krb5kdc.log Jul 27 12 35
47 beeblerox krb5kdc3187 (info) commencing
operation linuxgt tail /var/log/kadmin.log Jul
27 12 35 47 beeblerox kadmind3189 (info)
starting
www.kerberos5.cjb.net
15Applicazione Client/Server (1)
X
- Laccesso ai servizi offerti dal Server è
controllato tramite autenticazione con Kerberos5.
LApplication Server offre le funzionalità di
gestione di un Data-Base remoto inerente ad una
anagrafe. Lintera applicazione si basa sui
socket di Berkley per la gestione della
comunicazione tra client e server.
www.kerberos5.cjb.net
16Applicazione Client/Server (2)
X
- Protocollo di comunicazione Client/Server
Kdc Kerberos
Client
Server
www.kerberos5.cjb.net
17Server (1)
X
- Notifica del corretto avvio del server.
- (In precedenza sono stati avviati i demoni
- krb5kdc e kadmind)
www.kerberos5.cjb.net
18Client (1)
X
- Richiesta username e password allutente
www.kerberos5.cjb.net
19Client (2)
X
- Dopo aver inserito username e password viene
fatta la richiesta del ticket - Ottenuto il ticket ci si connette allhost server
e si effettua una mutua autenticazione - Se tutto ok vengono messi a disposizione una
serie di funzioni per la gestione di un database
remoto
www.kerberos5.cjb.net
20Server (2)
X
- Il server è attivo e si accorge della presenza di
mimmo_at_MY.REALM in quanto è stata fatta una mutua
autenticazione
www.kerberos5.cjb.net
21Client (3)
X
- Il Client richiede una funzionalitÃ
allApplication Server il quale gli risponde con
un risultato. - Il Client visualizza il risultato ed è pronto ad
effettuare unaltra operazione. - Il client decide di uscire.
www.kerberos5.cjb.net
22Server (3)
X
- Il server notifica lingresso e luscita dei vari
principal dal servizio. - Memorizza nel file di log tutte le operazioni
effettuate dal Client.
www.kerberos5.cjb.net
23Server (4)
X
- File di log in cui vengono memorizzate le
operazioni dei Client
www.kerberos5.cjb.net
24Considerazioni
X
- Lapplicazione offre dei servizi remoti per cui è
necessario che tutte le macchine che partecipano
allo scambio di messaggi siano on line e pronte a
ricevere delle richieste ricordiamo che devono
essere verificate alcune condizioni - I demoni di kerberos (kadmind e krb5kdc )
devono essere avviati prima di tutti gli altri
applicativi (Client e Application-Server) - I Client che vogliono richiedere dei servizi
allApplication-Server devono essere registrati
come principal sul KDC - LApplication-Server deve essere avviato prima
dei Client - La password è inserita in modalità cieca per
assicurare un ulteriore livello di sicurezza lato
Client - La chiave di ciascun record presente nel
database è lunico elemento di accesso
allutilizzo delle funzioni fornite
dallApplication-Server
www.kerberos5.cjb.net
25Developers
X
Domenico Di Giorgio
Cris Malinconico
Armando Pagliara
Marco Rossi
www.kerberos5.cjb.net
26Kerberos il mostro della rete
X
www.kerberos5.cjb.net
27Kerberos STEPS
X
- Richiesta ticket
- Il client richiede un ticket per il TGS(ticket
granting service) - Il server restituisce un ticket con la nuova
chiave di sessione cifrato con la chiave utente - Lulteriore comunicazione sarà cifrata con la
chiave di sessione. - Autenticazione UtenteIl client inserisce la
password, la converte in una chiave e manda una
richiesta per il TGT (Ticket granting Ticket) - Richiesta Service Tickets con il TGT
www.kerberos5.cjb.net
28Applicazione Client/Serverautenticazione con
Kerberos 5 - database remoto (GDBM)
X
- La nostra applicazione Client/Server sarÃ
strutturata nel seguente modo - un server gestisce un database contenente i dati
anagrafici di un insieme arbitrario di persone (i
record gestiti saranno composti dai seguenti
campi nome, cognome, luogo e data di nascita,
residenza, indirizzo e cittadinanza). - Il protocollo di comunicazione è gestito
sommariamente nel seguente modo - Il server riceve via TCP/IP le richieste di1)
inserimento2) modifica3) ricerca 4)
cancellazione dei record del database. - Il client riceve, tramite una semplicissima
interfaccia testuale, le richieste dall'utente, e
le trasmette via rete al server. - Tutta l'applicazione deve poter essere utilizzata
soltanto dagli utenti abilitati. - L'applicazione utilizza Kerberos 5 per
l'autenticazione degli utenti e fa uso della
libreria GDBM per l''implementazione del database.
www.kerberos5.cjb.net