1
Introduzione alla
FIRMA DIGITALE
25 e 27 Novembre 2015
2
AGENDA
Firma Digitale: cos’è?
Schemi di Firma Digitale:
- DSA
- El Gamal
- RSA
Cenni su possibili Attacchi
Comparazione tra Firma Autografa e
Firma Digitale
Riferimenti Normativi
3
FIRMA DIGITALE
La firma digitale è una metodologia tecnica che
conferisce validità legale ad un documento
elettronico.
Essa è il sistema mediante il quale l’ordinamento
giuridico riesce ad attribuire il valore di piena prova
alla documentazione prodotta, gestita e trasmessa
attraverso l’uso delle tecnologie dell’informazione e
della comunicazione, prescindendo dalla necessità
della relativa stampa e, quindi, della relativa
sottoscrizione.
Risultato reso possibile da una specifica applicazione
delle tecniche crittografiche.
4
FIRMA DIGITALE
Definizione “tecnico-crittografica”
Una firma digitale di un messaggio m è un
numero (una stringa di bit) che associa un
messaggio (in forma digitale) con l’entità che
ha originato il messaggio stesso,
indipendentemente dal suo significato.
Tale numero dipende da un “segreto” noto
solo al firmatario.
5
FIRMA DIGITALE
Definizione “tecnico-crittografica”
La firma digitale deve essere verificabile: nel
caso di disputa (es. rifiuto da parte del
firmatario o in presenza di un pretendente
fraudolento) una “terza parte” dovrebbe essere
capace di risolvere la questione equamente,
senza richiedere l’accesso al segreto .
6
FIRMA DIGITALE
Scopo della firma digitale è garantire:
→ Autenticità: il destinatario può verificare
l’identità del mittente;
→ Integrità: il destinatario o altri non sono in
grado di modificare un documento firmato
dal mittente;
→ Non-ripudio: il mittente non può
disconoscere un documento da lui firmato.
7
FIRMA DIGITALE
Uno schema di firma digitale consiste
tipicamente in tre algoritmi:
Generazione della chiave: l’algoritmo
seleziona una chiave privata (e la
corrispondente chiave pubblica)
uniformemente random da un insieme di
possibili chiavi private;
8
FIRMA DIGITALE
Firma: l’algoritmo, dati un messaggio ed
una chiave segreta (o privata), produce una
firma;
Verifica: l’algoritmo, dati un messaggio,
una chiave pubblica ed una firma, controlla
l’autenticità del messaggio.
9
FIRMA DIGITALE
Notazioni
M è l’insieme dei messaggi da firmare;
S è l’insieme delle firme;
è la trasformazione di firma da M ad S;
è la trasformazione di verifica dall’insieme
(M x S) all’insieme true, false.
10
FIRMA DIGITALE
Schema di Firma Digitale
Alice crea una firma per un messaggio mM:
• calcola s = (m) (s è la firma di m);
• trasmette la coppia (m, s) a Bob;
11
FIRMA DIGITALE
Schema di Firma Digitale
Bob per verificare che la firma s sul messaggio
m è stata creata da Alice:
• ottiene la funzione di verifica di Alice,
• calcola u = (m, s),
• accetta la firma come creata da Alice se
u=true, altrimenti rifiuta la firma se u=false
12
FIRMA DIGITALE
Schema di Firma Digitale
Alice genera una
coppia di chiavi:
(SAlice, PAlice ) e
calcola una firma
s (SAlice , m)
Bob utilizza un
algoritmo di
verifica:
(PAlice , m, s)
(m, s)
13
FIRMA DIGITALE
Classificazione degli Schemi di Firma
Digitale
Schemi di firma digitale con appendice
Schemi di firma digitale con recupero
messaggio (“message recovery”)
14
FIRMA DIGITALE
Classificazione degli Schemi di Firma
Digitale
Gli schemi di firma digitale con appendice
richiedono il messaggio originale come input
nell’algoritmo di verifica.
Essi si affidano a:
funzioni di hash + algoritmi di crittografia
asimmetrica
15
FIRMA DIGITALE
Classificazione degli Schemi di Firma
Digitale
Esempi di meccanismi crittografici che
forniscono firma digitale con appendice
sono gli schemi di firma “DSA” ed “El
Gamal”.
16
FIRMA DIGITALE
Classificazione degli Schemi di Firma
Digitale
Uno schema di firma digitale con
recupero messaggio (“message
recovery”) è uno schema per cui la
conoscenza a priori del messaggio non è
richiesta per l’algoritmo di verifica.
17
FIRMA DIGITALE
Classificazione degli
Schemi di Firma Digitale
Uno schema di firma digitale con
recupero messaggio ha la caratteristica di
poter ricostruire il messaggio dalla firma.
Esso si ottiene tramite l’utilizzo di:
Funzione ridondante + algoritmi di
crittografia asimmetrica
18
FIRMA DIGITALE
Classificazione
degli Schemi di Firma Digitale
Esempio di meccanismo che fornisce
firma digitale con recupero messaggio è
lo schema di firma RSA.
19
FIRMA DIGITALE
Classificazione degli
Schemi di Firma Digitale
Gli schemi di firma digitale con
appendice risultano meno vulnerabili agli
attacchi di tipo “existential forgery”.
20
FIRMA DIGITALE
Lo scopo di un avversario (Eva) è
contraffare (forge) una firma, cioè generare
firme che saranno accettate come valide da
altre entità (Bob). Se Eva è in grado di
ottenere una coppia messaggio-firma (m, s)
per cui la verifica è corretta, anche se il
messaggio non è stato precedentemente
firmato dal mittente, si dice che Eva ha trovato
una forgery (contraffazione).
21
FIRMA DIGITALE
Tipologie di attacco
rottura completa (total break): Eva è
capace di calcolare la chiave privata di Alice
ed è in grado di firmare ogni messaggio,
oppure trova un algoritmo di firma
efficiente equivalente a quello valido;
22
FIRMA DIGITALE
Tipologie di attacco
selective forgery: dato un messaggio o una
classe di messaggi Eva è in grado, con
probabilità non trascurabile, di creare una
firma valida (forgery) per essi, senza
coinvolgere direttamente il legittimo
firmatario;
23
FIRMA DIGITALE
Tipologie di attacco
existential forgery: Eva è in grado di creare
una firma (forgery) per almeno un
messaggio. Eva ha poco o nessun controllo
sul messaggio la cui firma è stata ottenuta e
il legittimo firmatario potrebbe essere
coinvolto nella truffa.
24
FIRMA DIGITALE
Per evitare questi tipi di attacco, la firma
digitale viene usata in combinazione con
funzioni di hash:
h : 0, 1* → 0, 1b con b fissato
h : (F2)n → (F2)
b, con b e n interi e b<n
25
FIRMA DIGITALE
Dato m si calcola:
m* = h(m)
m* è detto “message digest” (impronta
digitale).
26
FIRMA DIGITALE
NOTA
Le funzioni di hash devono avere due
proprietà:
unidirezionalità
resistenza alle collisioni
27
FIRMA DIGITALE
Unidirezionalità
Dato m è facile calcolare h(m), ma dato
un valore x non deve essere possibile
trovare alcun m per cui h(m)=x
28
FIRMA DIGITALE
Resistenza alle collisioni
Dati m e m’ con m≠m’ deve essere:
h(m) ≠ h(m’)
29
FIRMA DIGITALE
Schema di Firma Digitale
con funzione hash
Alice calcola l’impronta del messaggio:
m* = h(m)
e la cifra con una chiave segreta SAlice,
ottenendo la firma:
s = (SAlice, m*)
e invia (s, m) a Bob
30
FIRMA DIGITALE
Schema di Firma Digitale
con funzione hash
Bob decifra s con la chiave pubblica PAlice e ottiene
l’impronta del messaggio m*, poi applica al
messaggio m la funzione di hash (h(m)) e verifica se
h(m) coincide con m*:
se h(m)=m* u=(PAlice , m, s) è uguale a true
Bob è sicuro della provenienza e dell’integrità del
documento e lo dichiara valido, altrimenti non valido.
31
FIRMA DIGITALE
Schematizzando
Generazione Firma Verifica Firma
messaggio messaggio
message digest message digest
Hash Function
Firma
Generata
Chiave
Segreta
(Privata)
Hash Function
Verifica
Firma
Chiave
Pubblica
Firma Valido o
non Valido
32
FIRMA DIGITALE
Digital Signature Algorithm (DSA)
DSA è uno standard FIPS (Federal Information
Processing Standards) per la firma digitale proposto
dal NIST (National Institute of Standard and
Technology) nell’agosto del 1991 per essere
impiegato nel “Digital Signature Standard (DSS)”, le
sue specifiche sono contenute nella pubblicazione
FIPS 186 di cui l’ultima versione è FIPS 186-4 del
2013.
33
FIRMA DIGITALE
Digital Signature Algorithm (DSA)
L’algoritmo usa i seguenti parametri:
a) p un numero primo di L bit (L=1024) e multiplo
di 64;
b) q un numero primo di N bit con q/(p-1) (N=160);
c) = g(p-1)/q mod p, dove g è un numero minore di
p-1 t.c. g(p-1)/q mod p>1 ,
d) a un numero casuale t.c. 1 a q-1;
e) y=a mod p.
34
FIRMA DIGITALE
Digital Signature Algorithm (DSA)
L’algoritmo usa anche una funzione di hash:
h(m).
I parametri p, q e sono pubblici e possono
essere condivisi da diversi utenti.
La chiave privata è a, la chiave pubblica è y.
35
FIRMA DIGITALE
Digital Signature Algorithm (DSA)
Firma di un messaggio m
Alice genera un numero casuale k, tale che
1 k q-1
e calcola:
a) r= (k mod p)mod q,
b) k-1 mod q,
c) s=(k-1 (h(m)+ar))mod q,
r ed s sono le sue firme e le invia a Bob;
36
FIRMA DIGITALE
Digital Signature Algorithm (DSA)
Verifica della firma: Bob per verificare la firma (r,s) di Alice:
a) ottiene (p,q,,y),
b) verifica che 0<r<q e 0<s<q, altrimenti rifiuta la
firma,
c) calcola w=s-1 mod q ed h(m),
d) u1=w.h(m) mod q,
e) u2=(rw)mod q,
f) v=((u1 yu2)mod p)mod q,
g) la firma è valida se e solo se v=r.
37
FIRMA DIGITALE
Digital Signature Algorithm (DSA)
Nella FIPS 186-4 del 2013 sono indicate le dimensioni
di L ed N (dimensioni in bit di p e q):
L = 1024, N = 160
L = 2048, N = 224
L = 2048, N = 256,
L = 3072, N = 256
38
FIRMA DIGITALE
El Gamal
Lo schema di firma digitale DSA è una
variante di “El Gamal”.
Esso richiede una funzione di hash:
h : 0, 1* →Zp
con p numero primo grande.
39
FIRMA DIGITALE
El Gamal
Generazione chiave pubblica e chiave privata
a) Alice genera un numero primo p grande e
un generatore del gruppo moltiplicativo Z*p
b) Seleziona un intero a t.c. 1 ≤ a ≤ p-2
c) Calcola y = a mod p
I parametri p e sono pubblici e possono
essere condivisi da diversi utenti.
La chiave privata è a, la chiave pubblica è y.
40
FIRMA DIGITALE
El Gamal
Firma di un messaggio m
Alice genera un numero casuale k, tale che
1 k p-2, con MCD(k, p-1)=1
e calcola:
a) r= (k mod p),
b) k-1 mod (p-1),
c) s=(k-1 (h(m)-ar))mod (p-1),
La coppia (r , s) è la firma di Alice per m
41
FIRMA DIGITALE
El Gamal
Verifica della firma
Bob per verificare la firma (r,s) di Alice:
a) ottiene (p,,y),
b) verifica che 1 ≤ r ≤ p-1 se no rifiuta la firma,
c) v1= yr rs mod p
d) calcola h(m) e v2=h(m) mod p.
e) la firma è valida se e solo se v1 = v2
42
FIRMA DIGITALE
RSA
Generazione chiave pubblica e chiave privata
a) Alice sceglie due primi p e q distinti molto
grandi (almeno 100 cifre),
b) calcola N = pq e la funzione di Eulero
(N) = (p).(q) = (p-1).(q-1),
43
FIRMA DIGITALE RSA
c) sceglie, in modo casuale, un intero e, tale
che:
MCD(e, (N)) = 1,
d) calcola (algoritmo Euclide) un intero d (con
1<d<(N) tale che:
ed 1 mod (N).
Chiave pubblica: (N, e)
Chiave privata: ((N), d)
44
FIRMA DIGITALE
RSA
Gli elementi pubblici sono:
a) la chiave pubblica: (N, e)
b) n = log2(N) + 1
c) una funzione di hash
h : (F2)n → (F2)
b, con b < n
a) una funzione f : (F2)b → ZN, f iniettiva
45
FIRMA DIGITALE
RSA
Generazione e verifica firma
Generazione: Alice calcola
a) h = h(m);
b) m’ = f(h), un intero nell’intervallo0, N-1,
c) s = m’d mod N,
Alice spedisce la firma s e m a Bob.
46
FIRMA DIGITALE
RSA
Generazione e verifica firma
Verifica: Bob
a) ottiene la chiave pubblica (N,e),
b) calcola h = h(m)
c) calcola m’ = f(h)
d) v = se mod N,
la firma è valida se e solo se v = m’
47
FIRMA DIGITALE
Tipi di attacchi crittoanalitici
agli Schemi di Firma Digitale
Lo scopo di un avversario è contraffare una
firma, generare cioè firme che siano accettate
come appartenenti ad altre entità.
La sicurezza di uno schema di firma digitale
deve essere valutata sulla base dei seguenti tipi
di attacchi crittoanalitici:
48
FIRMA DIGITALE
TIPO DI ATTACCO SCOPO
Key-Only Attack
L’avversario conosce solo la chiave
pubblica
Total Break
Ottenere la chiave privata
dell’avversario o trovare un algoritmo
di firma equivalente a quello valido
Know-Message Attack
L’avversario è in possesso di firme per
un insieme di messaggi, noti ma non
scelti e conosce la chiave pubblica
Selective Forgery
Generare da un messaggio una firma
t.c. una verifica dia esito positivo con
la chiave pubblica di un’altra entità
Chosen-Message Attack
L’avversario ottiene firme da una lista
scelta di messaggi (i messaggi sono
scelti prima che le firme siano viste)
Existential Forgery
Generare una coppia (m,s) t.c. una
verifica dia esito positivo con la chiave
pubblica di un’altra entità
49
FIRMA DIGITALE
Sicurezza di uno
Schema di Firma Digitale
Il livello di sicurezza richiesto in uno schema
di firma digitale dipende dall’applicazione.
Per esempio, in situazioni in cui un avversario
è capace di realizzare soltanto un attacco di
tipo key-only, è sufficiente designare uno
schema che non consenta ad un avversario
una selective forgery.
50
FIRMA DIGITALE
Sicurezza di uno
Schema di Firma Digitale
Il livello di sicurezza di uno schema di firma digitale,
che utilizza una funzione di hash h, dipende anche
dalla resistenza di h agli attacchi crittoanalitici noti.
Le funzioni hash e, di conseguenza gli schemi di
firma digitale, possono essere vulnerabili ad un
particolare tipo di attacco denominato “Birthday
Attack”.
51
FIRMA DIGITALE
Birthday Attack ad uno
Schema di Firma Digitale
INPUT: x messaggio legittimo, y messaggio
fraudolento, h funzione di hash di m-bit.
OUTPUT: x’, y’ sono i risultati delle modificazioni di
x e y e h(x’) = h(y’) in tal modo una firma su x’
serve come firma valida su y’
52
FIRMA DIGITALE Birthday Attack ad uno
Schema di Firma Digitale
1. Si generano t = 2m/2 modifiche x’ di x.
2. Si calcola l’hash di ciascun messaggio modificato
e conserva i valori h(x’) ottenuti raggruppati con i
corrispondenti messaggi.
3. Si generano t modifiche y’ di y, calcolando i
corrispondenti h(y’) per ognuna e si confronta
ciascun h(y’) con tutti gli h(x’), finché non si trova
una collisione: h(x’) = h(y’).
53
FIRMA DIGITALE
Applicazione del Birthday Attack
L’idea di questo attacco può essere sfruttata da:
un firmatario “disonesto” che fornisce ad un’entità
ignara la sua firma su x’ e più tardi ripudia la firma,
rivendicando che il messaggio firmato era y’;
un verificatore “disonesto” che è capace di
convincere un’entità ignara a firmare un messaggio
preparato x’ e più tardi rivendica che è stato firmato
y’.
54
FIRMA AUTOGRAFA
e
FIRMA DIGITALE
55
Firma autografa Firma digitale
Creazione manuale Mediante tecniche matematico-crittografiche
(funzione hash + algoritmo di cifratura asimmetrico)
Apposizione
sul documento. La firma è parte integrante del
documento. I documenti di carta sui quali vengono
apposte le firme autografe, uniscono inscindibilmente
l’informazione e la sua validazione; ogni documento è
diverso in quanto ogni firma autografa è diversa
come allegato. Il documento informatico è immateriale
(ossia separabile dal supporto) ed è costituito dalla coppia
documento, firma. I documenti informatici sui quali
vengono apposte le firme digitali sono il frutto di un
calcolo matematico applicato al contenuto degli stessi al
fine di ottenere la validazione (grazie alla quale il
documento può di volta in volta determinare gli effetti
giuridici che gli sono propri)
Legame (documento/firma) la Firma è legata al testo attraverso un supporto fisico
(carta)
La Firma è generata a partire dal testo e cambia in
funzione di quest’ultimo (quindi legata al contenuto)
Verifica firma
Diretta e soggettiva: confronto con una firma
autenticata. Una firma autografa è facilmente
falsificabile, ma il falso è riconoscibile
Indiretta e oggettiva mediante algoritmo di verifica
pubblicamente noto (terza parte fidata): una firma digitale
può essere “falsificata” (rectius, apposta in modo
illegittimo) , tuttavia un eventuale “falso” è irriconoscibile
Copia distinguibile
sono tutte originali. Un documento informatico firmato
digitalmente può essere copiato all'infinito e restare, al
contempo, originale e copia autentica di se stesso.
Validità temporale la sua validità nel tempo è illimitata Limitata (vedasi regole tecniche)
56
FIRMA DIGITALE
Riferimento Normativo
DPCM 22/02/2013 (Pubblicato nella Gazzetta Ufficiale 2013, n.117)
“Regole tecniche in materia di generazione,
apposizione e verifica delle firme elettroniche
avanzate, qualificate e digitali, ai sensi degli
articoli 20, comma 3, 24, comma 4, 28, comma
3, 32, comma 3, lettera b), 35, comma 2, 36,
comma 2, e 71”.
57
FIRMA DIGITALE
Riferimento Normativo
DPCM 22/02/2013
Art.2 Ambito di applicazione
1. “Il presente decreto stabilisce ai sensi ….. le regole
tecniche per la generazione, apposizione e verifica
della firma elettronica avanzata, qualificata e digitale,
per la validazione temporale, nonché per lo
svolgimento delle attività dei certificatori qualificati.
58
FIRMA DIGITALE
Riferimento Normativo
DPCM 22/02/2013
Art.6 Generazione delle chiavi
1. “La generazione della coppia di chiavi è effettuata
mediante dispositivi e procedure che assicurano, in
rapporto allo stato delle conoscenze scientifiche e
tecnologiche, l’unicità e un adeguato livello di
sicurezza della coppia generata, nonché la segretezza
della chiave privata”.
59
FIRMA DIGITALE
Andamento del servizio di
Firma Digitale
Sulla base dei dati forniti dai certificatori
accreditati presso l’Agenzia per l’Italia
Digitale (AgID) si evidenzia che il numero di
firme digitali erogate dal maggio 2014 al luglio
2015 sono incrementate di circa il 52%
(passando da 5.319.800 a 8.104.615).
60
FIRMA DIGITALE
Bibliografia
FIPS PUB 186-4: Digital Signature Standard (DSS)
nlvpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
“Hanbook of Applied Cryptography”
A. J. Menezes, P. C. van Oorschot, S. A. Vanstone
“Applied Cryptography”
B. Schneier
“Crittografia Applicata”
B. Schneier, N. Ferguson
Agenzia per l’Italia Digitale
www.agid.gov.it