PGP (Pretty Good Privacy)

 

Questa applicazione, pensata all’inizio degli anni ’90 da Philip Zimmermann e freeware, include sostanzialmente tutte le funzionalità descritte sopra e agevola la gestione delle chiavi. È disponibile per molte piattaforme (Windows, OS/2, Mac, Amiga, Unix/Linux, Vms, ecc.) e per Unix anche in formato sorgente modificabile. Esiste come plug-in di alcuni diffusi client di posta elettronica.
 
[adsense:block:adcontenuto]
 
Rispetto a quanto detto in precedenza, PGP apporta alcune varianti tecnicamente giustificate: in particolare, per motivi di efficienza legati alla durata della cifratura asimmetrica nel caso di lunghi messaggi, per la cifratura del messaggio viene utilizzato un più veloce algoritmo simmetrico utilizzando, come chiave segreta, una chiave casuale generata dal mittente all’atto dell’invio, chiave che viene cifrata con la chiave pubblica del destinatario. L’utente X che vuole inviare a Y il messaggio M effettua questi passaggi:
 
  1. 1. Viene utilizzato l’algoritmo MD5 per calcolare l’impronta del messaggio lunga 160 bit, ovvero I = MD5(M): il codice così ottenuto viene cifrato via RSA con la chiave privata del mittente Kxs e concatenato al messaggio, ottenendo M’ = M || C(I, Kxs).
  2. 2. M’ viene compresso con un algoritmo di tipo zip in modo da ridurne reversibilmente la lunghezza, ovvero M” = ZIP(M’).
  3. 3. Viene generato un numero casuale C di 128 bit denominato session key: esistono appositi algoritmi, da tempo disponibili, per ottenere una sequenza di numeri pseudocasuali caratterizzata da determinate proprietà statistiche; nel caso presente i numeri generati in una sequenza devono essere equiprobabili (come dire, nel caso dei numeri da 1 a 6, come se si tirasse ogni volta un dado).
  4. 4. Viene applicato l’algoritmo di crittografia convenzionale IDEA utilizzando come chiave il session key C, ottenendo Mc = IDEA(M”, C). Rispetto ad un algoritmo di crittografia con chiave asimmetrica, l’algoritmo IDEA comporta un onere computazionale inferiore e quindi riesce a cifrare in tempi brevi, sebbene con un livello di sicurezza modesto, anche messaggi molto lunghi.
  5. 5. La chiave C viene cifrata con l’algoritmo per crittografia a chiave asimmetrica RSA (oppure con l’algoritmo Diffie-Hellman/DSS) utilizzando come chiave la chiave pubblica del destinatario Kyp e il risultato concatenato al messaggio, ottenendo  Mx = Mc || RSA (C, Kyp). Essendo RSA un algoritmo ad elevato livello di sicurezza, tanto maggiore quanto è più lunga la chiave Kyp, è quindi computazionalmente più oneroso di un algoritmo per crittografia convenzionale ma applicato ad una informazione compatta quale C (che, come detto, ha lunghezza fissa di appena 128 bit).
  6. 6. Viene infine applicato su Mx l’algoritmo di trasformazione reversibile a testo ASCII denominato Armor Radix-64 che produce un messaggio di tipo testuale composto solo da codici ASCII, ottenendo Ax = AR64(Mx). Ax sarà il messaggio effettivamente spedito attraverso il canale non sicuro e la sua forma di testo ASCII ne rende facile la manipolazione da parte di tutti i client e server di posta elettronica.

[adsense:block:adcontenuto]

 

L’interfaccia di PGP consente di decidere se firmare o meno il messaggio, se trasformarlo o meno in un testo ASCII, e altre opzioni.
PGP è anche dotato di alcune funzioni ausiliarie per la gestione delle chiavi. Consente di generare coppie di chiavi pubblica/privata, generazione protetta da “frasi chiave” (passphrase) per aumentarne il grado di fidatezza. L’archivio di chiavi può essere memorizzato su file, possibilmente su supporto removibile per una conservazione ‘sicura’.
 
Sarà anche cura dell’utente evitare la divulgazione della passphrase che può rendere accessibile l’archivio privato delle chiavi. In merito al grado di sicurezza si deve anche tenere presente che la legge americana da tempo fa equivalere l’esportazione di metodi di crittografia con chiavi superiori ad un certo numero di bit (crittografia forte) all’esportazione di armi, perché ritenuta un pericolo per la sicurezza nazionale: questo ha prodotto la necessità di rendere disponibili due versioni del programma, una ad uso interno in USA e uno per l’esportazione.
 
La chiave pubblica può essere anche agevolmente spedita a uno o più siti di raccolta (keyserver) per la sua pubblicità. Molti keyserver sono collegati fra loro e si scambiano automaticamente le chiavi, evitando che gli utenti debbano provvedere esplicitamente a questa replicazione. I keyserver non sono però normalmente autorità di certificazione e quindi l’identificazione del destinatario non è in questo caso garantita.
 
Un’ultima accortezza riguarda il programma PGP stesso che potrebbe essere ottenuto in una versione maliziosamente modificata al fine di spedire di nascosto a terzi l’archivio personale delle chiavi: ci si accerti pertanto di scaricare il programma da siti ufficiali che diano un minimo di garanzia sotto questo aspetto.

 

Risorse per sviluppo: 

Ti potrebbero anche interessare:

Il Cifrario di Vernam e l’importanza della chiave

Come brevemente accennato sopra, un cifrario si basa su due presupposti: un algoritmo che definisce le regole per l’operazione di cifratura e per quella di decifratura, e una chiave che rende il risultato dell’applicazione dell’algoritmo parametricamente dipendente dalla chiave stessa. Ad esempio, nel codice di Cesare l’algoritmo è la regola di trasposizione letterale e la chiave è il fattore di trasposizione (1..25).

Risorse per sviluppo: 

SET (Secure Electronic Transaction) e forme di pagamento

Formalizzato nel 1997, il protocollo SET è dovuto alla collaborazione di varie aziende del settore (Microsoft, IBM, Netscape, RSA, GTE, VISA, Mastercard, e altre) con l’obiettivo di rendere sicuri al massimo i pagamenti in rete con carte di credito.

Risorse per sviluppo: