FIRMA DIGITALE - unimi.it-RSA Cenni su possibili Attacchi Comparazione tra Firma Autografa e Firma...

Post on 16-Jul-2020

15 views 0 download

Transcript of FIRMA DIGITALE - unimi.it-RSA Cenni su possibili Attacchi Comparazione tra Firma Autografa e Firma...

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