Difference between revisions of "Gpg e macosx"
(Aggiunto un nuovo articolo incentrato su GPG per MacOsX) |
(Rimosso collegamento alla maschera di contatto grazie allo spammer di qq.com (119.92.179.110 / 203.177.79.0/24)) |
||
Line 247: | Line 247: | ||
== Conclusioni == | == Conclusioni == | ||
− | Il presente articolo contiene una breve presentazione delle versioni di Gnu Privacy Guard sviluppate per piattaforma Mac. Sono state descritte la procedura di installazione ed il funzionamento base del programma. 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 offerti o solo per ottenere maggiori informazioni, per cortesia | + | Il presente articolo contiene una breve presentazione delle versioni di Gnu Privacy Guard sviluppate per piattaforma Mac. Sono state descritte la procedura di installazione ed il funzionamento base del programma. 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 offerti o solo per ottenere maggiori informazioni, per cortesia utilizzate i [[studiosg | contatti]] reperibili nell'apposita pagina. |
Revision as of 10:49, 2 July 2018
Benvenuti nella pagina Wiki di Simone Giustetti.
Lingue: English - Italiano
GPG per MacOsX
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 Macintosh. Per tale sistema in particolare esistono tre versioni "ufficiali" di GPG:
- MacGPG è la conversione ufficiale del ramo 1.4 di GPG. Lo sviluppo di tale versione è concluso e i pacchetti forniti servono solo nell'evenienza di dover supportare vecchie installazioni o vecchie versioni di OsX.
- GPGOsX è la conversione ufficiale del ramo 2.1 di GPG. Include tutte le funzionalità introdotte con la versione 2.0 e la recente 2.1.
- GPGTools è un'alternativa a GPGOsX basata sula ramo 2.0 di sviluppo. GPGTools ha il vantaggio di includere molte integrazioni al programma di base come i plug-in per Apple Mail ed un'interfaccia grafica funzionante.
Sia GPGOsX che GPGTools supportano solo versioni piuttosto recenti di OsX. La versione minima richiesta per installare i due programmi è la 10.6 oppure la 10.7. MacGPG invece supporta le vecchie architetture ed è pertanto indicato per chi ancora possedesse un Mac basato su architettura PowerPC. Questi ultimi dovranno però prepararsi ad utilizzare la riga di comando dato che il file di installazione non include una interfaccia grafica.
Installazione
La procedura di installazione varia leggermente al variare del programma che si installa. Si rimanda alla documentazione presente sui siti web dei rispettivi programmi per istruzioni dettagliate. Di seguito sono forniti alcuni collegamenti a pagine web che descrivono la procedura di installazione di GPGTools:
Creazione delle Chiavi & Configurazione
Le pagine collegate più sopra contengono indicazioni circa la creazione della coppia di chiavi utilizzate da GPG per cifrare e decifrare i file. Le chiavi sono fondamentali per GPG dato che da esse dipende la robustezza delle informazioni cifrate. Per informazioni esaustive si rimanda alla documentazione del programma mentre più sotto verranno riassunti i 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 essere condivisa con nessuno.
- 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.
Le chiavi devono essere create come prima cosa a seguito dell'installazione per consentire il funzionamento del programma. La lunghezza delle chiavi è un aspetto delicato ed oggetto di discussione frequente. Una chiave di lunghezza maggiore garantisce in teoria una maggiore sicurezza, ma il suo impiego comporta svantaggi da prendere in considerazione. GPG consente di impostare una lunghezza massima di 4096 bit per le chiavi, ma si consiglia comunque di impostare il valore standard di 2048 bit. La lunghezza standard rappresenta un buon compromesso tra sicurezza e prestazioni garantendo inoltre la possibilità di utilizzare dispositivi esterni quali le smart card. Le FAQ di GPG (In inglese) contengono una trattazione della lunghezza in cui vengono soppesati i vantaggi e gli svantaggi del ricorso a dimensioni maggiori di 2048 bit.
La procedura per la generazione delle chiavi è descritta di seguito. Seppure alcune versioni di GPG per Mac dispongano di una interfaccia grafica di amministrazione, la riga di comando è l'unica interfaccia comune a tutte e tre perciò se ne farà ricorso.
- Aprire un terminale.
- Lanciare il comando gpg --gen-key fornendo tutte le informazioni richieste come nell'esempio sottostante:
hostname:~ user1$ gpg --gen-key gpg (GnuPG) 1.4.9; Copyright (C) 2008 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) DSA and Elgamal (default) (2) DSA (sign only) (5) RSA (sign only) Your selection? 1 DSA keypair will have 1024 bits. ELG-E 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 You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich heine (Der Dichter) <heinrichh@dusseldorf.de>" 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 CE95C1E9 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, 1u pub 1024R/CE95C1E9 2016-03-22 Key fingerprint = 4313 91CC F222 161E 3B19 54CE AC09 5248 CE95 C1E9 uid StudioSG (sg_test_03) <studiosg@giustetti.net> sub 2048g/1C97007E 2016-03-22
La procedura chiede di inserire un identificatore ed altre informazioni personali utilizzate per distinguere le chiavi. Per ottenere un elenco delle chiavi registrate utilizzare il comando gpg --list-keys:
hostname:~ user1$ gpg --list-keys /home/user1/.gnupg/pubring.gpg ----------------------------- pub 1024D/CE95C1E9 2016-03-22 uid StudioSG (sg_test_03) <studiosg@giustetti.net> sub 2048g/1C97007E 2016-03-22
Durante la creazione delle chiavi è possibile digitare una passphrase opzionale per la chiave privata. Si consiglia caldamente di utilizzare sempre una passphrase, che 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.
Il comportamento di GPG varia impostando opportuni valori per le opzioni del programma. In un sistema MacOsX le opzioni di configurazione sono salvate in file di testo modificabili con comune elaboratore di testo. Ogni utenza configurata sul sistema possiede una copia personale dei file di configurazione, che sono salvati nella cartella principale. Il file di configurazione di GPG è /Users/<nome utente>/.gnupg/gpg.conf. Ad esempio il file di configurazione di un ipotetico utente user1 sarà: /Users/user1/.gnupg/gpg.conf. Il punto all'inizio del nome .gnupg impone che la cartella sia nascosta. Per visualizzare la cartella utilizzare l'opzione -a del comando ls:
- ls -la
Per leggere o modificare il proprio file di configurazione:
- /Applications/TextEdit.app/Contents/MacOS/TextEdit /Users/<nome utente>/.gnupg/gpg.conf
Il file è commentato scrupolosamente, ma si rimanda comunque al manuale del programma per una descrizione di tutte le opzioni ivi contenute. Le opzioni predefinite sono adeguate per la quasi totalità degli usi privati o professionali. Si consiglia di cambiare tali valori solo quando si sia certi del risultato ottenuto.
Il comando gpg deve essere rimpiazzato da gpg2 dagli utenti di GPGOsX o GPGTools che usino la riga di comando invece delle rispettive interfacce grafiche.
Back-up della Coppia di Chiavi
La coppia di chiavi è fondamentale per leggere i file cifrati: la perdita della chiave privata potrebbe rivelarsi una catastrofe essendo impossibile per i processori attualmente in commercio decifrare i file senza di essa. L'intero archivio andrebbe perso assieme alla chiave ed è pertanto buona norma generare una copia delle chiavi da conservare poi in un luogo sicuro, diverso dalla macchina su cui si lavori abitualmente. Tutte le chiavi generate sono contenute all'interno della cartella /Users/<nome utente>/.gnupg in appositi file binari. Un modo semplice ottenere la copia di sicurezza delle chiavi consiste nella creazione di un archivio compresso protetto da password:
- zip -er key_backup.zip /Users/<nome utente>/.gnupg
Il comando zip chiederà all'utente di fornire una password per l'archivio e di confermarla immediatamente dopo. L'archivio generato, key_backup.zip, potrà essere aperto solo fornendo la password impostata. La versione del comando zip installata in OsX 10.4 o precedenti non supporta la crittografia. Gli utenti di tali sistemi devono rimuovere l'opzione -e altrimenti il comando fallirà rendendo l'errore "(encryption not supported)":
- zip -r key_backup.zip /Users/<nome utente>/.gnupg
Cifrare e Decifrare File
Il lancio dei comandi di GPG per cifrare e decifrare documenti su Mac dipende dal software installato pertanto anche in questo caso si rimanda alla documentazione del programma specifico. Seguono alcuni collegamenti alle pagine del sito di GPGTools:
L'interfaccia a riga di comando ha il vantaggio di essere uniforme per tutti i programmi. È possibile ottenere informazioni ed esempi d'uso nella documentazione ufficiale di GPG, che illustra i comandi e le relative opzioni. Il comando base per cifrare un file è:
- gpg --encrypt <file>
GPG chiederà all'utente di fornire un identificatore per la chiave del destinatario del file che verrà utilizzata per cifrare il documento come illustrato nell'esempio sottostante:
hostname:~ user1$ gpg --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: 2048g/1C97007E 2016-03-22 "StudioSG (sg_test_03) <studiosg@giustetti.net>" Enter the user ID. End with an empty line: hostname:~ user1$
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:
hostname:~ user1$ gpg --list-keys /Users/user1/.gnupg/pubring.gpg ----------------------------- pub 1024D/CE95C1E9 2016-03-22 uid StudioSG (sg_test_03) <studiosg@giustetti.net> sub 2048g/1C97007E 2016-03-22
Per cifrare molti file con un unico comando esiste l'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 nella riga di comando. Nell'esempio riportato sotto tre documenti sono protetti utilizzando la chiave del destinatario StudioSG:
hostname:~ user1$ ls -la total 48 drwx------ 3 user1 user1 4096 Mar 18 18:50 . drwx------ 17 root admin 4096 Mar 18 18:37 .. -rw------- 1 user1 user1 7737 Mar 18 18:50 st_test01.pdf -rw------- 1 user1 user1 7844 Mar 18 18:50 st_test02.pdf -rw------- 1 user1 user1 7932 Mar 18 18:50 st_test03.pdf hostname:~ user1$ gpg -r StudioSG --multi --encrypt st_test0* hostname:~ user1$ ls -la total 72 drwx------ 3 user1 user1 4096 Mar 18 18:50 . drwx------ 17 root admin 4096 Mar 18 18:37 .. -rw------- 1 user1 user1 7737 Mar 18 18:50 st_test01.pdf -rw------- 1 user1 user1 7378 Mar 18 18:50 st_test01.pdf.gpg -rw------- 1 user1 user1 7844 Mar 18 18:50 st_test02.pdf -rw------- 1 user1 user1 7487 Mar 18 18:50 st_test02.pdf.gpg -rw------- 1 user1 user1 7932 Mar 18 18:50 st_test03.pdf -rw------- 1 user1 user1 7574 Mar 18 18:50 st_test03.pdf.gpg
Per decifrare un file si utilizza il comando gpg 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.
- gpg --output <file in chiaro> --decrypt <file cifrato>
hostname:~ user1$ gpg --output st_test01.pdf --decrypt st_test01.pdf.gpg You need a passphrase to unlock the secret key for user: "StudioSG (sg_test_03) <studiosg@giustetti.net>" 2048-bit ELG-E key, ID 1C97007E, created 2016-03-22 (main key ID CE95C1E9) gpg: encrypted with 2048-bit ELG-E key, ID 1C97007E, created 2016-03-22 "StudioSG (sg_test_03) <studiosg@giustetti.net>" hostname:~ user1$ ls -la total 56 drwx------ 3 user1 user1 4096 Mar 18 18:50 . drwx------ 17 root admin 4096 Mar 18 18:37 .. -rw------- 1 user1 user1 7737 Mar 18 18:50 st_test01.pdf -rw------- 1 user1 user1 7378 Mar 18 18:50 st_test01.pdf.gpg -rw------- 1 user1 user1 7487 Mar 18 18:50 st_test02.pdf.gpg -rw------- 1 user1 user1 7574 Mar 18 18:50 st_test03.pdf.gpg
GPG-AGENT
Gpg-agent è un demone che memorizza in una propria cache tutte le passphrase digitate da un utente fornendole poi ai programmi che le richiedano successivamente. L'utente dovr&agrve; inserire ogni password solo una volta e non all'apertura di ogni documento. Il risparmio di tempo risulterà notevole 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 e l'ambiente deve essere opportunamente configurato perchè ne avverta la presenza e lo interroghi quando necessario. Per automatizzare l'avvio di gpg-agent in MacOsX è necessario configurare un launch agent:
- Aprire il terminale.
- Spostarsi nella cartella del launch agent:
- cd ~/Library/LaunchAgents
- Creare un file che contenga la configurazione di gpg-agent:
- /Applications/TextEdit.app/Contents/MacOS/TextEdit org.gnupg.gpg-agent.plist
- Popolare il file con la configurazione di gpg-agent in formato XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.gnupg.gpg-agent</string>
<key>ProgramArguments</key>
<array>
<string>/Users/<nome utente>/bin/gpg_agent_start.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
- Nella cartella del proprio utente creare la sotto-cartella bin ove salvare lo script di avvio di GPG:
- mkdir /Users/<nome utente>/bin
- Creare lo script di avvio:
- /Applications/TextEdit.app/Contents/MacOS/TextEdit gpg_agent_start.sh
if test -f $HOME/.gpg-agent-info && \
kill -0 `cut -d: -f 2 $HOME/.gpg-agent-info` 2>/dev/null; then
GPG_AGENT_INFO=`cat $HOME/.gpg-agent-info`
export GPG_AGENT_INFO
else
eval `/usr/local/bin/gpg-agent --daemon --write-env-file $HOME/.gpg-agent-info`
fi
export GPG_TTY=`tty`
- Rendere il file di avvio eseguibile:
- chmod 700 gpg_agent_start.sh
- Aggiornare la configurazione del terminale perchà tutti i comandi siano informati della presenza dell'agente. Il terminale utilizza una shell bash ergo sarà necessario aggiornare il file di configurazione della stessa:
- cd
- /Applications/TextEdit.app/Contents/MacOS/TextEdit .bash_profile
export GPG_TTY=$(tty)
if [[ -f "${HOME}/.gpg-agent-info" ]]; then
. "${HOME}/.gpg-agent-info"
export GPG_AGENT_INFO
fi
I parametri di configurazione di gpg-agent sono contenuti nel file /Users/<nome utente>/.gnupg/gpg-agent.conf. Tra questi vale la pena citare default-cache-ttl che imposta l'intervallo 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 si modifichi la riga:
default-cache-ttl 600
in
default-cache-ttl 3600
e si riavvii il demone gpg-agent.
Gli utenti con versione di OsX 10.4 o meno recente non potranno usufruire dei servizi di gpg-agent essendo lo stesso un componente introdotto con la versione 2.0 di GPG.
Conclusioni
Il presente articolo contiene una breve presentazione delle versioni di Gnu Privacy Guard sviluppate per piattaforma Mac. Sono state descritte la procedura di installazione ed il funzionamento base del programma. 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 offerti 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
- Pagina ufficiale di GNU Privacy Guard (Inglese)
- GPG versione 1.4 per MacOsX
- GPG versione 2.0 per MacOsX (Inglese)
- Versione alternativa di GPG 2.0 per MacOsX (Inglese)
Lingue: English - Italiano