Cifrare un file in modalità batch

From RVM Wiki
Revision as of 19:59, 9 August 2005 by Gabriele.vivinetto (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Obiettivo: si vuole cifrare un files su una macchina, ma renderne impossibile la decifrazione, a meno di essere in possesso di una chiave.

Ad esempio, si possono cifrare dei file di log, e solo il possessore della chiave privata con la cui rispettiva chiave pubblica è stata effettuata la cifrature, è in grado di decifrarli.

Soluzione: usare gpg in modalità batch.


Installare GnuPG

apt-get install gnupg

Generazione della coppia di chiavi

Sulla macchina che si userà per decifrare, generare la coppia di chiavi:

gpg --gen-key

Durante la generazione delle chiavi, assicurarsi di far eseguire dei lavori alla macchina (basta anche un ls -alR /)

Verrà creata la directory

~/.gnupg

contente le chiavi pubbliche e private. Fare molta attenzione a non far accedere nessuno a ~/.gnupg/secring.gpg, in quanto contiene le chiavi private, che, sebbene protette da password, è bene conservare privatamente.

Controllare che le chiavi siano correttamente generate, elencandole. Dovrebbe esserci quella creata:

gpg --list-keys

Esportazione della chiave pubblica

Esportare la propria chiave pubblica, che servirà per cifrare:

gpg --export -o nome_decifratore-public_key.gpg

Questa chiave andrà copiata sulla macchina dove si dovranno cifrare i files.

Importazione della chiave pubblica

Sulla macchina 'cifratrice' non è necessario generare delle chiavi, basta importare la chiave pubblica del decifratore:

gpg --import nome_decifratore-public_key.gpg

Anche in questo caso viene creata la gerarchia ~/.gnupg

Controllare che la chiave pubblica sia stata importata correttamente:

gpg --list-keys

Esempio di cifratura in batch di un file

Il vantaggio di usare una chiave pubblica, è quello di poter cifrare un file senza bisogno di password in maniera del tutto batch:

gpg --batch --trust-model always -ea -r nome_decifratore-chiave pippo.txt

Nota: nome_decifratore-chiave è quello elencato da gpg --list-keys

Verrà generato il file pippo.txt.asc simile a questo:

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.1 (GNU/Linux)

hQIOA2zl3fx0Jh2uEAf/dLCBG5eLahNTcLAQ4Y6JyacsYbDbVZFVwZhJ2Bz9I4rL
0r10bpzeKMcpnka7IoXkb2qFsuZoiW82p9rwfUVmX9EMyydE16ymmGpiHV1Nd3OB
+RBurZilLPS803rCuV1AMKgcbyDe4KgLv4W5c8YI0xSzbw0HpUUWiyHjg46A4wNV
5P4m4wwqS08hK4EVUpix/lT6seUnCKy8jKbIDsf8fepQoN5gl1gf/zaphyBjtRLp
U2qNmjBx5hSW1ElqbRXkGG3EEi5fpKTVpTE7gY1l1PDbgmxFxMucza+oRCQSjHO7
20ww1mNQCeFbH2o7OugBkpOsb7Zz30WcpLd2CFauTwgAmU+EkMhq8lvX/0BFAKrk
sfxNkahRKfFZ2u2a5kXBcYixVm9kJJDfkb/BkOSdkwTFF3JwBfX0raSeKjtmk5X/
wObZMTZ/us0Dj16HDtn8gX1BORIsof3URf0tt7gdzi05MY+yzoL777VPntYBpfBh
JFI8rKmAbXAxsN8sqx+hQfAkp/hv7DmnGVdwGEh/CJUymSlsT7VM/Cgsc9PP7ixx
bhfIyuSR7adWbpkC08/9msKhj10BUETcoar8OozpQBmGGQvWTtXJJlWwmSG6O2vn
GktwdfBmgOb9KLGZTL78hE+cFyIbfCmye2u+9m6+iW4iiTAT15WrZtr9LoaSIT+D
KdJXAWB08YxXNYXGjz3MdVaNnogM833PCgCLnuWxk2yzNSjuWeqQVyt4GCjtaL53
Y5bUSsft6XnCtNUpJAe1ASn18NLPGfnWlnz1ptxQ67RLs1OT5y5ocBUE
=9gV7
-----END PGP MESSAGE-----

Se si cancella l'originale pippo.txt nemmeno l'utente che ha cifrato il file in maniera batch riuscirà a decifrarlo.

Decifrazione del file

Portare pippo.txt.asc cifrato sulla macchina decifratrice, e come utente proprietario della chiave privata, decifrarlo:

gpg --decrypt -a /tmp/pippo.txt.asc

Il file verrà decifrato su STDOUT.