La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Elementi di crittografia

Presentazioni simili


Presentazione sul tema: "Elementi di crittografia"— Transcript della presentazione:

1 Elementi di crittografia
21/10/2008 Corso di Informatica

2 Corso di Informatica Avanzata
Sommario Introduzione Minacce e forme di attacco Sistemi sicuri Crittografia Aspetti generali Crittografia a chiave privata Crittografia a chiave pubblica Firma digitale Funzioni di secure hash Caso di studio (invio di sicure) 29/03/2017 Corso di Informatica Avanzata

3 Corso di Informatica Avanzata
Introduzione Sicurezza in rete Il problema della SICUREZZA negli ultimi decenni e soprattutto anni ha assunto sempre maggiore importanza. Con l’avvento di Internet e delle nuove tecnologie infatti, è aumentata in maniera esponenziale la quantità di informazioni e di dati che gli utenti della rete si scambiano. Aumenta l’esigenza di proteggere le informazioni da tutti coloro che cercano di impossessarsene abusivamente tramite attacchi al sistema di comunicazione: sicurezza di una rete, che implica l’introduzione di un insieme di misure necessarie a scoraggiare, prevenire, rilevare e correggere le violazioni della sicurezza di una trasmissione di dati. 29/03/2017 Corso di Informatica Avanzata

4 Corso di Informatica Avanzata
Introduzione Scenario Bob, Alice (amanti!) vogliono comunicare in modo “sicuro” Trudy, “l’intrusa” può intercettare, distruggere, aggiungere i messaggi Segretezza: soltanto il sender ed il corretto receiver debbono “comprendere” il contenuto del messaggio il sender cifra (encrypts) il messaggio il receiver decifra (decrypts) il messaggio Autenticazione: il sender ed il receiver vogliono avere conferma dell’identità l’uno dell’altro Integrità: il sender ed il receiver vogliono assicurarsi che il messaggio non sia alterato (in transito, o dopo) senza che ciò venga scoperto Non ripudio: il sender in futuro non può negare di aver inviato i dati, e di aver inviato proprio quei dati firma digitale Cosa possono rappresentare Alice e Bob? Web browser/server per transazioni elettroniche (es. acquisti on-line) ecc. • SEGRETEZZA: evitare che i dati inviati da un soggetto A a un soggetto B vengano intercettati da un terzo soggetto C. • AUTENTICAZIONE: verificare l’identità di chi manda o riceve i dati (evitare che un intruso si spacci per chi non è). • INTEGRITA’: essere sicuri che i dati ricevuti siano uguali a quelli inviati (evitare cioè che un intruso o un evento accidentale alteri i dati durante la trasmissione). • NON RIPUDIO: evitare che chi invia dei dati possa in futuro negare di averli inviati, e di aver inviato proprio quei dati (firma digitale). 29/03/2017 Corso di Informatica Avanzata

5 Introduzione Minacce e forme di attacco
Una minaccia è una potenziale violazione di sicurezza Difetti in progettazione, implementazione Un attacco è una qualunque azione che violi la sicurezza attacchi attivi: prevedono la modifica del flusso di dati o la creazione di un falso flusso Tampering, masquerading attacchi passivi: intercettano o monitorano le trasmissioni, con l’obiettivo di carpire le informazioni trasmesse. Eavesdropping Eavesdropping (origliare): l’informazione rimane intatta, ma la sua privacy è compromessa Attacco alla segretezza Esempio: qualcuno intercetta una mia operazione bancaria effettuata via web per prelevare informazioni riservate Attivo: può inserirsi nella comunicazione o modificarla Eavesdropping: il messaggio è scambiato tra il vero mittente ed il vero destinatario, inoltre il messaggio non viene modificato in alcun modo: la comunicazione va a buon fine! L’unico inconveniente è che la comunicazione non è stata segreta, infatti c’è stato un indesiderato terzo a venire a conoscenza dell’avvenuta comunicazione e dei sui contenuti. 29/03/2017 Corso di Informatica Avanzata

6 Introduzione Minacce e forme di attacco
Tampering (manomissione): l’informazione in transito è modificata o sostituita e poi inviata al receiver Attacco all’integrità del messaggio Esempio: mentre effettuo un bonifico qualcuno cambia il conto corrente su cui effettuare il versamento Masquerading (impersonificazione): assunzione non autorizzata dell’identità di un altro Attacco all’autenticità Esempio: penso di dare il mio numero di carta di credito ad un albergo ed invece lo do a dei truffatori Tampering: La comunicazione avviene tra il giusto mittente ed il giusto destinatario ma c’è un passaggio intermedio durante la trasmissione del messaggio: un terzo si intromette nella comunicazione. Questi riceve il messaggio, lo consulta venendone a conoscenza, lo modifica secondo le proprie intenzioni e lo manda al destinatario. Non solo il messaggio non è più privato, ma è stato anche alterato! Masquerading: uno dei due membri della comunicazione non sta dialogando con la persona con cui crede di farlo ma con un impostore. In questo modo si danno informazioni a qualcuno che non dovrebbe averle e che dovrebbe usarle per proprio vantaggio. Allo stesso tempo non si danno le stesse informazioni a chi si vorrebbe. 29/03/2017 Corso di Informatica Avanzata

7 Introduzione Minacce e forme di attacco
Denial of Service (DoS = negazione del servizio): deliberato uso eccessivo della risorsa per fare in modo che non sia disponibile ai legittimi utenti Attacco alla disponibilità Esempio: inondare di messaggi un server (consumare la risorsa) mettendolo quindi fuori uso 29/03/2017 Corso di Informatica Avanzata

8 Corso di Informatica Avanzata
Introduzione Sistemi Sicuri Il termine Sistema Sicuro non implica che il sistema sia inviolabile Ogni sistema può essere violato, avendo sufficiente tempo e denaro La sicurezza di un sistema deve essere proporzionale alle risorse che esso protegge Proprietà di un sistema sicuro: Ogni entità è sicura dell’identità dell’altra L’informazione è privata e protetta contro il tampering Protezione contro la ripetizione ed il riordino dei dati Impiego della crittografia La segretezza è basata sul concetto di crittografia L’autenticazione è basata sulla dimostrazione di un segreto Il termine sistema sicuro significa rendere più difficile l’attacco; non significa renderlo impossibile. 29/03/2017 Corso di Informatica Avanzata

9 Corso di Informatica Avanzata
Crittografia Definizioni La crittografia è la tecnica che consente di rendere visibili le informazioni soltanto alle persone a cui esse sono destinate. Si basa generalmente su algoritmi matematici Testo in chiaro: è il messaggio che può essere letto da tutti Testo cifrato: è il testo in chiaro trasformato in messaggio illeggibile Codifica (cifratura): tecnica che trasforma testo in chiaro testo cifrato Decodifica (decifrazione): tecnica che trasforma testo cifrato testo in chiaro 29/03/2017 Corso di Informatica Avanzata

10 Corso di Informatica Avanzata
Crittografia Un algoritmo crittografico, chiamato anche cifrario, è una funzione matematica usata per la codifica e la decodifica Sostituzione: ogni elemento del testo in chiaro viene mappato su un altro elemento Permutazione: gli elementi del testo in chiaro vengono cambiati di posizione Con la crittografia moderna, l’abilità di tenere segreta l’informazione criptata è basata non sull’algoritmo crittografico, che è ben conosciuto, ma su un numero chiamato chiave che deve essere usato con l’algoritmo per produrre un risultato criptato o per decriptare le informazioni precedentemente codificate La sicurezza di un sistema di crittografia risiede solo ed esclusivamente nella segretezza della chiave e non dell'algoritmo che è opportuno far conoscere alla pubblica analisi, in modo che se ne possano scoprire eventuali punti deboli in tempo. Un algoritmo di crittografia riceve un testo da codificare (detto testo in chiaro) e lo trasforma, attraverso la chiave, in un testo cifrato apparentemente incomprensibile. Operazioni usate per trasformare il testo in chiaro in testo cifrato: sostituzione = ciascun elemento del testo in chiaro viene mappato su un altro elemento; permutazione = gli elementi del testo in chiaro vengono cambiati di posizione. 29/03/2017 Corso di Informatica Avanzata

11 Corso di Informatica Avanzata
Crittografia Principio di Kerckhoffs: “La sicurezza di un sistema crittografico è basata esclusivamente sulla conoscenza della chiave, in pratica si presuppone noto a priori l’algoritmo di cifratura e decifrazione.” Risulterà strano ma uno dei principi fondamentali della crittografia, utilizzato ancora nei moderni sistemi crittografici è stato individuato nel lontano 1883 dal linguista franco-olandese August Kerckhoffs nel suo celebre articolo “La cryptographie militaire” apparso nel Journal des sciences militaires. Principio di Kerckhoffs: “La sicurezza di un sistema crittografico è basata esclusivamente sulla conoscenza della chiave, in pratica si presuppone noto a priori l’algoritmo di cifratura e decifrazione.” 29/03/2017 Corso di Informatica Avanzata

12 Crittografia Attacchi alla sicurezza
Impiego di tecniche per decifrare un messaggio senza conoscere i dettagli della cifratura. Scopo: violare il codice, decifrare il messaggio riservato (e/o i messaggi successivi). Tipi di attacco: Analisi Crittografica: Tramite l’utilizzo di tecniche statistiche sulla frequenze dei caratteri o sottostringhe del testo cifrato si ottengono informazioni utili sul testo in chiaro. Attacco a forza bruta: tenta ogni possibile chiave su un frammento di testo cifrato fino a che non si riesce ad ottenere una traduzione corretta. In media, per avere successo, bisogna provare meta tra tutte le possibili chiavi. Problema a complessità computazionale esponenziale 29/03/2017 Corso di Informatica Avanzata

13 Crittografia Attacchi alla sicurezza 29/03/2017
La lunghezza della chiave utilizzata è uno dei fattori più importanti per la segretezza del testo, evita infatti che possa essere decifrato per tentativi , dato che provare tutte le possibili combinazioni di caratteri che potrebbero formare una chiave è un problema che gli analisti definiscono a complessità computazionale esponenziale (basta infatti aggiungere una sola lettera alla chiave per aumentare in modo vertiginoso il numero di possibili combinazioni che possono essere ottenute). 29/03/2017 Corso di Informatica Avanzata

14 Crittografia Attacchi alla sicurezza
La “forza” di un sistema crittografico dipende da due parametri: l’algoritmo crittografico lunghezza della chiave (espressa in numero di bit) La forza di un sistema è inoltre una caratteristica che varia nel tempo e dipende fortemente dalla potenza di calcolo dei processori 29/03/2017 Corso di Informatica Avanzata

15 Crittografia Attacchi alla sicurezza
Sistema di crittografia COMPUTAZIONALMENTE SICURO se soddisfa almeno uno dei seguenti criteri: Costo della violazione del testo cifrato supera il valore delle informazioni crittografate Tempo richiesto per l’analisi crittografica è superiore alla vita utile delle informazioni 29/03/2017 Corso di Informatica Avanzata

16 Corso di Informatica Avanzata
Crittografia Crittografia a chiave privata Il sender ed il receiver usano la stessa chiave (è anche detto crittografia a chiave singola, segreta o simmetrica) Crittografia a chiave pubblica Il sender ed il receiver usano differenti chiavi (è anche detto crittografia a due chiavi o a chiave asimmetrica) In base al numero di chiavi usate: CRITTOGRAFIA SIMMETRICA o CRITTOGRAFIA ASIMMETRICA. 29/03/2017 Corso di Informatica Avanzata

17 Crittografia simmetrica
Scenario Sender Receiver Hi,Jack Hi,Jack Crypt Decrypt Ksecret Ksecret $e3lW% 29/03/2017 Corso di Informatica Avanzata

18 Crittografia simmetrica
Il sender: E = encrypt (K, M) Dove M è il testo in chiaro, E è il messaggio cifrato e K la chiave segreta Il receiver: M = decrypt (K, encrypt (K, M)) Devono verificarsi due condizioni per il funzionamento: Algoritmo di crittografia forte (non necessariamente segreto) La distribuzione della chiave segreta al mittente e al destinatario e la conservazione di essa da parte di queste entità deve avvenire in maniera sicura 29/03/2017 Corso di Informatica Avanzata

19 Crittografia simmetrica
Vantaggi Alto grado di autenticazione Svantaggi Problema di distribuzione della chiave che deve rimanere segreta L’intruso che conosce la chiave può non solo decifrare il messaggio (attacco alla segretezza), ma può anche criptare un nuovo messaggio ed inviarlo ad una delle due parti che usano la chiave Gli algoritmi simmetrici possono essere divisi in: Cifrari a stream: cifra un singolo bit di testo in chiaro per volta Cifrari a blocchi: prende un numero di bit (tipicamente 64 bit) e li cifra come una singola unità Vantaggi Elevato grado di autenticazione: l’informazione criptata con una chiave simmetrica non può essere decifrata con un’altra chiave simmetrica. 29/03/2017 Corso di Informatica Avanzata

20 Crittografia simmetrica
Cifrario di Cesare Ogni lettera è sostituita da quella che la segue di k posizioni nell’alfabeto k è la chiave Se k=3, a è sostituito con d, b con e ecc. Chiaro: auguridibuoncompleanno Cifrato: dxjxulglexrqfrpsohdqqr Per comunicare con i sui generali, Giulio Cesare sostituiva ad ogni lettera del messaggio un'altra lettera un certo numero di posizioni più avanti nell'alfabeto. Per l'esattezza utilizzava la chiave "3", tutte le lettere venivano scalate di tre cifre: la A diventava D, la B diventava E, la C diventava F e così via. Un metodo semplicissimo ma per quell'epoca più che rivoluzionario. Supponiamo di dover decifrare con questo metodo la frase: auguridibuoncompleanno 29/03/2017 Corso di Informatica Avanzata

21 Crittografia simmetrica
Cifrario di Cesare Cifrario di sostituzione Chiave di cifratura = chiave di decifratura Svantaggi Scambio della chiave Si possono utilizzare solo 25 chiavi (tutte le lettere dell’alfabeto - 1) La chiave utilizzata per la cifratura è la stessa che viene utilizzata per la decifratura e per questo deve essere scambiata tra le due parti che devono comunicare. La debolezza di questo cifrato sta nel fatto che si possono utilizzare solo 26 chiavi (tante quante le lettere dell'alfabeto) e basta qualche tentativo sulle prime parole del testo cifrato per capire quale chiave è in grado si decifrare il messaggio. Questo cifrato rimane comunque molto importante per il fatto che ha doto il via a molte altre varianti, alcune delle quali molto valide. 29/03/2017 Corso di Informatica Avanzata

22 Crittografia simmetrica
Cifrario di sostituzione mono-alfabetico Generalizzazione del cifrario di Cesare Ogni lettera è sostituita da un’altra, secondo uno schema “libero” La chiave è la stringa di 26 lettere corrispondente all'intero alfabeto Chiavi possibili 26!, circa 4×1026; Attacco a forza bruta improbabile Facilmente attaccabile con metodi statistici (partendo dalla conoscenza della frequenza delle lettere e delle parole in una lingua) Un primo miglioramento è quello di avere ogni simbolo del testo in chiaro (le 26 lettere) sostituito con qualche altra lettera in modo autonomo e senza una legge fissa. Un sistema di questo tipo è detto a sostituzione monoalfabetica e la chiave è la stringa di 26 lettere corrispondente all'intero alfabeto. Questo tipo di cifrato può sembrare sicuro visto che le possibili chiavi sono 26! (fattoriale), parecchi milioni di miliardi ed andare a tentativi come per il cifrato di Cesare è improponibile. Ma l'analisi dei cifrati monoalfabetici, dove ad ogni lettera corrisponde un solo carattere segreto, è relativamente facile, e richiede la conoscenza delle varie frequenze delle lettere nelle varie lingue. Si basa infatti sull'esame delle frequenze delle sequenze dei crittogrammi e sulla ricostruzione dei bigrammi (la, il, lo, se ...) e dei trigrammi (per, con, del ...) più frequenti nella lingua. Dato un testo cifrato, si procede eseguendo una statistica sulla frequenza delle lettere presenti e si costruisce un grafico disponendo i caratteri in ordine decrescente. I caratteri più frequenti nel crittogramma, saranno le lettere più frequenti nella lingua. 29/03/2017 Corso di Informatica Avanzata

23 Crittografia simmetrica
Cifrario di sostituzione mono-alfabetico Se per esempio decidiamo di utilizzare la seguente chiave: Significa che per costruire il nostro cifrato dobbiamo affidarci alle corrispondenze tra il nostro alfabeto e quello generato dalla chiave: Il testo in chiaro (prova di cifratura) verrà cifrato così: QAZWSXEDCRFVTGBYHNUJMIKOLP ABCDEFGHIJKLMNOPQRSTUVWXYZ QAZWSXEDCRFVTGBYHNUJMIKOL PROVA DI CIFRATURA YNBIQ WC ZCXNQJMNQ 29/03/2017 Corso di Informatica Avanzata

24 Crittografia simmetrica
Cifrario di sostituzione poli-alfabetico Sono usati due o più cifrari mono-alfabetici Le lettere sono sostituite con l’uno o l’altro dei cifrari, secondo uno schema predeterminato es. se lo schema è C1, C2, C2, C1, C2, il testo in chiaro “testo segreto” è crittografato nel testo cifrato “yxlyh xxzwxyh” più lunga è la chiave, più robusto è l’algoritmo, sempre per ragioni statistiche Uno modo per migliorare la tecnica monoalfabetica è quello di utilizzare delle sostituzioni monoalfabetiche a mano a mano che si procede nel messaggio in chiaro (cifratura a sostituzione polialfabetica) 29/03/2017 Corso di Informatica Avanzata

25 Crittografia simmetrica
Cifrario di Leon Battista Alberti Disco composto di due cerchi concentrici di rame. Uno esterno fisso di diametro maggiore sul quale sono riportate le lettere dell’alfabeto in chiaro: composto di 24 caselle contenenti 20 lettere maiuscole in ordine lessicografico, escluse H, J, K, W, Y, al posto delle quali ci sono i numeri 1, 2, 3, 4. Uno interno mobile per le lettere dell’alfabeto cifrante. Il disco interno riporta le 24 lettere minuscole in maniera disordinata ed un simbolo speciale et. 29/03/2017 Corso di Informatica Avanzata

26 Crittografia simmetrica
Cifrario di Leon Battista Alberti Mittente e destinatario avevano entrambi la stessa macchinetta. Entrambi concordavano una lettera che sarebbe stata la chiave di partenza. Per cifrare il messaggio, il mittente iniziava ruotando il disco interno in maniera casuale. Iniziava quindi a scrivere il testo cifrato, riportando per prima cosa la lettera sul disco piccolo in corrispondenza della chiave concordata sul disco grande. Passava quindi ad eseguire la sostituzione del testo prelevando i caratteri sul disco più piccolo in corrispondenza dei caratteri da cifrare sul disco più grande. 29/03/2017 Corso di Informatica Avanzata

27 Crittografia simmetrica
Cifrario di Leon Battista Alberti Terminata la prima parola, ruotava di nuovo in maniera casuale il disco interno e iterava la procedura di sostituzione. In questo modo, ogni parola utilizzava un proprio alfabeto di sostituzione e con tale dispositivo ne erano a disposizione 24 Cifrario polialfabetico. Le lettere che di volta in volta corrispondono ai numeri 1,2,3,4 non vengono usate. 29/03/2017 Corso di Informatica Avanzata

28 Crittografia simmetrica
Cifrario di Leon Battista Alberti Testo da cifrare: “Messaggio da Leon” Lettera chiave: C Ruotiamo a caso il disco interno e passiamo alla posizione in figura. Iniziamo a scrivere il messaggio indicando al destinatario come deve ruotare il suo disco interno. Per farlo iniziamo la parola cifrata con D, e ne deriva: Messaggio = DTZQQSIIEN 29/03/2017 Corso di Informatica Avanzata

29 Crittografia simmetrica
Cifrario di Leon Battista Alberti Nuova rotazione casuale e cifratura della seconda parola: Da = CETQ Nuova rotazione casuale e cifratura della terza parola: Leon = ? 29/03/2017 Corso di Informatica Avanzata

30 Crittografia simmetrica
Cifrario di Leon Battista Alberti Svantaggi Chiave di cifratura di un solo carattere: sarebbe semplicissimo decifrare il messaggio anche senza sapere che la prima lettera di ogni parola è la chiave di cifratura, basterebbe provare per ogni parola le 24 posizioni del disco. Vantaggi L’analisi statistica basata sulla frequenza delle lettere era impossibile La sicurezza è affidata ad una chiave di cifratura di un solo carattere: sarebbe semplicissimo decifrare il messaggio anche senza sapere che la prima lettera di ogni parola è la chiave di cifratura, basterebbe provare per ogni parola le 24 posizioni del disco. 29/03/2017 Corso di Informatica Avanzata

31 Crittografia simmetrica
Codice di Vigènere Si basa sulla sostituzione poli-alfabetica Punto forza: utilizzare non uno ma 26 alfabeti cifranti per cifrare un solo messaggio. Si utilizza una tabella di dimensione 26x26 in cui la riga i-esima contiene l’alfabeto ruotato verso sinistra di i-1 posizioni Il codice di Vigenère si basa un'operazione che viene chiamata sostituzione polialfabetica, molto più sicura di una semplice sostituzione monoalfabetica. Il Vigenère propose l'uso della tavola quadrata, composta da alfabeti ordinati spostati di una lettera. Il metodo Vigenère ebbe una fortuna immediata, era così efficace che per molti anni fu chiamato "il cifrario indecifrabile" e fu molto usato nell'ambito militare anche dopo che gli analisti ne scoprirono il metodo di decrittazione. 29/03/2017 Corso di Informatica Avanzata

32 Crittografia simmetrica
Codice di Vigènere Il metodo si può considerare una generalizzazione del codice di Cesare. Invece di spostare sempre dello stesso numero di posti la lettera da cifrare, questa viene spostata di un numero di posti variabile, determinato dalle lettere della parola chiave, da concordarsi tra mittente e destinatario. 29/03/2017 Corso di Informatica Avanzata

33 Crittografia simmetrica
Codice di Vigènere Per utilizzare la tavola e cifrare un primo messaggio è necessario dunque scegliere una chiave, ad esempio HTML. A questo punto la tavola appena vista si riduce di qualche riga, cinque per essere esatti, costituite dalla prima e dalle quattro righe che iniziano con le lettere della chiave. La tavola che segue sarà quindi sufficiente per eseguire la cifratura 29/03/2017 Corso di Informatica Avanzata

34 Crittografia simmetrica
Codice di Vigènere Dato il messaggio in chiaro, lo si allinea con la chiave. Ogni lettera del messaggio viene sostituita con la lettera della tabella che è all’incrocio tra la riga che inizia con la lettera della chiave (allineata con quella del messaggio) e la colonna che inizia con la lettera del messaggio (lettera individuata sulla prima riga) La chiave essendo in genere molto più corta del messaggio, deve essere ripetuta molte volte. PROVADICIFRATURA HTMLHTMLHTMLHTML Per cifrare si dovrà prima di tutto scrivere le lettere della chiave sotto a quelle del testo in chiaro e cercare, per ogni lettera del chiaro, la corrispondente cifrata nell'incrocio tra la colonna individuata dalla lettura chiara (quelle della prima riga) e la linea individuata dalla lettera chiave. Nel nostro caso quindi alla prima lettera (P) corrisponde la lettera W, trovata dall'incrocio tra la colonna identificata dalla lettera P e la riga identificata dalla lettera H. Alla seconda lettera (R) corrisponde la lettera K, trovata dall'incrocio tra la colonna R e la riga T. Si continua di questo passo utilizzando la chiave in un ciclo continuo fino a cifrare tutto il testo. P W R K 29/03/2017 Corso di Informatica Avanzata

35 Crittografia simmetrica
Codice di Vigènere Il risultato finale della cifratura è: Punto di forza: numero di chiavi è enorme Attacco a forza bruta non praticabile L'attacco di Kasiski si basa sull'osservazione che nel crittogramma si trovano spesso sequenze identiche di caratteri a una certa distanza l'una dell'altra. Questo avviene per il fatto di utilizzare ciclicamente la stessa chiave. WKAGHWUNPYDLANDL La forza di questo cifrato sta nel fatto che il numero di chiavi è enorme, quindi gli attacchi praticati con la forza (ad esempio provare tutte le possibili combinazioni) non sono praticabili. Per quasi trecento anni rimase infatti inviolato ma poi cadde di fronte all'analisi del colonnello prussiano Friedrich Kasiski, che nel 1863 pubblicò un libro che conteneva un metodo di decrittazione della tavola di Vigenère e del suo cifrario polialfabetico con chiave ripetuta. Considerando infatti l'esempio precedente: Le due R del testo in chiaro vengono cifrate la prima con una K la seconda con una D come deve essere in un cifrario polialfabetico. Ma le ultime due A vengono invece cifrate con la stessa lettera, la L. Il motivo è evidente: le due A si trovano a quattro caratteri di distanza l'una dall'altra e quattro è proprio la lunghezza della chiave. Di fatto il codice di Vigenère si riduce qui a cinque codici di Cesare intercalati. PROVADICIFRATURA - testo in chiaro HTMLHTMLHTMLHTML - chiave WKAGHWUNPYDLANDL - testo cifrato 29/03/2017 Corso di Informatica Avanzata

36 Crittografia simmetrica
Codice di Vigènere Il codice di esempio si riduce quindi a cinque codici di Cesare intercalati. Il cifrario di Vigenère è affidabile solo quando la chiave è di lunghezza comparabile a quella del testo e viene cambiata molto spesso problemi pratici non indifferenti (trasmissione e cambiamento della chiave richiedono un canale di comunicazione assolutamente sicuro). 29/03/2017 Corso di Informatica Avanzata

37 Crittografia simmetrica
Cifrario a trasposizione A differenza di quelli a sostituzione, questi riordinano le lettere senza trasformarli Data una chiave, il testo in chiaro è scritto orizzontalmente in righe sotto la chiave Si numerano le lettere della chiave in ordine alfabetico crescente Testo in chiaro: PROVA DI CIFRATURA A TRASPOSIZIONE.. Chiave: HTML Nel cifrario a trasposizione per colonne la chiave è una parola o una frase che non contiene alcuna lettera ripetuta. Lo scopo della chiave è numerare le colonne di una tabella che contiene il testo in chiaro scritto orizzontalmente per righe della lunghezza della chiave. Il testo cifrato deve invece essere letto per colonne, seguendo l'ordine alfabetico proposto dalla chiave. 29/03/2017 Corso di Informatica Avanzata

38 Crittografia simmetrica
Cifrario a trasposizione Il testo cifrato è ottenuto leggendo il testo in chiaro per colonne seguendo la numerazione Testo cifrato: PAITASINRLVCAAASO.MTOIRRROI.RDFUTPZE Il testo cifrato sarà quindi il risultato della lettura per colonne seguendo l'ordine alfabetico della chiave (sottolineato da i numeri in rosso): 29/03/2017 Corso di Informatica Avanzata

39 Crittografia simmetrica
Algoritmi moderni DES (Data Encryption Standard) Sviluppato dall’IBM (International Business Machines Corporation) nel 1970 diventato standard nel 1976. Utilizza chiavi di 56 bit, divide il testo in chiaro in blocchi di 64 bit Il 17 Luglio 1998, l’EFF (Electronic Frontier Foundation) costruisce un sistema dedicato in grado di violare il DES in meno di 3 giorni, tramite un attacco di tipo “brute-force”. Morale della favola: non utilizzate sistemi di cifratura basati sul DES! 29/03/2017 Corso di Informatica Avanzata

40 Crittografia simmetrica
Algoritmi moderni 3DES (Triple Data Encryption Standard) Evoluzione del DES, è basato su un utilizzo del cifrario DES ripetuto, chiavi di 112 bit. Si utilizza la tecnica della codifica-decodifica-codifica (EDE, Encrypt-Decrypt-Encrypt) utilizzando il cifrario DES. Le varianti di DES successivamente proposte miravano ad ampliare lo spazio delle chiavi cercando di mantenere inalterata la semplicità di fondo che caratterizza il cifrario. E’ però il “triple-DES” (3DES) che ha preso piede come soluzione più sicura. In questo caso si ha un cifrario composto con l’”accoppiamento” di più DES che utilizzano due chiavi differenti. Nel DES triplo il messaggio viene crittografato nel modo seguente: c=C(D(C(m,k1),k2),k1) c è il messaggio cifrato ottenuto (”ciphertext”) C() e D() sono, rispettivamente, le funzioni di cifratura e decifratura DES m è il messaggio in chiaro (”plaintext”) k1, k2 sono le due chiavi, differenti tra loro, utilizzate dall’algoritmo 3DES. Ciascuna ha dimensioni pari a 56 bit. La chiave complessiva avrà dimensioni pari a 128 bit (112 bit più 16 bit di parità; ved. gli articoli precedenti dedicati al funzionamento di DES). La versione più sicura di 3DES, è il 3-key 3DES: in questo caso sono tre le chiavi distinte che vengono utilizzate. Il migliore attacco conosciuto nei confronti dell’algoritmo 3-key 3DES richiede ad oggi risorse e tempistiche tali da renderne praticamente impossibile una forzatura (almeno sino al 2030, come dichiarato dal NIST; National Institute of Standards and Technology). 29/03/2017 Corso di Informatica Avanzata

41 Crittografia simmetrica
Algoritmi moderni AES (Advanced Encryption Standard) Nuovo (novembre 2001) standard a chiave simmetrica rimpiazzante DES Elabora dati in blocchi di 128 bit Chiavi di 128, 192 o 256 bit La decifrazione con approccio “a forza bruta” che richiede 1 secondo su DES, prende 149 trilioni di anni con AES IDEA (International Data Encryption Algorithm) Codice cifrato a blocchi di 64 bit A differenza del DES la chiave è di 128 bit Attacco a forza bruta impossibile (le chiavi sono 2^128) 29/03/2017 Corso di Informatica Avanzata

42 Crittografia Asimmetrica
Nasce nel 1975 Proposta da Whitfield Diffie e Martin Hellman È chiamata anche “Crittografia a chiave pubblica” Risolvere il problema della distribuzione sicura delle chiavi Cifrari intrinsecamente sicuri perché utilizzano tecniche di tipo matematico invece che permutazioni e sostituzioni Utilizza una coppia di chiavi distinte (tra loro correlate matematicamente) La chiave PUBBLICA, usata per la cifratura, viene distribuita liberamente a tutte le persone con cui si vuole comunicare La chiave PRIVATA, usata per la decifratura, deve essere tenuta segreta Tutti i sistemi di cifratura visti fino a questo punto sono detti a chiave segreta (o simmetrica) ed utilizzano la stessa chiave sia per cifrare che per decifrare. Questo costituisce un problema non indifferente se pensiamo all'utilizzo della crittografia per la comunicazione a distanza, infatti le due parti devono riuscire in qualche modo a scambiarsi la chiave con la certezza che nessuno ne venga a conoscenza. La soluzione a questo tipo di problema fu proposta nel 1975 da Whitfield Diffie e Martin Hellman, che ebbero un'intuizione che rivoluzionò il mondo della crittografia. Diffie ed Hellman pensarono ad un sistema asimmetrico, basato su l'uso di due chiavi generate in modo che sia impossibile ricavarne una dall'altra. Le due chiavi vengono chiamate pubblica e privata: la prima serve per cifrare e la seconda per decifrare. Una persona che deve comunicare con un'altra persona non deve far altro che cifrare il messaggio con la chiave pubblica del destinatario, che una volta ricevuto il messaggio non dovrà fare altro che decifrarlo con la chiave segreta personale. Ogni persona con questo sistema possiede quindi una coppia di chiavi, quella pubblica può essere tranquillamente distribuita e resa di pubblico dominio perché consente solo di cifrare il messaggio, mentre quella privata deve essere conosciuta solo da una persona. 29/03/2017 Corso di Informatica Avanzata

43 Crittografia Asimmetrica
Proprietà: Non è possibile risalire dalla chiave pubblica a quella privata La chiave che effettua la cifratura dei dati non può decifrarli. i messaggi codificati con la chiave pubblica possono essere decodificati solo con la chiave privata Il mittente cifra il messaggio con la chiave pubblica del destinatario (pubblicamente nota) Il destinatario usa la sua chiave privata (segreta) per decifrare il messaggio. La particolarità e la forza di questo sistema crittografico è che, anche conoscendo la chiave pubblica, non è possibile risalire alla corrispondente chiave privata se non con calcoli che richiedono tempi molto elevati 29/03/2017 Corso di Informatica Avanzata

44 Funzionamento Crittografia Asimmetrica
L'idea base della crittografia con coppia di chiavi diviene più chiara se si usa un'analogia postale, in cui il mittente è Alice ed il destinatario Bob e i lucchetti fanno le veci delle chiavi pubbliche e le chiavi recitano la parte delle chiavi private: 1. Alice chiede a Bob di spedirle il suo lucchetto, già aperto. La chiave dello stesso verrà però gelosamente conservata da Bob. 2. Alice riceve il lucchetto e, con esso, chiude il pacco e lo spedisce a Bob. 3. Bob riceve il pacco e può aprirlo con la chiave di cui è l'unico proprietario. Se adesso Bob volesse mandare un altro pacco ad Alice, dovrebbe farlo chiudendolo con il lucchetto di Alice, che lei dovrebbe mandare a Bob e che solo lei potrebbe aprire. Si può notare come per secretare i pacchi ci sia bisogno del lucchetto del destinatario mentre per ricevere viene usata esclusivamente la propria chiave segreta, rendendo l'intero processo di cifratura/decifratura asimmetrico. Chiunque intercettasse il lucchetto o il messaggio chiuso non potrebbe leggerne il contenuto. Al contrario nella crittografia simmetrica, dove occorre il pericoloso passaggio dello scambio delle chiavi, che può essere intercettato. 29/03/2017 Corso di Informatica Avanzata

45 Funzionamento Crittografia Asimmetrica
29/03/2017 Corso di Informatica Avanzata

46 Crittografia Asimmetrica
Scenario Sender Receiver Hi,Jack Hi,Jack Crypt Decrypt KPublic Receiver KPrivateReceiver $e3lW% 29/03/2017 Corso di Informatica Avanzata

47 Crittografia Asimmetrica
Ciascun utente genera una coppia di chiavi da utilizzare per la crittografia e la decrittografia dei messaggi; Dove trovo le chiavi pubbliche dei miei destinatari? Ciascun utente inserisce una delle sue chiavi (chiave pubblica) in un registro pubblico (public key server) o in un file accessibile. L’altra chiave viene mantenuta segreta (chiave privata). Ma chi mi garantisce la corrispondenza delle chiavi pubbliche con i legittimi proprietari? certification authority (CA). Ente preposto alla certificazione di validità delle chiavi pubbliche. A questo punto chi garantisce la validità delle certification authority? Atto di fede! 29/03/2017 Corso di Informatica Avanzata

48 Crittografia Asimmetrica
29/03/2017 Corso di Informatica Avanzata

49 Chiave pubblica e privata: esempio
-----BEGIN CERTIFICATE-----MIIGRDCCBa2gAwIBAgIDAPCbMA0GCSqGSIb3DQEBBQUAMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJQmFyY2Vsb25hMSkwJwYDVQQKEyBJUFMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgcy5sLjEuMCwGA1UEChQlZ2VuZXJhbEBpcHNjYS5jb20gQy5JLkYuICBCLUI2MjIxMDY5NTEuMCwGA1UECxMlaXBzQ0EgQ0xBU0VBMSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlaXBzQ0EgQ0xBU0VBMSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEgMB4GCSqGSIb3DQEJARYRZ2VuZXJhbEBpcHNjYS5jb20wHhcNMDkwMjI0MjMwNDE3WhcNMTEwMjI0MjMwNDE3WjCBlDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xETAPBgNVBAoTCFNlY3VyaXR5MRQwEgYDVQQLEwtTZWN1cmUgVW5pdDEvMC0GA1UEAxMmd3d3LnBheXBhbC5jb20Ac3NsLnNlY3VyZWNvbm5lY3Rpb24uY2MwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANJp+m86ALQhG8ixAtc/GbLEbbRU+IuKzNtywp48YLnGkT2Ct32Z/9EphMFzU5yC3fwkjHfVQfPoHkKhrS2e/1sQJs6dVxdzFiM4yNbxuqOWWxZnSk9zlzpNFKT04j+LBYNC0dDcL3rlthCyEcDcISqQ/66XcVpJgaxA8zu4WbJPAgMBAAGjggMhMIIDHTAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDALBgNVHQ8EBAMCA/gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFGGPYTRDVRR/JwnOTIvqm3sZJbxuMB8GA1UdIwQYMBaAFA4HYNQ5yRtbXZB7I8jSNJ1KmkY5MAkGA1UdEQQCMAAwHAYDVR0SBBUwE4ERZ2VuZXJhbEBpcHNjYS5jb20wcgYJYIZIAYb4QgENBGUWY09yZ2FuaXphdGlvbiBJbmZvcm1hdGlvbiBOT1QgVkFMSURBVEVELiBDTEFTRUExIFNlcnZlciBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cHM6Ly93d3cuaXBzY2EuY29tLzAvBglghkgBhvhCAQIEIhYgaHR0cHM6Ly93d3cuaXBzY2EuY29tL2lwc2NhMjAwMi8wQwYJYIZIAYb4QgEEBDYWNGh0dHBzOi8vd3d3Lmlwc2NhLmNvbS9pcHNjYTIwMDIvaXBzY2EyMDAyQ0xBU0VBMS5jcmwwRgYJYIZIAYb4QgEDBDkWN2h0dHBzOi8vd3d3Lmlwc2NhLmNvbS9pcHNjYTIwMDIvcmV2b2NhdGlvbkNMQVNFQTEuaHRtbD8wQwYJYIZIAYb4QgEHBDYWNGh0dHBzOi8vd3d3Lmlwc2NhLmNvbS9pcHNjYTIwMDIvcmVuZXdhbENMQVNFQTEuaHRtbD8wQQYJYIZIAYb4QgEIBDQWMmh0dHBzOi8vd3d3Lmlwc2NhLmNvbS9pcHNjYTIwMDIvcG9saWN5Q0xBU0VBMS5odG1sMIGDBgNVHR8EfDB6MDmgN6A1hjNodHRwOi8vd3d3Lmlwc2NhLmNvbS9pcHNjYTIwMDIvaXBzY2EyMDAyQ0xBU0VBMS5jcmwwPaA7oDmGN2h0dHA6Ly93d3diYWNrLmlwc2NhLmNvbS9pcHNjYTIwMDIvaXBzY2EyMDAyQ0xBU0VBMS5jcmwwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC5pcHNjYS5jb20vMA0GCSqGSIb3DQEBBQUAA4GBAGjueZeX3TvvFmoG8hSabs2eEveqgxC90XyY+seu1A4snjgFnVJgqZkKgbSYkB2uu0rXudyInjd4QVv3gqXyukElWpAaHkU4oVJYdZQmRPsgB7pEzOVKLXI/mEf2JtwFRgUHYyGrRpuceNVUWz0MHshkjLVQI4Jv27giHEOWB6i7 -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY-----MIICXQIBAAKBgQDSafpvOgC0IRvIsQLXPxmyxG20VPiLiszbcsKePGC5xpE9grd9mf/RKYTBc1Ocgt38JIx31UHz6B5Coa0tnv9bECbOnVcXcxYjOMjW8bqjllsWZ0pPc5c6TRSk9OI/iwWDQtHQ3C965bYQshHA3CEqkP+ul3FaSYGsQPM7uFmyTwIDAQABAoGAcqDnnOaVcYxD7Z55NLgckOYv+bj8ulCAb+DiI4AzFaIWh9MJkXRvCAy9VQI1/6LPukhS+gmE55KBwb0AckUXSRC4DuPXOhgT6ywyEJGQp6IdaQmC4NoyC+G4GPnrh0YISVKTT1ppRgjF6tpaFvElGTse+yejtKAssduT45MoxGkCQQDx58UFfPCVwAhoJ7/4TXpEebYs/BuLKYwQKUuQe1B+dV2WtSaub+jbSSpRVScTpyfKRwN0w4UZzs/64Zzs/erbAkEA3qx8uhMy7Dxu8zWx+C1b5LSh4Rf4sCvXug/nx3opvahO89iP5P6LMVplaVsVPwligUEaMsx9rJEJvt48sMEenQJBAOQlE6MOZ5TETOl2e84BvEuygodAqfWAlLF1UOgN9SefJ0oIxVeFAhc2lOuqJLWbU6KpgO/xqqlhbLOPbsHw5DsCQDj0j5acsIrCTnLBCjt7hqSyGzHTCtYs8KnzxYo9Ug3jzgYLH4soHHxMLeJL3NxZzytWdpgFvCN2mbKLb6SaUPUCQQCKjbXoN7DkBbk8wU0ZY5fGCtLEUHtEmT93nFgmUvQ3ZSB/EvhtWRPcWGdRC5tj0YxaUFevVhZA/Ng1d1JzbcKB -----END RSA PRIVATE KEY----- PUBBLICA PRIVATA Scaricato da: 29/03/2017 Corso di Informatica Avanzata

50 Crittografia Asimmetrica
Diverse combinazioni di chiave pubblica e privata determinano DIVERSI LIVELLI DI SICUREZZA nella comunicazione dei messaggi Analizziamoli… 29/03/2017 Corso di Informatica Avanzata

51 Crittografia Asimmetrica
29/03/2017 Corso di Informatica Avanzata

52 Crittografia Asimmetrica
29/03/2017 Corso di Informatica Avanzata

53 Crittografia Asimmetrica
29/03/2017 Corso di Informatica Avanzata

54 Crittografia Asimmetrica
Considerazioni finali: Alice e Bob non devono condividere una chiave segreta Il mittente deve solo conoscere la chiave pubblica del destinatario La chiave privata deve essere solo conservata dal destinatario Unica forma di attacco possibile è quello a forza bruta la difesa più efficace e quella di usare chiavi di grandi dimensioni (> 512 bit) ma bisogna ricercare un compromesso. Le dimensioni della chiave devono essere tali da rendere impraticabile un attacco a forza bruta ma allo stesso tempo sufficientemente piccole da consentire una esecuzione veloce degli algoritmi di crittografia e decrittografia 29/03/2017 Corso di Informatica Avanzata

55 Crittografia Asimmetrica
Algoritmo RSA Sviluppato nel 1977 e pubblicato nel 1978 da Rivest, Shamir, Adlemann Primo sistema crittografico a chiave pubblica ed è ancora oggi l’algoritmo piu implementato in assoluto La chiave con cui viene cifrato il messaggio e differente da quella con cui viene decifrato Il punto di forza di RSA e che l’operazione di derivazione della chiave privata da quella pubblica e troppo complessa per essere realizzata in pratica; La prima applicazione pratica basata sulle tecniche di crittografia a doppia chiave fu sviluppata nel 1978 da tre professori: Ronald Rivest, Adi Shamir e Leonard Adleman, che realizzarono una procedura di calcoli matematici che prenderà il nome di "algoritmo RSA", dalle iniziali dei suoi inventori. Quando ci si rese conto dell'efficacia di questo algoritmo, ritenuto ancora oggi inattaccabile, il governo americano decise che i programmi basati su questo algoritmo potevano essere utilizzati liberamente negli Stati Uniti, ma la loro esportazione costituiva reato. 29/03/2017 Corso di Informatica Avanzata

56 Corso di Informatica Avanzata
Crittografia Ibrida Cifrari SIMMETRICI: Molto veloci Numero di chiavi molto elevato Problema dello scambio delle chiavi Cifrari ASIMMETRICI Efficienti Lenti Da 100 a 1000 volte più lenti di un algoritmo a chiave segreta Si utilizza un cifrario IBRIDO: Cifrario SIMMETRICO per la comunicazione Cifrario ASIMMETRICO per lo scambio delle chiavi condivise Per questo sono nati sistemi di crittografia misti, che combinano le due tecniche in modo da fonderne i vantaggi. In pratica quindi si utilizza la chiave pubblica soltanto per comunicare la chiave segreta (che in questi casi viene chiamata chiave di sessione) che poi verrà usata per una normale comunicazione basata su cifrati a chiave segreta. In questo modo quindi è ampiamente risolto il problema della sicurezza nello scambio della chiave e la velocità di cifratura/decifratura rimane molto alta e non penalizza la comunicazione. 29/03/2017 Corso di Informatica Avanzata

57 Corso di Informatica Avanzata
Crittografia Ibrida Il messaggio viene crittografato con un algoritmo a chiave simmetrica, in cui la chiave è generata casualmente. La chiave casuale generata per cifrare il messaggio, viene crittografata mediante la chiave pubblica del destinatario. 29/03/2017 Corso di Informatica Avanzata

58 Corso di Informatica Avanzata
Crittografia Ibrida Il destinatario, mediante la sua chiave privata, decifra la chiave usata per codificare il messaggio e quindi il messaggio stesso 29/03/2017 Corso di Informatica Avanzata

59 Corso di Informatica Avanzata
Firma digitale È un metodo elettronico che permette ad una persona di apporre un suo segno distintivo ai documenti digitali. Nasce come applicazione dei sistemi a chiave pubblica. Viene utilizzata per autenticare la paternità di un documento informatico e la sua integrità. 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 Ha valore legale come la firma autografa. La crittografia a chiave pubblica è ritenuta una delle più importanti intuizioni nel campo delle comunicazioni anche per il fatto che può essere utilizzata per risolvere il problema della firma digitale. La firma digitale di un documento (per documento intendiamo qualsiasi cosa sia memorizzata con tecnologie informatiche e quindi trasmissibile tramite sistemi di comunicazione quali Internet) si pone di risolvere tre problemi (definiti come autenticazione e integrità dei dati): che il destinatario possa verificare l'identità del mittente che il mittente non possa disconoscere un documento da lui firmato che il destinatario non possa inventarsi o modificare un documento firmato da qualcun altro 29/03/2017 Corso di Informatica Avanzata

60 Corso di Informatica Avanzata
Firma digitale Per firmare un documento si utilizza la crittografia a chiave pubblica in modalità inversa Il messaggio è cifrato con la chiave privata Se chi possiede la chiave pubblica riuscirà a decifrare il messaggio, avrà la certezza dal proprietario della chiave pubblica usata per la decifratura La firma digitale non garantisce la segretezza del documento è sufficiente crittografare il messaggio firmato con una delle tecniche precedenti Il ricevente dovrà decifrare il messaggio (in questo caso solo lui potrà farlo) e successivamente controllarne la firma Per firmare un documento si utilizza come detto la crittografia a chiave pubblica, in una modalità che può essere definita inversa. Se un individuo cifra un messaggio con la sua chiave privata, quel messaggio cifrato potrà essere letto da tutte le persone che possiedono la sua chiave pubblica. Se queste riusciranno a decifrare il messaggio avranno la certezza che è stato inviato dal proprietario della chiave pubblica usata per la decifratura. Tutto è garantito dal principio base della crittografia asimmetrica, dal fatto cioè che la chiave segreta decifra solo ciò che è stato cifrato con la rispettiva chiave pubblica e viceversa. Come si può notare la firma digitale non garantisce la segretezza del contenuto del documento, infatti tutti i possessori della chiave pubblica del mittente possono averne accesso. Il problema però è facilmente risolvibile in modo intuibile: è sufficiente crittografare il messaggio firmato con una delle tecniche viste fino a questo punto. Il ricevente non dovrà fare altro che decifrare il messaggio (in questo caso solo lui potrà farlo) e successivamente controllarne la firma Il ricevente non dovrà fare altro che decifrare il messaggio (in questo caso solo lui potrà farlo) e successivamente controllarne la firma. 29/03/2017 Corso di Informatica Avanzata

61 Funzionamento Firma Digitale
29/03/2017 Corso di Informatica Avanzata

62 Corso di Informatica Avanzata
Firma digitale Funzioni hash sicure Problema: per cifrare con chiave pubblica un documento di grandi dimensioni occorre molto tempo. Soluzione: posso autenticare solo un “riassunto” del documento tramite l'utilizzo di una funzione hash sicura. Si applica una funzione hash H al messaggio m, ottenendo un message digest, H(m), detto fingerprint (impronta), di lunghezza fissa << di quella di m Si cifra l’impronta invece del messaggio Impronta Parlando di crittografia a chiave pubblica avevamo sottolineato l'eccessiva lentezza del sistema, che ne rendeva sconsigliato l'utilizzo "esclusivo" per la quantità di dati generata e il tempo impiegato, e visto che le funzioni utilizzate sono le stesse, anche se in senso inverso, il problema continua a persistere. La soluzione consiste nel cifrare solo una piccola parte dell'intero messaggio. Ovviamente la parte di messaggio da cifrare non può essere scelta in modo qualsiasi, ecco perché si utilizzano delle funzioni di Hash. Con l'ausilio di una funzione hash ricava l'impronta digitale del documento, detta anche message digest, un file di dimensioni relativamente piccole che contiene una sorta di codice di controllo relativo al documento stesso, dopodiché utilizza la propria chiave privata per codificare l'impronta digitale: il risultato di questa codifica è la firma. La funzione hash, è fatta in modo da rendere minima la probabilità che da testi diversi si possa ottenere il medesimo valore dell'impronta, inoltre è one-way, a senso unico, questo significa che dall'impronta è impossibile ottenere nuovamente il testo originario. La firma prodotta dipende dall'impronta digitale del documento e, quindi, dal documento stesso, oltre che dalla chiave privata dell'utente. A questo punto la firma viene allegata al documento. Chiunque può verificare l'autenticità di un documento: per farlo, decodifica la firma del documento con la chiave pubblica del mittente, ottenendo l'impronta digitale del documento, e quindi confronta quest'ultima con quella che si ottiene applicando la funzione hash (pubblica) al documento ricevuto; se le due impronte sono uguali, l'autenticità del documento è garantita. 29/03/2017 Corso di Informatica Avanzata

63 Corso di Informatica Avanzata
Firma digitale Funzioni hash sicure Proprietà delle funzioni hash Dato un messaggio si può facilmente calcolare il suo valore di hash Dato il valore di hash è impossibile risalire al messaggio per questo dette anche one way hash Anche considerando due messaggi M ed M' differenti solo per un carattere le loro funzioni hash H(M) e H(M') saranno diverse. Esempi MD5: calcola un message digest di 128 bit in 4 passi SHA: US standard. Message digest di 160 bit Una funzione di hash, detta anche one way hash, trasforma un testo normale di lunghezza arbitraria in una stringa di lunghezza relativamente limitata. Questa stringa rappresenta una sintesi del messaggio (message digest) che non è altro che una vera e propria impronta digitale unica che viene definita valore di hash e che gode di tre importanti proprietà: Dato un messaggio si può facilmente calcolare il suo valore di hash Dato il valore di hash è impossibile risalire al messaggio (per questo one way hash) Non si possono generare due messaggi che abbiano la stessa sintesi. Sappiamo che questo non è praticabile ma in genere si intende che la probabilità di collisione (due messaggi con la stessa sintesi) deve essere molto bassa. 29/03/2017 Corso di Informatica Avanzata

64 Corso di Informatica Avanzata
Firma digitale Sender Scenario Receiver Hash Hash Hi,Jack Mex Digest Mex Digest Mex Digest Kpublic Receiver Decrypto Kpublic Sender Hi,Jack Electronic Signature Crypto Crypto Kprivate Receiver Electronic Signature Decrypto Kprivate Sender $e3lW% 29/03/2017 Corso di Informatica Avanzata

65 Corso di Informatica Avanzata
Certificato Digitale Come si fa a sapere che una chiave pubblica realmente appartiene ad un determinato individuo e che la chiave sia ancora valida? E’ necessario un meccanismo che leghi la chiave pubblica alla persona Questa funzione è svolta dal certificato digitale Un certificato digitale è un messaggio con firma digitale con la chiave privata di un terzo di fiducia (Certification Authority), il quale dichiara che una determinata chiave pubblica appartiene ad una certa persona o entità e ne garantisce nome e caratteristiche I certificati digitali sono il mezzo di distribuzione delle chiavi pubbliche Nel contempo Bob non ha alcuna garanzia che la chiave sia realmente di proprietà di Alice. Continuando l'esempio, supponiamo che una terza persona, Mallory, riesca ad intercettare la comunicazione in cui Bob ottiene la chiave di Alice e riesca a sostituirla con la sua chiave pubblica in cui si spaccia per Alice. Bob non ha alcun modo per scoprire l'inganno. Per risolvere situazioni di questo tipo nascono le CA che si fanno carico di verificare e garantire la corrispondenza fra chiave e proprietario. Quando un utente richiede un certificato, la CA verifica la sua identità, quindi crea un Documento digitale firmato con la chiave privata della CA e pubblicato. Nell'esempio precedente supponiamo che Alice e Bob si facciano firmare le loro chiavi da una CA che entrambi ritengono attendibile. In questo caso l'attacco di Mallory non è più possibile in quanto non è in grado di riprodurre la firma della CA. 29/03/2017 Corso di Informatica Avanzata

66 Corso di Informatica Avanzata
Certificato Digitale Tipicamente lega una chiave ad un’identità personale, ma anche informatica Firmato in modo elettronico dall’emettitore: una persona fidata o - meglio - l’autorità di certificazione ( CA ) Con scadenza temporale Revocabile sia dall’utente sia dall’emettitore 29/03/2017 Corso di Informatica Avanzata

67 Corso di Informatica Avanzata
Certificato Digitale I certificati digitali hanno un formato comune e si basano sullo standard X.509v3 (RFC 2459). Lo standard X.509v3 definisce gli elementi contenuti in un certificato digitale: Versione del certificato Numero seriale del certificato Informazioni sull’algoritmo utilizzato dalla CA Estremi di chi ha rilasciato il certificato Periodo di validità del certificato Firma digitale dell’autorità rilasciante Estensioni standard (vers. 3): Key Usage, Private Key Usage Period, Certificate Policies e Policy Mapping 29/03/2017 Corso di Informatica Avanzata

68 Certification Authority
La Certification Authority (CA) è il soggetto terzo di fiducia che avalla la validità di un certificato Alla CA spetta il compito di raccogliere le richieste, rilasciare e distribuire i certificati, sospenderli o revocarli quando le informazioni in essi contenute non sono più valide A questo punto chi garantisce la validità delle certification authority? Atto di fede! 29/03/2017 Corso di Informatica Avanzata

69 Certification Authority
Procedura di certificazione Alice genera la sua coppia di chiavi Raggiunge l’ufficio registrazione (Registration Authority) della CA, si identifica e fornisce la sua chiave pubblica perché sia certificata. La RA approva la richiesta di certificazione dopo opportune verifiche, dopodiché chiede alla CA di generare un certificato per Alice. La CA firma il certificato generato per Alice con la propria chiave privata. Il certificato di Alice è pubblicato dalla CA sul proprio certificate server. 29/03/2017 Corso di Informatica Avanzata

70 Certification Authority
Procedura di certificazione 29/03/2017 Corso di Informatica Avanzata

71 Certification Authority
Come ottenere la chiave pubblica di un partner dalla CA: “A” chiede alla CA il certificato digitale di “B” La CA invia ad “A” il certificato di “B” firmato digitalmente “A” riceve il certificato di “B” e verifica la firma della CA Supponiamo che la chiave pubblica della CA sia conosciuta da tutti Poiché il certificato di “B” contiene la chiave pubblica (di “B”), “A” ha ora una copia autenticata della chiave pubblica di “B” 29/03/2017 Corso di Informatica Avanzata

72 Certification Authority
L'uso più comune dei certificati digitali è per l'accesso ai siti web via HTTPS, ossia HTTP su protocollo sicuro SSL. Attraverso i certificati possiamo accertarci che il server a cui ci si è connessi è autentico, ovvero è effettivamente quello che dichiara di essere. Il protocollo SSL prevede che, alla connessione, il server fornisca il proprio certificato digitale; se il certificato digitale è firmato da un'autorità di certificazione da noi riconosciuta allora possiamo utilizzare la chiave pubblica presente nello stesso per avviare una comunicazione sicura. Le CA sono delle organizzazioni molto importanti nel panorama attuale del Web; in genere tutti i siti che si occupano di e-commerce o di transazioni on-line, perlomeno all'atto dell'autenticazione dell'utente trasferiscono la comunicazione dal protocollo HTTP al protocollo HTTPS; all'atto della negoziazione il client richiede il certificato del server e quindi viene instaurata la connessione protetta. Quando un browser (ma anche un client di posta, ecc...) riceve un certificato, lo valida. Nel processo di validazione verifica che tutto l'albero delle CA collegate al certificato sia fidato. Se tutte le CA coinvolte nel rilascio del certificato in esame sono fidate, il certificato è ritenuto valido altrimenti viene chiesto all'utente cosa fare, ossia se accettarlo o meno. Il problema di fidarsi o meno del certificato e quindi dell'entità che lo ha presentato viene passato all'utente. Per cui il problema della fiducia rimane a completo carico dell'utente. È automatico, quindi, che i siti o le infrastrutture utilizzino certificati rilasciati da CA note per la loro affidabilità. 29/03/2017 Corso di Informatica Avanzata

73 Corso di Informatica Avanzata
Caso di studio sicura Alice vuole mandare un messaggio di segreto, m, a Bob Genera random una chiave privata simmetrica, Ks Cifra il messaggio con Ks Cifra anche Ks, ma con la chiave pubblica di Bob Manda sia Ks(m) che eb(Ks) a Bob 29/03/2017 Corso di Informatica Avanzata

74 Corso di Informatica Avanzata
Caso di studio sicura Alice vuole fornire autenticazione del sender ed integrità del messaggio Alice firma digitalmente il messaggio Invia il messaggio (in chiaro) e la firma digitale 29/03/2017 Corso di Informatica Avanzata

75 Corso di Informatica Avanzata
Caso di studio sicura Alice vuole provvedere segretezza, autenticazione ed integrità del messaggio Alice usa tre chiavi: la sua chiave privata, la chiave pubblica di Bob, la nuova chiave simmetrica 29/03/2017 Corso di Informatica Avanzata

76 PGP (Pretty Good Privacy)
PGP è un’altra applicazione della crittografia. É un sistema di crittografia ibrido perchè utilizza sia algoritmi asimmetrici che simmetrici per cifrare il messaggio. É utilizzato nello scambio di messaggi di posta elettronica. 29/03/2017 Corso di Informatica Avanzata

77 PGP (Pretty Good Privacy)
Per inviare un messaggio cifrato ad un destinatario, il programma PGP del sender genera random una “chiave di sessione” (una chiave privata La chiave di sessione è usata dall’algoritmo IDEA (a chiave privata) per cifrare il messaggio, il che è veloce La chiave di sessione stessa è cifrata mediante l’algoritmo a chiave pubblica RSA usando la chiave pubblica del destinatario Lento, ma la chiave di sessione è piccola, e quindi è ok La chiave di sessione cifrata con la chiave pubblica è inviata insieme (cioè è concatenata) con il messaggio cifrato mediante la chiave privata Il destinatario prima usa l’algoritmo a chiave pubblica e la sua chiave privata per decifrare la sua chiave di sessione (lento, ma la chiave di sessione è piccola) Quindi usa la chiave di sessione e l’algoritmo a chiave privata per decifrare il messaggio (veloce) 29/03/2017 Corso di Informatica Avanzata

78 PGP (Pretty Good Privacy)
Vantaggi : Combinazione della velocità dei sistemi simmetrici (messaggio è cifrato con sistema simmetrico). Trasmissione su canali insicuro utilizzando sistema a cifratura asimmetrica sia della chiave simmetrica che del messaggio cifrato Maggiore sicurezza in quanto la secret key usata per cifrare il messaggio originale e spedita insieme al medesimo è utilizzata solo quella volta (one time only key) 29/03/2017 Corso di Informatica Avanzata


Scaricare ppt "Elementi di crittografia"

Presentazioni simili


Annunci Google