Sicurezza nei Sistemi Informativi
Protocolli per l’instaurazione
di chiavi effimere
-
Kerberos
Ing. Orazio Tomarchio
[email protected]
Dipartimento di Ingegneria Informatica e delle Telecomunicazioni
Università di Catania
Protocolli per l’instaurazione di chiavi effimere
Problema: generazione o calcolo di chiavi effimere condivise

Proprietà fondamentale che deve essere verificata:
autenticazione (esplicita) della chiave effimera






La chiave effimera è autenticata esplicitamente se e solo se ci sono garanzie oggettive che
ne sono a conoscenza solo le entità attive e autenticate che hanno partecipato allo
scambio
Le “entità che hanno partecipato allo scambio” possono, in generale, essere più di due
Un protocollo di scambio di chiavi autenticate è un protocollo che permette a due o
più entità di scambiarsi (o calcolare) chiavi effimere con la proprietà specificata sopra
Naturalmente c’è un legame forte tra l’autenticazione delle entità coinvolte nel
protocollo e l’autenticazione delle chiavi effimere
In questo senso i protocolli per l’instaurazione di chiavi effimere sono un superset dei
protocolli di autenticazione
La stragrande maggioranza dei protocolli che vedremo, infatti, realizzano anche le
funzionalità di autenticazione, oltre che quelle di instaurazione di chiavi effimere
O.Tomarchio
Sicurezza nei Sistemi Informativi
2
Perché usare chiavi effimere?





Cambiando frequentemente una chiave, si limita la quantità di ciphertext per
attacchi di tipo ciphertext-only
Nel caso in cui una chiave, usata per crittografare dati, venga scoperta da un
attaccante, tutti i dati crittografati con quella chiave verranno compromessi.
In questo caso, usare chiavi effimere significa limitare i danni
Permettere la gestione efficiente di chiavi diverse da usarsi per ciascuna
entità con la quale si comunica
Similmente, gestire efficacemente il caso nel quale si vogliano usare chiavi
diverse per diverse sessioni di comunicazione con la stessa entità
Quindi, una possibile architettura sarebbe quella nella quale ciascuna entità
in rete possiede una (o più) master key, grazie alla quale possono essere
generate e trasportate chiavi effimere Kt da utilizzare nelle situazioni e per
le ragioni viste sopra
O.Tomarchio
Sicurezza nei Sistemi Informativi
3
Proprietà ideali: Perfect Forward Secrecy (PFS)
La compromissione della master key ad un instante t
non deve compromettere tutte le chiavi effimere
generate fino all’istante t-1
O.Tomarchio
Sicurezza nei Sistemi Informativi
4
Proprietà ideali: Perfect Forward Secrecy (PFS)

Scenario al quale si applica la PFS




T registra tutta la sessione (criptata) tra A e B. In seguito, T riesce ad
impossessarsi di Ka e Kb
Se il meccanismo utilizzato da A e B per generare Kt gode di PFS, T non sarà in
grado di recuperare Kt, e quindi di violare la confidenzialità della sessione (svoltasi
nel passato)
Esempi


A e B generano una chiave effimera Kt utilizzando un meccanismo che impiega le
loro master key Ka e Kb, e scambiano dati crittografati con Kt
Non gode di PFS un meccanismo che, per instaurare Kt, la fa generare ad A e la
invia a B crittografata con Kpub di B
Nota: anche se un protocollo gode di PFS, il fatto che T riesca a venire in
possesso delle master key le permetterà di impersonare A e B nel futuro
O.Tomarchio
Sicurezza nei Sistemi Informativi
5
Proprietà ideali: immunità ad attacchi known-key
La compromissione di una o più chiavi effimere usate nel
passato non deve permettere la compromissione delle
chiavi effimere che verranno usate nel futuro, o
permettere a T di impersonare A e B nel futuro
O.Tomarchio
Sicurezza nei Sistemi Informativi
6
Proprietà ideali: immunità ad attacchi known-key

Analoghi agli attacchi known-plaintext per gli algoritmi crittografici



Là si conosceva una coppia <c,m>, e con questa informazione si cercava di
scoprire K
Qui si conosce una chiave effimera passata, e si cerca di scoprire la master key, o
le chiavi effimere future
La prevenzione di attacchi di questo tipo è importante perché


Le chiavi effimere sono considerate meno importanti delle master key, e hanno
quindi probabilità maggiore di essere compromesse
Le chiavi effimere possono essere usate per crittografare grandi quantità di dati,
e sono quindi più esposte ad attacchi crittanalitici
O.Tomarchio
Sicurezza nei Sistemi Informativi
7
Classi principali di protocolli
Kt trasportata




Kt derivata da dati scambiati
Una delle due entità, o una terza
parte di fiducia, genera Kt
Kt viene inviata alle entità
interessate crittografata con
algoritmi simmetrici o asimmetrici,
utilizzando la master key
Vantaggi



Le entità coinvolte generano e si
scambiano dati che serviranno poi
a derivare Kt, con opportuni
meccanismi crittografici
Tutte le entità coinvolte
partecipano alla generazione di Kt
Vantaggi

Efficienza di rete


Estrema semplicità

Problemi



PFS non possibile
Più complicato proteggersi da
replay attack
O.Tomarchio
PFS diventa possibile
Replay attack praticamente
impossibili
Problemi

Relativa complessità e inefficienza
di rete
Sicurezza nei Sistemi Informativi
8
Esempi di protocolli a due entità
per il trasporto di chiavi effimere

Semplice trasporto di Kt, criptata con algoritmo
simmetrico o asimmetrico



Al solito, includendo l’identificatore di B si possono
evitare replay attack verso A, e attacchi da Bob, che
potrebbe inoltrare la chiave a qualcun altro fingendosi
Alice
Problemi: replay attack (verso B) e PFS
Nota importante: la Ek deve anche garantire integrità,
oltre che confidenzialità



Per esempio: Ek(m | MDC(m))
Trasporto con nonce (evita i replay attack)
Autenticazione forte della sorgente della chiave: uso
delle firme digitali

t: timestamp, per contrastare replay attack


Potrebbe essere sostituita da una nonce (generata da Bob)
Se il meccanismo di firma digitale permette a chi ne
controlla la validità (Bob) di recuperare i dati firmati,
l’invio di t e Kt al di fuori della firma non è necessario
O.Tomarchio
Sicurezza nei Sistemi Informativi
9
Protocolli (alg. simmetrici) tra più di due entità:
il concetto di Key Distribution Center (KDC)



Utilizzando algoritmi simmetrici, la distribuzione di chiavi
effimere tra n coppie di nodi richiede che ciascun nodo
conosca la master key di (n-1) nodi
Questo approccio può rapidamente diventare ingestibile
per reti di grande dimensione
Key Distribution Center



Condivide master key simmetriche con ciascuno degli altri
nodi (le indicheremo con KA, KB, …)
Gode della fiducia di tutti degli altri nodi
Funge da intermediario per l’autenticazione e per
l’instaurazione di chiavi effimere Kt tra ogni coppia di nodi che
ne faccia richiesta

O.Tomarchio
Concetto di ticket
Sicurezza nei Sistemi Informativi
10
Protocolli (alg. simmetrici) tra più di due entità:
il concetto di Key Distribution Center (KDC)

Vantaggi



Scalabilità: se si aggiunge un nuovo nodo X, basta
semplicemente aggiungere KX al KDC
Se un nodo Y viene compromesso (per esempio, la
sua master key viene rubata), basta semplicemente
rimuovere la KY dal KDC
Problemi


La sicurezza di tutta la rete ora si basa sul KDC: cosa
succede se viene rubato il database degli utenti dal
KDC?
Il KDC può diventare il collo di bottiglia della rete
O.Tomarchio
Sicurezza nei Sistemi Informativi
11
KERBEROS
Come funziona Kerberos: Gli attori
Chiave KDC generata
durante la creazione del ruolo DC
User
Chiave utente generata
dalla password di logon
Autenticazione
con
Messaggi Criptati
KDC
Database di
Security Principal
Chiave host generata
durante il join al dominio
Server
Tutti gli attori sono parte del cosiddetto realm Kerberos
Per comunicare con fiducia devono condividere un segreto
O.Tomarchio
Sicurezza nei Sistemi Informativi
13
Come funziona Kerberos:
Visione d’insieme
1 - Richiesta di autenticazione
TGT
2 – Se l’utente è riconosciuto viene restituito
un Ticket-Granting-Ticket che consente
la richiesta di service ticket
User
TGT
SR
3 – Viene richiesto un Service Ticket per
accedere alla macchina Server1.
Nella richiesta è passato anche il TGT
che identifica l’utente
KDC
ST
4 – Il KDC rilascia un Service Ticket per
l’accesso al server Server1
O.Tomarchio
ST
Server1
Sicurezza nei Sistemi Informativi
14
Come funziona Kerberos:

TGT: Ticket-Granting-Ticket
identifica l’utente presso il KDC durante le richieste di
Service Ticket


Evita il mantenimento dei dati di logon
ST: Service Ticket
Valido solamente tra User e Servizio



Ticket rilasciati
Consente la mutua autenticazione
Accelera la velocità di connessione perché rende non necessaria
l’autenticazione da parte del servizio
La criptatura assicura che i ticket siano usati solo dagli
attori appropiati
O.Tomarchio
Sicurezza nei Sistemi Informativi
15
Cos’è e come funziona Kerberos:

Componenti
Il KDC consiste di due componenti

Authentication Service (AS)



Riceve: AS_REQuest
Invia: AS_REPly
Ticket Granting Server (TGS)


O.Tomarchio
Riceve: TGS_REQuest
Invia: TGS_REPly
Sicurezza nei Sistemi Informativi
16
Come funziona Kerberos
AS_REQ
KDC (AS)
User
Server
O.Tomarchio
Sicurezza nei Sistemi Informativi
17
Come funziona Kerberos:
Logon Iniziale
AS_REQ
User

Client principal name
Timestamp
Krbtgt principal name
Requested lifetime
KDC (AS)
L’AS verifica l’esistenza dell’account e costruisce un Reply
criptato


O.Tomarchio
Cifratura eseguita con la chiave generata dalla password utente
Solo l’utente vero sarà in grado di leggere la risposta
Sicurezza nei Sistemi Informativi
18
Come funziona Kerberos:
Pre-autenticazione
AS_REQ
User
Client principal name
Timestamp
Krbtgt principal name
Requested lifetime
KDC
AS decripta il timestamp e, se corrisponde all’ora
attuale (con il delta consentito – 5’ per default), la
richiesta è considerata valida

Il KDC può richiedere la pre-autenticazione

O.Tomarchio
Riduce i rischi di riuso dei ticket associati ad attacchi off-line a
dizionario/forza bruta
Sicurezza nei Sistemi Informativi
19
Come funziona Kerberos
AS_REP
TGT
KDC (AS)
User
Server
O.Tomarchio
Sicurezza nei Sistemi Informativi
20
Come funziona Kerberos:
Risposta dell’AS
AS_REP
User
TGT
TGT viene salvato
in locale e viene
usato per le
successive
transazioni tra
utente e TGS
O.Tomarchio
USER-TGS key
Krbtgt principal name
Ticket lifetime
TGT
USER-TGS key
Client principal name
Ticket lifetime
KDC Timestamp
Client IP address
KDC (AS)
Criptato con la chiave utente
USER-TGS Key
generata dall’AS
Criptato con la chiave del TGS
Sicurezza nei Sistemi Informativi
21
Come funziona Kerberos
TGS_REQ
TGT
KDC (TGS)
TGT
User
Server
O.Tomarchio
Sicurezza nei Sistemi Informativi
22
Come funziona Kerberos:
Il TGS - accesso ai servizi
TGS_REQ
Service principal name
Requested lifetime
TGT
USER-TGS key
Client principal name
Ticket lifetime
KDC Timestamp
Client IP address
User
Autenticator
Client timestamp

Criptato con la
chiave del TGS
KDC (TGS)
Criptato con la USER-TGS key
L’Autenticator garantisce che la richiesta arrivi dal client e
impedisce gli attacchi di tipo reply
O.Tomarchio
Sicurezza nei Sistemi Informativi
23
Come funziona Kerberos:
Il TGT
Inviato con TGS_REQ
TGT
Dialogo
con la USER-TGS key
USER-TGScriptato
key
Client principal name
Criptato con la
chiave del TGS
Ticket lifetime
KDC Timestamp
Client IP address
User


KDC (TGS)
Il KDC non mantiene la USER-TGS key
La copia della USER-TGS key viene inviata con il TGT
O.Tomarchio
Sicurezza nei Sistemi Informativi
24
Come funziona Kerberos
TGS_REP
TS
KDC (TGS)
TGT
User
Server
O.Tomarchio
Sicurezza nei Sistemi Informativi
25
Come funziona Kerberos:
Risposta del TGS
TGS_REP
User
TGT
ST
USER-TGS key
Ticket lifetime
USER-SERVICE key
Service Ticket
USER-SERVICE key
Client principal name
Ticket lifetime
KDC Timestamp
Client IP address
O.Tomarchio
KDC (TGS)
Criptato con la USER-TGS key
USER-SERVICE Key
generata dal TGS
Criptato con la chiave
SERVICE-TGS
Sicurezza nei Sistemi Informativi
26
Come funziona Kerberos
KDC
TGT
TS
User
TS
SERVICE_REQ
Server
O.Tomarchio
Sicurezza nei Sistemi Informativi
27
Come funziona Kerberos:
Il TGT
Service Request
User
Service Ticket
Dialogo
criptato
USER-SERVICE
keycon la USER-SERVICE key
Client principal name
Criptato con la
chiave
Ticket lifetime
SERVICE-TGS
KDC Timestamp
Client IP address
Autenticator
Client timestamp

Server
Criptato con la
USER-SERVICE key
Kerberos non definisce un protocollo per la richiesta dei servizi
e per l’autorizzazione di accesso
O.Tomarchio
Sicurezza nei Sistemi Informativi
28
Conclusioni


Standard de facto per l’autenticazione
Disponibile per molte diverse piattaforme





In Windows 2000/XP/2003 è supportato in modo nativo e
automaticamente installato
Non definisce standard per i dati di autorizzazione
Consente la mutua autenticazione Client/Server
Riduce i tempi di connessione Client/Server
Versione attuale Kerberos 5
O.Tomarchio
Sicurezza nei Sistemi Informativi
29
Scarica

chiavi effimere