Elementi di crittografia

66
21/10/2008 Corso di Informatica Anno Accademico 2009/10 Docente Ing. Maria Mirto Tutor Ing. Marco Passante Elementi di crittografia

description

Elementi di crittografia. 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 e-mail sicure). Introduzione. - PowerPoint PPT Presentation

Transcript of Elementi di crittografia

Page 1: Elementi di crittografia

21/10/2008 Corso di Informatica Anno Accademico 2009/10

DocenteIng. Maria Mirto

TutorIng. Marco Passante

Elementi di crittografia

Page 2: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 2/78

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 e-mail sicure)

Page 3: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 3/78

Introduzione

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.

Sicurezza in rete

Page 4: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 4/78

Introduzione

• 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

messaggioAutenticazione: 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

Scenario

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.

Page 5: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 5/78

Introduzione

• 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

Minacce e forme di attacco

Page 6: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 6/78

Introduzione

• 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

Minacce e forme di attacco

Page 7: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 7/78

Introduzione

• 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

Minacce e forme di attacco

Page 8: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 8/78

Introduzione

• 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

Sistemi Sicuri

Page 9: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 9/78

Crittografia

• 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

Definizioni

Page 10: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 10/78

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

Page 11: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 11/78

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.”

Page 12: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 12/78

Crittografia

• 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

Attacchi alla sicurezza

Page 13: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 14/78

Crittografia

• 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

Attacchi alla sicurezza

Page 14: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 15/78

Crittografia

• 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

Attacchi alla sicurezza

Page 15: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 16/78

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)

Page 16: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 17/78

Crittografia simmetrica

Scenario

Hi,Jack

$e3lW%

Crypt Decrypt

Hi,Jack

Ksecret Ksecret

Page 17: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 18/78

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

Page 18: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 19/78

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à

Page 19: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 20/78

Crittografia simmetrica

• 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

Cifrario di Cesare

a b c d e f g h i l m n o p q r s t u v zd e f g h i l m n o p q r s t u v z a b ca b c

reinserimento dei caratteri a,b,c in coda

traslazionea sinistradi 3 posizioni

Cifrario di Cesare

Page 20: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 21/78

Crittografia simmetrica

• 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)

Cifrario di Cesare

Page 21: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 22/78

Crittografia simmetrica

• 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)

Cifrario di sostituzione mono-alfabetico

Page 22: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 23/78

Crittografia simmetrica

• 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ì:

Cifrario di sostituzione mono-alfabetico

QAZWSXEDCRFVTGBYHNUJMIKOLP

ABCDEFGHIJKLMNOPQRSTUVWXYZQAZWSXEDCRFVTGBYHNUJMIKOL

PROVA DI CIFRATURAYNBIQ WC ZCXNQJMNQ

Page 23: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 25/78

Crittografia simmetrica

• 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.

Cifrario di Leon Battista Alberti

Page 24: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 26/78

Crittografia simmetrica

• 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.

Cifrario di Leon Battista Alberti

Page 25: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 27/78

Crittografia simmetrica

• 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.

Cifrario di Leon Battista Alberti

Page 26: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 28/78

Crittografia simmetrica

• 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

Cifrario di Leon Battista Alberti

Page 27: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 29/78

Crittografia simmetrica

• Nuova rotazione casuale e cifratura della seconda parola:

• Da = CETQ

• Nuova rotazione casuale e cifratura della terza parola:

• Leon = ?

Cifrario di Leon Battista Alberti

Page 28: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 30/78

Crittografia simmetrica

• 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

Cifrario di Leon Battista Alberti

Page 29: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 31/78

Crittografia simmetrica

• 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

Codice di Vigènere

Page 30: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 32/78

Crittografia simmetrica

• 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.

Codice di Vigènere

Page 31: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 33/78

Crittografia simmetrica

• 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

Codice di Vigènere

Page 32: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 34/78

Crittografia simmetrica

• 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)

Codice di Vigènere

PROVADICIFRATURAHTMLHTMLHTMLHTML

La chiave essendo in genere molto più corta del messaggio, deve essere ripetuta molte volte.

P W

R K

Page 33: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 35/78

Crittografia simmetrica

• 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.

Codice di Vigènere

WKAGHWUNPYDLANDL

PROVADICIFRATURA - testo in chiaroHTMLHTMLHTMLHTML - chiaveWKAGHWUNPYDLANDL - testo cifrato

Page 34: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 36/78

Crittografia simmetrica

• 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).

Codice di Vigènere

Page 35: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 38/78

Crittografia simmetrica

• Il testo cifrato è ottenuto leggendo il testo in chiaro per colonne seguendo la numerazione

Cifrario a trasposizione

Testo cifrato:PAITASINRLVCAAASO.MTOIRRROI.RDFUTPZE

Page 36: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 39/78

Crittografia simmetrica

• 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!

Algoritmi moderni

Page 37: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 40/78

Crittografia simmetrica

• 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.

Algoritmi moderni

DES(encrypt)

DES(decrypt)

DES(encrypt)

key 1(56 bit)

testocifrato 1

testoin chiaro

testocifrato 2

testocifrato

key 1(56 bit)

key 2(56 bit)

3DES (key = key1+key2, 112 bit)

Page 38: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 41/78

Crittografia simmetrica

• 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)

Algoritmi moderni

Page 39: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 42/78

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

Page 40: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 43/78

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.

Page 41: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 44/78

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.

Page 42: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 45/78

Funzionamento Crittografia Asimmetrica

Page 43: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 46/78

Crittografia Asimmetrica

Hi,Jack

$e3lW%

Crypt Decrypt

Hi,Jack

KPublic Receiver

KPrivateReceiver

Scenario

Page 44: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 48/78

Crittografia Asimmetrica

Page 45: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 54/78

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

Page 46: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 55/78

Crittografia Asimmetrica

• 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;

Algoritmo RSA

Page 47: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 56/78

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

Page 48: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 57/78

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.

Page 49: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 58/78

Crittografia Ibrida

• Il destinatario, mediante la sua chiave privata, decifra la chiave usata per codificare il messaggio e quindi il messaggio stesso

Page 50: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 59/78

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.

Page 51: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 60/78

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

Page 52: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 61/78

Funzionamento Firma Digitale

http://www.linux.it/~davide/doc/tesi_html/node52.html

Page 53: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 62/78

Firma digitale

• 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 delmessaggio Impronta

Funzioni hash sicure

Page 54: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 63/78

Firma digitale

• 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

Funzioni hash sicure

Page 55: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 64/78

Firma digitale

Scenario

Hi,Jack

$e3lW%

Crypto

Hash

ElectronicSignature

Mex Digest

Crypto

KprivateSender

KpublicReceiver

Decrypto

KprivateReceiver

Hi,Jack

ElectronicSignature

Hash

DecryptoKpublicSender

Mex Digest Mex Digest

Page 56: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 65/78

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

Page 57: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 66/78

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

Page 58: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 67/78

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

Page 59: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 68/78

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!

Page 60: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 69/78

Certification Authority

• 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.

Procedura di certificazione

Page 61: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 70/78

Certification Authority

Procedura di certificazione

Page 62: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 71/78

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”

Page 63: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 72/78

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.

Page 64: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 73/78

Caso di studio

• Alice vuole mandare un messaggio di e-mail 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

E-mail sicura

Page 65: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 74/78

Caso di studio

• Alice vuole fornire autenticazione del sender ed integrità del messaggio

• Alice firma digitalmente il messaggio• Invia il messaggio (in chiaro) e la firma digitale

E-mail sicura

Page 66: Elementi di crittografia

04/24/23 Corso di Informatica Avanzata 75/78

Caso di studio

• 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

E-mail sicura