Sei sulla pagina 1di 69

Standard di Autenticazione Kerberos V4

Luca Grilli

Introduzione
Kerberos un servizio, a chiave segreta, per autenticare utenti e risorse (principal) in una rete insicura Basato sul lavoro di Needham e Schroeder, fu progettato originariamente al MIT Serve a semplificare lautenticazione di un utente di una workstation per accedere a risorse remote (protette) di cui possiede i diritti di accesso Le prime tre versioni di Kerberos non sono pi usate Le versioni V4 e V5, sebbene concettualmente simili, sono sostanzialmente diverse e si stanno contendendo il mercato

Introduzione
La versione V4 pi diffusa, pi semplice, e offre migliori prestazioni, ma funziona solo su reti TCP/IP mentre la versione V5 offre maggiori funzionalit ed meno restrittiva Si esaminer soltanto la versione V4 nelle prossime slides
Curiosit: il nome Kerberos (Cerbero) deriva dalla mitologia greca, Cerbero era il cane a tre teste posto a guardia dellingresso dellAde (inferi)

Scenario di impiego tipico


Si supponga che un utente Alice effettui il login presso una workstation inserendo username e password
o presso un sistema operativo di un computer multiutente

durante la sessione di login


cio nel periodo di tempo che intercorre dal login al logout

Alice potrebbe avere la necessit di accedere, previa autenticazione, a risorse remote di cui possiede i diritti di accesso
host remoti su cui Alice ha un account, oppure file su server remoti di cui possiede i diretti di accesso e/o modifica

Scenario di impiego tipico


server1

usr pwd

WorkStation

rete insicura

server2

serverN

Scenario di impiego tipico


se lautenticazione coinvolgesse direttamente Alice dovrebbe, molto probabilmente, basarsi sullinserimento delle credenziali di accesso, con ovvi svantaggi
lautenticazione basata su password meno sicura di unautenticazione a sfida e risposta a chiave segreta Alice sarebbe chiamata ad inserire molto spesso le proprie credenziali, oppure queste dovrebbero essere memorizzate in qualche punto

Kerberos fornisce una soluzione sicura a tale problema semplificando la vita ad Alice

Kerberos Idea Base


con Kerberos la workstation (sistema operativo) di Alice in grado di effettuare lautenticazione al suo posto senza che Alice si renda conto che in atto un processo di autenticazione in altri termini, lautenticazione completamente trasparente allutente
Kerberos stato pensato per reti insicure (come Internet)
ove sono possibili sia attacchi alla confidenzialit, che attacchi allintegrit

Implementazione di Kerberos
Unimplementazione di Kerberos consiste in un Key Distribution Center (KDC) che viene eseguito in qualche parte della rete su un nodo fisicamente sicuro, e una libreria di subroutine usate dalle applicazioni distribuite che desiderano autenticare i propri utenti Tra le applicazioni che sono state modificate per incorporare delle chiamate a subroutine nella libreria di Kerberos troviamo
telnet: serve ad interagire su un sistema remoto tramite riga di comando

Implementazione di Kerberos
BSD rtools: gruppo di programmi di utilit inclusi in BSD Unix che supportano il login remoto (rlogin), la copia di file remoti (rcp) e lesecuzione remota di comandi (rsh) NFS (Network File System): programma di utilit che permette di accedere a file di un host remoto come se fossero locali

Sebbene sono previste diverse modalit operative Kerberos fu progettato per un ambiente in cui un utente effettua il login in una workstation inserendo user-name e password

Implementazione di Kerberos
user-name e password sono usate dalla workstation per ottenere dal KDC le informazioni necessarie ai processi locali per autenticarsi e per accedere alle risorse remote al posto dellutente
evitando che lutente inserisca ogni volta le sue credenziali

Implementazione di Kerberos
KDC

server1 usr pwd WorkStation rete insicura server2

serverN

librerie di subroutine di Kerberos

Standard di Autenticazione Kerberos V4

DA NEEDHAM-SCHROEDER A KERBEROS

N-S Kerberos (0)


si supponga che lutente Alice, dopo aver effettuato il login presso la workstation, desideri effettuare un login remoto, comando rlogin, presso il server Bob ovviamente Alice dispone gi di un account utente presso Bob nelle prossime slide si illustrer linterazione logica tra Alice e il KDC (in pratica Needham-Schroeder)
Alice e il KDC non interagiscono direttamente, ma c lintermediazione della workstation che inizialmente sar trascurata ci sar comunque evidenziato nello schema utilizzando delle frecce tratteggiate

N-S Kerberos (0)


Il KDC condivide una chiave segreta, detta chiave master, con ciascun principal (cio ciascun utente e/o risorsa coinvolte nel processo di autenticazione)
KA e KB indicheranno le chiavi master di Alice e Bob

Alice informa il KDC che desidera contattare Bob il KDC inventa una chiave di sessione KAB per Alice (per la sua workstation) e Bob poi cifra KAB e il nome Bob con la chiave master di Alice KA e cifra KAB e il nome Alice con a chiave master di Bob KB ottenendo il ticket per Bob

N-S Kerberos (0)


restituisce poi tutte queste informazioni ad Alice Alice non pu leggere cosa c nel ticket di Bob
perch cifrato con la chiave master di Bob

solo Bob (e il KDC) pu decifrare il suo ticket ed ottenere KAB e il nome Alice ci rassicura Bob che chiunque conosce KAB agisce per conto di Alice pertanto, usando KAB, Alice e Bob possono autenticarsi reciprocamente ed eventualmente proteggere la confidenzialit e lintegrit della loro conversazione

N-S Kerberos (0)


la chiave di sessione KAB insieme al ticket per Bob costituiscono le credenziali di Alice presso Bob
Alice wants Bob

KDC

KA{KAB, Bob} ticket to Bob = KB{KAB, Alice}

invents key KAB

Alice

mutua autenticazione a chiave segreta KAB conversazione cifrata e con controllo dintegrit

Bob

Im Alice, ticket = KB {KAB, Alice}

N-S Kerberos (1)


ora si introdurr, in modo graduale, lintermediazione della workstation di Alice per prima cosa, Alice non dovr ricordarsi la propria chiave master KA,
una possibilit che la chiave master di Alice si ottenga dal usr e pwd: KA = f(usr, pwd) e che la workstation calcoli KA quando Alice effettua il login

N-S Kerberos (1.a)


Fase di login
login usr pwd

Alices workstation

Alice

KDC

la workstation calcola la chiave master di Alice KA = f(usr, pwd)

Bob

N-S Kerberos (1.b)


Esecuzione di un comando remoto
rlogin Bob

Alice wants Bob

Alices workstation

KA{KAB, Bob} ticket to Bob = KB{KAB, Alice}

Alice

mutua autenticazione a chiave segreta KAB


conversazione cifrata e con controllo dintegrit

any commands

Bob

Im Alice, ticket = KB {KAB, Alice}

KDC

i) invents key KAB ii) finds Bobs master key KB

Schema (1) vulnerabilit


la workstation, che effettua lautenticazione al posto di Alice, dovrebbe ricordare la sua password durante lintera sessione di login
oppure dovrebbe ricordare la sua chiave master KA

ed usarla quando Alice effettua delle operazioni che richiedono la verifica della sua identit tale soluzione non pu considerarsi sicura
Alice potrebbe, durante la sessione di login, eseguire del software non fidato che potrebbe rubare la sua password

va limitato il pi possibile il tempo di memorizzazione della password e della chiave master di Alice

Schema (1) riduzione vulnerabilit


per ridurre la precedente vulnerabilit conviene procedere nel seguente modo

lidea quella di sostituire il ruolo della chiave master KA con quello di una chiave di sessione di utente SA
SA varia da sessione a sessione

pwd, usr e quindi KA vengono usati solo temporaneamente allinizio di ogni sessione di login per ottenere SA la chiave di sessione SA viene generata dal KDC una volta ottenuta SA la workstation dimentica la pwd di Alice e ricorda soltanto SA

Schema (1) riduzione vulnerabilit


in altri termini, per ridurre la vulnerabilit, la prima cosa che effettua la workstation

richiedere al KDC una chiave di sessione SA per lutente Alice


SA sar valida soltanto per la sessione di login corrente; in generale, SA sar valida per un tempo molto ridotto, tipicamente poche ore e sar usata dalla workstation, che agir al posto di Alice, per verificare la sua identit se qualcuno dovesse rubare SA, a differenza di prima, questi pu impersonare Alice, ma solo per poco tempo; fino alla scadenza di SA

N-S Kerberos (2.a)


Fase di login
login usr pwd Alice needs a user session key

Alices workstation

KA{SA}

Alice

KDC

a) invents key SA b) finds Alices master key KA

la workstation ottiene la chiave di sessione SA per lutente Alice dopodich dimentica pwd e KA

Bob

N-S Kerberos (2.b)


Esecuzione di un comando remoto
rlogin Bob

Alice wants Bob

KDC

Alices workstation

SA{KAB, Bob}
ticket to Bob = KB{KAB, Alice}

i) invents key KAB ii) finds SA iii) finds KB

Alice

mutua autenticazione a chiave segreta KAB


conversazione cifrata e con controllo dintegrit

any commands

Bob

Im Alice, ticket = KB {KAB, Alice}

Schema (2) svantaggio


cos come illustrato, il precedente protocollo richiede al KDC di memorizzare, oltre alla chiave master di ogni utente anche la chiave di sessione; nel caso di Alice, il KDC deve memorizzare sia KA che SA ci evitabile utilizzando il cosiddetto Ticket-Granting Ticket (TGT) che il KDC invia ad Alice e consiste
nella chiave di sessione SA pi altre informazioni come il nome di Alice e la scadenza del TGT stesso

il tutto cifrato con la chiave master KKDC del KDC

Ticket-Granting Ticket (TGT)


Un Ticket-Granting Ticket, per il KDC, da inviare ad un utente U viene generato dal KDC e consiste
nella chiave di sessione SU, pi il nome dellutente UserName ed altre informazioni accessorie cifrate con la chiave master del KDC
come ad esempio lexpiration time del TGT

TGT = KKDC{SU, UserName, ExpirationTime, }

Uso del TGT


Durante il login iniziale, la workstation, che agisce al posto di Alice, richiede al KDC una chiave di sessione il KDC genera una chiave di sessione SA e la trasmette, alla workstation, cifrata con la chiave master di Alice KA il KDC trasmette anche un TGT
la workstation usa la chiave master di Alice KA per decifrare SA dimentica poi la pwd di Alice e ricorda solo SA e il TGT

Uso del TGT


quando Alice deve accedere ad una risorsa remota la sua workstation trasmette il TGT al KDC insieme al nome della risorsa (server) per la quale Alice ha bisogno di un ticket (diciamo Bob) il KDC decifra il TGT ed ottiene SA e usa SA per cifrare la chiave di sessione condivisa per Alice e Bob KAB in sintesi, il TGT informa il KDC di usare SA invece della chiave master di Alice KA

N-S Kerberos (3.a)


Fase di login
login usr pwd Alice needs a user session key and a TGT

Alices workstation

KA{SA}, TGT

Alice

KDC

a) invents key SA b) finds KA c) TGT = KKDC{SA, Alice}

la workstation ottiene la chiave di sessione SA per lutente Alice dopodich dimentica pwd e KA e ricorda solo SA e TGT

Bob

N-S Kerberos (3.b)


Esecuzione di un comando remoto
rlogin Bob

Alice wants Bob, TGT

KDC

Alices workstation

SA{KAB, Bob}
ticket to Bob = KB{KAB, Alice}

i) invents key KAB ii) finds SA from TGT iii) finds KB

Alice

mutua autenticazione a chiave segreta KAB


conversazione cifrata e con controllo dintegrit

any commands

Bob

Im Alice, ticket = KB {KAB, Alice}

Alcune note
Nelle prime versioni di Kerberos non esisteva la nozione di TGT
la comunicazione con il KDC utilizzava sempre la chiave master dellutente pi tardi, per aumentare la sicurezza, fu introdotta la chiave di sessione di utente generata in fase di login

lidea era che soltanto i TGT fossero generati dal KDC mentre gli altri ticket dovevano essere ottenuti da unaltra entit, che Kerberos chiama Ticket-Granting Server (TGS)

Alcune note
tuttavia, il Ticket-Granting Server deve avere lo stesso database del KDC
deve conoscere la chiave master di Bob KB per poter dare ad Alice un ticket per Bob

pertanto, nella pratica il TGS e il KDC di Kerberos sono la stessa cosa!


sarebbe pi facile comprendere Kerberos se la documentazione non facesse riferimento a due entit distinte (il TGS e il KDC) e a due set di messaggi distinti, uno per protocollo, che in pratica fanno la stessa cosa

Alcune note
in particolare, la documentazione di Kerberos fa riferimento a un Server di Autenticazione (Authentication Server AS) e a un Ticket-Granting Server (TGS) che sono collocati nel KDC, intendendo che in pratica sono la stessa cosa
la distinzione AS e TGS stata mantenuta per non stravolgere la documentazione rispetto alle prime versioni

pertanto, nel seguito si useranno i termini KDC, AS e TGS in modo intercambiabile

Standard di Autenticazione Kerberos V4

PROTOCOLLO KERBEROS V4

Configurazione
Ciascun principal ha una sua chiave segreta, detta chiave master Il server Kerberos chiamato KDC (Key Distribution Center)
a volte chiamato Authentication Server o KDC/AS

Il KDC ha un database con i nomi di tutti i principal, a lui afferenti, e le relative chiavi master Per ragioni di sicurezza, le chiavi master dei principal non vengono memorizzate in chiaro ma vengono memorizzate cifrate con una chiave segreta KKDC nota solo al KDC; KKDC detta la chiave master del KDC

Configurazione
La chiave master di un utente umano derivata dalla sua password le altre risorse associate agli utenti umani sono configurate utilizzando la loro chiave master Kerberos si basa sulla tecnologia a chiave segreta
generalmente si usa DES quale algoritmo di cifratura la versione V5 permette di impostare lalgoritmo di cifratura, per lo meno a livello protocollare ma nella pratica si usa sempre DES

In sintesi
Gli utenti umani devono memorizzare una password; i dispositivi di rete devono memorizzare una chiave segreta Il KDC ha un database con i nomi dei principal, a lui afferenti, e le relative chiavi master Il KDC deve anche ricordare una chiave segreta KKDC per se stesso
al fine di cifrare/decifrare il database con le chiavi degli utenti, e per generare i Ticket-Granting Tickets

Fasi di Kerberos
Nel seguito si esamineranno le due fasi di Kerberos:

1. Login: Alice effettua il login presso la sua workstation, ottenendo una chiave di sessione e un TGT 2. Esecuzione di un comando remoto: Alice esegue un comando su un server remoto per il quale prevista una fase preliminare di autenticazione la workstation di Alice effettuer lautenticazione al suo posto

KRB V4 Login/acquisizione di un TGT


Messaggio m1
Alice trasmette il proprio nome utente e password alla workstation

Messaggio m2 [AS_REQ]
La workstation invia un messaggio al KDC, in chiaro, contenente il nome utente di Alice

Messaggio m3 [AS_REP]
una volta ricevuto m2, il KDC restituisce alla workstation, le credenziali per il KDC, cifrate con la chiave master di Alice KA

Kerberos V4 Acquisizione di un TGT


m1

Workstation

m2

i) invents key SA ii) finds Alices master key KA iii) TGT = KKDC{Alice, SA}

Alice

[AS_REP] KA{SA, TGT}

m3

Login/acquisizione di un TGT

KDC

Alice, password

[AS_REQ] Alice needs a TGT

KRB V4 Credenziali per il KDC


Le credenziali di Alice per il KDC consistono in
una chiave di sessione di utente SA
una chiave segreta da usare durante la sessione di login

un Ticket-Granting Ticket (TGT), costituito da


la chiave di sessione SA il nome utente e la data di scadenza

il tutto cifrato con la chiave master del KDC KKDC


pertanto il TGT una stringa di bit non intelligibile per chiunque tranne che per il KDC

KRB V4 Credenziali per il KDC


le credenziali di Alice per il KDC, sono inviate indietro, dal KDC ad Alice, cifrate con la chiave master KA
le informazioni nel TGT sono pertanto cifrate due volte; prima con KKDC e poi con KA Kerberos V4 stato spesso criticato per questa scelta che comporta uno sforzo computazionale doppio non giustificato da un reale beneficio in termini di sicurezza

la workstation converte la password digitata da Alice nella corrispondente chiave DES KA e una volta ricevute le credenziali, tenta di decifrarle con KA

KRB V4 Credenziali per il KDC


se tale decifratura viene eseguita con successo
cio se Alice ha digitato correttamente la password

la workstation, scarta la chiave master di Alice KA (la chiave derivata dalla password) e memorizza invece il TGT e la chiave di sessione SA

Alcuni dettagli
In realt, Kerberos V4 richiede allutente di inserire la propria password solo dopo che la workstation ha ricevuto le credenziali dal KDC
la workstation mantiene lutente in attesa e gli permette di inserire la password solo dopo aver ricevuto la risposta dal KDC

lobiettivo ridurre il pi possibile il tempo di permanenza della password dutente nella workstation
si tratta di una buona regola generale di sicurezza tuttavia, nella pratica non si ha un vantaggio significativo in quanto i tempi in gioco sono dellordine dei secondi

Alcuni dettagli
Invece, in Kerberos V5, lutente inserisce la password prima che il KDC fornisca le credenziali alla workstation in particolare, in V5, la workstation deve prima provare di conoscere la password dutente dopodich pu richiedere le credenziali per il KDC in questo modo meno facile sferrare un attacco offline sulla password nella versione V4, chiunque, sostenendo di essere Alice, ottiene KA{SA, TGT} senza dover intercettare alcun messaggio
KA la chiave master di Alice, ottenuta dalla sua password

KRB V4 Documentazione ufficiale


la documentazione ufficiale di Kerberos nomina i messaggi nel seguente modo KRB_AS_REQ: Kerberos Authentication Server Request
corrisponde al messaggio m2, per brevit nello schema si usato AS_REQ

KRB_AS_REP: Kerberos Authentication Service Reply


corrisponde al messaggio m3, per brevit nello schema si usato AS_REP

Scopo del TGT


Qual lo scopo del TGT?
Risposta
Quando Alice deve accedere a una risorsa remota, la sua workstation invia il TGT al KDC insieme a una richiesta di un ticket per il nodo di tale risorsa il TGT contiene le informazioni di cui ha bisogno il KDC relative alla sessione di login di Alice
la chiave di sessione SA, il nome utente di Alice, la data di scadenza,

tali informazioni permettono al KDC di operare senza la necessit di mantenerle in memoria

Scopo del TGT


il KDC ha una base di dati prevalentemente statica, e per ogni richiesta invia una risposta e dimentica ci che accaduto ci offre diversi vantaggi pratici, come semplificare la replicazione dei KDC e il non dover preoccuparsi di mantenere lo stato quando si verificano dei crash di sistema

KRB V4 Esecuzione comando remoto


Nelle prossime slide si esaminer lesecuzione di un comando remoto (rlogin), presso un server Bob per il quale prevista unautenticazione preliminare di Alice, che sar eseguita dalla sua workstation comodo distinguere due sottofasi
la workstation acquisisce dal KDC un ticket per Bob la workstation (che agisce al posto di Alice) e Bob si autenticano reciprocamente

KRB V4 Acquisizione di un ticket


Si supponga che dopo il login, Alice digiti un comando che richiede laccesso ad un nodo remoto (messaggio m4)
ad esempio rlogin Bob che permette ad Alice di effettuare il login su Bob

la workstation invia al KDC (messaggio m5) il TGT, il nome Bob e un authenticator il cui scopo provare che la workstation conosce la chiave di sessione SA
lauthenticator consiste nel timestamp cifrato con SA

tale richiesta (m5) nella documentazione di Kerberos chiamata KRB_TGS_REQ

KRB V4 Acquisizione di un ticket


mentre la corrispondente risposta (m6) chiamata KRB_TGS_REP
per brevit, nello schema si sono usati TGS_REQ e TGS_REP, rispettivamente

TGS_REP contiene il ticket per Bob e KAB (la chiave di sessione che Alice e Bob condivideranno) cifrate con SA (la chiave di sessione che Alice condivide con il KDC)

KRB V4 Acquisizione di un ticket


[TGS_REQ]
m4 m5

Workstation

[TGS_REP]
SA{Bob, KAB, ticket to Bob}

m6

a) invents key KAB b) decrypts TGT to get SA c) decrypts authenticator d) verifies timestamp e) finds Bobs master key KB f) ticket to Bob = KB{Alice, KAB}

Alice

Alice ottiene un ticket per Bob

KDC

rlogin, Bob

Alice wants to talk to Bob TGT = KKDC{Alice, SA} authenticator = SA{timestamp}

KRB V4 Acquisizione di un ticket


il KDC decifra il TGT (con KKDC) ed ottiene la chiave di sessione SA; controlla anche la data di scadenza del TGT se il TGT valido, genera una nuova chiave KAB
la chiave segreta condivisa tra Alice e Bob

e costruisce un ticket per Bob composto da


la nuova chiave KAB, il nome Alice (lutente da cui ha ricevuto la richiesta) e lexpiration time del ticket stesso il tutto cifrato con la chiave master di Bob, KB

il KDC invia il ticket insieme al nome Bob e KAB, alla workstation, cifrando tali informazioni con SA (messaggio m6) una volta ricevute, la workstation le decifrer con SA

Sulluso dellauthenticator
Necessit di sincronizzare gli orologi
luso dellauthenticator comporta che gli orologi delle risorse di rete debbano essere ragionevolmente ben sincronizzati devono essere tollerati dei ritardi tra i vari orologi la forbice permessa viene impostata in modo indipendente su ogni server pertanto, alcuni server possono essere configurati in modo tale da tollerare ritardi maggiori tipicamente, si tollera una forbice di cinque minuti, si assume che si in grado di garantire un tale disallineamento senza dover sostenere degli sforzi amministrativi considerevoli

Sulluso dellauthenticator
ma nella pratica tale assunzione si rivelata pi problematica del previsto per tale ragione, conviene usufruire di servizi per la sincronizzazione oraria, che permettono di risolvere in problema in modo efficace

si osservi inoltre che luso dellauthenticator evitabile; non aumenta il livello di sicurezza
se qualcuno che non conosce SA trasmettesse il TGT e il nome Bob al KDC, non sarebbe comunque in grado di decifrare la risposta del KDC che cifrata con SA

Sulluso dellauthenticator
i progettisti di Kerberos inclusero lauthenticator per ragioni di uniformit
cio per rendere il protocollo che regola la comunicazione con il TGS analogo ai protocolli che regolano la comunicazione con altre risorse i quali richiedono invece la presenza di un autheticator per sventare attacchi di tipo replay di vecchie richieste

KRB V4 Mutua autenticazione Alice/Bob


una volta che la workstation in possesso di un ticket per Bob, pu inviare una richiesta a Bob nella documentazione ufficiale di Kerberos tale richiesta chiamata KRB_AP_REQ
KeRBeros APplication REQuest per semplicit si user AP_REQ (messaggio m7)

AP_REQ costituita da
il ticket per Bob un authenticator, ovvero un timestamp cifrato con la chiave KAB

KRB V4 Mutua autenticazione Alice/Bob


KDC

Alices Workstation

Alice

m7

[AP_REQ] ticket to Bob = KB{Alice, KAB} authenticator = KAB{timestamp} [AP_REP] KAB{timestamp + 1}

m8

Login su Bob dalla workstation di Alice

Bob

KRB V4 Mutua autenticazione Alice/Bob


la risposta di Bob nota come KRB_AP_REP, in breve AP_REP (messaggio m8) Bob decifra il ticket ed ottiene KAB e il nome Alice
assume pertanto che lentit (workstation) che conosce KAB stia agendo al posto di Alice

poi Bob decifra lauthenticator per assicurarsi che lentit con cui sta dialogando conosca realmente KAB
verifica se il timestamp ottenuto prossimo allorario corrente (cinque minuti di tolleranza) in questo modo pu sventare eventuali attacchi di tipo replay di vecchie richieste (pi vecchie di cinque minuti)

Sul controllo del timestamp


per assicurarsi che non sia in corso un attacco di tipo replay che sfrutta richieste molto recenti Bob dovrebbe mantenere i memoria tutti i timestamps ricevuti negli ultimi cinque minuti e verificare, non appena riceve un nuovo timestamp, che sia diverso da tutti quelli in memoria e che sia prossimo allora corrente
ogni authenticator pi vecchio di cinque minuti viene scartato a priori

tuttavia, Kerberos V4 non si preoccupa di salvare i timestamp

Sul controllo del timestamp


salvare i timestamp non sarebbe comunque daiuto se Bob fosse un servizio replicato e ogni sua istanza usasse la stessa chiave master a meno che non viene incluso lindirizzo di rete dellistanza di Bob (dinteresse) nellauthenticator

KRB V4 Mutua autenticazione Alice/Bob


per completare la mutua autenticazione necessario anche che la workstation di Alice autentichi Bob, a tale scopo Bob incrementa di ununit il timestamp ottenuto decifrando lauthenticator cifra con KAB il valore ottenuto; cio calcola KAB{timestamp + 1} e lo rispedisce indietro alla workstation
la workstation di Alice ora rassicurata sul fatto che sta dialogando con il vero Bob

KRB V4 Mutua autenticazione Alice/Bob


in quanto, il suo interlocutore (il presunto Bob) conosce KAB deve essere stato in grado di decifrare il ticket per Bob deve conoscere la chiave master di Bob KB
si assume chiaramente che
solo la workstation di Alice, il KDC e in seguito Bob conoscano KAB solo Bob e il KDC conoscano KB

Confidenzialit e Integrit
Successivamente, dipendentemente dalla applicazione, i messaggi tra Alice e Bob possono essere non protetti (in chiaro) oppure pu essere protetta
solo lintegrit, solo la confidenzialit, sia lintegrit che la confidenzialit

Confidenzialit e Integrit
la protezione della confidenzialit e/o della integrit pu essere gestita in modo autonomo dalle applicazioni che usano Kerberos per lautenticazione tuttavia, Kerberos mette anche a disposizione delle facility per proteggere integrit e/o confidenzialit a tale scopo utilizza DES nella modalit operativa PCBC (Plaintext Cipher Block Chaining)
una variante di CBC che permette di rivelare eventuali modifiche ai blocchi cifrati

Bibliografia
[DES81] DES Modes of Operation, FIPS PUB 81, National Bureau of Standards, U.S. Department of Commerce, 1981. [KPS02] C. Kaufman, R. Perlman, M. Speciner. Network Security Private Communication in a Public World. Prentice Hall.

[NEED78] R. M. Needham, M. D. Schroeder. Using Encryption for Authentication in Large Networks of Computers. Communications of the ACM, Vol. 21, December 1978, pp. 993-999.
[PFL08] C. P. Pfleeger, S. L. Pfleeger. Sicurezza in Informatica. Pearson, Prentice Hall. [STA07] W. Stallings. Sicurezza delle reti. Pearson, Prentice Hall. [Wiki-it] http://it.wikipedia.org/wiki/

[Wiki-en] http://en.wikipedia.org/wiki/
[ISECOM] Institute for Security and Open Methodologies

m1

Workstation

m2

i) invents key SA ii) finds Alices master key KA iii) TGT = KKDC{Alice, SA}

Alice

[AS_REP] KA{SA, TGT}

m3

Acquisizione di un TGT

KDC

Alice, password

[AS_REQ] Alice needs a TGT

[TGS_REQ]
m4

Workstation

m5

[TGS_REP]
SA{Bob, KAB, ticket to Bob}

m6

a) invents key KAB b) decrypts TGT to get SA c) decrypts authenticator d) verifies timestamp e) finds Bobs master key KB f) ticket to Bob = KB{Alice, KAB}

Alice

Alice ottiene un ticket per Bob

KDC

rlogin, Bob

Alice wants to talk to Bob TGT = KKDC{Alice, SA} authenticator = SA{timestamp}

Alices Workstation

KDC

Alice

m7

[AP_REQ] ticket to Bob = KB{Alice, KAB} authenticator = KAB{timestamp} [AP_REP] KAB{timestamp + 1}

m8

Login su Bob dalla workstation di Alice

Bob