Autenticazione Utente Kerberos 5 - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Autenticazione Utente Kerberos 5

Description:

Title: Autenticazione Utente Kerberos 5 Author: Cris Malinconico Last modified by: Domenico Di Giorgio Created Date: 7/24/2004 7:50:56 AM Document presentation format – PowerPoint PPT presentation

Number of Views:74
Avg rating:3.0/5.0
Slides: 27
Provided by: CrisMali
Category:

less

Transcript and Presenter's Notes

Title: Autenticazione Utente Kerberos 5


1
Autenticazione 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
2
Tesina 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
3
Cosè 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
4
Come 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
5
Caratteristiche 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
6
Installazione di Kerberos
X
  • kerberos_1.3.3.tar

kerberos_1.3.3
linuxgt ./configure linuxgt make linuxgt make
install  linuxgt make check
src
doc
www.kerberos5.cjb.net
7
Configurazione 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
8
krb5.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
9
kdc.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
10
Creazione 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
11
Access 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
12
Administrator 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
13
Keytab
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
14
StartUp 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
15
Applicazione 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
16
Applicazione Client/Server (2)
X
  • Protocollo di comunicazione Client/Server

Kdc Kerberos
Client
Server
www.kerberos5.cjb.net
17
Server (1)
X
  • Notifica del corretto avvio del server.
  • (In precedenza sono stati avviati i demoni
  • krb5kdc e kadmind)

www.kerberos5.cjb.net
18
Client (1)
X
  • Richiesta username e password allutente

www.kerberos5.cjb.net
19
Client (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
20
Server (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
21
Client (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
22
Server (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
23
Server (4)
X
  • File di log in cui vengono memorizzate le
    operazioni dei Client

www.kerberos5.cjb.net
24
Considerazioni
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
25
Developers
X
Domenico Di Giorgio
Cris Malinconico
Armando Pagliara
Marco Rossi
www.kerberos5.cjb.net
26
Kerberos il mostro della rete
X
www.kerberos5.cjb.net
27
Kerberos 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
28
Applicazione 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
Write a Comment
User Comments (0)
About PowerShow.com