Quando parliamo di firma sul documento identifichiamo il segno grafico che apponiamo in calce al testo, riconosciuto da sempre come indiscutibile prova della originalità del documento, se confrontato con il processo di apposizione di una firma digitale vediamo che le cose sono completamente diverse. La prima e più importante differenza nell'uso dei due metodi è che il documento firmato con la penna resta perfettamente leggibile, mentre quello firmato digitalmente cambia il suo stato, la sua forma, e richiede un programma specializzato per la sua apertura.
La firma digitale è un processo matematico che permette di criptare una rappresentazione univoca del file, detta "impronta", e di inserirla nel file stesso trasformandolo in un nuovo tipo di file. Il risultato del processo di firma digitale di un file è un altro file, di formato diverso. Ad esempio il file in formato Microsoft Word "Documento.doc", al termine del processo di firma diventa il file "Documento.doc.p7m".
L'estensione "p7m" indica che il file non è più un documento Microsoft Word e quindi non può più essere aperto da questo programma. Per poterlo leggere è necessario l'uso di un nuovo programma, facilmente reperibile su internet, prodotto da vari autori. Questo programma ha lo scopo di estrarre nuovamente il file originale e di confermare l'autenticità dell'autore del documento.
NOTA BENE: il file firmato digitalmente non può essere letto con i sistemi oggi comunemente diffusi. Se, ad esempio, decidiamo di adottare il formato Portable Document Format (PDF) per pubblicare ed inviare i nostri documenti perché si tratta di un formato ormai capillarmente diffuso che garantisce la leggibilità del documento presso il destinatario, ricordate che il file firmato non è più in formato PDF, è in formato "p7m", sempre uno standard in effetti, ma che richiede un prodotto specifico che sia in grado di gestire il documento. Va detto che lo scopo di questa trasformazione non è nascondere il contenuto del file, tutt'altro: chiunque potrà aprire ed estrarre il file originale ed infine consultarlo, ma il nuovo formato è una necessaria trasformazione per aggiungere le informazioni che garantiscono l'originalità del file e la sua provenienza.
La firma digitale è un processo matematico che può essere così sintetizzato:
1. Creazione dell'impronta del documento: attraverso un algoritmo detto "algoritmo di Hash" (Secure Hash Algoritm, SHA-1) è possibile estrarre un numero di lunghezza fissa (160 bit) che ha la caratteristica di rappresentare univocamente il nostro documento. Se cambiamo anche una sola virgola al documento anche il numero che lo rappresenta cambierà. Questo numero è detto "impronta" del file. Le due caratteristiche importanti sono :
a. l'impronta rappresenta il file, se il file cambia l'impronta cambia
b. è un numero.
2. Firma dell'impronta: un altro algoritmo matematico permette di criptare l'impronta (che è un numero) con un altro numero, la chiave privata. Questa operazione è molto semplice da effettuare, ma è computazionalmente molto difficile effettuare l'operazione inversa, cioè ricavare la chiave privata. L'impronta così criptata è sicura e non può essere alterata. La chiave privata viene creata sempre in coppia con un altro numero, la chiave pubblica. Quest'ultima permette di estrarre l'impronta criptata, ma non di criptarla.
3. Creazione del nuovo formato di file. Questa operazione può essere immaginata come la creazione di una sorta di busta all'interno della quale trovano posto
a. il file originale
b. l'impronta firmata
c. la chiave pubblica
d. il certificato dell'autore. Quest'ultimo è una vera e propria carta d'identità elettronica e viene rilasciata da una autorità preposta e contiene:
i. Il nome dell'Autorità di Certificazione
ii. La data di emissione del certificato
iii. La data di scadenza del certificato
iv. Il nominativo del soggetto
v. La chiave pubblica del soggetto
Vediamo ora cosa deve fare il destinatario per sapere se il file è originale o se è stato manomesso. Il principio consiste nell'estrarre il file originale e creare una nuova impronta che poi confronteremo con quella criptata contenuta nella busta: se le due impronte coincidono il file è originale. In sintesi:
a. Estrazione del file originale dalla busta.
b. Creazione di una impronta attraverso l'applicazione dell'algoritmo SHA-1.
c. Estrazione dell'impronta criptata con la chiave pubblica, anch'essa contenuta nella busta.
d. Confronto delle due impronte.
Queste operazioni vengono svolte da programmi specializzati per la firma e la verifica dei documenti che vengono distribuiti gratuitamente su internet dalle stesse autorità che rilasciano i certificati e le chiavi private e pubbliche per la firma digitale.
NOTA BENE: non è necessario dotarsi degli strumenti per la firma digitale per leggere un file firmato. Il file può essere aperto scaricando l'apposito programma da internet.
Chi garantisce l'inviolabilità dei certificati e dalla chiave privata sono le autorità preposte al rilascio dei certificati per firma digitale, che installano questi ultimi su supporti che non possono essere contraffatti o alterati. Questi supporti sono smart card o token USB. L'operazione di criptaggio dell'impronta, la firma digitale, avviene a bordo di questi supporti: il programma dopo aver estratto l'impronta la invia al supporto che applica la chiave privata e restituisce l'impronta firmata. Il supporto si comporta come una cassaforte intelligente, che non permette l'uscita dei suoi valori, ma è in grado di operare al suo interno.
L'elenco dei certificatori attivi è reperibile sul sito del CNIPA (Centro Nazionale per l'Informatica nella Pubblica Amministrazione) all'indirizzo: http://www.cnipa.gov.it.
Le funzionalità per la gestione della firma digitale sui documenti sono disponibili solo in presenza del modulo Document Management System (DMSA) di Infinity Project.
In particolare sono state realizzate le infrastrutture tecnologiche per far fronte alla funzione di lettura dei documenti firmati e alla firma dei documenti.