SlideShare une entreprise Scribd logo
1  sur  26
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




CRIPTOGRAFIA E FIRMA DIGITALE
             con

                          GnuPG
 - USARE LA POSTA ELETTRONICA IN PIENA
               SICUREZZA -




                 Maurizio “maury” Antonelli
                    http://www.maury.it



  Some rights reserved: http://www.maury.it#licenza                    1
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




La presente conferenza l'ho tenuta per la prima volta a San Benedetto del Tronto (AP) in occasione
del Linux Beach 2006.
Oltre che come documentazione per gli interessati, spero vivamente che possa far aumentare la
consapevolezza della non sicurezza dello strumento “posta elettronica” e contribuisca a far adottare
agli utenti gli adeguati strumenti di implementazione.




              Some rights reserved: http://www.maury.it#licenza                    2
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Iniziamo con questo concetto fondamentale: “La posta elettronica non è uno strumento sicuro”.
Infatti, quasi tutte le e-mail che viaggiano in rete sono in chiaro, senza alcuna forma di codifica.
Come ben saprete, un messaggio di posta elettronica, da quando parte dal PC del suo mittente a
quando arriva al PC del suo destinatario, attraversa diverse macchine in rete, ognuna delle quali si
occupa di “instradarlo” nella giusta direzione. Chiunque si trovi ai comandi di una qualsiasi di
queste macchine può quindi visualizzare (sniffare) questi messaggi, con grande rischio per la
privacy del mittente e del destinatario.
Ancora: viaggiano in chiaro anche UserID e Password nella fase di autenticazione ai server POP3
(posta in entrata) e SMTP (posta in uscita). Per questo motivo è sempre buona norma utilizzare dei
server che forniscano il servizio di autenticazione tramite criptazione in TSL o in SSL, onde evitare
che qualcuno prenda il controllo della propria casella e-mail.
Altro problema: il mittente di un'e-mail non è mai garantito. Con pochissimi accorgimenti si può far
credere ai più sprovveduti di essere chiunque.




              Some rights reserved: http://www.maury.it#licenza                    3
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Ecco qui un esempio con Mozilla Thunderbird. Nella configurazione degli account di posta
chiunque può impostare un falso mittente. Posso far credere a chiunque di essere un'autorità, una
banca o qualsiasi altra cosa. Semplicemente così posso “imbrogliare” tranquillamente il 90%-95%
degli utenti. In pochi saranno in grado di accorgersi delle anomalie che saranno ancora presenti
comunque negli header del messaggio di posta. Ulteriori trucchetti, che non illustro qui, possono far
scomparire anche queste restanti tracce... Et voilà... Il gioco è fatto.




              Some rights reserved: http://www.maury.it#licenza                    4
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Iniziamo con il criptare la posta. In questo modo potrà leggere correttamente il nostro messaggio
solo chi vorremo noi.
Il mondo da sempre è pieno di sistemi di codifica. I più semplici: anagrammare le parole, sostituire i
caratteri e molti altri metodi, più o meno sofisticati.
Facciamo un esempio:
la nostra e-mail viaggerà in rete sotto forma di byte, sotto forma di valori X compresi tra 0 e 255.
Sostituiamo a questi valori X i valori X+2 per X compreso tra 0 e 253. Sostituiamo poi a 254 e 255
rispettivamente 0 e 1. Abbiamo appena inventato una chiave di codifica. Solo chi possiederà questa
chiave (perché l'ha avuta da me o perché l'ha scoperta) sarà in grado di capire il contenuto del
messaggio, gli altri no.
Questo è un semplicissimo esempio di codifica. Molti bambini, anche nelle più giovani età, si
divertono ad inventare sistemi così semplici per trasmettersi i propri segreti o semplicemente per
proteggerli. Personalmente trovo i sistemi di codifica anche una cosa molto divertente ed
appassionante.




              Some rights reserved: http://www.maury.it#licenza                    5
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Quello illustrato sopra è un semplice esempio di codifica a chiave simmetrica: mittente e
destinatario useranno la stessa chiave, il primo per codificare ed il secondo per decodificare.
Non è un sistema utile per quello che sarà il nostro scopo, poiché non sarà un sistema estendibile a
terzi. Se, infatti, un utente A ed un utente B utilizzano una chiave di codifica per le proprie
comunicazioni, questa non potrà essere utilizzata da A con l'utente C. Infatti, decaderebbe la
privacy tra A e B.
Se l'utente A, per superare questo problema, inventasse ed utilizzasse una chiave per ogni altro
utente, avrebbe da gestire un numero enorme di sistemi di codifica e ben presto il sistema
diventerebbe difficilmente gestibile.




              Some rights reserved: http://www.maury.it#licenza                    6
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Soluzione al problema: il certificato a chiave asimmetrica.
Verrà adottato un sistema che utilizzerà un certificato composto da due chiavi distinte, una privata
ed una pubblica.




              Some rights reserved: http://www.maury.it#licenza                    7
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




La chiave privata dovrà rimanere esclusivamente nelle mani del proprietario del certificato. Andrà
conservata con assoluta attenzione. Verrà utilizzata dall'utente possessore per decriptare i messaggi
che saranno indirizzati a lui ed in più sarà utilizzata per apporre al messaggio una firma digitale che
ne garantirà la reale identità del mittente.
La chiave pubblica potrà, invece, essere distribuita al mondo intero, senza il rischio di incorrere in
alcun pericolo. Essa verrà utilizzata per criptare i messaggi indirizzati al proprietario del relativo
certificato; solo il possessore della relativa chiave privata potrà decriptare il messaggio. Chiunque
altro vedrà una serie di byte/caratteri senza alcun significato. Inoltre, verrà utilizzata per verificare
la firma digitale che è stata apposta con la chiave privata.
La chiave pubblica potrà essere distribuita senza controllo a chiunque. Il fatto che cada in mani
estranee non costituirà alcun pericolo. La massima attenzione dovrà essere rivolta esclusivamente
alla chiave privata, che dovrà rimanere rigorosamente nelle mani del leggittimo proprietario. Se
quest'ultima non cadrà in mani estranee, il sistema sarà sicuro al 100% (anche se in molti
dipartimenti di matematica stanno continuando a verificarne la totale sicurezza).
Se i concetti esposti fin qui sono ben chiari, il resto ora sarà tutto in discesa.




               Some rights reserved: http://www.maury.it#licenza                    8
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Proviamo a capire come possa funzionare un certificato a chiave asimmetrica. L'esempio che segue
non è applicabile per quelle che saranno le nostre finalità, però dà un'idea chiara di come in
matematica esistano delle funzioni non biunivoche adatte allo scopo.
Immaginiamo di dover trasmettere questi dati: 4, -2, -1 e 5. Ora la chiave pubblica, con cui cripterò
la sequenza dei quattro numeri, consisterà nell'elevare al quadrato ognuno di essi. Avremo così: 16,
4, 1 e 25. Un altro utente che avrà in mano soltanto questa chiave pubblica sarà in grado di
decriptare i dati? La risposta è no. Infatti, partiamo dal primo dato: 16. Sappiamo, dalla chiave
pubblica, che è il risultato di un numero che è stato elevato al quadrato. Operazione inversa: la
radice quadrata; ma la radice quadrata di 16 non è univoca. Il risultato è sì 4, ma è anche -4. Come
facciamo a sapere quale dei due prendere? Con la sola chiave pubblica non possiamo.




              Some rights reserved: http://www.maury.it#licenza                    9
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Come detto sopra, l'esempio non è utilizzabile: il procedimento di criptazione è troppo semplice per
essere efficiente; però rende molto bene l'idea di come funzioni matematiche non invertibili
maggiormente complicate, possano essere utilizzate per il nostro fine.
Trovando delle funzioni molto più adatte, posso raggiungere il mio scopo: creare un certificato a
doppia chiave con cui poter criptare con la pubblica e poter decriptare solo ed esclusivamente
con la privata.
A questo punto distribuirò la chiave pubblica e chiunque potrà criptarci i messaggi a me indirizzati.
Solo ed esclusivamente io, possessore della relativa chiave privata, potrò decifrare le e-mail.




              Some rights reserved: http://www.maury.it#licenza                    10
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Ora vediamo un altro possibile utilizzo di un certificato a chiave asimmetrica. Immaginiamo di
poter effettuare un'operazione tramite la chiave privata su di un messaggio scritto da me. Questa
operazione, tenendo conto del mittente e di ogni singolo carattere che compone il messaggio, darà
un risultato univoco che potrà essere ottenuto solo ed esclusivamente se la suddetta operazione sia
stata effettuata con la mia chiave privata. Il risultato sarà una sorta di checksum, poiché tiene conto
di tutti i singoli byte che compongono la mail. Se il mittente fosse un altro o se un solo carattere
fosse differente, la checksum sarebbe diversa.




              Some rights reserved: http://www.maury.it#licenza                    11
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Chi è in possesso della chiave pubblica non potrà effettuare la stessa operazione ottenendo lo stesso
risultato, però potrà effettuare una verifica sul fatto che quel risultato può averlo prodotto solo ed
esclusivamente la chiave privata ad essa collegata.
Ho appena trovato il sistema per firmare digitalmente il mio messaggio: esso è stato inviato
sicuramente dal proprietario della chiave privata; in più, tramite la checksum, posso essere anche
sicuro che durante il suo tragitto la mail non ha subito alterazioni di alcun genere; nemmeno un
carattere è stato modificato.
Ora c'è una piccola attenzione da mantenere. Io dovrò distribuire la mia chiave pubblica. Per
questo le strade sono tre: incontro di persona “face to face”, anche attraverso i key-party, dei veri e
propri incontri organizzati per scambiarsi le chiavi pubbliche; la posso mettere sul mio sito internet
personale; oppure ci sono a disposizione dei key-server dove ognuno può inserire la propria chiave
pubblica e dove gli utenti possono fare delle ricerche, come se fossero degli elenchi on-line. La cosa
da verificare in tutti i casi è che la chiave pubblica sia realmente della persona che si pensa. Se sono
sicuro che la chiave sia di tizio, ma in realtà è di caio, il sistema dell'autenticazione è fortemente
compromesso.
L'autenticazione sarà sempre meglio farla di persona. Anche un sito web può dare garanzie; ad
esempio, chi mi conosce, sa benissimo che maury.it è il mio sito e quindi segue che la chiave che si
trova su http://www.maury.it/gpg posso averla inserita lì solo io, quindi è mia; però in tutti gli altri
casi, l'autenticazione faccia a faccia è la garanzia più sicura.


              Some rights reserved: http://www.maury.it#licenza                    12
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)

Io personalmente porto sempre in tasca un foglietto con su scritto il codice del mio certificato
GnuPG: 0x51F1316C. In questa maniera, chiunque mi incontri, può chiedermi il codice e verificare
così che quella che ha trovato sul mio sito web, su un key-server o sulle mie e-mail firmate (tante
volte avessi allegato la chiave pubblica) sia veramente mia; una volta che l'autenticazione la faccio
io di persona, può stare sicurissimo che quel certificato è realmente mio.




Vediamo ora come procurarci un certificato digitale.
Alcune aziende rilasciano dei certificati secondo lo standard S/MIME. Questo standard è supportato
nativamente dalla maggior parte dei client e-mail, quindi non ci sarà bisogno di installare plugin e/o
estensioni aggiuntivi.
La prima azienda che segnalo e Thawte. È sudafricana e rilascia gratuitamente certificati ad uso
personale. Thawte, con il classico sistema del “Rispondi a questa e-mail...” può verificare
l'autenticità del vostro indirizzo di posta elettronica. Per l'identità anagrafica, per poter inserire cioè
nel certificato il vostro nome ed il vostro cognome, utilizza il sistema dei notai: il Web Of Trust.
Gente autenticata e reputata affidabile dalla ditta (i notai) viene delegata a dare un punteggio da 10
a 35, in base alla propria anzianità di servizio, dopo aver verificato personalmente l'identità di un
nuovo utente. Un utente, raggiungendo 50 punti, viene dichiarato autenticato da Thawte e quindi



               Some rights reserved: http://www.maury.it#licenza                    13
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)

avrà nome e cognome inseriti nel certificato. Al raggiungimento di 100 punti si diviene notai e si
può autenticare quindi altri utenti. Naturalmente il sistema dell'identità anagrafica è soggetta alla
serietà dei notai; per la veridicità dell'indirizzo e-mail bisogna, invece, fidarsi di Thawte; sarà
questa azienda a fare da garante. I notai Thawte sono ormai in tutto il mondo; alcuni autenticano in
maniera gratuita, altri chiedono delle piccole cifre; sul sito si possono trovare i notai più vicini alla
propria zona. Se qualcuno avesse bisogno, io sono notaio e, conoscendo altri notai, posso far avere
l'autenticazione praticamente al volo, in maniera totalmente gratuita, dato che mi piace fare
divulgazione di sicurezza informatica per pura passione.
Altri certificati digitali vengono rilasciati anche da ditte italiane tipo GlobalTrust, Poste Italiane e
diversi istituti bancari. GlobalTrust rilascia anch'essa certificati gratuiti per uso personale. Le altre,
invece, come servizio a pagamento: agli sportelli avverrà la procedura di autenticazione e poi verrà
rilasciato il software contenente il certificato in appositi CD-ROM.
Con questo sistema la firma digitale è valorizzata da delle authority riconosciute. Thawte è
riconosciuta a livello mondiale da diversi anni. Le altre, invece, all'estero potrebbero avere meno
fiducia: non so quanta credibilità possa avere, ad esempio, in Canada una mail certificata da
un'authority come Poste Italiane.




Questo sistema delle authority potrebbe non piacermi: voglio essere io l'unico garante della mia
identità. Quindi ho bisogno di uno strumento per crearmi da me un certificato digitale a chiave
asimmetrica. Ecco GnuPG.


               Some rights reserved: http://www.maury.it#licenza                    14
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




GnuPG è multipiattaforma ed open-source. Si utilizza nativamente da linea di comando come una
shell o il prompt di MS-DOS.
Non mancano tuttavia le intefaccine grafiche:
Enigmail è l'estensione per i programmi Mozilla. Contiene un tool grafico per la gestione delle
chiavi.
Gnu Privacy Assistant (o GPA), Seahorse e Geheimnis sono diverse interfaccine open-source.
WinPT è il pacchetto per Windows; contiene, oltre GnuPG precompilato, anche un'interfaccia
grafica ed il plugin per Outlook Express. Un'altra ottima interfaccia grafica per Windows è
GPGshell.




              Some rights reserved: http://www.maury.it#licenza                    15
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)

Vediamo l'utilizzo principale di GnuPG da linea di comando.




Una volta che il programma è stato installato, la prima cosa da fare è creare un certificato digitale. Il
comando sarà:


                                           gpg --gen-key


Verranno richieste alcune informazioni personali: nome e cognome, e-mail ed eventuali commenti.
Successivamente sarà possibile inserire nel certificato altri indirizzi e-mail; in questa fase
limitiamoci a dare solo il principale.
Verrà richiesta la lunghezza della chiave desiderata; per avere la miglior sicurezza è sempre bene
chiedere la lunghezza maggiore possibile.




               Some rights reserved: http://www.maury.it#licenza                    16
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Verrà poi chiesta una passphrase, una specie di password, che verrà richiesta ad ogni utilizzo della
chiave privata. Questa è un'ulteriore sicurezza in più, tante volte la nostra chiave privata cada in
mani di terzi.
Riguardo alla scelta della passphrase è sempre meglio rispettare le solite regolette: evitiamo le
parole di senso compiuto, mischiare caratteri maiuscoli, caratteri minuscoli e cifre e dare sempre
una passphrase di almeno 8 caratteri.




              Some rights reserved: http://www.maury.it#licenza                    17
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Possiamo poi esportare od importare le chiavi pubbliche di altri o addirittura le nostre chiavi; questo
è utile ad esempio se si vuole utilizzare i certificati su più PC o su più sistemi operativi.


               gpg --export -a nome_chiave-o-stringa_contenuta


Dando l'output in un file con “> nome_file.asc“ verrà scritta la chiave su di un file. L'opzione
-a permette l'esportazione in ascii a 7 bit, invece che in un file binario. GnuPG riconoscerà la
chiave richiesta anche da una semplice stringa contenuta nell'indirizzo e-mail o nel nome e
cognome.
Le chiavi esportate su di un file potranno poi essere importate con


                                   gpg --import nome_file




              Some rights reserved: http://www.maury.it#licenza                    18
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




La revoca di una chiave è importante se la chiave privata cadesse in mani altrui e quindi la sicurezza
ad essa collegata fosse compromessa.
Conviene quindi creare un certificato di revoca da subito, conservandolo in un luogo sicuro in caso
di bisogno.


                                        gpg --gen-revoke


anche qui si potrà riindirizzare il certificato ad un file. Se la chiave privata non sarà più utilizzabile
(perché ne è compromessa la sicurezza o per un qualsiasi altro motivo), il certificato di revoca sarà
la garanzia della validità decaduta. Ricordarsi, in caso di revoca di una chiave, di trasmettere il
certificato di revoca ai vari keyserver dove la chiave era stata registrata.
Poiché per creare un certificato di revoca è necessaria la chiave privata e poiché questa potrebbe
andare perduta, come detto sopra è buona norma creare la revoca da subito.




               Some rights reserved: http://www.maury.it#licenza                    19
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Le chiavi importate, compresa la propria, possono essere amministrate per aggiungere nuovi
indirizzi e-mail, rimuovere indirizzi e-mail e molte altre modifiche e/o correzioni.


                 gpg --edit-key nome_key-o-stringa_contenuta


Comparirà un prompt per i comandi; con help si avrà l'elenco di tutti i comandi disponibili per
amministrare le chiavi.




             Some rights reserved: http://www.maury.it#licenza                    20
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Quando importeremo una chiave pubblica di qualcuno, questa sarà inserita nel nostro archivio, una
sorta di portachiavi virtuale. È qui che il client di posta andrà a verificare il messaggio firmato
digitalmente. Se la chiave pubblica archiviata nel nostro portachiavi verificherà il messaggio, il
client dirà che la firma digitale è corretta.
Bisogna però far sapere al client che la chiave pubblica appartiene realmente alla persona che ha
mandato l'e-mail. Dopo esserci assicurati di persona ed in piena sicurezza di chi sia il proprietario di
quella chiave, potremo firmare la sua chiave pubblica come “verificata”. Firmando la chiave diremo
a GnuPG che quella chiave pubblica è affidabile.




              Some rights reserved: http://www.maury.it#licenza                    21
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Ecco come Mozilla Thunderbird segnala le e-mail firmate digitalmente. Nel primo caso l'e-mail è
dichiarata correttamente firmata, ma non ci sono garanzie su chi sia il reale proprietario del
certificato utilizzato. Nel secondo caso, invece, la firma è verificata da una chiave pubblica firmata.




              Some rights reserved: http://www.maury.it#licenza                    22
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Un ulteriore funzione di GnuPG dà la possibilità di apporre una firma digitale ad un file (un
documento, una foto, ecc.).


                               gpg --sign -b -a nome_file


Questo comando genererà una firma digitale del file con la chiave privata. Si otterrà un file con
ulteriore estensione .asc (.sig senza l'opzione -a che esporta la firma in file ASCII).
Per verificare la firma, avendo a disposizione la chiave pubblica relativa alla privata che l'ha
firmato:


gpg --verify nome_file.asc (.sig)




              Some rights reserved: http://www.maury.it#licenza                    23
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Come ultimo utilizzo di GnuPG segnalo brevemente la criptazione di file.


                                        gpg -e nome_file


cripterà il file con la chiave pubblica che verrà specificata alla domanda successiva al lancio del
comando. Si otterrà un file con ulteriore estensione .gpg assolutamente non interpretabile se non
dopo la decriptazione.
Per decriptare il file, avendo a disposizione la chiave privata relativa alla pubblica che l'ha criptato:


                           gpg -d nome_file.gpg > nome_file


Abbiamo così a disposizione uno strumento per criptare ad esempio dei file delicati, tipo quelli
contenenti i nostri codici o le nostre password.



               Some rights reserved: http://www.maury.it#licenza                    24
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)




Come bibliografia segnalo questi due siti internet:


                     http://www.gnupg.org/(it)/howtos/it/GPGMiniHowto.html
HowTo ufficiale in italiano di GnuPG


                                         http://thawte.ascia.net
Documentazione scritta da due notai Thawte di Roma. Molto chiara per il discorso del certificato a
chiavi pubblica/privata.

Ed in più, per approfondire, le pagine man di gpg.




Spero che questo documento possa servire a sensibilizzare ed a far diffondere l'utilizzo di S/MIME
e/o GnuPG. Non è bene che l'umanità continui ad affidarsi a sistemi bacati dal punto di vista della
sicurezza, ignorandone totalmente i rischi.



              Some rights reserved: http://www.maury.it#licenza                    25
Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it)

Io personalmente firmo digitalmente tutte le mie e-mail. Utilizzando Thawte con chi non utilizza
GnuPG e, invece, quest'ultimo con chi so che lo utilizza. Avendo a disposizione anche la chiave
pubblica del destinatario, cripto anche i messaggi.




Schermata del mio Thunderbird; si notino i due tastini per criptare/firmare con GnuPG o S/MIME

Quando questi sistemi saranno maggiormente diffusi, viaggeranno in rete messaggi di posta
elettronica in tutta sicurezza. Per ora e fino ad allora meglio rendere noto a tutti che non è così.




              Some rights reserved: http://www.maury.it#licenza                    26

Contenu connexe

Similaire à LinuxBeach 2006 - Criptografia e firma digitale con GnuPG - trascrizione

Crittografia firma digitale
Crittografia firma digitaleCrittografia firma digitale
Crittografia firma digitalejamboo
 
Linux, sicurezza & social hacking
Linux, sicurezza & social hackingLinux, sicurezza & social hacking
Linux, sicurezza & social hackingFabio Mora
 
Sicurezza Delle Reti
Sicurezza Delle RetiSicurezza Delle Reti
Sicurezza Delle Retimariolotto89
 
Simulazione di un Penetration Test
Simulazione di un Penetration TestSimulazione di un Penetration Test
Simulazione di un Penetration TestSalvatore Lentini
 
Blockchain! - Luglio 2018 Convegno SGI a Bevagna
Blockchain! - Luglio 2018  Convegno SGI a BevagnaBlockchain! - Luglio 2018  Convegno SGI a Bevagna
Blockchain! - Luglio 2018 Convegno SGI a BevagnaSandro Fontana
 
Pericoli nascosti di internet e tipologie di virus
Pericoli nascosti di internet e tipologie di virusPericoli nascosti di internet e tipologie di virus
Pericoli nascosti di internet e tipologie di virusGiovanni Mennea
 
Workshop sulla Sicurezza Informatica
Workshop sulla Sicurezza InformaticaWorkshop sulla Sicurezza Informatica
Workshop sulla Sicurezza InformaticaNextre Engineering
 
La crittografia
La crittografiaLa crittografia
La crittografialukarosati
 
Social Media Web & Smart Apps
Social Media Web & Smart AppsSocial Media Web & Smart Apps
Social Media Web & Smart AppsFederico Longhin
 
Incontro con Ernesto Hofmann sulla BlockChain
Incontro con Ernesto Hofmann sulla BlockChainIncontro con Ernesto Hofmann sulla BlockChain
Incontro con Ernesto Hofmann sulla BlockChainmobi-TECH
 
Professor Ernesto Hofmann - Blockchain
Professor Ernesto Hofmann - BlockchainProfessor Ernesto Hofmann - Blockchain
Professor Ernesto Hofmann - BlockchainMarco Turolla
 
Come recuperare file crittografati da diversi dispositivi [2022].pdf
Come recuperare file crittografati da diversi dispositivi [2022].pdfCome recuperare file crittografati da diversi dispositivi [2022].pdf
Come recuperare file crittografati da diversi dispositivi [2022].pdfHelpRansomware
 
Sicurezza in rete - eGovernment
Sicurezza in rete - eGovernmentSicurezza in rete - eGovernment
Sicurezza in rete - eGovernmentDIno
 
CCI2018 - Ethical Hacking, gli step di un attacco e le contromisure
CCI2018 - Ethical Hacking, gli step di un attacco e le contromisureCCI2018 - Ethical Hacking, gli step di un attacco e le contromisure
CCI2018 - Ethical Hacking, gli step di un attacco e le contromisurewalk2talk srl
 
Tesi Triennale - X509 e PGP
Tesi Triennale - X509 e PGPTesi Triennale - X509 e PGP
Tesi Triennale - X509 e PGPFabio Pustetto
 

Similaire à LinuxBeach 2006 - Criptografia e firma digitale con GnuPG - trascrizione (20)

Crittografia firma digitale
Crittografia firma digitaleCrittografia firma digitale
Crittografia firma digitale
 
Linux, sicurezza & social hacking
Linux, sicurezza & social hackingLinux, sicurezza & social hacking
Linux, sicurezza & social hacking
 
Sicurezza Delle Reti
Sicurezza Delle RetiSicurezza Delle Reti
Sicurezza Delle Reti
 
Acciaio ...inux!
Acciaio ...inux!Acciaio ...inux!
Acciaio ...inux!
 
L'assedio nella rete
L'assedio nella reteL'assedio nella rete
L'assedio nella rete
 
Simulazione di un Penetration Test
Simulazione di un Penetration TestSimulazione di un Penetration Test
Simulazione di un Penetration Test
 
Paranoia is a virtue
Paranoia is a virtueParanoia is a virtue
Paranoia is a virtue
 
Crittografia
CrittografiaCrittografia
Crittografia
 
Blockchain! - Luglio 2018 Convegno SGI a Bevagna
Blockchain! - Luglio 2018  Convegno SGI a BevagnaBlockchain! - Luglio 2018  Convegno SGI a Bevagna
Blockchain! - Luglio 2018 Convegno SGI a Bevagna
 
Pericoli nascosti di internet e tipologie di virus
Pericoli nascosti di internet e tipologie di virusPericoli nascosti di internet e tipologie di virus
Pericoli nascosti di internet e tipologie di virus
 
Workshop sulla Sicurezza Informatica
Workshop sulla Sicurezza InformaticaWorkshop sulla Sicurezza Informatica
Workshop sulla Sicurezza Informatica
 
La crittografia
La crittografiaLa crittografia
La crittografia
 
Social Media Web & Smart Apps
Social Media Web & Smart AppsSocial Media Web & Smart Apps
Social Media Web & Smart Apps
 
Incontro con Ernesto Hofmann sulla BlockChain
Incontro con Ernesto Hofmann sulla BlockChainIncontro con Ernesto Hofmann sulla BlockChain
Incontro con Ernesto Hofmann sulla BlockChain
 
Professor Ernesto Hofmann - Blockchain
Professor Ernesto Hofmann - BlockchainProfessor Ernesto Hofmann - Blockchain
Professor Ernesto Hofmann - Blockchain
 
Crittografia massimiliano tanzi
Crittografia massimiliano tanziCrittografia massimiliano tanzi
Crittografia massimiliano tanzi
 
Come recuperare file crittografati da diversi dispositivi [2022].pdf
Come recuperare file crittografati da diversi dispositivi [2022].pdfCome recuperare file crittografati da diversi dispositivi [2022].pdf
Come recuperare file crittografati da diversi dispositivi [2022].pdf
 
Sicurezza in rete - eGovernment
Sicurezza in rete - eGovernmentSicurezza in rete - eGovernment
Sicurezza in rete - eGovernment
 
CCI2018 - Ethical Hacking, gli step di un attacco e le contromisure
CCI2018 - Ethical Hacking, gli step di un attacco e le contromisureCCI2018 - Ethical Hacking, gli step di un attacco e le contromisure
CCI2018 - Ethical Hacking, gli step di un attacco e le contromisure
 
Tesi Triennale - X509 e PGP
Tesi Triennale - X509 e PGPTesi Triennale - X509 e PGP
Tesi Triennale - X509 e PGP
 

Plus de Maurizio Antonelli

Linux e fs - Storia e caratteristiche vincenti
Linux e fs - Storia e caratteristiche vincentiLinux e fs - Storia e caratteristiche vincenti
Linux e fs - Storia e caratteristiche vincentiMaurizio Antonelli
 
Linux e Free Software - Storia e caratteristiche vincenti
Linux e Free Software - Storia e caratteristiche vincentiLinux e Free Software - Storia e caratteristiche vincenti
Linux e Free Software - Storia e caratteristiche vincentiMaurizio Antonelli
 
Linux e fs storia e caratteristiche vincenti
Linux e fs   storia e caratteristiche vincentiLinux e fs   storia e caratteristiche vincenti
Linux e fs storia e caratteristiche vincentiMaurizio Antonelli
 
Corso arbitrale kumite - maestro G. Visciano - ASI Abruzzo 2010
Corso arbitrale kumite - maestro G. Visciano - ASI Abruzzo 2010Corso arbitrale kumite - maestro G. Visciano - ASI Abruzzo 2010
Corso arbitrale kumite - maestro G. Visciano - ASI Abruzzo 2010Maurizio Antonelli
 
Al di là del cielo... Guardando oltre le stelle - trascrizione
Al di là del cielo... Guardando oltre le stelle - trascrizioneAl di là del cielo... Guardando oltre le stelle - trascrizione
Al di là del cielo... Guardando oltre le stelle - trascrizioneMaurizio Antonelli
 
Fabio Riccio - Un'esperienza di free-software nelle scuole
Fabio Riccio - Un'esperienza di free-software nelle scuoleFabio Riccio - Un'esperienza di free-software nelle scuole
Fabio Riccio - Un'esperienza di free-software nelle scuoleMaurizio Antonelli
 
10-06-2008 Contributi specifici del karate all'attività sportiva, in età scol...
10-06-2008 Contributi specifici del karate all'attività sportiva, in età scol...10-06-2008 Contributi specifici del karate all'attività sportiva, in età scol...
10-06-2008 Contributi specifici del karate all'attività sportiva, in età scol...Maurizio Antonelli
 
Al di là del cielo... guardando oltre le stelle
Al di là del cielo... guardando oltre le stelleAl di là del cielo... guardando oltre le stelle
Al di là del cielo... guardando oltre le stelleMaurizio Antonelli
 
13-05-2006 - Il compostaggio domestico
13-05-2006 - Il compostaggio domestico13-05-2006 - Il compostaggio domestico
13-05-2006 - Il compostaggio domesticoMaurizio Antonelli
 
LinuxDay 2005 - Multimedialità con Linux - slides
LinuxDay 2005 - Multimedialità con Linux - slidesLinuxDay 2005 - Multimedialità con Linux - slides
LinuxDay 2005 - Multimedialità con Linux - slidesMaurizio Antonelli
 
LinuxDay 2005 - Multimedialità con Linux - trascrizione
LinuxDay 2005 - Multimedialità con Linux - trascrizioneLinuxDay 2005 - Multimedialità con Linux - trascrizione
LinuxDay 2005 - Multimedialità con Linux - trascrizioneMaurizio Antonelli
 
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...Maurizio Antonelli
 
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - trascrizione
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - trascrizioneLinuxDay 2004 - Linux - Storia e caratteristiche vincenti - trascrizione
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - trascrizioneMaurizio Antonelli
 
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slidesLinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slidesMaurizio Antonelli
 

Plus de Maurizio Antonelli (14)

Linux e fs - Storia e caratteristiche vincenti
Linux e fs - Storia e caratteristiche vincentiLinux e fs - Storia e caratteristiche vincenti
Linux e fs - Storia e caratteristiche vincenti
 
Linux e Free Software - Storia e caratteristiche vincenti
Linux e Free Software - Storia e caratteristiche vincentiLinux e Free Software - Storia e caratteristiche vincenti
Linux e Free Software - Storia e caratteristiche vincenti
 
Linux e fs storia e caratteristiche vincenti
Linux e fs   storia e caratteristiche vincentiLinux e fs   storia e caratteristiche vincenti
Linux e fs storia e caratteristiche vincenti
 
Corso arbitrale kumite - maestro G. Visciano - ASI Abruzzo 2010
Corso arbitrale kumite - maestro G. Visciano - ASI Abruzzo 2010Corso arbitrale kumite - maestro G. Visciano - ASI Abruzzo 2010
Corso arbitrale kumite - maestro G. Visciano - ASI Abruzzo 2010
 
Al di là del cielo... Guardando oltre le stelle - trascrizione
Al di là del cielo... Guardando oltre le stelle - trascrizioneAl di là del cielo... Guardando oltre le stelle - trascrizione
Al di là del cielo... Guardando oltre le stelle - trascrizione
 
Fabio Riccio - Un'esperienza di free-software nelle scuole
Fabio Riccio - Un'esperienza di free-software nelle scuoleFabio Riccio - Un'esperienza di free-software nelle scuole
Fabio Riccio - Un'esperienza di free-software nelle scuole
 
10-06-2008 Contributi specifici del karate all'attività sportiva, in età scol...
10-06-2008 Contributi specifici del karate all'attività sportiva, in età scol...10-06-2008 Contributi specifici del karate all'attività sportiva, in età scol...
10-06-2008 Contributi specifici del karate all'attività sportiva, in età scol...
 
Al di là del cielo... guardando oltre le stelle
Al di là del cielo... guardando oltre le stelleAl di là del cielo... guardando oltre le stelle
Al di là del cielo... guardando oltre le stelle
 
13-05-2006 - Il compostaggio domestico
13-05-2006 - Il compostaggio domestico13-05-2006 - Il compostaggio domestico
13-05-2006 - Il compostaggio domestico
 
LinuxDay 2005 - Multimedialità con Linux - slides
LinuxDay 2005 - Multimedialità con Linux - slidesLinuxDay 2005 - Multimedialità con Linux - slides
LinuxDay 2005 - Multimedialità con Linux - slides
 
LinuxDay 2005 - Multimedialità con Linux - trascrizione
LinuxDay 2005 - Multimedialità con Linux - trascrizioneLinuxDay 2005 - Multimedialità con Linux - trascrizione
LinuxDay 2005 - Multimedialità con Linux - trascrizione
 
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
LinuxDay 2005 - Linux e FS - Storia e caratteristiche vincenti - versione rid...
 
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - trascrizione
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - trascrizioneLinuxDay 2004 - Linux - Storia e caratteristiche vincenti - trascrizione
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - trascrizione
 
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slidesLinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
 

LinuxBeach 2006 - Criptografia e firma digitale con GnuPG - trascrizione

  • 1. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) CRIPTOGRAFIA E FIRMA DIGITALE con GnuPG - USARE LA POSTA ELETTRONICA IN PIENA SICUREZZA - Maurizio “maury” Antonelli http://www.maury.it Some rights reserved: http://www.maury.it#licenza 1
  • 2. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) La presente conferenza l'ho tenuta per la prima volta a San Benedetto del Tronto (AP) in occasione del Linux Beach 2006. Oltre che come documentazione per gli interessati, spero vivamente che possa far aumentare la consapevolezza della non sicurezza dello strumento “posta elettronica” e contribuisca a far adottare agli utenti gli adeguati strumenti di implementazione. Some rights reserved: http://www.maury.it#licenza 2
  • 3. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Iniziamo con questo concetto fondamentale: “La posta elettronica non è uno strumento sicuro”. Infatti, quasi tutte le e-mail che viaggiano in rete sono in chiaro, senza alcuna forma di codifica. Come ben saprete, un messaggio di posta elettronica, da quando parte dal PC del suo mittente a quando arriva al PC del suo destinatario, attraversa diverse macchine in rete, ognuna delle quali si occupa di “instradarlo” nella giusta direzione. Chiunque si trovi ai comandi di una qualsiasi di queste macchine può quindi visualizzare (sniffare) questi messaggi, con grande rischio per la privacy del mittente e del destinatario. Ancora: viaggiano in chiaro anche UserID e Password nella fase di autenticazione ai server POP3 (posta in entrata) e SMTP (posta in uscita). Per questo motivo è sempre buona norma utilizzare dei server che forniscano il servizio di autenticazione tramite criptazione in TSL o in SSL, onde evitare che qualcuno prenda il controllo della propria casella e-mail. Altro problema: il mittente di un'e-mail non è mai garantito. Con pochissimi accorgimenti si può far credere ai più sprovveduti di essere chiunque. Some rights reserved: http://www.maury.it#licenza 3
  • 4. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Ecco qui un esempio con Mozilla Thunderbird. Nella configurazione degli account di posta chiunque può impostare un falso mittente. Posso far credere a chiunque di essere un'autorità, una banca o qualsiasi altra cosa. Semplicemente così posso “imbrogliare” tranquillamente il 90%-95% degli utenti. In pochi saranno in grado di accorgersi delle anomalie che saranno ancora presenti comunque negli header del messaggio di posta. Ulteriori trucchetti, che non illustro qui, possono far scomparire anche queste restanti tracce... Et voilà... Il gioco è fatto. Some rights reserved: http://www.maury.it#licenza 4
  • 5. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Iniziamo con il criptare la posta. In questo modo potrà leggere correttamente il nostro messaggio solo chi vorremo noi. Il mondo da sempre è pieno di sistemi di codifica. I più semplici: anagrammare le parole, sostituire i caratteri e molti altri metodi, più o meno sofisticati. Facciamo un esempio: la nostra e-mail viaggerà in rete sotto forma di byte, sotto forma di valori X compresi tra 0 e 255. Sostituiamo a questi valori X i valori X+2 per X compreso tra 0 e 253. Sostituiamo poi a 254 e 255 rispettivamente 0 e 1. Abbiamo appena inventato una chiave di codifica. Solo chi possiederà questa chiave (perché l'ha avuta da me o perché l'ha scoperta) sarà in grado di capire il contenuto del messaggio, gli altri no. Questo è un semplicissimo esempio di codifica. Molti bambini, anche nelle più giovani età, si divertono ad inventare sistemi così semplici per trasmettersi i propri segreti o semplicemente per proteggerli. Personalmente trovo i sistemi di codifica anche una cosa molto divertente ed appassionante. Some rights reserved: http://www.maury.it#licenza 5
  • 6. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Quello illustrato sopra è un semplice esempio di codifica a chiave simmetrica: mittente e destinatario useranno la stessa chiave, il primo per codificare ed il secondo per decodificare. Non è un sistema utile per quello che sarà il nostro scopo, poiché non sarà un sistema estendibile a terzi. Se, infatti, un utente A ed un utente B utilizzano una chiave di codifica per le proprie comunicazioni, questa non potrà essere utilizzata da A con l'utente C. Infatti, decaderebbe la privacy tra A e B. Se l'utente A, per superare questo problema, inventasse ed utilizzasse una chiave per ogni altro utente, avrebbe da gestire un numero enorme di sistemi di codifica e ben presto il sistema diventerebbe difficilmente gestibile. Some rights reserved: http://www.maury.it#licenza 6
  • 7. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Soluzione al problema: il certificato a chiave asimmetrica. Verrà adottato un sistema che utilizzerà un certificato composto da due chiavi distinte, una privata ed una pubblica. Some rights reserved: http://www.maury.it#licenza 7
  • 8. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) La chiave privata dovrà rimanere esclusivamente nelle mani del proprietario del certificato. Andrà conservata con assoluta attenzione. Verrà utilizzata dall'utente possessore per decriptare i messaggi che saranno indirizzati a lui ed in più sarà utilizzata per apporre al messaggio una firma digitale che ne garantirà la reale identità del mittente. La chiave pubblica potrà, invece, essere distribuita al mondo intero, senza il rischio di incorrere in alcun pericolo. Essa verrà utilizzata per criptare i messaggi indirizzati al proprietario del relativo certificato; solo il possessore della relativa chiave privata potrà decriptare il messaggio. Chiunque altro vedrà una serie di byte/caratteri senza alcun significato. Inoltre, verrà utilizzata per verificare la firma digitale che è stata apposta con la chiave privata. La chiave pubblica potrà essere distribuita senza controllo a chiunque. Il fatto che cada in mani estranee non costituirà alcun pericolo. La massima attenzione dovrà essere rivolta esclusivamente alla chiave privata, che dovrà rimanere rigorosamente nelle mani del leggittimo proprietario. Se quest'ultima non cadrà in mani estranee, il sistema sarà sicuro al 100% (anche se in molti dipartimenti di matematica stanno continuando a verificarne la totale sicurezza). Se i concetti esposti fin qui sono ben chiari, il resto ora sarà tutto in discesa. Some rights reserved: http://www.maury.it#licenza 8
  • 9. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Proviamo a capire come possa funzionare un certificato a chiave asimmetrica. L'esempio che segue non è applicabile per quelle che saranno le nostre finalità, però dà un'idea chiara di come in matematica esistano delle funzioni non biunivoche adatte allo scopo. Immaginiamo di dover trasmettere questi dati: 4, -2, -1 e 5. Ora la chiave pubblica, con cui cripterò la sequenza dei quattro numeri, consisterà nell'elevare al quadrato ognuno di essi. Avremo così: 16, 4, 1 e 25. Un altro utente che avrà in mano soltanto questa chiave pubblica sarà in grado di decriptare i dati? La risposta è no. Infatti, partiamo dal primo dato: 16. Sappiamo, dalla chiave pubblica, che è il risultato di un numero che è stato elevato al quadrato. Operazione inversa: la radice quadrata; ma la radice quadrata di 16 non è univoca. Il risultato è sì 4, ma è anche -4. Come facciamo a sapere quale dei due prendere? Con la sola chiave pubblica non possiamo. Some rights reserved: http://www.maury.it#licenza 9
  • 10. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Come detto sopra, l'esempio non è utilizzabile: il procedimento di criptazione è troppo semplice per essere efficiente; però rende molto bene l'idea di come funzioni matematiche non invertibili maggiormente complicate, possano essere utilizzate per il nostro fine. Trovando delle funzioni molto più adatte, posso raggiungere il mio scopo: creare un certificato a doppia chiave con cui poter criptare con la pubblica e poter decriptare solo ed esclusivamente con la privata. A questo punto distribuirò la chiave pubblica e chiunque potrà criptarci i messaggi a me indirizzati. Solo ed esclusivamente io, possessore della relativa chiave privata, potrò decifrare le e-mail. Some rights reserved: http://www.maury.it#licenza 10
  • 11. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Ora vediamo un altro possibile utilizzo di un certificato a chiave asimmetrica. Immaginiamo di poter effettuare un'operazione tramite la chiave privata su di un messaggio scritto da me. Questa operazione, tenendo conto del mittente e di ogni singolo carattere che compone il messaggio, darà un risultato univoco che potrà essere ottenuto solo ed esclusivamente se la suddetta operazione sia stata effettuata con la mia chiave privata. Il risultato sarà una sorta di checksum, poiché tiene conto di tutti i singoli byte che compongono la mail. Se il mittente fosse un altro o se un solo carattere fosse differente, la checksum sarebbe diversa. Some rights reserved: http://www.maury.it#licenza 11
  • 12. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Chi è in possesso della chiave pubblica non potrà effettuare la stessa operazione ottenendo lo stesso risultato, però potrà effettuare una verifica sul fatto che quel risultato può averlo prodotto solo ed esclusivamente la chiave privata ad essa collegata. Ho appena trovato il sistema per firmare digitalmente il mio messaggio: esso è stato inviato sicuramente dal proprietario della chiave privata; in più, tramite la checksum, posso essere anche sicuro che durante il suo tragitto la mail non ha subito alterazioni di alcun genere; nemmeno un carattere è stato modificato. Ora c'è una piccola attenzione da mantenere. Io dovrò distribuire la mia chiave pubblica. Per questo le strade sono tre: incontro di persona “face to face”, anche attraverso i key-party, dei veri e propri incontri organizzati per scambiarsi le chiavi pubbliche; la posso mettere sul mio sito internet personale; oppure ci sono a disposizione dei key-server dove ognuno può inserire la propria chiave pubblica e dove gli utenti possono fare delle ricerche, come se fossero degli elenchi on-line. La cosa da verificare in tutti i casi è che la chiave pubblica sia realmente della persona che si pensa. Se sono sicuro che la chiave sia di tizio, ma in realtà è di caio, il sistema dell'autenticazione è fortemente compromesso. L'autenticazione sarà sempre meglio farla di persona. Anche un sito web può dare garanzie; ad esempio, chi mi conosce, sa benissimo che maury.it è il mio sito e quindi segue che la chiave che si trova su http://www.maury.it/gpg posso averla inserita lì solo io, quindi è mia; però in tutti gli altri casi, l'autenticazione faccia a faccia è la garanzia più sicura. Some rights reserved: http://www.maury.it#licenza 12
  • 13. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Io personalmente porto sempre in tasca un foglietto con su scritto il codice del mio certificato GnuPG: 0x51F1316C. In questa maniera, chiunque mi incontri, può chiedermi il codice e verificare così che quella che ha trovato sul mio sito web, su un key-server o sulle mie e-mail firmate (tante volte avessi allegato la chiave pubblica) sia veramente mia; una volta che l'autenticazione la faccio io di persona, può stare sicurissimo che quel certificato è realmente mio. Vediamo ora come procurarci un certificato digitale. Alcune aziende rilasciano dei certificati secondo lo standard S/MIME. Questo standard è supportato nativamente dalla maggior parte dei client e-mail, quindi non ci sarà bisogno di installare plugin e/o estensioni aggiuntivi. La prima azienda che segnalo e Thawte. È sudafricana e rilascia gratuitamente certificati ad uso personale. Thawte, con il classico sistema del “Rispondi a questa e-mail...” può verificare l'autenticità del vostro indirizzo di posta elettronica. Per l'identità anagrafica, per poter inserire cioè nel certificato il vostro nome ed il vostro cognome, utilizza il sistema dei notai: il Web Of Trust. Gente autenticata e reputata affidabile dalla ditta (i notai) viene delegata a dare un punteggio da 10 a 35, in base alla propria anzianità di servizio, dopo aver verificato personalmente l'identità di un nuovo utente. Un utente, raggiungendo 50 punti, viene dichiarato autenticato da Thawte e quindi Some rights reserved: http://www.maury.it#licenza 13
  • 14. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) avrà nome e cognome inseriti nel certificato. Al raggiungimento di 100 punti si diviene notai e si può autenticare quindi altri utenti. Naturalmente il sistema dell'identità anagrafica è soggetta alla serietà dei notai; per la veridicità dell'indirizzo e-mail bisogna, invece, fidarsi di Thawte; sarà questa azienda a fare da garante. I notai Thawte sono ormai in tutto il mondo; alcuni autenticano in maniera gratuita, altri chiedono delle piccole cifre; sul sito si possono trovare i notai più vicini alla propria zona. Se qualcuno avesse bisogno, io sono notaio e, conoscendo altri notai, posso far avere l'autenticazione praticamente al volo, in maniera totalmente gratuita, dato che mi piace fare divulgazione di sicurezza informatica per pura passione. Altri certificati digitali vengono rilasciati anche da ditte italiane tipo GlobalTrust, Poste Italiane e diversi istituti bancari. GlobalTrust rilascia anch'essa certificati gratuiti per uso personale. Le altre, invece, come servizio a pagamento: agli sportelli avverrà la procedura di autenticazione e poi verrà rilasciato il software contenente il certificato in appositi CD-ROM. Con questo sistema la firma digitale è valorizzata da delle authority riconosciute. Thawte è riconosciuta a livello mondiale da diversi anni. Le altre, invece, all'estero potrebbero avere meno fiducia: non so quanta credibilità possa avere, ad esempio, in Canada una mail certificata da un'authority come Poste Italiane. Questo sistema delle authority potrebbe non piacermi: voglio essere io l'unico garante della mia identità. Quindi ho bisogno di uno strumento per crearmi da me un certificato digitale a chiave asimmetrica. Ecco GnuPG. Some rights reserved: http://www.maury.it#licenza 14
  • 15. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) GnuPG è multipiattaforma ed open-source. Si utilizza nativamente da linea di comando come una shell o il prompt di MS-DOS. Non mancano tuttavia le intefaccine grafiche: Enigmail è l'estensione per i programmi Mozilla. Contiene un tool grafico per la gestione delle chiavi. Gnu Privacy Assistant (o GPA), Seahorse e Geheimnis sono diverse interfaccine open-source. WinPT è il pacchetto per Windows; contiene, oltre GnuPG precompilato, anche un'interfaccia grafica ed il plugin per Outlook Express. Un'altra ottima interfaccia grafica per Windows è GPGshell. Some rights reserved: http://www.maury.it#licenza 15
  • 16. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Vediamo l'utilizzo principale di GnuPG da linea di comando. Una volta che il programma è stato installato, la prima cosa da fare è creare un certificato digitale. Il comando sarà: gpg --gen-key Verranno richieste alcune informazioni personali: nome e cognome, e-mail ed eventuali commenti. Successivamente sarà possibile inserire nel certificato altri indirizzi e-mail; in questa fase limitiamoci a dare solo il principale. Verrà richiesta la lunghezza della chiave desiderata; per avere la miglior sicurezza è sempre bene chiedere la lunghezza maggiore possibile. Some rights reserved: http://www.maury.it#licenza 16
  • 17. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Verrà poi chiesta una passphrase, una specie di password, che verrà richiesta ad ogni utilizzo della chiave privata. Questa è un'ulteriore sicurezza in più, tante volte la nostra chiave privata cada in mani di terzi. Riguardo alla scelta della passphrase è sempre meglio rispettare le solite regolette: evitiamo le parole di senso compiuto, mischiare caratteri maiuscoli, caratteri minuscoli e cifre e dare sempre una passphrase di almeno 8 caratteri. Some rights reserved: http://www.maury.it#licenza 17
  • 18. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Possiamo poi esportare od importare le chiavi pubbliche di altri o addirittura le nostre chiavi; questo è utile ad esempio se si vuole utilizzare i certificati su più PC o su più sistemi operativi. gpg --export -a nome_chiave-o-stringa_contenuta Dando l'output in un file con “> nome_file.asc“ verrà scritta la chiave su di un file. L'opzione -a permette l'esportazione in ascii a 7 bit, invece che in un file binario. GnuPG riconoscerà la chiave richiesta anche da una semplice stringa contenuta nell'indirizzo e-mail o nel nome e cognome. Le chiavi esportate su di un file potranno poi essere importate con gpg --import nome_file Some rights reserved: http://www.maury.it#licenza 18
  • 19. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) La revoca di una chiave è importante se la chiave privata cadesse in mani altrui e quindi la sicurezza ad essa collegata fosse compromessa. Conviene quindi creare un certificato di revoca da subito, conservandolo in un luogo sicuro in caso di bisogno. gpg --gen-revoke anche qui si potrà riindirizzare il certificato ad un file. Se la chiave privata non sarà più utilizzabile (perché ne è compromessa la sicurezza o per un qualsiasi altro motivo), il certificato di revoca sarà la garanzia della validità decaduta. Ricordarsi, in caso di revoca di una chiave, di trasmettere il certificato di revoca ai vari keyserver dove la chiave era stata registrata. Poiché per creare un certificato di revoca è necessaria la chiave privata e poiché questa potrebbe andare perduta, come detto sopra è buona norma creare la revoca da subito. Some rights reserved: http://www.maury.it#licenza 19
  • 20. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Le chiavi importate, compresa la propria, possono essere amministrate per aggiungere nuovi indirizzi e-mail, rimuovere indirizzi e-mail e molte altre modifiche e/o correzioni. gpg --edit-key nome_key-o-stringa_contenuta Comparirà un prompt per i comandi; con help si avrà l'elenco di tutti i comandi disponibili per amministrare le chiavi. Some rights reserved: http://www.maury.it#licenza 20
  • 21. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Quando importeremo una chiave pubblica di qualcuno, questa sarà inserita nel nostro archivio, una sorta di portachiavi virtuale. È qui che il client di posta andrà a verificare il messaggio firmato digitalmente. Se la chiave pubblica archiviata nel nostro portachiavi verificherà il messaggio, il client dirà che la firma digitale è corretta. Bisogna però far sapere al client che la chiave pubblica appartiene realmente alla persona che ha mandato l'e-mail. Dopo esserci assicurati di persona ed in piena sicurezza di chi sia il proprietario di quella chiave, potremo firmare la sua chiave pubblica come “verificata”. Firmando la chiave diremo a GnuPG che quella chiave pubblica è affidabile. Some rights reserved: http://www.maury.it#licenza 21
  • 22. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Ecco come Mozilla Thunderbird segnala le e-mail firmate digitalmente. Nel primo caso l'e-mail è dichiarata correttamente firmata, ma non ci sono garanzie su chi sia il reale proprietario del certificato utilizzato. Nel secondo caso, invece, la firma è verificata da una chiave pubblica firmata. Some rights reserved: http://www.maury.it#licenza 22
  • 23. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Un ulteriore funzione di GnuPG dà la possibilità di apporre una firma digitale ad un file (un documento, una foto, ecc.). gpg --sign -b -a nome_file Questo comando genererà una firma digitale del file con la chiave privata. Si otterrà un file con ulteriore estensione .asc (.sig senza l'opzione -a che esporta la firma in file ASCII). Per verificare la firma, avendo a disposizione la chiave pubblica relativa alla privata che l'ha firmato: gpg --verify nome_file.asc (.sig) Some rights reserved: http://www.maury.it#licenza 23
  • 24. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Come ultimo utilizzo di GnuPG segnalo brevemente la criptazione di file. gpg -e nome_file cripterà il file con la chiave pubblica che verrà specificata alla domanda successiva al lancio del comando. Si otterrà un file con ulteriore estensione .gpg assolutamente non interpretabile se non dopo la decriptazione. Per decriptare il file, avendo a disposizione la chiave privata relativa alla pubblica che l'ha criptato: gpg -d nome_file.gpg > nome_file Abbiamo così a disposizione uno strumento per criptare ad esempio dei file delicati, tipo quelli contenenti i nostri codici o le nostre password. Some rights reserved: http://www.maury.it#licenza 24
  • 25. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Come bibliografia segnalo questi due siti internet: http://www.gnupg.org/(it)/howtos/it/GPGMiniHowto.html HowTo ufficiale in italiano di GnuPG http://thawte.ascia.net Documentazione scritta da due notai Thawte di Roma. Molto chiara per il discorso del certificato a chiavi pubblica/privata. Ed in più, per approfondire, le pagine man di gpg. Spero che questo documento possa servire a sensibilizzare ed a far diffondere l'utilizzo di S/MIME e/o GnuPG. Non è bene che l'umanità continui ad affidarsi a sistemi bacati dal punto di vista della sicurezza, ignorandone totalmente i rischi. Some rights reserved: http://www.maury.it#licenza 25
  • 26. Criptografia e firma digitale con GnuPG – Maurizio Antonelli (http://www.maury.it) Io personalmente firmo digitalmente tutte le mie e-mail. Utilizzando Thawte con chi non utilizza GnuPG e, invece, quest'ultimo con chi so che lo utilizza. Avendo a disposizione anche la chiave pubblica del destinatario, cripto anche i messaggi. Schermata del mio Thunderbird; si notino i due tastini per criptare/firmare con GnuPG o S/MIME Quando questi sistemi saranno maggiormente diffusi, viaggeranno in rete messaggi di posta elettronica in tutta sicurezza. Per ora e fino ad allora meglio rendere noto a tutti che non è così. Some rights reserved: http://www.maury.it#licenza 26