crittologia e sicurezza nella comunicazione in rete

Transcript

crittologia e sicurezza nella comunicazione in rete
STUDI
CRITTOLOGIA E SICUREZZA
NELLA COMUNICAZIONE IN RETE
a cura di Francesco Fabris
Attraverso un percorso storico si passano rapidamente in rassegna le tecniche più
diffuse per criptare messaggi. È quanto ci viene suggerito nel primo intervento di
Andrea Sgarro, che tratta i cifrari classici a chiave simmetrica.
Il secondo articolo di Francesco Fabris illustra i principi fondamentali della
crittologia moderna, a chiave asimmetrica.
Il terzo, di Alberto Bartoli, allarga il campo delle problematiche relative alla
sicurezza, viste non più e non solo come sicurezza di un cifrario, ma piuttosto
come sicurezza dell’intero sistema cifrario-calcolatore-rete.
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
1
studi
RACCONTARE LA CRITTOGRAFIA
Andrea Sgarro
E
Edgar Allan Poe, Jules Verne, Conan Doyle, Umberto Eco e
un alfabeto cifrante, che è una permutazione dell'alfabeto scritDan Brown hanno qualcosa in comune? Se non di pari valoto in ordine naturale. Supponiamo di comunicare in italiano
re, sono tutti autori di successo, ma ciò che qui importa è che
e di servirci delle 21 lettere che si usano nella nostra lingua
tutti si sono avvalsi della crittografia e dei codici segreti. La
(ignoreremo la differenza fra maiuscole e minuscole, consercrittografia è un ingrediente prezioso nella letteratura
veremo gli spazi e ometteremo la punteggiatura). L'ala effetto, e, Poe a parte, gli autori summenzionati
fabeto naturale è quello che comincia con ABC e finil'hanno usata più per calcolo che per passione. Sensce con la lettera Z. La chiave del sistema di cifra si otza rivali è Edgar Allan Poe che svetta su tutti non
tiene scrivendo sotto l'alfabeto naturale l'alfabeto di cisolo per la sua arte, ma anche per la sua competenza
fra, vale a dire l'alfabeto permutato in modo da comcrittografica.
prendere tutte le 21 lettere, ciascuna una e una sola
A evitare malintesi, la crittografia è una divolta, ma in un ordine arbitrario. Le chiavi a
sciplina serissima. Lo sanno bene i militari,
priori possibili sono tante quante sono le pere da tempo immemorabile – tanto per dire,
mutazioni dell'alfabeto, ossia, nel caso delle 21
abbiamo la testimonianza di Svetonio sullettere italiane, un numeraccio di diciannove cil'uso che ne fece Giulio Cesare – ma dofre decimali, che salgono a ventisei nel caso delvrebbero saperlo anche gli utenti di Interle 26 lettere2 dell'alfabeto inglese. Nell’esempio
net, che non potrebbero comunicare in sicudell'atbash, il cifrario a sostituzione usato nella
rezza se non ci fossero gli strumenti crittograBibbia, l'alfabeto cifrante viene costruito con un
fici a proteggerli: basterà pensare al trasferimento
trucco: l'alfabeto naturale di 22 lettere viene spaccaelettronico di denaro e alle banche on line per capire
to in due parti e avvolto su se stesso, di sopra si scriBusto
di
Giulio
Cesare
(101-44
a.C.).
quanto importante sia garantire privatezza e
vono le lettere dalla prima all'undicesima, e
autenticità nella grande ragnatela virtuale
di sotto quelle dalla dodicesima all'ultima,
che avvolge il mondo. La crittografia è però
ma in ordine inverso; per cifrare o decifrare si
anche divertente e affascinante da raccontare, e noi ci servirescambiano lettere che stanno una sopra l'altra. La prima letmo della letteratura per introdurre concetti crittografici di
tera dell'alfabeto ebraico, alef, diventa l'ultima, tau, e vicebase.
versa, mentre la bet che è la seconda lettera nell'ordine naturale si scambia con la shin che è la penultima, la shin con la
bet, ecc. Anche Giulio Cesare si serviva di un trucco per coSostituzione
struire i suoi alfabeti cifranti, quello della rotazione: la chiave
si assegna semplicemente specificando la lettera di cifra che
sostituisce la A, diciamo la D: visto che la A avanza di tre poPer nostra fortuna il libro più letto nel mondo non è ancora
sizioni, di tre posizioni avanzano tutte le lettere; le ultime tre
Harry Potter, bensì la Bibbia. Ebbene, la crittografia fa capolilettere dell'alfabeto latino TUZ avanzano anche loro, penno già nella Bibbia, e ciò ci dà subito il destro di descrivere
sando
però di aver scritto l'alfabeto sul bordo di un cerchio,
un primo sistema di cifra, quello a sostituzione. In uno dei lie vengono quindi sostituite da ABC. Un cifrario a rotazione
bri di Geremia invece di esserci scritto Babele, in ebraico basi
può comodamente attuare, o implementare, mediante una
bel (pronunciato bavel, ma in ebraico si scrivono solo le tre
semplicissima macchina di cifra costituita da due dischi roconsonanti, bet bet lamed: questa non è ancora crittografia, è
scrittura in chiaro1 di tipo semita) si trova scritto sheshach, o
piuttosto le tre consonanti shin shin kaf che, nell'ordine, sostituiscono le tre consonati originali. Sempre in Geremia compare una sostituzione più poetica, quella che trasforma la parola ebraica che vuol dire Caldei (Kashdim) nel cuore del mio
nemico (lev Kamai).
Come funziona un sistema a sostituzione? Esso è basato su
2
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
1. Le lingue semite, come l'ebraico, l'arabo o l'aramaico, hanno una struttura fortemente consonantica: per dirla alla buona, le consonanti portano il significato mentre le
vocali si fanno carico della funzione sintattica.
2. Se le lettere dell'alfabeto sono k, le chiavi sono il fattoriale di k, vale a dire
k! = k x (k-1) x (k-2) x (k-3) ... x 3 x 2 x 1. Alcune di queste chiavi (ben poche) andrebbero escluse, visto che fra le permutazioni c'è perfino quella che lascia tutto fermo.
studi
tanti concentrici, uno più piccolo dell'altro, sui cui bordi è
scritto l'alfabeto naturale. Basterà ruotare il disco piccolo in
modo da portare la D in cifra sotto la A in chiaro per facilitare il lavoro degli addetti alla cifratura. I dischi rotanti ricorrono costantemente nella storia della crittografia. I più famosi, per la loro splendida ornamentazione barocca (crittograficamente irrilevante), sono quelli di Giovan Battista della Porta (1535 - 1615), inventore della camera oscura, filosofo
naturale, alchimista, commediografo e autore del trattato di
crittografia De furtivis literarum notis. Il suo disco piccolo ha
simboli di fantasia al posto delle lettere normali, ciò che aumenta il fascino della macchina, ma ne lascia sostanzialmente inalterate le prestazioni.
Sistemi polialfabetici
Che il cifrario a sostituzione non possa venir usato da professionisti (categoria cui il rozzo pirata di Poe non poteva
certo appartenere) era ben noto da secoli agli uffici cifra. Tutto ciò è spiegato in dettaglio in un trattato arabo scritto dal
filosofo aristotelico Ya'qub al Kindi, vissuto nel nono secolo,
detto il filosofo degli arabi, che merita di venir ricordato4 anche
come uno dei precursori della moderna statistica. Nel trattato di Al Kindi sono anche indicate possibili vie d'uscite, cui
A dire il vero, trucchi simili rischiano
accenneremo solo dopo essere tornati in
di facilitare il lavoro del crittanalista,
Europa. La scienza europea deve moltissivale a dire dello spione che ha intercetmo a quella araba, che spesso agì da cintato il crittogramma (il testo cifrato). Meghia di trasmissione con il mondo classico,
glio dunque attenersi a cifrari a sostitugreco e romano, e la crittografia non fa eczione di tipo generale, in cui il numero
cezione: anche se non certificato da prove
enorme delle chiavi a priori possibili
documentarie (del resto la crittografia tensembra metterci al sicuro. È proprio code a lasciar poche tracce per sua natura), è
sì? Torniamo alla letteratura e lo facciadel tutto evidente il debito alla cultura aramo alla grande con un capolavoro sia
ba che ha il primo trattato di crittografia
letterario sia crittografico; lo Scarabeo
pubblicato in Europa, il De cifris di Leon
d'oro, The golden bug, che è uno splendiBattista Alberti (1402 - 1472), il celebre
do racconto di Edgar Allan Poe. Il proumanista e architetto, che fu anche uno
spione al servizio degli uffici cifra vaticani.
tagonista compie l'impresa di decifrare
Il problema dei crittografi è evidente: assoun crittogramma senza conoscere l'alfadato che i cifrari a sostituzione non si posbeto cifrante (è in palio il tesoro nascosono usare, almeno nella forma fin qui desto di un pirata dei Caraibi). Per farlo,
scritta, come uscirne? Le vie d'uscita sono
reinventa la statistica, e riscopre un anEdgar
Allan
Poe.
due, una preferita dai pratici e l'altra, dalla
tico metodo crittanalitico già noto agli
quale cominceremo, caldeggiata dai teoriarabi da un millennio. Poe era appassioci. Per quest'ultima può tornar comoda la
nato di crittografia (arrotondava il suo
macchina
di
cifra
che già abbiamo descritto, e che dunque
stipendio con rubriche crittografiche pubblicate sui giornali)
può venir usata per attuare sistemi di cifra molto più raffie le fasi della decrittazione sono descritte con cura sopraffinati
di quelli di Giulio Cesare. Per capirci descriveremo un
na, tanto che il suo racconto può ben venir usato in classe cotipico
cifrario a sostituzione polialfabetica, quello che viene
me introduzione alla statistica e al calcolo delle probabilità.
chiamato cifrario di Vigenère, ma che, con maggior rispetto
Il punto è il seguente: una lettera in una certa lingua ha una
delle priorità, dovrebbe venir chiamato cifrario di Bellaso.
frequenza tipica, ad esempio la E compare in un testo inRitorniamo a Giulio Cesare: in un certo senso la chiave che
glese (in chiaro) circa il 12% delle volte: ciò implica che la
lui aveva scelto era la lettera D, da piazzare in corrisponlettera sostituente si «tradisce» perché compare nel testo in
denza
della A. Supponiamo che la chiave sia invece una pacifra con quella che è la frequenza tipica della E in chiaro.
rola
come
TULIPANO, che ha otto lettere. Potremmo allora
Le frequenze si assestano su valori tipici piuttosto rapidarealizzare un sistema di cifra periodico di periodo otto come
mente, e un crittogramma la cui lunghezza supera il nume3
segue:
la prima lettera del testo in chiaro viene cifrata poro delle lettere dell'alfabeto già non è più sicuro. Gli Ominendo nei dischi la T sotto la A, la seconda lettera in chiaro
ni danzanti, The dancing men, è un racconto di Conan Doyle, protagonista Sherlock Holmes, che dal punto di vista
crittografico fa il paio con quello di Poe. Ma la passione
crittografica non è la stessa: Sherlock Holmes si rivela un
insegnante di statistica piuttosto noioso, né lo salva il fatto
che i 26 simboli di cifra siano 26 configurazioni distinte di
un omino danzante, ciò che rende il suo crittogramma molto coreografico.
3. Che la distanza di unicità, vale a dire la lunghezza oltre cui un crittogramma non è
più sicuro, sia grossomodo uguale alla numerosità dell'alfabeto lo si può dimostrare in
maniera matematica. Per inciso, stiamo ipotizzando che non si disturbi intenzionalmente la statistica: c’è chi si è divertito a scrivere romanzi in cui una certa vocale non
compare mai.
4. Che i trattati di storia della statistica, compresi i più autorevoli, ignorino il nome di Al
Kindi, e in generale ignorino il ruolo della crittografia nello sviluppo della statistica, è
una carenza incomprensibile e perfino scandalosa.
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
3
studi
merata destinata a contare i passi: essa tuttavia non si rivelò
molto efficace (la ruota compare anche nei dischi di Tritemio,
ma Eco afferma sbrigativamente che non serviva a nulla).
Se
lo scopo è lo stesso, ingannare la statistica, la soluzione
viene cifrata ponendo la U sotto la A, la terza lettera in chiaproposta
è stavolta quella dei cifrari omofonici. Supponiamo
ro viene cifrata ponendo la L sotto la A, ..., l'ottava lettera in
che l'alfabeto cifrante abbia una numerosità maggiore di
chiaro viene cifrata ponendo la O sotto la A. Poi si ricominquella dell'alfabeto normale, ad esempio perché è costituito
cia: la nona lettera in chiaro (9 = 8 + 1 = periodo +1) viene cida
simboli di fantasia, oppure da coppie o da terne di cifre
frata ponendo la T sotto la A, la decima lettera in chiaro
decimali. Pensando al «vecchio» cifrario a sostituzione sem(10 = 8 + 2 = periodo +2) viene cifrata ponendo la U sotto la A,
plice,
sotto una singola lettera in chiaro possiamo ora piazzae così via fino a esaurimento del testo in chiaro. La stessa lettere
vari
simboli di cifra senza che per questo creare ambira in chiaro ha un corrispondente diverso a seconda delguità (basterà evitare di ripetere lo stesso simbolo
la posizione in cui si trova, e il metodo crittanalitico
sotto lettere distinte). In fase di cifrazione scebasato sulle frequenze tipiche non funziona più.
glieremo a caso uno dei simboli di cifra dispoCifrari polialfabetici furono descritti nei loro
nibili in corrispondenza della lettera in chiatrattati da Al Kindi, Alberti, Della Porta e anro. Se ad esempio la A in chiaro ha tre simche dal tedesco Trittenheim, latinizzato in
boli che la possono cifrare, la stella, la luna
Tritemio. Nominiamo quest'ultimo perché
e
il sole, nel crittogramma talvolta al posto
ha largo spazio ne Il Pendolo di Foucault, il rodella
A ci sarà la stella, talaltra la luna opmanzo scritto da Umberto Eco in stile feuillepure il sole. La frequenza tipica della A si riton (e dunque la crittografia ci sta bene). La
partisce
allora in maniera casuale fra stella, lupassione di Eco per la crittografia non supera
na
e
sole;
in
fase di decifrazione legittima7 la difquella di Conan Doyle e il messaggio decifrato doferenza fra i tre omofoni della A svanisce. Un cifrario
po centinaia di pagine si rivela essere un deluIl disco di L.B. Alberti.
omofonico con 68 simboli di fantasia venne
dente MERDE J'EN AI MARRE DE CETTE STEad esempio usato dagli uffici cifra di ElisaNOGRAPHIE, il che suona come una confessiobetta I nella guerra che la oppose a Maria
ne. Del resto Eco sbologna a Tritemio un sistema
Stuarda.
Quest'ultima
si avvalse invece di semplici cifrari
di cifra che è poco più di una banale sostituzione monoalfabemonoalfabetici
con
nulle
(con simboli «di disturbo» che non
tica e, per contenere la delusione del lettore, non si perita di scricifravano nulla e che dovevano solo confondere le idee; uno
vere nero su bianco che la crittografia di quegli anni era cosa
dei suoi sistemi usava ad esempio 28 simboli di fantasia, 24
primitiva, il che è del tutto falso, come abbiamo già visto.
seri e 4 nulle), cifrari che i nemici riuscivano a forzare: l'esito
della guerra fra le due regine ammonisce tutti a non sottovalutare quanto importante sia l'arma crittografica.
Cifrari omofonici e nomenclatori
In realtà i sistemi polialfabetici hanno avuto una storia gloriosa: forzati appena alla fine dell'Ottocento dall'ufficiale prussiano Friedrich von Kasiski, ricomparvero in versione meccanizzata nelle due guerre mondiali. Il metodo di Kasiski funziona infatti solo su periodi brevi, ma fallisce con i periodi che
macchine di cifra come l'Enigma riuscivano a realizzare grazie
a un meccanismo di ruote che si muovevano di moto odometro5 all'interno di una speciale macchina da scrivere. Forzare
l'Enigma usato dai nazisti fu un'impresa dei servizi segreti britannici che ebbe un'influenza decisiva sull'esito della guerra.
Tutto ciò è raccontato nel romanzo Enigma di Robert Harris,
anch'esso un feuilleton, ma stavolta ben documentato dal punto di vista crittografico. L'azione si svolge a Bletchley Park nel
Buckinghamshire, dove si trovava il centro crittanalitico britannico e dove proprio a scopi crittanalitici venne costruito
uno dei primi6 calcolatori della storia, il Colossus.
Ma non è del principio polialfabetico che i professionisti della crittografia si erano avvalsi fino all'arrivo delle macchine di
cifra come l'Enigma: con i dischi rotanti è infatti facile commettere errori di sincronizzazione, che si rivelano disastrosi.
È per questo che veniva spesso aggiunta una terza ruota nu4
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
Il sistema di cifra in auge fino all'epoca napoleonica si chiamava nomenclatore: si trattava essenzialmente di un cifrario
omofonico arricchito di simboli speciali per le parole molto
usate: che queste avessero ciascuna un simbolo proprio è
un'idea utile per risparmiare tempo, ma è poco raccomandabile dal punto di vista crittografico. Nel nomenclatore di Elisabetta I, ad esempio, oltre agli omofoni c'erano altri 23 simboli aggiuntivi per espressioni come Re di Francia, Regina di
5. È il modo in cui si muovono le ruote di un comune contachilometri: la seconda si muove di uno scatto quando la prima ha completato un giro completo, la terza si muove di uno
scatto quando anche la seconda ha completato il suo giro e così via. Il sistema è periodico (anche i contachilometri si ripetono ogni centomila chilometri), ma il periodo è dell'ordine delle migliaia e varia a seconda del numero di ruote di cui la macchina dispone.
6. È notevolissimo che quello che oggi viene riconosciuto come il primo calcolatore in
assoluto fosse già stato costruito da Konrad Zuse (1910-1995) nei primi anni della
guerra: per nostra fortuna i nazisti non si resero conto della portata rivoluzionaria della nuova macchina.
7. Bisogna distinguere fra la decifrazione legittima e quella illegittima: la differenza cruciale è che nel secondo caso non si conosce la chiave, anche ammesso si conosca il
sistema di cifra. Cogliamo l'occasione di ricordare il principio di Kerckhoffs: nella crittografia strategica, quella destinata a durare sui tempi lunghi, quando valutiamo la robustezza di un sistema di cifra dobbiamo fingere pessimisticamente che il nemico abbia già capito quale sia il sistema di cifra usato, e che ignori soltanto la chiave scelta.
Nella vita reale c'è posto anche per la crittografia tattica, come quella basata sull'uso di
banali password.
studi
Navarra, Principe d'Orange, ecc. Un nomenclatore usato nel
Settecento dal Vaticano per comunicare con i gesuiti a Macao
giunge all'estremo di avere due omofoni ciascuno per le lettere in chiaro o ed s contro centinaia di parole di codice per
termini del tipo Heresia, Idolatria, ma anche grande, bene, tutto,
ecc. Evidentemente la concisione in quel caso era giudicata
più importante dell'alta qualità crittografica, e il sistema ha
carattere tattico più che strategico. I cifrari di Maria Stuarda
sono rammentati nel Codice Da Vinci di Dan Brown, che della
crittografia fa un uso abbastanza cinico, seminando ad effetto termini crittografici senza troppe preoccupazioni di coerenza; per inciso, Maria
Stuarda è ricordata come esempio crittograficamente esemplare, ma fu lei a finire
sul patibolo e non certo Elisabetta I.
Il DES
Non è a caso che abbiamo parlato di gerarchie militari, poiché i cifrari pseudoperfetti non sono adatti alla crittografia
commerciale, quella di Internet. Anche se il problema della privatezza e dell'autenticità in rete richiede soluzioni totalmente innovative basate sui cifrari a chiave pubblica di cui si parlerà in questa stessa rivista, la crittografia tradizionale, a chiave segreta, è ben presente anche in Internet: il
sistema più noto è il DES, o Data Encryption
Standard, adottato nel 1977. Finora, gira rigira, l'unico principio crittografico che abbiamo menzionato è stato quello della sostituzione, ma ne esiste un altro: la trasposizione.
Come abbiamo già ricordato, le macchiJules Verne, che della crittografia nei suoi
ne di cifra, fiorite all'epoca della rivoluromanzi fa un uso delizioso, usa un sistema
zione industriale, riportarono in vita la
a trasposizione nel Mathias Sandorf. Dei
cifratura polialfabetica, meccanizzandocongiurati ungheresi, riunitisi a Trieste, si
la. Il calcolatore elettronico ha reso imservono di una griglia quadrata suddivisa
praticabili i sistemi come l'Enigma, ma il
in 36 quadratini, parte vuoti e parte pieni. I
polialfabetismo è tutt'altro che defunto.
vuoti sono così congegnati che, se si ruota la
All'inizio degli anni Cinquanta Claude
griglia di un angolo retto alla volta, dopo
Shannon (1916 - 2001), il padre della teoquattro passi tutte le 36 posizioni rimangoria dell'informazione, dimostrò matemano scoperte una e una sola volta. Basta alloticamente che esistono cifrari perfetti, e si
Enigma.
ra scrivere il messaggio (o meglio le prime
tratta proprio di cifrari polialfabetici. Il cifrario perfetto di
36 lettere del messaggio) a righe di sei lettere, coprirlo con la
Shannon è una proiezione al limite del cifrario di Vigenère
griglia, trascrivere le lettere scoperte, rotare la griglia di un
(o di Bellaso): la parola chiave deve essere almeno altretangolo retto, trascrivere le nuove lettere scoperte, e dopo
tanto lunga quanto il testo in chiaro e le sue lettere devono
quattro passi il gioco è fatto e si può passare a nuove 36 letteessere estratte del tutto a caso tramite un dado (di 26 facce
re di messaggio in chiaro. Come il lettore avrà capito, la grise questa è la numerosità dell'alfabeto usato). Oggi si adoglia è una semplice macchina di cifra che consente di anapera l'alfabeto binario di soli due simboli, lo zero e l'uno, e
grammare il testo in chiaro; in crittografia il termine anagramil dado può venir sostituito da una moneta (testa = zero,
ma non si usa, si dice appunto trasposizione.
croce = uno, tanto per fissare le idee). In pratica i due utenUn'altra idea antica è quella di usare più sistemi di cifra in
ti legittimi dovrebbero possedere una copia ciascuno dello
serie, componendoli, ad esempio sostituire il testo in chiaro,
stesso (interminabile) elenco di bit totalmente casuali da
trasporre il risultato, e poi sostituire il crittogramma traspousare in fase di cifrazione/decifrazione, depennando via via
sto per ottenere il crittogramma definitivo. Ebbene, i tre prini bit usati (che non devono venir riusati, pena la perdita delcipi antichi della sostituzione, della trasposizione e della
la perfezione); la procedura è tutt'altro che comoda, ma è
composizione
sono alla base del DES, un sistema di cifra in
inevitabile nei cifrari perfetti, che sono tutti almeno altretuso a tutt’oggi. La chiave del DES originale era una stringa
tanto farraginosi del sistema descritto (lo dimostra un altro
di 56 bit. Le chiavi possibili erano dunque 256, che è un nuteorema di Shannon). Anche se si dice che un cifrario genuimero di 17 cifre decimali, reso decisamente troppo piccolo danamente perfetto proteggesse la hot line fra Mosca e Wagli sviluppi recenti dell'informatica. Attualmente usiamo il
shington ai tempi della guerra fredda, le gerarchie militari
triplo DES, che consiste nel comporre tre volte il DES tradipreferiscono rinunciare a un po' di perfezione e accontenzionale, ogni volta con una chiave diversa. Di fatto, il triplo
tarsi di bit pseudocasuali che possono venir generati in maDES
ha un'unica chiave che è una stringa di 3 x 56 = 168 bit:
niera automatica grazie a opportuni algoritmi. Purtroppo
le
chiavi
a priori possibili sono in tutto 2168, un numeraccio di
gli algoritmi usuali sono del tutto insufficienti alle esigenze
una cinquantina di cifre decimali. Abbastanza grande da
della crittografia: sono stati escogitati nuovi algoritmi miramettere in difficoltà l'informatica di oggi: ma non facciamoci
ti (la ricerca a proposito è spesso coperta dal segreto militaillusioni, anche il triplo DES è destinato a cadere.
re), ma non è chiaro che cosa rimanga della perfezione preAndrea Sgarro - Università di Trieste
vista dal teorema di Shannon.
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
5
studi
LA RIVOLUZIONE CONCETTUALE DELLA
CRITTOGRAFIA A CHIAVE PUBBLICA
Francesco Fabris
L
La crittografia è una disciplina antichissima, che risale addirittura agli antichi Egizi e che ha avuto la sua massima
espressione in epoca rinascimentale. Tuttavia solo a partire
dalla fine degli anni ’40 essa subì, grazie al lavoro di Claude
Elwood Shannon (il padre della Teoria dell’Informazione),
quella profonda trasformazione che la portò a diventare una
disciplina scientifica matura; è infatti del 1949 l’articolo
«Communication theory of secrecy systems», nel quale si illustra
un modello matematico del sistema
crittografico che getta le basi per un’analisi quantitativa delle prestazioni e
della sicurezza offerte dai vari cifrari
noti all’epoca.
Cifratura e decrittazione
Ricordiamo brevemente che lo scopo
di un sistema crittografico è, in prima
analisi, quello di proteggere la riservatezza delle informazioni in transito su
un canale di comunicazione nei confronti di un possibile utente non autorizzato (o spia), in agguato sul canale e teso ad acquisire le
informazioni riservate in transito su di esso. Tale protezione
viene attuata tramite la cifratura del messaggio da trasmettere (detto anche messaggio in chiaro), che consiste in una
trasformazione dello stesso usando una certa chiave di cifratura. Il prodotto della trasformazione è il messaggio cifrato o
crittogramma. Per riottenere il messaggio in chiaro dal crittogramma è necessario effettuare l’operazione inversa, cioè la
decifrazione, usando la chiave di decifrazione. Se la trasformazione rimane ignota alla spia, l’eventuale rilevamento del
crittogramma non consente la comprensione del messaggio
in chiaro. Nella crittografia tradizionale (o simmetrica), chiave di cifratura e chiave di decifrazione sono immediatamente ricavabili l’una dall’altra. Si osservi che la decifrazione, effettuata dall’utente legittimo, viene solitamente distinta dalla decrittazione, che è l’operazione illegittima di recupero del messaggio in chiaro senza poter impiegare la chiave. Dal punto di vista operativo decifrazione e decrittazione sono strutturalmente diverse, poiché hanno un diverso
6
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
livello di complessità computazionale. è infatti evidente che la
decifrazione dev’essere un’operazione facile, mentre la decrittazione dev’essere computazionalmente complessa (possibilmente «intrattabile», anche con i più veloci calcolatori).
Il mantenimento della riservatezza non è però l’unica funzione di un sistema crittografico avanzato. L’utente non autorizzato può tentare anche un’intrusione di tipo attivo, impersonando la sorgente che sta trasmettendo e tentando di far
attribuire a quest’ultima dei messaggi falsi,
cioè fraudolentemente inseriti da egli stesso
nel sistema di comunicazione. Tale frode
viene combattuta nei documenti cartacei
con la firma calligrafa in calce al documento,
che ha la doppia funzione di impedire l’impersonazione di un falsario e la ripudiabilità
da parte del mittente di un documento regolarmente trasmesso. Una tale situazione deve poter essere estesa anche al contesto dei
sistemi di comunicazione non più basati su
supporto cartaceo, introducendo una sorta
di firma numerica che autentichi l’identità
della sorgente o del documento che si sta
trasmettendo.
L’attacco attivo al sistema di comunicazione può avere però
una connotazione più subdola, che non coinvolge direttamente l’identità della sorgente quanto piuttosto l’integrità
dei dati trasmessi dalla sorgente legittima. Si pensi al caso di
un regolare ordine di trasferimento di danaro, p.es. di 100,00
Euro, eseguito da una banca autorizzata a favore di un certo
utente, e alla possibilità che quest’ultimo tenti una modifica
dell’ordine in transito (p.es. aggiungendo qualche zero prima della virgola!); in tal modo si viene a compromettere l’integrità dei dati in transito. In sintesi la crittografia opera per
risolvere i seguenti problemi:
1. protezione della riservatezza dell’informazione.
2. Autenticazione dell’utente legittimo.
3. Non ripudiabilità di un utente che ha effettuato una trasmissione legittima.
4. Verifica dell’integrità dei dati.
Ricordiamo brevemente anche altri problemi rilevanti in
ambito crittografico, legati p. es. al controllo degli accessi a ri-
studi
sorse di varia natura da parte di utenti con diversi livelli di
privilegio (per esempio nei sistemi operativi), ovvero l’acquisizione di un certo livello di privilegio da parte di più
utenti che operino congiuntamente, o anche la protezione
nei confronti di attacchi di tipo fisico a danno di memorie,
processori ecc., con lo scopo di acquisire direttamente il sostrato fisico contenente le informazioni.
que così la crittografia a chiave pubblica (o a chiave asimmetrica), che ci accompagna ancor oggi nelle nostre transazioni su
Internet. Per comprendere l’originalità dell’impostazione
immaginiamo che, in uno schema classico a chiave simmetrica, l’utente X voglia spedire all’utente Y un messaggio m,
con Cxy chiave di cifratura e Dxy = Cxy−1 chiave inversa di deciCrittografia a chiave pubblica
frazione, immediatamente ricavabile da Cxy; se per esempio
e firma numerica
usiamo un cifrario a sostituzione, la tabella di sostituzione
tra le lettere dell’alfabeto può essere letta facilmente in enIn uno scambio di documenti cartacei la soluzione ai problemi
trambi i sensi. A prescindere dal tipo di cifrario usato (tradi autenticazione e di non ripudiabilità viene affidata all’esposizione, sostituzione o composizione dei due) la sicurezspediente della firma calligrafa, mentre per l’integrità dei dati
za del sistema si basa sul fatto che X e Y hanno concordato la
esistono ovvie tecniche di confinamento degli
chiave Cxy, e questa è tenuta rigorosamente
spazi (o campi) da usare per scrivere i dati
segreta all’esterno. Ciò comporta fra l’altro il
sensibili, quali l’ammontare di una transazioproblema di trasferire la chiave a distanza (e
ne, il nome del beneficiario o simili. In enper quest’operazione servirebbe un sistema
trambi i casi la sicurezza ottenuta dipende escifrato...), oppure di far «incontrare» X e Y
senzialmente dall’irreversibilità delle modifiprima che i due si scambino le informazioni
cazioni impresse sul documento con la scritriservate, in modo che essi possano concortura o con le eventuali cancellazioni/abrasiodare una chiave utile per i messaggi da inni nel caso di un tentativo di alterazione dei
viare in tempo futuro.
dati. In tale contesto la crittografia tradizionaIl crittogramma c = Cxy(m) trasmesso da X a Y
le deve risolvere il solo problema della risersarà dunque interpretabile solo dall’utente Y,
vatezza del messaggio.
l’unico in grado di applicare allo stesso la
Se viceversa si intende impiegare, in luogo
chiave di decifrazione Dxy che consentirà di
M. Hellman, tra gli ideatori del sistema
del supporto cartaceo, un supporto informacrittografico a chiave pubblica (1976).
riottenere il messaggio in chiaro tramite la
tivo digitale (p.es. quello delle memorie baseguente catena di trasformazioni:
sate sulle tecnologie elettroniche, che possono essere facilmente alterate senza che venga lasciata traccia
Dxy C xy ( m ) = Cxy−1C xy ( m ) = m .
alcuna), allora risulta evidente la necessità di usare tecniche
crittografiche sofisticate anche per l’autenticazione e l’inteSi osservi che la condivisione di una chiave segreta risolve in
grità dei dati.
pratica anche il problema degli attacchi di impersonazione,
Un ulteriore problema di ordine pratico, relativo alla gestiopoiché l’acquisizione di un crittogramma decifrabile fornisce
ne delle chiavi segrete, emerge quando la crittografia viene
una prova indiretta dell’autenticità della sorgente, la sola che
usata in un contesto in cui ci sono numerosi utenti (p. es. la
possa aver prodotto un crittogramma che porta a una decirete Internet). Infatti, all’aumentare del numero n di utenti
frazione significativa. L’esigenza di mantenere segrete enbisogna aumentare in modo quadratico (n(n − 1)/2) il numetrambe le chiavi deriva dalla circostanza che Dxy = C xy−1 si riro delle chiavi da assegnare al sistema, e questo perché ciacava immediatamente da Cxy, e ciò comporta il problema delscuna coppia di utenti ha diritto di mantenere riservati i
la loro gestione e assegnazione in una rete con più utenti.
messaggi non solo rispetto agli utenti esterni alla rete, ma anAl contrario nella crittografia a chiave asimmetrica ci si basa
che rispetto a quelli interni. Nel tentativo di risolvere questi
sull’ipotesi che la chiave di decifrazione non sia ricavabile da
problemi, nel 1976 W. Diffie e M. Hellman concepirono un
quella di cifratura. Volendo stabilire un’analogia con le chiavi
nuovo approccio alla sicurezza, tanto semplice quanto gee le serrature del mondo reale, il sistema simmetrico è equiniale, che rivoluzionò letteralmente l’intera impostazione
valente all’uso di una serratura semplice (per esempio queldello schema crittografico. Essi immaginarono uno schema
la di un baule che contiene il messaggio) che può essere aperin cui la chiave di decifrazione del messaggio potesse essere
ta da due copie della stessa chiave, una assegnata al mittenresa diversa e non direttamente ottenibile da quella di cifrate e una al ricevente, mentre il sistema asimmetrico si avvatura, che potrebbe quindi essere pubblicata associandola al
le di un lucchetto, che può essere chiuso (cifratura) da chiunnome del destinatario e usata da tutti; in tal modo si elimina
que, ma aperto (decifrazione) solo da chi possiede la chiave.
alla radice il problema della gestione delle chiavi. Il loro laLa riduzione a livello matematico di una funzionalità asimvoro fu pubblicato col titolo «New directions in Cryptography»
metrica come quella assicurata da un lucchetto corrisponde
e diventò la pietra miliare della crittografia moderna. Naca una funzione di cifratura Cy, dalla quale non sia facilmente
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
7
studi
calcolabile la funzione inversa di decifrazione C y−1 . Chiameremo unidirezionale una funzione con queste caratteristiche.
Questo nuovo punto di vista offre il vantaggio di poter pubblicare la chiave di cifratura Cy di un certo utente Y , poiché
la sua conoscenza non consente di ricavare la chiave inversa
di decifrazione Dy = C y−1 , che rimane segreta e nota solo a Y.
Se dunque X vuole spedire un messaggio m a Y, egli deve
consultare l’elenco pubblico delle chiavi di cifratura, curato
p.es. dal gestore della rete, leggere la Cy e applicare la trasformazione Cy(m), che costituisce il crittogramma da inviare sul canale di trasmissione:
X : c = C y ( m ) CANALE

→ Y : Dy ( c ) = Dy C y ( m ) = C y−1C y ( m ) = m .
messaggio firmato applica la chiave pubblica Cy di Y, ottenendo il crittogramma c = C y ( f x ) , che viene spedito sul canale. L’unico utente in grado di decifrare c è Y , che possiede
la chiave di decifrazione Dy mediante la quale estrae il messaggio firmato di X, che può essere autenticato applicando la
funzione di cifratura pubblica Cx che Y legge dall’elenco ufficiale degli utenti della rete. Ecco la procedura completa:
firma
m, X , d 
→ f x = Dx ( m, X , d )
cifratura

→ c = C y ( f y ) = C y Dx ( m, X , d )
canale

→
c → Dy ( c ) = Dy C y Dx ( m, X , d ) = f x
decifrazione
.
f x autenticaz

→ C x ( f x ) = C x Dx ( m, X , d ) = m, X , d .
Le funzioni unidirezionali
Rimane ora aperto il problema di individuare quelle funzioni matematiche speciali, di tipo unidirezionale, che possano
In ricezione l’utente legittimo Y , che conosce (ed è il solo) la
essere impiegate con profitto in amchiave inversa Dy, la applica al critbito crittografico per rendere la chiatogramma ricevuto riottenendo il
ve di decifrazione non deducibile da
messaggio. La sicurezza di tutto il
quella di cifratura. Diremo che la
procedimento si basa sull’ipotesi
funzione f : X → Y è unidirezionale
che il problema di ricavare la chia(one-way function) se per ogni eleve inversa da quella diretta sia
mento x di X è computazionalmente
computazionalmente intrattabile.
«facile» calcolare f ( x ) , ma per quaL’approccio asimmetrico offre il
si tutti gli elementi y di f ( X ) il prodestro per risolvere anche il problema di ricavare x tale che f ( x ) = y è
blema dell’autenticazione del mitcomputazionalmente «intrattabile»,
tente, poiché in un contesto a chiacioè richiede un tempo di calcolo
ve pubblica chiunque può usare la
esponenziale, in grado di debordare
Cy per trasmettere un messaggio
W. Diffie, autore con Hellman del sistema a chiave pubblica.
asintoticamente le capacità di calcolo
segreto a Y , impersonando X. Per
di qualunque elaboratore. Una funottenere l’autenticazione del mitzione unidirezionale è dunque pesantemente asimmetrica
tente, lo stesso deve dimostrare al ricevente di essere l’unico
nella sua computazione, poiché si effettua facilmente il calin grado di effettuare una certa operazione, per esempio gecolo diretto di f ( x ), mentre rimane proibitivo il calcolo innerare un crittogramma la cui decifrazione porti a un breve
verso f −1 ( y ).
messaggio col nome proprio del mittente. Sempre impieganNel seguito faremo due esempi molto significativi di funziodo Cx e Dx, X applica Dx al proprio nome X, ottenendo la firni unidirezionali, relativi al problema del logaritmo discreto e
ma numerica f x = Dx ( X ) , che viene inviata sul canale. Dala quello della fattorizzazione in primi. Il primo risale al celebre
l’altra parte Y applicherà la chiave pubblica Cx a quanto riarticolo
di Diffie e Hellman precedentemente citato, e su di
cevuto, ottenendo l’autenticazione di X:
esso si basano altri protocolli crittografici; nel nostro caso lo
useremo come tecnica crittografica a chiave pubblica per
X : f x = Dx ( X ) canale

→ Y : C x ( f x ) = C x Dx ( X ) = X .
concordare una chiave segreta da usarsi in un sistema a chiave simmetrica. Il secondo esempio, quello della fattorizzaDunque chiunque può controllare l’identità di X e solo X è in
zione in primi, è il più importante dal punto di vista delle
grado di generare la propria firma f x . Poiché tale firma poapplicazioni, poiché su di esso si basa il cifrario RSA, ampiatrebbe però essere reimpiegata da un falsificatore in un momente usato in Internet.
mento successivo, bisogna associare all’identità di X alcune
informazioni di carattere temporale o contestuale, che possano far emergere l’eventuale truffa (per esempio data, ora e
Il logaritmo discreto e la condivisione
luogo).
Dovendo infine coniugare segretezza e autenticazione bisodelle chiavi
gna concatenare le due procedure viste prima secondo lo
schema seguente: X applica a m la propria chiave privata Dx,
Nel logaritmo discreto la funzione unidirezionale è l’elevaottenendo la firma «contestuale» f x = Dx ( m, X , d ); a questo
mento a potenza degli interi in un insieme finito in cui le
8
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
studi
operazioni vanno fatte modulo un certo numero primo p
(funzione diretta). La corrispondente funzione inversa, computazionalmente intrattabile, è data dal calcolo del logaritmo. Ad oggi non sono noti algoritmi asintoticamente efficienti per questo problema e dunque, quando la dimensione
del gruppo di interi tende a diventare molto grande, anche i
migliori algoritmi disponibili fanno esplodere il numero di
passi necessari per le istanze più difficili. Facciamo p.es. riferimento agli interi {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, e chiamiamo
Z11 tale insieme (è un campo finito). Eseguiamo ora le somme
e le moltiplicazioni riducendo i risultati modulo 11 (prendiamo cioè il resto della divisione del numero ottenuto per 11);
seguendo questa regola
3•4 = 12 1(mod 11), 7+7 = 14 3(mod 11) e così via.
In Z11 esiste un elemento a, p.es il numero 7, dalle cui potenze si ottengono (mod 11) tutti gli elementi non nulli dell’insieme: 70 1, 71 7, 72 5, 73 2, 74 3, 75 10, 76 4, 77 6, 78 9, 79 8, 710 1. Si dice che 7 è un elemento primitivo del campo. Nella tabella 1 è riportato il valore del logaritmo in base 7 di b. Gli elementi non nulli del campo costituiscono un gruppo moltiplicativo Z11∗ di ordine 11−1. Il problema del logaritmo discreto si formula allora nel modo seguente:
Assegnati p primo, a elemento primitivo di Z P e b ∈ Z P∗ si trovi l’unico intero x, 0 ≤ x ≤ p − 2 tale che
a x ≡ b mod p .
Useremo per il logaritmo finito x la notazione log a b
b
1 2 3 4 5 6 7 8 9 10
x = log 7 b 0 3 4 6 2 7 1 9 8 5
Tabella 1. Tavola dei logaritmi in Z11.
Il problema del logaritmo finito può essere usato per realizzare un protocollo di condivisione di una chiave (protocollo di
Diffie-Hellman) da impiegarsi per un cifrario a chiave segreta. Anche in questo caso si sceglie a priori un numero primo
elevato, p, e un elemento a primitivo di Z ∗p . I passi sono i seguenti:
1. L’utente X sceglie un esponente x e pubblica a x mod p.
2. L’utente Y sceglie un esponente y e pubblica a y mod p.
3. I due utenti possono ora condividere la chiave segreta
y
mod p
k = a xy mod p, che può essere calcolata da Y come a x
x
e da X come a y
mod p.
È ovvio che la sicurezza del sistema si basa sull’impossibilità
pratica di calcolare il logaritmo. Si noti per altro che in questo
caso manca la possibilità di autenticare l’interlocutore, poiché il frodatore potrebbe impersonare uno dei due utenti con
pieno successo. Il problema si può ovviare coinvolgendo
un’Autorità Garante che asseveri la pubblicazione delle chiavi.
( )
( )
La scomposizione in primi e il cifrario RSA
L’altro importante problema che analizzeremo è quello della
scomposizione di un numero nei suoi fattori primi; esso può
essere enunciato nel modo seguente:
Assegnato un numero intero n, trovare la sua scomposizione
in fattori primi
n = p1n1 p2n2 ... prnr
con pi fattori primi e ni ≥ 1 .
La scomposizione in primi è sicuramente la più importante
tra le funzioni unidirezionali d’interesse per la crittografia
asimmetrica. Su di esso si basa il cifrario RSA (acronimo di
Rivest, Shamir e Adleman, gli inventori del cifrario) che risale al 1978, ma che si usa tuttora per le transazioni su Internet, e un protocollo di firma numerica che impiega la struttura del sistema RSA.
In questo caso l’unidirezionalità della funzione deriva dall’asimmetria tra il problema di costruire n = pq a partire da p e
q primi (molto grandi), operazione computazionalmente facile, e il problema di scomporre n nei suoi fattori p e q, per il
quale non esistono algoritmi efficienti, almeno quando i fattori in gioco sono molto grandi.
Senza entrare nei dettagli tecnici del cifrario, ci limitiamo a
dare lo schema generale della cifratura e della decifrazione:
1. Si generano, con tecniche opportune, due primi elevati p e
q, producendo n = pq;
2. Si calcola

1  1 
Φ ( n ) = n  1 −   1 −  = ( p − 1) ( q − 1) ,
p  q 

dove Φ ( n ) è la funzione di Eulero, che esprime il numero di
interi minori di n e primi con esso.
3. Si sceglie x coprimo con Φ ( n ) e se ne calcola il reciproco
mod Φ ( n ); esistenza e unicità sono garantite dal fatto che sono coprimi xy ≡ 1 mod ( Φ ( n ) ) ( x, Φ ( n ) ) = 1.
4. n e y costituiscono la chiave pubblica;
Φ ( n ) , p, q, x sono la chiave privata.
5. Se m ∈ Z n è il messaggio, cifratura e decifrazione si eseguono nel modo seguente
Cifratura c ≡ m y mod n
Decifrazione cx mod n = m xy mod n = ... = m .
Come riflessione conclusiva possiamo sottolineare il fatto
che la sicurezza di un sistema crittografico basato sulla chiave pubblica non può avere un carattere assoluto, e questo per
almeno due motivi. Innanzitutto nessuno può escludere che
in un futuro più o meno prossimo qualcuno riesca a trovare algoritmi efficienti per risolvere le istanze difficili di un problema quale il logaritmo finito, la scomposizione in primi o altro.
Ma anche ammettendo che tali algoritmi non si trovino, resta
l’insidia di una forzatura che sfrutti qualche debolezza occulta del cifrario, come in effetti è già successo in qualche caso
(p.es. il famoso knapsack cipher, associato al problema delle
somme parziali), anche se il passare degli anni rende sempre
meno probabile una tale evenienza. Tuttavia il vero punto debole dei sistemi informatici basati su protocolli crittografici
non sta tanto nell’apparato crittografico, quanto piuttosto nelle smagliature del sistema nel suo complesso, inteso come calcolatore, col suo sistema operativo, che opera su una rete. È
proprio nelle pieghe dell’interazione tra questi elementi che la
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
9
studi
BIBLIOGRAFIA
spia trova spesso accesso al sistema, per compiere atti illegali
di varia natura, che possono intaccare la segretezza, l’autenticazione e la non-ripudiabilità dei messaggi, ma anche altri elementi sensibili del sistema, quali i suoi files o la gestione dei
processi interni. Tutti questi problemi di sicurezza informatica
verranno affrontati in un articolo successivo.
[1] F. Fabris, Teoria dell’Informazione, codici, cifrari, Bollati Boringhieri, Torino 2001.
[2] P. Ferragina, F. Luccio, Crittografia. Principi, algoritmi, applicazioni, Bollati Boringhieri, Torino 2001.
[3] A. Sgarro, Crittografia - tecniche di protezione dei dati riservati, Muzzio, Padova 1993.
Francesco Fabris - Università di Trieste
IL RUOLO DELLA CRITTOGRAFIA
NELLA SICUREZZA INFORMATICA
Alberto Bartoli
I
Internet ed il Web sono sempre più utilizzati per effettuare operazioni con valenza legale, economica o finanziaria, quali ad
esempio l’apposizione di una «firma digitale» ad un documento elettronico, l'acquisto di biglietti aerei, l'interazione con un
conto corrente bancario. La crittografia ha contribuito in modo
decisivo alla diffusione di questo tipo di servizi, diventati parte
della vita quotidiana di milioni di persone. La crittografia permette infatti di introdurre in Internet alcune proprietà di cruciale importanza per le transazioni legali e finanziarie e che possono essere riassunte informalmente come segue:
•
Segretezza: ogni messaggio è comprensibile solo dall’entità a cui è destinato ed è quindi incomprensibile se intercettato durante il transito.
•
Integrità: ogni messaggio alterato in modo fraudolento durante il transito viene scartato automaticamente.
•
Autenticazione: l’entità che ha generato un messaggio è identificabile con certezza.
•
Non ripudio: l’entità che ha generato un messaggio
non può in seguito negare di avere generato esattamente
quel messaggio.
L’effettivo ruolo della crittografia nelle applicazioni informatiche, peraltro, è spesso frainteso. Si tende infatti a considerare il mero uso della crittografia come sinonimo di «garanzia assoluta di sicurezza». Purtroppo questa conclusione
è del tutto infondata ed in questo breve contributo cerchere10
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
mo di spiegarne il motivo. In estrema sintesi, la sicurezza di
un’applicazione informatica richiede la soluzione di numerosi problemi. La crittografia risolve alcuni di essi ma è del
tutto inutile per altri. Nella pratica, gli attaccanti sfruttano
proprio i numerosi problemi irrisolti.
Esempio
Consideriamo per fissare le idee un sito web. Ai fini di questa discussione un sito web può essere considerato come
composto da tre moduli: (1) Sistema operativo; (2) Programma web server; (3) Applicativo web. Ogni volta che il sito riceve una richiesta inviata da un browser, questa passa dal sistema operativo, poi dal programma web server ed infine
dall’applicativo web. Questo esegue l’operazione descritta
nella richiesta e produce una risposta, che percorre il cammino inverso. Le tecniche crittografiche possono essere utilizzate in uno o più dei tre moduli. Ai fini di questa discussione si può assumere che siano utilizzate in tutti i moduli.
Supponiamo che un attaccante trasmetta una richiesta fraudolenta, ad esempio, «cancella tutti i file dal tuo disco». L’applicativo web deve: (i) classificare ogni richiesta in «legittima» oppure «non legittima»; e (ii) eseguire solo le operazioni associate alle richieste «legittime».
Il problema fondamentale è causato dagli errori software. La
studi
classificazione delle richieste deve essere programmata nel
software ma ogni software può contenere errori. Ad esempio,
potrebbe avere degli errori a causa dei quali non gestisce correttamente alcune richieste – potrebbero essere le richieste
troppo lunghe, oppure quelle che contengono al proprio
interno una particolare sequenza di caratteri. In un applicativo web che ha questi errori, pertanto, esistono richieste
legittime che non saranno eseguite e, purtroppo, anche richieste illegittime che invece saranno eseguite. Un attaccante a conoscenza dell’esistenza di questo problema dell’applicativo web può quindi fare eseguire operazioni illegittime.
Molto spesso, inoltre, la portata di questi errori è tale che l’attaccante può scegliere le operazioni in modo del tutto arbitrario e senza alcuna limitazione.
L’importanza di quanto appena discusso è enorme. Se un applicativo web ha particolari errori software ed un attaccante ne
è a conoscenza, l’attaccante può acquisire il controllo completo
del sito web. Ciò può essere «probabile» o «poco probabile».
Quello che è assolutamente certo, comunque, è che l’utilizzo di
tecniche crittografiche non fornisce alcuna forma di protezione
nei confronti di questo problema. Si tratta di un problema del
tutto indipendente dai problemi per i quali la crittografia è invece uno strumento potentissimo – segretezza del contenuto di
un flusso di byte tra due nodi di Internet, ad esempio.
La discussione precedente si è focalizzata sull’applicativo
web. Gli stessi identici problemi si possono verificare negli altri
due moduli del sito web: programma web server, sistema operativo. Ognuno di questi moduli deve elaborare le richieste provenienti dall’esterno. L’elaborazione è codificata nel software ed
ogni software può contenere errori. L’effetto di un errore software è, in linea molto generale e del tutto informale, un «comportamento errato» nel senso di comportamento non aderente alle
specifiche. Per alcune tipologie di errori, l’effetto è l’esecuzione
di operazioni che non dovrebbero essere eseguite. Pertanto, anche il programma web server ed il sistema operativo possono essere soggetti ad errori a causa dei quali un attaccante può forzare l’esecuzione di operazioni illegittime, molto spesso senza alcuna limitazione sulla natura di queste operazioni.
Qualche anno fa, ad esempio, era possibile forzare uno dei
programmi web server più diffusi ed eseguire un comando
qualsiasi, semplicemente appendendo quel comando al termine di una richiesta costruita in modo opportuno. Era stata
infatti individuata una particolare sequenza di circa 30 caratteri che quel web server gestiva in modo errato. Ad esempio,
per provocare la cancellazione di tutte le informazioni sul disco del web server era sufficiente appendere «format+c:» al
termine di quella sequenza ed inviare il tutto al web server.
Vulnerabilità
Il termine tecnico per gli errori che possono minare la sicurezza di un sistema è vulnerabilità. Nella sezione precedente
si è accennato alle vulnerabilità software. Un attaccante po-
trebbe però forzare l’esecuzione di operazioni
«illegittime» anche in queste situazioni:
•
Sistema implementato perfettamente, ma progettato male (presenza di
vulnerabilità di progetto o di specifica).
•
Sistema progettato ed implementato perfettamente, ma
configurato male (presenza di vulnerabilità di configurazione).
Le vulnerabilità possono essere più o meno pericolose, in dipendenza di numerosi fattori che non è possibile approfondire in questa sede (vedi ad esempio http://nvd.nist.gov/cvss.cfm). Talvolta un attacco può avere successo sfruttando una singola vulnerabilità. Molto più spesso è necessario sfruttare un insieme
di vulnerabilità.
In questo contributo ci focalizzeremo esclusivamente sulle
vulnerabilità software: sono quelle più dannose nella pratica ed appaiono legate in modo indissolubile alla natura stessa del software, pertanto è molto difficile ipotizzarne la
scomparsa nel futuro.
Un esempio concreto chiarirà ulteriormente il problema.
Nell’ottobre 2003 sono state rese note varie vulnerabilità presenti in molte implementazioni del protocollo TLS/SSL
(http://www.kb.cert.org/vuls/id/104280). Questo protocollo è utilizzato praticamente in ogni transazione finanziaria
effettuata via web e-banking, acquisto di biglietti aerei, prenotazioni alberghiere e così via. TLS/SSL utilizza la crittografia a chiave pubblica (asimmetrica) e la crittografia a chiave privata (simmetrica) per garantire le proprietà di segretezza, integrità ed autenticazione citate in precedenza.
L’impatto delle vulnerabilità citate era il seguente:
•
Remote execution of arbitrary code. Un attaccante remoto poteva forzare entrambi i partecipanti––browser e/o
webserver––ad eseguire codice scelto in modo arbitrario dall’attaccante. L’attaccante poteva cioè assumere il controllo
completo dei partecipanti.
•
Denial of service. Un attaccante remoto poteva chiudere a proprio piacimento i programmi coinvolti.
•
Disclosure of sensitive information. Un attaccante remoto poteva estrarre informazioni crittografiche sensibili, ad
esempio la chiave privata utilizzata per l’autenticazione.
Da notare che queste vulnerabilità erano presenti nelle implementazioni TLS/SSL di circa 60 fabbricanti, tra i quali CISCO, Microsoft, IBM, Oracle, Sun (in ordine alfabetico); nell’Ottobre 2003, momento in cui è stata resa nota la vulnerabilità, l’utilizzo massiccio di Internet per operazioni di carattere
finanziario era già diffuso su scala planetaria da alcuni anni.
Questa vulnerabilità nelle implementazioni di TLS/SSL non
è stata un episodio singolo. Nel Novembre 2007, infatti, la ricerca della stringa «SSL» nel vulnerability database del
CERT (http://www.kb.cert.org/vuls/) fornisce più di 30
vulnerabilità analoghe.
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
11
studi
Dimensione del problema
Crittografia e sicurezza
La vulnerabilità appena discussa permette di comprendere
più facilmente la relazione tra crittografia e sicurezza informatica. È del tutto evidente, infatti, che avere fortissime garanzie in termini di riservatezza, integrità, autenticazione––
grazie alla crittografia––è praticamente inutile se un attaccante remoto può assumere il controllo completo del calcolatore.
Da un altro punto di vista, la crittografia contribuisce a risolvere alcuni problemi di sicurezza. Non tutti. La crittografia rende cioè alcune tipologie di attacco estremamente complicate o addirittura senza speranza di successo. È però del
tutto inutile per altre tipologie.
Quali componenti software possono
essere vulnerabili?
Le vulnerabilità possono essere presenti praticamente in ogni
componente software: (i) sistema operativo, (ii) programmi
per gli amministratori di sistema, (iii) programmi applicativi.
Non esiste nessuna tipologia di sistema operativo, programma di sistema, programma applicativo che possa considerarsi immune a priori da questo tipo di problemi potenziali. Le
vulnerabilità sono infatti causate da errori software e possono essere sfruttate da input creati appositamente per trarre
vantaggio da tali errori. Non esiste software che possa considerarsi immune a priori dagli errori. Non esiste software che
possa essere utilizzabile senza avere alcuna forma di input.
Per quanto riguarda i programmi applicativi, si riportano
di seguito due esempi con l’unico scopo di rendere manifesta l’estensione del problema:
•
RealPlayer è un programma per la lettura di file audio e video. È molto diffuso ed è indispensabile per la visualizzazione di alcuni formati audio e video molto diffusi sul
web. Ha un errore nella gestione dei nomi delle «playlist»
che può permettere ad un attaccante remoto di eseguire codice arbitrario sulla macchina che esegue RealPlayer
(http://www.kb.cert.org/vuls/id/871673, Ottobre 2007).
•
Kodak Image Viewer è un programma molto diffuso per la visualizzazione di immagini e foto. È il visualizzatore di default in Microsoft Windows 2000. Un attaccante
può costruire immagini che gli permettono di acquisire il
controllo completo del sistema su cui sono visualizzate ad
esempio a seguito dell’apertura di un attachment e-mail
(http://www.kb.cert.org/vuls/id/180345, Ottobre 2007).
In altre parole, il mero utilizzo di informazioni multimediali (audio, foto, video) può essere sufficiente a permettere ad
un attaccante di acquisire il controllo completo del sistema.
Ogni altra tipologia di software, senza alcuna eccezione, può
presentare vulnerabilità analoghe.
12
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
L’ampiezza del problema delle vulnerabilità può essere apprezzata su vari siti web, ad esempio il National Vulnerability Database del National Institute of Standards and Technologies degli Stati Uniti (http://nvd.nist.gov).
Il 10 Novembre 2007 erano state catalogate quasi 28000 vulnerabilità per più di 12800 prodotti, con una media di 15 nuove
vulnerabilità pubblicate ogni giorno. La sezione «statistics»
permette di effettuare analisi statistiche sul database delle vulnerabilità. Le vulnerabilità potenzialmente più pericolose, catalogate come «High severity», sono più di 10000 (diecimila).
Sono proprio inevitabili?
La prima reazione di chi inizia a riflettere sul fenomeno
delle vulnerabilità di solito è simile a questa: «ok, basta che
gli sviluppatori di software facciano un po’ più di attenzione». Il
fenomeno è cioè percepito come una sorta di incidente temporaneo che diventerà presto irrilevante grazie al progredire della tecnologia. Purtroppo l’esperienza ha ampiamente
dimostrato che questo ottimismo non è affatto giustificato.
Il primo problema di sicurezza su larga scala si verificò nel
1998. Il cosiddetto Internet Worm bloccò in pochissime ore
una frazione molto elevata dei server di posta elettronica in
Internet, sfruttando una particolare tipologia di errore chiamata buffer overflow presente in numerosi server email dell’epoca. Un software con un errore di questo genere esegue
qualsiasi operazione gli sia sottoposta da un attaccante remoto, per motivi ai quali in questa sede non è neanche possibile accennare.
Praticamente ogni sviluppatore software di un certo livello
conosce il problema del buffer overflow. Ogni grande azienda produttrice di software dedica risorse molto ingenti alla
prevenzione di questa ben nota tipologia di errori, la cui
scoperta provoca notevoli danni finanziari e di immagine.
Nonostante tutto questo, nel corso dei quasi venti anni trascorsi dall’Internet Worm gli errori buffer overflow sono
stati praticamente una costante di ogni nuovo software sviluppato. Probabilmente non è possibile individuare neanche un mese in cui non si sia scoperto un nuovo errore buffer overflow. Praticamente ognuno dei software più diffusi
che sono stati sviluppati da allora è stato affetto da almeno
un errore buffer overflow. Ironicamente, uno dei virus che si
sono propagati nel 2007 si è diffuso proprio a causa di un errore buffer overflow presente in uno dei software anti-virus
più diffusi.
Vulnerabilità: sconfitta della crittografia?
La vulnerabilità di alcune implementazioni di TLS/SSL appare introdurre una contraddizione: ciò implica che la crittografia «non funziona»? Implica cioè che esistono degli errori
studi
nei procedimenti matematici alla base delle tecniche crittografiche utilizzate in TLS/SSL?
La risposta a questa domanda ovviamente è negativa, ma i
motivi sono sottili ed hanno implicazioni profonde. La
crittografia garantisce alcune proprietà che si basano su
numeri memorizzati all’interno di un calcolatorele chiavi di
cifratura, decifratura, firma digitale e così via. Ad esempio,
la proprietà di riservatezza potrebbe essere formulata come «un messaggio cifrato con la chiave KX può essere decifrato
solo da un’entità in possesso della stessa chiave KX; entità non in
possesso di KX non possono ottenere nessuna informazione sul
contenuto del messaggio». Le applicazioni pratiche della crittografia necessitano invece di proprietà basate su entità
esterne al calcolatore, non su numeri interni al calcolatore.
Ad esempio, la proprietà di riservatezza deve avere in pratica una formulazione analoga a questa: «un messaggio cifrato con la chiave condivisa tra me e la mia banca è comprensibile solo a me ed alla mia banca». Le entità esterne al calcolatore (utenti, organizzazioni, istituzioni e così via) in gergo
sono chiamate subject.
Ogni applicazione pratica della crittografia deve quindi effettuare un’associazione tra chiavi (numeri interni al calcolatore) e subject (entità esterne). Ad esempio, «la chiave KX è nota solo al subject Alberto Bartoli ed al subject BancaDiPaperopoli».
Ciò permette di estendere ai subject le proprietà che la crittografia garantisce per sua stessa natura solo alle chiavi.
Il punto cruciale è che l’estensione è valida solo se le associazioni chiavi-subject sono vere. Ad esempio, se KX fosse nota anche ad un attaccante, allora le proprietà basate sulle entità esterne non sarebbero più garantite: un messaggio cifrato con KX sarebbe infatti comprensibile anche all’attaccante.
Più in generale, ci sono tre asserzioni in gioco:
•
AK, espressa in termini di chiavi.
•
AKS, espressa in termini di chiavi e subject.
•
AS, espressa in termini di subject. Descrive le proprietà di interesse pratico.
Le asserzioni sono costruite in modo che dalla verità di AK e
di AKS discende necessariamente la verità di AS. Mentre la verità di AK è garantita dalla crittografia, la verità di AKS non
può essere garantita: non esiste una tecnologia in grado di
associare in modo infallibile un dato interno al calcolatore
con un’entità esterna. È sempre possibile, in linea di principio, che un subject riesca ad accedere ad un dato (chiave) al
quale non dovrebbe accedere.
Pertanto AKS è del tutto equivalente ad una ipotesi: se AKS è
vera, allora anche la proprietà di interesse AS è vera. Se AKS
non è vera, allora non è possibile concludere se AS è vera o
meno. Le proprietà della crittografia (AK) sono vere in ogni
caso, indipendentemente dalla verità o meno delle associazioni (AKS).
In altre parole: la crittografia garantisce alcune proprietà
molto importanti; queste proprietà sono effettivamente utilizzabili in pratica solo se alcune ipotesi sono vere; nessuna
tecnologia può però garantire che queste ipotesi siano vere.
Si parte dal presupposto che lo siano. Tutte le applicazioni
pratiche della crittografia hanno pertanto alla base una sorta
di atto di fede intrinsecamente non dimostrabile. La tecnologia può solo rendere l’atto di fede più o meno giustificato,
non può mai sostituirlo.
Firma digitale
Una delle applicazioni pratiche della crittografia è la firma digitale. La normativa legale di molti stati, compreso il nostro,
assegna piena validità legale a documenti elettronici «firmati» da subject, quali individui, enti, istituzioni. Il procedimento permette infatti di estendere ai documenti elettronici
le necessarie garanzie di integrità, autenticazione e non ripudio, richieste da secoli per i documenti cartacei.
La percezione diffusa di questa tecnologia è che la sua solidità sia garantita dalla crittografia. La realtà è invece completamente diversa. Come abbiamo visto, ogni utilizzo pratico
della crittografia si basa su delle associazioni tra subject e
chiavi e nessuna tecnologia può garantire in senso matematico che queste associazioni siano vere. Anche l’uso della firma digitale, quindi, ha alla base una sorta di atto di fede, che
purtroppo è spesso inconsapevole.
È importante sottolineare anche che il nome assegnato al
procedimento è particolarmente fuorviante (il problema è
presente anche nelle altre lingue, non solo nell’italiano). Il
termine «firma», infatti, implica un’azione consapevole e legata in modo indissolubile alla volontà di chi firma.
Chiunque utilizzi un calcolatore quotidianamente, però, sa
benissimo che un calcolatore spesso esegue azioni e prende
decisioni che non coincidono con la nostra volontà. Molte di
queste azioni e decisioni, inoltre, avvengono internamente al
calcolatore in maniera nascosta alla nostra volontà. Quanto
discusso nelle sezioni precedenti, infine, ha reso evidente che
il calcolatore può eseguire azioni provocate dalla volontà di
altri, anche di attaccanti remoti. Ciò nonostante, individui ed
organizzazioni sono sempre più portati ad assumere responsabilità legale per azioni e decisioni prese da un calcolatore.
Certamente nessun’altra tecnologia, in nessun altro momento storico, ha dato atto a questa separazione tra atti consapevoli della volontà e responsabilità legale.
Alberto Bartoli
Università di Trieste
Chiunque utilizzi un calcolatore
quotidianamente sa che spesso esegue
azioni e prende decisioni che non
coincidono con la nostra volontà.
NUOVA SECONDARIA - N. 7 2008 - ANNO XXV
13