Diapositiva 1 - Università del Salento

Elementi di crittografia
Docente
Ing. Maria Mirto
21/10/2008
Tutor
Ing. Marco Passante
Corso di Informatica
Anno Accademico 2009/10
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)
04/06/2017
Corso di Informatica Avanzata
2/78
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.
04/06/2017
Corso di Informatica Avanzata
3/78
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
04/06/2017
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.
Corso di Informatica Avanzata
4/78
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
04/06/2017
Corso di Informatica Avanzata
5/78
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
04/06/2017
Corso di Informatica Avanzata
6/78
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
04/06/2017
Corso di Informatica Avanzata
7/78
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
04/06/2017
Corso di Informatica Avanzata
8/78
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
•
Decodifica (decifrazione): tecnica che trasforma testo cifrato
chiaro
04/06/2017
Corso di Informatica Avanzata
testo cifrato
testo in
9/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
04/06/2017
Corso di Informatica Avanzata
10/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.”
04/06/2017
Corso di Informatica Avanzata
11/78
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
04/06/2017
Corso di Informatica Avanzata
12/78
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
04/06/2017
Corso di Informatica Avanzata
14/78
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
04/06/2017
Corso di Informatica Avanzata
15/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)
04/06/2017
Corso di Informatica Avanzata
16/78
Crittografia simmetrica
Scenario
Hi,Jack
Hi,Jack
Ksecret
Crypt
Ksecret
Decrypt
$e3lW%
04/06/2017
Corso di Informatica Avanzata
17/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
04/06/2017
Corso di Informatica Avanzata
18/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à
04/06/2017
Corso di Informatica Avanzata
19/78
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.
Cifrario di Cesare
a
traslazione
a sinistra
di 3 posizioni
b
c
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
z
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
z
a
b
c
reinserimento dei caratteri a,b,c in coda
• Chiaro: auguridibuoncompleanno
• Cifrato: dxjxulglexrqfrpsohdqqr
04/06/2017
Corso di Informatica Avanzata
20/78
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)
04/06/2017
Corso di Informatica Avanzata
21/78
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)
04/06/2017
Corso di Informatica Avanzata
22/78
Crittografia simmetrica
Cifrario di sostituzione mono-alfabetico
• Se per esempio decidiamo di utilizzare la seguente chiave:
QAZWSXEDCRFVTGBYHNUJMIKOLP
Significa che per costruire il nostro cifrato dobbiamo affidarci alle
corrispondenze tra il nostro alfabeto e quello generato dalla chiave:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
QAZWSXEDCRFVTGBYHNUJMIKOL
Il testo in chiaro (prova di cifratura) verrà cifrato così:
PROVA DI CIFRATURA
YNBIQ WC ZCXNQJMNQ
04/06/2017
Corso di Informatica Avanzata
23/78
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.
04/06/2017
Corso di Informatica Avanzata
25/78
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.
04/06/2017
Corso di Informatica Avanzata
26/78
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.
04/06/2017
Corso di Informatica Avanzata
27/78
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
04/06/2017
Corso di Informatica Avanzata
28/78
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 = ?
04/06/2017
Corso di Informatica Avanzata
29/78
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
04/06/2017
Corso di Informatica Avanzata
30/78
Crittografia simmetrica
Codice di Vigènere
•
•
•
Si basa sulla sostituzione polialfabetica
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
04/06/2017
Corso di Informatica Avanzata
31/78
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.
04/06/2017
Corso di Informatica Avanzata
32/78
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
04/06/2017
Corso di Informatica Avanzata
33/78
Crittografia simmetrica
Codice di Vigènere
• Dato il messaggio in chiaro, lo si allinea con la chiave.
PROVADICIFRATURA
HTMLHTMLHTMLHTML
La chiave essendo in
genere molto più corta del
messaggio, deve essere
ripetuta molte volte.
• 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)
04/06/2017
Corso di Informatica Avanzata
P
W
R
K
34/78
Crittografia simmetrica
Codice di Vigènere
• Il risultato finale della cifratura è:
WKAGHWUNPYDLANDL
• 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.
PROVADICIFRATURA - testo in chiaro
HTMLHTMLHTMLHTML - chiave
WKAGHWUNPYDLANDL - testo cifrato
04/06/2017
Corso di Informatica Avanzata
35/78
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).
04/06/2017
Corso di Informatica Avanzata
36/78
Crittografia simmetrica
Cifrario a trasposizione
•
Il testo cifrato è ottenuto leggendo
il testo in chiaro per colonne
seguendo la numerazione
Testo cifrato:
PAITASINRLVCAAASO.MTOIRRROI.RDFUTPZE
04/06/2017
Corso di Informatica Avanzata
38/78
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!
04/06/2017
Corso di Informatica Avanzata
39/78
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.
testo
in chiaro
DES
(encrypt)
key 1
(56 bit)
testo
cifrato 1
DES
(decrypt)
testo
cifrato 2
key 2
(56 bit)
DES
(encrypt)
testo
cifrato
key 1
(56 bit)
3DES (key = key1+key2, 112 bit)
04/06/2017
Corso di Informatica Avanzata
40/78
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)
04/06/2017
Corso di Informatica Avanzata
41/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
04/06/2017
Corso di Informatica Avanzata
42/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.
04/06/2017
Corso di Informatica Avanzata
43/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.
04/06/2017
Corso di Informatica Avanzata
44/78
Funzionamento Crittografia
Asimmetrica
04/06/2017
Corso di Informatica Avanzata
45/78
Crittografia Asimmetrica
Scenario
Hi,Jack
Crypt
Hi,Jack
KPublic
Receiver
KPrivate
Receiver
Decrypt
$e3lW%
04/06/2017
Corso di Informatica Avanzata
46/78
Crittografia Asimmetrica
04/06/2017
Corso di Informatica Avanzata
48/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
04/06/2017
Corso di Informatica Avanzata
54/78
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;
04/06/2017
Corso di Informatica Avanzata
55/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
04/06/2017
Corso di Informatica Avanzata
56/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.
04/06/2017
Corso di Informatica Avanzata
57/78
Crittografia Ibrida
• Il destinatario, mediante la sua chiave privata, decifra la chiave
usata per codificare il messaggio e quindi il messaggio stesso
04/06/2017
Corso di Informatica Avanzata
58/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.
04/06/2017
Corso di Informatica Avanzata
59/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
04/06/2017
Corso di Informatica Avanzata
60/78
Funzionamento Firma Digitale
http://www.linux.it/~davide/doc/tesi_html/node52.html
04/06/2017
Corso di Informatica Avanzata
61/78
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
04/06/2017
Impronta
Corso di Informatica Avanzata
62/78
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
04/06/2017
Corso di Informatica Avanzata
63/78
Firma digitale
Scenario
Hi,Jack
Hash
Hash
Mex Digest
Kpublic
Receiver
Mex Digest
Hi,Jack
Decrypto
Crypto
Electronic
Signature
04/06/2017
Kpublic
Sender
Crypto
Kprivate
Receiver
Electronic
Signature
Kprivate
Sender
Mex Digest
Decrypto
$e3lW%
Corso di Informatica Avanzata
64/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
04/06/2017
Corso di Informatica Avanzata
65/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
04/06/2017
Corso di Informatica Avanzata
66/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
04/06/2017
Corso di Informatica Avanzata
67/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!
04/06/2017
Corso di Informatica Avanzata
68/78
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.
04/06/2017
Corso di Informatica Avanzata
69/78
Certification Authority
Procedura di certificazione
04/06/2017
Corso di Informatica Avanzata
70/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”
04/06/2017
Corso di Informatica Avanzata
71/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.
04/06/2017
Corso di Informatica Avanzata
72/78
Caso di studio
E-mail sicura
• 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
04/06/2017
Corso di Informatica Avanzata
73/78
Caso di studio
E-mail 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
04/06/2017
Corso di Informatica Avanzata
74/78
Caso di studio
E-mail 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
04/06/2017
Corso di Informatica Avanzata
75/78