.:: gli hacker
.:: la storia degli hacker
.:: l'etica hacker
.:: per saperne di più
.:: hacktivism
.:: Luc Pac

Crittografia
di Luc Pac
Chiunque si interessi di questioni inerenti la privacy digitale avrà sicuramente già sentito parlare del software Pretty Good Privacy. Il PGP (così è familiarmente chiamato da tutti), come accennato nell'Introduzione, è un programma informatico di crittografia che si è diffuso in tutto il mondo dai primi anni '90; funziona praticamente su qualsiasi computer ed è completamente gratuito. Questo capitolo cercherà di esporre un'introduzione pratica alla crittografia e di spiegare gli aspetti più generali dell'utilizzo di un programma come il PGP, rimandando al prossimo capitolo le questioni relative all'installazione e ai comandi più comuni. È importante sottolineare che la lettura di queste pagine non sostituisce e non deve sostituire un'attenta e ripetuta lettura del manuale originale allegato al PGP stesso: qualsiasi utilizzo del PGP che prescinda da questa lettura costituisce un potenziale pericolo per sé e per le altre persone con le quali si comunica!

Algoritmi e chiavi
Crittografia: s.f. sistema segreto di scrittura in cifra o codice
(dal Vocabolario della lingua italiana di Nicola Zingarelli)
La crittografia è un'arte antichissima: consiste nel rendere incomprensibile un certo messaggio a occhi estranei. Ecco un sistema crittografico elementare:
==================================================
a b c d e f G h i j k l m
1 2 3 4 5 6 7 8 9 10 11 12 13

n o p q r s t U v w x y z
14 15 16 17 18 19 20 21 22 23 24 25 26
==================================================
Ad ogni lettera di questo alfabeto corrisponde un numero da 1 a 26. Basta mettersi d'accordo con il proprio interlocutore, affinché nei messaggi ogni lettera venga sostituita dalla lettera che la segue di 13 posizioni. In questo modo la lettera "a" (posizione 1) viene sostituita dalla lettera "n" (posizione 14), e così via. Utilizzando questa convenzione, il messaggio:
================================================
"il piano per la fabbricazione della kriptonite
e' dietro il quadro in salotto"
================================================
diventa
================================================
"vy cvnab cre yn snooevpnmvbar qryyn xevcgbavgr
r' qvrgeb vy dhnqeb va fnybggb"
================================================

In questo sistema di crittografia, la trasposizione per ogni lettera di un numero fisso di posizioni rappresenta ciò che viene chiamato algoritmo, mentre il numero di posizioni di cui trasporre le lettere (numero che ovviamente può cambiare di volta in volta) rappresenta la chiave di cifratura (o di codifica). Algoritmo e chiave sono le due componenti principali di ogni sistema di crittografia, componenti che permettono il passaggio dal messaggio in chiaro al messaggio cifrato (o crittato) e viceversa.
L'esempio sopra riportato costituisce un sistema di crittografia estremamente debole: un eventuale estraneo che volesse intercettare e comprendere la comunicazione (colui che viene convenzionalmente indicato con il termine di nemico) raggiungerebbe il suo scopo sfruttando gli evidenti punti deboli dell'algoritmo. È da notare, ad esempio, che il messaggio cifrato conserva molti indizi del messaggio in chiaro: ha lo stesso numero di lettere, mantiene le stesse separazioni tra le parole, conserva la stessa distribuzione statistica delle varie lettere. Un nemico sufficientemente scaltro impiegherebbe pochi secondi a sospettare che l'algoritmo utilizzato sia proprio una semplice trasposizione di lettere; una volta individuato l'algoritmo, diventa molto semplice e veloce anche provare tutte le 25 chiavi possibili fino a quando non appare un messaggio comprensibile.
La crittografia, nel corso dei secoli e data la sua importanza in ambito militare e strategico, è diventata quindi anche una tecnica estremamente complessa capace di utilizzare algoritmi derivati dalle più avanzate conoscenze nel campo della matematica. Con la progressiva crescita di complessità degli algoritmi, si è arrivati anche a definire alcuni requisiti di base che qualsiasi sistema crittografico deve soddisfare affinché possa essere considerato sufficientemente robusto (cioè difficilmente attaccabile da tentativi di crittanalisi da parte del nemico): uno di questi requisiti è che la robustezza del sistema non deve dipendere dalla segretezza dell'algoritmo (il cosiddetto "principio di Kerckhoff "). Nel nostro esempio, una volta che il nemico individua l'algoritmo di trasposizione delle lettere gli è sufficiente provare al massimo 25 combinazioni (chiavi) diverse per avere la certezza di risalire al messaggio in chiaro. Nei sistemi crittografici più robusti, invece, anche la totale conoscenza dell'algoritmo non permette in nessun modo di comprometterne la sicurezza, unicamente affidata alla segretezza della chiave concordata (che ovviamente avrà un campo di variazione potenzialmente infinito).
Per questo motivo, nella delicatissima fase di valutazione dell'affidabilità di un sistema crittografico, vengono presi in considerazione da parte della comunità criptoanarchica internazionale soltanto quei sistemi di cui gli autori hanno messo a disposizione tutti gli algoritmi impiegati; nel caso di software informatico, gli algoritmi sono rappresentati dai codici sorgenti, che permettono a chiunque di decostruire e ricostruire il software sul proprio computer. Una prima considerazione da fare a questo punto è la seguente: la maggior parte dei sistemi di crittografia proposti o utilizzati dagli enti governativi sono basati su algoritmi mantenuti segreti. Il PGP, al contrario, utilizza algoritmi pubblici e ampiamente conosciuti e studiati, e nonostante questa dimensione pubblica garantisce un'ottima sicurezza. Già solo questo punto spinge a diffidare di qualunque sistema crittografico proposto dallo Stato e a considerare allo stesso tempo il PGP come un sistema privo di difetti evidenti (che sarebbero immediatamente stati scoperti dalle migliaia di ricercatori che hanno analizzato il PGP nel corso di questi anni, ognuno dei quali avrebbe guadagnato fama pubblica, ricchezza economica e carriera accademica da un eventuale successo in questo senso).
Il motivo per cui viene consigliato proprio il PGP, tra i tanti programmi disponibili, come software di crittografia "preferito" è semplice: si tratta di un programma sviluppato praticamente in pubblico, alla luce del sole, sotto gli sguardi attenti di una vasta comunità di esperti; inoltre viene distribuito completo di sorgenti, che permettono - a chiunque ne abbia voglia o capacità - di cimentarsi con lo studio dei suoi algoritmi. Il PGP pare dunque essere un programma che non ha paura di mostrare in pubblico quali potrebbero essere i suoi punti deboli; mentre al contrario, sui sistemi crittografici "proprietari" fioriscono continuamente leggende e illazioni (fondate o meno) su possibili backdoors - "porte sul retro" - che garantirebbero solo a chi le conosce una facile decodifica dei messaggi. È anche il caso di accennare a una cosa che dovrebbe essere scontata, ma che è comunque bene chiarire una volta per tutte: la crittografia impiegata dal PGP e in generale il livello di sicurezza offerto dalle varie tecniche di cui si parlerà in questo libro non ha nulla in comune con le opzioni di "sicurezza" offerte da vari software per ufficio usati comunemente. Molti di questi programmi (word processors, databases, archiviatori e compattatori, eccetera) offrono infatti la possibilità di proteggere i file con una password; si tratta quasi sempre di protezioni debolissime che possono essere superate in pochi minuti da persone sufficientemente esperte. I livelli di privacy e sicurezza che ci interessano non sono quelli di questi giocattoli e non sono nemmeno quelli degli standard di crittografia previsti in genere dai governi nazionali per l'utilizzo da parte dei privati cittadini: questi standard possono offrire una discreta protezione da eventuali attacchi condotti da singoli privati, ma sono comunque superabili in caso di reale necessità da parte delle agenzie di sicurezza governative. Le tecniche presentate qui sono da considerarsi alla stregua di armi da guerriglia digitale, in grado di resistere ad attacchi militari seri e impegnati.
Sulla sicurezza del PGP si tornerà più avanti. Ora è il momento di parlare di un'altra particolare caratteristica di questo programma. Com'è noto, il PGP è un software di crittografia a chiave pubblica.

Crittografia a chiave pubblica
Joe Lametta vorrebbe mandare una bottiglia di vino rosso italiano a Lex Luthor, ma sa che un raffinato postino potrebbe intercettare il pacco, aprirlo e bere il contenuto della bottiglia. Luthor è in vacanza alle Bahamas - e non può andare personalmente a ritirare il pacco da Joe Lametta. Come può fare Joe per inviare il pacco a Lex - nella sicurezza che nessun altro tranne il destinatario possa aprirlo?
Esiste almeno una soluzione logica a questo problema del tutto teorico: Joe chiude il pacco con un lucchetto di cui possiede la chiave. Conserva la chiave e spedisce il pacco a Lex. Quest'ultimo riceve il pacco (che non può aprire perché non ha la chiave). Lo chiude nuovamente con un lucchetto di cui conserva a sua volta la chiave e rispedisce il pacco a Joe. Joe toglie il suo lucchetto e rispedisce il pacco a Lex - che può finalmente aprire la sua bottiglia di vino, chiusa ormai solo con il lucchetto da lui scelto.
Questo semplice metodo condivide alcune caratteristiche con la crittografia a chiave pubblica: si tratta di un sistema che risolve efficacemente il classico problema della crittografia tradizionale. Se la sicurezza del sistema dipende dalla segretezza della chiave di codifica utilizzata, allora è necessario almeno un canale sicuro attraverso il quale trasmettere la chiave. Per concordare una chiave con il proprio interlocutore c'è bisogno di mettersi preventivamente in contatto con lui incontrandolo di persona, telefonandogli, scrivendogli una lettera, mandandogli un messaggero o in qualsiasi altro modo. In qualsiasi caso, esiste il pericolo che la chiave venga intercettata durante il tragitto, compromettendo quindi l'intero sistema comunicativo.
La crittografia a chiave pubblica permette a due (o più) persone di comunicare in tutta riservatezza anche se non si sono mai incontrate prima e dunque non è mai stata concordata in precedenza alcuna chiave di codifica. La cosa è apparentemente assurda e anti-intuitiva, ma il principio in base al quale è possibile tutto questo è relativamente semplice da comprendere. Nella crittografia tradizionale viene utilizzata un'unica chiave sia per codificare, sia per decodificare i messaggi. Le informazioni (la chiave e l'algoritmo) necessarie per chi deve inviare il messaggio sono quindi identiche a quelle necessarie a chi deve riceverlo.
La crittografia a chiave pubblica, al contrario, si basa su una coppia di chiavi: una chiave pubblica e una chiave segreta. La chiave pubblica serve unicamente per codificare il messaggio, mentre quella segreta serve unicamente per decodificarlo. È come se una cassaforte avesse due chiavi distinte, una usata per aprirla e una per chiuderla. A questo punto il gioco è fatto: ogni utilizzatore del PGP si crea la propria (o le proprie, in casi particolari) coppia di chiavi. La chiave segreta viene tenuta, appunto, segreta e non viene mai rivelata a nessuno (nemmeno alle persone con le quali si comunica); viceversa, la chiave pubblica viene diffusa ovunque e in ogni modo: può essere aggiunta automaticamente in coda a ciascun proprio messaggio nelle varie conferenze elettroniche cui si partecipa, o può essere depositata in archivi pubblici (keyserver) a disposizione di chi la desideri. È importante che la tua chiave pubblica sia liberamente accessibile, perché chiunque voglia comunicare con te dovrà preventivamente munirsi della tua chiave pubblica (eventualmente anche chiedendotela direttamente) con la quale crittare il messaggio a te indirizzato.
La differenza rispetto alla crittografia tradizionale sta nel fatto che adesso non è più necessario trovare un luogo sicuro nel quale vedersi e scambiarsi la chiave di codifica/decodifica, in quanto anche nel caso la chiave pubblica venisse intercettata non ci sarebbe assolutamente nessuna conseguenza: le chiavi pubbliche che viaggiano liberamente in rete possono solo crittare, non decrittare i messaggi. Con le coppie di chiavi della crittografia a chiave pubblica diventa possibile condurre discorsi riservati anche tra individui che non si sono mai conosciuti o visti di persona, magari perché separati da migliaia di chilometri di distanza.
Chiunque può usare la chiave pubblica del destinatario per crittare un messaggio diretto a lui - mentre il destinatario userà la propria corrispondente chiave segreta per decrittare quel messaggio. Nessuno che non sia il destinatario può decrittarlo, perché nessun altro ha accesso alla chiave segreta; nemmeno la persona che ha mandato il messaggio potrà più aprirlo una volta crittato.
Ovviamente questo principio generale ha una solida base matematica che lo giustifica; tale base, riassunta e semplificata all'estremo, si fonda sull'inesistenza - nel corpo di conoscenze sulla matematica pura sviluppate dall'uomo negli ultimi secoli - di un metodo sicuro e rapido per fattorizzare (ridurre ai numeri primi che lo producono se moltiplicati tra loro) un numero qualsiasi composto da un numero di cifre sufficientemente alto. In altre parole, se si prendono due numeri primi a caso X e Y, si può agevolmente moltiplicarli tra loro, ottenendo Z; ma è estremamente difficile compiere il percorso inverso: dato Z, non esiste un metodo efficace per risalire a X e Y. Se questi numeri sono scelti in modo da essere sufficientemente alti (composti cioè da centinaia di cifre), la difficoltà di risalire a X e Y non può essere superata con le attuali capacità di calcolo né con quelle ragionevolmente prevedibili nel prossimo futuro. Se è chiaro che non è questa l'occasione per addentrarsi nei dettagli di questo principio, è però necessario fare presenti due cose.
Prima di tutto, l'intera struttura matematica su cui si regge la crittografia a chiave pubblica (e quindi anche il PGP) è completamente a disposizione di chiunque abbia voglia, tempo e competenze per verificarla e metterla alla prova. Comprendere e verificare il principio di base è una cosa alla portata di chiunque abbia una buona base matematica a livello scolastico. Addentrarsi negli algoritmi veri e propri, certamente, richiede qualcosa di più. In ogni caso, l'intero corpo di conoscenze necessario è di dominio pubblico e facilmente recuperabile in qualsiasi biblioteca ben fornita. Se qualcuno ha dei dubbi sull'efficacia del PGP e non si fida degli anni e delle migliaia di ore spese ad analizzarlo pubblicamente da parte di persone interessate e motivate di tutto il mondo, alcune delle quali tutt'altro che "comode" per l'establishment e con motivi tutt'altro che deboli per cercare un sistema di crittografia veramente robusto, ebbene questo qualcuno non ha che da rimboccarsi le maniche e fare un po' di verifiche in prima persona: troverà tutte le porte spalancate.
In secondo luogo, è fondamentale ricordare che il PGP non è un sistema assolutamente sicuro. Nessun sistema di crittografia lo è, né lo potrà mai essere. La sicurezza che può offrire un ottimo sistema di crittografia come il PGP è solamente relativa, per quanto molto vicina a quella assoluta: essa dipende da una serie di fattori (tecnologici, matematici, umani), di cui però l'elemento di gran lunga più importante rimane l'attenzione dell'utilizzatore umano. È perfettamente inutile speculare sui milioni di anni di calcolo necessari a spezzare una chiave RSA, se poi la propria chiave segreta e la propria frase di accesso rimangono a disposizione di chiunque sulla scrivania o sulla propria agenda. Sulla questione degli "attacchi pratici", indipendenti dalla robustezza degli algoritmi di crittografia usati, si tornerà tra poco in quanto si tratta di un argomento importantissimo e spesso trascurato, ma nel quale la creatività e la fantasia degli esseri umani talvolta riescono a superare anche le più ardue barriere matematiche.

Firme digitali e pseudonimato
Facciamo ora una breve digressione e analizziamo una delle caratteristiche più evidenti della comunicazione in rete in generale.
Le interazioni in rete avvengono necessariamente fra "entità" e la dimensione più strettamente fisica viene parzialmente messa da parte. Questo però non significa affatto, come si sente dire da più parti, che le interazioni siano condotte per questo in forma necessariamente anonima.
L'oggettiva difficoltà di risalire con certezza al collegamento biunivoco tra "entità" interagente e individuo fisico che muove quell'entità costituisce sempre più un problema da un punto di vista giuridico: nonostante in rete possano essere compiuti reati, truffe e illeciti di vario tipo, la responsabilità legale di questi atti ricade spesso nel nulla, in quanto è molto difficile accertare quale persona fisica stia effettivamente operando all'altro capo del filo in quel preciso istante. Ma questi sono problemi giuridici e in particolare della giurisdizione statale (la particolare "giurisdizione" sviluppata spontaneamente in rete pare non preoccuparsene troppo). È solo in un'ottica repressiva e di controllo che, partendo da questa considerazione, si può arrivare a concludere che la comunicazione in rete è sempre anonima. Ciò che manca in rete non è il nome delle persone, ma semplicemente la zavorra dell'identità anagrafica.
A sostituzione del nome anagrafico, assegnato per legge e immodificabile, in rete prolifera una quantità enorme di altri nomi, nicks, handles, alias, pseudonimi. L'importanza di questi nomi non è minore di quella del proprio nome anagrafico: è attraverso il loro riconoscimento pubblico che in rete è possibile costruire relazioni sociali significative, che potranno ovviamente poi essere trasferite anche al di fuori della rete.
Se esiste dunque una modalità caratteristica dell'interazione in rete rispetto ai nomi e alle identità individuali, questa non è data principalmente dall'anonimato ma piuttosto dallo pseudonimato. Lo pseudonimato comporta un processo di costruzione dell'identità e un suo riconoscimento sociale che perdurano nel tempo ma sono anche mutevoli e continuamente in divenire, mai acquisiti definitivamente; patrimonio fondamentale dello pseudonimo (sia esso corrispondente o no a un nome anagrafico) è la reputazione che esso riesce a guadagnare attraverso la sua vita in rete o quella che eredita da un'eventuale ragnatela di relazioni sociali avviate in precedenza off-line.
La perfetta realizzazione dello pseudonimato si scontra però con gli stessi problemi a cui si è accennato a proposito dell'identità anagrafica: via rete è possibile modificare non solo il nome-numero di serie che lo Stato ci ha affibbiato, ma anche lo stesso pseudonimo che ci siamo scelti. È possibile scrivere firmandosi con uno pseudonimo altrui. Questa possibilità costituisce il più delle volte una sanissima e utile opera di decostruzione dei propri pregiudizi e delle proprie rigidità ed è una possibilità che ci guardiamo bene dal voler eliminare. Nonostante questo, ci sono casi in cui, magari a causa della natura molto "specifica e concreta" della comunicazione, è assolutamente necessario essere certi dell'autore di un dato messaggio. Non tanto essere certi del suo numero di serie statale, quanto piuttosto del fatto che egli è effettivamente la stessa entità (individuale o collettiva) con cui si è comunicato in precedenza, via rete o anche in carne ed ossa. In altre parole, è necessario essere certi del suo pseudonimo.
È in una situazione come questa che la crittografia a chiave pubblica viene nuovamente in aiuto. Semplicemente rovesciando l'impiego delle chiavi pubbliche e private, è possibile porre una firma digitale crittografica sui messaggi che immettiamo in rete. La chiave segreta del mittente può infatti essere usata, se si vuole (oltreché per decrittare i messaggi ricevuti) anche per generare una firma da apporre nel corpo dei messaggi che si spediscono. La firma digitale del messaggio può poi essere verificata dal destinatario (o da chiunque altro) utilizzando la chiave pubblica del mittente.
Questo serve a garantire che il mittente è colui che davvero ha scritto il messaggio - e che il messaggio non è stato successivamente manipolato da nessun altro, poiché solo il mittente possiede la chiave segreta per poter firmare. È tecnicamente impossibile falsificare o modificare un messaggio autenticato senza invalidarne la firma e lo stesso mittente non può più revocare la firma una volta apposta. Detto in altre parole, il PGP ti permette di ricevere un messaggio che solo tu sei in grado di leggere e in più (se il mittente ha scelto di firmare il messaggio) ti permette di essere sicuro del fatto che quel messaggio può essere stato scritto solo da una certa persona (o comunque solo da una persona che ha accesso a una particolare chiave segreta).
Una delle applicazioni più utili della firma digitale, a parte l'autenticazione dei messaggi veri e propri, riguarda la conferma delle chiavi pubbliche di terze persone. La crittografia a chiave pubblica infatti lascia scoperto un possibile punto debole. Nel momento in cui vuoi comunicare con Lex Luthor, ti serve la sua chiave pubblica. Il modo migliore per ottenerla è direttamente dalle sue mani. Talvolta questo non è possibile e sei costretto a fartela inviare attraverso la rete. Come abbiamo visto il sistema a chiave pubblica risolve ogni problema rispetto a un'eventuale intercettazione della chiave lungo il tragitto, ma presta il fianco alla possibilità che Superman, conoscendo la tua volontà di comunicare con Lex Luthor, si spacci per lui e ti spedisca una chiave pubblica contraffatta. Se cadi nel tranello e utilizzi quella chiave, i successivi messaggi saranno leggibili non da Lex Luthor, bensì da Superman, titolare della vera corrispondente chiave segreta. Superman potrà poi perfezionare il suo inganno rispedendo a sua volta tutti i messaggi a Lex Luthor, che in questo modo non si accorgerà nemmeno dell'esistenza di una tappa in più lungo la strada.
Questo problema (chiamato problema "dell'uomo nel mezzo") è assolutamente concreto e reale. La soluzione sta nel chiedere e ottenere che ogni nuova chiave pubblica sia firmata da qualcuno che si conosce e di cui si dispone già con certezza della rispettiva chiave pubblica. Se sei costretto a ottenere la chiave di Lex Luthor via rete, avrai cura di verificare che essa sia firmata da quello sballato di Pippo, che ha contatti quotidiani con Lex Luthor. Siccome hai incontrato di persona Pippo un anno fa, e in quell'occasione vi siete personalmente scambiati le rispettive chiavi pubbliche, tu possiedi con certezza la vera chiave pubblica di Pippo. Con questa chiave puoi verificare la firma che Pippo ha apposto sulla chiave pubblica di Lex Luthor, puoi cioè verificare che Pippo, di cui ti fidi, garantisca che la chiave pubblica che ti è appena arrivata è effettivamente la chiave di Lex Luthor. Superman, da solo, non sarebbe mai in grado di mandarti una chiave firmata da Pippo, spacciandola per la chiave di Lex Luthor.
A questo punto è evidente che la certificazione delle chiavi può diventare rapidamente molto complessa (Pippo può firmare la chiave di Lex Luthor, il quale a sua volta firma la chiave di qualcun altro, tuo prossimo collaboratore), consentendoti, da un unico punto di partenza sicuro, di estendere la tua rete di contatti a dismisura comprendendo anche entità che non incontrerai mai di persona. Con questa caratteristica il cerchio viene chiuso e diventa veramente possibile stabilire un'infrastruttura comunicativa priva di contatti fisici che sia doppiamente sicura, sia dal punto di vista della possibilità di leggere il contenuto della comunicazione, sia da quello di poterne garantire la provenienza.

Crittanalisi
Prima di concludere questa discussione generale e passare agli aspetti più concreti del PGP, è necessario un commento critico sul grado di sicurezza effettivamente raggiungibile con strumenti di questo tipo.
Si è già detto che la sicurezza dell'algoritmo non è affatto assoluta, al contrario, lo sforzo necessario per "rompere" con la sola "forza bruta" una tipica chiave RSA (questo è il nome dello specifico algoritmo di crittografia a chiave pubblica utilizzato dal PGP nelle sue versioni più diffuse) è quantificabile, con le attuali conoscenze matematiche, in modo abbastanza preciso. A seconda dei mezzi a disposizione, questo sforzo è misurato in migliaia o milioni di anni di calcolo, ipotizzando anche l'impiego di computer molto più potenti di quelli pubblicamente conosciuti in questo momento. La sicurezza, da questo punto di vista, è quindi "relativamente assoluta", a patto che non subentrino altri anelli, più deboli, nella catena del nostro sistema.
Scrivere la propria passphrase (necessaria per accedere alla chiave segreta) su un foglietto post-it appiccicato al monitor può ridurre i famosi milioni di anni di calcolo a pochi secondi. A parte questo esempio banale, i potenziali anelli deboli sono sfortunatamente molti. Tuttavia si tratta sempre di debolezze esterne all'algoritmo di crittografia vero e proprio: è inutile chiedersi se i milioni di anni potranno presto ridursi a centinaia con l'aiuto di computer più potenti; è molto più utile, invece, chiedersi ad esempio in base a quali criteri è stata scelta la propria passphrase. La metodologia di attacco più efficiente conosciuta fino a questo momento, infatti, piuttosto che tentare tutte le combinazioni possibili della chiave (brute force attack) si affida a dizionari che, una volta comunque acquisita la chiave segreta attraverso altri mezzi (vedi sotto), limitano i tentativi per trovare la passphrase alle sole combinazioni più plausibili in base a fattori tipicamente umani.
Prima di commentare i possibili attacchi condotti tramite dizionario, però, è opportuno soffermarsi ancora un momento sugli attacchi brute force. Nel caso del PGP, questi consistono nel tentativo di ottenere i codici di accesso avendo a disposizione la sola chiave pubblica. In termini matematici si tratta di "fattorizzare" un numero estremamente alto; lo sforzo necessario per compiere questa operazione dipende direttamente e in primo luogo dalla lunghezza della chiave pubblica prescelta. Le tipiche chiavi pubbliche create con il PGP sono costituite, in genere, da un numero ben preciso di bit: 384, 512, 768, 1024, 2048. All'aumentare della lunghezza della chiave pubblica aumenta anche lo sforzo necessario per fattorizzarla. Questo aumento avviene però in for ma esponenziale, e quindi una chiave da 1024 bit è incomparabilmente più sicura, da questo punto di vista, di una da 512. Per rendere più evidenti queste differenze, la tabella qui riportata indica un tentativo di stima dello sforzo richiesto, con gli algoritmi attualmente più evoluti, per fattorizzare alcune tipiche chiavi pubbliche generate dal PGP:
(Se stai utilizzando un browser text-only clicca qui per visualizzare una versione semplificata della tabella che segue)
Dimensioni della chiave in bits Anni - MIPS necessari per la fattorizzazione
512 30.000
768 200.000.000
1024 300.000.000.000
2048 300.000.000.000.000.000.000
L'intensità dello sforzo è espressa in "anni-MIPS", una misura comunemente usata per indicare la potenza di calcolo. Un anno-MIPS corrisponde a un anno di calcolo ininterrotto effettuato da una macchina della potenza di 1 MIPS (cioè in grado di eseguire un milione di istruzioni al secondo; è da tenere presente che i comuni personal computer attualmente in commercio esprimono in genere una potenza di calcolo superiore a 200 MIPS).
Per dare un'idea concreta di quale sia la capacità di calcolo raggiungibile attualmente, ricordiamo i due più importanti eventi che hanno sottoposto a prove pratiche la resistenza del PGP agli attacchi brute force.
Nel primo caso si trattava di raccogliere la sfida lanciata da Ron Rivest (uno degli ideatori del sistema RSA, il sistema di crittografia a chiave pubblica su cui si basa il PGP) nel 1977: a chi fosse riuscito a fattorizzare un numero di 129 cifre (approssimativamente corrispondente a una chiave PGP da 425 bit), Rivest prometteva un premio simbolico di 100 dollari. La sfida era nota con il nome "RSA-129". Lo stesso Rivest aveva stimato che fossero necessari 40 quadrilioni di anni per realizzare una simile impresa. Nel 1994, dopo soli 17 anni, questo obiettivo è stato raggiunto seguendo una metodologia assai interessante: i calcoli sono stati eseguiti su una gigantesca macchina virtuale, composta da migliaia di computer sparsi in tutto il mondo. Infatti, anziché concentrare lo sforzo su una sola macchina, che avrebbe portato a tempi di calcolo assolutamente improponibili (anche se forse inferiori ai 40 quadrilioni di anni stimati da Rivest), la sfida è stata ampiamente pubblicizzata in rete e, attraverso alcuni coordinatori, distribuita su migliaia di volontari, ognuno dei quali metteva a disposizione le proprie risorse di calcolo nei momenti in cui queste non venivano utilizzate per le normali attività lavorative. Attraverso questa enorme iniziativa pubblica e collettiva si è riusciti, in soli otto mesi di lavoro effettivo ed esprimendo uno sforzo complessivo pari a 5.000 anni-MIPS, a superare la sfida, fattorizzando il numero magico da 129 cifre e decrittando il messaggio di sfida scritto nel 1977 da Rivest. Questo evento rese evidenti a tutti le incredibili possibilità offerte dalla cooperazione in rete su vasta scala.
Il secondo evento degno di nota è avvenuto nel 1995 e ha rappresentato il primo attacco brute force riuscito direttamente contro una vera e propria chiave PGP. Si trattava della chiave da 384 bit (116 cifre) di "Blacknet", un esperimento dimostrativo di come avrebbe potuto funzionare un ipotetico mercato nero di informazioni segrete, basato su crittografia e firme digitali. La chiave è stata fattorizzata in tre mesi, con uno sforzo di 400 anni-MIPS (da notare la differenza rispetto ai 5.000 anni-MIPS dell'operazione precedente, riguardante una chiave di sole 13 cifre più lunga). Nonostante l'impegno di calcolo molto più modesto rispetto a RSA-129, in questa occasione la novità era rappresentata dalla segretezza in cui si è svolto il lavoro: contrariamente alla pubblicità e agli appelli pubblici in rete alla ricerca del maggior numero possibile di volontari, in questo caso gli autori erano solamente quattro persone che hanno lavorato in privato e hanno reso noto il loro lavoro solo a operazione conclusa. Nonostante i quattro non fossero esattamente persone qualunque (erano tutti responsabili di centri di calcolo e tra le macchine utilizzate, oltre a decine di workstations, figurava anche un MasPar, uno dei computer più potenti e costosi mai costruiti) il tentativo, perfettamente riuscito, era quello di dimostrare come un attacco del genere fosse possibile anche senza pubblicità e dunque, a maggior ragione, anche da parte di agenzie governative più o meno segrete.
Questi due eventi hanno avuto il grande merito di dare finalmente una dimostrazione pubblica e concreta dell'effettivo livello di sicurezza garantito da sistemi come il PGP. I due successi nella fattorizzazione delle chiavi non devono essere interpretati affatto come un'espressione di debolezza del sistema: al contrario, ne è uscita confermata l'impossibilità pratica di attaccare frontalmente le tipiche chiavi effettivamente utilizzate in questo momento, composte da almeno 1024 bit. Le chiavi da 512 bit, considerate sicure fino a pochi anni fa, cominciano ora a essere considerate dei possibili obiettivi da parte di ipotetiche organizzazioni dotate di enormi risorse e ovviamente di un enorme interesse nel dedicare queste risorse, per almeno alcuni mesi, a uno specifico obiettivo.
Ma i metodi offerti dalla crittanalisi (cioè la scienza che studia i modi per superare gli algoritmi di crittografia) non si limitano ai tentativi brute force applicati per indovinare la chiave: spesso è possibile scoprire delle debolezze matematiche nell'algoritmo, evidenti solo dopo anni di studi. Inoltre, vi sono delle particolari condizioni nelle quali il lavoro dei crittanalisti risulta facilitato. Nonostante da questo punto di vista il PGP sia reputato sicuro, può essere interessante citare qualche esempio, accennando ai tre principali scenari di attacco ipotizzati in crittanalisi, in ordine decrescente di complessità. Il primo scenario è quello in cui il nemico non conosce nulla del contenuto dei messaggi che ci scambiamo; il nemico assiste cioè esclusivamente al transito dei messaggi nella loro for ma crittografata (cyphertext-only attack). È questo lo scenario più sicuro, in cui molte volte l'unica possibilità di attacco è rappresentata dagli attacchi brute force discussi sopra. Ma se l'algoritmo è sufficientemente robusto e la chiave sufficientemente lunga, gli attacchi brute force risultano, come si è visto, impossibili o eccessivamente dispendiosi in termini di tempo e risorse. È normale allora che il nemico cerchi di ottenere ulteriori informazioni.
Ci spostiamo così nel secondo scenario, in cui il nemico riesce a ottenere una o più coppie di messaggi in chiaro (plaintext) e delle loro corrispondenti versioni crittate (known-plaintext attack). La possibilità di uno scenario simile non deve soprendere: è sufficiente dimenticarsi sul proprio hard disk il messaggio luthor.asc (crittato) e luthor.txt (in chiaro). Un'eventuale perquisizione e sequestro del computer potrebbe fornire al nemico molte coppie di messaggi come questa. In campo crittanalitico si cerca sempre di sfruttare la disponibilità dei messaggi in chiaro per arrivare a carpire informazioni in grado di rompere chiave e algoritmo, decrittando così qualunque altro messaggio.
Infine, un terzo scenario ancora più critico è quello denominato chosenplaintext attack, in cui il nemico è in grado - normalmente attraverso l'inganno e l'astuzia - di scegliere il contenuto in chiaro di un certo messaggio e di ottenere poi la sua versione crittata. Questo tipo di attacco è ciò che ha favorito la rottura del codice "Purple" usato dai giapponesi durante la seconda guerra mondiale: le forze americane, che già monitoravano il traffico comunicativo crittato del Giappone, inviarono una particolare notizia falsa che sapevano sarebbe stata immediatamente trasmessa, crittata, al comando generale giapponese. La possibilità di avere un particolare testo scelto dal nemico (e non un testo a caso) e la sua corrispondente forma crittata offre ulteriori informazioni utili ai crittanalisti esperti.
È bene ribadire che il PGP pare essere assolutamente resistente perfino in caso di chosen-plaintext attack. Tuttavia è anche bene essere consapevoli del fatto che, in linea teorica, qualsiasi sistema crittografico corre rischi maggiori quando si passa da una condizione di cyphertext only a una di known-plaintext o addirittura di chosen-plaintext attack. Nel caso della crittografia a chiave pubblica, poi, ulteriori rischi provengono dalle caratteristiche della firma elettronica. Lo scenario chosen-plaintext, infatti, può essere raggiunto da questo versante con ancora maggiore facilità: è sufficiente che il nemico ci spedisca un messaggio apparentemente banale e innocuo, chiedendoci di restituirlo dopo avervi apposto la nostra firma elettronica generata con il PGP. La nostra firma apposta su un messaggio dotato di particolari caratteristiche scelte dal nemico, in modo del tutto simile a un chosen-plaintext attack, può in qualche modo facilitare le operazioni di attacco al nostro sistema.
Rischi di questo tipo su un sistema crittografico basato sul PGP sono, lo ripetiamo, del tutto teorici e speculativi. Tuttavia rimane buona norma cercare di evitare, per quanto possibile, di lasciare sul proprio computer coppie di messaggi in chiaro e crittati; allo stesso modo è necessario prestare attenzione a ciò che si firma e non firmare mai contenuti ricevuti da estranei. Conoscere la possibilità di quest'ultimo tipo di attacchi può risultare utile, forse più che per proteggere un sistema già sufficientemente robusto come il PGP, per rendersi conto di quando le nostre comunicazioni cominciano ad attirare attenzioni inusuali.

Attacchi pratici
Questo per quanto riguarda le possibilità di attacco offerte dalla crittanalisi pura. Soprattutto quando i possibili nemici sono gli organi repressivi dello Stato, però, è abbastanza probabile che la chiave segreta del PGP risulti rapidamente compromessa e che dunque risultino molto più convenienti altre metodologie di attacco, basate sullo sfruttamento di debolezze umane e non più del sistema crittografico in sé.
Cerchiamo prima di tutto di capire meglio la funzione della passphrase. La sicurezza del PGP è data da due elementi che dovrebbero sempre rimanere segreti: la passphrase e la chiave segreta vera e propria. La chiave segreta è costituita da un blocco di bit: è un piccolo file che viene custodito sul proprio computer o su un dischetto. Per maggior sicurezza per poter utilizzare propriamente la chiave segreta è anche necessario digitare una passphrase, cioè una parola d'ordine che può essere composta da parole, frasi o numeri di qualunque lunghezza. Chiave segreta e passphrase sono entrambe ugualmente necessarie per il processo di decodifica dei messaggi.
Si può ora immaginare una situazione tipica di attacco molto concreto al proprio sistema crittografico: il proprio computer cade completamente nelle mani del nemico (ad esempio a causa di un'improvvisa perquisizione). In questo caso, a meno che non si siano attuate cauzioni (ad esempio l'uso di file system crittati o steganografati, come vedremo più avanti), la chiave segreta risulta compromessa e lo è di conseguenza il 50% della nostra sicurezza. Ma se abbiamo predisposto tutto con cura, il 50% di una quantità "relativamente infinita" rimane qualcosa di "relativamente infinito". L'importante è dunque proprio aver scelto bene la passphrase.
In casi del genere, infatti, il nemico avrà comunque bisogno della passphrase per riuscire a compromettere definitivamente l'intero sistema. Per ottenerla ha due strade: chiedercela direttamente, oppure trovarla da solo. Nel primo caso è utile notare che una simile passphrase, scelta necessariamente in base a criteri di lunghezza e complessità, è qualcosa che si può dimenticare molto facilmente; tra l'altro la legge italiana consente all'imputato di non rispondere alle domande, da qualunque parte provengano (questo è uno dei motivi per cui in certi casi è importante informarsi immediatamente se si è imputati o solo testimoni e tacere fino a quando non si ottiene una risposta certa raggiunta con l'aiuto di un avvocato). Gli aspetti giuridici di una simile situazione sono ancora molto incerti e in Italia vi sono pochissimi precedenti significativi. Può essere comunque interessante riportare che nei pochi casi in cui sono stati sequestrati dischi e computer contententi anche (tra le altre cose) materiale crittato, gli investigatori non hanno fatto finora particolari pressioni per ottenere le chiavi di accesso.
Nel caso invece che il nemico decida, o sia costretto, a trovare la passphrase da solo, allora averla scelta bene manifesterà tutta la sua importanza. In rete sono disponibili alcuni piccoli programmi in grado di tentare numerose combinazioni al secondo. Coadiuvati da appositi dizionari elettronici, questi programmi possono ad esempio essere impiegati per "testare" tutte le parole più comuni della lingua italiana o di qualsiasi altra lingua conosciuta. È quindi fondamentale che la passphrase sia costituita da più parole, possibilmente inesistenti su qualsiasi vocabolario, comprendenti anche lettere maiuscole, numeri e caratteri di punteggiatura.
La passphrase non deve inoltre avere alcun riferimento a elementi pubblici o privati della propria vita o di quella dei propri amici o conoscenti: le prime centinaia di tentativi di un ipotetico attacco riguarderanno possibili date di nascita, numeri di codice fiscale, numeri di telefono, indirizzi, nomi scritti correttamente o rovesciati. Affidarsi a questo tipo di dati per scegliere la propria passphrase è una pessima idea. Se ci sono dei dubbi in proposito o se la paranoia sembra eccessiva, basta ricordare che la crittografia è un'arte molto antica e che sono già stati accumulati un paio di millenni di esperienza sui modi più comuni usati dall'uomo per scegliere e memorizzare codici segreti.
Sono stati consigliati vari modi pratici e sicuri per arrivare a scegliere una passphrase sufficientemente robusta. Uno dei più semplici e comuni è il seguente: prima di tutto si costruisce una frase abbastanza lunga ma facile da memorizzare. Ad esempio: "Accipicchia! Questo libro contiene 250 pagine di dinamite, gli amici di Superman non saranno contenti di vederlo...". La nostra passphrase sarà quindi costituita semplicemente dalle iniziali di ogni singola parola della frase, compresa la punteggiatura:
==============================
"A!Qlc250pdd,gadSnscdv..."
==============================
È facile immaginare come questo sia comunque solo uno dei molti modi (e nemmeno il più sicuro) per costruire una passphrase a prova di qualsiasi scanner.
La passphrase ideale è costituita da una sequenza di caratteri perfettamente casuali. Il requisito della perfetta casualità, apparentemente banale, in realtà rappresenta un problema che pone diverse difficoltà. Nell'esempio appena suggerito, le lettere minuscole appaiono più frequentemente di quelle maiuscole e le consonanti più frequentemente delle vocali (nella lingua italiana le vocali appaiono più spesso come finale di sillaba, tendendo quindi a non comparire all'inizio di parola). Questo tipo di debolezze, se opportunamente analizzato e sfruttato, può facilitare un tentativo di attacco. La casualità perfetta, o almeno una sua accettabile approssimazione, in ambito informatico si raggiunge spesso affidandosi all'ambiente fisico esterno al computer: nel momento in cui necessitano di una serie di numeri casuali, alcuni programmi chiedono all'utente di spostare il mouse a caso, oppure di campionare il rumore di fondo presente nella stanza attraverso la scheda audio; il movimento del mouse e il rumore di fondo verranno poi convertiti in sequenze di informazioni e quindi in numeri. Il PGP, dal canto suo, al momento della generazione della prima coppia di chiavi chiede all'utente di digitare alcune lettere a caso sulla tastiera del computer: ad essere interpretati e convertiti in numeri, dopo adeguate trasformazioni, saranno in questo caso gli intervalli di tempo trascorsi tra la pressione di un tasto e l'altro. Lo scanning sistematico attraverso appositi programmi costituisce però solo una delle molte strategie possibili per ottenere la passphrase senza la nostra collaborazione (stiamo comunque sempre ipotizzando che la sicurezza della chiave segreta sia già stata compromessa). Altri metodi possono risultare tanto banali quanto efficaci: se il proprio computer è posto vicino a una finestra, come spesso accade, un buon telescopio piazzato per un congruo periodo di tempo nel condominio di fronte può permettere di leggere tutti i movimenti delle nostre dita sulla tastiera. Per non parlare, ovviamente, di eventuali altre persone presenti alle nostre spalle mentre digitiamo la passphrase.
Altre strategie sono meno banali e talvolta sorprendono gli utenti con minore familiarità nei confronti dei mezzi informatici. È il caso di una famiglia di programmi denominati "keyloggers", o anche (se utilizzati in rete) "sniffers". Questi piccoli programmini, preventivamente installati in un computer, provvedono a registrare a sua insaputa tutte le operazioni svolte dall'utente, comprese le sequenze di tasti digitati. In via teorica è possibile penetrare di nascosto in casa altrui, modificare la configurazione software del computer e fare in modo che, agli avvii successivi, il keylogger venga caricato automaticamente. Dopo un certo periodo di tempo, in un ulteriore sopralluogo si provvederà a prelevare il keylogger e tutto il suo bagaglio di informazioni. Non è sempre facilissimo, nemmeno per gli utenti più smaliziati, rendersi conto di avere un simile intruso nel proprio computer. La soluzione è quella di non lasciare mai il proprio pc eccessivamente incustodito (tenendo anche presente che l'eventuale password del BIOS impostata all'avvio si supera abbastanza facilmente aprendo fisicamente il cabinet e spostando un jumper all'interno) e soprattutto verificare spesso che la configurazione di avvio non sia cambiata. Quest'ultimo controllo potrebbe probabilmente essere reso automatico e molto più preciso utilizzando qualche programma predisposto ad hoc.
Un'ulteriore possibilità di attacco riguarda gli utenti di Windows e di tutti quei sistemi operativi che fanno uso della memoria virtuale su disco. In questi sistemi, parte della memoria di lavoro (che contiene anche dati e comandi immessi da tastiera, compresa l'eventuale passphrase) viene temporaneamente trasferita sul disco fisso, in un file chiamato file di swap (o swap file). Queste informazioni possono rimanere nello swap file anche dopo il termine della sessione di lavoro e lo spegnimento del computer. Per essere sicuri che la passphrase (o altre informazioni delicate) non sia rimasta da qualche parte scritta su disco, è necessario cancellare sistematicamente il contenuto dello swap file. Quello che ancora molti non sanno è che il comune comando usato per cancellare i file in realtà non effettua una reale cancellazione fisica e rende possibile (e anche molto semplice) il loro recupero in tempi successivi. Sarà quindi indispensabile che lo swap file venga cancellato in modo sicuro, attraverso le numerose utility specificamente disponibili a questo scopo. Alcune di queste possono anche essere configurate in modo che lo swap file venga automaticamente e irrimediabilmente cancellato alla fine di ogni sessione di lavoro. Sul problema della cancellazione sicura dei file dal disco fisso, comunque, si tornerà nel capitolo dedicato ai file system crittati.
La metodologia di attacco di cui ultimamente si è più parlato in certi ambienti è il cosiddetto attacco TEMPEST, o attacco di Van Eck. Molte apparecchiature elettroniche, tra cui i comuni monitor per personal computer, emettono onde elettromagnetiche. Queste onde possono essere ricevute e decodificate a distanza, con appositi strumenti, fino a permettere, nel caso di un monitor, la riproduzione di ciò che appare a video. Il messaggio privato che si crede di leggere sul proprio monitor nell'intimità della propria casa può apparire sullo schermo nemico grazie a speciali apparecchiature poste nella stanza, o nell'appartamento accanto. Questa tipologia di attacco, a causa della sua natura completamente passiva (il nemico si limita ad "ascoltare" le onde elettromagnetiche emesse dal nostro monitor, senza manifestare la sua presenza in alcun modo) semplicemente non può essere individuata.
Ci si può cautelare preventivamente da un attacco TEMPEST mediante schermatura del monitor, tenendo però presente che una schermatura completamente efficace richiederebbe accessori del costo di svariate decine di milioni di lire. Oppure, molto più semplicemente, si può provvedere a un adeguato disturbo delle emissioni del proprio monitor, affiancandogli un ulteriore apparecchio il cui unico scopo è appunto quello di emettere a sua volta altre onde elettromagnetiche che confonderanno l'ambiente. Apparecchi di questo tipo possono essere autocostruiti con poca spesa. In ogni caso l'emissione di onde elettromagnetiche è circoscritta a pochi metri, e quindi ogni tentativo di attacco nemico deve necessariamente posizionarsi molto vicino alla fonte delle emissioni. È solo il caso di notare, infine, che un attacco di questo tipo mirerebbe alla lettura dei messaggi così come noi li leggiamo sul nostro monitor, ma non otterrebbe comunque la passphrase, che non viene visualizzata a video mentre la si digita.
Infine, un potenziale pericolo proviene dal software di crittografia stesso. La copia del PGP che si sta utilizzando, ad esempio, potrebbe esser stata modificata preventivamente dal nemico, al fine di comportarsi in modo "anomalo": registrando la passphrase da qualche parte oppure inglobando una backdoor in grado di garantire a determinate persone l'accesso ai nostri dati. A questo tipo di minacce ci si riferisce con il nome di "cavalli di Troia". Per evitare di accogliere un simile "cavallo di Troia" nel proprio sistema sono sufficienti poche semplici precauzioni: in primo luogo, il software va sempre prelevato da fonti sicure. Evitare nel modo più assoluto di servirsi ciecamente di programmi prelevati da siti sconosciuti o non ufficiali, oppure ricevuti da persone di cui non si nutre assoluta fiducia sia per quanto riguarda la loro integrità etica, sia per quanto riguarda le loro competenze tecniche (qualche sincero amico potrebbe passarci un "cavallo di Troia" in perfetta buona fede). In secondo luogo, ogni software di crittografia "serio" dovrebbe essere accompagnato da una firma digitale dell'autore che ne certifichi la non manomissione. Questa non è di per sé garanzia di buon funzionamento, ma la può diventare se quel programma diventa sufficientemente verificato e conosciuto: le migliaia di prove e verifiche riportate in rete riguarderanno una versione del software contrassegnata da una particolare firma; se le firme corrispondono, si può quantomeno essere certi di stare utilizzando esattamente lo stesso programma oggetto di queste verifiche, e non una sua versione contraffatta.

PGP: quale versione?
In conclusione di questo capitolo, è il caso di affrontare brevemente una questione che ha suscitato molte discussioni. Ci si riferisce alle varie versioni del PGP che si sono succedute soprattutto a partire dal 1993. Si proverà quindi a fare una rapida rassegna delle versioni principali, indicandone le differenze degne di nota.
PGP 2.3a - è la versione che ha fatto conoscere il PGP in tutto il mondo, sviluppata da Phil Zimmermann; alcune persone continuano a usarla, un po' per pigrizia e scarsa voglia di cambiare software, un po' per alcune voci che la ritengono l'unica versione assolutamente sicura. Con questa versione non è possibile leggere i messaggi generati con alcune delle versioni più recenti e non è possibile in ogni caso utilizzare chiavi maggiori di 1280 bit. Inoltre, questa versione utilizza una particolare libreria software (MPILIB) contenente algoritmi protetti da brevetto, che ha causato a Zimmermann alcune noie legali da parte della RSA, Inc. (per questo motivo l'utilizzo del PGP 2.3a è illegale all'interno degli USA, in quanto il brevetto è valido solo all'interno degli Stati Uniti).
PGP 2.6ui (le lettere "ui" significano "unofficial international" e indicano una versione compilata all'esterno degli USA, in genere per sottrarsi ai problemi legali e di brevetti di quel paese) - è una versione basata sul codice della 2.3a, ma a differenza di quest'ultima permette di comunicare liberamente con tutti gli utilizzatori delle versioni più recenti. A questo proposito ricordiamo che, per sottrarsi alla causa legale intentata contro di lui dai titolari dei brevetti per l'algoritmo RSA, Phil Zimmermann ha acconsentito ad accogliere due precise condizioni: le versioni ufficiali sviluppate negli Stati Uniti successive alla 2.3a utilizzano una nuova libreria software (RSAREF) appositamente rilasciata dall'RSA per l'uso non commerciale, libera da royalty (ma dimostratasi altrettanto sicura) e, per incentivare l'utilizzo di queste nuove versioni, esse vengono rese artificiosamente incompatibili con i messaggi generati dalla 2.3a. Ribadiamo che queste decisioni sono state prese per problemi di brevetti e non per pressioni dell'FBI o di altre agenzie governative. In ogni caso, molti utilizzatori di tutto il mondo non hanno ritenuto giusto accettare passivamente queste condizioni, imposte comunque esclusivamente per i cittadini americani e si è assistito così a un proliferare di versioni internazionali "non ufficiali" più o meno affidabili. Il PGP 2.6ui è sicuro quanto la versione 2.3a, poiché utilizza praticamente lo stesso codice, ma si presenta all'esterno come una versione 2.6 permettendo appunto di aggirare lo scoglio legale della compatibilità all'indietro (a questo problema ci si riferisce in genere come "legal kludge"); per questo stesso motivo il suo utilizzo è probabilmente illegale all'interno degli USA.
PGP 2.6.2 - sviluppata dal MIT (Massachusetts Institute of Technology), rappresenta la svolta "legale" del PGP all'interno degli Stati Uniti; utilizza la libreria RSAREF, di libero impiego ed è per questo leggermente più lenta delle versioni internazionali e della 2.3a; a causa del legal kludge i messaggi generati con questa versione non possono essere letti dagli utilizzatori di PGP 2.3a. Come tutte le versioni del PGP, la sua esportazione dagli USA è assolutamente proibita; una volta esportata, comunque, il suo utilizzo è perfettamente legale in tutto il resto del mondo.
PGP 2.6.3i - basata sul codice della 2.6.2 del MIT e adattata per uso internazionale, ignora le limitazioni imposte alle versioni ufficiali americane: utilizza la libreria "proibita" MPILIB e può comunicare liberamente con le vecchie versioni (il suo utilizzo è di conseguenza da ritenersi illegale negli Stati Uniti). È probabilmente la versione della serie 2.6.x più efficiente e sicura ed è anche la versione consigliata a chiunque voglia iniziare a usare il PGP.
PGP 2.6.3 - il codice sorgente della 2.6.3i può essere compilato con un'opzione particolare per inglobare le limitazioni imposte negli USA (utilizzo della libreria RSAREF e incompatibilità con le versioni precedenti); l'unica caratteristica degna di nota di questa versione è quella di essere completamente legale negli Stati Uniti; non pensiamo che interesserà a molti.
PGP 5.0 - sviluppata dalla PGP, Inc., società fondata da Zimmermann nell'intento di sfruttare commercialmente la propria notorietà e tuttavia rapidamente venduta alla McAfee (famosa per i suoi prodotti antivirus). Costituisce l'inizio di una nuova serie di versioni del PGP, che però non ha lasciato tutti entusiasti. Le novità maggiori sono rappresentate da un'interfaccia grafica estremamente semplice e comoda nelle versioni per Windows e McIntosh e dall'utilizzo dell'algoritmo a chiave pubblica DiffieHellman, un sistema libero da copyright alternativo all'RSA. È distribuita in versione freeware (gratuita per l'uso individuale, seguendo la "tradizione") o in versione commerciale (destinata alle aziende e all'uso professionale). Le due versioni sono identiche quanto a sicurezza, ma la versione free genera esclusivamente chiavi Diffie-Hellman e non RSA: questa caratteristica, che ha lasciato perplessi molti utenti, rende necessaria l'importazione (possibile senza problemi) di chiavi RSA create con versioni precedenti. Il PGP 5.0 deve quindi essere affiancato da una versione della serie 2.x.x per chi si appresta a utilizzare il PGP per la prima volta e deve quindi ancora generare la propria prima coppia di chiavi. Le uniche due alternative sono quella di comprare la versione commerciale (che molti rifiutano per principio) oppure rassegnarsi a utilizzare per la propria chiave solo l'algoritmo Diffie-Hellman, che però è totalmente incompatibile con l'RSA e quindi consente di comunicare solo con altri utenti di PGP 5.0. Essendo una versione destinata al mercato USA, adempie al legal kludge e dunque non comunica con il PGP2.3a.
PGP 5.0i - versione internazionale, praticamente identica alla 5.0. Per la prima volta la versione internazionale non è stata ricavata da un'esportazione illegale del software bensì da un'estenuante scanning di codice stampato su libri di carta esportati in modo legale. Si è trattato di un modo per mettere ulteriormente in evidenza l'insensatezza delle leggi USA sull'esportazione di prodotti crittografici. L'utilità di questa operazione e il suo indiretto richiamo alla legalità come valore non ci ha del tutto convinti. Ulteriore motivo di perplessità è dato dal fatto che, pur essendo una versione "internazionale", contrariamente alle precedenti non offre la possibilità di disabilitare il legal kludge e quindi non permette di comunicare liberamente con tutte le versioni.
PGP 5.5 - a partire dalla release 5.0 il PGP tenta di integrarsi il più possibile in pacchetti software destinati a essere impiegati in aziende e ambienti di lavoro; la versione 5.5 prosegue in questa direzione e non offre particolari motivi di interesse per l'uso privato. Le varie, successive versioni proliferate negli ultimi mesi sono probabilmente troppo recenti per essere considerate sufficientemente sicure. Questo scenario sta comunque cambiando molto in fretta e le versioni del PGP costituiscono argomenti di discussione sempre molto accesi. Per una panoramica più precisa e aggiornata si rimanda alle pagine web di questo libro (http://www.ecn.org/kriptonite) e alla pagina di aggiornamento di questa versione online



Indice <<........................................................................................................Torna alla Home>>