La firma digitale
Sistemi e reti 5ª
Istituto Tecnico Indirizzo Tecnologico
Settore Informatica e Telecomunicazioni
Articolazione Informatica
Prof. Marcolin Mattia
Introduzione alla firma digitale
Grazie alla firma digitale, un soggetto può firmare un
documento digitale con la medesima validità legale di
una tradizionale firma apposta su un documento cartaceo
La firma tradizionale apposta con l'inchiostro su un documento consente di
associare la persona fisica, chiamata firmatario, che ha apposto la propria
firma al documento
- La firma digitale ha il medesimo scopo: associare una certa persona fisica ad
un documento digitale anziché cartaceo
. È stata introdotta e disciplinata nell'ordinamento italiano con il D.Lgs.7 marzo
2005, n. 82, modificato dal d.lgs. 4 aprile 2006, n.159
Sistemi e reti
Introduzione alla firma digitale
@Mattia Marcolin
3
Introduzione alla firma digitale
- È bene chiarire fin da subito che la firma digitale non è una sequenza di bit
associata in modo univoco ad un soggetto e inserita da quest'ultimo all'interno
del documento digitale che desidera firmare
- Rispetto alla firma tradizionale, la firma digitale si differenzia in due aspetti:
.
non è contenuta all'interno del documento digitale
- dipende non solo dal firmante, ma anche dal contenuto del documento stesso
Documento
cartaceo
Firmatario
Firma tradizionale
Documento
digitale
Firma digitale
Firmatario
Sistemi e reti
Introduzione alla firma digitale
@Mattia Marcolin
4
Calcolo della firma digitale
Per calcolare la firma digitale di un documento si
utilizza un algoritmo di crittografia a chiave asimmetrica
- Un soggetto, che vuole poter firmare digitalmente, dev'essere in possesso di
una chiave pubblica e della corrispondente chiave privata
Nella sua forma più semplice, i bit che rappresentano la firma digitale sono
ottenuti cifrando il documento con la chiave privata del firmatario
Documento
digitale
Algoritmo di cifratura a
chiave asimmetrica
Firma digitale
chiave privata
del firmatario
Sistemi e reti
Introduzione alla firma digitale
@Mattia Marcolin
5
Verifica della validità di una firma
Si immagini che Alice debba firmare un documento digitale D e Bob desideri
verificare se Alice l'ha effettivamente firmato
.
cifra il documento con la propria chiave privata: l'output prodotto dall'algoritmo
prende il nome di firma digitale
Alice fornisce a Bob il documento originale, la firma e la sua chiave pubblica
.
decifra la firma ricevuta con la chiave pubblica di Alice
- se ottiene il documento originale significa che Alice ha effettivamente firmato quel
documento in quanto è l'unica che può averlo cifrato con la propria chiave privata
Sistemi e reti
Introduzione alla firma digitale
@Mattia Marcolin
6
Problema di efficienza
Risulta inefficiente applicare un algoritmo a chiave
asimmetrica a documenti di elevate dimensioni
- Per questo motivo, come vedremo approfonditamente nelle slide successive, il
firmatario non cifra con la propria chiave privata il documento
Il firmatario cifra l'output prodotto da un algoritmo di hashing chiamato digest,
avente una lunghezza di un centinaio di bits
- cifrare il digest richiede meno risorse computazionali rispetto alla cifratura
dell'intero documento/messaggio, specialmente se il documento ha una dimensione
elevata
.
ciò porta a un risparmio di tempo e potenza di calcolo, il che può essere importante
in applicazioni in tempo reale o in sistemi con limitate risorse di elaborazione
Sistemi e reti
Introduzione alla firma digitale
@Mattia Marcolin
7
Algoritmi di hashing
Algoritmo di hashing
Un algoritmo di hashing H è un algoritmo deterministico
che riceve in ingresso un messaggio M avente una
lunghezza arbitraria e produce in uscita una sequenza
di bit di lunghezza fissa H(M) chiamata digest
- Il digest può essere lungo 128 bit o 160 bit a seconda dell'algoritmo di hashing
utilizzato
Algoritmo di hashing
Documento
digitale
Digest
Lunghezza
variabile
Lunghezza fissa
Sistemi e reti
Algoritmi di hashing
@Mattia Marcolin
9
Algoritmo di hashing
- Si può affermare che il digest è:
.
irreversibile: in quanto dal digest non è possibile risalire al documento originale
- non univoco: due documenti diversi possono avere lo stesso digest. In questo caso
si parla di collisione.
Noti algoritmi di hasching sono: MD2, MD4, MD5, SHA-1, RIPE-MD
Sistemi e reti
Algoritmi di hashing
@Mattia Marcolin
10
Proprietà algoritmo di hashing
- Un algoritmo di hash crittografico deve avere le seguenti caratteristiche:
- efficienza computazionale: per ogni M il calcolo di H(M) è poco costoso da un punto
di vista computazionale
- effetto valanga: presi Me M2 tali che la differenza tra M1 e M2 è di uno o comunque
pochi bit, la differenza tra H(M1) e H(M2) è di molti bit
- pre-image resistance: è computazionalmente impossibile determinare un M che
abbia un valore h = H(M) con h definito a priori
Sistemi e reti
Algoritmi di hashing
@Mattia Marcolin
11
Firma digitale
Integrità e autenticazione
Documento
originale
da inviare
Algoritmo di hashing
chiave privata
firmatario
Digest
Algoritmo di cifratura a
chiave asimmetrica
Firma digitale
- Il firmatario, anziché cifrare direttamente con la
propria chiave privata il documento
- lo fornisce in input ad un algoritmo di hashing
.
cifra solamente il digest utilizzando la propria
chiave privata
A questo punto trasmette al destinatario sia il
documento originale sia la firma digitale
prodotto
Sistemi e reti
Firma digitale
@Mattia Marcolin
13
Come verificare la validità di una firma
- Un utente che vuole verificare la firma deve:
.
applicare il medesimo algoritmo di hashing utilizzato dal mittente sul documento
ricevuto
- decifrare la firma digitale utilizzando la chiave pubblica del firmatario
- In assenza di errori di trasmissioni/manomissioni sul documento ricevuto o
sulla firma digitale, le due operazioni producono la medesima sequenza di bits
.
questo significa che solamente il possessore della chiave privata corrispondente alla
chiave pubblica può aver firmato(cifrandolo) il digest
Sistemi e reti
Firma digitale
@Mattia Marcolin
14
Verifica della validità di una firma
Documento
ricevuto
chiave pubblica
del firmatario
Firma digitale
Algoritmo di hashing
Algoritmo di decifratura a
chiave asimmetrica
Digest
(Ottenuto dal documento ricevuto)
Digest
(Corrispondente al documento originale)
Sono uguali?
Sì
No
La firma è valida!
La firma non è valida!
X
Sistemi e reti
Firma digitale
CMattia Marcolin
15
Firma digitale: integrità e autenticazione
In questo modo si è riusciti a garantire:
- integrità: in quanto se il documento ricevuto è diverso dal documento inviato, il digest
calcolato a partire dal documento ricevuto sarà diverso rispetto al digest ottenuto
decifrando la firma digitale
.
autenticazione del firmatario: solo il soggetto possessore della corrispondente
chiave pubblica può aver cifrato il digest calcolato sul documento originale
- Questo procedimento risulta efficiente poiché:
- gli algoritmi di hashing sono efficienti
- è efficiente utilizzare un algoritmo a chiave asimmetrica su una sequenza di un
centinaio di bits
Sistemi e reti
Firma digitale
@Mattia Marcolin
16
Attacco man in the middle
Come mai per garantire l'integrità di un messaggio M inviato da un certo
mittente A e destinato a B non è sufficiente che A trasmetta, insieme al
messaggio, il digest calcolato su di esso utilizzando un algoritmo di hashing?
- Non è sufficiente in quanto:
- un malintenzionato che è riuscito ad ottenere il messaggio M può modificarlo e
ricalcolare nuovamente il digest sul messaggio modificato
- B non può accorgersi che il messaggio inviatogli da A è stato modificato
. Questo tipo di attacco prende il nome di attacco man in the middle
Sistemi e reti
Firma digitale
@Mattia Marcolin
17
Esercizi sulla firma digitale
- La firma digitale:
- consente di associare una certa persona fisica ad un
documento digitale
- prevede l'utilizzo di un algoritmo a chiave simmetrica
- è contenuta all'interno del documento
- non dipende dal documento ma esclusivamente dal
firmatario
- La firma digitale serve per garantire al
documento:
- integrità
- autenticazione
- integrità e autenticazione
- confidenzialità, integrità e autenticazione
- Un soggetto che vuole firmare digitalmente un
documento:
- cifra il documento con la propria chiave pubblica
- cifra il documento con la propria chiave privata
- cifra il documento con la propria chiave segreta
- nessuna delle precedenti
- Il digest è:
- reversibile e univoco
- irreversibile e non univoco
- reversibile e non univoco
- irreversibile e univoco
- Un algoritmo di hashing:
- è un algoritmo deterministico che produce in uscita
la firma
- è un algoritmo deterministico che produce in uscita
una sequenze di bit denominata digest avente una
lunghezza non prefissata
- è un algoritmo deterministico che produce in uscita
una sequenze di bit denominata digest avente una
lunghezza prefissata
- peggiora le prestazioni per il calcolo della firma
- L'attacco man in the middle prevede che un
attaccante riesca ad intercettare un messaggio
e:
. lo modifichi, ricalcoli il digest e lo ritrasmetta al
destinatario. Quest'ultimo non è in grado di
rilevare le modifiche effettuate dall'attaccante
- tenti di cifrare con la chiave pubblica del
destinatario il digest
- Tenti di decifrare con la chiave privata del
destinatario il diegest
- nessuna delle precedenti
Sistemi e reti
Esercizi
@Mattia Marcolin
18
Soluzioni agli esercizi
.
consente di associare una certa persona fisica
ad un documento digitale
- prevede l'utilizzo di un algoritmo a chiave simmetrica
- è contenuta all'interno del documento
- non dipende dal documento ma esclusivamente dal
firmatario
- La firma digitale serve per garantire al
documento:
- integrità
- autenticazione
- integrità e autenticazione
- confidenzialità, integrità e autenticazione
- Un soggetto che vuole firmare digitalmente un
documento:
- cifra il documento con la propria chiave pubblica
cifra il documento con la propria chiave privata
- cifra il documento con la propria chiave segreta
- nessuna delle precedenti
- Il digest è:
- reversibile e univoco
irreversibile e non univoco
- reversibile e non univoco
- irreversibile e univoco
- Un algoritmo di hashing:
- è un algoritmo deterministico che produce in uscita
la firma
- è un algoritmo deterministico che produce in uscita
una sequenze di bit denominata digest avente una
lunghezza non prefissata
- è un algoritmo deterministico che produce in
uscita una sequenze di bit denominata digest
avente una lunghezza prefissata
- peggiora le prestazioni per il calcolo della firma
- L'attacco man in the middle prevede che un
attaccante riesca ad intercettare un messaggio
e:
lo modifichi, ricalcoli il digest e lo
ritrasmetta al destinatario. Quest'ultimo non
è in grado di rilevare le modifiche effettuate
dall'attaccante
- tenti di cifrare con la chiave pubblica del
destinatario il digest
- Tenti di decifrare con la chiave privata del
destinatario il diegest
- nessuna delle precedenti
Sistemi e reti
Esercizi
@Mattia Marcolin
19