Doc Library
Main Topic

alberto bianchi
01/26/2001 06:01 PM


 
 


Subject:


FAQ - enti certificatori, chiave pubblica/privata, firma digitale ...


Category:


Certification

.

Originator

Reviewers


Review Options

alberto bianchi



Type of review:
One reviewer at a time


Time Limit Options:
No time limit for each review


Notify originator after:
final reviewer

Che cos'è la crittografia a chiave pubblica?


Si basa sui principi enunciati per la prima volta dai crittografi americani Diffie e Hellman. La crittografia asimmetrica, conosciuta anche come crittografia a coppia di chiavi, crittografia a chiave pubblica/privata o anche solo crittografia a chiave pubblica è un tipo di crittografia dove, come si evince dal nome, ad ogni attore coinvolto è associata una coppia di chiavi fra loro correlate:

L'idea base della crittografia con coppia di chiavi diviene più chiara se si usa un'analogia postale, in cui il mittente è Alice ed il destinatario Bob, i lucchetti fanno le veci delle chiavi pubbliche e le chiavi recitano la parte delle chiavi private:

  1. Alice chiede a Bob di spedirle il suo lucchetto, già aperto. La chiave dello stesso verrà però gelosamente conservata da Bob.

  2. Alice riceve il lucchetto e, con esso, chiude il pacco e lo spedisce a Bob.

  3. Bob riceve il pacco e può aprirlo con la chiave di cui è l'unico proprietario.

Se adesso Bob volesse mandare un altro pacco ad Alice, dovrebbe farlo chiudendolo con il lucchetto di Alice (che lei dovrebbe aver preventivamente dato a Bob) che solo lei potrebbe aprire.

Si può notare come per mettere in sicurezza il contenuto dei pacchi ci sia bisogno del lucchetto del destinatario, mentre per aprirli viene usata esclusivamente la propria chiave segreta, rendendo l'intero processo di cifratura/decifratura asimmetrico (una chiave per cifrare ed una differente per decifrare). Chiunque intercettasse il lucchetto (aperto) o il messaggio chiuso con il lucchetto non potrebbe leggerne il contenuto poiché non ha la chiave. Uno dei vantaggi della crittografia asimmetrica sta nel fatto che le chiavi pubbliche possono essere scambiate anche utilizzando un mezzo insicuro, come Internet. Nella crittografia simmetrica invece, che basa la sicurezza del sistema sulla segretezza della chiave di codifica utilizzata, si rende necessario utilizzare un canale sicuro per la trasmissione della chiave, poiché l'intercettazione della stessa, da parte di terzi, vanificherebbe la sicurezza del sistema stesso.

Quindi conoscendo un elemento della coppia, non è tuttavia possibile dedurre l'elemento corrispondente. Questa tecnologia consente sia di cifrare i documenti (confidenzialità) che di firmarli (autenticità). Il titolare della coppia di chiavi, in quanto unico soggetto a conoscenza della chiave privata, è il solo in grado di decifrare un documento a lui destinato, o di firmare un documento Tutti gli altri soggetti, in quanto possono liberamente venire a conoscenza della chiave pubblica del titolare della coppia, sono in grado di verificare la firma del predetto titolare, o di inviargli dei documento confidenziali.



Che cos'è una chiave privata?

E' l'elemento della coppia di chiavi destinato ad essere conosciuto dal solo soggetto titolare, mediante il quale si appone la firma digitale sul documento informatico, o si decifra il documento informatico in precedenza cifrato tramite la chiave pubblica corrispondente.

Che cos'è una chiave pubblica?

l'elemento della coppia di chiavi destinato ad essere reso pubblico, e con il quale si verifica la firma digitale del titolare della coppia di chiavi, o si cifrano i documenti informatici da trasmettere al titolare della coppia delle predette chiavi.

Cifratura asimmetrica VS simmetrica - differenze e analogie.

Se pensiamo ad un analogia per la cifratura con il concetto di lucchetto e chiave che lo apre, possiamo illustrare la crittografia asimmetrica nel seguente modo:
Chiunque puo' chiudere un lucchetto facendo scattare l'anello metallico, ma solo chi ha la chiave puo' aprirlo. La chiusura e' alla portata di tutti (come la cifratura), mentre l'apertura e' privata (come la decifrazione) e possibile solo al possessore della chiave. Le semplici nozioni relative alla chiusura del lucchetto non dicono nulla su come aprirlo.
Sviluppando l'analogia, immaginate che Anna progetti un lucchetto e la relativa chiave. Ella potrebbe custodire gelosamente quest'ultima e fare costruire migliaia di copie del lucchetto da distribuire a uffici postali di tutto il mondo. Se Luca vuole inviarle un messaggio riservato, lo colloca in una scatola metallica, si reca all'ufficio postale, chiede "uno dei lucchetti di Anna" e chiude la scatola. Da questo momento il contenuto e' inaccessibile anche a lui , ma quando Anna ricevera' la scatola, l'aprira' senza difficolta' con la chiave, che e' unica.
L'analogia con il lucchetto puo' far pensare che il sistema concepito da Diffie sia semplice, ma trovare una funzione matematica che si comporti come un lucchetto e si possa incorporare in un procedimento crittografico maneggevole, e' tutt'altro che banale.
Allinizio la cifratura asimmetrica era solo un'idea geniale; per trasformarla in un'invenzione dotata di utilita' pratica bisognava scoprire una funzione matematica appropriata.
Diffie rivolse l'attenzione ad un particolare tipo di funzione unidirezionale, che puo' essere invertita solo in circostance eccezionali. Nel sistema asimmetrico di Diffie, luca puo' crittare il messaggio con la chiave pubblica di Anna, ma non e' in grado di decrittarlo: in sostanza questo e' il comportamento di una funzione unidirezionale. Anna pero' deve essere in grado di decifrarlo e deve poterlo fare per mezzo di un'informazione riservata. In altre parole dev'essere in possesso di dati che rendono bidirezionale una funzione che normalmente non lo e'.
L'analogia con il lucchetto resta valida: chiudere un lucchetto equivale ad una funzione unidirezionale; il risultato e' irreversibile a meno di possedere qualcosa di speciale (la chiave) che rende bidirezionale il funzionamento del lucchetto. Cosi' esso potra' passare facilmente da aperto a chiuso e viceversa.

Il principio generale della crittografia asimmetrica ha una solida base matematica che lo giustifica; tale base, riassunta e semplificata all'estremo, si fonda sull'uso di un problema complesso, ovvero un'operazione matematica semplice da eseguire ma difficile da invertire, cioè dal cui risultato è difficile risalire agli argomenti di partenza. L'esempio classico è il problema della fattorizzazione di un numero (trovare i numeri primi che lo producono se moltiplicati tra loro, ad esempio è facile moltiplicare 17*23 ottenendo 391, ben più difficile è per esempio fattorizzare il numero 377 nei fattori primi 13 e 29) usata nel primo e più famoso sistema crittografico a chiave pubblica: RSA. Le conoscenze di matematica pura sviluppate dall'uomo negli ultimi secoli hanno reso sempre più efficiente fattorizzare, ma nessuno è mai riuscito a far fare quel "salto" che porta il problema da complesso a non essere più complesso; il problema diventa quindi intrattabile per numeri oltre una certa dimensione.

Attualmente, per la crittografia RSA vengono considerati "sicuri" numeri che in base 10 hanno almeno 300 cifre, il che significa chiavi di 1024 bit e oltre.

Altro esempio di problema complesso è il logaritmo discreto, usato nella nascente crittografia ellittica.

La crittografia è comunque una scienza basata sulle probabilità: i problemi complessi vengono considerati complessi basandosi sul fatto che centinaia di anni di studio non hanno saputo risolverli in modo rapido (ricordiamoci che c'è sempre almeno un modo "non rapido" per risolvere un problema: provare a fare l'operazione diretta con tutti i numeri fino alla dimensione necessaria; questo tipo di soluzione in genere non è neanche contemplata in quanto il tempo necessario aumenta vertiginosamente con la dimensione dei numeri usati), ma nessuno dei problemi usati in crittografia ha un teorema che ne dimostra la complessità (l'unico sistema crittografico dimostrato è lo One Time Pad, ma sfortunatamente è un sistema simmetrico - ovvero non a chiave pubblica - ed estremamente scomodo da usare).

ESEMPI PRATICI

Facendo un esempio pratico, se Alice vuole spedire un messaggio a Bob e non vuole che altri all'infuori di Bob possano leggerlo, Alice cercherà sull'elenco la chiave pubblica di Bob e con quella potrà cifrare il messaggio. Essendo Bob l'unico a possedere la chiave inversa, sarà anche l'unico a poter decifrare il messaggio, che rimarrà così segreto per tutti gli altri, compresa Alice, che non disponendo della chiave inversa non sarà in grado di decifrare il messaggio da lei stessa creato. Ovviamente il successo di questo sistema si basa sull'assoluta necessità che Bob sia l'unico ad essere in possesso della chiave inversa. In caso contrario, avendo entrambe le chiavi, chiunque potrebbe decifrare agevolmente il messaggio.

Con questo metodo di cifratura è possibile anche garantire la provenienza di un messaggio. Riprendiamo l'esempio precedente: Alice questa volta, prima di cifrare il messaggio usando la chiave pubblica di Bob, lo cifrerà usando la propria chiave inversa e solo in un secondo momento lo ri-crittograferà utilizzando la chiave pubblica di Bob. Quando Bob riceverà il messaggio e lo decifrerà usando la propria chiave inversa, otterrà ancora un messaggio crittografato. Quel dato messaggio necessiterà poi della chiave pubblica di Alice per essere decifrato, garantendo in questo modo che il messaggio è stato spedito solo e soltanto da Alice, unica a possedere la chiave inversa con la quale era stato crittografato il messaggio.

Più semplicemente, utilizzando questo metodo di cifratura, Alice può mandare messaggi a tutti, garantendo la provenienza. Infatti crittografando il messaggio con la propria chiave inversa, chiunque sarà in grado di leggere il messaggio, decrittandolo con la sua chiave pubblica, assicurandosi in tal modo che il mittente sia proprio Alice.

IMPLEMENTAZIONE TRAMITE RSA

Per semplificare il funzionamento immaginiamo che A debba spedire un messaggio segreto a B. Occorrono i seguenti passaggi:

  1. B sceglie due numeri primi molto grandi (per esempio da 300 cifre) e li moltiplica con il suo computer (impiegando meno di un secondo).

  2. B invia il numero che ha ottenuto ad A. Chiunque può vedere questo numero.

  3. A usa questo numero per cifrare il messaggio

  4. A manda il messaggio cifrato a B, chiunque può vederlo ma non decifrarlo

  5. B riceve il messaggio e utilizzando i due fattori primi che solo lui conosceva lo decifra.

A e B hanno impiegato pochi secondi a cifrare e decifrare, ma chiunque avesse intercettato le loro comunicazioni impiegherebbe troppo tempo per scoprire i due fattori primi, con cui si può decifrare il messaggio.

In realtà questo sistema non è così semplice, come si può notare dai calcoli descritti nel paragrafo successivo, e per trasmettere grandi quantità di dati occorre tanto tempo, quindi A e B si scambieranno con questo sistema una chiave segreta (che non occupa molto spazio), che poi useranno per comunicare tra loro usando un sistema a crittografia simmetrica, più semplice e veloce.



Che cos'è la firma digitale?

La firma digitale è l'equivalente informatico di una tradizionale firma apposta su carta. La sua funzione è quella di attestare la validità, la veridicità e la paternità di un documento, inteso in senso lato, come una lettera, un atto, un messaggio o, in generale, qualunque file di dati (testo, immagini, musica, ecc.). Come tale, non va confusa con altri oggetti omofoni definiti genericamente "elettronici", come ad esempio la firma autografa scannerizzata e conservata come immagine.

La firma digitale è infatti il risultato di una procedura informatica basata su un sistema di codifica crittografica a chiavi asimmetriche (una pubblica e una privata), che consente:

Esempio pratico:

Facendo un esempio pratico, se Alice vuole spedire un messaggio a Bob e non vuole che altri all'infuori di Bob possano leggerlo, Alice cercherà sull'elenco la chiave pubblica di Bob e con quella potrà cifrare il messaggio. Essendo Bob l'unico a possedere la chiave inversa, sarà anche l'unico a poter decifrare il messaggio, che rimarrà così segreto per tutti gli altri, compresa Alice, che non disponendo della chiave inversa non sarà in grado di decifrare il messaggio da lei stessa creato. Ovviamente il successo di questo sistema si basa sull'assoluta necessità che Bob sia l'unico ad essere in possesso della chiave inversa. In caso contrario, avendo entrambe le chiavi, chiunque potrebbe decifrare agevolmente il messaggio.

Con questo metodo di cifratura è possibile anche garantire la provenienza di un messaggio. Riprendiamo l'esempio precedente: Alice questa volta, prima di cifrare il messaggio usando la chiave pubblica di Bob, lo cifrerà usando la propria chiave inversa e solo in un secondo momento lo ri-crittograferà utilizzando la chiave pubblica di Bob. Quando Bob riceverà il messaggio e lo decifrerà usando la propria chiave inversa, otterrà ancora un messaggio crittografato. Quel dato messaggio necessiterà poi della chiave pubblica di Alice per essere decifrato, garantendo in questo modo che il messaggio è stato spedito solo e soltanto da Alice, unica a possedere la chiave inversa con la quale era stato crittografato il messaggio.

Più semplicemente, utilizzando questo metodo di cifratura, Alice può mandare messaggi a tutti, garantendo la provenienza. Infatti crittografando il messaggio con la propria chiave inversa, chiunque sarà in grado di leggere il messaggio, decrittandolo con la sua chiave pubblica, assicurandosi in tal modo che il mittente sia proprio Alice.


Come si firma un documento informatico?

Dal punto di vista operativo, l'utente deve avere un dispositivo di firma sicuro, rilasciato da un Ente Certificatore. Si tratta di una smart card, ovvero una carta a microprocessore personalizzata e dotata di codice segreto. Utilizzando la sua carta, attraverso gli appositi strumenti hardware e software, l'utente è in grado di apporre la propria firma digitale su un qualsiasi documento informatico. La firma risulterà indissolubilmente legata da un lato al soggetto sottoscrittore e dall'altro al testo sottoscritto.
Il destinatario del documento, mediante il proprio sistema informatico, ha la possibilità di verificare l'identità del sottoscrittore, l'integrità del documento e la data e ora della sua generazione.

Che cos'è un certificato digitale?

Mentre la crittografia a chiave pubblica garantisce confidenzialità delle comunicazioni, e la firma digitale assicura l'integrità e la paternità di un documento, in un mondo di relazioni virtuali, quale quello di Internet, non c'è a priori alcuna garanzia che il nostro interlocutore sia effettivamente chi afferma di essere. La garanzia viene allora fornita da una terza parte fidata, che certifica la chiave pubblica del titolare della coppia di chiavi di crittografia.
Pertanto:
Un certificato personale di chiave pubblica X.509 dichiara la corrispondenza fra una persona fisica e la propria chiave pubblica di crittografia. E' un documento di identità nel mondo digitale, che può essere paragonato a ciò che nel mondo reale è rappresentato dalla carta di identità o dal passaporto.
Il legame viene garantito (firmato) da un ente emittente (Autorità di Certificazione). Nel certificato compare l'identificativo del soggetto che viene certificato, la sua chiave pubblica di crittografia, alcune altre informazioni, quali la validità temporale del certificato stesso e la firma digitale dell'Autorità.
Quando l'entità soggetta alla certificazione (Soggetto certificato) e l'ente certificatore (l'Autorità di certificazione) coincidono, il certificato prende il nome di certificato root. Esso contiene la chiave pubblica dell'autorità ed è firmato con la chiave privata di questa. Questo tipo di certificato, che sta alla base dell'intero sistema, può essere verificato attraverso la propria impronta (fingerprint) che verrà pubblicata anche al di fuori del sistema telematico.
 

Che cos'è un Ente di certificazione?

Nello scenario delineato occorre garantire l'identità dei soggetti che utilizzano la firma digitale, fornire protezione nei confronti di possibili danni derivanti da un esercizio non adeguato delle attività connesse, assicurare la solidità e sicurezza dei sistemi operativi e della struttura organizzativa. Questo rende necessario ricorrere all'intervento delle cosiddette terze parti fidate, cioè soggetti terzi che si trovano in posizione di neutralità rispetto agli utilizzatori della firma digitale: sono quelli che la legge italiana definisce "Certificatori", mentre negli Stati Uniti sono detti "Autorità di Certificazione" (Certification Authority e nell'uso corrente CA).
 

Che cosa fa un Ente di certificazione?

I Certificatori svolgono, tra gli altri, i seguenti compiti fondamentali:
verificano ed attestano, emettendo un apposito certificato digitale, l'identità del titolare ed eventualmente la veridicità di una serie di altre informazioni;
stabiliscono il termine di scadenza dei certificati;
pubblicano il certificato e la chiave pubblica, normalmente su rete, in modo tale che gli interessati possano avere la sicurezza dell'avvenuta certificazione;
ricevono la segnalazione di eventuali smarrimenti, furti, cancellazioni, divulgazioni improprie di chiavi private e pubblicano quindi la lista dei certificati revocati o sospesi in conseguenza di tali fatti.
 

Come si diventa Ente di certificazione?

La legge stabilisce precisi requisiti (giuridici, di onorabilità in capo ai rappresentanti legali e ai responsabili dell'amministrazione, di competenza ed esperienza dei responsabili tecnici, nonché di conformità di processi e prodotti informatici a standard riconosciuti di qualità) per l'esercizio dell'attività di certificazione, ai fini della validità legale della firma digitale. E' richiesto inoltre che il soggetto certificatore sia incluso in un elenco pubblico, consultabile telematicamente, predisposto, tenuto ed aggiornato a cura dell'Autorità per l'Informatica nella Pubblica Amministrazione (AIPA).
 

Qual è il valore della firma digitale?

I presupposti giuridici che rendono possibili transazioni legali fatte grazie a queste tecnologie, si fondano soprattutto sull'articolo 15 comma 2 della legge 15 marzo 1997 n° 59, la cosiddetta "Bassanini 1", che recita:
"Gli atti, dati e documenti formati dalla pubblica amministrazione e dai privati con strumenti informatici o telematici, i contratti stipulati nelle medesime forme, nonché la loro archiviazione e trasmissione con strumenti informatici sono validi e rilevanti a tutti gli effetti di legge; i criteri di applicazione del presente comma sono stabiliti, per la pubblica amministrazione e per i privati, con specifici regolamenti da emanare, entro centottanta giorni dalla data di entrata in vigore della presente legge ai sensi dell'articolo 17, comma 2 della legge 23 agosto 1988 n. 400. Gli schemi dei regolamenti sono trasmessi alla Camera dei Deputati e al Senato della Repubblica per l'acquisizione del parere delle competenti Commissioni."
Il relativo regolamento di attuazione ( DPR n. 513/97 ), che parla esplicitamente di firma digitale, e di autorità di certificazione, peraltro già completato da alcuni mesi, è stato pubblicato in Gazzetta Ufficiale lo scorso 13 marzo 1998.

Sono state pubblicate, inoltre, da parte dell'AIPA, le regole tecniche che definiscono con precisione gli standard tecnologici da adottare (DPCM 8 febbraio 1999).

Quale puo' essere l'utilizzo della firma digitale?

La firma digitale può essere apposta su qualunque documento informatico. Pertanto, alcune applicazioni potrebbero essere le seguenti:
comunicazioni ufficiali con le amministrazioni pubbliche
risposte a bandi e gare pubbliche
moduli di richiesta di vario genere
dichiarazioni fiscali e di altro tipo
trasmissione di documenti legali
rapporti contrattuali su reti aperte (Internet)
fornitura elettronica di beni e servizi
transazioni finanziarie
identificazione e/o autorizzazione
gestione di attività in gruppi/sistemi chiusi o a partecipazione controllata
gruppi di lavoro e di ricerca
transazioni personali.
 
 


All Documents   By Author   By Category   By Alternate Name   Review Status   Help