In questo articolo vediamo quali sono i formati delle firme digitali e come avviene l’apposizione di firme multiple, ricordando cos’è una firma digitale e chiarendo anche il concetto di busta crittografica.
Cos’è la firma digitale
La firma digitale è l’equivalente elettronico di una firma apposta su carta e ne assume lo stesso valore legale. È associata al documento informatico e lo arricchisce di informazioni che attestano l’integrità, l’autenticità e la non ripudiabilità dello stesso.
Il sistema per la creazione e la verifica di firme digitali sfrutta le caratteristiche della crittografia asimmetrica, associando a ogni utente una coppia di chiavi:
› una chiave pubblica accessibile a tutti coloro che necessitano di scambiare informazioni con l’entità proprietaria;
› una chiave privata, custodita e tenuta segreta dal legittimo proprietario.
In un processo di crittografia asimmetrica, qualsiasi messaggio crittografato con una chiave privata potrà essere decifrato solo utilizzando la chiave pubblica corrispondente. Il processo svincola quindi l’utente dalla necessità di dover scambiare le chiavi prima di qualunque comunicazione.
Senza entrare troppo nei dettagli tecnici, la firma digitale consiste nella creazione di un file, definito “busta crittografica”, che contiene al suo interno il documento originale, l’evidenza informatica della firma e la chiave per la verifica della stessa, contenuta nel certificato emesso a nome del sottoscrittore (Figura 1). Infine la busta crittografica contiene anche un certificato dell’Autorità di registrazione che garantisce l’autenticità del certificato del sottoscrittore.
Quali sono i formati di firma digitale
Un file firmato digitalmente può avere i seguenti formati:
› CAdES, busta crittografica di firma con estensione P7M o pkcs#7;
› PAdES, firma integrata all’interno di file di tipo Portable Document Format (PDF) secondo lo standard ISO/IEC 32000;
› XAdES, prevede la sottoscrizione in linguaggio XML.
CAdES – Firma digitale in formato p7m o pkcs#7
Il formato CAdES (CMS Advanced Electronic Signature) è quello previsto dalla normativa vigente sull’interoperabilità della firma digitale ed è quello che le Pubbliche Amministrazioni sono obbligate ad accettare. È stato il primo formato disponibile, in uso fin dal 1999.
Il formato CAdES consiste in una busta crittografica che contiene il file originale e la firma. La busta conserva il nome del file firmato, ma ne modifica l’estensione, che diventa .p7m. Quindi, dopo la sottoscrizione, il file “documento.pdf” diventa “documento.pdf.p7m” e come tale sarà fruibile da altre applicazioni.
La firma CAdES è una firma digitale che può essere apposta su qualsiasi tipo di file: testo, immagini, audio, video. In questo caso il documento verrà sottoposto a tre fasi:
1. Generazione dell’impronta digitale (digest, ovvero una stringa binaria di lunghezza piccola e costante) attraverso l’applicazione della funzione di hash sul documento in chiaro.
2. Generazione della firma, cifrando con la propria chiave privata l’impronta digitale del documento (l’algoritmo più utilizzato è l’RSA).
3. Generazione di una busta di estensione (envelope), contenente:
› il documento in chiaro;
› la sua impronta cifrata, che corrisponde alla firma digitale del documento;
› il certificato elettronico con chiave pubblica del titolare, emesso da una Certification Authority (CA);
› il certificato della Certification Autority che lo ha rilasciato;
› il timestamp o marca temporale (opzionale), che associando al documento una data e ora certificata dalla Time Stamp Authority (TSA), consente di dimostrare che il documento esisteva in quel preciso momento.
La controparte di questa flessibilità è che, per la sua verificare e lettura, il file deve essere prima “sbustato”. Serve, quindi, un software di firma (Acrobat Reader, MS Word, MS Excel) per aprire la busta e visualizzare il file. La firma digitale viene apposta all’intero documento e, una volta apposta, fa sì che il documento non possa essere modificato. Tuttavia, si preferisce usare CAdeS, essendo il formato utilizzato da più tempo e quindi certamente riconosciuto e accettato da tutti i portali della pubblica amministrazione.
Formato CAdES e firme multiple
Il formato CAdES consente di apporre firme multiple sullo stesso documento da parte di soggetti differenti. La firma può avvenire in due modalità distinte:
- › controfirma o “firma matrioska”: la firma avviene re-imbustando in una nuova busta CAdES la busta generata dalla sottoscrizione precedente (Figura 2);
- › firme congiunte: si aggiungono nella busta ulteriori firme, accompagnate dai relativi certificati (Figura 3):
PAdES – Firma digitale in formato pdf
Il formato PAdES (PDF Advanced Electronic Signature) è lo standard della firma digitale dei documenti in formato Pdf, che mantengono sia il nome, sia l’estensione .pdf.
Si tratta di un altro tipo di firma digitale, con la stessa valenza legale della firma CAdES, ma che può essere apposta solo su file Pdf. Anche se non è il metodo di firma più utilizzato, la larga diffusione del formato Pdf rende il PAdES un formato da non trascurare. A differenza del formato CAdES, il documento PAdES, non subendo trasformazioni di formato, non necessita poi delle operazioni di imbustamento/sbustamento ed essendo contenuto all’interno del Pdf, può essere visualizzato da un qualunque lettore di file Pdf (come Acrobat Reader).
Il formato PAdES consente di definire anche come può essere visualizzata una firma (ad esempio, come una firma a inchiostro su carta in una posizione particolare della pagina). A differenza della CAdES, il formato PAdES permette di firmare anche parti del documento e consente di poter inserire modifiche o annotazioni in seguito alla firma su una copia, senza intaccare la validità del documento firmato originariamente. La busta crittografica generata con la firma PAdES contiene, infatti, il documento originale e ogni versione modificata successiva del documento stesso.
Con la deliberazione CNIPA 45/2009 e il protocollo d’intesa con Adobe, il formato PDF (ISO/IEC 32000) è stato riconosciuto pienamente valido per la firma digitale. AgID ha chiarito che, anche se il formato PDF è associato a diffusi prodotti commerciali, si tratta tuttavia di uno standard e pertanto per il suo uso non bisogna pagare alcuna royalty.
Grazie a ciò, la firma digitale ha fatto un enorme passo avanti. Oggi abbiamo un formato che da un lato è di larga diffusione e immediata fruibilità (il software di lettura è scaricabile gratuitamente dal web e di facile uso) e dall’altro risponde ai requisiti tecnici e giuridici per poter trasportare firme digitali al suo interno.
Per firmare digitalmente documenti PDF si può usare il kit di firma digitale fornito dal proprio fornitore di riferimento e un qualsiasi prodotto di elaborazione PDF, purché questo generi file sottoscritti conformemente alle specifiche del formato stesso.
XAdES – Firma digitale in formato xml
Il formato XAdES (XML Advanced Electronic Signature) è lo standard di firma per le transazioni XML definite dal W3C, introdotto dalla deliberazione CNIPA n.34/2006 recante “Regole tecniche per la definizione del profilo di busta crittografica per la firma digitale in linguaggio XML”.
XML è uno strumento per la strutturazione e lo scambio di dati usato per produrre documenti elettronici di tipo sanitario e finanziario. Ciò ha reso necessario considerare e rendere legale un formato di firma che consentisse di sfruttare la potenzialità e la flessibilità di questo linguaggio e introdurre in maniera meno invasiva la firma digitale in questi settori.
Formato ancora poco usato, in quanto è uno standard complesso con molte opzioni, la firma XAdES si può visualizzare con il browser applicabile a qualsiasi documento. Una caratteristica dello XAdES è la possibilità di firmare singole parti del documento, cosa di particolare importanza nel caso di documenti scritti da più persone, in cui ognuno deve firmare la sua parte.
Il problema di questa tecnologia risiede, però, nella fase di presentazione. I file .xml non prevedono, ad esempio, l’ordinamento dei tag e due file “semanticamente” uguali possono essere “sintatticamente” molto diversi: in tal caso devono essere considerati equivalenti o no? Il file XML è poi poco leggibile, quindi a esso deve essere solitamente abbinato un file di presentazione (foglio di stile: XSLT) che lo trasforma in un vero e proprio documento.