[GNU/Linux] Importare/esportare chiavi in GPG


Ho in mente di scrivere una serie di articoli sul funzionamento di GPG (GNU Privacy Guard), per poi raccoglierli all’interno di una guida (magari anche in inglese). Sul web si trovano facilmente guide e howto su GPG e su come usarlo da shell, ma ho la necessità di creare la mia propria documentazione, da usare come punto di riferimento anche in futuro.

Per ora vediamo come fare il backup e il ripristino di una chiave GPG . Tale necessità può esserci se vogliamo usare GPG su sistemi diversi usando ovviamente le stesse chiavi di cifratura, come ad esempio se cifriamo un messaggio con il pc dell’ufficio e dobbiamo decifrarlo con il pc di casa.

Backup/esportazione di una chiave GPG

Per prima cosa controlliamo le chiavi installate all’interno del sistema:

# gpg --list-keys
/root/.gnupg/pubring.gpg
-------------------------------
pub 2048R/9F508959 2012-07-03
uid Paolino Paperino <paolino.paperino@paperopoli.com>
sub 2048R/2C98FA15 2012-07-03
-------------------------------
pub 2048R/AB2C995F 2012-07-03
uid Zio Paperone <zio.paperone@paperopoli.com>
sub 2048R/D643E356 2012-07-03

Dunque dobbiamo scegliere la chiave di cui vogliamo fare il backup, per poi fare la copia della chiave pubblica e di quella privata. Nell’esempio le chiavi installate sono due: 9F508959 e DC2C775F. Per fare la copia rispettivamente della chiave pubblica e di quella privata la sintassi è la seguente (per maggior chiarezza userò i nomi completi delle opzioni, almeno dove possibile):

# gpg --armor --output <filename> --export <keyname>
# gpg --armor --output <filename> --export-secret-keys <keyname>

L’opzione armor permette di creare un output in caratteri ASCII, simile a questo

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.12 (GNU/Linux)mQENBE/1likBCACUfcgaiMfznrEQKXV4x0rPpixqEW+m8vXBF5I2BPuzeKUrB9Ot
YZhuZujuheLjj+Quh5rBFntGoPW3rO430Voq5/PJew54P5Smx6K09paB6pGbzmgk
...
INmtEZwlEvYMrINVOKbKXRk=
=8NiR
-----END PGP PUBLIC KEY BLOCK-----

Se l’opzione armor viene invece omessa, l’output prodotto sarà binario.

Supponendo di voler fare il backup della chiave 9F508959 dell’esempio, i comandi sono:

# gpg --armor --output GPG_public_key --export 9F508959
# gpg --armor --output GPG_secret_key --export-secret-keys 9F508959

Infine, per completare la fase di backup è consigliabile generare anche una chiave di revoca con questo comando:

# gpg --output <filename> --gen-revoke <keyname>

Nel caso dell’esempio, il comando precedente diventerebbe:

# gpg --output GPG_revoke_key --gen-revoke 9F508959

Dopo che le chiavi sono state salvate memorizziamo i relativi file in un supporto sicuro, e possibilmente mobile (CD, DVD, …) anziché all’interno dello stesso sistema in cui è installato GPG!

Ripristino/importazione di una chiave GPG

Se vogliamo ripristinare una chiave GPG, o ad esempio importarla su un nuovo sistema (dal pc dell’ufficio a quello di casa), il comando è il seguente:

# gpg --import <filename>

dove <filename> rappresenta il file contenente la chiave (pubblica o privata) precedentemente esportata. Riprendendo l’esempio precedente, i comandi necessari per importare le chiavi sono questi:

# gpg --import GPG_public_key
# gpg --import GPG_secret_key

Matteo

Annunci

6 commenti

  1. Ottimo chiaro e preciso.
    Ora provo tutto e ti faccio sapere.
    Devo importare le chiavi su uno smartphone android(programma apg) per poter utilizzare i file cryptati su dropbox.
    By Maxther

  2. ciao, grazie per la tua guida. Domanda: la chiave privata, fisicamente dov’è? occorre esportarla nel fs? Utilizzando la cli di gnugp e creando la chiave (–gen-key), vedo il file: secring.gpg con dimensione zero. E’ quindi corretta come procedura? Diverso è se uso un tool grafico tipo seahorse che crea il corretto file secring.gpg. Grazie!

    1. Ciao Max,
      tipicamente dovresti trovare questi 3 file:
      pubring.gpg -> chiave pubblica
      secring.gpg -> chiave privata
      trustdb.gpg -> db trust
      Ovviamente ogni file è correttamente creato se ha dimensione non nulla maggiore di zero.

      Matteo

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...