Verificare la "Signature" di un pacchetto

Grazie alla tecnologia RPM è semplice installare applicazioni istantaneamente -- e se non vi piace ciò che avete installato potete cancellarlo dal vostro sistema.

Ma solo perchè è semplice non è detto che non sia sicuro. Questo è il motivo per cui gli sviluppatori di GNOME hanno costituito la Gnu Privacy Guard anche chiamata GnuPG per aiutarvi a capire se un pacchetto sia sicuro o meno.

Diciamo che avete appena scaricato il pacchetto coolapp-1.1.rpm. Per verificarne l'integrità dovete digitare:

rpm -K coolapp-1.1-1.rpm
		  

Dopo poco vedrete il messaggio coolapp-1.1-1.rpm: md5 OK. Significa che il controllo del file ha stabilito che il file non ha subito danneggiamento durante il download.

Questo è ok, ma ci si può fidare dello sviluppatore ? Lo conoscete ? Bene, se il pacchetto è signed dalla GnuPG key, dello sviluppatore, saprete che esso è chi dice di essere veramente.

GnuPG è un tool per rendere sicure le comunicazioni. È un sostituto della tecnologia PGP. Con GnuPG, potete autenticare la validità dei documenti, criptare e decriptare i dati. Il tool è in grado di decriptare e verificare i file PGP 5.x.

GnuPG viene installato per default in Red Hat Linux. Qui vi mostreremo come iniziare con GnuPG per controllare la chiave dello sviluppatore.

GnuPG usa la public key e i suoi algoritmi di cifratura. Quando controllate la chiave di qualcuno sarete certamente sicuri che quella persona dice il vero. Nella crittografia da public key gli utenti creano delle keypair, che comprendono delle public key e delle private key.

Quando distribuite la vostra public key ai corrispondenti o a keyservers -- database online che salvano le public keys -- non dovete mai divulgare la private key a nessuno.

Generare una nuova keypair

Per utilizzare GnuPG, il vostro primo compito è generare una keypair nuova. Potete farlo con il comando --gen-key dal prompt della shell.

ImportanteNon diffondete la vostra chiave privata
 

Ricordate: mentre potete dare la vostra public key a chiunque voglia effettuare con voi scambi sicuri, non dovete mai diffondere la vostra private key.

Da una finestra Xterm digitate: gpg --gen-key. Troverete una schermata di introduzione, incluse le opzioni raccomandate.

gpg (GnuPG) 1.0.1; Copyright (C) 1999 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Please select what kind of key you want:
   (1) DSA and ElGamal (default)
   (2) DSA (sign only)
   (4) ElGamal (sign and encrypt)
Your selection?
		  

Infatti, molte schermate che vi richiedono di selezionare un'opzione mostrano una scelta di default, se non avete buone ragioni per non accettarlo premete semplicemente Enter.

Nella prima schermata, dovete scegliere l'opzione di default: (1) DSA and ElGamal. Questa opzione vi permette di creare una firma digitale. Digitate 1 e premete Enter.

Successivamente selezionate la key size, o quanto deve essere lunga la chiave. Più lunga è la chiave più sicuro è il messaggio. La grandezza di default, 1024 bit, è sufficiente per la maggior parte degli utenti, quindi premete Enter.

La prossima opzione vi chiede di specificare per quanto tempo la chiave rimane valida. Di solito il default -- 0 = key does not expire -- è ok. Se scegliete una scadenza, ricordatevi di comunicare ai vostri corrispondenti la vostra nuova public key.

La prossima risposta è lo user ID, con il vostro nome la vostra e-mail ed un commento opzionale. Quando finite, vi verrà mostrato un riassunto di quello che avete inserito.

Quando avete terminato dovete solo inserire una passphrase, che è una password che vi autentica come il proprietario della nuova chiave.

SuggerimentoUsate una passphrase sicura
 

Come con le vostre password utente, una buona passphrase diviene essenziale per la sicurezza in GnuPG. Per esempio, mescolate la vostra passphrase con maiuscole, minuscole, lettere e numeri.

Quando digitate e verificate la vostra passphrase, le vostre chiavi verranno generate. Vedrete un messaggio simile al seguente:

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
+++++.+++++.++++++++....++++++++++..+++++.+++++.+++++++.+++++++
+++.++++++++++++++++++++++++++++++++++++++..........................++++
	

Quando la schermata cessa di scorrere, le vostre chiavi sono state create nella directory .gnupg. Per elencare le vostre nuove chiavi digitate gpg --list-keys, e vedrete l'output seguente:

[newuser@localhost newuser]$ gpg --list-keys
/home/newuser/.gnupg/pubring.gpg
-----------------------------------------
pub  1024D/B7085C8A 2000-04-18 Your Name <you@yourisp.net>
sub  1024g/E12AF9C4 2000-04-18
	

Scambiare le Key

Quando avete creato la vostra keypair, potete scambiare la public key con chiunque. Potete realizzarlo esportando la vostra public key e importando la public keys di qualcun altro.

Esportare le Keys

Per esportare la vostra key potete mandare una mail o copiarlo in una pagina Web:

gpg --armor --export you@yourisp.net
	

Il risultato sarà qualcosa di simile:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org

mQGiBDj8sFIRBACoyF4UucTkkuDV/KIW/kCbyzAx18OKXosVJkn4Sb/zhc/IVxoE
e/idTkzB292CUvN4KGFxCXyE0nKG/Vjc2lHwepsN41IcYQTVXUL0raITYYxyOHQe
7BJfjW0cYB/tyJLurr+iOB8JFs4HdZcCQzR9aufqcN4ErCVorrAM8k0y5wCggM9G
+Qcr32lplMKXxgf6NLj1O2oCMUwECYrrUTbxE82aZAFuJj55O/QNyv0eWXWeJvzf
oPLBTaxQDp4MaYZUc5qwgxY6sxz9gBUqAJRNUbg2U5lK5A4emNYVRh4tRs6etpaH
+SQpA/4qRhKRHyTRK8CmGRPg9zfMkCVDHFjvA2cDXeN0Rz1Qd3WWWEGg3ytz4Omv
sYkzMAh0988HMzxWCRKXVPJoNjGHXnyvt44eb5oFE6u/b+RDcNu5FL7V7snXfOfp
GhF+YNq74tt9YFlOEjvQMRKcBXjU6NnZ1pWK7fPs8W1tF2Nzo7Q1UGF1bCBHYWxs
YWdoZXIgKHd3dy5yZWRoYXQuY29tKSA8cGF1bGdhbGxAcmVkaGF0LmNvbT6IVgQT
=NYlu
-----END PGP PUBLIC KEY BLOCK-----
	

SuggerimentoSalvare facilmente l' Output
 

Potete salvare il public key block ridirigendo l'output in un file. In questo modo potete inserire il file in un e-mail, o copiarla in una pagina Web. Per ridirigere l'output in un file chiamato mykey.txt nella vostra /home directory, aggiungete > mykey.txt al comando:

gpg --armor --export you@yourisp.net > mykey.txt

Quindi il file mykey.txt può venire inserito ogniqualvolta vogliate mandare la vostra chiave a qualcuno.

Importare le Key

Quando importate la chiave di qualcuno aggiungetele al vostro keyring. Quando scaricate un documento da un vostro corrispondente, potete verificare la validità di quel documento.

Per importare una chiave utilizzate il comando --import. Per dimostrarlo scarichiamo una public key . In questo modo quando volete scaricare un pacchetto da Red Hat sarete in grado di verificarne la validit`.

Potete trovare la key di Red Hat al sito http://www.redhat.com/about/contact.html. Dal vostro browser potete scaricarla premendo Shift mentre cliccate sul link quindi cliccate su OK per salvare il file per esempio redhat2.asc. Adesso dalla shell importate la chiave con il seguente comando:

gpg --import redhat2.asc	    
	  

Il risultato vi dirà che la chiave è stata "processata". Per verificare che tutto funzioni digitate gpg --list-keys.


[newuser@localhost newuser]$ gpg --list-keys
/home/newuser/.gnupg/pubring.gpg
-----------------------------------------
pub  1024D/DB42A60E 1999-09-23 Red Hat, Inc <security@redhat.com>
sub  2048g/961630A2 1999-09-23
	

SuggerimentoLe key non devono avere link
 

Non configurate mai la chiave come link. Importatele sempre.

Verificare i pacchetti

Il comando per effettuare un check di un pacchetto scaricato, (rpm --K filename) è simile a quell che utilizzate per generare la vostra key GnuPG . Adesso che avete aggiunto la key al keyring vetrete il messaggio: md5 gpg OK. Questo significa che il pacchetto non è corrotto e che potete fidarvi di chi l'ha generato.

Going from Here

GnuPG è molto più completo di quanto specificato qui. Infatti ci sono molte informazioni che potete trovare in questo libro. Ma potete sicuramente iniziare ad approfondire i i concetti di key management, import e export di chiavi e molto altro leggendo Capitolo 13.