Difference between revisions of "Gpg e linux"

From Studiosg
Jump to navigationJump to search
(Aggiunto nuovo articolo circa l'impiego di GPG su Linux)
 
(Corretto proseguo in prosieguo)
 
(2 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
== GPG per Linux ==
 
== GPG per Linux ==
  
'''Gnu Pravacy Guard è un programma per la crittografia ad uso personale''' che gira su di una moltitudine di piattaforme tra cui i sistemi operativi della famiglia '''Linux'''. L'installazione di base di quasi tutte le distribuzioni include un pacchetto dedicato a GPG, che spesso viene installato automaticamente essendo considerato uno strumento fondamentale. Le distribuzioni recenti includono due pacchetti dedicati al programma: uno per la famiglia 1.4.x ed un secondo per la nuova versione 2.x. In questo modo gli utenti che desiderino usufruire delle funzionalità introdotte nel nuovo ramo di sviluppo potranno installare il pacchetto chiamato '''gnupg2''', mentre chi desiderasse mantenere il livello di compatibilità maggiore possibile con le vecchie installazioni potrà installare il pacchetto '''gnupg'''. Nel proseguo dell'articolo verranno illustrate le caratteristiche base del programma.
+
'''Gnu Pravacy Guard è un programma per la crittografia ad uso personale''' che gira su di una moltitudine di piattaforme tra cui i sistemi operativi della famiglia '''Linux'''. L'installazione di base di quasi tutte le distribuzioni include un pacchetto dedicato a GPG, che spesso viene installato automaticamente essendo considerato uno strumento fondamentale. Le distribuzioni recenti includono due pacchetti dedicati al programma: uno per la famiglia 1.4.x ed un secondo per la nuova versione 2.x. In questo modo gli utenti che desiderino usufruire delle funzionalità introdotte nel nuovo ramo di sviluppo potranno installare il pacchetto chiamato '''gnupg2''', mentre chi desiderasse mantenere il livello di compatibilità maggiore possibile con le vecchie installazioni potrà installare il pacchetto '''gnupg'''. Nel prosieguo dell'articolo verranno illustrate le caratteristiche base del programma.
  
 
=== Installazione ===
 
=== Installazione ===
Line 281: Line 281:
 
== Conclusioni ==
 
== Conclusioni ==
  
Il presente documento contiene una breve presentazione della versione di Gnu Privacy Guard ottimizzata per piattaforma Linux. Sono state descritte la procedura di installazione ed il funzionamento base del programma. Nel far ciò si è cercato di mantenere la neutralità per quanto concerne la distribuzione utilizzata. È stato infine fornito un accenno alle numerose interfacce grafiche di amministrazione per il programma ed i servizi correlati. Per maggiori informazioni si rimanda al manuale del progetto ed ai numerosi articoli disponibili in rete e in questo stesso sito web. Se foste interessati ai servizi che offriamo o solo per ottenere maggiori informazioni, per cortesia contattateci attraverso l'apposita [[Special:Contact/crittografia | maschera]].
+
Il presente documento contiene una breve presentazione della versione di Gnu Privacy Guard ottimizzata per piattaforma Linux. Sono state descritte la procedura di installazione ed il funzionamento base del programma. Nel far ciò si è cercato di mantenere la neutralità per quanto concerne la distribuzione utilizzata. È stato infine fornito un accenno alle numerose interfacce grafiche di amministrazione per il programma ed i servizi correlati. Per maggiori informazioni si rimanda al manuale del progetto ed ai numerosi articoli disponibili in rete e in questo stesso sito web. Se foste interessati ai servizi che offriamo o solo per ottenere maggiori informazioni, per cortesia utilizzate i [[studiosg | contatti]] reperibili nell'apposita pagina.
  
  

Latest revision as of 13:06, 2 May 2022

Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: English - Italiano


GPG per Linux

Gnu Pravacy Guard è un programma per la crittografia ad uso personale che gira su di una moltitudine di piattaforme tra cui i sistemi operativi della famiglia Linux. L'installazione di base di quasi tutte le distribuzioni include un pacchetto dedicato a GPG, che spesso viene installato automaticamente essendo considerato uno strumento fondamentale. Le distribuzioni recenti includono due pacchetti dedicati al programma: uno per la famiglia 1.4.x ed un secondo per la nuova versione 2.x. In questo modo gli utenti che desiderino usufruire delle funzionalità introdotte nel nuovo ramo di sviluppo potranno installare il pacchetto chiamato gnupg2, mentre chi desiderasse mantenere il livello di compatibilità maggiore possibile con le vecchie installazioni potrà installare il pacchetto gnupg. Nel prosieguo dell'articolo verranno illustrate le caratteristiche base del programma.

Installazione

Come anticipato in precedenza il programma viene installato automaticamente dalla maggior parte delle distribuzioni. Vale comunque la pena illustrare la procedura di installazione nel caso in cui la macchina sia incompleta o sia stato installato solo un sistema minimale da personalizzare secondo le esigenze oppure la versione installata non sia quella desiderata. La procedura di installazione di GPG su Linux differisce dagli altri sistemi operativi e anche tra le diverse distribuzioni. In linea generale si possono classificare quatto metodologie di installazione in base alla distribuzione utilizzata. Tutte le distribuzioni Linux attualmente esistenti hanno radici comuni e possono essere catalogate in quattro famiglie principali:

  • Debian / Ubuntu
  • Gentoo
  • Red Hat
  • Slackware

La stragrande maggioranza delle macchine Linux esistenti montano uno dei quattro sistemi elencati oppure un sistema derivato da uno di essi. Di seguito verranno illustrate istruzioni specifiche per ogni variante. L'installazione di programmi e software su di un sistema Linux richiede privilegi di amministratore perciò nel seguito si darà per scontato che l'utente stia operando come root.

Installazione su Debian

Debian e Ubuntu sono tra i più noti e diffusi sistemi Linux. Entrambi utilizzano pacchetti nel formato deb che gestiscono mediante il comando apt-get. In particolare per installare GPG sarà sufficiente lanciare il comando:

  • apt-get install gnupg

Oppure

  • apt-get install gnupg2

La prima riga dell'esempio fa riferimento al pacchetto della versione 1.4 obsoleta di GPG mentre la seconda riga opererà sulla recente versione 2.x del programma.

Installazione su Gentoo

Gentoo si differenzia parecchio dalle altre distribuzioni citate nell'articolo per due motivi. Il primo motivo è che la distribuzione non usa numeri di versione, ma è aggiornata costantemente. Il secondo e non meno importante consiste nel fatto che è una distribuzione basata sul codice sorgente. Vale a dire che la maggioranza del software deve essere compilato al momento dell'installazione. La ricerca, installazione, manutenzione e rimozione dei programmi viene gestita attraverso un opportuno strumento chiamato emerge. Per installare un qualsiasi programma si lanci il comando:

emerge <nome_del_programma>

In automatico il sistema si preoccuperà di compilare ed installare il programma e le relative dipendenze. Il comando da lanciare per installare GPG è:

emerge --ask app-crypt/gnupg

Ove l'opzione --ask fornirà un'anteprima delle modifiche che verranno apportate al sistema prima di eseguire l'installazione, che si avvierà solo dopo aver ricevuto una conferma dall'utente.

Installazione su Red Hat

I sistemi Linux Red Hat e derivati, CentOS è forse uno dei più noti, utilizzano pacchetti nel formato rpm gestiti attraverso i comandi rpm e yum. Qualora sia configurato correttamente, yum consente di installare facilmente pacchetti mediante la sintassi yum install <nome del pacchetto>. Il nome preciso del pacchetto può variare a seconda della distribuzione utilizzata. La versione 1.4 di GNU Privacy Guard ad esempio può essere identificata come gpg oppure come gnupg. Analogamente il nome dei pacchetti della versione 2.x può variare tra gpg2 e gnupg2. Per installare il pacchetto e le relative dipendenze è possibile utilizzare i comandi:

yum install gpg
yum install gpg2

Oppure

yum install gnupg
yum install gnupg2

I primi due comandi installeranno la versione 1.4 di GPG mentre gli ultimi due opereranno con la recente versione 2.x del programma.

Installazione su Slackware

La più longeva delle distribuzioni Linux sviluppate e manutenute attivamente. Slackware utilizza un approccio molto essenziale all'amministrazione di sistema e all'installazione dei pacchetti. Per verificare quali pacchetti siano installati è ad esempio sufficiente elencare il contenuto della cartella /var/log/packages come sotto:

ls -la /var/log/packages

Per verificare se sia installato GPG:

  root@system:~# ls -la /var/log/packages/* | grep -i gnupg
  -rw-r--r-- 1 root root    4467 Aug 19  2015 /var/log/packages/gnupg-1.4.19-x86_64-2_slack14.1
  -rw-r--r-- 1 root root   13983 Dec  3  2014 /var/log/packages/gnupg2-2.0.24-x86_64-1_slack14.1
  -rw-r--r-- 1 root root     751 Dec 14  2013 /var/log/packages/qca-gnupg-2.0.0_beta3-x86_64-1

Nell'esempio il comando rende sia un pacchetto per la versione 2.0 che uno per la 1.4 a testimoniare che entrambe sono a disposizione dell'utenza. Per installare software si fa abitualmente ricorso al comando installpkg. I pacchetti ufficiali della distribuzione possono essere scaricati dall'apposita sezione del sito. Una volta scaricato il pacchetto per la propria architettura in una cartella locale, ad esempio /tmp, è possibile lanciare il comando installpkg <nome del pacchetto> per installarlo. Per installare le ultime versioni disponibili di GP per architettura a 64 bit:

installpkg gnupg-1.4.19-x86_64-2_slack14.1
installpkg gnupg2-2.0.24-x86_64-1_slack14.1

Omettere la prima riga nel caso in cui si desiderasse installare solo l'ultima versione di GPG per Linux.

Slackware dispone di uno strumento per automatizzare la gestione dei pacchetti che si occupa autonomamente di eseguire il download e la successiva installazione. Slackpkg, questo il nome del programma, è normalmente disabilitato e per abilitarlo è necessario:

  • Aggiornare il file /etc/slackpkg/mirrors, che contiene l'elenco dei siti da cui reperire i pacchetti, impostando una ed una sola sorgente rimuovendo il carattere # dall'inizio della riga corrispondente.
  • Aggiornare la configurazione di slackpkg tramite il comando:
slackpkg update

Il programma scaricherà un elenco aggiornato dei pacchetti disponibili ed altre informazioni di configurazione quindi sarà pronto ad operare. Per installare un pacchetto lanciare il comando slackpkg install <nome del pacchetto> come nell'esempio sottostante riferito a GPG:

slackpkg install gnupg-1.4.19-x86_64-2_slack14.1
slackpkg install gnupg2-2.0.24-x86_64-1_slack14.1

Ad installazione ultimata sarà possibile procedere a configurare GPG.

Creazione delle Chiavi & Configurazione

Dalle chiavi dipende la robustezza delle informazioni cifrate. Data la delicatezza dell'argomento si consiglia lettura del manuale di GPG (In inglese) prima di procedere. Di seguito verranno riassunti alcuni concetti fondamentali relativi alla crittografia ed al funzionamento di GPG:

  • GPG utilizza la crittografia asimmetrica anche detta crittografia a chiave pubblica.
  • La crittografia asimmetrica utilizza una coppia di chiavi: una chiave pubblica, che ha la funzione di cifrare le informazioni, ed una chiave privata necessaria per decifrare i dati.
  • La chiave pubblica deve essere distribuita a tutti coloro che desiderano inviarci messaggi o file cifrati.
  • La chiave privata è segreta e non deve mai essere condivisa.
  • Informazioni cifrate con la chiave pubblica possono essere decifrate solo con quella privata.
  • La chiave privata può essere protetta con una passphrase. Anche se sottratta da persone non autorizzate, una chiave protetta risulta inutilizzabile senza conoscere la passphrase.

Data l'importanza che la coppia di chiavi ricopre per il funzionamento di GPG, deve essere creata come prima cosa a seguito dell'installazione. La procedura per la generazione delle chiavi è dettagliata di seguito. Seppure esistano molte interfacce grafiche per amministrare GPG, nessuna può essere realmente considerata uno standard su Linux per cui durante la trattazione e gli esempi si farà ricorso alla riga di comando.

  • Collegarsi ad un terminale reale o emulato come ad esempio: xterm, konsole.

Verrà trattata la versione 2 di GPG. Se foste interessati alla versione 1.4 il comando gpg2 dovrà essere sostituito da gpg. Vale la pena sottolineare che le due versioni non sono completamente compatibili per cui alcuni comandi potrebbero non funzionare o avere esiti diversi da quelli descritti.

  • Generare la coppia di chiavi lanciando il comando gpg2 --gen-key
  user@system:~$ gpg2 --gen-key
  gpg (GnuPG) 2.0.24; Copyright (C) 2013 Free Software Foundation, Inc.
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.
  
  Please select what kind of key you want:
     (1) RSA and RSA (default)
     (2) DSA and Elgamal
     (3) DSA (sign only)
     (4) RSA (sign only)
  Your selection? 1
  RSA keys may be between 1024 and 4096 bits long.
  What keysize do you want? (2048) 
  Requested keysize is 2048 bits
  Please specify how long the key should be valid.
           0 = key does not expire
        <n>  = key expires in n days
        <n>w = key expires in n weeks
        <n>m = key expires in n months
        <n>y = key expires in n years
  Key is valid for? (0) 0
  Key does not expire at all
  Is this correct? (y/N) y
  
  GnuPG needs to construct a user ID to identify your key.
  
  Real name: StudioSG
  Email address: studiosg@giustetti.net
  Comment: sg_test_03
  You selected this USER-ID:
     "StudioSG (sg_test_03) <studiosg@giustetti.net>"
  
  Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
  You need a Passphrase to protect your secret key.
  
  We need to generate a lot of random bytes. It is a good idea to perform
  some other action (type on the keyboard, move the mouse, utilize the
  disks) during the prime generation; this gives the random number
  generator a better chance to gain enough entropy.
  We need to generate a lot of random bytes. It is a good idea to perform
  some other action (type on the keyboard, move the mouse, utilize the
  disks) during the prime generation; this gives the random number
  generator a better chance to gain enough entropy.
  gpg: key BCB7BBFF marked as ultimately trusted
  public and secret key created and signed.
  
  gpg: checking the trustdb
  gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
  gpg: depth: 0  valid:   2  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 2u
  gpg: next trustdb check due at 2018-02-17
  pub   2048R/BCB7BBFF 2016-03-17
        Key fingerprint = B01C FA65 707E 5096 B91A  825D A4E2 1F27 BCB7 BBFF
  uid       [ultimate] StudioSG (sg_test_03) <sstudiosg@giustetti.net>
  sub   2048R/FA671DAF 2016-03-17

La procedura chiederà di fornire un identificatore ed altre informazioni personali utilizzate per identificare le chiavi. La lunghezza massima delle chiavi gestite da GPG consiste in 4096 bit, ma il valore predefinito è 2048. Una lunghezza pari a 2048 bit garantisce un elevato livello di sicurezza bilanciando tale aspetto con le prestazioni e la facoltà di esportare le chiavi su smartcard o altri dispositivi esterni standardizzati. Se non esistessero ragioni specifiche per impostare una lunghezza maggiore, si consiglia di utilizzare un valore pari a 2048 bit per la lunghezza delle chiavi. Per maggiori informazioni circa il formato e la lunghezza delle chiavi si rimanda alle Domande Frequenti (In inglese) reperibili sul sito di GPG.

I valori standard dei parametri di configurazione sono adatti per la maggioranza degli usi privati o professionali, pertanto si consiglia di non modificarli a meno che sia necessario. Si consiglia comunque di non apportare modifiche per tentativi, ma di consultare preventivamente la documentazione e di procedere solo quando si sia certi del risultato voluto.

Durante la creazione delle chiavi è stata fornita una passphrase per la chiave privata. La passphrase è opzionale, ma consigliabile in quanto tutela l'utente in caso di furto del dispositivo su cui siano custodite le chiavi. Una password troppo corta o troppo facile potrebbe essere decifrata mediante un attacco di forza bruta. Una passphrase lunga più di otto caratteri contenente lettere, numeri e caratteri speciali salvaguarderà da tale tipo di attacchi.

È possibile controllare l'elenco delle chiavi esistenti utilizzando il comando gpg2 --list-keys:

  user@system:~$ gpg2 --list-keys
  /home/user/.gnupg/pubring.gpg
  -----------------------------
  pub   2048R/146BB7AD 2016-02-18 [expires: 2018-02-17]
  uid       [ultimate] StudioSG (SG Test Key) <studiosg@giustetti.net>
  sub   2048R/8FF38CC1 2016-02-18 [expires: 2018-02-17]
  
  pub   2048R/BCB7BBFF 2016-03-17
  uid       [ultimate] StudioSG (sg_test_03) <studiosg@giustetti.net>
  sub   2048R/FA671DAF 2016-03-17

Il comportamento di GPG può essere configurato impostando opportuni valori per le opzioni del programma. In un sistema Linux le opzioni di configurazione sono salvate in comuni file modificabili con qualsiasi programma di elaborazione testi. Ogni utenza configurata sul sistema possiede una propria copia personale dei file di configurazione, che sono salvati nella cartella home. Il file di configurazione di GPG è $HOME/.gnupg/gpg.conf ove $HOME rappresenta la home directory dell'utente. Ad esempio il file di configurazione di un ipotetico utente user1 sarà: /home/user1/.gnupg/gpg.conf. Il punto all'inizio del nome .gnupg indica che la cartella &egrve; nascosta e non sarà perciò visibile. Per visualizzare la cartella utilizzare l'opzione -a:

ls -la

Per leggere o modificare il proprio file di configurazione:

vi $HOME/.gnupg/gpg.conf

Il file è commentato scrupolosamente, ma si rimanda comunque al manuale del programma per una descrizione di tutte le opzioni ivi contenute.

Back-up della Coppia di Chiavi

La perdita della chiave privata potrebbe rivelarsi catastrofica per un archivio di documenti cifrati mediante GPG. La potenza computazionale fornita dagli attuali processori è giudicata insufficiente per decifrare documenti senza la chiave preposta. L'intero archivio andrebbe perso come conseguenza della perdita della chiave ed è pertanto consigliabile generare una copia delle chiavi privata e pubblica da conservare in un luogo sicuro diverso dalla macchina su cui si lavori abitualmente. Tutte le chiavi generate sono contenute all'interno della cartella $HOME/.gnupg in appositi file binari. Un modo semplice per generare una copia di sicurezza delle chiavi consiste nella creazione di un archivio compresso protetto da password:

tar -pcf key_backup.tar $HOME/.gnupg
zip -e key_backup.tar.zip key_backup.tar
rm key_backup.tar

Il comando zip chiederà all'utente di fornire una password per l'archivio e di confermarla immediatamente dopo. L'archivio generato, key_backup.tar.zip, potrà essere aperto solo fornendo la password impostata.

Cifrare e Decifrare File

Per cifrare uno o più file con GPG è possibile utilizzare il comando gpg2 seguito dalle opzioni --decrypt o --encrypt a seconda del caso. Il comando base per cifrare un file è:

gpg2 --encrypt <file>

Il programma chiederà all'utente di fornire un identificatore per la chiave del destinatario del file come nell'esempio sottostante:

  user@system:/tmp/_sg_test$ gpg2 --encrypt st_test01.pdf     
  You did not specify a user ID. (you may use "-r")
  
  Current recipients:
  
  Enter the user ID.  End with an empty line: StudioSG
  
  Current recipients:
  2048R/8FF38CC1 2016-02-18 "StudioSG (SG Test Key) <studiosg@giustetti.net>"
  
  Enter the user ID.  End with an empty line: 
  
  user@system:/tmp/_sg_test$ 

Il file così generato avrà il medesimo nome del file origine ed estensione .gpg.

Per impostare molti destinatari diversi bisogna digitarne uno per riga. Una riga vuota indica la fine dell'elenco di destinatari. Un elenco delle chiavi registrate ed utilizzabili per cifrare i file può essere richiamato mediante l'opzione --list-keys:

  user@system:/tmp/_sg_test$ gpg2 --list-keys
  -----------------------------
  pub   2048R/146BB7AD 2016-02-18 [expires: 2018-02-17]
  uid       [ultimate] StudioSG (SG Test Key) <studiosg@giustetti.net>
  sub   2048R/8FF38CC1 2016-02-18 [expires: 2018-02-17]
  
  pub   2048R/BCB7BBFF 2016-03-17
  uid       [ultimate] StudioSG (sg_test_03) <studiosg@giustetti.net>
  sub   2048R/FA671DAF 2016-03-17

È possibile cifrare molti file con un unico comando facendo ricorso all'opzione --multi. Nel caso sarà necessario fornire un elenco di destinatari per ogni file. L'operazione potrebbe risultare tediosa e, per semplificarla, GPG offre l'opzione -r che consente di fornire i destinatari direttamente dalla riga di comando. Nell'esempio riportato sotto tre documenti sono protetti utilizzando la chiave del destinatario StudioSG:

  user@system:/tmp/_sg_test$ ls -la
  total 48
  drwxrwxrwx  3 user1 users 4096 Mar 18 18:50 ./
  drwxrwxrwt 17 root root  4096 Mar 18 18:37 ../
  -rw-r--r--  1 user users 7737 Mar 18 18:50 st_test01.pdf
  -rw-r--r--  1 user users 7844 Mar 18 18:50 st_test02.pdf
  -rw-r--r--  1 user users 7932 Mar 18 18:50 st_test03.pdf
  user@system:/tmp/_sg_test$ gpg2 -r StudioSG --multi --encrypt st_test0*
  user@system:/tmp/_sg_test$ ls -la
  total 72
  drwxrwxrwx  3 user users 4096 Mar 18 18:50 ./
  drwxrwxrwt 17 root root  4096 Mar 18 18:37 ../
  -rw-r--r--  1 user users 7737 Mar 18 18:50 st_test01.pdf
  -rw-r--r--  1 user users 7378 Mar 18 18:50 st_test01.pdf.gpg
  -rw-r--r--  1 user users 7844 Mar 18 18:50 st_test02.pdf
  -rw-r--r--  1 user users 7487 Mar 18 18:50 st_test02.pdf.gpg
  -rw-r--r--  1 user users 7932 Mar 18 18:50 st_test03.pdf
  -rw-r--r--  1 user users 7574 Mar 18 18:50 st_test03.pdf.gpg

Per decifrare un file si utilizza il comando gpg2 seguito dall'opzione --decrypt. GPG chiederà all'utente di fornire una password, ricevuta la quale esporterà il contenuto del file cifrato sull'output della console. Per ottenere un file in chiaro, invece, è necessario utilizzare l'opzione --output e fornire un nome per detto file.

gpg2 --output <file in chiaro> --decrypt <file cifrato>
  user@system:/tmp/_sg_test$ gpg2 --output st_test01.pdf --decrypt st_test01.pdf.gpg
  
  You need a passphrase to unlock the secret key for
  user: "StudioSG (SG Test Key) <studiosg@giustetti.net>"
  2048-bit RSA key, ID 8FF38CC1, created 2016-02-18 (main key ID 146BB7AD)
  
  gpg: can't connect to the agent - trying fall back
  gpg: encrypted with 2048-bit RSA key, ID 8FF38CC1, created 2016-02-18
        "StudioSG (SG Test Key) <studiosg@giustetti.net>"
  user1@system:/tmp/_sg_test$ ls -la
  total 56
  drwxrwxrwx  3 user users 4096 Mar 18 19:21 ./
  drwxrwxrwt 17 root root  4096 Mar 18 19:14 ../
  -rw-r--r--  1 user users 7737 Mar 18 19:21 st_test01.pdf
  -rw-r--r--  1 user users 7378 Mar 18 18:50 st_test01.pdf.gpg
  -rw-r--r--  1 user users 7487 Mar 18 18:50 st_test02.pdf.gpg
  -rw-r--r--  1 user users 7574 Mar 18 18:50 st_test03.pdf.gpg

GPG-AGENT

Gpg-agent è un demone che semplifica la vita degli utenti memorizzando in una propria cache tutte le passphrase richieste da GPG per decifrare informazioni. Le passphrase sono salvata al momento della prima digitazione. In seguito, quando GPG chieda nuovamente una password, questa sarà letta dalla cache e fornita direttamente da gpg-agent. L'utente in sostanza dovrà fornire ogni password una volta soltanto e non all'apertura di ogni documento. Un risparmio di tempo considerevole per il personale di un ufficio che debba leggere e gestire una gran quantità di documenti ogni giorno.

Il demone deve essere esplicitamente avviato ed attivo perchè memorizzi le password; è, inoltre, necessario configurare l'ambiente perchè avverta la presenza dell'agente e lo interpelli ad ogni nuova richiesta di password. Linux è un sistema complesso in grado di funzionare sia attraverso una interfaccia grafica che una a carattere fattori di cui la configurazione deve tener conto. Nel caso dell'interfaccia testuale, poi, esistono molte shell che l'utente può utilizzare per lanciare i comandi e queste possono essere interattive, ossia gestite attivamente da un utente, oppure no, come nel caso degli script che eseguono comandi in maniera autonoma. Per essere sicuri che gpg-agent sia disponibile a tutti i comandi dell'interfaccia carattere è bene avviarlo automaticamente assieme alla shell.

Il comando da lanciare per avviare l'agente è:

/usr/bin/gpg-agent --sh --daemon --write-env-file $HOME/.cache/gpg-agent-info

Aggiungere la riga riportata sopra nel file di configurazione della shell in modo da automatizzare l'avvio di gpg-agent. Supponendo che la shell da configurare sia bash, predefinita in Linux, i file da aggiornare sono:

  • $HOME/.bash_profile oppure $HOME/.profile per una shell di login ossia quella aperta quando ci si collega ad una macchina.
  • $HOME/.bash_rc per una shell non di login ossia una interfaccia secondaria aperta quando si è già collegati ad un computer.

Di seguito è riportato un esempio dei comandi di avvio:

   # Avvio di gpg-agent al collegamento.
   # Verificare che il servizio non si gi&agrave; attivo
   if test -f $HOME/.cache/.gpg-agent-info && \
      kill -0 `cut -d: -f 2 $HOME/.cache/.gpg-agent-info` 2>/dev/null; then
      GPG_AGENT_INFO=`cat $HOME/.cache/.gpg-agent-info | cut -c 16-`
   else
      # gpg-agent fermo => Avvio
      eval `gpg-agent --daemon --sh --write-env-file $HOME/.cache/.gpg-agent-info`
   fi
   # Impostazione delle variabili di ambiente
   GPG_TTY=$(tty)
   export GPG_TTY
   export GPG_AGENT_INFO

Nel caso in cui fosse usata ksh, zsh o altra shell, il comando di avvio di gpg-agent dovrà essere inserito nel file di configurazione letto all'avvio della stessa. Si rimanda alla documentazione specifica di ogni shell per informazioni dettagliate in merito.

Su Linux sono disponibili svariate interfacce grafiche: Gnome, KDE, TDE, XFCE, fortunatamente la configurazione risulta molto più standardizzata rispetto a quelle testuali dato che molti dei servizi che offrono sono basati sul server grafico | X. Per avviare automaticamente gpg-agent è possibile modificare il file $HOME/.xinitrc, che contiene le opzioni di avvio di una sessione X. Segue un esempio della riga da aggiungere nel file per informare l'ambiente desktop della presenza di gpg-agent:

   eval "$(gpg-agent --daemon)"

La riga aggiunta renderà disponibili ai programmi lanciati durante la sessione i servizi offerti da gpg-agent.

I parametri di configurazione di gpg-agent sono contenuti nel file $HOME/.gnupg/gpg-agent.conf. Tra questi vale la pena citare default-cache-ttl che imposta il lasso di tempo per cui una password verrà mantenuta nella cache. Scaduto tale limite la password verrà rimossa e chiesta nuovamente all'utente in caso di bisogno. Il tempo di vita standard di una password ammonta a 600 secondi ossia 10 minuti. Per aumentare tale intervallo ad un'ora sarà necessario modificare la riga

  default-cache-ttl 600

in

  default-cache-ttl 3600

e riavviare il demone gpg-agent.

Interfacce Grafiche

Esistono molte interfacce grafiche per amministrare GPG su Linux. La maggior parte delle interfacce sono integrate con l'ambiente grafico in uso ad esempio Kgpg per KDE 4, oppure Kleopatra un'interfaccia multi-piattaforma disponibile per Linux ed altri Unix e perfino per Windows. Tutti i programmi forniscono funzionalità equivalenti ed hanno aspetto simile. Esistono comunque differenze derivanti dall'integrazione degli stessi con l'ambiente per cui sono sviluppati si consiglia pertanto di consultare la documentazione specifica di ognuno di essi. Il pacchetto standard GPG comprende una interfaccia predefinita Gpa che viene di solito installata con lo stesso:

GPA - L'interfaccia grafica di GPG

Attraverso Gpa è possibile generare coppie di chiavi, cifrare e decifrare file e impostare le opzioni di funzionamento di GPG o gpg-agent:

GPA - Opzioni di funzionamento

Tutte le operazioni descritte in precedenza per interfaccia testuale possono essere eseguite tramite Gpa.


Conclusioni

Il presente documento contiene una breve presentazione della versione di Gnu Privacy Guard ottimizzata per piattaforma Linux. Sono state descritte la procedura di installazione ed il funzionamento base del programma. Nel far ciò si è cercato di mantenere la neutralità per quanto concerne la distribuzione utilizzata. È stato infine fornito un accenno alle numerose interfacce grafiche di amministrazione per il programma ed i servizi correlati. Per maggiori informazioni si rimanda al manuale del progetto ed ai numerosi articoli disponibili in rete e in questo stesso sito web. Se foste interessati ai servizi che offriamo o solo per ottenere maggiori informazioni, per cortesia utilizzate i contatti reperibili nell'apposita pagina.


Per commenti, consigli, domande inviate una e-mail all'indirizzo studiosg [chiocciola] giustetti [punto] net.


Link esterni





Lingue: English - Italiano