Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Protocolli diProtocolli di t ti iautenticazione
Ing. Michela Cancellaro Ing. Federica Battisti
Autenticazione• L'autenticazione è il processo che consente di identificare qualcun
altro.altro.• L'autenticazione deve avvenire on-line, cioè istantaneamente. Deve
essere distinta dall'autenticazione di colloqui passati, concetto cheinveste la firma elettronica.
• Sulla rete l'autenticazione deve essere effettuata solamente utilizzandoscambi di messaggi e dati che fanno parte di un protocollo discambi di messaggi e dati, che fanno parte di un protocollo diautenticazione.
• L'autenticazione deve essere fatta prima di iniziare lo scambio dipinformazioni, quindi il protocollo di autenticazione viene prima deglialtri (si parla di protocolli di hand-shaking). In effetti prima di parlareci si presenta o almeno ci si sal ta!ci si presenta o almeno ci si saluta!
…quello che si sa• L’identità di un principal può essere verificata in base a tre
fattori:fattori:1. Quello che si sa: password. La password è una chiave che si deve
inserire per provare di conocerla. La password dovrebbe esserep p psufficientemente complessa da essere difficile da indovinare, ed altempo stesso sufficientemente semplice affinchè l’utente la possaricordarericordare.
…quello che si ha2. Quello che si ha: smartcard. Una smartcard è una carta in plastica, simile ad una
carta di credito, contenente al suo interno un micro-chip. Sulla superficie della cartapossono essere impresse alcune informazioni: un codice a barre od una strisciamagnetica, le generalità del possessore della carta, la data di scadenza della carta edalcune informazioni riguardanti il produttore. Attraverso i contatti la carta puòi li t i di d ti l t it i f tti di h dricevere alimentazione, comandi e dati; le carte necessitano infatti di un hardware
esterno per operare, che fornisce loro anche la necessaria alimentazione.Recentemente sono state sviluppate della carte prive di contati fisici che comunicanocon l’esterno tramite una antenna Le dimensioni della carta sono stabilite dallocon l’esterno tramite una antenna. Le dimensioni della carta sono stabilite dallostandard ISO 7816 che definisce anche le caratteristiche fisiche della plastica, laposizione dei contatti e le modalità di comunicazione.
…quello che si è3. Quello che si è: dati biometrici. I meccanismi sono diversi: riconoscimento della voce, delle
impronte digitali, delle dimensioni delle dita della mano, della forma dei vasi sanguigni dellaretina, dei pattern di colore dell’iride dell’occhio, ecc. In ogni caso sono necessari dei complessidispositivi fisici per effettuare il riconoscimento. Usi:
1. Autenticazione: l’accertamento che la caratteristica sia quella dell’utente che la presenta.q p
2. Identificazione: dato un campione biometrico, si vuole scoprire a chi appartiene.
3. Unicità: dato un campione biometrico, si vuole verificare se il proprietario è gà nel database
Proprietà dei protocolli di autenticazione
• Reciprocità dell’autenticazione• Complessità• Complessità
– Efficienza computazionaleEfficienza della comunicazione– Efficienza della comunicazione
• Costo• Terze parti• Terze parti
– Se una terza parte è necessaria– Se è necessaria in tempo realeSe è necessaria in tempo reale– Natura della fiducia richiesta dalla terza parte
• Quali garanzie di sicurezza sono offerteQuali garanzie di sicurezza sono offerte• Come e dove sono mantenute le chiavi e/o i segreti
Passwords (Autenticazione Debole)(Autenticazione Debole)
Passwords (Autenticazione Debole)
• Stringhe di 6 - 8 caratteri che permettono l’identificazionePassword fisse/PIN password one time– Password fisse/PIN, password one-time
• Forma di autenticazione su “qualcosa che sai”• Forma di autenticazione su qualcosa che sai
• Proprietà• Proprietà– Non reciprocità – normalmente le password permettono
identificazione unilaterale– Bassa complessità – molto efficienti sia dal punto di vista
computazionale che dal punto di vista della comunicazione– Normalmente non è richiesta una terza parte, (il Single Sign On
rappresenta l’eccezione)L hi è l t t t i d ll’ t t d i fil– La chiave è normalmente tenuta a memoria dall’utente ed in un filedal sistema
Attacchi alla Password fisse• Attacchi Replay
– Osservazione durante l’inserimento, social engineering (attaccanteOsservazione durante l inserimento, social engineering (attaccanteconvince in modo subdolo un dipendente a fornirgli le informazioninecessarie per accedere al sistema), cavalli di TroiaE d i l di i i i hi– Eavesdropping su un canale di comunicazione in chiaro
• Ricerca esaustiva– Random o sistematicamente tentare le password onlineRandom o sistematicamente tentare le password online– Ricerca offline su un file di password
• Attacchi tipo dizionario– Si assume che non tutte le password abbiano la stessa probabilità– E’ sufficiente che un utente scelga una password debole
L’attacco a di ionario pro a solamente le possibili pass ord più probabili– L’attacco a dizionario prova solamente le possibili password più probabili• Attacchi su password note
– Molti sistemi sono provvisti di password “standard” (di servizio op p (ripristino).
Sicurezza delle Password Fisse• Password criptate
Scopo: evitare un troppo facile accesso dallo staff interno– Scopo: evitare un troppo facile accesso dallo staff interno– Normalmente, la password non è criptata usando una chiave
simmetrica, ma piuttosto usando una funzione di hash one-way, p y• e.g., la password di Alice è immagazzinata come h(Alice,pwd)
• Regole sulle Password• la password deve avere almeno 8 caratteri, o usare passphrase
(insieme di parole brevi usate come singola password)• la pass ord de e incl dere mai scole min scole cifre e caratteri• la password deve includere maiuscole, minuscole, cifre e caratteri
speciali• la password non dovrebbe avere un significato• è necessario modificare la password con regolarità (tipicamente 30
giorni)• non si deve utilizzare la stessa password su sistemi diversi• non si deve utilizzare la stessa password su sistemi diversi
Sicurezza delle Password Fisse• Rallentamento nella verifica della password
Lo scopo è limitare l’uso di programmi per la ricerca esaustiva– Lo scopo è limitare l uso di programmi per la ricerca esaustiva– Normalmente si ottiene applicando in maniera ricorsiva una
funzione più semplice in cui l’iterazione t+1 usa il risultatop pdell’iterazione t
– Deve essere accettabile per gli utenti (e.g., un secondo)• Salting
– Scopo: limitare l’uso di attacchi simultanei tipo dizionario– Aggiunge alcuni bit alla password prima dell’hashing– Normalmente, qualcosa legato al tempo o allo user id– L’informazione rimane nel file delle password
Personal Identification Numbers• Normalmente usati come “qualcosa che si conosce” in
combinazione con “qualcosa che si possiede”combinazione con qualcosa che si possiede– Molto spesso una carta di credito o di bancomat– Tipicamente brevi (4 cifre), per essere ricordati a memoria.Tipicamente brevi (4 cifre), per essere ricordati a memoria.
• Per impedire ricerche esaustive, carta viene ritirata (o disabilitata)dopo 3- 4 tentativi.p
• Per permettere l’uso con dispositivi offline, il PIN può essereimmagazzinato sulla carta, alcune volte criptato con una “masterkey”
• Questa è una forma di autenticazione a due livelli, dove laseconda chiave ad alta entropia è immagazzinata sulla carta
Passkeys (passwd-derived keys)• Password utente fatta corrispondere (mediante 1WHF) a una
chiave crittografica (i e DES a 56-bit): chiamata passkeychiave crittografica (i.e., DES a 56-bit): chiamata passkey
• passkey usata per criptare la comunicazione• passkey usata per criptare la comunicazione– Più resistente della password contro un attacco di tipo replay (se
ricerca esaustiva su passwd non piu` facile di passkey)p p p y)– Per ottenere passkey che cambia nel tempo, aggiungere contatore
alla password– A volte aggiunto salt basato su userid
One-time Password• Verso autenticazione forte: soluzione parziale contro attacchi tipo
eavesdropping e replayeavesdropping e replay.• Variazioni:
– Liste condivise di one-time passwordListe condivise di one time password– Aggiornamento sequenziale delle one-time password
• Password i+1 concordata quando avviene autenticazione con password iq p– Uso di funzioni one-way per creare una sequenza
• Lamport: Pi= H(Pi+1), dove H( ) è una 1WF– Nota 1: autenticazione richiede un contatore– Note 2: un attacco tipo replay sarebbe possibile se la sequenza
fosse in avantifosse in avanti
• Implementazioni commerciali con generatori automatici hardware
Identificazione Challenge-ResponseIdentificazione Challenge Response (Autenticazione Forte)
Autenticazione basata su un segreto condiviso
Protocolli Challenge-response: autenticazione a due vie
Ri sono le richieste (challenge), i indica il richiedente (numeri moltodi d tti NONCE d ti i hi )grandi detti NONCE mandati in chiaro)
Ki sono le chiaviK è la session keyKS è la session key
Autenticazione basata su un segreto condiviso
Protocolli Challenge-response: autenticazione a due vie ridotto
Purtroppo talvolta l’utente C rompe il funzionamento delprotocollo con l’attacco per riflessioneprotocollo con l attacco per riflessione
Regole generali1. Fare in modo che chi inizi l’autenticazione provi la sua
identità prima che lo faccia chi rispondeidentità prima che lo faccia chi risponde.
2 Far sì che i due soggetti usino chiavi differenti per autenticarsi2. Far sì che i due soggetti usino chiavi differenti per autenticarsianche se ciò significa usare due chiavi condivise.
3. Far sì che i due soggetti usino, per le richieste, numeri presi dainsiemi diversi.
4. Rendere il protocollo resistente ad attacchi che coinvolgonop guna seconda sessione parallela, dove le informazioni ottenuteda una sessione possono essere usate per l’altra.
Attacco per riflessione… Soluzione: HMAC
Non c’è possibilità di illudere Alice che Trudy sia Bob perchéTrudy non riesce ad indurre nessuna delle due parti a cifrare ocalcolare l’hash di un valore a sua scelta. Entrambi gli HMACincludono dei valori scelti dalla destinazione cioè qualcosaincludono dei valori scelti dalla destinazione, cioè qualcosache Trudy non può controllare.
Scambio di chiave: Deffie-Hellman
Tuttavia…Trudy può effettuare un attacco bucket brigade detto manin the middle
Autenticazione con KDCIntroducendo un centro di distribuzione delle chiavi KDC (keydistribution center), ogni utente ha una singola chiave condivisa colKDC cui sono affidate la gestione dell’autenticazione e della chiave diKDC cui sono affidate la gestione dell autenticazione e della chiave disessione
Svantaggio: il metodo è vulnerabile rispetto al replay attack (attaccodi i ti i )di ripetizione)Soluzioni:
timestamp (contrassegno temporale): i messaggi scaduti vengono– timestamp (contrassegno temporale): i messaggi scaduti vengonosubito scartati dal destinatario;
– mettendo un nonce in ogni messaggio, il soggetto scarta tutti ig gg , ggmessaggi contenenti nonce già usati.
– Needham-Schroeder
Needham-Schroeder
D b l d hi hi di i lDebolezza: ottenendo una vecchia chiave di sessione nel testoin chiaro, Trudy sarà in grado di stabilire una sessione conBob Le basterà ripetere il messaggio 3 che corrisponde allaBob. Le basterà ripetere il messaggio 3 che corrisponde allachiave compromessa e Bob sarà convinto di essere incomunicazione con Alice.
Otway-ReesÈ una versione modificata di Needham-Schroeder:
Autenticazione con la crittografia asimmetrica
Protocollo sicuro
Difesa dagli attacchi a sistemi Challenge-Response
• Attacco replay (l’avversario intercetta i messaggi scambiati e li ritrasmette inun’esecuzione successiva)– Usare nonces, includere l’identità nella risposta
• Attacco di tipo interleaving (Se sono in corso più esecuzioni contemporaneedel protocollo, ossia delle sessioni parallele), l’avversario può usare in unap , p ), psessione dati ottenuti in un’altra)– Concatenare i messaggi del protocollo
• Attacco “man-in-the-middle” (l’avversario si fa passare per A nei confronti di• Attacco man-in-the-middle (l avversario si fa passare per A nei confronti diB e viceversa)– Autenticazione reciproca per impedire all’avversario di impersonare il
sistema partnersistema partner• Attacco “reflection” (l’avversario ritrasmette a una parte dati che la parte
stessa ha trasmesso in una sessione parallela)– Include l’identità del partner, usare chiavi uni-direzionali
• Attacco su testi scelti– Usare un confounder in ogni messaggiog gg– Usare protocolli zero-knowledge
l ll bIl protocollo Kerberos
Il protocollo Kerberos
• Nasce nei primi anni ’80 dalla collaborazione diIBM, Digital e M.I.T.
• Il nome deriva dalla mitologia greca• Autorizzazione: determinare se un client è
autorizzato ad usufruire di un servizioautorizzato ad usufruire di un servizio• Autenticazione: determinare se l’identità
dichiarata dal client è vera• Cifratura - accounting: garantire la segretezza
della comunicazione e prevenire che partiestranee la modificano o la intercettano
Il protocollo Kerberos
• È un protocollo distribuito che fornisce la sicurezza diÈ un protocollo distribuito che fornisce la sicurezza diautenticazione su reti aperte e insicure dove la comunicazione tragli host può essere intercettata.
• Utilizza uno schema Third Party Trust e si basa sull’uso dichiavi segrete per cifrare le informazioni scambiate tra le entità
• Gli utenti, i client e i server si autenticano a vicenda tramite ilKDC, Key Distribution Center.
Obiettivi• La password dell'utente non viene inviata sulla rete, non viene
memorizzata sull’ host (non dovrebbe essere memorizzata “inmemorizzata sull host (non dovrebbe essere memorizzata inchiaro” neanche nel database del KDC) e viene cancellata dopol’utilizzo
• Single Sign-On: l'utente inserisce la password all’inizio dellag g psessione di lavoro. Può accedere, senza reinserirla durante talesessione, a tutti i servizi per il quale è autorizzato
• Mutua autenticazione: anche i server applicativi provano la loroautenticità ai client
Obiettivi• Il processo di autenticazione risulta invisibile all'utente e
realizza uno scambio di Ticket cifrati senza che sulla reterealizza uno scambio di Ticket cifrati senza che sulla retecircolino informazioni segrete.
• Si limita così l’invio delle informazioni di autenticazioneattraverso la rete ed agisce su host e su server applicativi (imap,g pp ( p,pop, smtp, telnet, ftp, ssh , AFS ) considerati vulnerabili.
• La gestione delle informazioni di autenticazione ècentralizzata e protetta sul sistema KDC.
Obiettivi• Le informazioni di autenticazione dei client non vengono
memorizzate sui server applicativimemorizzate sui server applicativi.
• Viene limitata la ridondanza di informazioni di autenticazione e• Viene limitata la ridondanza di informazioni di autenticazione eridotte le locazioni “attaccabili”.
• L'account di un utente può essere disabilitato agendo direttamentesul KDC.
• Dopo autenticazione e autorizzazione, la connessione trap ,client e server viene impostata come sicura e i dati vengonotrasmessi e criptati con l’uso delle chiavi.
Il protocollo Kerberos• Elimina la trasmissione delle informazioni di autenticazione sulla rete
riducendo le locazioni “attaccabili” da utenti estranei.riducendo le locazioni attaccabili da utenti estranei.
• Non si ha la necessità di dimostrare il possesso di informazionipsegrete.
• Il sistema di autenticazione è supportato solo dal KDC e senza l’ausiliodi certificati digitali contenenti le chiavi pubbliche degli utenti firmatecon la chiave privata di un’autorità di certificazionecon la chiave privata di un autorità di certificazione.
• Kerberos è flessibile, per aggiornarlo occorre modificare il KDC, è un, p gg ,pacchetto libero e può essere installato senza costi di licenza, al contrariodi SSL.
Schema generale
Il protocollo Kerberos
DBAutenthication
Server AS
Client
Ticket Granting
Server TGS
Key Distribution Center (KDC)
Application Server
…
Il protocollo KerberosSi hanno più realm ognuno con il proprio AS eTGS. Il realm èl’inisieme di sistemi che usano Kerberos come sistema di
i i
REALM 2REALM 1
autenticazione
REALM 2Server……
Server…
Client …Client
REALM 3
Server……Client
Componenti: Realm
• È il dominio amministrativo di autenticazione, entro cui il/i serverdi autenticazione è responsabile dell'autenticare un utente o unservizio
• Rappresenra l'insieme di utenti e di server appartenenti edi ti d ifi A th ti ti Scoordinati da uno specifico Authentication Server
U t t / i i ti d R l l di id• Un utente/servizio appartiene ad un Realm se e solo se condivide unpassword/chiave con il server di autenticazione AS
Componenti: Realm
Il nome del Realm coincide con il dominio DNS semplifica lapconfigurazione e l’integrazione del sistema Kerberos
Dominio DNSDominio DNS Realm KerberosRealm Kerberos
example.comexample.com EXAMPLE.COMEXAMPLE.COM
Realm KerberosRealm Kerberos
Cross-Authentication: l'autenticazioneavviene anche se le entità attive fanno parteavviene anche se le entità attive fanno partedi Realm differenti
Componenti: Principal• Rappresenta la entry del database del KDC
• È l’associazione usata per identificare ogni utente, host oservizio all’interno del proprio Realm per assegnare leservizio all interno del proprio Realm, per assegnare lecredenziali di accesso alle risorse
• component1/component2/.../componentN@REALM• user@EXAMPLE [email protected]• admin/[email protected]
• L'istanza è opzionale e si usa per specificare il tipo di utente
Componenti: Principal• Se le entry sono riferite a servizi, i principal sono definiti come:
Servizio/Hostname@REALMServizio/Hostname@REALMimap/[email protected]/server example com@EXAMPLE COMhost/[email protected]
• Ci sono principal che non fanno riferimento nè ad utenti nè ai i h l l f i t d l i t diservizi, ma hanno un ruolo nel funzionamento del sistema di
autenticazionek bt t/REALM@REALM l i hi i t• krbtgt/REALM@REALM, con la cui chiave associata,viene criptato il Ticket Granting Tickett
Componenti: KDC• Il cuore del sistema è il Key Distribution Center
• È strutturato in tre parti, centralizzate su un unico server:• Database, Authentication Server(As), Ticket Granting
Server(Tgs)
l d b i l hi i d li i l hi i• Nel database sono memorizzate le chiavi degli utenti e le chiavidei servizi, ed è in grado di scambiare con ognuno di loro deimessaggi cifratimessaggi cifrati
• Kerberos supporta solo algoritmi simmetrici, quindi la stessapp g , qchiave è usata sia per criptare che per decriptare
• Vengono usate come default le porte 88 per il KDC e la porta 749per il server di amministrazione
Componenti: Ticket• Contiene informazioni criptate con una chiave segreta:
• Il principal del richiedenteIl principal del richiedente• Il principal del server/servizio a cui è destinato• Il timestamp, con data ed ora dell’inizio della sua validitàIl timestamp, con data ed ora dell inizio della sua validità• L'indirizzo IP della macchina client• Il tempo massimo di vitap• La chiave di sessione Ks
• È usato dal client per dimostrare l’autenticità della suaidentità ad un server applicativo
• Esistono diversi tipi ognuno caratterizzato dal valore dei flag:I iti l P th ti t d i d ll’AS L• Initial e Pre-authenticated: viene emesso dall’AS. Leopzioni PRE-AUTHENT e HW-AUTHENT possono essereutilizzate per fornire informazioni addizionali nella fase dipautenticazione iniziale
Componenti: Ticket• Invalid: indica un ticket non valido• Renewable: sono i ticket utilizzati per minimizzare i danni• Renewable: sono i ticket utilizzati per minimizzare i danni
derivanti dal possibile furto di tickets, è caratterizzato da duetempi di scadenza:tempi di scadenza:– il tempo di scadenza associato al singolo ticket ed il massimo
tempo di rinnovo possibilep p• Postdated: ticket generato per essere utilizzato in seguito• Proxiable e proxy: nel caso in cui un principal permette ad unp y p p p
servizio di effettuare delle operazioni al suo posto. Il serviziosarà in grado di sostituire il client, ma solo per un determinatoscopo
• Forwardable: è una versione particolare di ticket proxy, nellal l i i è tit l tit i i t t l d l li tquale al servizio è garantita la sostituizione totale del client
Le fasi di Kerberos
1 AS exchange1. AS exchange
2. TGS exchange
3. Client – Server exchangeKDCKDCClientClient
Le fasi di Kerberos in dettaglio
AS Req Autenthication Server AS
AS_Rep
AS_ReqClient Fase 1
Ticket Granting
DBTGS_Req
Fase 2Granting
Server TGSTGS_Rep
AP_Req
Key Distribution Center (KDC)Fase 3
Application Server
AP_Rep
AS exchange
• Il client invia all'AS una richiesta di autenticazione perIl client invia all AS una richiesta di autenticazione peraccedere ad una applicazione fornita da un server
• Il messaggio di richiesta contiene:Il messaggio di richiesta contiene:• il nome - principal
il d l i l d• il nome del server a cui vuole accedere• una data di scadenza calcolata a partire dalla
sua data e ora locale
AS exchange (2)
AS_ReqAutenthication
Client
Server AS
AS R
Richiesta Autenticazione
AS_Rep
K K liKser Kcli
Ticket Tgs Ticket Tgt
AS exchange (3)
• L'AS riceve ed invia al client due Ticket di risposta:L AS riceve ed invia al client due Ticket di risposta:• Uno è detto TGS ed è cifrato con la chiave del server Kser,
per cui è stata fatta la richiesta, assieme all'Id del clientp ,• L'altro è detto TGT ed è cifrato con la chiave del client
Kcli• In entrambi i Ticket c'è la data di scadenza ricevuta dal client
ed una copia della chiave di sessione Ks, criptata con l'hashdella password dell'utente, valida per l'algoritmo crittograficoscelto
AS exchange (4)
• La chiave di sessione presente in entrambi i Ticket permetteLa chiave di sessione, presente in entrambi i Ticket, permettedi stabilire una comunicazione cifrata con il serverinteressato
• Se è abilitata la pre-autenticazione sull'utente, nellarichiesta viene inserito un timestamp criptato con l'hashdella password
• Una volta decriptato il timestamp, l’AS accertandosi dellalidità è t h i t tt di l b k tt k i èvalidità, è certo che non si tratta di un playback attack, cioè
di una richiesta precedente, e invierà al client i due Ticket• L’uso dei timestamp in un sistema distribuito comporta• L’uso dei timestamp in un sistema distribuito comporta
l’uso corretto della sincronizzazione
TGS exchange• Ricevuti i due Ticket, il client decripta il TGT con la sua
chiave segreta Kcli:g• estrae la chiave di sessione (Ks)• prepara un Ticket speciale, detto Authenticator, cifrato con
la chiave di sessione Ks e inserisce: un timestamp calcolatoa partire dalla sua ora locale, un checksum e alcune opzionidi cifraturadi cifratura
• Il client invia al server TGS:• l'Authenticatorl Authenticator• il ticket Tgs, ricevuto dall’AS e cifrato con la chiave Kser, a
cui vuole accedere
TGS exchange (2)
TGS_ReqTicket Granting
Kser Ks
Client
Server TGSKser Ks
TGS R
Ticket Tgs Authenticator
TGS_Rep
Kservice
Ticket Service
TGS exchange (3)• Il server Tgs decripta il Ticket Tgs con la chiave segreta
Kser e così estrae la chiave di sessione Ks, con la quale, qdecripta l'Authenticator• Ne può verificare la scadenza usando l'informazione
l Ti k T i h ècontenuta nel Ticket Tgs e si accerta che è stata generatadall’ AS
• Decifrando l'Authenticator il server verifica l'integritàDecifrando l Authenticator, il server verifica l integritàdel Ticket controllando il timestamp e si accerta chenon si tratti di un Ticket replica
• Lo scambio risulta sicuro dato che la richiesta è stata fatta dalclient associato all’ Authenticator, unico a conoscenza dellachiave di sessione Kschiave di sessione Ks
TGS exchange (4)• Un client in possesso di un TGT con il time-to-live valido invia le
sue richieste al TGS e non più all'ASsue richieste al TGS e non più all AS• Le comunicazioni tra TGS e client sono cifrate con la chiave
di sessione Ksdi sessione Ks• Crea in modo random una chiave di sessione, SKService. Crea il
Ticket service inserendo il principal del client richiedente, ilp p ,principal del servizio, la lista di indirizzi IP, un timestamp delKDC, il lifetime, il valore minimo tra il lifetime del TGT e quello
i l i i l d l i i i fi l i kassociato al principal del servizio e infine la session keySKServiceIl TGS genera n'altra chia e di sessione Kser ice tile sia• Il TGS genera un'altra chiave di sessione, Kservice, utile siaper il client che per l’ Application server ed invia al client ilService TicketService Ticket
Client – Server Exchange• In questa fase il KDC non è coinvolto, perciò non vi è una
strategia definita affinchè il client mostri le sue credenzialigal server applicativo, ma userà la Kservice per stabilire lasessioneRi il S i Ti k il li A h i• Ricevuto il Service Ticket, il client crea un Authenticatorcontenente il suo principal, un timestamp e cripta tutto con lachiave di sessione Kservice
• Il server decripta le informazioni usando la propria chiaveKservice, stabilita in precedenza con il Kdc
• Mutua Autenticazione, se abilitata, il server ritorna untimestamp cifrato con la chiave di sessione del Service Ticket.Non solo il client è stato autenticato ma anche il serverNon solo il client è stato autenticato, ma anche il serverapplicativo non ha comunicato direttamente con il Kdc
Client – Server Exchange (2)
AP_Req
Ks SKservice
Client
Application Server
S i Ti k t A th ti tService Ticket Authenticator
AP_Rep
Accesso al servizio
Client – Server Exchange (3)• In Kerberos versione 5, nei server applicativi e nel Tgs si è
implementata la Replay Cache ossia la capacità di tenerimplementata la Replay Cache, ossia la capacità di tenertraccia degli Authenticator ricevuti dal Tgs
• Le richieste con stesso Authenticator, cioè le richiesteLe richieste con stesso Authenticator, cioè le richiestereplicate, sono eliminate e si evita che utenti estranei riescanoad acquisire sia il Ticket che l’Authenticator
• Per garantire il meccanismo di autenticazione è necessarioche tutti i pricipal coinvolti abbiano l'orologio di sistemai isincronizzato
Client – Server Exchange (4)
• È ammessa l'autenticazione tra Realm differenti tramiteÈ ammessa l autenticazione tra Realm differenti tramitel’uso della Cross-Realm key, una session key nota tra idifferenti AS
• Il client effettua una richiesta al proprio TGS che individua ilTGS remoto appartente all’ altro Realm
• Il client riceve il TGT per la richiesta al TGS remoto• Questo TGT sarà cifrato con la chiave condivisa tra i due TGS e
così il TGS remoto potrà autenticare il client fornendogli unService Ticket, utile allo scambio con l’Application Serverremotoremoto
Crittografia• Kerberos fa largo uso della crittografia nei Ticket
scambiati tra le diverse entità coinvolte nell'autenticazionescambiati tra le diverse entità coinvolte nell autenticazione• Per implementare lo scambio di messaggi tra AS, client e
server, sono necessari tre elementi:• un algoritmo di crittografia forte• una funzione HASH• una funzione per il checksum dell’ Authenticator
• Non ci sono limitazioni sulla lunghezza della passwordd ll' t t lti l it i di if t tili hidell'utente, molti algoritmi di cifratura utilizzano una chiave alunghezza fissa
Crittografia (2)• Fino alla versione 4, l'unico algoritmo di crittografia supportato
era il DES, a cui era associato l’uso di una funzione HASH,ottenuta dal DES in una particolare modalità operativa el'algoritmo CRC-32 per il calcolo dei checksum
• Nella versione 5, non è stato fissato a priori il numero e iltipo di encryption da supportare dipende dalla specificatipo di encryption da supportare, dipende dalla specificaimplementazione e dalla piattaforma
• La tecnica adottata nelle operazioni di cifratura è basata sullafunzione string2key
Crittografia (3)• È stata introdotta la funzione string2key, che trasforma una
password in chiaro in una encryption key in base al tipo dipassword in chiaro in una encryption key, in base al tipo dicrittografia, ed è una funzione hash irreversibile, cioèdall’encryption key non si può determinare la password
• Viene richiamata quando un utente cambia la sua passwordo quando per autenticarsi si avvia una sessione
• Gli algoritmi disponibili sono:• DES e Triplo DES per la crittografia• hmac e CRC32 per i chksum• sha1, md5 e la funzione derivata da DES-CBC per l'hash
Crittografia (4)• Di default il salt aveva un valore nullo, con in nuovo Kerberos
v5 come valore di salt si usa il principal dell’ utente:v5, come valore di salt, si usa il principal dell utente:• Kclient=string2key ( Pclient + “[email protected]"
))• Kclient diventerà l'encryption key del client, dove Pclient è
la password in chiaro, in tal modo si hanno i vantaggi:p , gg• due principal appartenenti allo stesso Realm ed aventi la
stessa password in chiaro, hanno chiavi differenti• se un utente ha account su Realm diversi, è possibile che
la password in chiaro coincida. Con l’uso del salt, sievita un'eventuale compromissione dello stato degliaccount
U i i di id il KDC hi• Un servizio condivide con il KDC una chiave e non unapassword
Crittografia (5)• Alla stringa composta dalla concatenazione della password
e del SALT, viene applicata una funzione HASH, così da, pp ,rendere la trasformazione dipendente dalla macchina
• Questa flessibilità ed estensibilità del protocollo ha mostratodei problemi di interoperabilità tra le varie implementazioni,poiché si può applicare una qualsiasi funzione Hash ed un
l i i l it i h k t biliqualsiasi algoritmo per i checksum, occorre stabilire unencryption type in comune
S S k t L (SSL)Secure Socket Layer (SSL)
Secure Socket Layer (SSL)• Sistema sviluppato in origine da Netscape e poi da Microsoft• La versione 3 sviluppata con review esterna con alcune• La versione 3 sviluppata con review esterna con alcune
modifiche, è diventata un progetto di standard noto come TLSTLS = Transport Layer SecurityTLS Transport Layer Security
• SSL ha due strati protocollari• Disponibili molte implementazioni e librerie, p.e. Open-SSLDisponibili molte implementazioni e librerie, p.e. Open SSL• Utilizza la crittografia simmetrica e asimmetrica e le funzioni
hash per fornire l’atentiazione del server, la cifratura deip ,messaggi e l’integrità dei dati.
• Quando si passa da una pagina pubblica a una sicura, il webserver invoca SSL (l’utente vede https) e compare un’icona(lucchetto) e il client è invitato a mandare i propri parametri diisicurezza.
SSL: funzionalità
• Cifratura simmetrica• Cifratura simmetrica• Cifratura asimmetrica
Fi di it li• Firme digitali• Certificati digitali (X509v.3)
S ifi h hi f li• Specifiche chiare e formali• Negoziazione dei parametri
H d h k l d ll i• Handshake al momento della connessione• Riutilizzo di parametri negoziati in precedenza
Componenti di SSL• Handshake protocol
Permette alle parti di negoziare i diversi algoritmi necessari per la– Permette alle parti di negoziare i diversi algoritmi necessari per lasicurezza delle transazioni
– Consente l’eventuale autenticazione tra le partip• Record protocol
– Si occupa della compressione, del MAC e della cifraturap p ,• Alert protocol
– Notifica situazioni anomale o segnala eventuali problemig p• Change Cipher Spec protocol
– Impone l’esecuzione di un nuovo handshake per rinegoziare iparametri di sicurezza e ripetere l’autenticazione
Protocollo Handshake
Fase 1Definisce le caratteristiche
di sicurezza
F 2Fase 2Authenticazione del server
e scambio chiavi servere scambio chiavi server
Fase 3Authenticazione del clientAuthenticazione del client
e scambio chiavi client
Fase 4Fine
Fase I• Il client trasmette:
1. Version – Più alta versione del protocollo che il client è in grado di capire2 R d Ti t di 32 bit di 28 bit2. Random – Timestamp di 32 bit e nonce di 28 bit3. Identificativo di sessione
• Valore non nullo: Aggiornamento parametri di connessione esistente• Valore nullo Nuova connessione e sessione• Valore nullo. Nuova connessione e sessione
4. Elenco delle cipher suite in ordine di preferenza• Protocollo per key exchange e altri parametri
5 Elenco di metodi di compresssione supportati5. Elenco di metodi di compresssione supportati• Il server trasmette:
1. Version – Più alta versione fornita dal client e che il server può supportare2. Tempo e nonce del server2. Tempo e nonce del server
• Indipendenti dai parametri omologhi forniti dal client3. Identificatore della sessione
• Se il client ha fornito un valore diverso da zero ò lo stesso valore• Diversamente proposto dal server
4. Cipher suite (la prima proposta dal client che sia supportata dal server)5. Metodo di compressione (il primo proposto dal client che sia supportato dal
server)
Fase IICertificate:
Richiesto in tutti i casi eccettoRichiesto in tutti i casi eccettoche per il Diffie-Hellmananonimo
Server Key Exchange:Richiesto in tutti i casi eccettoRSA e fixed Diffie HellmanRSA e fixed Diffie-Hellman.Materiale dipendente dalprotocollo.p
Certificate request:Richiede al client un certificato
Server Hello Done:Indica la fine dei messaggi delserver
Fase IIIIl client verifica il certificato e i parametri del server. Se tutto èsoddisfacente trasmette al server 3 pacchetti:soddisfacente trasmette al server 3 pacchetti:
Certificate:Se il client richiede una risorsaper cui serve autenticazione
Client Ke E change:Client Key Exchange:Materiale dipendente dalprotocolloprotocollo
Certificate verify:Fornisce verifica esplicita delsuo certificato
Fase IVChange Cipher Spec:
Il client copia il pending CipherSpec nelIl client copia il pending CipherSpec nelcurrent CipherSpec
Finish:Verifica il successo del processo diautenticazione inviando 2 hashautenticazione inviando 2 hash
Change Cipher Spec:Il server copia il pending CipherSpec nelcurrent CipherSpec
Finish:Comunica il successo del processo
Protocollo record• Confidenzialità
Ottenuta utilizzando un cipher simmetrico con una shared key– Ottenuta utilizzando un cipher simmetrico con una shared keydefinita dal protocollo handshake;
– usa pure una compressione (?)p p ( )• Integrità
– Utilizza un MAC con shared key simile a HMACy
Uso diffuso di SSL
• Commercio elettronico• Commercio elettronico– Ordinazioni: le form con cui si ordina un prodotto vengono inviate
usando SSLusando SSL– Pagamenti: quando viene inserito un numero di carta di credito,
l’invio dei dati avviene usando SSL
• Accesso ad informazioni sicure– La consultazione di informazioni accessibili solo da utenti
“qualificati”L’i i di d lt i d ti i ti– L’invio di password o altri dati riservati
OpenSSL• OpenSSL è un package open source
• E’ sottoposto a manutenzione continua
• E’ utilizzato per lo sviluppo di importanti applicazioni (modSSL)
• Contiene implementazioni di vari algoritmi di crittografia
• Contiene implementazioni di Big Number, formati DER, PEM,pkcs7, pkcs12….
• Implementa il protocollo SSL/TLS
• Ha i comandi per gestire certificati digitali
Transport Layer Security (TLS)• TLS definito nella RFC 2246
• Molto simile a SSL v3 ma migliore per la sicurezzaTolleranza alla criptoanalisi– Tolleranza alla criptoanalisi
– Conforme ai criteri della FIPS 140-2 (Security Requirements forCryptographic Modules)Cryptographic Modules)
– Diverso progetto di MAC, funzioni hash, etc
• Oltre ciò– Definiti codici di alert addizionali– Cambiamenti nei cipher supportati– Variazioni sui tipi di certificati e negoziazioni– Variazioni sul calcolo dei parametri criptografici
CHAPEAP
CHAP• CHAP(Challenge Authentication Password Protocol): metodo di
autenticazione nel quale è centrale la conoscenza della passwordautenticazione nel quale è centrale la conoscenza della passworddell’utente piuttosto che la password stessa.– L'autenticatore, vale a dire il server di accesso remoto o il server,
IAS (Internet Authentication Server), invia una verifica al client diaccesso remoto costituita da un identificativo di sessione e da unastringa casuale di verifica così da generare ogni volta messaggistringa casuale di verifica così da generare ogni volta messaggidifferenti (challenge string) lunda 8 byte (264 stringhe possibili)
– Il client di accesso remoto usa la stringa di verifica e la propriaIl client di accesso remoto usa la stringa di verifica e la propriapassword per calcolare un’impronta MD5; invia quindi al Serveruna risposta che contiene l’impronta
– Il Server, che può accedere alla password dell’utente, ri-esegue ilcalcolo dell’impronta e la confronta con quella ricevuta: secoincidono le credenziali di accesso sono considerate autenticatecoincidono le credenziali di accesso sono considerate autenticate.
MS-CHAP• Protocollo di autenticazione implementato da Microsoft per
l’autenticazione di stazioni Windows Remote è simile a CHAPl autenticazione di stazioni Windows Remote, è simile a CHAPma fornisce formati coerenti con i prodotti Windows. Entrambele versioni permettono la crittografia simmetrica.
• v1, la prima versione, fa uso di MD4 ed è facilmente violabile.Consente tra l’altro la modifica della password. Usa chiavi di 40bit e dell’algoritmo MPPE (Microsoft Point to Point Encryption)
• v2, la seconda versione, fa uso di MD5 ed è maggiormenteprotetta– non consente la modifica della password
f di hi i di i d ti i i ti i ti (128 bit)– fa uso di chiavi diverse per i dati inviati e ricevuti (128 bit)– realizza un’autenticazione duale (del client e del Server)
EAP• EAP (Extensible Authentication Protocol) è un'estensione del
protocollo PPP (Point-to-Point Protocol) in risposta alla richiestaprotocollo PPP (Point-to-Point Protocol) in risposta alla richiestadi un sistema di autenticazione di utenti che accedono da unsistema remoto che consenta di utilizzare altri dispositivi diprotezione
• Fornisce un meccanismo standard per il supporto di metodi diautenticazione aggiuntivi nell'ambito delle connessioni PPP
• Possibile aggiungere supporto per altri schemi di autent. tra cui:– Token card– Password temporanee
A i i di hi i bbli h i d– Autenticazione di chiavi pubbliche tramite smart card– Certificati
è lt tili t• non è molto utilizzato
PPP• PPP (Point-to-Point Protocol ) nasce per la gestione di
connessioni punto a punto cioè per consentire la connettivitàconnessioni punto a punto, cioè per consentire la connettivitàhost-host o router-router.
• Sviluppato come estensione dell’HDLC, cerca di risolvere tuttiSviluppato come estensione dell HDLC, cerca di risolvere tuttiquei problemi a cui SLIP andava incontro e di sopperire allelimitazioni di HDLC
• Supporta molti protocolli tra cui IP, IPX e ARA.• Comprime automaticamente i dati• È dotato di meccanismi di autenticazione quali CHAP, PAP ed
EAP• Due varianti Microsoft: MS-CHAP v1 e MS-CHAP v2• Fornisce un meccanismo di controllo e di gestione degli errori
PPP• Garantisce un metodo non ambiguo per la suddivisione e
l’incapsulamento dei datagrammil incapsulamento dei datagrammi• Fornisce possibilità di crittografia che prevedono la scelta iniziale
dell’algoritmo crittografico (DES, 3DES, ecc.) e della chiave (didell algoritmo crittografico (DES, 3DES, ecc.) e della chiave (disolito password utente)
• PPP è il protocollo utilizzato comunemente da Costruttori DSL epService Provider.– Se un programma rispetta gli standard PPP può essere usato per
ricevere chiamate e fornire l’accesso a internet (come avviene inWindows 2000/2003 server)Viene abbondantemente utilizzato lungo reti Ethernet e ATM da– Viene abbondantemente utilizzato lungo reti Ethernet e ATM, daqui gli acronimi PPPoE e PPPoA