Torna Indietro
Come si genera la firma digitale
Capire il meccanismo con cui si genera la firma digitale è utile, perché alcuni elementi che lo contraddistinguono - il tipo di algoritmi utilizzati, la lunghezza delle chiavi, ecc. - compaiono nella descrizione dei servizi e di altri strumenti (es. i certificati) che si utilizzano quando si fa ricorso ad essa.
Il Regolamento Tecnico fissa alcune soluzioni tecniche e procedure specifiche per la generazione e verifica della firma.
Nella fase di generazione della firma:

l’utente deve essere in grado di individuare chiaramente i dati a cui sta apponendo la firma;
il sistema di generazione della firma deve richiedere conferma della volontà dell'utente di generare la firma (tranne che nel caso di firma apposta con procedura automatica);
il dispositivo di firma non deve consentire l’intercettazione della chiave privata;
il dispositivo di firma deve identificare preventivamente il titolare.
Anche gli strumenti per la generazione delle firme devono essere verificati in base ai criteri ITSEC

Procedura di generazione

Fase 1: L'impronta digitale

La prima operazione da eseguire per produrre una firma digitale è l’estrazione dal file originario, ad esempio un messaggio di posta elettronica, della cosiddetta "impronta digitale", cioè una stringa di dati riassuntivi che ne sintetizzano in modo univoco il contenuto (data digest).
L’estrazione dell’impronta è necessaria, perché il passaggio successivo del processo di firma (la cifratura con il sistema a doppia chiave) è molto complesso e per velocizzarlo è meglio lavorare su un numero di dati più ridotto di quello del file originario.
La generazione dell'impronta viene effettuata con algoritmi dedicati, basati sulle funzioni di hash, che garantiscono:

- che sia impossibile ottenere esattamente la stessa impronta partendo da due file di dati diversi;
- che sia impossibile ricostruire il file originario conoscendo l’impronta e l’algoritmo utilizzato.

In pratica, se c’è anche un solo bit di differenza tra i due file di dati iniziali, l’algoritmo produce impronte diverse.
Come in tutte le procedure di cifratura, anche in questo caso, quanto più è lunga l’impronta generata dall’algoritmo tanto più aumenta la sicurezza. Il Regolamento Tecnico all'art. 3 stabilisce che vengano impiegate specifiche funzioni (definite dalla norma ISO/IEC 10118-3:1998) che producono stringhe di 160 bit.

Fase 2: La cifratura dell'impronta con la chiave privata

La seconda operazione è la cifratura dell’impronta con la chiave privata del firmatario. Il risultato di questa operazione è la firma digitale vera e propria, che viene apposta al file originario.
Per la generazione e la verifica delle firme digitali si possono usare algoritmi diversi: RSA (Rivest-Shamir-Adleman, il più comune) e DSA (Digital Signature Algorithm).
Prima della cifratura con la chiave privata, si possono aggiungere all’impronta anche altre informazioni di controllo, quali la data e l'ora in cui la firma viene generata. Poiché l'impronta non rivela il contenuto reale del documento, tali informazioni aggiuntive possono essere apposte da un soggetto terzo che le certifichi, senza infrangere la riservatezza. Questa funzione è offerta, ad esempio, dai servizi di time stamping o marcatura temporale dei certificatori.