Luciano Margara Ufficio: Via Malaguti 1/b Tel: 051 209 4886.

Slides:



Advertisements
Presentazioni simili
Elementi di Crittografia MAC e FUNZIONI HASH
Advertisements

Realizzazione in PARI/GP
Microsoft Visual Basic MVP
Seminario per il corso di Sistemi Operativi mod
Seminario Sicurezza a.a. 2001/2002 Barbara Anconelli
La sicurezza nelle Griglie
Sicurezza II Prof. Dario Catalano Errori di Implementazione.
Sicurezza II Prof. Dario Catalano
Sicurezza II Prof. Dario Catalano Autentica Mediata.
Sicurezza II Prof. Dario Catalano Autentica di Umani.
Lez. 13a1 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Funzioni Hash.
Autenticazione dei messaggi e funzioni hash
I cifrari a chiave pubblica: Introduzione alle curve ellittiche
RSA Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena.
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Per crittografia si intende la protezione
Algoritmi e Dimostrazioni Stefano Berardi
Sistemi di elaborazione delle informazioni
Introduzione alla firma elettronica
CRITTOGRAFIA La crittografia, ovvero la scienza dei messaggi segreti sicuri, nasce come raccolta di tecniche e sistemi per nascondere messaggi tra regnanti,
Politecnico di Milano Algoritmi e Architetture per la Protezione dellInformazione Multichannel Adaptive Information Systems Paolo Maistri Dipartimento.
Reti di Calcolatori Crittografia
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 29/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Testo consigliato Crittografia, P. Ferragina e F. Luccio, Ed. Bollati Boringhieri, € 16.
Testo consigliato Crittografia, P. Ferragina e F. Luccio, Ed. Bollati Boringhieri, € 16.
Testo consigliato Crittografia, P. Ferragina e F. Luccio, Ed. Bollati Boringhieri, € 16.
Secure Shell Giulia Carboni
Firma elettronica Concetti e meccanismi
DEI - Univ. Padova (Italia) Sicurezza delle informazioni Quando vengono mandati pacchetti di informazioni sui mezzi promiscui (ad es. rete Ethernet) chiunque.
Ricerca della Legge di Controllo
Breaking DES Corso di Sicurezza Reti Dott. Giovanni Ciraolo Anno Accademico
Modulo 7 – reti informatiche u.d. 2 (syllabus – )
CORSO DI CRITTOGRAFIA Terzo incontro PROGETTO LAUREE SCIENTIFICHE
LA CRITTOGRAFIA QUANTISTICA
Metodo della moltiplicazione
Elementi di Informatica di base
“ Firma Digitale “ Informatica e Teleradiologia
CORSO DI CRITTOGRAFIA Quinto incontro PROGETTO LAUREE SCIENTIFICHE
Strutture dati per insiemi disgiunti
Radix-Sort(A,d) // A[i] = cd...c2c1
“La firma elettronica per Pavia Digitale”
INFORMATICA MATTEO CRISTANI. INDICE CICLO DELLE LEZIONI LEZ. 1 INTRODUZIONE AL CORSO LEZ. 2 I CALCOLATORI ELETTRONICI LEZ. 3 ELEMENTI DI TEORIA DELL INFORMAZIONE.
Il processo per generare una Firma Digitale
Cenni di Crittografia Il procedimento di crittografia consiste nel rendere illeggibile un testo in chiaro mediante l’uso di un determinato algoritmo e.
Capitolo 8 La sicurezza nelle reti
RSA e questioni relative
Crittografia MITTENTE DESTINATARIO messaggio messaggio chiave-1
Analisi e sperimentazione di una Certification Authority
I Numeri primi Eratostene e la crittografia.
La sicurezza dei sistemi informatici. Il sistema deve soddisfare i seguenti requisiti di sicurezza (CIANA)  Confidenzialità (Riservatezza)  Integrità.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
UNIVERSITÀ DEGLI STUDI DI PAVIA Anno accademico 2009/2010 Sicurezza e frodi informatiche in Internet: la Firma Digitale come garanzia di autenticità e.
Sicurezza informatica
PKI e loro implementazione Corso di Sisitemi Informativi Teledidattico A.A. 2006/07
27 marzo 2008 Dott. Ernesto Batteta.  Le minacce nello scambio dei documenti  Crittografia  Firma digitale.
Sicurezza delle comunicazioni1 Introduzione Consistente sviluppo delle applicazioni telematiche dovuto a: –Evoluzione tecnologica delle trasmissioni –potenze.
Elgamal Corso di Sicurezza – A.A. 2006/07 Angeli Fabio29/05/2007.
DES e RSA a confronto: crittografia al servizio della sicurezza.
DALLA CRITTOGRAFIA CLASSICA ALLA CRITTOGRAFIA MODERNA
1 Certificati a chiave pubblica strutture dati che legano una chiave pubblica ad alcuni attributi di una persona sono firmati elettronicamente dall’ente.
Comunicazioni. 5.1 POSTA ELETTRONICA 5.1 POSTA ELETTRONICA.
Crittografia/ Steganografia
Informatica Lezione 10 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
La firma digitale. Che cosa é la firma digitale? La firma digitale è una informazione aggiunta ad un documento informatico al fine di garantirne integrità.
Crittografia. Introduzione  La rete può essere utilizzata per diversi scopi: informazione, scambio dati, scambio messaggi, trasferimento denaro.  Nel.
Cenni di Crittografia Luigi Vetrano TechnoLabs S.p.A. L’Aquila, Aprile 2011.
Un sistema di sicurezza dei dati.  La crittografia, il cui termine indica "nascosto", è la branca della crittologia che tratta delle "scritture nascoste",
Crittografia e crittoanalisi Crittografia: tecnica che consente di rendere visibili o utilizzabili le informazioni solo alle persone a cui sono destinate.
Sicurezza dei Sistemi Informatici L.S. in Ingegneria Informatica Docente: Prof. Giuseppe Mastronardi CRITTOGRAFIA E CRITTOANALISI ATTACCHI AI SISTEMI DI.
Una Panoramica del corso.
Transcript della presentazione:

Luciano Margara Ufficio: Via Malaguti 1/b Tel:

Una Panoramica del corso.

Obiettivo: Comunicazioni private in ambienti pubblici Strumento: Cifrari

Esiste un cifrario perfetto ? Perfetto ~ inattaccabile. La risposta è né SI né NO !! Esistono cifrari perfetti ma inefficienti Esistono cifrari pratici non perfetti ma efficienti Robustezza Conquistata sul campo Relazione con problemi matematici difficili Difficoltà di risoluzione –impossibilità: NO –improponibilità: SI

Alcune Definizioni Crittologia: Crittografia + Crittoanalisi Crittografia: progetto di cifrari sicuri ed efficienti. Crittoanalisi: metodi, strumenti e tecniche per attaccare i cifrari (valutare la loro bontà).

Lo Scenario MittDest c c … X Mitt = mittente del messaggio m in chiaro Dest = destinatario del crittogramma c X = impostore che ascolta (crittoanalista) C e D funzioni di cifratura e decifrazione

L’intruso X Motivo: curiosità, spionaggio, malvagità,… Ruolo –Passivo: si limita ad ascoltare –Attivo: può inserirsi nella comunicazione o modificarla Informazioni in suo possesso: –Cipher-text attack: serie di crittogrammi c 1,…., c n –Known plain-text attack: collezione di coppie (m i, c i ) –Chosen plain-text attack: collezione di coppie scelte

Definizioni e Notazione Funzione di cifratura C(m) = c è il crittogramma Funzione di decifrazione D(c) = m è il messaggio in chiaro originale Matematicamente D è l’inversa di C: D(C(m)) = m Se D(C(m)) = C(D(m)) = m, allora commutativa

Come realizzare C e D ? Due grandi famiglie: Cifrari per uso ristretto: La sicurezza si basa sul fatto che C e D sono tenute nascoste. quindi non è previsto l’uso di una chiave segreta. Cifrari per uso generale: C e D sono note a tutti. La sicurezza si basa sull’utilizzo di una chiave segreta nota solamente al mittente e al destinatario.

Chiave Segreta: una metafora fisica. Uguali è necessario incontrarsi per scambiarsi le chiavi !!! Utente BUtente A

Quanto costa scambiare la chiave ? Incontro face-to-face ma una tantum Posso ammortizzare il costo dello scambio Posso usare canali costosi e disponibili poco frequentemente Lo spazio delle chiavi deve essere grande: No brute-force attacks (visita esaustiva dello spazio) Prerequisito cruciale ma non sufficiente Passo in avanti sostanziale: Dal punto di vista teorico Dal punto di vista economico Esempi: DES, RC5, IDEA, … (hanno superato la prova del fuoco)

Cifrari Simmetrici o a chiave segreta Ruolo di C k e D k completamente interscambiabile Mittente ~ Destinatario: –Conoscono la stessa chiave k –Entrambi possono cifrare e decifrare –Incontro segreto per accordarsi sulla chiave –Segretezza della chiave dipende da entrambi –Cifratura e decifrazione sono molto efficienti in pratica Quali sono i difetti di questi cifrari ? –Occorre scambiarsi la chiave –Dati n utenti, abbiamo bisogno di [n (n-1) / 2] chiavi –Troppe per essere memorizzate e scambiate segretamente

Chiave Pubblica: una metafora fisica. Mittente Destinatario Fase 1 Fase 2

Cifrari Asimmetrici o a Chiave Pubblica Anno 1976: punto di svolta! (Diffie-Hellman e Merkle) Obiettivo: rompere il legame tra C k e D k –Chiunque sappia come cifrare non deve sapere come decifrare –Chiave k scomposta in due parti : La chiave k viene creata da Dest k[priv] tenuta segreta da Dest e usata per costruire D k[priv] k[pub] resa pubblica da Dest e usata da tutti per definire C k[pub] Difficile andare da k[pub] a k[priv] !! Concetto funzione one-way trap-door : – C k[pub] facile, ma D k[priv] difficile senza k[priv] !

Funzioni One-way con trapdoor Funzioni facili da calcolare, difficili da invertire, a meno che... non si conosca qualche informazione aggiuntiva...

Funzioni One-way con trapdoor Lucchetto: - è facile da chiudere - è difficile da aprire - se non si possiede la chiave

Funzioni One-way con trapdoor Cassetta delle lettere: - è facile imbucare una lettera - è difficile estrarre una lettera - se non si possiede la chiave

Funzioni One-way con trapdoor p,q numeri primi: - è facile calcolare n=pq - è difficile dato n trovare p e q - se conosciamo p diventa facile (q=n/q)

Il Nuovo Scenario U1U1 c c n 1 Numero chiavi per n utenti ---> soltanto n Lasciano penetrare qualche informazione... Esempi: RSA, El Gamal, … (sono considerati oggi robusti) Dest UnUn

Panacea delle comunicazioni segrete? Cifrari asimmetrici sono inefficienti ! Sistemi Ibridi = asimmetrici + simmetrici !! –Mitt e Dest scelgono “pubblicamente” una chiave “segreta” K * utilizzando un cifrario asimmetico –Mitt e Dest comunicano con un cifrario simmetrico basato su K * –K * viene sostituita più volte nel corso di una comunicazione –( session-key) Lentezza degli asimmetrici incontrata solo nello scambio sporadico delle session-key. Incontro face-to-face per scambio chiavi segrete (nei simmetrici) aggirato attraverso l’uso dei cifrari asimmetrici per raggiungere l’accordo. N 2 chiavi segrete (nei simmetrici) nascoste dall’uso delle session-key (usa e getta).

Conclusioni Confidenzialità è il solo requisito dei sistemi crittografici moderni ? Oggigiorno se ne richiedono altri 4: User Identification:User Identification: Dest può accertare che è proprio Mitt che sta parlando o vuole parlare con lui. Integrità:Integrità: Deve essere possibile per Dest stabilire che il messaggio ricevuto non ha subito modifiche parziali o totali (sostituzione). Autenticazione:Autenticazione: Deve essere possibile per Dest accertare che il messaggio ricevuto proviene proprio da Mitt. Firma Elettronica:Firma Elettronica: Mitt non può sottrarsi dall’ammettere che è stato lui a spedire il messaggio, e Dest può convincere una terza persona (giudice) che questo è il caso.

Parte I: Fondamenti e Tecniche di Base

Cifrari Storici

Prologo Motivazioni: –Scopi educativi: concetti, tecniche di base,… –Divertimento: settimana enigmistica… Crittografia manuale Sono note tecniche statistiche per forzarli! Nota: –Messaggi e crittogrammi composti di lettere –Chiave segreta: esiste oppure no (degenere)

Cifrario di Cesare CD È un cifrario degenere Introdurre chiave k = shift ciclico C(m i ) = lettera in posizione (pos(m i ) + k) mod 21 D(c i ) = lettera in posizione (pos(c i ) – k) mod 21 fghilmnopqrstuvzabcde fghilmnopqrstuvzabcde èuna bella giooggi haqd ehood lnrrlln

Cifrario Completo Ammettiamo tutte le possibili permutazioni dell’alfabeto –sono (21! – 1), un numero spropositatamente grande ! Chiave k = = una permutazione Questo cifrario è sicuro ? No, attacco statistico. –Istogrammi di frequenza delle lettere nelle frasi in italiano –Istogrammi di frequenza delle lettere nel crittogramma –Molti crittogrammi a disposizione !

Cifrario a Trasposizione m = c i v e d i a m o t a r d i c = c i d v a i e m o r t i d a   = Permutazione delle lettere Periodo = 7 No attacco statistico ! Attacco sulla lunghezza del periodo

Cifrario Polialfabetico Ogni occorrenza di una lettera nel messaggio in chiaro può essere sostituita con diverse lettere nel crittogramma, a seconda della sua posizione o del suo contesto. A ABCDEFGHIJKLMNO.. B BCDEFGHIJKLMNO.. C CDEFGHIJKLMNO... D DEFGHIJKLMNO Y YZABCDEFGHIJK... Z ZABCDEFGHIJ.... ABCDEFGHIJKLMNO.. - Monoalfabetico ogni |k| caratteri - Attacco statistico possibile, ma difficile mFEDELE... kBACCAB cGEFGLF

Cifrari Perfetti: one-time pad

One-time pad: esempio Messaggio: Chiave: Crittogramma: Chiave: Messaggio:

Pregi e Difetti Se ogni bit della chiave è generato casualmente allora conoscere un bit del crittogramma non fornisce nessuna informazione aggiuntiva sul corrispondente bit del messaggio: cifrario perfetto. La chiave (pad): –è lunga (quanto il messaggio) –si consuma (one-time) –occorre scambiarsela

DES Data Encryption Standard

Un po’ di storia… Nel 1972, l’NBS (National Bureau of Standards. Oggi NIST: National Institute of Standards and Technology) iniziò un programma per proteggere le comunicazioni non classificate. Lo scenario era interessante: –NSA (National Security Agency) disponeva di molte conoscenze in materia di cifrari e metodi di decrittazione. –Esistevano molti prodotti pressocchè oscuri, non certificati e non compatibili. Nel 1973, l’NBS pubblicò un call for proposals: –Sistema a chiave segreta (certificazione e chiarezza) –Realizzabile in hardware (compatibilità) Bando andò pressocchè deserto.

…. ancora un po’. In un bando successivo IBM propose un sistema simile al suo prodotto Lucifer (operazioni logiche su gruppi di bit) Poco dopo NSA certificò Lucifer con il nome di DES: fece commenti e propose variazioni. –Chiave ridotta da 128 bit a 64 bit. –Modifiche significative alla funzione S-box. Diverse agenzie replicarono in modo allarmato !! Dopo alcune indagini il DES fu certificato e reso pubblico nel Primo esempio di cifrario robusto (con certificazione NSA) che i ricercatori potevano studiare. È stato certificato pressocchè ogni 5 anni, dal 1998 non è più considerato sicuro. Ad esso si preferisce il Triplo-DES. AES: il cifrario simmetrico del prossimo millennio !

Caratteristiche principali di DES Codifica Simmetrica Codifica a blocchi Blocco = 64 bit Chiave = 64 Bit (solo 56 usati)

Operazioni di Base Permutazione Sostituzione Espansione Contrazione Shift Circolare (destro e sinistro)

Permutazione P=(5,1,6,3,2,4) Un bit in ingresso determina un bit in uscita

Sostituzione Ogni ingresso può determinare ogni uscita Ingresso: A B C Uscita: A+B+C

Una permutazione è anche una sostituzione Ci sono sostituzioni che non sono permutazioni

Espansione Numero delle uscite maggiore del numero degli ingressi Esempio:

Contrazione Alcuni ingressi non influenzano le uscite, vengono scartati Numero delle uscite minore del numero degli ingressi Esempio (scelta):

Scelta Permutata Scelta (contrazione) Permutazione

Permutazione Iniziale : PI Fase 1 Fase 2 Fase 16 Scambio a 32 bit Permutazione Iniziale Inversa: PF Scelta Permutata 2 Shift circolare a Sinistra Scelta Permutata: T 64 bit testo in chiaro64 bit chiave k1 k2 k16 64 bit testo cifrato Permutazione Iniziale : PI Permutazione Iniziale Inversa: PF Scelta Permutata: T

PI, PF, e T Mancano ingressi: 8,16,24,32,40,48,56,64. Servono come controllo di parità.

L i-1 L i R i R i-1 D i-1 C i D i Shift a sinistra Permutazione/Contrazione XOR Espansione/Permutazione Sostituzione/Scelta Permutazione XOR K i 28

s1s2s3s4s5s6s7s8 P 32 bit + 48 bitK (48 bit) E

E 32 48

S-Box

RSA Rivest, Shamir, Adelman

E’ necessaria la chiave segreta ? A manda a B lo scrigno chiuso con il suo lucchetto. B chiude lo scrigno con un secondo lucchetto e lo rimanda ad A A toglie il suo lucchetto e rimanda lo scrigno a B B apre lo scrigno !!!

Un secondo protocollo B manda ad A il suo lucchetto aperto A chiude lo scrigno con il lucchetto ricevuto da B e glielo spedisce B riceve lo scrigno e lo apre !!!

Funzioni One-way con Trapdoor Un lucchetto è una funzione one-way con trapdoor ! Infatti tutti possono chiudere un lucchetto pur senza possedere la chiave. Nessuno può aprire un lucchetto senza avere la chiave. La cassetta delle lettere è un’altra funzione one-way con trapdoor. Perchè ?

Chiave Pubblica Per ottenere un protocollo a chiave pubblica occorre trovare una funzione matematica one-way con trapdoor ! Cioè una funzione facile da calcolare e difficile da invertire a meno di possedere qualche informazione aggiuntiva (chiave). La Teoria dei numeri ci viene in aiuto…

RSA Generazione delle chiavi Codifica. Encryption. C(m) Decodifica. Decryption. D(c)

RSA: Generazione delle chiavi. Scelgo due numeri primi grandi p e q Calcolo n=pq Scelgo e tale per cui GCD(e,  (n)) = 1 Calcolo d tale per cui de mod  (n) = 1 Chiave Pubblica = (e,n) Chiave Privata = (d,n)

RSA: Encryption c = m e mod n

RSA: Decryption m = c d mod n

RSA: esempio. Scegliamo p=5 e q=11. Dunque n=55 e  (n)= (5-1)(11-1)=40. Prendiamo e=7. Calcoliamo d=23. d * e = 161 = 4 * = 1 mod 40. Quindi il nostro sistema ha le seguenti chiavi: K[priv]=(23,55) e K[pub]=(7,55) Sia m=5. Codifica: c=5 7 mod 55 = 25 Decodifica: m=c 23 mod 55 = 5

Domande Chi ci assicura che D(C(m)) = m ? Chi dice che RSA sia sicuro ? RSA è efficiente ? Come eseguo le varie operazioni ?

Correttezza di RSA

Sicurezza di RSA Nessun Teorema !!! Nessuno è ancora riuscito a violare RSA Un modo per risalire alla chiave privata conoscendo quella pubblica è il seguente: Fattorizzo n e ottengo p e q. Calcolo  (n) e quindi d. Si congettura sia vero anche il viceversa.

Massimo Comun Divisore Definizione: produttoria dei fattori comuni con il minimo esponente Esempio: GCD( , ) = Algoritmo ottenuto dalla definizione: FATTORIZZAZIONE !!! Tempo esponenziale Serve un’idea !!!

Algoritmo di Euclide GCD(x,y) = GCD(x-y,y) GCD(x,y) = GCD(x-ky,y) GCD(x,0) = x

nqnqn rnrn unun vnvn GCD(408,595) q n = r n-2 div int r n-1 u n = u n-2 - q n u n-1 v n = v n-2 - q n v n-1 r n = u n x + v n y x y 408 = 2  =  -1

Se x e y sono primi tra loro alla fine abbiamo Quindi u è l’inverso moltiplicativo di x modulo y ovvero

Vogliamo d: ed  1 mod  (n) sapendo già che GCD(e,  (n)) = 1 Usiamo l’algoritmo di Euclide. Calcoliamo GCD(e,  (n)) ottenendo u e v tali per cui ue + v  (n) = 1 u è ciò che cerchiamo !!!

Algoritmo di Euclide. Function E(a,b) if b=0 then Return a else Return E(b, a mod b)

Algoritmo di Euclide Esteso. Function EE(a,b) if b=0 then Return else = EE(b,a mod b) = Return

ALGORITMO STUPIDO: Moltiplico 158 per 158 per volte e poi divido per 678 e prendo il resto. Tempo di esecuzione dell’ALGORITMO STUPIDO per calcolare qualche decimo di secondo... per calcolare con a e b di 150 cifre = usando tutti i calcolatori del mondo, la vita dell’universo !!!!

Trucchi computazionali per calcolare Eseguire l’operazione di modulo dopo gni operazione (non basta!)

...ma... Cosa succede se devo calcolare ??? Operazioni Base: Usiamo le operazioni base per calcolare efficientemente il risultato finale.

Concludendo... Le operazioni di modulo le distribuisco ad ogni passo ( per ridurre le dimensioni dei numeri ottenuti via via..) EFFICIENZA ? OK! Il numero di moltiplicazioni è lineare nell’esponente.

Generazione di primi “grandi” Ci sono tavole di numeri primi ma non così grandi... Quanti numeri primi ci sono ? Ovvero, come sono distribuiti ? Qual è la probabilità di prendere un numero a caso e questo sia primo ?

n di 10 cifre n di 100 cifre IDEA: Genero n a caso poi verifico se è primo. Se è primo ho finito. Altrimenti Inizio da capo.

Test di Primalità Fino a qualche tempo fa non si conosceva nessun algoritmo per testare se un numero è primo oppure no. Adesso esiste un algoritmo che svolge questo compito in n 4 passi. Polinomiale ma poco efficiente. Come si procede in pratica ???

Teorema di Fermat (caso particolare del teorema di Eulero)

Pomerance 1981 a numero casuale tra 1 e n-1 n numero casuale di circa 100 cifre

1- Genero n a caso 2- Genero a tra 1 e n a caso 3- Calcolo 4- If x = 1 then Stop: n primo else Stop: n composto Test probabilistico di primalità

Se n è primo: risposta esatta sempre. Se n è composto: risposta errata con probabilità = Può non essere sufficiente per alcune applicazioni !! Come procediamo ??? Analisi dell’algoritmo:

1- Genero n a caso 2- Genero a tra 1 e n a caso 3- Calcolo 4- If x = 1 then Stop: n primo else Stop: n composto Test probabilistico di primalità ESTESO. k volte

Come generare d, e ? e deve essere primo con d deve soddisfare

1- Scelgo e a caso. 2- Verifico se e è primo con  (n). 2.a- Se si Fine 2.b- Se no goto 1. Con l’algoritmo di Euclide Esteso trovo l’inverso moltiplicativo di e mod  (n)

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)

Identificazione Autenticazione Firma digitale Contrastano possibili attacchi attivi

Funzioni Hash

Proprietà di funzioni Hash Elementi molto simili in X appartengano a sottoinsiemi distinti

Funzioni Hash in crittografia: Hash one-way

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. L’amministratore accede al file delle chiavi. Contromisura: memorizziamo la password in forma cifrata utilizzando le funzioni hash one-way. COME ???

Cifratura della pwd con funzioni hash one-way:UNIX 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 = h(PS).

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.

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

MAC Messaggio m di lunghezza n qualsiasi MAC MAC(m,k) 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 !!!

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 !

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 V: Verifica. m * =C(f,k U [pub]) if m * =m then si else no Protocollo 1

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.

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 V: Verifica. f * =D(c *,k V [priv]) m * =C(f *,k U [pub]) if m * ”ha senso” then si else no Protocollo 2

In Pratica... U: Firma. f=D(h(m),k U [priv]) c=C(m,k V [pub]) send 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...

V: Destinatario di un messaggio cifrato. U: Mittente di un messaggio cifrato. k V [pub] Intruso X k V [pub]k X [pub] k V [pub] k X [pub]

Men in-the-middle Attack U richiede a V la sua chiave pubblica k V [pub] (per 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

Certificato di U in formato X.509 Numero di versione dello standard X.509 utilizzato. Chiave pubblica di U. Caratteristiche della chiave (lunghezza, algoritmo con cui è stata creata, data di creazione, durata della chiave…) Numero del certificato. Serve ad esempio per la revoca (CRL) Distinguished name (DN): identificativo di U su tutta la rete. Periodo di validità del certificato (inizio e fine validità). Il nome di chi ha firmato il certificato (di solito una CA), la sua firma digitale e l’algoritmo usato per apporre la firma.