Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Sicurezza/GPGKeyOnUsbDrive"
Differenze tra le versioni 15 e 16
Versione 15 del 04/02/2011 16.56.19
Dimensione: 9553
Commento: copiato mio output
Versione 16 del 05/02/2011 13.10.33
Dimensione: 9460
Commento: niente di che
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 13: Linea 13:
Spesso si desidera poter utilizzare utilizzare una chiave GPG su più di un computer, per esempio a casa e al lavoro, o su un desktop e un laptop.
Per ulteriori chiarimenti vedere la pagina [http://wiki.ubuntu-it.org/Sicurezza/GnuPg GnuPG]
Questa guida spiega come utilizzare [http://wiki.ubuntu-it.org/Sicurezza/GnuPg GnuPg] su più dispositivi (il proprio portatile, il computer di casa, il computer del lavoro...) salvando le proprie chiavi su un dispositivo Usb criptato.
Linea 16: Linea 15:
Purtroppo, la memorizzazione delle chiavi di crittografia in un supporto di cui non si ha il controllo fisico è generalmente una cattiva idea. Anche memorizzarle su un computer portatile può essere problematico - se il portatile viene rubato, lo sarà anche la chiave GPG.
Per fortuna comunque, si può revocare la chiave prima che qualcuno sia in grado di decodificarla, perché le chiavi GPG vengono salvate e protette in ogni momento per impostazione predefinita; comunque tutto questo processo è una seccatura.
E se fosse possibile archiviare la chiave in modo sicuro su un dispositivo che avete sempre addosso?
La memorizzazione delle chiavi di crittografia su un supporto di cui non si ha il controllo fisico è generalmente una cattiva idea. Anche memorizzarle su un computer portatile può essere problematico: se il portatile viene rubato, lo sarà anche la chiave Gpg se non si è provveduto a criptare il disco rigido o la partizione in cui è stata salvata. Si può sempre revocare la chiave prima che qualcuno sia in grado di decodificarla, comunque tutto questo processo è una seccatura.
Linea 20: Linea 17:
'''IMPORTANTE:''' Assicurarsi di eseguire una copia di backup della directory '~/.gnupg' prima di continuare.
L'ultima cosa vorremmo che accada è perdere il proprio "mazzo di chiavi" perchè qualcosa è andato storto.
Per questo scopo, si creerà un filesystem criptato dentro un normale file su una memoria USB dove si andranno ad archiviare dati sensibili come per esempio le chiavi GnuPG.
Linea 23: Linea 19:
= dm-crypt = ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Piccole/warning.png,,center)]] ||<style="padding:0.5em; border:none;">'''Eseguire una copia di backup della cartella `~/.gnupg` prima di continuare. Questo per evitare che per qualche ragione possa accadere qualcosa al proprio "mazzo di chiavi".''' ||
Linea 25: Linea 21:
Dal sito Web del dm-crypt: = Cos dm-crypt =
Linea 27: Linea 23:
''"Device-mapper è una nuova infrastruttura nel kernel Linux 2.6 che fornisce un modo generico per creare un layer virtuale di dispositivi a blocchi che possono fare cose diverse su dispositivi a blocchi reali come lo 'striping', la concatenazione, il 'mirroring', lo 'snapshot', ecc ..
Il 'device mapper' è utilizzato dagli strumenti LVM2 e EVMS 2.x.
Il dm-crypt è un sistema che fornisce la crittografia trasparente dei dispositivi di blocco con il nuovo Linux 2.6 CryptoAPI.
L'utente può sostanzialmente specificare uno degli algoritmi simmetrici, una chiave (di qualsiasi dimensione consentita), una modalità di IV generazione e inoltre può creare un nuovo dispositivo di blocco in '/dev'.
LA scrittura su questo dispositivo sarà criptata mentre la lettura dal dispositivo sarà decriptata.
Su questi dispositivi è possibile montare il filesystem ma senza la chiave non è possibile accedere ai dati. "''
Dal [http://www.saout.de/misc/dm-crypt/ sito ufficiale]:
Linea 34: Linea 25:
''Device-mapper è una nuova infrastruttura nel kernel Linux 2.6 che fornisce un modo generico per creare un layer virtuale di dispositivi a blocchi che possono fare cose diverse su dispositivi a blocchi reali come lo 'striping', la concatenazione, il 'mirroring', lo 'snapshot', ecc ...
Il 'device mapper' è utilizzato dagli strumenti LVM2 e EVMS 2.x. Il dm-crypt è un sistema che fornisce la crittografia trasparente dei dispositivi di blocco con il nuovo Linux 2.6 CryptoAPI. L'utente può sostanzialmente specificare uno degli algoritmi simmetrici, una chiave (di qualsiasi dimensione consentita), una modalità di IV generazione e inoltre può creare un nuovo dispositivo di blocco in '/dev'. La scrittura su questo dispositivo sarà criptata mentre la lettura dal dispositivo sarà decriptata. Su questi dispositivi è possibile montare il filesystem ma senza la chiave non è possibile accedere ai dati.''
Linea 35: Linea 28:
Questa cosa è perfetta per le nostre necessità. Si creerà un filesystem criptato dentro un normale file su una memoria USB dove andremo ad archiviare dati sensibili come per esempio le chiavi GnuPG. = Prerequisiti =
Linea 37: Linea 30:
= Installare il software =

Prima di tutto occorrerà installare ''cryptsetup'':

{{{
sudo apt-get install cryptsetup
}}}
Con questo comando si installerano anche altre dipendenze necessarie al suo funzionamento.
[:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto [apt://cryptsetup cryptsetup].
Linea 48: Linea 34:
Si potrebbero conservare le chiavi GPG su un piccolo supporto flash drive USB acquistabile a buon mercato e che si adatta comodamente al portachiavi. Quando il supporto viene collegato, automaticamente viene 'montato' come '/media/usbdisk'. Si potrebbero conservare le chiavi Gpg su un supporto Usb. Quando il supporto viene collegato, automaticamente viene 'montato' come '/media/usbdisk'.
Linea 51: Linea 37:
Si può decidere, per esempio, di creare il file system cifrato in un normale file piuttosto che una propria partizione.
Questo richiede meno tweaking del disco, e fa 'montare' e 'smontare' il filesystem criptato più facilmente, come si vedrà in seguito.
Tuttavia, molti dei passi di questa guida possono essere adattati per utilizzare una partizione reale al posto di un normale file.
Si può decidere, per esempio, di creare il file system cifrato in un normale file piuttosto che una propria partizione. Questo richiede meno tweaking del disco, e fa 'montare' e 'smontare' il filesystem criptato più facilmente, come si vedrà in seguito. Tuttavia, molti dei passi di questa guida possono essere adattati per utilizzare una partizione reale al posto di un normale file.
Linea 55: Linea 39:
== Creare il file == = Creare il file =
Linea 57: Linea 41:
Prima di poter creare un filesystem, abbiamo bisogno di un file che sia grande abbastanza per contenerlo.
Questo può essere realizzato con il comando 'dd': {{{
Prima di poter creare un filesystem, abbiamo bisogno di un file che sia grande abbastanza per contenerlo. Questo può essere realizzato con il comando 'dd': {{{
Linea 62: Linea 45:
{{{
la_centrale_elettrica@killer:~$ dd if=/dev/zero of=/media/usb/disk.img bs=1M count=16
Il risultato sarà simile al seguente: {{{
Linea 69: Linea 51:
Il comando sopra produrrà un file di 16 MB che contiene solo zeri.
Modificare l'opzione ''count'' per ottenere la dimensione desiderata per il filesystem criptato.
Il comando sopra produrrà un file di 16 MB che contiene solo zeri. Modificare l'opzione ''count'' per ottenere la dimensione desiderata per il filesystem criptato.
Linea 75: Linea 56:
Il comando ''losetup-f'' troverà il primo dispositivo senza loop, quindi si dovrà impostare il suo output in una variabile chiamata ''loopdev'' al fine di usarla per svariati comandi: Il comando ''losetup-f'' troverà il primo dispositivo senza loop, quindi si dovrà impostare il suo output in una variabile chiamata ''loopdev'' al fine di usarla per svariati comandi.
Linea 77: Linea 58:
{{{ Caricare i seguenti moduli {{{
Linea 81: Linea 62:
}}}

Infine {{{
Linea 85: Linea 69:
Questo imposterà il file con una crittografia a 256-bit tipo AES, 'sminuzzando' la 'passphrase' che si pubblica attaverso SHA-256.
Dopo questa impostazione, è buona norma quella di rimuovere il dispositivo USBKey 'device-mapper' e 'cryptsetup'.
Linea 88: Linea 70:
{{{ Questo imposterà il file con una crittografia a 256-bit tipo AES, 'sminuzzando' la 'passphrase' che si pubblica attaverso SHA-256. Dopo questa impostazione, è buona norma quella di rimuovere il dispositivo USBKey 'device-mapper' e 'cryptsetup': {{{
Linea 92: Linea 74:
Linea 96: Linea 79:
Questo è il passo più semplice di tutti.
Si può scegliere il filesystem ''ext3'' per la sua capacità di 'journaling', nel caso in cui il drive USB viene rimosso prima che il filesystem viene smontato.
Il comando ''cryptsetup'' sopra ha creato il dispositivo '/dev/mapper/USBKey', che è una mappa attraverso 'dm-crypt' al filesystem criptato.
Quindi, questo dispositivo appare al sistema come un normale dispositivo di blocco storico, come un disco rigido o una partizione.
Il comando che segue crea un filesystem ext3 sul file crittografato:
{{{
Questo è il passo più semplice di tutti. Si può scegliere il filesystem ''ext3'' per la sua capacità di 'journaling', nel caso in cui il drive USB viene rimosso prima che il filesystem viene smontato.
Il comando ''cryptsetup'' sopra ha creato il dispositivo `/dev/mapper/USBKey`, che è una mappa attraverso 'dm-crypt' al filesystem criptato. Quindi, questo dispositivo appare al sistema come un normale dispositivo di blocco storico, come un disco rigido o una partizione.
Il comando che segue crea un filesystem ext3 sul file crittografato: {{{
Linea 105: Linea 85:
Ora si provi a 'montare' il filesystem:
{{{
Ora si provi a 'montare' il filesystem: {{{
Linea 113: Linea 92:
Adesso, si crei una cartella ''.gnupg'' all'interno del percorso '/media/encrypted', di proprietà del tuo utente, e collegarlo al proprio '~/gnupg' (se si ha già una cartella .gnupg, prima di tutto spostarla fuori):

{{{
Adesso, si crei una cartella ''.gnupg'' all'interno del percorso '/media/encrypted', di proprietà del tuo utente, e collegarlo al proprio '~/gnupg' (se si ha già una cartella .gnupg, prima di tutto spostarla fuori): {{{
Linea 124: Linea 101:
= Rendere tutto più facile = Nota mia: '''Shred o wipe servono per sovrascriverei dati della ex .gnupg. Se uno aveva già una partizione criptata ovviamente non ne vedo perché essere così paranoici.'''
Linea 126: Linea 103:
== Semplificare il processo di 'Mount' == = Semplificare il processo di 'Mount' =
Linea 128: Linea 105:
Non è per nulla divertente dover digitare tre o quattro comandi ogni volta che si desidera montare il file system cifrato.
Così, si può scrivere due script molto semplici per montare e smontare.
Prima di utilizzare questi, è necessario smontare il filesystem e staccare il dispositivo.

{{{
Non è per nulla divertente dover digitare tre o quattro comandi ogni volta che si desidera montare il file system cifrato. Così, si può scrivere due script molto semplici per montare e smontare. Prima di utilizzare questi, è necessario smontare il filesystem e staccare il dispositivo: {{{
Linea 138: Linea 111:
Ora, si salvino i seguenti comandi nel file 'mount.sh' nella root del vostro drive USB (non nel filesystem criptato!):

{{{
Ora, si salvino i seguenti comandi nel file 'mount.sh' nella root del vostro drive USB (non nel filesystem criptato!): {{{
Linea 154: Linea 125:
Poi si salvino i comandi sotto riportati nel file 'umount.sh' in the same place:

{{{
Poi si salvino i comandi sotto riportati nel file 'umount.sh' in the same place: {{{
Linea 165: Linea 134:
Potresti non essere in grado di eseguire questi script direttamente, dal momento che le opzioni predefinite di 'auto-mount' vietano l'avvio di eseguibili. Ma, dal momento che sono gli script di shell, si può semplicemente passarli a ''sh''. Così, una volta che il drive USB è stato montato, è sufficiente digitare:

{{{
Potresti non essere in grado di eseguire questi script direttamente, dal momento che le opzioni predefinite di 'auto-mount' vietano l'avvio di eseguibili. Ma, dal momento che sono gli script di shell, si può semplicemente passarli a ''sh''. Così, una volta che il drive USB è stato montato, è sufficiente digitare: {{{
Linea 169: Linea 136:
}}}
e tutto il lavoro sarà fatto per voi! (Naturalmente, si avrà bisogno della password di cifratura, e potrebbe essere richiesta la password per 'sudo'.)
}}} e tutto il lavoro sarà fatto per voi! (Naturalmente, si avrà bisogno della password di cifratura, e potrebbe essere richiesta la password per 'sudo').
Linea 183: Linea 149:
Ora, quando il filesystem cifrato non è montato, potrete vedere i file nella cartella ''.gnupg'', in modo che ''gpg --verify'' funzioni.
Ma quando viene montato, vedrete i file effettivamente posizionati nel filesystem criptato.
Ora, quando il filesystem cifrato non è montato, potrete vedere i file nella cartella ''.gnupg'', in modo che ''gpg --verify'' funzioni. Ma quando viene montato, vedrete i file effettivamente posizionati nel filesystem criptato.

BR Indice() Informazioni(forum="http://forum.ubuntu-it.org/index.php/topic,441056.0.html"; rilasci="10.10";) WikiBanner(ArticoloInTraduzione)

Introduzione

Questa guida spiega come utilizzare [http://wiki.ubuntu-it.org/Sicurezza/GnuPg GnuPg] su più dispositivi (il proprio portatile, il computer di casa, il computer del lavoro...) salvando le proprie chiavi su un dispositivo Usb criptato.

La memorizzazione delle chiavi di crittografia su un supporto di cui non si ha il controllo fisico è generalmente una cattiva idea. Anche memorizzarle su un computer portatile può essere problematico: se il portatile viene rubato, lo sarà anche la chiave Gpg se non si è provveduto a criptare il disco rigido o la partizione in cui è stata salvata. Si può sempre revocare la chiave prima che qualcuno sia in grado di decodificarla, comunque tutto questo processo è una seccatura.

Per questo scopo, si creerà un filesystem criptato dentro un normale file su una memoria USB dove si andranno ad archiviare dati sensibili come per esempio le chiavi GnuPG.

Immagine(Icone/Piccole/warning.png,,center)

Eseguire una copia di backup della cartella ~/.gnupg prima di continuare. Questo per evitare che per qualche ragione possa accadere qualcosa al proprio "mazzo di chiavi".

Cos'è dm-crypt

Dal [http://www.saout.de/misc/dm-crypt/ sito ufficiale]:

Device-mapper è una nuova infrastruttura nel kernel Linux 2.6 che fornisce un modo generico per creare un layer virtuale di dispositivi a blocchi che possono fare cose diverse su dispositivi a blocchi reali come lo 'striping', la concatenazione, il 'mirroring', lo 'snapshot', ecc ... Il 'device mapper' è utilizzato dagli strumenti LVM2 e EVMS 2.x. Il dm-crypt è un sistema che fornisce la crittografia trasparente dei dispositivi di blocco con il nuovo Linux 2.6 CryptoAPI. L'utente può sostanzialmente specificare uno degli algoritmi simmetrici, una chiave (di qualsiasi dimensione consentita), una modalità di IV generazione e inoltre può creare un nuovo dispositivo di blocco in '/dev'. La scrittura su questo dispositivo sarà criptata mentre la lettura dal dispositivo sarà decriptata. Su questi dispositivi è possibile montare il filesystem ma senza la chiave non è possibile accedere ai dati.

Prerequisiti

[:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto [apt://cryptsetup cryptsetup].

Impostazione del filesystem criptato

Si potrebbero conservare le chiavi Gpg su un supporto Usb. Quando il supporto viene collegato, automaticamente viene 'montato' come '/media/usbdisk'. Nelle sezioni seguenti si prenderà in considerazione una configurazione simile.

Si può decidere, per esempio, di creare il file system cifrato in un normale file piuttosto che una propria partizione. Questo richiede meno tweaking del disco, e fa 'montare' e 'smontare' il filesystem criptato più facilmente, come si vedrà in seguito. Tuttavia, molti dei passi di questa guida possono essere adattati per utilizzare una partizione reale al posto di un normale file.

Creare il file

Prima di poter creare un filesystem, abbiamo bisogno di un file che sia grande abbastanza per contenerlo. Questo può essere realizzato con il comando 'dd':

dd if=/dev/zero of=/media/usbdisk/disk.img bs=1M count=16

Il risultato sarà simile al seguente:

16+0 record dentro
16+0 record fuori
16777216 byte (17 MB) copiati, 0,179564 s, 93,4 MB/s

Il comando sopra produrrà un file di 16 MB che contiene solo zeri. Modificare l'opzione count per ottenere la dimensione desiderata per il filesystem criptato.

Impostazione del ciclo del dispositivo criptato

Prima di poter effettivamente creare il filesystem sul nostro nuovo file, abbiamo bisogno di collegarlo a un dispositivo di loop e di istituire un target device-mapper con la crittografia. Il comando losetup-f troverà il primo dispositivo senza loop, quindi si dovrà impostare il suo output in una variabile chiamata loopdev al fine di usarla per svariati comandi.

Caricare i seguenti moduli

sudo modprobe cryptoloop
sudo modprobe dm-crypt
sudo modprobe aes_generic

Infine

export loopdev=$(sudo losetup -f)
sudo losetup $loopdev /media/usbdisk/disk.img
sudo cryptsetup -c aes -s 256 -h sha256 -y create usbkey $loopdev

Questo imposterà il file con una crittografia a 256-bit tipo AES, 'sminuzzando' la 'passphrase' che si pubblica attaverso SHA-256. Dopo questa impostazione, è buona norma quella di rimuovere il dispositivo USBKey 'device-mapper' e 'cryptsetup':

sudo cryptsetup remove usbkey
sudo cryptsetup -c aes -s 256 -h sha256 create usbkey $loopdev

Se tutto va bene, siamo pronti per il prossimo passo!

Creare il filesystem vero e proprio

Questo è il passo più semplice di tutti. Si può scegliere il filesystem ext3 per la sua capacità di 'journaling', nel caso in cui il drive USB viene rimosso prima che il filesystem viene smontato. Il comando cryptsetup sopra ha creato il dispositivo /dev/mapper/USBKey, che è una mappa attraverso 'dm-crypt' al filesystem criptato. Quindi, questo dispositivo appare al sistema come un normale dispositivo di blocco storico, come un disco rigido o una partizione. Il comando che segue crea un filesystem ext3 sul file crittografato:

sudo mkfs.ext3 /dev/mapper/usbkey

Ora si provi a 'montare' il filesystem:

sudo mkdir -p /media/encrypted
sudo mount -t ext3 /dev/mapper/usbkey /media/encrypted

Impostazione della GnuPG nel filesystem criptato

Adesso, si crei una cartella .gnupg all'interno del percorso '/media/encrypted', di proprietà del tuo utente, e collegarlo al proprio '~/gnupg' (se si ha già una cartella .gnupg, prima di tutto spostarla fuori):

sudo mkdir /media/encrypted/.gnupg
sudo chown $UID.$UID /media/encrypted/.gnupg
chmod 0700 /media/encrypted/.gnupg
ln -s /media/encrypted/.gnupg ~/.gnupg

Ora, creare una chiave GnuPG come descritto in [http://wiki.ubuntu-it.org/Sicurezza/GnuPg GnuPG] o, se si dispone già di una chiave, spostare i file della vecchia cartella .gnupg in quella nuova, possibilmente utilizzando 'shred' o 'wipe' per rimuovere in modo sicuro i file vecchi.

Nota mia: Shred o wipe servono per sovrascriverei dati della ex .gnupg. Se uno aveva già una partizione criptata ovviamente non ne vedo perché essere così paranoici.

Semplificare il processo di 'Mount'

Non è per nulla divertente dover digitare tre o quattro comandi ogni volta che si desidera montare il file system cifrato. Così, si può scrivere due script molto semplici per montare e smontare. Prima di utilizzare questi, è necessario smontare il filesystem e staccare il dispositivo:

sudo umount /media/encrypted
sudo cryptsetup remove usbkey
sudo losetup -d $loopdev

Ora, si salvino i seguenti comandi nel file 'mount.sh' nella root del vostro drive USB (non nel filesystem criptato!):

dir=`dirname $0`
loopdev=$(sudo losetup -f)

sudo -p "Password (sudo): " modprobe cryptoloop && \
sudo modprobe dm-crypt && \
sudo modprobe aes_generic && \
sudo mkdir -p /media/encrypted && \
sudo losetup $loopdev $dir/disk.img && \
sudo cryptsetup -c aes -s 256 -h sha256 create usbkey $loopdev && \
sudo mount -t ext3 /dev/mapper/usbkey /media/encrypted && \
sudo chown -R $UID.$UID /media/encrypted/

Poi si salvino i comandi sotto riportati nel file 'umount.sh' in the same place:

loopdev=$(sudo cryptsetup status usbkey | grep device | sed -e "s/ *device:[ \t]*//")

sync
sudo umount /media/encrypted
sudo cryptsetup remove usbkey
sudo losetup -d $loopdev

Potresti non essere in grado di eseguire questi script direttamente, dal momento che le opzioni predefinite di 'auto-mount' vietano l'avvio di eseguibili. Ma, dal momento che sono gli script di shell, si può semplicemente passarli a sh. Così, una volta che il drive USB è stato montato, è sufficiente digitare:

sh /media/usbdisk/mount.sh

e tutto il lavoro sarà fatto per voi! (Naturalmente, si avrà bisogno della password di cifratura, e potrebbe essere richiesta la password per 'sudo').

Verifica delle firme PGP senza il filesystem criptato

Si potrebbe desiderare di poter verificare un messaggio firmato senza la necessità di montare il filesystem criptato. Per rendere facile questa operazione, è sufficiente copiare il 'portachiavi pubblico' e il file del 'database fiduciario' sulla vera cartella .gnupg:

cp /media/encrypted/.gnupg/{pubring,trustdb}.gpg /tmp
sh /media/usbdisk/umount.sh
sudo mv /tmp/{pubring,trustdb}.gpg ~/.gnupg

Ora, quando il filesystem cifrato non è montato, potrete vedere i file nella cartella .gnupg, in modo che gpg --verify funzioni. Ma quando viene montato, vedrete i file effettivamente posizionati nel filesystem criptato.

Ulteriori risorse


CategoryNuoviDocumenti CategoryInTraduzione