Avanti Indietro Indice

6. Integrare PGP e Mutt

L'operazione da svolgere sul messaggio in uscita (firmare, cifrare o entrambe le cose) è scelta proprio prima di premere il tasto "y" per inviare il messaggio, dal menu raggiungibile con l'opzione "p". Una volta scelta l'operazione da compiere, cambierà soltanto la linea PGP nell'header del messaggio mostrato a video. Finché il messaggio non viene inviato con il comando "y", non verrà chiesto né di inserire la passphrase per attivare la firma del messaggio né quali chiavi pubbliche usare per la cifrature nel caso in cui il destinatario non sia stato trovato nel nostro public key ring.

NOTA: se non si inserisce correttamente la passphrase, Mutt sembra "bloccarsi". Ma non è così: attende solo che venga inserita nuovamente. Per farlo, si deve premere <Invio> e cancellare la passphrase dalla memoria con <Ctrl>F. Poi, si deve ripetere l'invio del messaggio con "y" e inserire di nuovo la passphrase.

In questo modo, Mutt userà PGP/MIME per inviare il messaggio e un nuovo file apparirà nella lista dei file da inviare firmati (nel caso in cui si sia scelto solo di firmare il messaggio) o cifrerà l'intero messaggio (tutte le sue parti MIME). Rimarranno solo due parti MIME: la prima contenente la versione PGP/MIME e la seconda il messaggio cifrato (contenente tutte le sue parti MIME) e firmato (se si è scelto di firmare il messaggio):

Nota: se per qualche motivo il mail user agent del destinatario non è in grado di usare MIME, si dovrà includere la firma all'interno del corpo del messaggio. Si veda la sezione riguardante application/pgp alle voci PGP5 e GnuPG.

Mutt proverà a verificare la firma o a decifrare automaticamente i messaggi ricevuti che utilizzano PGP/MIME. Si veda la sezione Note e trucchi per usare Procmail, in cui si spiega come cambiare automaticamente il tipo MIME dei messaggi ricevuti che non lo impostano correttamente.

6.1 File opzionali di configurazione

Nella sezione che segue si trovano modifiche al file di configurazione di Mutt necessarie per usare facilmente PGP2, PGP5, e GnuPG.

A questo scopo, utilizziamo un nuovo file di configurazione che abbiamo chiamato .gnupgp.mutt (qualsiasi altro nome va bene, purché si inserisca il nome prescelto all'interno del file di configurazione principale ~/.muttrc).

Lo si può fare includendo il percorso completo del file .gnupgp.mutt in una linea alla fine del file ~/.muttrc. La directory in cui si inseriscono questo e altri file di configurazione opzionali può essere qualsiasi, purché si abbiano i permessi corretti (in una sezione precedente tali file sono stati inclusi nella directory ~/Mail/), ad esempio all'interno della propria home directory. Anche sul nome non ci sono vincoli. Si può creare la directory mutt.varios:

~$ mkdir mutt.varios

in cui copiare (o creare) il file di configurazione opzionale .gnupgp.mutt e poi includere questo file nel file .muttrc col comando source, in questo modo:

source ~/mutt.varios/.gnupgp.mutt

Ora Mutt considererà le variabili di configurazioni inserite in .gnupgp.mutt come se fossero contenute direttamente in .muttrc.

Questo è un buon metodo per evitare di avere un file di configurazione enorme e disordinato, e può essere utilizzato per raggruppare altre variabili di configurazione. Per esempio, se usiamo vim come editor in Mutt, possiamo indicare a .muttrc di utilizzare direttamente il file di configurazione di vim: .vimrc. Innanzitutto, si deve copiare ~/.vimrc nella nostra directory contenente i file di configurazione opzionali, ~/mutt.varios/, e dargli un altro nome (per esempio vim.mutt):

$ cd /home/user ~$ cp .vimrc mutt.varios/vim.mutt

Poi, si devono cambiare le opzioni di configurazione che vogliamo siano diverse quando usiamo vim come editor in Mutt, ed infine modificare .muttrc:

set editor="/usr/bin/vim -u ~/mutt.varios/vim.mutt"

Con quest'ultima linea stiamo impostando Mutt in modo da usare un editor esterno, Vim, con le opzioni di configurazione desiderate.

6.2 Variabili di configurazione generale

Ci sono alcune variabili che verranno usate con tutti e tre i programmi di criptografia a chiave pubblica. Queste variabili sono booleane e possono essere set (attivate) o unset (disattivate).

Nel file di configurazione (~/.muttrc, ~/mutt.varios/.gnupgp.mutt o qualsiasi altro nome si preferisca), il simbolo (#) è un commento e verrà ignorato. Lo useremo per di qui in avanti per commentare ciascuna variabile:

unset pgp_autosign

# se questa variabile è attivata Mutt chiederà di firmare tutti
# i messaggi in uscita. (1)

unset pgp_autoencrypt

# se questa variabile è attivata Mutt chiederà di criptare tutti
# i messaggi in uscita. (1)

set pgp_encryptself

# salva una copia criptata di tutti i messaggi inviati che vogliamo criptare
# (si deve porre set copy=yes).

set pgp_replysign

# quando si risponde ad un messaggio firmato, la risposta sarà
# anch'essa firmata.

set pgp_replyencrypt

# quando si risponde ad un messaggio cifrato, la risposta
# sarà anch'essa cifrata.

set pgp_verify_sig=yes

# si desidera verificare automaticamente i messaggi firmati ricevuti?
# Certo!

set pgp_timeout=<n>

# cancella la passphrase dalla memoria cache dopo <n> secondi
# che la si è inserita. (2)

set pgp_sign_as="0xABC123D4"

# che chiave si vuole usare per firmare i messaggi in uscita?
# Nota: si può impostare questa variabile col proprio user id, ma
# questo può generare confusione se si hanno diverse chiavi e lo stesso user id.

set pgp_strict_enc

# usa "quoted-printable" quando PGP lo richiede.

unset pgp_long_ids

# non usa 64 bit key id, usa 32 bit key id.

set pgp_sign_micalg=<some>

# algoritmo per il controllo dell'integrità del messaggio.
# <some> va scelto tra uno dei seguenti valori:

Nelle prossime tre sezioni verranno spiegate le variabili di configurazione adatte a ciascuna delle versioni di PGP. La quarta sezione spiegherà come modificare queste variabili se si usano più versioni d PGP.

(1) Dal momento che Mutt chiede di inserire la passphrase ogni volta che si vuole firmare un messaggio e di scegliere un destinatario quando si vuole cifrare, può essere scomodo impostare questa variabile. Solitamente la si lascia disattivata. Questo in particolar modo è vero quando si vuole cifrare i messaggi, dal momento che non si hanno le chiavi pubbliche di tutti i destinatari.

(2) A seconda del numero di messaggi che si vuole firmare o decifrare, si decide se tenere la passphrase nella memoria cache più o meno a lungo. Questa opzione permette di non inserire la passphrase ogni volta che si firma un nuovo messaggio o se ne decifra uno ricevuto. Attenzione: tenere la passphrase nella memoria cache non è sicuro, soprattutto in sistemi connessi alla rete.

(3) Questo è necessario solo con la chiave che si usa per firmare. Quando la chiave viene scelta dal menu, sarà Mutt a calcolare l'algoritmo più appropriato.

6.3 Variabili di configurazione per PGP2

Per usare PGP2 con Mutt-i si dovranno aggiungere le seguenti linee al file ~/mutt.varios/.gnupgp.mutt:

set pgp_default_version=pgp2
set pgp_key_version=default
set pgp_receive_version=default
set pgp_send_version=default
set pgp_sign_micalg=pgp-md5
set pgp_v2=/usr/bin/pgp
set pgp_v2_pubring=~/.pgp/pubring.pgp
set pgp_v2_secring=~/.pgp/secring.pgp

Come già detto, i file ~/.pgp/pubring.pgp e secring.pgp devono esistere. Maggiori informazioni su PGP2 si possono ottenere col comando man pgp.

6.4 Variabili di configurazione per PGP5

Per usare PGP5 con Mutt-i si dovranno aggiungere le seguenti linee al file ~/mutt.varios/.gnupgp.mutt:

set pgp_default_version=pgp5
set pgp_key_version=default
set pgp_receive_version=default
set pgp_send_version=default
set pgp_sign_micalg=pgp-sha1
set pgp_v5=/usr/bin/pgp
set pgp_v5_pubring=~/.pgp/pubring.pkr
set pgp_v5_secring=~/.pgp/secring.skr

Anche in questo caso, i file ~/.pgp/pubring.pkr e secring.pkr devono esistere. Maggiori informazioni su PGP5 si possono ottenere col comando man pgp5.

6.5 Variabili di configurazione per GnuPG

Per usare GnuPGcon Mutt-i si dovranno aggiungere le seguenti linee al file ~/mutt.varios/.gnupgp.mutt:

set pgp_default_version=gpg
set pgp_key_version=default
set pgp_receive_version=default
set pgp_send_version=default
set pgp_sign_micalg=pgp-sha1
set pgp_gpg=/usr/bin/gpg
set pgp_gpg_pubring=~/.gnupg/pubring.gpg
set pgp_gpg_secring=~/.gnupg/secring.gpg

Al solito, i file ~/.gnupg/pubring.gpg e secring.gpg devono esistere. Maggiori informazioni su GnuPG si possono ottenere con i comandi man gpg.gnupg, man gpgm, e man gpg.

6.6 Variabili di configurazione miste

Se non si ha intenzione di usare solamente una versione di questi programmi, si dovranno modificare alcune delle variabili presentate in precedenza. In realtà, si dovranno solo cambiare le variabili che impostano la versione utilizzata, rimuovendo quelle ridondanti.

Ad esempio, per usare GnuPG per firmare i messaggi, tutti i comandi di Mutt che fanno uso di Gnu/PGP chiameranno questo programma per apporre firme, decifrare, cifrare, verificare ecc. Per questo, si dovrà impostare la variabile di configurazione $set_pgp_default una sola volta, in questo modo:

set pgp_default_version=gpg

Invece, per usare tutti e tre i programmi, il file ~/mutt.varios/.gnupgp.mutt potrebbe essere simile a questo:

set pgp_default_version=gpg     # versione del programma da usare di default

set pgp_key_version=default     # chiave da usare di default
                                # in questo caso, è gnupg a definirla

set pgp_receive_version=default # il programma utilizzato per decifrare sarà quello indicato come default
set pgp_send_version=default    # di nuovo la versione definita nella prima riga (gpg)

set pgp_gpg=/usr/bin/gpg        # dove trovare l'eseguibile di GnuPG
set pgp_gpg_pubring=~/.gnupg/pubring.gpg        # il file delle chiavi pubbliche di GnuPG
set pgp_gpg_secring=~/.gnupg/secring.gpg        # il file delle chiavi segrete di GnuPG

set pgp_v2=/usr/bin/pgp         # dove trovare l'eseguibile di PGP2
set pgp_v2_pubring=~/.pgp/pubring.pgp           # file delle chiavi pubbliche di PGP2
set pgp_v2_secring=~/.pgp/secring.pgp           # file delle chiavi private di PGP2

set pgp_v5=/usr/bin/pgp         # dove trovare l'eseguibile di PGP5
set pgp_v5_pubring=~/.pgp/pubring.pkr           # file delle chiavi pubbliche di PGP5
set pgp_v5_secring=~/.pgp/secring.skr           # file delle chiavi private di PGP5


Avanti Indietro Indice