Quanto è sicura la firma digitale?

firma digitaleSi parla da tempo della firma digitale (ne ha parlato anche Ludovico in un articolo per Nòva, diversi anni fa). Queste sono “Le regole tecniche in materia di generazione, apposizione e verifica delle firme digitali e validazione temporale dei documenti informatici” pubblicate dal nostro governo sulla GU del 6 giugno 2009.

Da un po’ di tempo stavamo col fiato sospeso ad aspettare l’articolo di Armando Leotta, un vero esperto di sicurezza informatica, intitolato “Sicurezza della firma digitale: stato e prospettive”, che è stato appena pubblicato su Mondo Digitale.

L’articolo completo è molto bello e corredato di schemi, tabelle e bibliografia. Ma per chi non ha voglia di leggerlo tutto – o, diciamo la verità, ci capisce poco o niente – questo di seguito è il problema individuato e analizzato da Armando. In sunto: mettetevi l’animo in pace perché ancora la firma digitale non è affatto sicura!

Il processo di firma digitale assicura l’integrità di quello che si firma. Questo significa che se si modifica il testo firmato, al controllo della veridicità della firma risulta qualcosa come “la firma è valida ed è di tizio ma quanto ha firmato è stato modificato dopo aver generato generazione della firma”.

Ci sono delle caratteristiche matematiche che vengono in soccorso a questo meccanismo e si chiamano “funzioni hash”. Il loro compito è quello di prendere in input un insieme di caratteri di dimensioni arbitrarie (da 1 carattere a 10GB, 100, ecc., il limite lo dà l’algoritmo che si usa) e fornire come output una stringa di lunghezza finita (alcune centinaia di byte) chiamata “digest del messaggio”.

La caratteristica di questa funzione è che non è invertibile matematicamente, e cioè che dal digest non si può matematicamente determinare/risalire al messaggio che lo ha generato. Ovviamente, più messaggi possono generare il medesimo digest (collision).

Visto il peso computazionale della firma, quello che vado a firmare digitalmente (usando la mia chiave privata) non è il messaggio ma il suo digest, affidando di fatto alla funzione hash il compito di mantenere l’univocità.

In pratica, se riesco a manipolare il messaggio senza far cambiare il digest, la firma che appongo a quest’ultimo risulterà valida. Da qui l’importanza della robustezza dell’algoritmo di hash da implementare nel processo di firma digitale.

Il punto è che siamo in procinto di cambiarlo ma, al momento, la stragrande maggioranza di implementazioni usano lo SHA-1, un algoritmo che sin dal 2005 è noto per avere molti problemi ed essere quindi insicuro.

Il risultato è che lo SHA-1 rende potenzialmente insicura la firma digitale attuale.



Commenti

Comments are closed.


L'autore del blog

boh

Questo è il blog di Enrica Garzilli, specialista di indologia e di studi asiatici e docente di Storia del Pakistan e dell'Afghanistan presso il Dip. di Studi Politici dell'Università degli Studi di Torino.