Identificazione, Autenticazione e Firma Digitale In origine crittografia = confidenzialità Diffusione delle reti: nuove funzionalità. Identificazione Autenticazione Firma digitale Identificazione: un sistema di elaborazione deve essere in grado di accertare l identità di un utente che vuole accedere ai suoi servizi Autenticazione: il destinatario di un messaggio deve essere in grado di accertare l identità del mittente e l integrità del messaggio Firma digitale: funzionalità complessa richiesta quando mittente e destinatario di un messaggio non si fidano l uno dell altro (reciprocamente). Proprietà simili alla firma cartacea. Firma digitale... il mittente non può negare di aver inviato il messaggio il destinatario può accertare l identità del mittente e l integrità del messaggio (autenticazione) il desinatario non può sostenere di aver ricevuto un messaggio diverso da quello che realmente ha ricevuto il tutto verificabile da una terza parte (giudice) 1
Identificazione Funzioni Hash Autenticazione Contrastano possibili attacchi attivi Firma digitale Proprietà di funzioni Hash Funzioni Hash in crittografia: Hash one-way Elementi molto simili in X appartengano a sottoinsiemi distinti 2
Hash one-way Prima proprietà dovrebbe valere anche per funzioni Hash classiche Seconda proprietà: one-way Terza proprietà: claw-free (opzionale) Esempi: MD5, SHA Identificazione: Un caso pratico ed un protocollo Caso pratico: accesso di un utente alla propria casella di posta elettronica o ai file personali memorizzati su un calcolatore ad accesso riservato. L utente usa una login e password. Supponiamo: password ben scelta e canale sicuro Attacco sferrato dall amministratore del sistema. Cifratura della pwd con funzioni hash one-way:unix L amministratore accede al file delle chiavi. Contromisura: memorizziamo la password in forma cifrata utilizzando le funzioni hash one-way. COME??? Quando l utente U fornisce per la prima volta la password P il sistema associa a P due sequenze S e Q. S e Q vengono memorizzate al posto di P S è detto seme. E un numero generato a caso dal sistema. Q = f(ps). 3
Cifratura della pwd con funzioni hash one-way:unix Quando l utente si collega il sistema: - recupera S dal file delle chiavi, - concatena S con P e applica f ottenendo Q. - confronta Q con Q. - se Q =Q allora OK altrimenti FAIL Se qualcuno accede al file delle chiavi ottiene S e Q. Dai quali non riesce a inferire nulla su P. Alcune osservazioni: E difficile risalire da S,Q a P. La presenza del seme casuale diverso per ogni utente impedisce di scoprire se due utenti hanno la stessa password e rende impossibile un attacco simultaneo a tutte le chiavi. Abbiamo assunto che il canale attraverso il quale la chiave viene comunicata al sistema sia sicuro. In realtà di solito non lo è!!! Protocollo di trasmissione della chiave cifrata usando RSA. - U richiede accesso al sistema S - S genera un numero casuale r < n e lo invia a U - U calcola f=r d mod n (decifra r con la sua chiave privata) e - spedisce f a S (U firma r). - S cifra f calcolando r*=f e mod n - Se r*=r allora OK altrimenti FAIL Alcune osservazioni: Il sistema non deve memorizzare le informazioni circa la chiave P. Semmai deve solo memorizzare la chiave pubblica di U E possibile invertire cifratura e decifratura perché RSA e commutativo SSL è un meccanismo di identificazione più sofisticato. 4
Autenticazione Identificazione: stabilire l identità di un utente. Autenticazione: qualcosa in più di identificazione. Mittente spedisce un messaggio a Destinatario. Destinatario autentica il messaggio se: - identifica Mittente + - verifica l integrità del messaggio MAC Message Authentication Code Immagine breve del messaggio che può essere generata solo da un mittente conosciuto dal destinatario. Aspetti in comune con le funzioni Hash crittografiche A volte generato usando funzioni Hash crittografiche Entra in gioco una chiave segreta k Messaggio m di lunghezza n qualsiasi MAC(m,k) MAC MAC Il MAC ha una lunghezza fissata indipendente da n Esempio di MAC Otteniamo un MAC applicando una funzione hash alla concatenazione di m e della chiave k NOTA: il MAC non è invertibile. Può solo essere calcolato di nuovo ma non invertito!!! 5
Esempio di Autenticazione usando MAC - Mitt spedisce (m,h(mk)) a Dest. - Dest riceve (m *,h(mk) * ). - Dest conosce k quindi può calcolare h(m * k). - Dest confronta h(m * k) con h(mk) *. - Se h(m * k)=h(mk) * Dest conclude che m * =m (integro) e che il mittente di m è effettivamente Mitt. Perché? L intruso X non può spedire un messaggio a Dest fingendosi Mitt. Perché? Perché non conosce k. IDENTIFICAZIONE L intruso X intercettando (m,h(mk)) non può modificare m. Perché? Perché non conosce k. INTEGRITA Cosa succederebbe spedendo (m,h(m))??? Autenticazione + confidenzialità - Mitt spedisce (C k (m),h(mk)) a Dest. - Dest riceve (C k (m) *,h(mk) * ). - Dest conosce k quindi decodifica C k (m) * e risale a m * - Dest conosce k quindi può calcolare h(m * k). - Dest confronta h(m * k) con h(mk) *. - Se h(m * k)=h(mk) * Dest conclude che m * =m (integro) e che il mittente di m è effettivamente Mitt. Firma Manuale e Firma Digitale La firma digitale deve soddisfare le proprietà di quella manuale. La firma digitale è una stringa di bit e quindi è facilmente duplicabile/copiabile. La firma manuale no!! Firma manuale e firma digitale sono fisicamente oggetti di natura completamente diversa! 6
Firma Manuale: Proprietà La può generare solo una persona e non è falsificabile. Non è riutilizzabile (legata al documento su cui è apposta). Il documento su cui è apposta non è modificabile. Non può essere ripudiata da chi l ha generata. Firma Digitale: Implementazione Ingenua Firma digitale: digitalizzazione della firma manuale, ad esempio usando uno scanner. Attacco: Copia e Incolla!!! Diffie e Hellman: Cifrari Asimmetrici U Firma: f=d(m,k U [priv]) send <U,m,f> Protocollo 1 V Verifica: m * =C(f,k U [pub]) if m * =m then si else no Osservazioni Occorre un cifrario commutativo, cioè D(C(m)) = C(D(m)) = m. RSA è commutativo. Il documento firmato non è indirizzato ad uno specifico destinatario. Tutti possono fare la verifica. 7
Proprietà del protocollo La può generare solo una persona: colui che conosce k U [priv] cioè U. Non è riutilizzabile/copiabile/falsificabile: in quanto è funzione del documento su cui è apposta. Il documento su cui è apposta non è modificabile: in quanto anche la firma andrebbe nuovamente generata. Non può essere ripudiata da chi l ha generata: in quanto solo conoscendo k U [priv] è possibile generarla. Difetti del protocollo La lunghezza del messaggio scambiato è il doppio della lunghezza del messaggio originario. Il messaggio non può essere mascherato in quanto dall operazione di verifica è possibile risalire al messaggio spedito Soluzione U Firma e cifra: f=d(m,k U [priv]) c=c(f,k V [pub]) send <U,c> Protocollo 2 V Verifica: f * =D(c *,k V [priv]) m * =C(f *,k U [pub]) if m * ha senso then si else no U Firma e cifra: V Verifica: Protocollo 2: RSA send <U,c> if m * ha senso then si else no 8
Problemi con la lunghezza delle chiavi! U Firma: Protocollo 2: RSA Perché??? send <U,c> Cosa succede se V vuole a sua volta firmare e cifrare messaggi da mandare a U? Soluzione Assumere che U e V debbano avere chiavi della stessa lunghezza per potersi mandare documenti firmati e cifrati non ci va bene!!! H = 2 1024 parametro che distingue la lunghezza delle chiavi per firmare e delle chiavi per cifrare. U genera: <e1 U,n1 U > e <d1 U,n1 U > con n1 U >H per la cifratura e decifratura <e2 U,n2 U > e <d2 U,n2 U > con n2 U <H per la firma e la verifica. 9
In Pratica... U Firma: f=d(h(m),k U [priv]) c=c(m,k V [pub]) send <U,c,f> V Verifica: m * =D(c *,k V [priv]) if h(m*)=c(f *,k U [pub]) then si else no Protocollo 3 Men in-the-middle Attack Attacco attivo X si mette nel mezzo tra U e V X si comporta come U per V X si comporta come V per U X devia la comunicazione tra U e V facendola passare per se stesso... Men in-the-middle Attack U richiede a V la sua chiave pubblica k V [pub] (per e-mail ad esempio) X intercetta k V [pub] e la sostituisce con k X [pub] X intercetta i crittogrammi da U a V li decodifica con k X [priv] li ri-codifica con k V [pub] e li ri-spedisce a V CA: Certification Authority Enti preposti alla certificazione di validità delle chiavi pubbliche. Certificato: Chiave pubblica di U Lista di Informazioni su U Date di inizio e fine validità del certificato Lista di Algoritmi di codifica usati Firma di CA 10