Linux tips and tricks/Crittografia

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search

GnuPG[modifica]

Overview[modifica]

GPG permette di:

  1. firmare i files (certificando quindi che sono stati creati da una determinata persona)
  2. criptare i files (rendendoli illeggibili da estranei)

Il processo di crittatura merita una piccola specificazione: al momento della criptatura io specifico chi deve essere in grado di leggere il file. In altre parole preparo un pacchetto che sara' scompattabile solo dalle persone che ho scelto come destinatari.

Per far questo GPG (e altri softwares simili) usano un sistema di due chiavi: quella pubblica viene diffusa in giro, passata agli amici e addirittura pubblicata su internet su appositi server. Quella privata deve rimanere blindata sul nostro hard disk e nessuno deve potervi accedere.

Le fasi di uno scambio di files crittati, fra un utente Mittente (M) e Destinatario (D), sono:

  1. M e D installano GPG sul proprio computer
  2. M e D inizializzano il programma (v. Preparazione)
  3. M e D si scambiano le chiavi pubbliche, ma più importante è che il Destinatario la passi al Mittente
  4. M cripta il file con la chiave pubblica di D
  5. D decripta il file usando la propria chiave privata

I primi tre passaggi si fanno una volta sola e non si ripetono più nei secoli dei secoli. Gli ultimi due si fanno per ogni invio di files.

Ultima piccola nota: quando si creano le chiavi (inizializzazione) occorre specificare una passphrase, cioè una specie di password che sara' utilizzata in seguito per ogni operazione di crittatura/decrittatura. Una buona passphrase dovrebbe essere lunghetta (ma non troppo da essere dimenticata), contenere spazi, caratteri alfanumerici e punteggiatura.

Installazione del software[modifica]

sudo apt-get install gnupg

Preparazione[modifica]

Generare le chiavi: privata e pubblica.

gpg --gen-key

Oppure importarle, con due comandi:

gpg --import path/to/pgp/keyring/pubring.pkr
gpg --import path/to/pgp/keyring/secring.skr

Creare il revoke (una formula di sicurezza da usare nel caso in cui si smarrisce la passphrase). Si consiglia di stamparlo e custodirlo in un posto sicuro.

gpg --gen-revoke your_user_id

Se vuoi esportare le chiavi private, per usarle su un altro computer:

gpg --export-secret-keys

Firmare un file[modifica]

Firmare un file significa creare un sigillo che assicura che quel file proviene da una fonte certa: me.

Firma digitale (comprime il file e AGGIUNGE la firma. non tocca il file originale)

gpg -s file

Lo stesso di prima, ma in formato ASCII, per mandarla via mail

gpg -sa file

Per mettere la firma in un file esterno (es. out)

gpg -s -o out file

Per verificare la firma (si assume che gpg conosca la chiave pubblica)

gpg --verify file

Criptare[modifica]

Criptare è diverso da firmare, in quanto rende il file illeggibile da estranei che non siano stati specificati al momento della criptatura.

Cripta con la chiave pubblica dello user Heine

gpg -e -r heine file

Questo lo firma e lo cripta

gpg -se -r heine file

Lo cripta ma lo firma con l'user alternativo "Suttner"

gpg -se -r heine -u Suttner file

Cripta in ASCII

gpg --armor --recipient alice --output secret.txt --encrypt test.txt

(abbreviabile con -a -r -o -e)

gpg -a -r alice -o secret.txt -e test.txt

Decriptare[modifica]

gpg file

Pubblicare chiavi[modifica]

Affinché gli altri siano in grado di mandarti files decriptabili da te, devono disporre della tua chiave pubblica. Devi quindi esportarla e passarla direttamente all'altra persona (via email ad esempio) oppure pubblicarla su server pubblici di chiavi.

Esporta le chiavi del keyring nel file (binario) all-my-keys. Puoi renderlo pubblico via FTP

gpg --export >all-my-keys

Per pubblicarlo in una pagina web serve l'ascii:

gpg --export --armor | mail pippo@ciao.it

Per esportare solo alcune chiavi

gpg --armor --export key1 key2 key3 key4 > keys1-4.asc 

Importare una chiave pubblica ricevuta[modifica]

Cosi' si appende una chiave al mio keyring

gpg --import [filenames]

Uso senza chiavi[modifica]

Fighissimo! Usare GPG senza chiavi ne' pubbliche ne' private (usa solo passphrase):

gpg -c file

Per scompattarlo sara' necessario ricordare solo la passphrase

Reference[modifica]

Dopo aver installato GPG puoi trovare maggiori info nel file:

/usr/share/doc/gnupg/README.gz

Oppure nel file di documentazione che si installa con:

sudo apt-get install gnupg-doc