Tesi laurea triennale Ingegneria Informatica - Francesco Bianchi
Tesi Triennale - X509 e PGP
1. UNIVERSITÀ CA’ FOSARI – VENEZIA
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica
Tesi di Laurea Triennale
Laureando: Fabio Pustetto
POSTA ELETTRONICA SICURA:
X.509 E PGP
Relatore: Chiar.mo prof. Riccardo Focardi
Anno Accademico 2003/2004
2. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
“Se la segretezza è fuorilegge,
solamente i fuorilegge avranno segretezza”
Philip R. Zimmermann
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 2 di 118
3. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
SOMMARIO
SOMMARIO ............................................................................ 3
PREFAZIONE.......................................................................... 5
1 INTRODUZIONE .............................................................. 6
1.1 Contesto normativo in Europa ......................................... 8
2 REQUISITI..................................................................... 14
2.1 Autenticazione ............................................................. 16
2.2 Riservatezza/Segretezza ............................................... 16
2.3 Integrità ...................................................................... 17
2.4 Non ripudio.................................................................. 18
3 TECNOLOGIE ................................................................. 19
3.1 Algoritmi crittografici simmetrici..................................... 22
3.2 Algoritmi crittografici asimmetrici ................................... 25
3.3 Accenni di crittoanalisi .................................................. 27
3.4 Hashing....................................................................... 32
3.5 Firma .......................................................................... 34
3.6 Come funziona in realtà ................................................ 35
4 GESTIONE DELLE CHIAVI.............................................. 37
4.1 Distribuzione di certificati .............................................. 39
4.1.1 Certificate Server ................................................... 39
4.1.2 Keyserver.............................................................. 40
4.2 Revoca di Certificati Digitali ........................................... 40
4.2.1 Certificate Revocation List (CRL) ............................. 41
4.2.2 Online Certificate Status Protocol (OCSP)................. 43
4.3 Public Key Infrastructure (PKI) ...................................... 43
4.4 Web of Trust (WoT) ..................................................... 49
4.4.1 Signing party: un esempio ...................................... 51
5 X.509 ............................................................................. 54
5.1 X.509 Certificate Format ............................................... 55
5.1.1 Standard PKCS ...................................................... 59
5.1.2 La versione 4......................................................... 61
5.2 Come si ottiene un nuovo certificato .............................. 61
5.3 Come si ottiene il certificato di un utente........................ 65
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 3 di 118
4. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
6 PGP................................................................................ 68
6.1 Chiavi in PGP ............................................................... 72
6.1.1 Key ID .................................................................. 73
6.1.2 Key Ring ............................................................... 73
6.2 Generazione messaggi .................................................. 74
6.3 Horizontal Trusting = fiducia ......................................... 76
6.3.1 Web of Trust in PGP............................................... 78
6.4 PGP certificate format ................................................... 81
7 IN PRATICA…................................................................ 83
7.1 Produrre un certificato X.509v3 ..................................... 84
7.1.1 Installare una PKI in Windows ................................ 86
7.1.2 Installare una PKI in Linux...................................... 88
7.2 Produrre un certificato PGP ........................................... 95
7.2.1 PGPkeys................................................................ 97
7.2.2 PGPmail ................................................................ 97
7.2.3 Esempio pratico ..................................................... 98
7.3 Confronto tra PGP e X.509 ............................................ 99
Appendice ..........................................................................104
Legenda delle notazioni usate nelle figure ............................104
Algoritmo di Diffie-Hellman .................................................104
Algoritmo RSA ...................................................................105
Comandi principali di OpenSSL ............................................106
Log emissione certificati .....................................................108
Glossario............................................................................111
Bibliografia ........................................................................115
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 4 di 118
5. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
PREFAZIONE
A fronte della rapida diffusione di tecnologie informatiche, dal
trattamento delle informazioni alle comunicazioni, pochi si
pongono il problema della gestione della sicurezza, nonostante
lo studio di tecniche procede alla stessa velocità con cui gli
intrusori riescono a violare le barriere.
Un semplice messaggio di e-mail è diventato oramai il mezzo
più diffuso di comunicare: è veloce, economico e consistente
ma è privo di alcuni requisiti fondamentali: non si è sicuri di chi
lo ha spedito, del contenuto originale del messaggio e della sua
riservatezza. Questo è certamente irrilevante per lo scambio di
barzellette tra colleghi, al contrario è fondamentale per
professionisti che investono tempo, denaro e sacrifici nella loro
professione, basata sulla comunicazione affidabile e sicura.
La firma digitale è l’equivalente elettronico di una tradizionale
firma apposta su carta. La sua funzione principale è perciò
quella di attestare validità, autenticità e integrità di un
documento. Si evita così che qualcuno possa intercettare e
manipolare un documento riservato, spacciandolo per
autentico. Dal punto di vista tecnico è una codifica crittografica
del documento.
Questo elaborato intende fornire le nozioni fondamentali sulle
attuali tecnologie per la sicurezza della posta elettronica e
intende investigare le due soluzioni più usate in nei diversi casi:
utente domestico e professionale (azienda, università, …).
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 5 di 118
6. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
1 INTRODUZIONE
“L’arte della guerra ci insegna a confidare non
sulla probabilità che il nemico non arriverà, ma
sulla nostra stessa preparazione a riceverli; non
sulla possibilità che essi non attaccheranno ma
sul fatto che noi abbiamo reso le nostre
postazioni inattaccabili”
The Art of War, Sun Tzu
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 6 di 118
7. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
L’avvento di reti “moderne” (Internet, Intranet) determina un
utilizzo di massa delle potenzialità di connessione client-server
al quale non è corrisposto un altrettanto rapido incremento
della sicurezza nel nuovo ambiente.
Il problema di Internet è che non si può mai con certezza
sapere con chi si sta parlando o a chi si stanno inviando
informazioni. Internet è totalmente anonima, almeno dal punto
di vista degli utenti finali, sebbene è necessario ricordare che le
autorità competenti hanno comunque i mezzi per identificare
con certezza utenti nella rete commettono degli illeciti.
Sicurezza nelle comunicazioni email significa poter richiedere
delle condizioni o vincoli.
Il mittente può richiedere quanto segue:
• I dati sono trasmessi alla persona voluta
o Se una spia li cattura gli deve essere impossibile
comprendere il testo
• I dati trasmessi non subiranno modifiche
o Se una spia riesce a catturare e modificare i dati,
ciò sarà segnalato a chi li riceve
• I dati trasmessi sono visti solo dal destinatario
o Solo il destinatario deve sapere in che modo poter
visualizzare il testo (decifrare)
• Il destinatario non può negare l’avvenuta ricezione del
messaggio inviato (servizio di notariato)
o La firma digitale autentica mittente, data e ora in
cui il messaggio è stato inviato
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 7 di 118
8. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Analogamente il destinatario può avere la necessità di
richiedere una o più delle seguenti condizioni:
• Il mittente è veramente quello dichiarato
o Chiunque può mandare email a nome falso; devo
poter riconoscere l’originale da un falso
• I dati ricevuti sono quelli effettivamente inviati
o Se il messaggio viene catturato e modificato da
una spia durante il tragitto, il destinatario deve
essere avvisato
• I dati ricevuti non sono stati catturati da terzi
o Nessuno deve poter interpretare il contenuto delle
nostre comunicazioni, anche se riesce a catturare
la nostra corrispondenza elettronica
• Il mittente non può negare l’invio del messaggio
o Avendo la certezza che il mittente è quello
dichiarato, non potrà disconoscere il contenuto di
email inviate
o Esempio: una grossa ditta fornisce via email un
preventivo per una gara d’appalto. Non potrà
rifiutarsi di praticare il prezzo stabilito, anche se
volutamente basso.
Altre esigenze analoghe possono preoccupare i soggetti
coinvolti, in funzione del valore che essi attribuiscono alle
informazioni trasmesse o ricevute e quindi richiedere misure di
sicurezza più o meno complesse.
1.1 Contesto normativo in Europa
L’Unione Europea, nel corso degli ultimi anni, si è impegnata sul
fronte delle nuove forme di comunicazione. Il Parlamento
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 8 di 118
9. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Europeo ha invitato gli Stati Membri e la Commissione Europea
a predisporre misure consistenti per assicurare l’integrità e
l’autenticità dei documenti trasmessi per via telematica.
Nell’autunno del 1997 la Commissione ha adottato una
Comunicazione rivolta al Parlamento Europeo, al Comitato
Economico e Sociale ed al Comitato delle Regioni, sollecitando
un disegno comune per la firma digitale e la crittografia,
strumenti ritenuti essenziali per una maggiore sicurezza del
commercio telematico.
Con una successiva Comunicazione si è richiesto al Parlamento
Europeo l’elaborazione di una direttiva che formuli un
riconoscimento, all’interno dell’Unione Europea, delle
sottoscrizioni elettroniche attraverso la definizione dei requisiti
essenziali per l’armonizzazione delle legislazioni degli Stati
membri, e determini i meccanismi di cooperazione con Paesi
terzi per un mutuo riconoscimento sulla base di accordi
bilaterali o multilaterali.
Molti paesi sono ancora ad una fase preparatoria dei lavori (così
il Regno Unito), altri, invece, hanno introdotto negli ordinamenti
interni alcune norme significative (Francia, Germania).
L'Italia è il primo paese europeo ad aver attribuito piena validità
giuridica ai documenti informatici grazie alla legge Bassanini ed
al ruolo svolto da AIPA (Autorità per l'Informatica nelle
Pubbliche Amministrazioni), ora CNIPA (Centro Nazionale per
l’Informatica nella Pubblica Amministrazione, [4]).
La materia della documentazione elettronica e della firma
digitale ha trovato una disciplina nell’ordinamento giuridico
italiano con il D.P.R. 10 novembre 1997, n. 513, “Regolamento
recante criteri e modalità per la formazione, l’archiviazione e la
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 9 di 118
10. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
trasmissione di documenti con strumenti informatici e
telematici, a norma dell’articolo 15, comma 2, della legge 15
marzo 1997, n.59”.
Il risultato, prodotto dalle norme del regolamento, è la piena
rilevanza giuridica della documentazione informatica e la sua
equiparazione alla tradizionale documentazione “cartacea”.
All’intenso valore giuridico della disciplina regolamentare non si
accompagna un equivalente valore pragmatico, in quanto, per
quest’ultimo, occorrerà attendere l’emanazione di ulteriori ed
indispensabili regolamenti tecnici di attuazione.
Successivamente all’emanazione di tali regolamenti, il D.P.R.
513 diventerà pienamente operativo.
Il regolamento si compone di tre capi.
Il primo di questi, dedicato ai principi generali, si apre con
l’enunciazione delle definizioni dei termini di carattere tecnico,
utilizzati nel corso della disciplina giuridica. Alla nozione di
documento informatico ed alla descrizione dei requisiti che lo
caratterizzano, segue la disciplina dell’atto informatico come
forma scritta e dell’efficacia probatoria ad esso attribuita e
quella della validità e rilevanza attribuita alla copia di atti e
documenti. Lo stesso capo si occupa (sommariamente) della
disciplina delle attività da compiersi per il rilascio delle chiavi
asimmetriche all’utente da parte dell’Autorità di certificazione,
nonché degli obblighi inerenti entrambe le parti.
Il secondo capo, rubricato “firma digitale”, si dedica alla validità
e rilevanza a tutti gli effetti di legge dei contratti stipulati con
strumenti informatici o per via telematica. L’attenzione è poi
rivolta ai criteri di conclusione del contratto e di notifica del
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 10 di 118
11. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
documento informatico, nonché alla segretezza della
corrispondenza trasmessa per via informatica ed alla possibilità
di effettuare pagamenti elettronici, come pure alla formazione
di libri e scritture contabili, a carattere obbligatorio, in formato
elettronico. Le successive disposizioni attengono
all’autenticazione della firma digitale, riconosciuta ai sensi
dell’art. 2703 cod. civ., ai criteri di validità e di applicazione
delle chiavi di cifratura della pubblica amministrazione. Il
secondo capo si chiude con la disciplina della firma digitale e
del documento informatico nella pubblica amministrazione.
Le norme di attuazione del regolamento sono contenute nel
capo terzo, il quale pone alle pubbliche amministrazioni dei
termini per l’adozione di piani di sviluppo e di realizzazione
nonché di un rapporto tra costi e benefici del recupero su
supporto informatico dei documenti e degli atti cartacei.
Il sistema che attribuisce al documento informatico con firma
digitale l’efficacia della scrittura privata (art.5) è così concepito:
un’Autorità di certificazione, consultata da un utente
interessato, descrive a quest’ultimo la procedura e concede il
know how per la “generazione” di una coppia di chiavi.
L’utente ha il dovere di custodire segretamente la propria
“chiave privata”, che utilizzerà per apporre la firma; tuttavia, è
data facoltà di depositare in forma segreta la chiave presso un
notaio (secondo la disciplina del testamento segreto).
La propria “chiave pubblica” verrà pubblicata in un registro
telematico da parte del certificatore. Quest’ultimo, ricevuta la
chiave pubblica dell’utente, emette un “certificato”, il quale
garantisce la corrispondenza biunivoca tra chiave pubblica,
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 11 di 118
12. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
necessaria per la verifica della firma, chiave privata e soggetto
titolare.
Il contenuto del certificato riguarda l’indicazione delle generalità
della persona, della corrispondente chiave pubblica e del
termine di scadenza (art. 1, h). La validità di tale certificato è
stabilita in una durata massima di tre anni, ma può essere
revocato, ossia perdere validità irretroattivamente, ovvero
sospeso per un periodo di tempo determinato.
Il regolamento si occupa di disciplinare i requisiti dei
certificatori, i quali hanno il delicato compito di assicurare la
corrispondenza, e quindi la titolarità, delle chiavi asimmetriche,
e di conseguenza della firma digitale. Con riferimento al settore
privato, per svolgere l’attività di certificatore occorre l’inclusione
in un apposito elenco pubblico tenuto dall’Autorità per
l’Informatica nella Pubblica Amministrazione (art. 8, comma 3).
Il regolamento contiene norme la cui incidenza sul diritto
sostanziale è estremamente rilevante, pur mancando
un’immediata applicabilità, rinviata a successive norme
tecniche. (tratto da [27], [5])
Per completezza, è utile sapere che il governo americano
impedisce l’esportazione di software di cifratura che utilizzi
chiavi di lunghezza tale da garantire la resistenza del cifrario
per un periodo relativamente lungo. Un’analoga limitazione non
si applica agli algoritmi di generazione e verifica di firme
elettroniche a patto che questi non siano modificabili in modo
da renderli utilizzabili per la cifratura.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 12 di 118
13. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Per questo motivo PGP è stato coinvolto in varie controversie:
nato come tool disponibile per tutti gratuitamente, il governo
degli USA ha dichiarato che la possibilità da parte degli stranieri
di ottenerlo, costituisce una violazione delle leggi riguardanti
l’esportazione di armi. Per aggirare tali restrizioni, le ultime
versioni sono prodotte fuori dagli Stati Uniti e con versioni
diversificate.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 13 di 118
14. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
2 REQUISITI
“Ogni Egiziano riceve due nomi che sono
conosciuti rispettivamente come il vero nome e il
giusto nome, oppure il grande nome e il piccolo
nome; mentre il giusto o piccolo nome sono resi
pubblici, il vero o grande nome sembrano esser
stati nascosti attentamente”
The Golden Bought, Sir James George Frazer
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 14 di 118
15. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Come anticipato, la certificazione elettronica consiste
nell’utilizzare tecniche che consentano di attribuire a documenti
elettronici la stessa validità degli analoghi cartacei e, se
possibile, maggior sicurezza: mentre un documento cartaceo
può essere manomesso e spacciato per autentico, con la
certificazione elettronica ogni alterazione viene evidenziata, sia
esso un documento testuale o un qualsiasi file binario.
I nemici più comuni contro cui si vuole predisporre adeguate
contromisure sono riassunte nella successiva tabella (da [39]):
Avversario Scopo
Studente Divertirsi curiosando nella posta altrui
Hacker Verificare i sistemi di sicurezza; rubare dati
Venditore Pretendere di rappresentare tutta Europa
Scoprire il piano strategico di mercato di un
Uomo d’affari
concorrente
Ex dipendente Vendicarsi per esser stato licenziato
Cassiere Appropriarsi del denaro di una società
Negare una promessa fatta a un acquirente
Agente di cambio
per email
Truffatore Rubare numeri di carta di credito
Spia Scoprire la forza militare di un nemico
Terrorista Rubare segreti per una guerra batteriologica
Per proteggere, cioè rendere sicuro, si intende predisporre
contromisure di protezione per i rischi specifici.
Rischio Requisito
Frode Autenticazione
Intercettazioni non autorizzata Riservatezza/Segretezza
Modifica dati Integrità
Diniego Non ripudio
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 15 di 118
16. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Un testo scritto al computer è modificabile per definizione e se
vogliamo usarlo come documento inoppugnabile dobbiamo
renderlo “sicuro”, ossia non più modificabile senza che tale
modifica venga segnalata. I decreti Europei ci impongono di
ricorre alla cifratura utilizzando la tecnica delle coppie di chiavi,
una segreta ed una pubblica, con varie attenzioni.
2.1 Autenticazione
L’autenticazione è il procedimento utilizzato per verificare
l’identità dell’utente o dell’autore di un documento. Questa
verifica richiede lo scambio di informazioni segrete tra l’utente e
l’applicazione che vuole utilizzare. Nel caso di email
l’autenticazione ci assicura che il documento non sia un falso e
che il mittente è proprio chi dice di essere. A tale scopo la
firma elettronica accoda al testo un riassunto firmato con la
chiave privata del mittente.
I certificati X.509, illustrati nel corso del documento,
consentono anche l’autenticazione tra Client e Server in una
qualsiasi interazione che deve svolgersi in modo sicuro (es
scambio di dati sensibili o Web Server autenticati), attraverso il
protocollo SSL/https.
2.2 Riservatezza/Segretezza
La segretezza consente ad utenti autorizzati di interpretare
informazioni riservate negandole a tutti gli altri. Tali
informazioni devono essere protette sia durante le operazioni di
memorizzazione sia durante la trasmissione in rete. I dati
memorizzati possono essere protetti con codifica o controllo di
accesso. Il controllo di accesso consente all’utente di utilizzare
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 16 di 118
17. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
la propria autorizzazione per accedere alle risorse disponibili;
l’accesso viene limitato solo agli utenti autenticati ed autorizzati.
Per la trasmissione in rete devono essere necessariamente
codificate. La codifica richiede l’utilizzo di una chiave che
consenta solo al legittimo destinatario di decifrare le
informazioni.
2.3 Integrità
Come un sigillo protegge il documento contenuto in una busta,
la certificazione dovrà garantire la protezione delle informazioni
dalle eventuali modifiche apportate da altri utenti non
autorizzati.
Gli algoritmi, perciò si occuperanno di applicare ai dati una
funzione hash non invertibile. Il risultato della funzione,
chiamato valore di controllo o impronta, viene cifrato e
accodato ai dati. Il destinatario, per assicurarsi che i dati
ricevuti non siano stati modificati, esegue la stessa funzione di
hash del mittente sui dati e confronta il risultato ottenuto con il
valore di controllo accodato ai dati. Se i dati non coincidono
significa che sono stati modificati ed il destinatario può non
accettarli.
L’intruso che riuscisse ad intercettare i dati durante la
trasmissione potrebbe modificarli con successo solamente
conoscendo la chiave di codifica applicata con il secondo
passaggio.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 17 di 118
18. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
2.4 Non ripudio
Per qualsiasi società è importante poter stipulare accordi
vincolanti e legalmente validi anche tramite Internet. Fornitori e
acquirenti esigono la certezza che un contratto stipulato non
possa essere negato da nessuna delle due parti.
Se da un lato chi invia non può disconoscere la paternità di un
documento firmato digitalmente, dall’altro, chi riceve non può
negarne l’esistenza. Entrambi si possono appellare alle varie
informazioni che si integrano nella firma digitale quali
potrebbero essere la data e l’ora esatta di invio del documento.
La pubblica amministrazione, per ogni Area organizzativa, deve:
• mantenere un registro informatico;
• istituire un servizio e nominare un responsabile;
• assicurare che venga effettuata la registrazione di
protocollo dei documenti scambiati con soggetti esterni,
come da Dpr 445/2000 (che contiene l’ex Dpr 428/98 e
l’ex Dpr 513/97).
Solo così possono garantire la non ripudiabilità di un documento
informatico.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 18 di 118
19. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
3 TECNOLOGIE
“Storicamente sono stati quattro i gruppi di
persone che hanno dato il loro contributo all’arte
della crittografia: militari, corpo diplomatico,
scrittori di diari e amanti …”
Andrew S. Tanenbaum
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 19 di 118
20. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Scopo di questo elaborato è analizzare le tecniche per
proteggere le comunicazioni di informazioni tra elaboratori
connessi in rete. Il modello di riferimento per reti di computer è
ISO-OSI (Open System Interconnection) dell’International
Standard Organization. Si compone di 7 livelli: fisico,
collegamento dati, rete, trasporto, sessione, presentazione,
applicazione. Per ognuno di questi livelli esistono tecnologie e
procedure, anche estreme, per rendere sicure le comunicazioni
e assieme partecipano al fine. Alcune proposte sono riassunte
da [39]:
Livello Procedure
in ambito militare le dorsali più critiche vengono
Fisico racchiuse in condotte sigillate contenenti gas
Argo ad alta pressione (un po’ drastico, in realtà)
su una rete punto a punto è possibile codificare
ogni pacchetto appena lascia una macchina e
decodificarlo appena arriva a destinazione,
Data Link lasciando all’oscuro i livelli superiori. Questa
soluzione fallisce se nel tragitto si attraversano
router: essi infatti devono decodificare i pacchetti
rendendoli vulnerabili agli attacchi
è possibile installare un firewall per accettare o
Rete
scartare pacchetti
è possibile codificare l’intera connessione da un
Trasporto
capo all’altro (da processo a processo)
Vari software e algoritmi. Solo in questo livello è
Applicazione
possibile garantire non ripudio e autenticazione
La tecnologia principale su cui si basano tutte le applicazioni
inerenti alla sicurezza è la “crittografia”. Con questo termine si
intende la tecnica per trasformare una sequenza di dati in
chiaro in un'altra sequenza apparentemente incomprensibile:
proteggere i dati originali rendendoli segreti. Solamente le
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 20 di 118
21. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
persone autorizzate a conoscere quei dati possono operare il
processo inverso, poichè solo loro posseggono la chiave per
decifrarli.
La crittografia classica è basata su 2 tipi di algoritmi: a chiave
simmetrica (o segreta) e a chiave asimmetrica (o pubblica).
I primi sono i più semplici e veloci. Si occupano della vera e
propria crittografia del messaggio, i secondi stati sviluppati per
ovviare alle due più grandi lacune degli algoritmi simmetrici: il
problema della trasmissione della chiave utilizzata e del numero
di chiavi necessarie tra coppie di utenti. A dire la verità sono
abbastanza complessi, ma fondamentali per tutte le recenti
applicazioni riguardanti la sicurezza online.
cifratura decifratura
testo originale testo cifrato testo in chiaro
Un algoritmo crittografico
• Lavora su una sequenza di dati iniziale da crittografare
(testo in chiaro);
• Genera una seconda sequenza contenente i dati
crittografati (testo cifrato);
• Basa il suo lavoro su una o più chiavi.
La seconda tecnologia è detta hashing. Basandosi su una
sequenza di dati potenzialmente infinita, consente di generarne
un'altra, molto più piccola e di dimensione fissa,
“rappresentativa” del contenuto della sequenza iniziale, detta
hash, digest, riassunto o impronta.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 21 di 118
22. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Utilizzandole entrambe è possibile realizzare firma digitale e
crittografia delle email, ma anche applicazioni come trasmissioni
dati crittografati con controllo degli errori, siti web sicuri (SSL),
identificazione delle persone e altro ancora.
3.1 Algoritmi crittografici simmetrici
Questi tipi di algoritmi si basano sulla conoscenza comune e
assolutamente riservata tra mittente e destinatario di una
chiave. Spesso l’algoritmo di codifica è conosciuto, secondo il
principio di Kerckhoffs: “La sicurezza di un crittosistema non
deve dipendere dalla segretezza dell’algoritmo usato, ma solo
dalla segretezza della chiave”.
Affinché gli estranei non riescano a comprendere il documento,
potremmo sostituire ogni lettera nel documento con una
successiva nell'alfabeto. Questo tipo di cifrario è detto “a
sostituzione”. Uno dei primi esempi di utilizzo è attribuito a
Cesare, che usava comunicare con i suoi legionari trasponendo
di 3 lettere l’intero testo. In questo modo:
a b c d e f g h i l m n o p q r s t u v z
D E F G H I L M N O P Q R S T U V Z A B C
Con questo cifrario, se un nemico avesse ricevuto il messaggio
IALLN SUNPD GHO ZUDPRQZR
non avrebbe potuto coglierne il significato. Un Romano, invece
lo avrebbe tradotto facilmente in
fuggi prima del tramonto
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 22 di 118
23. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Solo il destinatario reale dovrà essere in grado di decifrarla,
poichè è a conoscenza di come è stata trasformata la sequenza
originale. La chiave per decifrare il messaggio è appunto sapere
che ogni lettera è stata trasposta circolarmente di 3 posti
nell'alfabeto. Per quanto semplice, questo algoritmo può essere
considerato un algoritmo crittografico a chiave segreta.
Lo stesso algoritmo, lavorando sugli stessi dati, avrebbe portato
a sequenze cifrate diverse in base alla chiave utilizzata: +1
(successive), -1 (precedenti), +2 (successive delle successive),
ecc... In questo algoritmo la chiave è rappresentata da un
numero intero.
Per decodificare il documento cifrato si utilizza un algoritmo che
funziona al contrario, data una sequenza di dati e una chiave.
La chiave utilizzata è la stessa che ha utilizzato l'algoritmo
iniziale per cifrare i dati.
cifratura decifratura
testo originale testo cifrato testo in chiaro
Con un algoritmo di questo tipo e una chiave così banale, si
potrebbe provare a decifrarlo provando con tutte le 26 (il
numero delle lettere nell’alfabeto inglese) chiavi possibili: non ci
vuole molto a provarle tutte.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 23 di 118
24. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Potremmo allora pensare di sostituire ogni lettera con un’altra
con distanza casuale secondo una funzione stabilita. Le possibili
chiavi sono ora una permutazione sulle 26 lettere dell’alfabeto:
26!≈4*1026 ma con le attuali tecniche (analisi della frequenza
delle lettere) la crittoanalisi non è molto complessa.
In realtà gli algoritmi utilizzati sono ben altri e le chiavi che
utilizzano non sono numeri interi come nel nostro esempio ma
sequenze di bit.
Un tipico algoritmo di crittografia è RC2 con chiavi da 40 bit.
Tutte le possibili chiavi che si possono ottenere sono 240, circa
1012. Ci sono algoritmi che lavorano con chiavi da 168 bit, come
il Triple-DES: in questo caso il numero di chiavi possibili ha ben
51 cifre. Si è calcolato che, con i computer più potenti realizzati
al momento, il tempo necessario per provarle tutte è maggiore
del tempo che rimane al Sole prima di spegnersi. (cit. [1])
La debolezza di questo algoritmo sta nella necessità di dover
trasmettere la chiave segreta in chiaro e nell’uso ripetuto della
stessa: se una spia non ha intercettato la chiave durante la
trasmissione, ha comunque molto tempo per poterla trovare.
La riservatezza del messaggio si basa sul fatto che la chiave
segreta è stata scambiata in un momento diverso rispetto al
messaggio e che questa non è stata intercettata.
Con n (grande) destinatari, avere una chiave segreta per
ognuno di essi è impensabile, nell’ordine di O(n2), così come
averne una condivisa tra più utenti renderebbe inutile la
cifratura. A tale scopo sono stati realizzati gli algoritmi
crittografici a chiave asimmetrica, o pubblica.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 24 di 118
25. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
3.2 Algoritmi crittografici asimmetrici
Pubblicati per la prima volta su “Le Scienze” nel 1976 da
Whitfield Diffie e Martin Hellman, gli algoritmi a chiave pubblica
si basano su una coppia di chiavi: pubblica e privata. La chiave
privata non viene mai scambiata mentre quella pubblica è nel
nostro interesse diffonderla. Quello che si cifra con l’una lo si
decifra con l’altra; per cifrare un testo si utilizza la chiave
pubblica del destinatario, per firmare quella privata del
mittente. Nel caso di cifratura:
Algoritmo asimmetrico Algoritmo simmetrico
Creazione il destinatario genera una il destinatario genera una
chiavi coppia di chiavi, KU e KR. chiave.
Invio il destinatario invia o pubblica il destinatario invia la chiave
chiavi la chiave KU al mittente per al mittente per crittografare i
crittografare i dati. dati.
Crittografia il mittente utilizza la chiave il mittente utilizza la chiave
dati KU con un algoritmo appena ricevuta per
asimmetrico per crittografare crittografare il messaggio da
il messaggio da inviare. inviare.
Invio dati i dati cifrati vengono inviati al i dati cifrati vengono inviati al
destinatario. Nessuno può destinatario. Se qualcuno
decodificare il messaggio avesse messo le mani sulla
perché solamente il chiave precedentemente
destinatario possiede la inviata potrebbe decodificare
chiave KR per farlo. i dati.
Decodifica il destinatario usa la chiave il destinatario usa la chiave
dati KR con l'algoritmo con l'algoritmo simmetrico
asimmetrico giusto per giusto per decodificare i dati.
decodificare i dati.
Quindi con l’uso di algoritmi crittografici asimmetrici l'unica
chiave capace di decodificare (KR), non è mai trasmessa.
Circola solo la chiave KU, che non permette di decodificare
nulla! Da ciò derivano i nomi chiave pubblica (KU) e chiave
privata (KR). (notazione da [37]).
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 25 di 118
26. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Non è possibile risalire alla chiave privata data la pubblica o
risalire al testo da crittogramma e chiave pubblica.
La chiave di codifica KU e quella di decodifica KR vengono
utilizzate all’interno delle rispettive funzioni E e D per
trasformare la sequenza binaria che costituisce un messaggio M
nel corrispondente messaggio cifrato X=E(KU,M) e M=D(KR,X).
chiave pubblica chiave privata
cifratura decifratura
testo originale testo cifrato testo in chiaro
Gli algoritmi asimmetrici più comuni sono RSA (chiavi da 512 bit
e 1024) e l'algoritmo di Diffie-Hellman.
Vantaggi Svantaggi
Non richiede trasmissione della Utilizzo di chiavi molto lunghe
chiave segreta tra i comunicanti
La chiave di decodifica e di firma dei Algoritmi complessi e crittografia
messaggi è sempre la stessa. lenta
Crescita lineare del numero di chiavi Necessità di nascondere la chiave
(con n utenti, O(n) chiavi) privata nel nostro sistema
Questo è solo un primo passo verso una comunicazione sicura
ma non è sufficiente: se una spia genera una coppia di chiavi e
invia la pubblica a nome nostro, c’è una falsa autenticazione. Si
deve allora prevedere un meccanismo di firma.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 26 di 118
27. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
3.3 Accenni di crittoanalisi
L’evoluzione verso cifrari più sicuri e consistenti deriva dalla
necessità di rendere sempre più difficile risalire al testo in
chiaro dato il testo cifrato, senza conoscere la chiave: la
crittoanalisi.
Alla base di tutti gli algoritmi crittografici ci sono i cifrari
monoalfabetici in cui si sostituisce ogni lettera del testo con
un’altra dello stesso alfabeto: semplici e obsoleti ma ideali per
comprendere il funzionamento.
Violare questi cifrari è possibile con una semplice analisi statica:
• ricerca esaustiva (o forza bruta)
• proprietà statistiche del linguaggio
La ricerca esaustiva consiste nel provare tutte le chiavi possibili.
Nel caso di cifrari monoalfabetici a spostamento le chiavi sono
solo 21 (alfabeto italiano): non serve ingegnarsi molto e sarà
sufficiente provarle tutte. Con forza bruta, appunto.
Nel caso di cifrari monoalfabetici a sostituzione in cui le lettere
siano mappate con distanze diverse, attraverso lo studio delle
proprietà statistiche sulla frequenze dei caratteri o sottostringhe
(digrammi come il, al, su, … o trigrammi come nel, dal, sul, …)
del testo cifrato si ottengono informazioni utili sul testo in
chiaro.
In tutti i cifrari monoalfabetici, i più semplici e facilmente
“rompibili”, le proprietà statistiche del linguaggio vengono
mantenute anche nel crittogramma: effettuando una semplice
analisi statistica delle lettere contenute nel testo cifrato e
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 27 di 118
28. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
confrontando i risultati con le frequenze assolute dell’alfabeto
della lingua italiana, cercando di isolare delle coppie o terzine di
lettere che si ripetono associandole a dei trigrammi conosciuti,
si può ricostruire il messaggio originale.
Come esempio si decifrari un testo abbastanza lungo (tratto da
[36]) in cui accenti e punteggiatura sono spariti.
FQVBZQSDUFVU A HZGESUDA ZUSQVANA QSSQ
VZQCDACCAGFU U QSSQ RGFCUZNQMAGFU TUSS
AFIGZDQMAGFU CGFG NURRPA LBQFVG AS SAFOBQOOAG U
QSRBFU TUSSU CRZAVVU HAB QFVARPU Q FGA
HUZNUFBVU A OUZGOSAIARA UOAMAQFA G S UEZQARG
RSQCCARG DGCVZQFG CGSBMAGFA AFOUOFGCU U
RGFVZQCVQFVA TA QSRBFA TA LBUA HZGESUDA SQ
FGMAGFU TA ZATGFTQFMQ CUDEZQ UCCUZ CVQVQ
QIIUZZQVQ DGSVG HZUCVG RGF QSRBFU TUSSU CBU HAB
ADHGZVQFVA ADHSARQMAGFA RGDU TADGCVZQ QT
UCUDHAG S AFNUFMAGFU TUSSQ CVUFGOZQIAQ Q ZGDQ
FUS HZADG CURGSG QNQFVA RZACVG QFRPU SQ
CBIIARAUFMQ TA BF RGTARU TA TBU CADEGSA HUZ
ZUOACVZQZU S AFIGZDQMAGFU CUDEZQ UCCUZ CVQVQ
RGDHZUCQ TQ OZQF VUDHG RGDU CA HBG NUTUZU TQSS
QSIQEUVG RUSVARG GOQD Q BF QSVZG QCHUVVG TUSSQ
VZQCDACCAGFU TUSS AFIGZDQMAGFU IB TUTARQVQ
DGSVQ QVVUFMAGFU OAQ FUSSQ EAEEAQ SQ CUOZUVUMMQ
TUSSQ RGDBFARQMAGFU BFG TUA HZADA RGTARA
RAIZQVA U QVVZAEBAVG Q OABSAG RUCQZU U DGSVA
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 28 di 118
29. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
QZQEA CA TUTARQZGFG FUS RGZCG TUA CURGSA QSSG
CVBTAG TUA RAIZQZA SU RBA QHHSARQMAGFA DASAVQZA
CGFG UNATUFVA IB HZGHZAG FUS RGZCG TUSSU TBU
OBUZZU DGFTAQSA RPU LBUCVG CVBTAG ZARUNUVVU BF
OZQFTU ADHBSCG GOOA LBUCVU ZARUZRPU CGFG CVQVU
ZAHZUCU RGF ZAFFGNQVQ SUFQ AF NACVQ TA
ADHGZVQFVA QHHSARQMAGFA RGDDUZRAQSA U
AFTBCVZAQSA TGNU U IGFTQDUFVQSU QCCARBZQZU SQ
HZANQVUMMQ TUSS AFIGZDQMAGFU
Troviamo le seguenti frequenze per ogni lettera:
A B C D E F G H I L M N O P Q R S T U V Z
133 34 55 36 12 74 96 26 16 4 20 13 19 5 107 49 71 41 123 61 68
Le lettere con maggior frequenza risultano essere A, U, Q, G e
così via. Come prima fase si possono associare a queste lettere
le più frequenti corrispondenti all’alfabeto italiano, anche se una
più accorta procedura richiederebbe lo studio di eventuali
digrammi o trigrammi, doppie e alla posizione delle lettere nel
testo.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 29 di 118
30. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
È probabile che le frequenze portino ad associare solo poche
lettere subito nel modo corretto, ma tanto basta per intuire il
significato di qualche parola. Nel nostro caso i successi sono
C=s, G=o, H=p, L=q, O=g, R=c, T=d, U=e; le altre lettere
distano, invece, pochi decimi percentuale. Sostituendo
comunque tutte le lettere in modo automatico, si ottiene:
tinmliruetne a plofreua lerinaba irri
nlisuassaote e irri cotselbivaote derr
atholuivaote soto beccza qmitno ar ratgmiggao e
ircmte derre sclanne pam itnacze i toa
pelbetmne a gelograhaca egavaita o r efliaco
crissaco uosnlito sormvaota atgegtose e
cotnlisnitna da ircmta da qmea plofreua ri
tovaote da ladotditvi seufli essel snini
ihhellini uorno plesno cot ircmte derre sme pam
aupolnitna aupracivaota coue dauosnli id
eseupao r atbetvaote derri snetoglihai i loui
ter plauo secoro ibitna clasno itcze ri
smhhacaetvi da mt codace da dme saufora pel
legasnlile r atholuivaote seufli essel snini
couplesi di glit neupo coue sa pmo bedele dirr
irhifeno cernaco ogiu i mt irnlo ispenno derri
nlisuassaote derr atholuivaote hm dedacini
uorni innetvaote gai terri faffai ri seglenevvi
derri coumtacivaote mto dea plaua codaca
cahlina e innlafmano i gamrao cesile e uorna
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 30 di 118
31. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
ilifa sa dedaciloto ter colso dea secora irro
snmdao dea cahlila re cma ippracivaota uaranila
soto ebadetna hm ploplao ter colso derre dme
gmelle uotdaira cze qmesno snmdao lacebenne mt
glitde aupmrso ogga qmesne lacelcze soto snine
laplese cot lattobini reti at basni da
aupolnitna ippracivaota couuelcaira e
atdmsnlaira dobe e hotdiuetnire issacmlile ri
plabinevvi derr atholuivaote
che è molto poco incoraggiante ma valutando attentamente il
testo facendo particolare attenzione alle doppie, si scopre che
“essene” potrebbe diventare facilmente “essere” poiché r e n
hanno frequenze simili; “ogga” potrebbe per lo stesso motivo
diventare “oggi”, “irri” in “alla” e così via, fino ad ottenere il
testo in chiaro:
naturalmente i problemi relativi alla
trasmissione e alla conservazione dell
informazione sono vecchi quanto il linguaggio e
alcune delle scritte piu antiche a noi
pervenute i geroglifici egiziani o l ebraico
classico mostrano soluzioni ingegnose e
contrastanti di alcuni di quei problemi la
nozione di ridondanza sembra esser stata
afferrata molto presto con alcune delle sue piu
importanti implicazioni come dimostra ad
esempio l invenzione della stenografia a roma
nel primo secolo avanti cristo anche la
sufficienza di un codice di due simboli per
registrare l informazione sembra esser stata
compresa da gran tempo come si puo vedere dall
alfabeto celtico ogam a un altro aspetto della
trasmissione dell informazione fu dedicata
molta attenzione gia nella bibbia la segretezza
della comunicazione uno dei primi codici
cifrati e attribuito a giulio cesare e molti
arabi si dedicarono nel corso dei secoli allo
studio dei cifrari le cui applicazioni militari
sono evidenti fu proprio nel corso delle due
guerre mondiali che questo studio ricevette un
grande impulso oggi queste ricerche sono state
riprese con rinnovata lena in vista di
importanti applicazioni commerciali e
industriali dove e fondamentale assicurare la
privatezza dell informazione
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 31 di 118
32. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
da cui l’esatta corrispondenza del crittogramma:
A B C D E F G H I L M N O P Q R S T U V Z
i u s m b n o p f q z v g h a c l d e t r
Come ultima analisi si veda come lo scarto tra la frequenza di
ogni carattere nel testo cifrato con il corrispondente nei testi in
italiano sia contenuto:
3.4 Hashing
Si tratta di un algoritmo che partendo da un documento (o un
oggetto) di qualsiasi dimensione lo elabora e lo riassume in un
codice di dimensione fissa. Il metodo di elaborazione garantisce
che:
• se il documento (o l’oggetto) viene cambiato in
qualunque sua parte, l’hash cambia con molta
probabilità (in effetti può avere collisioni, improbabile)
• applicato ad un documento in tempi diversi deve
restituire lo stesso risultato.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 32 di 118
33. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Possiamo pensare al codice prodotto dall'algoritmo di hashing
come ad una impronta del documento. L’utilità dell’impronta si
può ricondurre a 4 punti essenziali:
• se il documento cambia, anche solo in minima parte,
cambia anche l'impronta;
• dall'impronta non è possibile risalire al documento;
• consente di evitare che per la generazione della firma si
debba applicare l’algoritmo di cifratura all’intero testo;
• consente l’autenticazione, da parte di una terza parte
fidata, della sottoscrizione di un documento senza che
questa venga a conoscenza del suo contenuto;
Questa tecnologia è principalmente utilizzata nelle firme digitali,
per controllare se una email è stata alterata. Nella firma digitale
è incluso l'hash del messaggio, calcolato dal mittente. Il
destinatario, ricevuta l'email, ne calcola l'hash e lo confronta
con quello calcolato dal mittente. Solo se i 2 hash sono uguali è
possibile dire che l'email non è stata modificata.
In realtà la funzione di hash è non iniettiva: si mappa un
insieme infinito di messaggi in un insieme finito (160 bit nel
caso di SHA-1) e ciò può portare a collisioni, nel caso in cui testi
diversi portino ad uno stesso hash. Una buona funzione deve
rendere minima questa eventualità.
Per evitare che vengano modificati messaggio e impronta
associata, l’hash viene cifrato con la chiave privata del mittente.
L'hash è quindi protetto e può essere rigenerato solo dal vero
mittente dell'email.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 33 di 118
34. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
L’uso di algoritmi di hash non permette la falsificazione dei
certificati digitali. In ogni certificato è incluso l'hash calcolato
dall'autorità di certificazione che lo ha emesso. Qualsiasi
modifica al certificato sarebbe immediatamente scoperta.
Attualmente vengono utilizzati principalmente 3 algoritmi: MD2
[11], MD4 [34], MD5 [12] a 128 bit. Una variante potenziata
dell’algoritmo MD5 è l’algoritmo SHA-1 [18], sviluppato nel
1993 presso il NIST (National Institute of Standards and
Technology), che produce un codice a 160 bit.
3.5 Firma
Attraverso gli algoritmi a chiave pubblica si può effettuare
anche un’operazione di firma digitale del messaggio: si
utilizzano le chiavi inversamente alla cifratura, ossia la chiave
privata per firmare e quella pubblica per verificarne la validità.
chiave privata chiave pubblica
firma
testo originale testo firmato testo verificato
verifica
Tale operazione permette ad un destinatario di verificare
l’autenticità delle informazioni originate dal mittente; inoltre si
ha modo di verificare che le informazioni non siano state
modificate durante il percorso di consegna.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 34 di 118
35. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Chiave privata Chiave pubblica
è conosciuta solo dal titolare è pubblicamente nota e distribuita
per apporre la firma digitale su un per verificare la firma digitale
documento o messaggio informatico apposta sul documento dal titolare
delle chiavi
per decifrare il documento o per cifrare un documento che andrà
messaggio cifrato in precedenza con decifrato con relativa chiave privata
la chiave pubblica corrispondente
3.6 Come funziona in realtà
Il sistema di firma digitale a chiave pubblica descritto in
precedenza ha degli inconvenienti: è lento e produce una
quantità di dati pari al doppio della dimensione del testo.
Vediamo come si risolvono i due problemi nei due casi distinti di
cifratura (senza firma) e firma (senza cifratura).
Il problema della lentezza è dovuto alla cifratura con algoritmi
asimmetrici che perciò vengono utilizzati solo per cifrare una
terza chiave generata casualmente (chiave di sessione), e
utilizzata da un algoritmo simmetrico più veloce e semplice che
cifra tutto il messaggio.
il testo è cifrato con
la chiave di sessione
chiave di sessione cifrata
con la chiave pubblica
testo cifrato +
chiave di sessione cifrata
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 35 di 118
36. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Solamente il destinatario può accedere ai dati, poichè
solamente egli possiede la chiave privata per accedere alla
chiave intermedia, necessaria a sua volta per decrittografare i
dati.
chiave di sessione chiave di sessione decifrata
messaggio cifrato cifrata con la chiave privata
testo cifrato
chiave di sessione usata testo originale
per decifrare il testo in chiaro
Il problema della dimensione, invece, è risolto proprio dall’uso
di una funzione di hash: la firma non sarà applicata all’intero
testo ma solo all’impronta ricavata.
funzione di hash
testo
originale
riassunto firmato con
la chiave privata
sintesi del messaggio
testo originale +
firma
chiave privata
usata per firmare
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 36 di 118
37. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
4 GESTIONE DELLE
CHIAVI
“La funzione di una postazione forte è rendere le
forze presidiate praticamente inattaccabili”
On War, Carl Von Clausewitz
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 37 di 118
38. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Da questo capitolo si cominceranno a delineare le differenze tra
certificati X.509 e PGP, oggetto della tesi (discussi
approfonditamente nei capitoli 5 e 6): dalla generazione alle
gestione delle chiavi, dalla richiesta alla gestione di certificati.
Una chiave è un valore con cui un algoritmo cifra un oggetto.
La dimensione si misura in bit e tanto più grande è la chiave,
tanto più sicuro sarà il testo cifrato, ma anche più lenta sarà la
computazione. Mediamente si propongono 4 tipi di dimensioni
come compromesso tra sicurezza e velocità:
• Casual grade: (348 bit) facilmente violabile
• Low Commercial Grade: (512) bit possibilmente violabile
ma ancora veloce computazionalmente
• High Commercial Grade: (768) difficilmente violabile
• Military Grade: (1024) ritenuta inviolabile,
computazionalmente intrattabile.
La certificazione della chiave serve ad attestarne la validità e la
corrispondenza col proprietario. PGP e X.509 utilizzano due
modelli differenti:
• horizontal trusting: fiducia reciproca tra firmatari (PGP);
• hierarchical trusting: infrastruttura gerarchica di
certificazione, la Public Key Infrastructure (X.509)
Un certificato digitale può allora essere inteso come un
contenitore che lega chiave pubblica al proprietario:
• chiave pubblica
• informazioni sul soggetto
• una o più firme digitali
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 38 di 118
39. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
La chiave privata, non essendo mai condivisa, non richiede un
contenitore, ma deve essere archiviata in modo sicuro, magari
protetta con password.
Le firme digitali annesse certificano che le informazioni
contenute sono attestate dal firmatario (altro soggetto o
autorità).
4.1 Distribuzione di certificati
Come detto, lo scopo principale dei certificati digitali è quello di
far corrispondere ai dati personali del soggetto, la sua chiave
pubblica, indispensabile per ricevere messaggi crittografati e
per permettere la verifica della nostra firma digitale a chi la
riceve. Per questo motivo la distribuzione capillare dei certificati
è importantissima e, a differenza di quanto avviene con la
crittografia simmetrica, non è necessario un canale sicuro.
In questo senso, la distribuzione può avvenire:
• manualmente (scambio di email, dischetti, …)
• tramite infrastrutture dedicate (Key Server, …)
4.1.1 Certificate Server
Server di certificati sono dei semplici contenitori online di
certificati digitali; permettono di inserire o scaricare e la loro
architettura è spesso basata su Directory Server LDAP
(Lightweight Directory Access Protocol, vedi glossario),
piuttosto che su database relazionali.
I directory server LDAP (qualche esempio in [26]) privilegiano
la velocità di ricerca e prevedono linguaggio di interrogazione
molto semplice; sono un’ottima scelta quando le letture sono
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 39 di 118
40. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
prevedibilmente più frequenti delle scritture e i dati in esso
contenuti non variano di frequente.
I Certificate Server sono spesso orientati a fornire ulteriori
servizi a garanzia della security policies delle aziende, come
accettare solo chiavi che rispondano a determinati requisiti.
4.1.2 Keyserver
Usato dagli utenti PGP, ha funzionalità molto simili a quelle di
un Certificate Server. È un punto di raccolta e distribuzioni di
chiavi pubbliche. Riceve le chiavi pubbliche da parte degli utenti
PGP e le inserisce nel proprio database.
Quando riceve una richiesta, invece, il server consulta il suo
database e, se presente, restituisce la chiave pubblica trovata.
Il keyserver fornisce agli utenti un indice; utilizza nomi e
indirizzi email per ritrovare le chiavi desiderate cosicché
chiunque possa firmare la nostra chiave pubblica presente nel
keyserver modificando la fiducia ad essa associata.
Naturalmente è possibile creare keyserver privati (tramite
l’apposito software PGP Keyserver Enterprise Edition Version)
per una ristretta selezione di utenti ma è altresì opportuno
pubblicare la propria chiave su keyserver conosciuti e
facilmente individuabili (keyservers pgp sono in [26]).
4.2 Revoca di Certificati Digitali
Come i documenti d’identità rilasciati dal nostro comune, anche
i certificati digitali hanno una scadenza. Per sapere se un
certificato è ancora valido bisogna verificarne il termine
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 40 di 118
41. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
temporale. Tuttavia certificati ancora “giovani”, potrebbero
esser stati revocati per svariati motivi (chiave segreta o
certificato dell’utente compromessi, l’utente non è più certificato
dalla CA, …). Per tali verifiche si hanno a disposizione :
• Certificate Revocation Lists (CRL)
• Online Certificate Status Protocol (OCSP)
In PGP, invece, affinché un utente possa revocare una coppia di
chiavi, è necessario che il possessore distribuisca un “Key
Revocation Certificate” firmato da egli stesso. Questo certificato
ha la stessa forma di una normale firma ma include un
indicatore che specifica lo scopo di questo certificato: revocare
l’uso della chiave pubblica allegata. Naturalmente sarà cura del
possessore disseminare tale certificato il più rapidamente e
diffusamente possibile.
4.2.1 Certificate Revocation List (CRL)
Le CA pubblicano un elenco di revoche di certificati (CRL)
contenente i certificati che non devono più essere utilizzati
anche se non ancora scaduti. Quante più voci sono contenute in
un CRL, tanto più lungo sarà l'elenco e maggiore il tempo
necessario per scaricarlo. Spesso le liste CRL possono risultare
particolarmente pesanti a causa del gran numero di revoche
unito alla bassa frequenza con cui vengono le liste.
Il procedimento di ricerca all’interno delle CRL e' simile
all’analisi di un tabulato. Il metodo di elaborazione delle CRL
può inoltre richiedere alle società la configurazione dei propri pc
client perché elaborino le CRL provenienti da diverse CA. Ogni
CRL è firmata dalla CA e include, oltre alla lista di revoche, il
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 41 di 118
42. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
proprio nome, la data di creazione della lista e la prossima
pubblicazione.
Ciascuna distribuzione di CRL influisce sull’ampiezza di banda
della rete e sulla potenza di elaborazione del client. Infine,
possono essere necessari diversi giorni per ricevere notifica di
un certificato revocato, aumentando la possibilità di una falla
nella sicurezza.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 42 di 118
43. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
4.2.2 Online Certificate Status Protocol (OCSP)
OCSP è lo standard emergente dell’IETF (Internet Engineering
Task Force). Comunica on line agli utenti la situazione dei
certificati in tempo reale, ne consegue una maggiore velocità
rispetto al sistema CRL, senza le stesse preoccupazioni
logistiche, sul carico di elaborazione e sui tempi di notifica.
Per controllare immediatamente le revoche, un’applicazione
client di un’organizzazione forma una richiesta e la invia a un
OCSP responder, cioè un’applicazione server in rete che
raccoglie le informazioni aggiornate sulle revoche.
Il responder replica con uno dei tre messaggi sulla validità di un
certificato:
• GOOD
• REVOKED
o Revocation Time
o Revocation Reason
• UNKNOWN
La richiesta OCSP e' indipendente dal protocollo utilizzato,
sebbene quello HTTP (HyperText Transport Protocol)
rappresenti l’approccio più comune.
4.3 Public Key Infrastructure (PKI)
Il termine infrastruttura a chiave pubblica (PKI, Public Key
Infrastructure) è utilizzato per descrivere software, criteri e
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 43 di 118
44. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
standard che consentono di disciplinare e gestire i certificati e le
chiavi pubbliche e private. Complessivamente si occupa di:
• Identificare il firmatario e gli eventuali compiti
• Garantire unicità delle firme
• Mantenere registro dei possessori delle chiavi
• Gestire chiavi a rischio, revocate o sospese
• Rendere noti i certificati non più validi
• Agire da terza parte fidata per distribuire le chiavi
pubbliche
PKI, quindi, integra le funzionalità dei server di certificati, con
ulteriori servizi e protocolli per la gestione delle chiavi
pubbliche:
• emissione
• distribuzione
• revoca
• validazione
Un'incomprensione comune porta spesso a considerare
l'infrastruttura a chiave pubblica come un'entità fisica, e non
come funzionalità. La PKI è costituita da un gruppo di
componenti distinti che interagiscono per consentire agli utenti
l'utilizzo semplice e lineare delle chiavi pubbliche e della
crittografia a chiave pubblica.
A tale scopo PKI è costituita da tre entità:
• Registration Autority (RA)
• Certification Autority (CA)
• Certificate Server (CS)
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 44 di 118
45. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
RA è un’interazione tra entità umane (una persona, un gruppo
o un dipartimento), processi e strumenti usati per provvedere
alla verifica degli utenti, relative chiavi e registrazione degli
stessi alla PKI (iscrizione).
CA è spesso costituito solamente da un software che crea un
certificato digitale e lo firma digitalmente con la propria chiave
privata. Utilizzando la relativa chiave pubblica, chiunque può
verificare se un certificato digitale è autentico, integro, a chi
appartiene e da quale autorità di certificazione è garantito.
PKI possono essere organizzate in modo da soddisfare al meglio
le esigenze specifiche di un'azienda:
• CA autonoma (standalone): la chiave principale e i
certificati di un'organizzazione sono gestiti da terze parti
responsabili del rilascio e della revoca di tutti i certificati
per gli utenti
o Esempio: certificati rilasciati da CA commerciali
come Verisign, Thawte o altre ma anche studi
legali, banche e altre organizzazioni alle quali si
riconosce un’autorità per il rilascio di certificati.
o Pro: relazioni di fiducia sia all’interno che
all’esterno dell’organizzazione. Riduzione del
carico di lavoro per la gestione dei certificati
(emissione, mantenimento, revoca).
o Contro: Fiducia totale tra azienda ed entità di
certificazione. Costo per ogni certificato emesso.
• CA globale (enterprise): l'azienda stessa funge da
autorità di certificazione per il rilascio e la revoca dei
propri certificati in base ai requisiti aziendali
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 45 di 118
46. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
o Esempio: controllare accesso alle risorse
attraverso i certificati: ogni dipendente potrà
accedere alle infrastrutture anche dall’estero.
o Pro: nessun costo verso altre entità. Controllo
totali dei possessori del certificato (solo utenti
noti) e della policy.
o Contro: carico di lavoro per il mantenimento dei
certificati e dell’infrastruttura.
• Combinazione di CA: La disponibilità di una CA principale
autonoma consente lo scambio di dati con partner e
clienti senza che questi debbano accedere direttamente
alla PKI, mentre la disponibilità di CA subordinate
consente di mantenere il controllo sul rilascio e la revoca
dei certificati all'interno dell'organizzazione
o Esempio: impiegati ricevono certificati dalla CA di
reparto, collaboratori esterni dalla rispettiva CA,
clienti e partner da una CA commerciale.
o Pro: massima flessibilità, si sfruttano i vantaggi di
entrambi i modelli. Si presta alla gerarchia di CA.
o Contro: si deve comunque mantenere una propria
infrastruttura.
Le CA possono essere organizzate in modo gerarchico: una CA
principale emette certificati per delle autorità intermedie che a
loro volta emetteranno certificati per entità finali (utenti) o per
altre infrastrutture.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 46 di 118
47. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Il sistema operativo rappresenta la posizione più appropriata
per l'implementazione di un'infrastruttura PKI. I sistemi
operativi ospitano normalmente numerose infrastrutture come
quella di stampa (per l'invio dei documenti alla stampante) e
quella per il servizio di gestione dei file (per il recupero dei file
dalle aree di memorizzazione condivise). In entrambi gli
esempi, il sistema operativo rende disponibile una funzionalità
per l'utilizzo semplice e trasparente di un servizio di rete,
proprio come nel caso della PKI.
Windows e Unix/Linux offrono notevoli possibilità per la
configurazione di PKI.
Nelle versioni di Windows professionali (NT, XP Professional,
2000 Server, 2003 Server) ci sono funzionalità integrate come il
server ISS (Internet Information Services), Active Directory™ e
l'area di lavoro MMC (Microsoft Management Console).
L'infrastruttura PKI di Windows 2000 si basa su quattro
elementi cardine (come definito in [22]):
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 47 di 118
48. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
• Interoperabilità: supporto dello scambio di messaggi,
certificati e servizi con altri componenti standard PKI
o Si supportano standard aperti e indipendenti dal
produttore, spesso definiti da enti quali W3C o
IETF.
• Sicurezza: garantita sia da algoritmi di protezione e
procedure affidabili
o Componenti inaffidabili in PKI possono creare più
danni della mancanza dell’infrastruttura stessa.
o Algoritmi affidabili, sicuri e conosciuti come RSA,
MD5 e SHA-1 per crittografia e firma, ma anche
SSL o IPSec per le comunicazioni.
• Flessibilità: possibilità di configurare la PKI in modo da
soddisfare al meglio le esigenze organizzative specifiche
di un'azienda con un impegno minimo
o Modelli di CA autonoma e globale, riduzione dei
costi e maggiore protezione in base alle esigenze.
• Semplicità di utilizzo per amministratori di PKI, utenti
finali che ricevono e utilizzano i certificati e sviluppatori
che creano applicazioni abilitate all'uso della PKI
o componenti incorporati nella piattaforma, il più
possiblile automatici e integrati con gli altri
strumenti utilizati da utenti e amministratori.
Linux si basa su pacchetti di terze parti da installare. Ci sono
vari progetti in corso, tra i quali ElyCA [30] e OpenCA [32].
Entrambi i progetti si basano su altri pacchetti necessari:
• Apache: il web server più famoso e l’estensione per la
sicurezza ApacheSSL (vedi [29])
• OpenSSL: toolkit crittografico (vedi [33])
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 48 di 118
49. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
I Certificati Digitali possono avere credenziali molto elevate se
rilasciati e firmati da CA di nota autorevolezza; se oltretutto
sono iscritte nell’apposito elenco pubblico mantenuto dalla
CNIPA (Centro Nazionale per l’Informatica nella Pubblica
Amministrazione), tali certificati hanno validità legale (vedi §1.1
e [5]). I certificati X.509 vengono rilasciati dalle PKI.
4.4 Web of Trust (WoT)
Usato solitamente da PGP, Web of Trust (Rete di Fiducia) è un
termine usato per descrivere le relazioni di fiducia esistenti tra
un gruppo di chiavi, secondo il modello “horizontal trusting”,
senza avere una catena di certificazione gerarchica in cui si
deve conoscere ogni singolo emettitore ma una cooperazione
orizzontale tra gli stessi utenti dell’applicazione. Questo è
necessario in progetti come PGP, appunto, nei quali i certificati
vengono emessi dal possessore stesso e non da un’autorità
fidata.
Come per PKI con i certificati X.509, WoT si prefigge lo scopo di
risolvere il problema di autenticazione della chiave pubblica,
quindi il legame con il relativo nome utente: devo verificare la
firma di una email ricevuta, necessito della chiave pubblica del
mittente, ma come posso essere sicuro che sia veramente sua?
Per verificare l’autenticità della chiave pubblica del mittente, le
alternative sono:
1. Chiedo conferma della chiave pubblica per telefono,
supponendo di conoscere la sua voce;
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 49 di 118
50. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
2. Lo incontro, verifico i suoi documenti e confronto la stringa
(magari in un altro stato…);
3. Confronto la chiave in mio possesso con la chiave
autenticata in possesso di un altro utente.
Spesso l’unica alternativa possibile è la 3, ed è su questa che si
basa il concetto di Web of Trust.
La firma su una chiave rappresenta un collegamento nella rete
della fiducia. Questi collegamenti sono chiamati percorsi di
fiducia e possono essere bidirezionali o a senso unico. La rete
della fiducia ideale è quella in cui ogni persona è connessa ad
ogni altra in modo bidirezionale, così che ognuno abbia la
fiducia che ogni chiave appartenga veramente al proprio
proprietario. La rete della fiducia può essere pensata come la
somma dei percorsi di fiducia, o collegamenti, tra tutti i
proprietari delle chiavi.
A
E B
D C
Un grafo simile rappresenta i legami tra le chiavi degli utenti A,
B, C, D, E. Un arco da A a B rappresenta la firma dell’utente A
sulla chiave pubblica di B. In questo caso l’utente A può fidarsi
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 50 di 118
51. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
della chiave pubblica B poiché conosce C che ne ha autenticato
la chiave.
Ogni chiave valida in possesso dell’utente A può autenticata da
egli stesso o da qualcun altro; ogni chiave non valida non può
essere un certificatore fidato per altre chiavi.
Esistono progetti sperimentali che consentono di generare grafi
simili; uno di essi è Graphviz (AT&T Labs-Research, [10]).
4.4.1 Signing party: un esempio
(tratto da [3])
Un key signing party è una riunione di persone che usano il
sistema di crittografia PGP, durante la quale ogni partecipante
ha la possibilità di firmare la chiave degli altri. I key signing
party aiutano in modo consistente a estendere la propria rete
della fiducia, inoltre offrono un'opportunità per discutere di
questioni sociali e politiche che riguardano la crittografia forte,
la sovranità e le libertà individuali, dell'implementazione di
tecnologie crittografiche, o perfino degli sviluppi futuri del
software libero per la crittografia.
Poniamo che Alice e Bob creino delle chiavi PGP e organizzino
un key signing party. Durante il party, Alice e Bob verificano
ognuno le chiavi dell'altro e successivamente le firmano. Poiché
PGP firma automaticamente le chiavi pubbliche che genera
usando la chiave privata associata, Alice e Bob avranno almeno
due firme che indicano che la chiave appartiene veramente a
loro: la chiave di Alice è stata firmata da Alice stessa e da Bob,
così pure per la chiave di Bob. In seguito Alice e Bob conoscono
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 51 di 118
52. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Cathy, che genera un paio di chiavi e spedisce la propria chiave
pubblica ad Alice e Bob. Alice però non vuole che Bob
comunichi con Cathy in modo cifrato, così crea una chiave con il
nome di Cathy e la spedisce a Bob. Bob riceve così due chiavi
che portano entrambe il nome di Cathy e la firma della chiave
privata di Cathy, ma non sa quale delle due è veramente la
chiave di Cathy. Cathy scopre che Bob ha ricevuto due chiavi,
sospetta subito di Alice e decide di vendicarsi; per farlo, manda
a Bob una finta e-mail a nome di Alice comunicandogli di aver
generato una nuova coppia di chiavi e includendo la "nuova"
chiave di Alice (che in realtà è una falsa chiave generata da
Cathy). Ma Bob scopre subito che si tratta di un trucco, visto
che una delle due chiavi di Alice che possiede è stata firmata da
più persone (Alice e Bob), confermando che essa appartiene
davvero ad Alice, mentre l'altra chiave (la falsa chiave creata da
Cathy) ha solo una firma.
L'esempio mostra i concetti base della firma delle chiavi e la sua
importanza: Cathy non è riuscita a introdurre una falsa chiave
di Alice, grazie alle interconnessioni esistenti tra Bob e Alice
nella loro rete della fiducia.
Tuttavia, firme e reti della fiducia non garantiscono chiavi di cui
ci si possa fidare ciecamente. Ad esempio, supponiamo che
quando Bob e Alice hanno conosciuto Cathy fosse presente
anche Donald, un amico di Cathy. Donald potrebbe aver
generato una coppia di false chiavi di Alice e Bob, potrebbe
aver firmato ognuna delle due chiavi con quella dell'altro, oltre
che con la propria chiave, in modo che ogni chiave contenesse
tre firme, e potrebbe aver spedito le chiavi a Cathy. Cathy ora si
troverebbe di fronte un gruppo di chiavi e di firme tutte "false":
come potrebbe usare il meccanismo della firma per proteggersi
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 52 di 118
53. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
da questo tipo di attacchi? Supponiamo che tutte le persone
coinvolte scambino le chiavi attraverso un keyserver. Se Cathy
cercasse le chiavi di Alice e Bob sul keyserver, troverebbe due
paia di chiavi per Alice e Bob, ma se Alice e Bob avessero
raccolto venti firme durante un key signing party, è ovvio che
Cathy si fiderebbe di più delle chiavi firmate venti volte,
piuttosto che di quelle firmate solo tre volte. Inoltre, Cathy
potrebbe ricavare altre informazioni riguardanti le venti chiavi
usate per le firme, ad esempio le loro date di generazione,
ricostruendo così la rete di fiducia che lega le chiavi.
Probabilmente le chiavi usate per apporre le firme durante il
party saranno state a loro volta firmate con altre chiavi, quasi
sicuramente avranno date di generazione molto diverse. Di
certo non sarebbe così se Donald avesse generato venti false
chiavi e le avesse usate per creare una falsa rete della fiducia.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 53 di 118
54. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
5 X.509
“I problemi significativi che ci troviamo ad
affrontare, non possono essere risolti utilizzando
un livello di pensiero pari a quello che li ha ideati”
Albert Einstein
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 54 di 118
55. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Lo standard per eccellenza nella certificazione digitale è senza
dubbio X.509, riconosciuto legalmente anche all’estero. A
questo, però, si aggiunge lo standard PGP che così non fornisce
solo uno strumento crittografico ma anche una certificazione
completa, efficiente e facile da gestire.
È importante ricordare che questo elaborato si concentra sulle
problematiche dello scambio di messaggi via email. Gli standard
presentati, perciò devono essere in grado di proporre una
soluzione al problema, compatibilmente allo standard S/MIME
(Secure/Multipurpose Internet Mail Standard).
5.1 X.509 Certificate Format
Standard di riferimento definito dall’ITU-T, è una parte delle
specifiche X.500 che definiscono un Directory Service. X.509
definisce la struttura per i servizi di autenticazione tramite
X.500 che funge da deposito dei certificati a chiave pubblica,
basandosi su PKI.
Nato nel 1988, rivisto nel 1993 e nell’odierno X.509v3 del 1995,
per essere utilizzato da qualsiasi applicazione, in realtà oggi
ogni azienda ha la propria estensione di X.509 infatti uno dei
punti di forza della versione 3 di X.509 è la possibilità di
modificare la policy di sicurezza dei certificati aggiungendo dei
campi a quelli standard: per un’azienda potrebbe essere
necessario certificare (oltre alle informazioni di default) anche il
reparto in cui l’utente lavora e il ruolo svolto all’interno di esso.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 55 di 118
56. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Questi certificati richiedono che qualcuno attesti in modo
inequivocabile la corrispondenza tra la chiave pubblica e le
informazioni contenute. L’unica entità in grado di apporre la
propria firma è l’Autorità di Certificazione che ha emesso il
certificato (che a sua volta può essere stata certificata da
un’altra CA, in accordo alla gerarchia PKI precedentemente
illustrata).
Solitamente vengono emessi quattro tipi di certificati X.509:
• Precaricati di una Autorità di Certificazione. Alcuni di
questi certificati sono precaricati nei browser, cosicché si
possano riconoscere in modo automatico e trasparente
tutti i certificati emessi dalle CA più importanti. Quando
qualcuno riceve un’informazione firmata con un
certificato deve solo verificare la firma della CA che ha
emesso il certificato per fidarsi dei dati contenuti nel
certificato;
• Server di un sito (www, ftp, ecc.). Questo certificato
viene emesso per garantire che il server, che sta
“mostrando” quel certificato, è il server di un particolare
sito; questo tipo di certificati è particolarmente utile per il
commercio elettronico, il cliente vuole essere certo di
rivolgersi ad un particolare server, il certificato lo
garantisce in questo senso;
• Personali, contenenti quindi informazioni quali nome,
cognome, indirizzo, casella e-mail, ecc.; possono essere
utilizzati per garantire la provenienza di una e-mail, per
inviare un numero di carta di credito, ecc.
• Software, per garantire l'autenticità della provenienza del
software, specialmente se questo viene distribuito in
Rete.
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 56 di 118
57. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Lo standard X.509v3 prevede i seguenti campi:
nome campo descrizione
Versione Attualmente l’ultima versione è la 3
numero seriale del intero, unico all’interno della CA
certificato distributrice
identificatore algoritmo usato per firmare il certificato
dell’algoritmo di firma con vari parametri
usato
nome del certificatore nome X.500 della CA che ha creato e
firmato il certificato
periodo di validità del inizio e fine della validità temporale del
certificato certificato
nome del possessore il nome al quale il certificato appartiene e
lega la chiave pubblica contenuta
chiave pubblica del chiave pubblica, algoritmo usato ed
possessore eventuali parametri
bit identificatore unico del opzionale, per identificare unicamente la
certificatore CA emittente nel caso in cui il nome sia
usato per altre entità
bit identificatore unico del opzionale, per identificare unicamente il
possessore possessore nel caso in cui il nome sia usato
per altre entità
Estensioni Uno o più campi, previsti dalla versione 3
Firma digitale del protegge tutti gli altri campi del certificato;
certificatore contiene l’hash costituito su di essi
crittografato con la chiave provata della
CA. Include anche l’identificativo degli
algoritmi usati
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 57 di 118
58. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
Lo standard definisce tale notazione per definire un certificato:
CA<<A>> = CA {V, SN, AI, CA, TA, A, AP}
Dove:
• Y<<X>> significa che il certificato dell’utente X è stato
emesso da Y,
• Y{I} è la firma di I per Y. Consiste di I con il suo hash
code cifrato.
Questo è il tipico approccio di firma digitale:
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 58 di 118
59. www.unive.it Tesi di Laurea A. A. 2003/2004 www.dsi.unive.it
5.1.1 Standard PKCS
I PKCS (Public-Key Cryptography Standard) sono un insieme di
standard sviluppati dai Laboratori RSA in cooperazione con gli
sviluppatori mondiali di sistemi sicuri, allo scopo di accelerare
l'impiego di crittografia a chiave pubblica. Inizialmente
pubblicati nel 1991, sono diventati ampiamente riferiti ed
implementati. Gli standard attualmente pubblicati sono PKCS
#1, #3, #5, #7, #8, #9, #10, #11, #12 e #15; PKCS #13 e
#14 sono attualmente in sviluppo.
Gli standard della crittografia a chiave pubblica sono i seguenti:
• PKCS#1: standard per la crittografia RSA;
• PKCS#2: incorporato in PKCS #1;
• PKCS#3: standard per l'accordo su chiavi di Diffie-
Hellman;
• PKCS#4: incorporato in PKCS #1;
• PKCS#5: standard per crittografia basata su password;
• PKCS#6: standard per la sintassi dei certificati estesi
(sostituito da X.509 v3);
• PKCS#7: standard per la sintassi dei messaggi
crittografici;
• PKCS#8: standard per la sintassi di informazioni di chiavi
private;
• PKCS#9: tipi degli attributi selezionati usati nei PKCS;
• PKCS#10: standard per la sintassi delle richieste di
certificazione;
• PKCS#11: standard per l'interfaccia dei token
crittografici;
• PKCS#12: standard per la sintassi dello scambio di
informazioni personali;
Fabio Pustetto Posta elettronica sicura: X.509 e PGP Pagina 59 di 118