GUIDA PGP

Indice:

Introduzione

Non tutti sono a conoscenza del più conosciuto programma di crittografia a chiave pubblica. Vediamo di elencarne le caratteristiche principali. Innanzi tutto si deve dire che la crittografia viene utilizzata per tre motivi principali:

  • codificare un messaggio affinchè solo il destinatario sia in grado di leggerlo
  • autenticare il messaggio inviato affinchè il destinatario sia inequivocabilmente sicuro dell'identità del mittente
  • autenticare sia il mittente che il messaggio affinchè il destinatario sia certo che il messaggio non sia stato alterato

Il problema che da sempre penalizza la crittografia è che per cifrare e decodificare un messaggio occorre una chiave segreta in possesso sia del mittente che del destinatario. Ovviamente se il mittente e il destinatario si trovano a grande distanza tra di loro, ciò potrebbe diventare difficile dato che, se la trasmissione della chiave avviene attraverso mezzi "tradizionali" come l' e-mail o la posta convenzionale, questa potrebbe essere intercettata.

 Torna all'indice 


PGP (pretty good privacy) utilizza un sistema geniale per quanto riguarda la sicurezza: il programma crea una coppia di "chiavi" (grazie alle quali è possibile codificare/decodificare un testo), una viene chiamata chiave "pubblica", l'altra viene chiamata chiave privata.

Chiave pubblica: deve essere diffusa il più possibile in modo che chi è interessato a scrivervi può utilizzala.

Chiave privata: va conservata "in un luogo sicuro".

Premessa: solo la chiave privata è in grado di decodificare un testo criptato con quella pubblica corrispondente ed è matematicamente impossibile da una chiave ricavare la corrispondente.

Facciamo un piccolo esempio:Un utente A vuole inviare un messaggio di posta elettronica crittografato con PGP a B, in modo che nessuno possa venire a conoscenza del testo.
Pertanto A, che possiede la chiave pubblica di B, codifica il messaggio con PGP utilizzando la chiave pubblica di B. A questo punto solo la chiave privata di B sarà in grado di decodificare il testo e di leggerlo.

Ovviamente se A invia un messaggio codificato con la propria chiave privata a B, quest' ultimo, per verificare l' autenticità del mittente, effettuarà l'operazione inversa.

  • E' anche possibile effettuare la "firma in chiaro": il documento non viene alterato ma attraverso questo tipo di "firma" si è sicuri dell' autenticità del mittente.

 Torna all'indice 


Verifica del messaggio e del mittente: la chiave pubblica di un utente codifica il messaggio e la propria chiave privata lo firma. Per esempio se voglio scrivere un messaggio a B, utilizzo la sua chiave pubblica per crittografare il testo del messaggio (quindi solo la sua privata sarà in grado di decodificarlo) e la mia chiave privata per "firmarlo" in modo che B sarà sicuro che il messaggio lo ho scritto io.

 Torna all'indice 


Il "fingerprint" è un hash (una sorta di checksum finale) di 128 bit che ricava da una chiave una serie di numeri. Dato che non si può essere sicuri che una chiave non sia stata manomessa, se si è in possesso del fingerprint, si può verificare se quello generato dalla chiave in possesso e quello di cui si era già in possesso corrispondono. In tal caso si è sicuri che la chiave non è stata alterata.

 Torna all'indice 


Installazione

PGP è un programma Freeware, nativo in ambiente dos e per eseguire qualsiasi comando si deve far seguire al comando Ppg le opzioni introdotte dal segno -

Cominciamo a mettere in funzione PGP:

Una volta scaricato il programma e scompattato si devono inserire le seguenti variabili al file autoexec.bat che si trova nella directory radice:

SET PGPPATH=C:\PGP
SET TZ=MET-1DST

A questo punto è possibile utilizzare PGP. Il primo comando da imparare è pgp -h che genera a video una sorta di help con una lista dei comandi.

 Torna all'indice 


Gestione chiavi

Passiamo al primo punto importante: la creazione della coppia di chiavi:
pgp -kg
1) La prima scelta che il programma vi sottoporrà è la lunghezza delle chiavi. Le scelte possibili sono: 512, 768 e 1024 bit. Ovviamente più elevato è il numero di bit più sicura sarà la chiave. E possibile creare anche chiavi a 2048 bit semplicemente digitando il numero 2048.

2) La seconda cosa da inserire è il proprio l' User ID (l'identificativo). Questo può prendere la forma classica Mario Rossi <rossi@rete.it> o qualunque nome vogliate.

3) Inserimento della "pass phrase". Solo con questa speciale frase la vostra chiave privata potrà essere utilizzata. E consigliabile utilizzare una frase lunga ma facilemente memorizzabile.

4) Premere dei tasti a caso in modo che PGP possa utilizzare i numeri per la creazione dell' algoritmo.

A questo punto si è in possesso della coppia di chiavi.

 Torna all'indice 


Ora analizziamo i principali comandi per la gestione delle chiavi:

- Come estrarre una chiave dal "public ring":

pgp -kxa <id> <outfile>

Dove ID è l'identificativo e output file rappresenta il nome del file nel quale si vuole salvare la chiave pubblica in questione. Per default il file che viene creato ha estensione .asc.

 Torna all'indice 


- Come esaminare il contenuto del public ring:

pgp -kv

Con questo comando PGP darò un elenco con i nomi dei proprietari delle chiavi di cui siete in possesso e della lunghezza della chiave (1024 bit, 2048 bit ecc.)

 Torna all'indice 


- Come inserire una chiave nel public ring:

pgp -ka <infile>

Dove ovviamente infile rappresenta il file nel quale è presente la chiave. Non vi preoccupate se il documento ha altro testo; PGP ricerca automaticamente la chiave all' interno di esso.

 Torna all'indice 


- Come "firmare" una chiave:

pgp -ks <id>

Dove ID rappresenta l' userd ID da firmare. Facendo ciò assicurate la veridicità di una chiave. Fatelo solo se ne sieti sicuri.

 Torna all'indice 


- Come eliminare una chiave:

pgp -kr <id>

Dove ID rappresenta l' User ID.

 Torna all'indice 


- Come verificare le certificazioni:

pgp -kc <id>

Con questo comando verrà visualizzato il contenuto del public ring e verranno verificate le certificazioni.

Torna all'indice 


- Come modificare i parametri della chiave privata:

pgp -ke <id>

Con questo comando viene chiesta innanzi tutto la pass phrase. Si possono aggiungere nuove User ID (se per esempio si hanno più indirizzi e-mail) oppure si può modificare la pass phrase.

 Torna all'indice 


- Come vedere il Finger Print di una chiave:

pgp -kvc <id>

 Torna all'indice 


Gestione messaggi

Ora analizzaremo tutti i principali comandi per utilizzare le "vere" funzioni di PGP cioè codifica e decodifica:

- Come codificare un messaggio:

pgp -eta <infile> <id> -o <outfile>

-e viene utilizzato per codificare un messaggio

-t si utilizza per indicare che <infile> è solo testo (non binario)

-a indica che l' <outfile> deve essere in ASCII Armored (cioè composto da caratteri ASCII da 0 a 127, il set di caratteri chiamato anche ASCII "basso").

 Torna all'indice 


- Come codificare un messaggio con codifica normale:

pgp -c <infile>

In questo modo non si userà la chiave privata ma semplicemente si verrà invitati a inserire una frase grazie alla quale il testo potrà anche essere in seguito decriptato. Verrà quindi solo utilizzato l' algoritmo di crittografia IDEA, non l' RSA.

 Torna all'indice 


- Come firmare in chiaro un messaggio:

pgp -sta <infile> -o <outfile>

-a indica che l' <outfile> deve essere in ASCII Armored (cioè composto da caratteri ASCII da 0 a 127, il set di caratteri chiamato anche ASCII "basso")

Come si può vedere non viene richiesto nessun User ID dato che il messaggio viene firmato con la propria chiave privata. Quindi il destinatario, usando la vostra chiave pubblica in suo possesso, potrà verificare l'identità del mittente e l'integrità della mail. Il comando pgp -sb <infile> crea un certificato di firma separato dal messaggio.

 Torna all'indice 


- Come codificare e "firmare" un messaggio:

pgp -esta <infile> <id> -o <outfile>

Ovviamene ID rappresente l' User ID del vostro interlocutore ossia fa riferimento alla sua chiave pubblica.

Torna all'indice 


- Come decodificare un messaggio:

pgp <infile> -o <outfile>

Con questa semplice operazione PGP codifica un messaggio:

  • codificato con la vostra chiave pubblica
  • firmato da un mittente di cui avete la chiave pubblica
  • sia codificato che firmato
  • Non è necessario specificare l' User ID dato che questa viene automaticamente cercata nel public ring.

     Torna all'indice 


    - Come eliminare un messaggio decriptato: PGP consente, utilizzando il comando pgp -w <infile> , di eliminare definitivamente un file già decodificato in modo che nessuno possa ripristinarlo e leggerlo.

     Torna all'indice 


    - Il problema "a capo automatico": potrebbe capitare che PGP dia come errore Bad signature e quindi non riuscirebbe a decodificare il testo se è stato usato un editor con la funzione "a capo automatico" attivata per scrivere un testo. Questi editor inseriscono dei particolari caratteri al termine di ogni riga corrompendo così l' integrità del messaggio.

     Torna all'indice 


    Dove trovare PGP

    Ho pensato che, per evitare complicate ricerche, fosse opportuno permettere il download del programma direttamente da qui. Quindi per chi è interessato a scaricare il file pgp263ii.zip di 307 Kb può farlo da questo link
    Ricordo che è disponibile anche la versione 5 che gira in ambiente Windows ma personalmente la sconsiglio: essendo un programma shareware permette solo 4 "azioni" e dopo di che si deve chiudere e riavviare il software. Inoltre il principiante che si avvicina per la prima volta al PGP (che gira in ambiente MS-Dos) ha bisogno di fare esperienza prima di passare a shell più complesse.

     Torna all'indice 

    I principali comandi

    Ecco i principali comandi (i più utilizzati):

    Gestione chiavi:

    Generare le chiavi pgp -kg

    Aggiungere una chiave pgp -ka [pubring]

    Estrarre una chiave pgp -kx[a] [pubring]

    Listare il pubring pgp -kv[v] [id] [pubring]

    Vedere il fingerprint pgp -kvc [id] [pubring]

    Dettagli del pubring pgp -kc [id] [pubring]

    Cancellare una chiave pgp -kr [pubring]

    Aggiungere un altro userID pgp -ke [pubring]

    Editare la pass phrase pgp -ke [pubring]

    Firmare una chiave pgp -ks [-u ] [pubring]

    Cancellare una "firma" pgp -krs [pubring]

    Gestione messaggi:

    Cifrare pgp -e[t][a][w] [id2 ..] [-o ]

    Firmare pgp -s[t][a] [-u ] [-o ]

    Cifrare e Firmare pgp -es[t][a][w] [id2 ..][-u ] [-o ]

    Cifratura convenzionale pgp -c

    Decifrare/verificare firme pgp [-o ]

    Opzioni:

    [ a ] = ASCII Armored

    [ o ] = per indicare il nome del file risultante

    [ w ] = per distruggere il testo da cifrare (dopo la codifica)

    [ m ] = per vedere i risultati a video e non in un file

     Torna all'indice 


    I Keyservers

    I keyserver sono dei database di chiavi pubbliche accessibili da tutti. Un Keyserver può essere immaginato come un enorme Public ring. Di Keyserver ce ne sono diversi ma si aggiornano qutomaticamente tra di loro quindi è sufficente registrare la propria chiave in uno di questi.


     Torna all'indice 


    Cerca chiave

    Dopo aver effettuato la ricerca, per ritornare in questa pagine premere il tasto "indietro" del browser. Per tornare all' indice dell Home Page utilizzare il link "Pagina principale" qui a sinistra.

    Indice: Indice completo:

    Inserisci stringa:

    Mostra PGP "fingerprints" della chiave

     Torna all'indice 


    Registra chiave

    Dopo aver effettuato la ricerca, per ritornare in questa pagine premere il tasto "indietro" del browser. Per tornare all' indice dell Home Page utilizzare il link "Pagina principale" qui a sinistra.

    Indirizzo E-mail per risposta automatica:

    Inserisci la chiave pubblica nel formato ASCII-armored qui sotto:

     Torna all'indice 


    LINK

    http://www.pgpi.com Tutto sul PGP.

    http://www.serve.com/nimrod/pgp.html Introduzione al PGP

    http://www.serve.com/nimrod/doc/pgpint14.txt La FAQ di Giorgio Chinnici.

    http://users.iol.it/airenzo/pgp.htm Guida al PGP.

     Torna all'indice 



    Comments