Firma digitale

Da Wikipedia, l'enciclopedia libera.
Vai a: navigazione, cerca
Se hai problemi nella visualizzazione dei caratteri, clicca qui.

In informatica la firma digitale rappresenta un sistema di autenticazione di documenti digitali tale da garantire il cosiddetto non ripudio. E' basata sulla tecnologia della crittografia a chiave pubblica (o PKI).

La nozione di firma digitale ha in Italia anche un'accezione giuridica, in quanto individua una specie di firma elettronica avanzata che può essere apposta ai documenti informatici alla stessa stregua di come la firma autografa viene apposta ai documenti tradizionali.

Indice

[modifica] Definizione

La firma digitale di un documento informatico si propone di soddisfare tre esigenze:

  • che il destinatario possa verificare l'identità del mittente (autenticità);
  • che il mittente non possa disconoscere un documento da lui firmato (non ripudio);
  • che il destinatario non possa inventarsi o modificare un documento firmato da qualcun altro (integrità).

Un tipico schema di firma digitale consiste di tre algoritmi:

  1. un algoritmo per la generazione della chiave G che produce una coppia di chiavi (PK, SK): PK (Public Key, chiave pubblica) è la chiave pubblica di verifica della firma mentre SK (Secret Key) è la chiave privata posseduta dal firmatario, utilizzata per firmare il documento.
  2. un algoritmo di firma S che, presi in input un messaggio m e una chiave privata SK produce una firma σ.
  3. un algoritmo di verifica V che, presi in input il messaggio m, la chiave pubblica PK e una firma σ, accetta o rifiuta la firma.

[modifica] Sistemi per la creazione e la verifica di firme digitali

Il sistema per la creazione e la verifica di firme digitali sfrutta le caratteristiche della crittografia asimmetrica.

Un sistema crittografico garantisce la riservatezza del contenuto dei messaggi, rendendoli incomprensibili a chi non sia in possesso di una "chiave" (intesa secondo la definizione crittologica) per interpretarli. Nei sistemi crittografici a chiave pubblica, detti anche a chiave asimmetrica, ogni utente ha una coppia di chiavi: una chiave privata, da non svelare a nessuno, con cui può decifrare i messaggi che gli vengono inviati e firmare i messaggi che invia, e una chiave pubblica, che altri utenti utilizzano per cifrare i messaggi da inviargli e per decifrare la sua firma e stabilirne quindi l'autenticità.
Perché il sistema risulti sicuro, è necessario che solo l'utente stesso e nessun altro abbia accesso alla chiave privata. Il modo più semplice per ottenere questo è far sì che l'unica copia della chiave sia "in mano" all'utente (il quale deve impedirne l'accesso a terzi); tuttavia, esistono soluzioni alternative (come nel caso della firma digitale remota).

Per ogni utente, le due chiavi vengono generate da un apposito algoritmo con la garanzia che la chiave privata sia la sola in grado di poter decifrare correttamente i messaggi cifrati con la chiave pubblica associata e viceversa. Lo scenario in cui un mittente vuole spedire un messaggio ad un destinatario in modalità sicura è il seguente: il mittente utilizza la chiave pubblica del destinatario per la cifratura del messaggio da spedire, quindi spedisce il messaggio cifrato al destinatario; il destinatario riceve il messaggio cifrato e adopera la propria chiave privata per ottenere il messaggio "in chiaro".

Grazie alla proprietà delle due chiavi, inversa rispetto a quella appena descritta, un sistema di crittografia asimmetrica di questo tipo è adatto anche per ottenere dei documenti firmati. Infatti, la chiave pubblica di un utente è la sola in grado di poter decifrare correttamente i documenti cifrati con la chiave privata di quell'utente. Se un utente vuole creare una firma per un documento, procede nel modo seguente: con l'ausilio di una funzione hash (pubblica) ricava l'impronta digitale del documento, detta anche message digest, un file di dimensioni relativamente piccole (128, 160 o più bit) che contiene una sorta di codice di controllo relativo al documento stesso, dopodiché utilizza la propria chiave privata per cifrare l'impronta digitale: il risultato di questa codifica è la firma. La funzione hash è fatta in modo da rendere minima la probabilità che da testi diversi si possa ottenere il medesimo valore dell'impronta, inoltre, è one-way, a senso unico, questo significa che dall'impronta è impossibile ottenere nuovamente il testo originario ovvero essa è non invertibile. La firma prodotta dipende dall'impronta digitale del documento e, quindi, dal documento stesso, oltre che dalla chiave privata dell'utente. A questo punto la firma viene allegata al documento.

Chiunque può verificare l'autenticità di un documento: per farlo, decifra la firma del documento con la chiave pubblica del mittente, ottenendo l'impronta digitale del documento, e quindi confronta quest'ultima con quella che si ottiene applicando la funzione hash al documento ricevuto; se le due impronte sono uguali, l'autenticità e l'integrità del documento sono garantite.

La firma digitale assicura inoltre il non ripudio: il firmatario di un documento pervenuto nelle mani di un terzo che ne verifica con successo la validità della firma, non potrà negare di averlo scritto. Detta in altre parole significa che l'informazione non può essere disconosciuta, come nel caso di una firma convenzionale su un documento cartaceo in presenza di testimoni.

Le operazioni di firma e di verifica possono essere demandate ad un apposito programma rilasciato dall'ente certificatore oppure al proprio provider di posta elettronica, che, con una semplice configurazione, le effettuerà automaticamente.

[modifica] Schema di firme

I due elementi fondamentali di uno schema di firme sono l'algoritmo di firma e l'algoritmo di verifica.

L'algoritmo di firma
crea una firma elettronica che dipende dal contenuto del documento a cui deve essere allegata, oltre che dalla chiave dell'utente. Una coppia (documento, firma) rappresenta un documento firmato, ovvero un documento a cui è stata allegata una firma.
L'algoritmo di verifica
può essere utilizzato da chiunque per stabilire l'autenticità della firma digitale di un documento.

L'utente calcola l'impronta digitale del documento con un algoritmo di Hash che restituisce una stringa funzione del documento. La stringa viene poi cifrata con l'algoritmo a chiave asimmetrica usando la chiave privata del mittente. Il risultato di tale codifica è la firma digitale del documento. La firma viene allegata al documento che ora risulta firmato digitalmente. Il documento firmato digitalmente è in chiaro ma possiede la firma del mittente e può essere spedito in modo che esso possa essere letto da chiunque ma non alterato poiché la firma digitale ne garantisce l'integrità. Il ricevente ricalcola la stringa hash dal documento con l'algoritmo di Hash. Poi decritta la firma digitale con la chiave pubblica del mittente ottenendo la stringa hash calcolata dal mittente, e confronta le due stringhe hash, verificando in questo modo l'identità del mittente e l'integrità e autenticità del documento.

Siano D un insieme finito di possibili documenti, F un insieme finito di possibili firme, K un insieme finito di possibili chiavi;
se ∀ k ∈ K ∃ un algoritmo di firma sigk:D→F, ∃ un corrispondente algoritmo di verifica verk:D×F→{vero, falso} tale che ∀ d ∈ D, ∀ f ∈ F: verk(d,f) = { vero se f = sigk(d) ; falso se f ≠ sigk(d) }
allora (D, F, K, sigk, verk) costituisce uno schema di firme.

Dato un d ∈ D solo il firmatario deve essere in grado di calcolare f ∈ F tale che verk(d,f) = vero.

Uno schema di firme è detto incondizionatamente sicuro se non esiste un modo per la falsificazione di una firma f ∈ F. Segue che non esistono schemi di firme incondizionatamente sicuri poiché un malintenzionato potrebbe testare tutte le possibili firme y ∈ F di un documento d ∈ D di un utente, usando l'algoritmo pubblico verk fino a quando non trova la giusta firma. Naturalmente questo tipo di attacco alla sicurezza dello schema di firme risulta essere enormemente oneroso computazionalmente e praticamente irrealizzabile, anche adottando gli algoritmi più raffinati e i processori più potenti, poiché si fa in modo che la cardinalità dell'insieme di possibili firme sia enormemente elevata.

[modifica] Differenze tra firma digitale e firma convenzionale

  Firma autografa Firma digitale
Creazione manuale mediante algoritmo di creazione
Apposizione sul documento: la firma è parte integrante del documento come allegato: il documento firmato è costituito dalla coppia (documento, firma)
Verifica confronto con una firma autenticata: metodo insicuro mediante algoritmo di verifica pubblicamente noto: metodo sicuro
Documento copia distinguibile indistinguibile
Validità temporale illimitata limitata
Automazione dei processi non possibile possibile

[modifica] Vulnerabilità

[modifica] Vulnerabilità del processo di firma

La vulnerabilità più nota è strettamente correlata al fatto che una smart card è un calcolatore elettronico limitato, poiché manca dei dispositivi di I/O. Dovendola quindi interfacciare ad un PC risulterà non completamente sicuro il processo di generazione della firma digitale, in dipendenza della potenziale insicurezza del PC utilizzato per generare l'impronta del documento da firmare. Il rischio concreto è che alla fine il PC possa ottenere dalla smart card una firma su un documento arbitrariamente scelto, diverso da quello visualizzato sullo schermo e effettivamente scelto dall'utente. Chiaramente l'utente potrebbe non essere consapevole dell'esistenza di un siffatto documento, per cui tale problema può essere considerato molto grave. Secondo il parere di Rivest esiste una contraddizione intrinseca tra possedere un dispositivo sicuro e usare una “interfaccia utente ragionevolmente personalizzabile” che supporti il download delle applicazioni. In altri termini, si potrebbe pensare ad un’applicazione molto sicura per la firma digitale che sia eseguibile su computer stand-alone (portatili), tali da non permettere l'esecuzione di altri programmi. In caso contrario, il processo di firma digitale rimane intrinsecamente insicuro, poiché i PC non possono rappresentare piattaforme sicure. Secondo Rivest la firma digitale non dovrebbe essere considerata come una prova non ripudiabile, ma semplicemente come un'evidenza plausibile. Così per gli utenti dovrebbero esistere casi ben definiti in cui poter ripudiare la firma. Il problema, ben noto in letteratura, è complesso e non ammette una soluzione completa fintanto che il PC è parte del processo di generazione della firma. Recentemente sono state proposte soluzioni euristiche che permettono di mitigarne le conseguenze.

[modifica] Documenti contenenti macro-istruzioni o codice eseguibile

Un'altra ben nota vulnerabilità è derivante dalla possibilità per i documenti di incorporare macro-istruzioni o codice eseguibile (si pensi ad esempio alle macro dei documenti Word, oppure al codice Javascript dei documenti PDF). Il problema è che un documento contenente istruzioni non è statico, nel senso che la visualizzazione (la presentazione) del suo contenuto potrebbe dipendere da tali istruzioni. Per esempio, si consideri il caso di un contratto che include un valore che dipende dalla data di sistema, in modo tale che, dopo una certa data, il valore visualizzato sia modificato. La firma digitale dovrebbe essere in grado di evitare la modifica di ciò che un documento mostra all'utente, allo scopo di garantire l'integrità dell'informazione, non solo in termini tecnici, ma anche dal punto di vista degli effetti (legali) prodotti dai bit che compongono i documenti digitali. Nell’esempio precedente, chiaramente i bit del contratto digitale non variano, ma il loro effetto, in termini di contenuto rappresentato, sì. Sfortunatamente, la firma digitale non è in grado di rilevare il comportamento dinamico del documento, tantomeno i suoi (pericolosamente dinamici) effetti legali, in quanto è ottenuta a partire dai bit che compongono il documento mediante l'applicazione di una funzione di hash crittografico prima, e l'esecuzione di un algoritmo di crittografia asimmetrica (tipicamente RSA) poi. Questa vulnerabilità è ben nota e il modo per contrastarla è banalmente quello di forzare l'utente a verificare la presenza di macro nel documento prima della firma, quindi assumendo che egli sia in grado di svolgere tale compito. Esistono anche alcuni lavori scientifici in letteratura che definiscono approcci sistematici per contrastare tale vulnerabilità. Un'ulteriore metodo suggerito è quello di restringere i formati permessi per i documenti a quelli che non supportano l'inclusione di istruzioni, come il testo (es. ASCII), PDF/A, le immagini. Altri possibili attacchi, documentati in letteratura, riguardano l'uso dei font e altre tecniche legate alla visualizzazione non statica del contenuto del documento (es, inclusione di oggetti esterni, attacchi basati sulla versione del browser per documenti HTML, testo nascosto attraverso il colore dei font, etc.).

La vigente normativa italiana, comunque, esclude espressamente la validità della firma per le sopraddette tipologie di documenti: l'art. 3, comma 3 del DPCM 30 marzo 2009 (nuove regole tecniche in vigore dal 6 dicembre 2009) recita infatti "Il documento informatico, sottoscritto con firma digitale o altro tipo di firma elettronica qualificata, non produce gli effetti di cui all'art. 21, comma 2, del codice, se contiene macroistruzioni o codici eseguibili, tali da attivare funzionalità che possano modificare gli atti, i fatti o i dati nello stesso rappresentati" .

[modifica] Vulnerabilità connesse all'ambiguità della codifica del documento

Il 21 giugno 2008 viene divulgato un articolo in cui si descrive la scoperta fatta dal gruppo del Professor Francesco Buccafurri, ordinario alla facoltà di Ingegneria di Reggio Calabria, di una nuova vulnerabilità che affligge la firma digitale. Ciò che viene provato non è la vulnerabilità degli algoritmi di firma o dei dispositivi: si tratta di un attacco mai prima documentato che consente di firmare documenti con contenuto ambiguo e che sfrutta tecniche fino a quella data non note, agendo su formati ritenuti esenti da tale comportamento "dinamico". Dal punto di vista degli effetti, tale vulnerabilità è assimilabile a quella già nota determinata dalla presenza di istruzioni nei documenti. Tuttavia la tecnica con la quale opera è significativamente diversa. La vulnerabilità sfrutta la caratteristica di quei Sistemi Operativi di identificare il tipo di file, e quindi il software da utilizzare per renderne intelligibile il contenuto, attraverso l'estensione (infatti il comportamento "dinamico" del documento viene attivato dalla modifica della sua estensione), risultando quindi applicabile solo in tali Sistemi Operativi. In linea di principio la vulnerabilità potrebbe essere facilmente risolta includendo negli “authenticated attributes” della busta PKCS#7 il mime-type del file soggetto a firma, di modo da eliminare l'ambiguità sul software da utilizzare per visualizzare il documento e neutralizzare l'attacco. Tuttavia una soluzione del genere comporterebbe l'adeguamento dei software di verifica della firma attualmente in uso, quindi non è di facile attuazione pratica.

Non esiste giurisprudenza applicabile a questa tipologia di casi, a causa della novità della fattispecie, ma è presumibile che essi ricadano sotto l'applicazione dell'art. 3 comma 3 del DPCM 30 marzo del 2009 (nuove regole tecniche in vigore dal 6 dicembre 2009), e che quindi i documenti con tale ambiguità non producano gli effetti probatori previsti dall'art. 21 del Codice dell'amministrazione digitale.

[modifica] Valore giuridico della firma digitale in Italia

Nell'ordinamento giuridico italiano il termine firma digitale sta ad indicare un tipo di firma elettronica qualificata e più specificamente di firma elettronica qualificata, basato sulla crittografia asimmetrica, alla quale si attribuisce una particolare efficacia probatoria, tale da potersi equiparare, sul piano sostanziale, alla firma autografa.

Oggi, la legge che disciplina la firma elettronica è il "Codice dell'amministrazione digitale" (Decreto Legislativo 7 marzo 2005, n. 82) che ha subito nel corso del tempo varie modifiche (da ultimo ad opera del d.lgs. 30 dicembre 2010 , n. 235).

Attualmente la legge italiana prevede 3 tipi di firma elettronica:

  1. firma elettronica (chiamata anche firma elettronica "semplice"): l'insieme dei dati in forma elettronica, allegati oppure connessi tramite associazione logica ad altri dati elettronici, utilizzati come metodo di identificazione informatica.
  2. firma elettronica avanzata: insieme di dati in forma elettronica allegati oppure connessi a un documento informatico che consentono l'identificazione del firmatario del documento e garantiscono la connessione univoca al firmatario, creati con mezzi sui quali il firmatario può conservare un controllo esclusivo, collegati ai dati ai quali detta firma si riferisce in modo da consentire di rilevare se i dati stessi siano stati successivamente modificati.
  3. firma elettronica qualificata: un particolare tipo di firma elettronica avanzata che sia basata su un certificato qualificato e realizzata mediante un dispositivo sicuro per la creazione della firma.

La firma digitale è quindi solo un particolare tipo di firma elettronica qualificata basata su un sistema di chiavi crittografiche, una pubblica e una privata, correlate tra loro, che consente al titolare tramite la chiave privata e al destinatario tramite la chiave pubblica, rispettivamente, di rendere manifesta e di verificare la provenienza e l'integrità di un documento informatico o di un insieme di documenti informatici.

Rispetto alla firma elettronica "semplice" la firma elettronica avanzata ha in più la garanzia della connessione univoca al firmatario, la creazione con un mezzo sul quale il firmatario può conservare un controllo esclusivo e la possibilità di far rilevare se i dati a cui la firma si riferisce siano stati successivamente modificati.

La firma elettronica qualificata a questo punto è stata nuovamente definita partendo dalla firma elettronica avanzata con in più l'uso di un certificato qualificato e di un dispositivo sicuro per la sua creazione.

Sotto il profilo probatorio è stata ribadita la potenziale idoneità del documento informatico, anche non sottoscritto, ad integrare la forma scritta: "L'idoneita' del documento informatico a soddisfare il requisito della forma scritta e il suo valore probatorio sono liberamente valutabili in giudizio, tenuto conto delle sue caratteristiche oggettive di qualita', sicurezza, integrita' e immodificabilita', fermo restando quanto disposto dall'articolo 21".

L'efficacia automatica di scrittura privata e la presunzione semplice che il dispositivo di firma sia riconducibile al titolare, in precedenza appannaggio della sola firma elettronica qualificata, sono attribuite anche alla firma elettronica avanzata: "Il documento informatico sottoscritto con firma elettronica avanzata, qualificata o digitale, formato nel rispetto delle regole tecniche di cui all'articolo 20, comma 3, che garantiscano l'identificabilita' dell'autore, l'integrita' e l'immodificabilita' del documento, ha l'efficacia prevista dall'articolo 2702 del codice civile. L'utilizzo del dispositivo di firma si presume riconducibile al titolare, salvo che questi dia prova contraria".

Contrariamente al passato è stata però riservata alla sola firma elettronica qualificata la possibilità di sottoscrizione dei seguenti atti: contratti che, in relazione a beni immobili, ne trasferiscano la proprietà, costituiscano, modifichino o trasferiscano l'usufrutto, il diritto di superficie, il diritto del concedente o dell'enfiteuta, la comunione su tali diritti, le servitù prediali, il diritto di uso, il diritto di abitazione, atti di rinuncia dei diritti precedenti, contratti di affrancazione del fondo enfiteutico, contratti di anticresi, contratti di locazione per una durata superiore a nove anni; contratti di società o di assicurazione con i quali si conferisce il godimento di beni immobili o di altri diritti reali immobiliari per un tempo eccedente i nove anni o per un tempo determinato; gli atti che costituiscono rendite perpetue o vitalizie, salve le disposizioni relative alle rendite di Stato; gli atti di divisione di beni immobili e di altri diritti reali immobiliari; le transazioni che hanno per oggetto controversie relative ai diritti di cui sopra.

Il nuovo comma 2 bis dell'art. 21 infatti prevede che "Salvo quanto previsto dall'articolo 25, le scritture private di cui all'articolo 1350, primo comma, numeri da 1 a 12, del codice civile, se fatte con documento informatico, sono sottoscritte, a pena di nullita', con firma elettronica qualificata o con firma digitale."

Di conseguenza possono essere sottoscritti con firma elettronica non qualificata (semplice o avanzata) che possa dare al documento su cui è apposta l'efficacia di scrittura privata unicamente, oltre gli atti non formali, solo gli altri atti indicati dalla legge per cui sia prevista la forma scritta ad substantiam (n. 13 dell'art. 1350 c.c.). Tra questi ci sono i contratti bancari e di intermediazione mobiliare.

La titolarità della firma digitale è garantita dai "certificatori" (disciplinati dagli articoli 26-32): si tratta di soggetti con particolari requisiti di onorabilità, che potevano essere accreditati presso il Centro Nazionale per l'Informatica nella Pubblica Amministrazione (CNIPA), ora confluito in DigitPA (in tal caso vengono chiamati certificatori accreditati), che tengono registri delle chiavi pubbliche, presso i quali è possibile verificare la titolarità del firmatario di un documento elettronico. Fra le caratteristiche per svolgere l'attività di certificatore di firma elettronica vi è quella per cui occorre essere una società con capitale sociale non inferiore a quello richiesto per svolgere l'attività bancaria (2.000.000€, come una S.p.A). I certificatori non sono quindi soggetti singoli (come i notai), ma piuttosto grosse società (per esempio, un certificatore è la società Postecom (Poste Italiane)).

L'acquisizione di una coppia di chiavi (chiave privata, inserita nel dispositivo di firma sicuro, e chiave pubblica, inserita nel certificato) è a pagamento, nonostante il fatto che la firma (sia manuale che digitale) sia un mezzo legale per l'esercizio di diritti naturali della persona. La coppia di chiavi ha una scadenza temporale.

È fondamentale che il rilascio avvenga previa identificazione certa del firmatario da parte del certificatore perché sia certa l'associazione che il certificato effettua tra chiave pubblica e dati anagrafici del titolare della firma.

[modifica] Voci correlate

[modifica] Collegamenti esterni

Strumenti personali
Namespace
Varianti
Azioni
Navigazione
Comunità
Altre lingue