Crittografare i messaggi: PGP


PGP - Pretty Good Privacy - e' un programma di crittografia pubblicato nel 1991 dal suo inventore Phil R. Zimmermann, ed e' considerato ormai uno standard de facto per quanto riguarda la crittografia nei messaggi di posta elettronica. Descrivero' PGP 5.5.3i, che attualmente e' ultima versione (anche se sta per uscire la versione 6.0), ma prima di tutto vediamo il programma PGP in generale...

PGP usa un sistema misto di crittografia, infatti usa sia il sistema simmetrico che quello asimmetrico (per saperne di piu' su questi concetti e sulla crittografia in generale, puoi dare un' occhiata a queste pagine sulla crittografia). PGP usa entrambi i sistemi perche':

  • Quando usi un sistema simmetrico (con una chiave segreta) ti devi necessariamente preoccupare di come scambiare la chiave segreta con il destinatario del messaggio, percio' potresti preferire un sistema asimmetrico
  • Il sistema asimmetrico adottato impiega parecchio tempo per cifrare l' intero messaggio (e' circa 4000 volte piu' lento del sistema simmetrico)

Le prime versioni di PGP (fino alla 5.0) usavano l' algoritmo RSA (sistema asimmetrico), e l' algoritmo IDEA (sistema simmetrico). In breve, in PGP l' algoritmo RSA cifra la chiave segreta la quale di fatto dovra' cifrare il testo del messaggio. Comunque l' ultima versione usa 2 diversi algoritmi: DSS/Diffie-Hellman e CAST (ma se stai usando la versione internazionale puoi scegliere di usare l' algoritmo RSA o DSS/Diffie-Hellman come sistema asimmetrico e l' algoritmo CAST, Triple-DES o IDEA come sistema simmetrico). Quando usi PGP devi conoscere 2 chiavi: la chiave pubblica del destinatario e la tua chiave privata. E' tutto. Infatti c'e' sempre una coppia di chiavi strettamente legate l' un l' altra: una chiave pubblica e le sua corrispondente chiave privata. Percio' quando cifri un messaggio devi solamente conoscere la chiave pubblica del destinatario (la conosci perche' e' una chiave PUBBLICA e tutti la conoscono!). Quando il destinatario riceve il tuo messaggio cifrato, lo decifra tramite la sua chiave privata (e' una chiave privata, pertanto nessuno eccetto lui puo' conoscerla!). Quando il destinatario legge il messaggio, puo' darsi inoltre che voglia risponderti. In quel caso cifrera' il messaggio tramite la tua chiave pubblica. Quando tu riceverai il suo messaggio cifrato, lo decifrerai tramite la tua chiave privata. Questo e' un sistema di crittografia asimmetrico. In altre parole tutti conoscono le chiavi pubbliche degli altri, ma solo ciascun destinatario di un messaggio cifrato e' a conoscenza della propria chiave privata per decifrarlo.

Comunque devi sapere che PGP non usa RSA (o DSS/Diffie-Hellman nelle ultime versioni) per cifrare il tuo messaggio! PGP cifra il tuo messaggio tramite l' algoritmo IDEA (o CAST o Triple-DES nelle ultime versioni). IDEA e' un sitema simmetrico, ma non devi conoscere una chiave privata per cifrare un messaggio con IDEA. Infatti PGP crea una chiave segreta temporanea in modo casuale, solamente per quel messaggio che stai cifrando in quel momento (se cifri quel messaggio ancora una volta, PGP creera' una nuova chiave assolutamente diversa). Dopo aver creato la chiave segreta, PGP cifra il messaggio usando quella chiave. Infine PGP cifra la chiave segreta temporanea (usata per cifrare il messaggio) tramite RSA (usando la chiave pubblica del destinatario) e poi invia il messaggio e la chiave temporanea usata per cifrarlo. Quando il destinatario riceve il messaggio, la sua copia di PGP decifra la chiave usando la chiave privata del destinatario (ricorda: solo il destinatario puo' decifrare quella chiave tramite la sua chiave temporanea) ed infine usa la chiave decifrata per decifrare effettivamente il messaggio. Troppo difficile da capire? Vediamo un esempio:

Tu invii un messaggio cifrato ad Alice ed Alice lo decifra

  1. Tu dici a PGP che deve cifrare un messaggio usando la chiave pubblica di Alice 'CPA'
  2. PGP crea una nuova chiave segreta temporanea 'CST' in modo casuale
  3. PGP cifra il messaggio usando la chiave temporanea 'CST' (usa gli algoritmi IDEA, CAST oppure Triple-DES, che sono sistemi simmetrici)
  4. PGP cifra la chiave segreta temporanea 'CST' usando la chiave pubblica di Alice 'CPA' (usa gli algoritmi RSA o DSS/Diffie-Hellman, che sono sistemi asimmetrici). Cosi' questa chiave diventa una chiave cifrata 'CC'
  5. PGP invia entrambi (il messaggio cifrato e le chiave usata per cifrarlo) al destinatario
  6. Alice riceve il tuo messaggio
  7. Alice decifra la chiave cifrata 'CC' usando la sua chiave privata 'CPRIVA' (qui PGP usa l' algoritmo RSA o DSS/Diffie-Hellman). Cosi' la chiave diventa di nuovo 'CST'
  8. Ora la sua copia di PGP 'conosce' la chiave temporanea 'CST', percio' puo' decifrare il messaggio...

Vediamo qualche maggiore dettaglio

  1. Dove reperire PGP
  2. Come installare PGP 5.5.3i
  3. Come usare PGP 5.5.3i
  4. Password e Passphrase
  5. Firmare chiavi pubbliche
  6. Keyserver
  7. Newsgoup


Indice         Home  Pag. Prec.       Chi siamo  Scrivici!

Copyright (c) 1998-2006 Wowarea