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