ENIGMAIL CIFRARE LE PROPRIE MAIL CON GPG GnuPG
ARGOMENTI ● Cosa è GnuPG ● Cifratura a chiave pubblica e a chiave segreta ● Utilizzo e gestione del portachiavi ● Fiducia: il concetto di social network ● Enigmail: cifriamo/firmiamo le nostre mail!
COSA È GPG GPG (Gnu Privacy Guard) è l'implementazione libera dello standard di crittografia OpenPGP. Esso ci permette di firmare e cifrare informazioni, gestire un portachiavi, generare e utilizzare chiavi pubbliche e private
Cifratura a chiave segreta La cifratura a chiave segreta o condivisa permette a due o più entità (persone, software...) di cifrare un'informazione previo lo scambio di una chiave di cifratura comune Esempi di algoritmi a chiave segreta sono 3DES, AES, BLOWFISH La sicurezza di questo meccanismo si basa sulla segretezza della chiave di cifratura
Cifratura a chiave pubblica Al contrario dei meccanismi a chiave segreta, la cifratura a chiave pubblica/privata si basa sulla generazione non di una, ma di due chiavi, legate tra loro da vincoli matematici, che permettono l'una di cifrare, l'altra di decifrare un'informazione
Cifratura a chiave pubblica Una delle due chiavi (quella pubblica) sarà utilizzata da chiunque voglia inviarmi informazioni per cifrare i messaggi; la chiave privata al contrario sarà utilizzata esclusivamente per la decifratura degli stessi E' importante notare come con la chiave utilizzata per cifrare non sia possibile decifrare il messaggio
Il tool GPG GPG è un tool che può essere utilizzato dalla linea di comando per generare e gestire le proprie chiavi L'esempio più semplice è il provare a cifrare un file con un algoritmo a chiave segreta (ad esempio il 3DES) gpg -c –-cipher-algo 3DES filename
Il tool GPG Per decifrare il file appena creato è sufficiente dare un gpg -d filename
Gestione del Portachiavi Generare una coppia di chiavi pubblica/privata è altrettanto semplice: E' infatti sufficiente dare il comando gpg –-gen-key Verranno poste alcune domande e dopo pochi minuti le nostre chiavi sono pronte all'uso! per listarle sono sufficienti i comandi: gpg –-list-secret-keys gpg –-list-keys
Gestione del portachiavi Nel caso in cui ritenessimo che la nostra chiave non sia più sicura (perché pensiamo che qualche malintenzionato ne sia venuto in possesso) o se abbiamo perso la nostra chiave privata, è possibile generare un certificato di revoca con il comando gpg –-gen-revoke Per fare questo è però necessario avere la chiave privata: è quindi consigliabile generare il certificato di revoca al momento della generazione delle chiavi
Gestione del portachiavi Vedere le impronte digitali è utile per assicurarsi che la chiave pubblica in nostro possesso appartenga al legittimo proprietario. Per fare ciò il comando è gpg –-fingerprint Per rimuovere le chiavi pubbliche e/o private si utilizza invece gpg –-delete-key gpg --delete-secret-key
Fiducia: il concetto di Social Network Un punto debole dei sistemi di cifratura è la diffusione delle chiavi: un attaccante potrebbe spacciarsi per qualcun'altro facendo circolare una finta chiave con un finto UID e quindi intercettare e decifrare tutti i messaggi diretti al legittimo destinatario
Fiducia: Il concetto di Social Network Per prevenire questo tipo di attacchi il protocollo PGP adotta il concetto di rete di fiducia: una chiave pubblica può essere firmata da altre persone, certificando cosi che la chiave appartiene effettivamente a chi dice di esserne il proprietario. In pratica, la firma certifica che lo userID menzionato nella chiave corrisponde alla persona che possiede la corrispondente chiave privata
Fiducia: Il concetto di Social Network Oltre alla firma è possibile affidare un valore di fiducia alla chiave pubblica (trust) Con questo valore possiamo dire a GPG quanto ci fidiamo del proprietario della chiave pubblica in questione In questo modo, se non si ha fiducia nel proprietario di una chiave, le firme apposte da questo su altre chiavi verranno ignorate durante il calcolo della validità della chiave
Fiducia: Il concetto di Social Network GPG prevede 5 livelli di fiducia: 1 = Indefinito 2 = Nessuna Fiducia 3 = Fiducia Marginale 4 = Fiducia Completa 5 = Fiducia Massima La fiducia massima viene apposta di default da GPG per le chiavi pubbliche di cui possediamo la corrispondente chiave privata
Fiducia: Il concetto di Social Netowork Per firmare una chiave bisogna utilizzare il comando gpg –-edit-key UID e in seguito il comando sign Per assegnare la fiducia invece, dopo aver utilizzato l'opzione –-edit-key è necessario dare il comando trust
Enigmail: Cifriamo/firmiamo le nostre mail! Enigmail è un plugin per thunderbird/icedove che ci permette di integrare le funzionalità di GPG all'interno del nostro client di posta preferito!
Installazione del plugin L'installazione è molto semplice: nei sistemi debian e debian-based è sufficiente installarlo con un apt-get install enigmail In altre distribuzioni invece, è sufficiente scaricare il plugin enigmail dal sito E installarlo dal menu Strumenti -> Componenti Aggiuntivi -> Estensioni
Configurazione Una volta installato il plugin, nella barra degli strumenti di Thunderbird apparirà un nuovo menù “OpenPGP”
Configurazione Selezionando la voce “Key Management” vediamo quella che è nient'altro che un'interfaccia grafica per il nostro portachiavi GPG Da qui possiamo importare, esportare, generare e firmare le chiavi GPG
Configurazione Una volta generate le chiavi, possiamo procedere alla configurazione di OpenPGP su thunderbird Per fare ciò selezioniamo la voce “Preferences” dal menù e configuriamo come più ci piace il comportamento del plugin!
Configurazione Ora siamo (quasi) pronti ad inviare la nostra prima mail crittografata. Per fare ciò creiamo un nuovo messaggio Andiamo a selezionare nel menu openPGP l'opzione “Encrypt” e ci verrà richiesto di impostare le opzioni PGP per l'identità corrente. Una volta configurata correttamente, potremo finalmente cifrare e firmare le nostre mail!