  Mutt-i, GnuPG e PGP Howto
  Andrs Seco AndresSH@ctv.es e J.Horacio M.G.
  homega@ciberia.es
  v.12, Febbraio 2000

  Questo documento spiega brevemente come configurare _M_u_t_t_-_i, _P_G_P nelle
  sue diverse versioni (2.6.x, 5.x) e _G_n_u_P_G. Si segnalano i problemi pi
  comuni che si possono incontrare quando si inviano e-mail firmate o
  cifrate che devono essere lette da mail client che non osservano
  PGP/MIME come definito nella RFC 2015 e che girano su sistemi opera
  tivi differenti. Inoltre,  presente un esempio di configurazione di
  procmail per inviare automaticamente le chiavi pubbliche in risposta a
  messaggi che le richiedano, come fanno i key server.  La traduzione 
  stata curata da Marco Cova
  ______________________________________________________________________

  Indice Generale


  1. Introduzione
  2. Copyright and discharge of responsability
  3. Inviare e ricevere e-mail su Internet
  4. Configurazione di Mutt
  5. PGP e GnuPG
     5.1 PGP2
     5.2 PGP5
     5.3 GnuPG

  6. Integrare PGP e Mutt
     6.1 File opzionali di configurazione
     6.2 Variabili di configurazione generale
     6.3 Variabili di configurazione per PGP2
     6.4 Variabili di configurazione per PGP5
     6.5 Variabili di configurazione per GnuPG
     6.6 Variabili di configurazione miste

  7. Macro interessanti per Mutt
     7.1 Apporre la firma nel corpo del messaggio senza usare PGP/MIME con PGP5
     7.2 Apporre la firma nel corpo del messaggio senza usare PGP/MIME con GnuPG
     7.3 Modificare il file degli alias e ricaricarlo
     7.4 Altri esempi di macro

  8. Note e trucchi per usare Procmail
     8.1 Configurare Procmail per inviare automaticamente le proprie chiavi pubbliche
     8.2 Verificare e decifrare automaticamente un messaggio senza PGP/MIME
     8.3 Cambiare il tipo MIME per messaggi contenenti chiavi senza PGP/MIME

  9. Scambiare messaggi firmati/cifrati con MUA e piattaforme differenti
  10. Programmi e versioni utilizzati
  11. Ulteriori informazioni


  ______________________________________________________________________

  11..  IInnttrroodduuzziioonnee

  Questo documento spiega brevemente come configurare _M_u_t_t_-_i, _P_G_P nelle
  sue diverse versioni (2.6.x, 5.x) e _G_n_u_P_G, cos da poter usare in
  breve tempo un mail client in grado di gestire cifratura e firma
  digitale dei messaggi.

  A questo scopo, saranno inclusi dei file di configurazione di esempio.
  Tuttavia, per ottenere la migliore performance e per sfruttare fino in
  fondo le possibilit dei programmi che si useranno, sar necessario
  leggerne la documentazione e riconfigurare i file di esempio.

  Inoltre, verranno commentati alcuni problemi derivanti dal fatto che
  molti mail user agent, sia per Linux che per altri sistemi operativi,
  non rispettano l'RFC 2015 per quello che riguarda PGP/MIME.

  Sar presentato un ulteriore esempio di configurazione di procmail,
  che spiegher come fare in modo che il mail client invii una chiave
  pubblica su richiesta.

  Questo documento  stato tradotto dall'originale spagnolo da Andrs
  Seco AndresSH@ctv.es, rivisto e corretto da Jordi Mallach Prez jordi-
  sd@softhome.net e J.Horacio M.G. homega@ciberia.es. E' stato terminato
  nell'ottobre del 1999. Vorremmo ringraziare Roland Rosenfeld
  roland@spinnaker.de, Christophe Pernod xtof.pernod@wanadoo.fr, Denis
  Alan Hainsworth denis@cs.brandeis.edu e Angel Carrasco
  acarrasco@jet.es per le loro correzioni e suggerimenti.


  22..  CCooppyyrriigghhtt aanndd ddiisscchhaarrggee ooff rreessppoonnssaabbiilliittyy

  This document is copyright  1999 Andres Seco and J.Horacio M.G., and
  it's free. You can distribute it under the terms of the GGNNUU GGeenneerraall
  PPuubblliicc LLiicceennssee, which you can get at
  http://www.gnu.org/copyleft/gpl.html. You can get unofficial
  translated issues somewhere in the internet, as well as the Spanish
  translated copy at http://visar.csustan.edu/~carlos/gpl-es.html or
  Lucas http://www.lucas.org.

  Information and other contents in this document are the best of our
  knowledge. However, we may have make errors. So you should determine
  if you want to follow the instructions given in this document.

  Nobody is responsible for any damage in your computers and any other
  loss derived from the use of the information contained herein.

  THE AUTHORS AND MAINTAINERS ARE NOT RESPONSIBLE FOR ANY DAMAGE
  INCURRED DUE TO ACTIONS TAKEN BASED ON INFORMATION CONTAINED IN THIS
  DOCUMENT.

  Of course, we are open to all type of suggestions and corrections on
  the content of this document.


  33..  IInnvviiaarree ee rriicceevveerree ee--mmaaiill ssuu IInntteerrnneett

  Questo documento non tratta il problema dello scambio di messaggi tra
  una macchina locale e altri nodi (all'interno di una rete locale o in
  Internet).  Questo scambio dovrebbe essere portato a termine da
  messages transfer agent (MTA) quali, ad esempio,  sendmail
  http://www.sendmail.org, qmail http://www.qmail.org, exim
  http://www.exim.org, smail ftp://ftp.planix.com/pub/Smail, etc.

  In questo documento, pertanto, si presuppone che questo metodo per la
  ricezione e l'invio dei messaggi sia gi installato e correttamente
  funzionante.  Se si  in grado di inviare un messaggio e leggere la
  posta con il comando mail dalla linea di comando del proprio computer,


       $ mail -s <subject> <user@domain.net>
       scrivi qui il testo, e terminalo con un punto sulla prossima linea
       .


  allora deve gi essere installato un qualche tipo di MTA che si occupa
  del trasferimento del messaggio. Altrimenti, si possono ottenere le
  informazioni necessarie a configurarlo nelle pagine di manuale di
  _s_m_a_i_l:
       $ man smail


  o del MTA che  installato, e _f_e_t_c_h_m_a_i_l:


       $ man fetchmail


  o in qualche altro documento, che faccia riferimento a questi
  programmi.


  44..  CCoonnffiigguurraazziioonnee ddii MMuutttt

  Il prossimo file  un buon esempio per iniziare ad usare _M_u_t_t in modo
  non molto sofisticato, utilizzando il path per il file degli alias,
  dei messaggi inviati e di quelli posposti.  Lo si pu ulteriormente
  personalizzare leggendo le indicazioni contenute nelle pagine di
  manuale di _M_u_t_t e in  /usr/doc/mutt/ o /usr/doc/mutt-i/.

  Semplice esempio di ~/.muttrc:



       set folder=~/Mail
       set alias_file=.alias
       set postponed=.postponed
       set record=SendMessages
       set signature=.signature
       my_hdr From: Name Surname <Name@domain.com>
       source =.alias



  E' necessario che la directory ~/Mail esista, cio che esista quella
  che appare come un "segno di uguale" nel file di configurazione
  .muttrc (vale a dire, =.alias per _M_u_t_t significa ~/Mail/.alias, e
  =.postponed  ~/Mail/.postponed). In ogni modo,  possibile tenere
  questi file in un'altra directory purch se ne indichi il percorso
  completo in ~/.muttrc, e si abbiano i permessi necessari per
  lavorarci.

  Si dovr anche modificare la linea my_hdr con il proprio nome e il
  proprio indirizzo di posta elettronica. Nel file ~/Mail/.signature si
  pu includere la signature che apparir in tutti i messaggi inviati.

  Questo file di configurazione pu risultare alla fine molto grande,
  cos  pratica comune tenere in diversi file alcuni dei comandi di
  configurazione. D'ora in poi, le linee di configurazione riguardanti
  _P_G_P o _G_n_u_P_G e le macro della tastiera che personalizzeremo saranno
  tenute separate. Per fare questo, basta aggiungere le seguenti linee
  al file ~/.muttrc:



       source = ~/Mail/.mutt.macros
       source = ~/Mail/.gnupgp.mutt



  e usare i file ~/Mail/.mutt.macros e ~/Mail/.gnupgp.mutt per
  raccogliere le macro della tastiera e la configurazione di _P_G_P o
  _G_n_u_P_G.
  Per avere informazioni pi approfondite e complete riguardanti l'uso e
  la configurazione di _M_u_t_t e sulle sue caratteristiche avanzate, si
  veda il manuale di Mutt http://www.mutt.org.


  55..  PPGGPP ee GGnnuuPPGG

  Prima di usare una qualsiasi delle versioni di _P_G_P con _M_u_t_t_-_i, sar
  necessario configurare _P_G_P appropriatamente in modo tale che il file
  delle chiavi pubbliche (public keys ring) e quello delle chiavi
  private (private keys ring) esistano. Conviene provare PGP dalla linea
  di comando per vedere se firma e cifra correttamente.

  Esistono due versioni di _P_G_P per _U_n_i_x: la 2.6.3(i) e 5.0(i), che
  chiameremo PPGGPP22 e PPGGPP55 rispettivamente. GGnnuuPPGG  un nuovo programma di
  cifratura, sviluppato recentemente, in uno stato di sviluppo avanzato,
  open source e gratuito, sotto molti aspetti migliore di PPGGPP (si veda
  il GnuPG mini howto http://www.dewinter.com/gnupg_howto).

  Si chiarir anche il fatto che _P_G_P, essendo un programma sviluppato
  negli Stati Uniti,  sottoposto ad alcune leggi restrittive
  riguardanti l'esportazione di programmi contenenti codice
  criptografico. Questa  la ragione dell'esistenza di una versione
  internazionale di quasi tutte le versioni binarie, cosa che si pu
  notare dalla presenza della lettera "ii" (ppggpp -- ppggppii).



  55..11..  PPGGPP22

  _P_G_P_2 genera chiavi con l'algoritmo RSA http://www.rsa.com e utilizza
  IDEA http://www.ascom.ch come algoritmo di cifrazione.  Entrambi gli
  algoritmi sono proprietari e il loro uso  regolato dai rispettivi
  brevetti.

  Per utilizzarlo correttamente, lo si deve installare e avere una
  directory chiamata ~/.pgp, contenente il file di configurazione pgp-
  i.conf e i file delle chiavi pubbliche e private, pubring.pgp and
  secring.pgp rispettivamente.


  55..22..  PPGGPP55

  Le chiavi generate da _P_G_P_5 sono di tipo DDSSSS//DDHH (Digital Signature
  Standard / Diffie-Hellman). PGP5 usa CCAASSTT, TTrriippllee--DDEESS e IIDDEEAA come
  algoritmi di cifratura. PGP5 funziona con dati cifrati o firmati
  utilizzando _R_S_A (PGP2) e, per farlo, utilizza le chiavi generate da
  PGP2, dal momento che PGP5 non pu generare quel tipo di chiavi.  Al
  contrario, PGP2 non  in grado di utilizzare le chiavi _D_S_S_/_D_H create
  da PGP5.  Questo comporta problemi di (in)compatibilit, dal momento
  che molti continuano ad usare PGP2 sotto _U_n_i_x_/_L_i_n_u_x.

  Per utilizzare PGP5 correttamente, nella directory ~/.pgp ci devono
  essere il public e il private key ring (pubring.pkr e secring.skr
  rispettivamente) e il file di configurazione pgp.cfg.  Nel caso in cui
  si abbiano installate entrambe le versioni di _P_G_P (supponiamo che PGP2
  sia stato installato e configurato prima di PGP5), creeremo il file di
  configurazione ~/.pgp/pgp.cfg di PGP5 come un link simbolico al file
  ~/.pgp/pgp-i.conf


       ~/.pgp$ ln -s pgp-i.conf pgp.cfg


  e aggiungeremo le seguenti linee in fondo al file ~/.pgp/pgp-i.conf:

       PubRing = "~/.pgp/pubring.pkr"
       SecRing = "~/.pgp/secring.skr"
       RandSeed = "~/.pgp/randseed.bin"



  I file con i key ring di versioni diverse possono coesistere senza
  alcun problema nella stessa directory.


  55..33..  GGnnuuPPGG

  GGnnuuPPGG presenta le stesse funzionalit dei precedenti programmi.  A
  differenza di _P_G_P, _G_n_u_P_G non usa algoritmi con brevetti restrittivi.
  _P_G_P  gratuito per uso personale, ma non per uso commerciale e il suo
  sviluppo non  open. Si pu utilizzare gratuitamente _G_n_u_P_G anche per
  scopi commerciali ed  open source, come il nostro sistema operativo
  preferito (anche il suo sviluppo e l'implementazione viene fatta
  principalmente sotto _L_i_n_u_x):

  Le chiavi generate da _G_n_u_P_G sono di tipo DDSSAA//EEllGGaammaall (_D_i_g_i_t_a_l
  _S_i_g_n_a_t_u_r_e _A_l_g_o_r_i_t_h_m, noto anche come _D_S_S). E' del tutto compatibile
  con _P_G_P, eccetto per l'utilizzo da parte di quest'ultimo di algoritmi
  brevettati come _R_S_A e _I_D_E_A. Comunque,  possibile implementare una
  certa compatibilit tra loro (vedi il GnuPG mini HOWTO
  http://www.dewinter.com/gnupg_howto per quanto concerne l'interazione
  con PGP2 e PGP5).


  66..  IInntteeggrraarree PPGGPP ee MMuutttt

  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 _P_G_P
  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.

  NNOOTTAA:: se non si inserisce correttamente la passphrase, _M_u_t_t 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, _M_u_t_t user _P_G_P_/_M_I_M_E 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 _M_I_M_E). 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):

  NNoottaa:: se per qualche motivo il mail user agent del destinatario non 
  in grado di usare _M_I_M_E, si dovr includere la firma all'interno del
  corpo del messaggio.  Si veda la sezione riguardante _a_p_p_l_i_c_a_t_i_o_n_/_p_g_p
  alle voci ``PGP5'' e ``GnuPG''.


  _M_u_t_t prover a verificare la firma o a decifrare automaticamente i
  messaggi ricevuti che utilizzano _P_G_P_/_M_I_M_E. Si veda la sezione ``Note e
  trucchi per usare Procmail'', in cui si spiega come cambiare
  automaticamente il tipo _M_I_M_E dei messaggi ricevuti che non lo
  impostano correttamente.


  66..11..  FFiillee ooppzziioonnaallii ddii ccoonnffiigguurraazziioonnee

  Nella sezione che segue si trovano modifiche al file di configurazione
  di _M_u_t_t 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 _M_u_t_t 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 _v_i_m come editor in
  _M_u_t_t, possiamo indicare a .muttrc di utilizzare direttamente il file
  di configurazione di _v_i_m: .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 _v_i_m come editor in _M_u_t_t, 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, _V_i_m, con le opzioni di configurazione desiderate.


  66..22..  VVaarriiaabbiillii ddii ccoonnffiigguurraazziioonnee ggeenneerraallee

  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 sseett (attivate) o uunnsseett (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:


     uunnsseett ppggpp__aauuttoossiiggnn
        # se questa variabile  attivata _M_u_t_t chieder di firmare tutti
        # i messaggi in uscita. ``(1)''


     uunnsseett ppggpp__aauuttooeennccrryypptt
        # se questa variabile  attivata _M_u_t_t chieder di criptare tutti
        # i messaggi in uscita. ``(1)''


     sseett ppggpp__eennccrryyppttsseellff
        # salva una copia criptata di tutti i messaggi inviati che
        vogliamo criptare
        # (si deve porre set copy=yes).


     sseett ppggpp__rreeppllyyssiiggnn
        # quando si risponde ad un messaggio firmato, la risposta sar
        # anch'essa firmata.


     sseett ppggpp__rreeppllyyeennccrryypptt
        # quando si risponde ad un messaggio cifrato, la risposta
        # sar anch'essa cifrata.


     sseett ppggpp__vveerriiffyy__ssiigg==yyeess
        # si desidera verificare automaticamente i messaggi firmati
        ricevuti?
        # Certo!


     sseett ppggpp__ttiimmeeoouutt==<<nn>>
        # cancella la passphrase dalla memoria cache dopo <n> secondi
        # che la si  inserita. ``(2)''


     sseett ppggpp__ssiiggnn__aass==
     # che chiave si vuole usare per firmare i messaggi in uscita?
     # NNoottaa:: si pu impostare questa variabile col proprio user id, ma
     # questo pu generare confusione se si hanno diverse chiavi e lo
     stesso user id.


     sseett ppggpp__ssttrriicctt__eenncc
     # usa "quoted-printable" quando PGP lo richiede.


     uunnsseett ppggpp__lloonngg__iiddss
     # non usa 64 bit key id, usa 32 bit key id.
     sseett ppggpp__ssiiggnn__mmiiccaallgg==<<ssoommee>>
     # algoritmo per il controllo dell'integrit del messaggio.
     # <some> va scelto tra uno dei seguenti valori:


       ppggpp--mmdd55
        se si usano chiavi RSA

       ppggpp--sshhaa11
        se si usano chiavi DSS (DSA)

       ppggpp--rrmmdd116600

  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  _M_u_t_t 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.
  AAtttteennzziioonnee:: 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 _M_u_t_t a calcolare
  l'algoritmo pi appropriato.


  66..33..  VVaarriiaabbiillii ddii ccoonnffiigguurraazziioonnee ppeerr PPGGPP22

  Per usare PGP2 con _M_u_t_t_-_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6..44..  VVaarriiaabbiillii ddii ccoonnffiigguurraazziioonnee ppeerr PPGGPP55

  Per usare PGP5 con _M_u_t_t_-_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6..55..  VVaarriiaabbiillii ddii ccoonnffiigguurraazziioonnee ppeerr GGnnuuPPGG

  Per usare _G_n_u_P_Gcon _M_u_t_t_-_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..66..  VVaarriiaabbiillii ddii ccoonnffiigguurraazziioonnee mmiissttee

  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
  _M_u_t_t 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 uunnaa ssoollaa
  vvoollttaa, 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



  77..  MMaaccrroo iinntteerreessssaannttii ppeerr MMuutttt

  _M_u_t_t  molto configurabile e il suo modo operativo pu essere
  modificato in modo molto flessibile a patto che le variabili di
  configurazione contenute in .muttrc siano ben impostate.

  In seguito, si trovano alcune macro utili nel caso in cui si vogliano
  generare messaggi firmati senza utilizzare lo standard _P_G_P_/_M_I_M_E, in
  modo da poterli inviare a destinatari che non supportano questi tipi
  di messaggi.  E' presentata anche una macro per modificare il file
  degli alias e ricaricarlo senza essere costretti ad uscire da _M_u_t_t
  (quest'ultima macro non  collegata a _P_G_P_/_G_n_u_P_G ed.   mostrata solo
  come un esempio della potenza delle macro in _M_u_t_t).

  E' possibile specificare quali key binding si vogliono usare con
  _P_G_P_/_G_n_u_P_G. Anche qualora alcune di queste opzioni siano gi state
  configurate, si possono cambiare o aggiungerne delle altre
  semplicemente modificando il file di configurazione.


  77..11..  AAppppoorrrree llaa ffiirrmmaa nneell ccoorrppoo ddeell mmeessssaaggggiioo sseennzzaa uussaarree PPGGPP//MMIIMMEE
  ccoonn PPGGPP55

  Prima che esistesse _P_G_P_/_M_I_M_E, la firma di un messaggio era inclusa nel
  corpo del messaggio. Questo  un modo molto comune di inviare messaggi
  firmati in molti mail user agent.

  Se si ha intenzione di firmare i messaggi in questo modo, si hanno due
  opzioni: non modificare il tipo _M_I_M_E del messaggio o cambiarlo in
  application/pgp.

  Per implementare queste due modi di firmare in _M_u_t_t, si aggiungeranno
  le seguenti linee al file ~/mutt.varios/mutt.macros.  Si deve aver gi
  indicato il path di questo file nel file di configurazione principale,
  .muttrc (si faccia riferimento a ``File opzionali di
  configurazione''):



       macro   compose \Cp    "F/usr/bin/pgps\ny"
       macro   compose S       "F/usr/bin/pgps\ny^T^Uapplication/pgp; format=text; x-action=sign\n"

  Ora, premendo <Ctrl>p o S si  in grado di includere la firma nella
  parte del messaggio su cui si trova posizionato il cursore, prima di
  inviare il messaggio.


  77..22..  AAppppoorrrree llaa ffiirrmmaa nneell ccoorrppoo ddeell mmeessssaaggggiioo sseennzzaa uussaarree PPGGPP//MMIIMMEE
  ccoonn GGnnuuPPGG

  Tutto come nel caso precedente solo con GnuPG. Le macro sono:



       macro   compose \CP    "Fgpg --clearsign\ny"
       macro   compose \CS    "Fgpg --clearsign\ny^T^Uapplication/pgp; format=text; x-action=sign\n"



  77..33..  MMooddiiffiiccaarree iill ffiillee ddeeggllii aalliiaass ee rriiccaarriiccaarrlloo

  Inserendo questa macro nel file ~/mutt.varios/macros.mutt si sar in
  grado di modificare il file degli alias con _v_i (ma cambiando la linea
  si potr usare anche un altro editor) senza dover uscire da _M_u_t_t, il
  tutto premendo <Alt>a.



       macro   index   \ea    "!vi ~/Mail/.alias\n:source =.alias\n"



  77..44..  AAllttrrii eesseemmppii ddii mmaaccrroo

  Il seguente listato  stato ottenuto da Roland Rosenfeld e mostra come
  cambiare il programma utilizzato da Mutt per firmare/cifrare e come
  firmare senza utilizzare PGP/MIME utilizzando GnuPG



  # ~/Mail/.muttrc.macros
  # file di configurazione della tastiera per Mutt-i
  # copiato, modificato e tradotto dall'originale:
  #
  ################################################################
  # The ultimative Key-Bindings for Mutt                         #
  #                                                              #
  # (c) 1997-1999 Roland Rosenfeld <roland@spinnaker.rhein.de>   #
  #                                                              #
  # $ Id: keybind,v 1.36 1999/02/20 19:36:28 roland Exp roland $ #
  ################################################################
  #
  # Per utilizzarlo, aggiungere la seguente linea a ~/.muttrc:
  # source ~/Mail/.muttrc.macros
  #

  # Keybinding generici
  # (per tutti i menu di Mutt, escluso il pager!)
  # Con le tre opzioni successive possiamo cambiare i software utilizzato di default per cifrare:

  # <ESC>1 per usare GnuPG
  macro   generic \e1     ":set pgp_default_version=gpg ?pgp_default_version\n"\
  "Switch to GNU-PG"

  # <ESC>2 per usare PGP2
  macro   generic \e2     ":set pgp_default_version=pgp2 ?pgp_default_version\n"\
  "Switch to PGP 2.*"

  # <ESC>5 per usare PGP5
  macro   generic \e5     ":set pgp_default_version=pgp5 ?pgp_default_version\n"\
  "Switch to PGP 5.*"

  #NOTA: attenzione all'ultimo backspace alla fine delle macro precedenti: va inserito solo se si scrive quella linea e la
  successiva su righe differenti.

  # index, OpMain, MENU_MAIN
  # (Menu principale)
  # La prossima macro funziona solo nel menu principale (quello che appare quando si
  # lancia Mutt. La combinazione <CTRL>K permette di estrarre chiavi pubbliche da un messaggio
  # se questo ne contiene (lo si pu sapere perch c' una lettera K nella
  # riga del messaggio):

  macro  pager   \Ck     ":set pipe_decode pgp_key_version=pgp2\n\e\ek:set pgp_key_version=pgp5\n\e\ek:set pgp_key_version=gpg\n\e\ek:set pgp_key_version=default nopipe_decode\n"\ "Extract PGP keys to PGP2, PGP 5, and GnuPG keyrings"


  # pager, OpPager, MENU_PAGER
  # (Menu del pager)
  # Permette la stessa operazione della precedente con la stessa combinazione di tasti,
  # ma in questo caso dal menu del pager:

  macro   pager   \e1     ":set pgp_default_version=gpg ?pgp_default_version\n"\
  "switch to GNUPG"

  macro   pager   \e2     ":set pgp_default_version=pgp2 ?pgp_default_version\n"\
  "switch to PGP 2.*"

  macro   pager   \e5     ":set pgp_default_version=pgp5 ?pgp_default_version\n"\
  "switch to PGP 5.*"


  # compose, OpCompose+OpGerneric, MENU_COMPOSE
  # (Menu di composizione)
  # Le prossime operazioni sono utilizzate nel menu di composizione
  # Vale a dire, dopo che hai scritto il messaggio e lo hai chiuso per inviarlo,
  # proprio prima di premere il tasto "Y" che ti permette di inviarlo al MTA.

  # In questo caso, creiamo un menu che appare quando si preme la "P".
  # Le opzioni nel menu saranno collegate a MENU_PGP. Queste sono
  # le opzioni principali (cifratura e firma):

  bind    compose p       pgp-menu

  # Dal momento che molti programmi non possono usare PGP/MIME (soprattutto quelli M$), la combinazione <CTRL>P
  # ci permetter di firmare i messaggi alla vecchia maniera (Application/PGP):

  macro   compose \CP    "Fgpg --clearsign\ny"

  # La seguente, <CTRL>S, ci permetter di firmare usando PGP/MIME con la chiave privata
  # che abbiamo impostato di default. Questa macro non  necesaria, dal momento che
  # possiamo ottenere lo stesso risultato dal menu "P":
  macro   compose \CS    "Fgpg --clearsign\ny^T^Uapplication/pgp; format=text; x-action=sign\n"



  Si possono aggiungere altre macro e alcune sono gi configurate e
  attivate di default in versioni pi recenti di Mutt. Alcune altre
  opzioni includono


    <CTRL>K (estrae chiavi pubbliche da un messaggio)

    <ESC>K (allega una chiave pubblica a un messaggio)

    <CTRL>F (quando si usa la passphrase per firmare o decifrare un
     messaggio, questa rimane in memoria. Con questo comando la si pu
     cancellare dalla memoria)

    ecc...

  Per vedere quale altre opzioni sono attive, si deve accedere al menu
  di aiuto (?)



  88..  NNoottee ee ttrruucccchhii ppeerr uussaarree PPrrooccmmaaiill

  88..11..  CCoonnffiigguurraarree PPrrooccmmaaiill ppeerr iinnvviiaarree aauuttoommaattiiccaammeennttee llee pprroopprriiee cchhii
  aavvii ppuubbbblliicchhee

  Dato che questo non  lo scopo principale di questo Howto,
  aggiungeremo che il modo pi sicuro per ottenere una chiave pubblica
  da qualcuno  che questi ce la dia di persona, a mano.

  Poich molte volte questo non  facilmente realizzabile, le persone si
  scambiano chiavi pubbliche via posta elettronica o cercandole in un
  key server, per quanto nessuno di questo metodi assicuri che la chiave
  ricevuta sia realmente la chiave di chi dovrebbe essere. Si possono
  usare altri mezzi di comunicazione considerati "sicuri" (cercare il
  possessore della chiave nell'elenco telefonico e chiedendogli di
  leggere la sua "fingerprint" per confrontarla con quella della chiave
  ottenuta attraverso percorsi non sicuri):

  Quello che vedremo  un "trucco" da inserire nel file .procmailrc per
  restituire la propria chiave pubblica al mittente di un messaggio che
  abbia un ben determinato Subject:



  :0 h
  * ^Subject:[    ]+\/(|send)[   ]+key pub\>.*
  | mutt -s "Re: $MATCH" `formail -rtzxTo:` </clau/mykey.asc



  Ci che  indicato nel precedente paragrafo : abbiamo una copia in
  ASCII della nostra chiave pubblica, in una certa directory (in questo
  caso in /clau) in un file chiamato mykey.asc. Quando procmail riceve
  un messaggio che include "send key pub" nel Subject:, invia quel file
  al mittente.

  IMPORTANTE: tra le parentesi  contenuto uunnoo ssppaazziioo e uunnaa ttaabbuullaazziioonnee.


  88..22..  VVeerriiffiiccaarree ee ddeecciiffrraarree aauuttoommaattiiccaammeennttee uunn mmeessssaaggggiioo sseennzzaa
  PPGGPP//MMIIMMEE

  Quando si riceve un messaggio firmato che utilizza PGP/MIME e lo si
  apre col proprio MUA preferito (Mutt, no?), questo riconosce il
  messaggio come PGP/MIME e controlla la firma se si possiede la chiave
  del mittente.  Questi messaggi sono quelli con la lettera "S" nella
  prima parte della riga del messaggio in Mutt:



       36  S  05/09 Andres Seco Her ( 12K) Al fin



  Invece i messaggi cifrati hanno la "P":



       12  P  03/24 Andres Seco Her (6,3K) Re: FW: Re: Mutt - pgp/gnupg



  Ma se il messaggio  cifrato e ha il tipo MIME "application/pgp",
  quando lo si apre Mutt non ne controlla la firma e la firma 
  contenuta all'interno del corpo del messaggio, come in questo caso:



  -----BEGIN PGP SIGNED MESSAGE-----

  Date: Tue, 25 May 1999 13:04:26 +0200
  From: La Corporacin <bill@reboot.com>
  Subject: Actualizacin S.O.
  To: Sufrido Usuario <pepe@casa.es>


  Sufrido usuario:

  le comunicamos que puede usted adquirir la ltima actualizacin del
  programa O.E. con la adquisicin de nuestro sistema operativo reboot99
  por el mdico precio de ... etc.


  -----BEGIN PGP SIGNATURE-----
  Version: 2.6.3ia
  Charset: noconv

  iKBGNpUBX0235VapRBUy1KklAQGl9wQA3SBMio0bbbajHAnyKMOlx3tcgNG7/UVC
  AbqXcUnyGGOo13Nbas95G34Fee3wsXIFo1obEfgiRzqPzZPLWoZdAnyTlZyTwCHe
  6ifVpLTuaXvcn9/76rXoI6u9svN2cqHCgHuNASKHaK9034uq81PSdW4QdGLgLoeB
  vnGmxE+tGg32=
  =Xidf
  -----END PGP SIGNATURE-----



  Per verificarlo, lo si deve salvare e usare la linea di comando.
  Tuttavia,  possibile convertire il tipo MIME di questo messaggio con
  _P_r_o_c_m_a_i_l per permettere a _M_u_t_t di riconoscerlo come _P_G_P_/_M_I_M_E. Si deve
  solo aggiungere a .procmailrc:



       :0
       * !^Content-Type: message/
       * !^Content-Type: multipart/
       * !^Content-Type: application/pgp
       {
           :0 fBw
           * ^-----BEGIN PGP MESSAGE-----
           * ^-----END PGP MESSAGE-----
           | formail \
               -i "Content-Type: application/pgp; format=text; x-action=encrypt"

           :0 fBw
           * ^-----BEGIN PGP SIGNED MESSAGE-----
           * ^-----BEGIN PGP SIGNATURE-----
           * ^-----END PGP SIGNATURE-----
           | formail \
               -i "Content-Type: application/pgp; format=text; x-action=sign"
       }



  Si pu notare che questo  valido per messaggi firmati e cifrati di
  tipo application/pgp.


  88..33..  CCaammbbiiaarree iill ttiippoo MMIIMMEE ppeerr mmeessssaaggggii ccoonntteenneennttii cchhiiaavvii sseennzzaa
  PPGGPP//MMIIMMEE


  Se si riceve un public key block da un MUA che non rispetta _P_G_P_/_M_I_M_E,
  si deve salvare il corpo del messaggio e poi inserirlo nel proprio
  public key ring. Per, inserendo queste linee in .procmailrc, si potr
  includere la chiave direttamente da mutt.



           :0 fBw
           * ^-----BEGIN PGP PUBLIC KEY BLOCK-----
           * ^-----END PGP PUBLIC KEY BLOCK-----
           | formail -i "Content-Type: application/pgp-keys; format=text;"



  Grazie a Denis Alan per questa nota su procmail.


  99..  SSccaammbbiiaarree mmeessssaaggggii ffiirrmmaattii//cciiffrraattii ccoonn MMUUAA ee ppiiaattttaaffoorrmmee ddiiffffeerr
  eennttii

  All'inizio, la firma era inserita all'interno del testo.  In seguito,
   stato introdotto il tipo MIME application/pgp ad indicare che il
  successivo attachment era la firma o il messaggio cifrato. Infine, con
  le specifiche PGP/MIME,  stato possibile isolare la firma dal
  messaggio originale, cos da non modificarlo assolutamente e in modo
  tale che chi non avesse PGP potesse vedere il messaggio come era
  originariamente (nel caso di messaggio firmato), senza alcun testo
  aggiunto all'inizio o alla fine da PGP.

  Attualmente, solo pochi mail user agent (MUA) sono in grado di
  integrare PGP e usare lo standard PGP/MIME. Cos  necessario inviare
  i messaggi utilizzando il vecchio metodo quando si sa che il
  destinatario non supporta PGP/MIME.

  In Linux, i mail user agent che riconoscono PGP/MIME sono mutt-i e
  pine. In Windows, solo Eudora nelle versioni 3.x e 4.x pu usare
  PGP/MIME. Se conoscete altri mail user agent che supportano PGP/MIME,
  ditemelo via e-mail, e li includer qui.


  1100..  PPrrooggrraammmmii ee vveerrssiioonnii uuttiilliizzzzaattii

  Per scrivere questo documento abbiamo utilizzato le seguenti versioni
  di Mutt:


    Mutt 0.93i - non si pu usare GnuPG con questa versione.

    Mutt 0.95.3i - possono essere usate tutte le versioni di PGP e
     GnuPG

  Di seguito, le versioni di PGP e GnuPG:


    PGPi 5.0

    GnuPG 0.4.3

    GnuPG 0.9.4


  1111..  UUlltteerriioorrii iinnffoorrmmaazziioonnii

  La documentazione originale da cui questo documento  stato tratto pu
  essere trovata nelle pagine di manuale di "mutt", "pgp", "pgp5",
  "gnupg", "procmail", nelle rispettive directory sotto /usr/doc e nei
  siti:


    Home Page Ufficiale di Mutt- http://www.mutt.org

    Sito Principale di GnuPG - http://www.gnupg.org

    Sito di PGP International - http://www.pgpi.com

    Home Page Ufficiale di Procmail - http://www.procmail.org

  Le RFC cui si fa riferimento in questo documento sono:


    1847 - Security Multiparts for MIME: Multipart/signed and
     Multipart/encripted

    1848 - MIME Object Security Services

    1991 - PGP Message Exchange Formats

    2015 - MIME Security with Pretty Good Privacy (PGP)

    2440 - OpenPGP Message Format

  e possono essere trovate in /usr/doc/doc-rfc e in vari siti su
  Internet, ad esempio http://metalab.unc.edu e http://nic.mil. Si
  possono ottenere informazioni sulle RFC in RFC-INFO@ISI.EDU



