Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 17 del 09/02/2011 15.22.08

Nascondi questo messaggio

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 una memoria USB criptata.

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 ha l'accortezza di 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 la chiave GPG.

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. 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

Nel proseguo di questa guida si procederà alla creazione di un filesystem criptato all'interno di un file presente su un supporto USB sul quale saranno conservate le chiavi GPG. Questo perché la creazione del filesystem criptato su un singolo file rende le operazioni di montaggio e smontaggio più semplici come si vedrà in seguito.

Quando il supporto verrà collegato, automaticamente verrà montato in /media/usbdisk. Nelle sezioni seguenti si prenderà in considerazione una configurazione simile. 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 creare il filesystem è necessario creare il file che lo conterrà che dovrà essere abbastanza grande per contenerlo. Questo può essere realizzato con il comando dd.

  • é Digitare il seguente comando in una finestra di terminale:

    dd if=/dev/zero of=/media/usbdisk/disk.img bs=1M count=16
    avendo cura di impostare il percorso corretto verso la memoria USB.
  • 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
  • In questo modo è stato creato un file della grandezza di 16 MiB 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 file appena creato è necessario collegarlo ad un dispositivo di "loop" e 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 digitando in una finestra di terminale i seguenti comandi:

    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 USB 'device-mapper' e 'cryptsetup':

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

Creare il filesystem vero e proprio

Il comando cryptsetup precedente 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 seguente 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. Usando programmi quali 'shred' o 'wipe' è possibile per rimuovere in modo sicuro i file vecchi (questa accortezza vale se il dispositivo o partizione precedente non era criptata).

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