Linux tips and tricks/Crittografia
GnuPG
modificaOverview
modificaGPG permette di:
- firmare i files (certificando quindi che sono stati creati da una determinata persona)
- 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:
- M e D installano GPG sul proprio computer
- M e D inizializzano il programma (v. Preparazione)
- M e D si scambiano le chiavi pubbliche, ma più importante è che il Destinatario la passi al Mittente
- M cripta il file con la chiave pubblica di D
- 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
modificasudo apt-get install gnupg
Preparazione
modificaGenerare 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
modificaFirmare 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
modificaCriptare è 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
modificagpg file
Pubblicare chiavi
modificaAffinché 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
modificaCosi' si appende una chiave al mio keyring
gpg --import [filenames]
Uso senza chiavi
modificaFighissimo! Usare GPG senza chiavi ne' pubbliche ne' private (usa solo passphrase):
gpg -c file
Per scompattarlo sara' necessario ricordare solo la passphrase
Reference
modificaDopo 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