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