Professional Documents
Culture Documents
3.2 - Firma Digitale
3.2 - Firma Digitale
2
Definita nel CAD, Codice dell’Amministrazione Digitale, come un particolare tipo di firma
qualificata basata su un sistema di chiavi crittografiche, una pubblica e una privata, correlate tra
loro, che consente al titolare di firma elettronica tramite la chiave privata e a un soggetto terzo
tramite la chiave pubblica, rispettivamente, di rendere manifesta e di verificare la provenienza e
l'integrità di un documento informatico o di un insieme.
La norma introduce quindi l'uso di algoritmi di crittografia a chiave pubblica.
È un sistema di sottoscrizione di documenti informatici, che garantisce:
1- Autenticità;
Certezza del mittente.
2- Integrità;
Non modificabilità del messaggio firmato.
3- Non ripudio;
Innegabilità da parte del firmatario.
4- Riservatezza.
Opzionale perché è possibile che per il messaggio non sia richiesta confidenzialità.
Il certificato per la firma elettronica viene rilasciato dal Certification Authority (soggetto terzo di
fiducia, pubblico o privato, abilitato ad emettere un certificato digitale tramite una procedura di
certificazione che segue standard internazionali e in conformità alla normativa europea e nazionale
in materia. Esempi: Aruba, Poste Italiane, …) senza formalità; è previsto invece un processo
obbligatorio di accreditamento da parte di una autorità pubblica preposta per qualificare
una Certification Authority a emettere certificati qualificati.
Possono essere certificate persone fisiche, organizzazioni, server, applicazioni software, siti web,
reti di interconnessione, contenuti digitali ovvero il file che rappresenta il contenuto.
1
(nell’immagine viene
usato Bob, nella
didascalia Alice, poco
cambia, io uso Alice
come mittente)
Problematiche:
1- La lunghezza della firma non può essere dimensionalmente grande quanto il messaggio.
2- Potenziale attacco MITM.
L’attaccante si colloca nel punto debole della catena, cioè durante la distribuzione delle
chiavi pubbliche, il MITM, fornisce a Bob anche la sua chiave pubblica. A questo punto
riesce ad intercettare il messaggio di Alice prima che questo arrivi a Bob. Sostituisce 𝑚
con 𝑚′ , messaggio fraudolento, lo decifra con la sua chiave segreta ed ottiene la firma
′ ′
del messaggio fraudolento, 𝑑𝑀𝐼𝑇𝑀 . Spedisce a Bob la coppia (𝑚′ , 𝑑𝑀𝐼𝑇𝑀 ) che decifra ma
non si accorge di nulla perché tutto coincide.
Bisogna trovare il modo di distribuire le chiavi pubbliche in maniera più sicura, per
questo sono state istituite le Anchor Trust → Nei sistemi crittografici con struttura
gerarchica, un’ancora di fiducia è un’entità autorevole per la quale la fiducia viene
assunta e non derivata. La maggior parte dei sistemi operativi fornisce un elenco
integrato di certificati radice auto-firmati che fungono da ancore di fiducia per le
applicazioni. Anche il browser web Firefox fornisce un proprio elenco di ancore di
fiducia. Quindi, l’utente finale di un sistema operativo o di un browser web si fida
implicitamente del corretto funzionamento di quel software e il produttore software, a
sua volta, delega la fiducia per determinare operazioni crittografiche alle autorità di
certificazione responsabili dei certificati radici.
2
2- FIRMA RSA
Dominio ed codominio della funzione di cifratura coincidono nell’insieme dei numeri moduli 𝑛,
ciò permette un agevole scambio tra cifratura e decifratura.
❖ SICUREZZA
- La firma generata da Alice, 𝑦, non può essere usata da Eve su un altro messaggio (𝑚1 ) in
quanto 𝑦 𝑒 ≠ 𝑚1 (𝑚𝑜𝑑 𝑛).
- Affinché l’attacco vado a buon fine serve una nuova firma 𝑦1 : 𝑦1𝑒 ≡ 𝑚1 (𝑚𝑜𝑑 𝑛).
- Si potrebbe provare a fissare la firma e ricavare il messaggio come 𝑚1 ≡ 𝑦1𝑒 (𝑚𝑜𝑑 𝑛),
ma la probabilità che 𝑚1 abbia un senso compiuto e voluto è troppo bassa.
3
Procedura
1- Si considera
inizialmente la chiave
pubblica di Bob
(𝑝, 𝑒), dove 𝑝 è il
prodotto di due
numeri primi ed 𝑒,
l’esponente pubblico
della chiave.
2- Alice sceglie un numero casuale 𝑟, blinding factor, coprimo con 𝑝, cioè 𝑀𝐶𝐷(𝑟, 𝑝) = 1
e calcola ed invia su un canale pubblico a Bob, 𝑚′ ≡ 𝑚𝑟 𝑒 (𝑚𝑜𝑑 𝑝).
3- Bob calcola 𝑠 ′ ≡ (𝑚′ )𝑑 (𝑚𝑜𝑑 𝑝) usando la sua chiave privata (𝑝, 𝑑) ed invia 𝑠 ′ ad Alice.
4- A questo punto Alice può togliere la propria firma e ottenere il messaggio originale 𝑚
firmato da Bob nel seguente modo 𝑠 ≡ 𝑠 ′ 𝑟 −1 ≡ 𝑚𝑑 (𝑚𝑜𝑑 𝑝)
Dimostrazione
4
3- FIRMA ElGamal
Più complicato di RSA da invertire, per questo necessita di qualche piccola modifica allo
schema di cifratura classico. Inoltre, a causa dell’espansione che l’algoritmo introduce, la firma
risulta avere dimensione tripla rispetto al messaggio da firmare, poiché Alice invia la firma
(𝑟, 𝑠) insieme al messaggio 𝑚.
Dimostrazione
𝑠 ≡ 𝑘 −1 (𝑚 − 𝑎𝑟) (𝑚𝑜𝑑 (𝑝 − 1)) → 𝑚 ≡ 𝑠𝑘 + 𝑎𝑟 (𝑚𝑜𝑑 (𝑝 − 1))
𝑣2 ≡ 𝛼 𝑚 ≡ 𝛼 𝑠𝑘+𝑎𝑟 ≡ (𝛼 𝑎 )𝑟 (𝛼 𝑘 )𝑠 ≡ 𝛽 𝑟 𝑟 𝑠 ≡ 𝑣1 (𝑚𝑜𝑑 𝑝)
❖ SICUREZZA
1- Bisogna mantenere segreto 𝑎.
2- Bisogna che Alice usi un diverso 𝑘 per ogni firma, altrimenti nella firma comparirà lo
stesso 𝑟.
5
4- Digital Signature Algorithm, DSA, 1993
Standard FIPS, Federal Information Processing Standards, per la firma digitale proposto dal
NIST, National Istitute of Standars and Technology, per essere impiegato nel Digital Signature
Standard, DSS. Fa uso di un sistema crittografico a chiave pubblica simile ad ElGamal.
𝑠 ≡ 𝑘 −1 (𝑚 + 𝑎𝑟) (𝑚𝑜𝑑 𝑞)
3- Alce invia la firma (𝑟, 𝑠) insieme al messaggio 𝑚.
6
5- HASH E FIRMA DIGITALE
Le primitive di firma digitale usate direttamente sul messaggio producono una firma lunga
almeno quanto il messaggio. Ciò rende la firma digitale inutilizzabile per scopi pratici, una
soluzione consiste nel calcolare la firma digitale non sul messaggio, ma su un hash digest del
messaggio, tale approccio prendo il nome di hash and sign ed è ciò che si fa nel 90% dei casi.
Tale meccanismo permette di avere firme molto corte ma apre a possibili vulnerabilità legate
alle funzioni hash, per esempio il paradosso del compleanno.