...

Sicurezza dei Dati e Comunicazione Segreta

by user

on
Category: Documents
26

views

Report

Comments

Transcript

Sicurezza dei Dati e Comunicazione Segreta
L’arte di proteggere
le proprie informazioni
e comunicarle segretamente
Sicurezza dei Dati
e Comunicazione Segreta
Con il termine sicurezza informatica si intende quel ramo dell’informatica che
si occupa dell’analisi delle vulnerabilità, del rischio, delle minacce e della successiva
protezione dell’integrità logico-funzionale (software) di un sistema informatico e
dei dati in esso contenuti o scambiati in una comunicazione con un utente. Tale
protezione è ottenuta attraverso misure di carattere organizzativo e tecnologico
tese ad assicurarne l’accesso solo ad utenti autorizzati (autenticazione), la fruizione
(disponibilità) di tutti e soli i servizi previsti per quell’utente nei tempi e nelle
modalità previste dal sistema, l’oscuramento (cifratura) e la correttezza (integrità)
dei dati scambiati in una comunicazione nonché la protezione del sistema da attacchi
di software malevoli.
Sicurezza Informatica
I principali aspetti di protezione del dato sono la confidenzialità (o riservatezza),
l’integrità dei dati e la disponibilità.
La protezione dagli attacchi informatici viene ottenuta agendo su più livelli:
innanzitutto a livello fisico e materiale, ponendo i server in luoghi il più possibile
sicuri, dotati di sorveglianza e/o di controllo degli accessi; anche se questo accorgimento fa parte della sicurezza normale e non della sicurezza informatica è sempre il
caso di far notare come spesso il fatto di adottare le tecniche più sofisticate generi
un falso senso di sicurezza che può portare a trascurare quelle semplici.
Il secondo livello è normalmente quello logico che prevede l’autenticazione e
l’autorizzazione di un’entità che rappresenta l’utente nel sistema. Successivamente
al processo di autenticazione, le operazioni effettuate dall’utente sono tracciate in file
di log. Questo processo di monitoraggio delle attività è detto audit o accountability.
Per evitare invece gli eventi accidentali, non esistono soluzioni generali, ma
di solito è buon senso dell’utente fare una copia di backup del sistema, fare backup periodico di dati e applicazioni in modo da poter fronteggiare qualsiasi danno
imprevisto.
Quando si parla di sicurezza informatica spesso si distinguono i concetti di
sicurezza passiva e di sicurezza attiva.
Per sicurezza passiva normalmente si intendono le tecniche e gli strumenti di
tipo difensivo, ossia quel complesso di soluzioni tecnico-pratiche il cui obiettivo è
quello di impedire che utenti non autorizzati possano accedere a risorse, sistemi,
impianti, informazioni e dati di natura riservata. Il concetto di sicurezza passiva
pertanto è molto generale: ad esempio, per l’accesso a locali protetti, l’utilizzo di
83
sicurezza
fisica
sicurezza
logica
backup
sicurezza
passiva
84
sicurezza
attiva
Sicurezza dei Dati e Comunicazione Segreta
porte di accesso blindate, congiuntamente all’impiego di sistemi di identificazione
personale, sono da considerarsi componenti di sicurezza passiva.
Per sicurezza attiva si intendono, invece, tutte quelle tecniche e gli strumenti
mediante i quali le informazioni ed i dati di natura riservata sono resi intrinsecamente
sicuri, proteggendo gli stessi sia dalla possibilità che un utente non autorizzato possa
accedervi (confidenzialità), sia dalla possibilità che un utente non autorizzato possa
modificarli (integrità).
è evidente che la sicurezza passiva e quella attiva siano tra loro complementari
ed entrambe indispensabili per raggiungere il desiderato livello di sicurezza di un
sistema.
Attacchi alla Sicurezza
attacchi
cracker
phishing
exploit
buffer
overflow
Le possibili tecniche di attacco sono molteplici, perciò è necessario usare contemporaneamente diverse tecniche difensive per proteggere un sistema informatico,
realizzando più barriere fra l’attaccante e l’obiettivo.
L’individuo che effettua l’attacco è denominato cracker. Tale termine indica
colui che si ingegna per eludere blocchi imposti da qualsiasi software al fine di trarne
profitto. Il cracking di un sistema può essere usato per diversi scopi secondari, una
volta guadagnato l’accesso di root nel sistema desiderato o dopo aver rimosso le
limitazioni di un qualsiasi programma.
Spesso l’obiettivo dell’attaccante non è rappresentato dai sistemi informatici in
sé, quanto piuttosto dai dati in essi contenuti, quindi la sicurezza informatica deve
preoccuparsi di impedire l’accesso ad utenti non autorizzati, ma anche a soggetti
con autorizzazione limitata a certe operazioni, per evitare che i dati appartenenti al
sistema informatico vengano copiati, modificati o cancellati.
Tra le azioni di attacco ai sistemi e ai dati da parte dei cracker troviamo il
phishing, l’exploit, il buffer overflow, il cracking, il backdoor, il port scanning, lo
sniffing, il keylogging e lo spoofing.
Il phishing è un tipo di truffa via Internet attraverso la quale un aggressore cerca
di ingannare la vittima convincendola a fornire informazioni personali sensibili. Si
tratta di una attività illegale che sfrutta una tecnica di ingegneria sociale: attraverso
l’invio casuale di messaggi di posta elettronica che imitano la grafica di siti bancari
o postali, un malintenzionato cerca di ottenere dalle vittime la password di accesso
al conto corrente, le password che autorizzano i pagamenti oppure il numero della
carta di credito. Il termine phishing è una variante di fishing (letteralmente pescare
in lingua inglese), probabilmente influenzato da phreaking e allude all’uso di tecniche
sempre più sofisticate per pescare dati finanziari e password di un utente.
Un exploit è un codice che, sfruttando un bug o una vulnerabilità di un software,
di un computer o di un sistema, porta all’acquisizione di privilegi che ne permettono
di acquisirne il controllo. Il buffer overflow è un tipo di exploit che può affliggere
un programma software. Consiste nel fatto che tale programma non controlla in
anticipo la lunghezza dei dati in arrivo, ma si limita a scrivere il loro valore in un
buffer di lunghezza prestabilita, confidando che l’utente (o il mittente) non immetta
più dati di quanti esso ne possa contenere: questo può accadere se il programma è
stato scritto usando funzioni di libreria di input/output che non fanno controlli sulle
Sicurezza dei Dati e Comunicazione Segreta
85
dimensioni dei dati trasferiti. Quando, per errore o per malizia, vengono inviati più
dati della capienza del buffer destinato a contenerli, i dati extra vanno a sovrascrivere
le variabili interne del programma, o il suo stesso stack; come conseguenza di ciò,
a seconda di cosa è stato sovrascritto e con quali valori, il programma può dare
risultati errati o imprevedibili, bloccarsi, o (se è un driver di sistema o lo stesso
sistema operativo) bloccare il computer
Con cracking si intende la modifica di un software per rimuovere la protezione
dalla copia, oppure per ottenere accesso ad un’area altrimenti riservata. La distribuzione di software così reso privo di protezione (detto warez) è generalmente
un’azione illegale a causa della violazione di un copyright.
Le backdoor in informatica sono paragonabili a porte di servizio (cioè le porte
sul retro) che consentono di superare in parte o in tutto le procedure di sicurezza
attivate in un sistema informatico o un computer entrando nel sistema stesso. Queste porte possono essere intenzionalmente create dai gestori del sistema informatico
(amministratori di rete e sistemisti) per permettere una più agevole opera di manutenzione dell’infrastruttura informatica da remoto, mentre più spesso da cracker
intenzionati a manomettere il sistema. Possono anche essere installate autonomamente da alcuni malware (come virus, worm o trojan), in modo da consentire ad
un utente esterno di prendere il controllo remoto della macchina senza l’autorizzazione del proprietario. Il port scanning è una tecnica informatica utilizzata per
raccogliere informazioni su un computer connesso ad una rete stabilendo quali porte
siano in ascolto su una macchina. Letteralmente significa scansione delle porte e
consiste nell’inviare richieste di connessione al computer bersaglio (soprattutto pacchetti TCP, UDP e ICMP creati ad arte): elaborando le risposte è possibile stabilire
(anche con precisione) quali servizi di rete siano attivi su quel computer.
Lo sniffing (dall’inglese, odorare) è l’attività di intercettazione passiva dei dati
che transitano in una rete telematica. Tale attività può essere svolta sia per scopi
legittimi (ad esempio l’analisi e l’individuazione di problemi di comunicazione o di
tentativi di intrusione) sia per scopi illeciti (intercettazione fraudolenta di password
o altre informazioni sensibili). I prodotti software utilizzati per eseguire queste
attività vengono detti sniffer ed oltre ad intercettare e memorizzare il traffico offrono
funzionalità di analisi del traffico stesso. Il keylogger è uno strumento di sniffing,
hardware o software in grado di intercettare tutto ciò che un utente digita sulla
tastiera del proprio, o di un altro computer.
Lo spoofing è un tipo di attacco informatico dove viene impiegata in qualche
maniera la falsificazione dell’identità (spoof). Esistono diversi tipi di attacchi spoofing a diversi livelli della pila OSI, ma in ogni caso si tratta di far credere alla vittima
che si è qualcosa di diverso: un hostname, un indirizzo ethernet o altro ancora.
Quando lo spoofing coinvolge il web (server applicativo, host server o protocolli
web) si parla di web spoofing. Nell’accezione più comune il web spoofing riguarda
la falsificazione di un server web per far credere ad un utente di essere connesso
ad un certo server mentre è connesso ad un server malevolo. La prima azione che
deve effettuare un attaccante per redirigere un client verso un server falso (anche
chiamato shadow server o server ombra) è di falsificare l’associazione tra l’indirizzo
web e l’indirizzo IP. Questa operazione viene effettuata tramite un attacco di dns
poisoning. A questo punto l’attaccante ha fatto credere al client che l’indirizzo del
cracking
backdoor
port
scanning
sniffing
keylogging
spoofing
86
malware
virus
worm
Sicurezza dei Dati e Comunicazione Segreta
server vero è quello invece del server falso. L’attaccante ha costruito in precedenza
un server falso che può contenere una copia del server vero (ogni pagina è stata
copiata in locale sul server ombra) oppure rigirare pagina per pagina le connessioni
del client verso il server vero. In entrambi questi casi quello che ottiene l’attaccante è
di fingersi il server vero, catturando credenziali di accesso, per esempio. La creazione
dello shadow server è uguale a ciò che si fa nel phishing, ma in questo caso c’è stato
un preventivo attacco diretto al client.
Nella sicurezza informatica gli attacci vengo spesso realizzati attraverso programmi automatici che rientrano nella categoria dei malware. Questo termine indica
genericamente un qualsiasi software creato con il solo scopo di causare danni più o
meno gravi ad un computer, ai dati degli utenti del computer, o a un sistema informatico su cui viene eseguito. Il termine deriva dalla contrazione delle parole inglesi
malicious e software e ha dunque il significato letterale di programma malvagio. A
questa categoria appartengono i virus, i worm, i trojan, i dailer e gli spyware.
Un virus è un software, appartenente alla categoria dei malware, che è in grado,
una volta eseguito, di infettare dei file in modo da riprodursi facendo copie di se
stesso, generalmente senza farsi rilevare dall’utente (sotto questo punto di vista il
nome è in perfetta analogia con i virus in campo biologico). Coloro che creano virus
sono detti virus writer.
Un worm (letteralmente verme) è una particolare categoria di malware in grado
di autoreplicarsi. è simile ad un virus, ma a differenza di questo non necessita di
legarsi ad altri eseguibili per diffondersi. Tipicamente un worm modifica il computer
che infetta, in modo da venire eseguito ogni volta che si avvia la macchina e rimanere
attivo finché non si spegne il computer o non si arresta il processo corrispondente.
Il worm tenta di replicarsi sfruttando Internet in diverse maniere: spesso i mezzi di
diffusione sono più di uno per uno stesso worm. Il termine deriva da un romanzo
di fantascienza degli anni 1970 di John Brunner: i ricercatori che stavano scrivendo
uno dei primi studi sul calcolo distribuito notarono le somiglianze tra il proprio
programma e quello descritto nel libro e ne adottarono il nome. Uno dei primi worm
diffusi sulla rete fu Internet Worm, creato da Robert Morris il 2 novembre 1988,
quando internet era ancora agli albori. Tale virus riuscì a colpire tra le 4000 e le
6000 macchine, si stima il 4-6% dei computer collegati a quel tempo in rete
Il mezzo più comune impiegato dai worm per diffondersi è la posta elettronica: il
programma maligno ricerca indirizzi e-mail memorizzati nel computer ospite ed invia
una copia di sé stesso come file allegato (attachment) a tutti o parte degli indirizzi
che è riuscito a raccogliere. I messaggi contenenti il worm utilizzano spesso tecniche
di social engineering per indurre il destinatario ad aprire l’allegato, che spesso ha
un nome che permette al worm di camuffarsi come file non eseguibile. Alcuni worm
sfruttano dei bug di client di posta molto diffusi, come Microsoft Outlook Express,
per eseguirsi automaticamente al momento della visualizzazione del messaggio email. Tutti i worm più recenti effettuano la falsificazione dell’indirizzo mittente,
creando un fastidioso effetto collaterale di proliferazione di messaggi: alcuni software
antivirus, montati tipicamente sui server, respingono il messaggio infetto e notificano
il fatto al mittente, ma dato che questo è falso tale notifica arriva ad un destinatario
diverso da chi ha realmente inviato la mail e che nulla ha a che fare con l’invio del
worm.
Sicurezza dei Dati e Comunicazione Segreta
87
I virus possono essere o non essere direttamente dannosi per il sistema operativo
che li ospita, ma anche nel caso migliore comportano comunque un certo spreco di
risorse in termini di RAM, CPU e spazio sul disco fisso. Un trojan o trojan horse
(in italiano cavallo di troia), è un tipo di malware. Deve il suo nome al fatto che le
sue funzionalità sono nascoste all’interno di un programma apparentemente utile; è
dunque l’utente stesso che installando ed eseguendo un certo programma, inconsapevolmente, installa ed esegue anche il codice trojan nascosto. L’attribuzione del
termine Cavallo di Troia ad un programma o, comunque, ad un file eseguibile, è
dovuta al fatto che esso nasconde il suo vero fine. È proprio il celare le sue reali
intenzioni che lo rende un trojan.
In genere col termine Trojan ci si riferisce ai trojan ad accesso remoto, composti
generalmente da 2 file: il file server, che viene installato nella macchina vittima,
ed un file client, usato dall’attaccante per inviare istruzioni che il server esegue.
In questo modo, come con il mitico stratagemma adottato da Ulisse, la vittima è
indotta a far entrare il programma nella città, ossia, fuor di metafora, ad eseguire il
programma.
Un dialer è un programma per computer di pochi kilobyte che crea una connessione ad Internet, a un’altra rete di calcolatori o semplicemente a un altro computer
tramite la comune linea telefonica PSTN o un collegamento ISDN. La maggioranza
di programmi dialer sono creati per connettersi a numeri a tariffazione speciale, ad
insaputa dell’utente. Solo una frazione limitata di questi dispositivi contiene l’indicazione corretta e visibile del costo, mentre la maggior parte dei dialer impostati
per connettersi a numeri a tariffazione speciale utilizza metodi illegali, rientrando
così nel reato di truffa.
Uno spyware è un tipo di software che raccoglie informazioni riguardanti l’attività online di un utente (siti visitati, acquisti eseguiti in rete etc) senza il suo
consenso, trasmettendole tramite Internet ad un’organizzazione che le utilizzerà per
trarne profitto, solitamente attraverso l’invio di pubblicità mirata. I programmi per
la raccolta di dati che vengono installati con il consenso dell’utente (anche se spesso negando il consenso non viene installato il programma) non sono propriamente
spyware, sempre che sia ben chiaro all’utente quali dati siano oggetto della raccolta
ed a quali condizioni questa avvenga. In un senso più ampio, il termine spyware è
spesso usato per definire un’ampia gamma di malware (software maligni) dalle funzioni più diverse, quali l’invio di pubblicità non richiesta (spam), la modifica della
pagina iniziale o della lista dei Preferiti del browser, oppure attività illegali quali la
redirezione su falsi siti di e-commerce (phishing) o l’installazione di dialer truffaldini
per numeri a tariffazione speciale.
Gli spyware, a differenza dei virus e dei worm, non hanno la capacità di diffondersi
autonomamente, quindi richiedono l’intervento dell’utente per essere installati. In
questo senso sono dunque simili ai trojan. Uno spyware può essere installato sul
computer di un ignaro utente sfruttando le consuete tecniche di ingegneria sociale.
Molti programmi offerti gratuitamente su Internet nascondono in realtà un malware
di questo tipo: il software dunque non è gratuito, ma viene pagato attraverso
un’invasione della privacy dell’utente, spesso inconsapevole. In alcuni casi, la stessa
applicazione che promette di liberare dagli spyware ha in realtà installato spyware o
è essa stessa uno spyware.
trojan
dialer
spyware
Sicurezza dei Dati e Comunicazione Segreta
88
social
network
poisoning
Molti software sono diffusi dichiarando in modo più o meno esplicito di contenere
un componente che verrà utilizzato per tracciare le abitudini di navigazione dell’utente: in questo caso siamo in presenza non di uno spyware propriamente detto, ma
di un programma rilasciato con licenza adware. Talvolta l’installazione di spyware
viene eseguita in maniera ancora più subdola, attraverso pagine Web appositamente
realizzate per sfruttare le vulnerabilità dei browser o dei loro plug-in; in questo caso
si parla di drive by download (o installazione tramite exploit).
Di crescente diffusione è anche la tecnica conosciuta come Social Network Poisoning. Con tale termine si intende l’effetto prodotto dall’applicazione di metodiche
volte a rendere inaffidabili le conoscenze relative ad un profilo e alle relazione ad
esso afferenti. L’applicazione su larga scala di attacchi di questo genere potrebbe
portare al crollo delle piattaforme di Social Networking inficiandone la valenza ai
fini commerciali, oltre che l’utilità in termini di conoscenza e correlazione sui dati
forniti dagli utenti, con un sensibile impatto sul relativo valore economico.
Partendo dall’assunto che in Internet ed in particolare all’interno dei Social Network manca una gestione coerente e sicura dell’Identità digitale, è possibile introdurre i principali strumenti di poisoning attualmente praticabili ed ipotizzarne di
nuovi in uno scenario futuro:
• sostituzione di identità, ovvero la possibilità di impersonare un altro utente
per gli scopi più vari dall’intelligence all’ingegneria sociale.
• simulazione di identità, la creazione di un falso profilo, che non corrisponde
ad alcuna persona esistente, per fini malevoli o semplicemente per mantenere
l’anonimato.
• profile fuzzing, l’introduzione volontaria di elementi falsi e/o non congrui nel
proprio profilo per ingannare i sistemi di intelligence o per altre forme di
vantaggio personale.
• social graph fuzzing, l’associazione intenzionale a gruppi e persone che non
hanno a che fare con i propri interessi e relazioni con l’intento di introdurre
rumore nel proprio grafo sociale.
• social bots, creazione di un numero considerevole di profili falsi (e.g. milioni
di falsi profili) gestiti da macchine, capaci di interagire tra loro e con utenti
reali in modalità verosimile, modificando così il sentiment e la conversation
su larga scala oltre ad alterare tutti i social graph e ad impedire correlations
sensate sui dati.
Tecniche di Difesa
antivirus
Un antivirus consente di proteggere il proprio personal computer da software
dannosi conosciuti come virus. Un buon antivirus deve essere costantemente aggiornato ad avere in continua esecuzione le funzioni di scansione in tempo reale.
Per un miglior utilizzo l’utente deve avviare con regolarità la scansione dei dispositivi del PC (dischi fissi, CD, DVD e dischetti floppy), per verificare la presenza di
virus, worm. Per evitare la diffusione di virus è inoltre utile controllare tutti i file
Sicurezza dei Dati e Comunicazione Segreta
89
che si ricevono o che vengono spediti tramite posta elettronica facendoli verificare dall’antivirus correttamente configurato a tale scopo. Un antivirus da solo, per
quanto affidabile ed efficiente, non è una protezione totale contro il 100% dei virus
informatici esistenti al mondo. Inoltre, un antivirus si basa su determinate regole
e algoritmi scritti da esseri umani, e pertanto queste possono portare a errori (falsi
positivi) e/o a decisioni sbagliate. Alcune funzioni di controllo sono più specializzate
in un software Antispyware che a sua volta può avere funzioni di Antivirus ma non
ai massimi livelli.
Dal punto di vista tecnico ci sono svariati metodi che si possono utilizzare per
prevenire e individuare malware. Il metodo delle signatures, ovvero delle firme,
è forse ad oggi quello più utilizzato. Questo metodo, sostanzialmente, prevede il
confronto del file da analizzare con un archivio in cui sono schedati tutti i malware
conosciuti, o meglio le loro firme. Ovviamente l’efficienza di tale metodo si basa sulla
completezza dell’archivio, diverso per ogni casa produttrice di software antivirus, e
sulla velocità del software nell’eseguire il confronto tra il file e la firma. Alcuni
antivirus provano ad eseguire a run-time in una sandbox i file eseguibili e, tramite
l’analisi del comportamento di tali eseguibili, riescono a capire se si tratti di eseguibili
che contengono codice malevolo o meno. Questo metodo, se basato su buoni
algoritmi, può essere molto preciso. Ovviamente, però, l’esecuzione all’interno di
una sandbox richiede prestazioni e tempi di esecuzione più elevati rispetto ad un
metodo basato sulle signatures.
Un antispyware è un genere software facilmente reperibile sul web in versione
freeware, shareware o a pagamento. è diventato un utilissimo tool per la rimozione
di file spia, gli spyware appunto, in grado di carpire informazioni riguardanti le
attività on line dell’utente ed inviarle ad un’organizzazione che le utilizzerà per
trarne profitto.
Il firewall, installato e ben configurato, è un software che garantisce un sistema
di controllo degli accessi verificando tutto il traffico che lo attraversa. Protegge
contro aggressioni provenienti dall’esterno e blocca eventuali programmi presenti
sul computer che tentano di accedere ad internet senza il controllo dell’utente.
Utilizzando meccanismi di firma digitale e crittografia è possibile proteggere
documenti e dati sensibili da accessi non autorizzati. Parleremo più in dettaglio di
tali sistemi in un paragrafo successivo.
Il backup consiste nell’esecuzione di una copia di sicurezza dei dati di un personal
computer o comunque di dati considerati importanti onde evitare che vadano perduti
o diventino illeggibili. Più che un sistema di difesa il backup è un utile sistema per
recuperare dati eventualmente persi o danneggiati.
Un honeypot (letteralmente: barattolo del miele) è un sistema o componente
hardware o software usato come trappola o esca a fini di protezione contro gli
attacchi di pirati informatici. Solitamente consiste in un computer o un sito che
sembra essere parte della rete e contenere informazioni preziose, ma che in realtà è
ben isolato e non ha contenuti sensibili o critici; potrebbe anche essere un file, un
record, o un indirizzo IP non utilizzato.
Un Intrusion Detection System (IDS) è un dispositivo software e hardware (a
volte la combinazione di tutti e due) utilizzato per identificare accessi non autorizzati
ai computer. Le intrusioni rilevate possono essere quelle prodotte da cracker esperti,
signatures
sandbox
antispyware
firewall
crittografia
backup
honeypot
IDS
90
NIDS
sistema di
autenticazione
Sicurezza dei Dati e Comunicazione Segreta
da tool automatici o da utenti inesperti che utilizzano programmi semiautomatici.
Gli IDS vengono utilizzati per rilevare tutti gli attacchi alle reti informatiche e ai
computer. Un IDS è composto da quattro componenti. Uno o più sensori utilizzati
per ricevere le informazioni dalla rete o dai computer. Una console utilizzata per
monitorare lo stato della rete e dei computer e un motore che analizza i dati prelevati
dai sensori e provvede a individuare eventuali falle nella sicurezza informatica. Il
motore di analisi si appoggia ad un database ove sono memorizzate una serie di
regole utilizzate per identificare violazioni della sicurezza.
I Network Intrusion Detection Systems (NIDS) sono degli strumenti informatici,
software o hardware, dediti ad analizzare il traffico di uno o più segmenti di una
LAN al fine di individuare anomalie nei flussi o probabili intrusioni informatiche.
I più comuni NIDS sono composti da una o più sonde dislocate sulla rete, che
comunicano con un server centralizzato, che in genere si appoggia ad un Database.
Fra le attività anomale che possono presentarsi e venire rilevate da un NIDS vi sono:
accessi non autorizzati, propagazione di software malevolo, acquisizione abusiva di
privilegi appartenenti a soggetti autorizzati e intercettazione del traffico (sniffing).
Anche un sistema di autenticazione potrebbe rivelarsi utile, in particolare nelle
aziende, l’utilizzo di software per l’autenticazione sicura con un secondo elemento
di autenticazione basato su un insieme di caratteri disposti in uno schema suddiviso
in file e colonne conosciute dall’utente che dovrà poi inserirle in una combinazione
di valori per dimostrare di essere in possesso dei dati corretti. Altro sistema, più
sofisticato, è quello del riconoscimento dell’utente tramite l’utilizzo dell’impronta
digitale come forma di autenticazione.
Breve storia dei malware
programmi
autoreplicanti
letteratura e
fantascienza
Nel 1949 John von Neumann dimostrò matematicamente la possibilità di costruire un programma per computer in grado di replicarsi autonomamente. Il concetto
di programma auto-replicante trovò la sua evoluzione pratica nei primi anni 60 nel
gioco ideato da un gruppo di programmatori dei Bell Laboratories della AT&T chiamato Core Wars, nel quale più programmi si dovevano sconfiggere sovrascrivendosi
a vicenda. Era l’inizio della storia dei virus informatici.
Il termine virus venne adottato la prima volta da Fred Cohen (1984) della University of Southern California nel suo scritto Experiments with Computer Viruses
(Esperimenti con i virus per computer). La definizione di virus era la seguente: Un
virus informatico è un programma che ricorsivamente ed esplicitamente copia una
versione possibilmente evoluta di sé stesso.
Nel 1972 David Gerrold scrisse un romanzo di fantascienza La macchina di
D.I.O. (When H.A.R.L.I.E. was One), dove è presente una descrizione di un programma per computer chiamato VIRUS che adotta il medesimo comportamento di
un virus. Nel 1975 John Brunner scrisse il romanzo Codice 4GH (The Shockwave
Rider ) in cui sono descritti programmi chiamati tapeworms che si infiltrano nella
rete con lo scopo di cancellare tutti i dati. Nel 1973 la frase virus del computer era
stata usata nel film Il mondo dei robot (Westworld). Il termine virus del computer con il significato corrente è inoltre presente anche nell’albo a fumetti Uncanny
X-Men n. 158, pubblicato nel 1982. Si può dunque affermare che Cohen fece per
Sicurezza dei Dati e Comunicazione Segreta
91
primo uso della parola virus solo in campo accademico, dato che questa era già
presente nella lingua parlata.
Un programma chiamato Elk Cloner è accreditato come il primo virus per
computer apparso al mondo. Fu creato nel 1982 da Rich Skrenta sul DOS 3.3
della Apple e l’infezione era propagata con lo scambio di floppy disk. Nel corso
degli anni ottanta e nei primi anni novanta fu lo scambio dei floppy la modalità
prevalente del contagio da virus informatici. Dalla metà degli anni novanta, invece,
con la diffusione di internet, i virus ed i cosiddetti malware in generale, iniziarono a
diffondersi assai più velocemente, usando la rete e lo scambio di e-mail come fonte
per nuove infezioni. Il bersaglio preferito di questi software sono prevalentemente
le varie versioni di Windows.
Il primo virus informatico famoso nel mondo venne creato nel 1986 da due fratelli
pakistani proprietari di un negozio di computer per punire chi copiava illegalmente
il loro software. Il virus si chiamava Brain, si diffuse in tutto il mondo, e fu il primo
esempio di virus che infettava il settore di avvio.
Il primo file infector apparve nel 1987. Si chiamava Lehigh e infettava solo il
file command.com. Nel 1988 Robert Morris Jr. creò il primo worm della storia.
L’anno seguente, nel 1989, fecero la loro comparsa i primi virus polimorfi, con uno
dei più famosi: Vienna, e venne diffuso il trojan AIDS (conosciuto anche come
Cyborg), molto simile al trojan dei nostri giorni chiamato PGPCoder. Entrambi
infatti codificano i dati del disco fisso chiedendo poi un riscatto all’utente per poter
recuperare il tutto.
Nel 1995 il primo macrovirus, virus scritti nel linguaggio di scripting di programmi di Microsoft come MS-Word ed Outlook che infettano soprattutto le varie
versioni dei programmi Microsoft attraverso lo scambio di documenti. Concept fu
il primo macro virus della storia. Nel 1998 la nascita di un altro dei virus storici, Chernobyl o CIH, famoso perché sovrascriveva il BIOS della scheda madre e la
tabella delle partizioni dell’hard disk infettato ogni 26 del mese.
La diffusione di massa di Internet nella fine degli anni 90 determina la modifica
delle tecniche di propagazione virale: non più floppy ma worm che si diffondono
via e-mail. Tra i worm di maggior spicco antecedenti al 2000: Melissa, Happy99
e BubbleBoy, il primo worm capace di sfruttare una falla di Internet Explorer e di
autoeseguirsi da Outlook Express senza bisogno di aprire l’allegato.
Nel 2000 il famoso I Love You che dà il via al periodo degli script virus,
i più insidiosi tra i virus diffusi attraverso la posta elettronica perché sfruttano la
possibilità, offerta da diversi programmi come Outlook e Outlook Express di eseguire
istruzioni attive (dette script), contenute nei messaggi di posta elettronica scritti in
HTML per svolgere azioni potenzialmente pericolose sul computer del destinatario.
I virus realizzati con gli script sono i più pericolosi perché possono attivarsi da soli
appena il messaggio viene aperto per la lettura. I Love You si diffuse attraverso la
posta elettronica in milioni di computer di tutto il mondo, al punto che per l’arresto
del suo creatore, un ragazzo delle Filippine, dovette intervenire una squadra speciale
dell’FBI. Era un messaggio di posta elettronica contenente un piccolo programma
che istruiva il computer a rimandare il messaggio appena arrivato a tutti gli indirizzi
contenuti nella rubrica della vittima, in questo modo generando una specie di catena
di sant’Antonio automatica che saturava i server di posta.
primi virus
Brain
macrovirus
Internet
I love you
Sicurezza dei Dati e Comunicazione Segreta
92
I worm del
2000
Dal 2001 un incremento di worm che, per diffondersi, approfittano di falle di
programmi o sistemi operativi senza bisogno dell’intervento dell’utente. L’apice nel
2003 e nel 2004: SQL/Slammer, il più rapido worm della storia - in quindici minuti
dopo il primo attacco Slammer aveva già infettato metà dei server che tenevano
in piedi internet mettendo fuori uso i bancomat della Bank of America, spegnendo
il servizio di emergenza 911 a Seattle e provocando la cancellazione per continui
inspiegabili errori nei servizi di biglietteria e check-in; ed i due worm più famosi della
storia: Blaster e Sasser.
Crittografia
crittografia e
crittoanalisi
problematiche
di sicurezza
I dati che possono essere letti e compresi senza alcuna tecnica speciale, vengono
definiti testi in chiaro. Il metodo utilizzato per camuffare un testo in chiaro in
modo da nasconderne il significato è chiamato crittografia. Un testo in chiaro
risulterà come una sequenza di caratteri illeggibili chiamata testo cifrato. Si usa
la crittografia per assicurare che le proprie informazioni siano nascoste a chiunque
altro non sia destinatario al messaggio in chiaro, anche a coloro i quali possono
vedere i dati criptati. Il processo di conversione di un testo cifrato in testo in chiaro
viene definito decriptazione.
La crittografia è quella scienza che utilizza la matematica per criptare e decriptare i dati. La crittografia permette di memorizzare informazioni sensibili o di
trasmetterli attraverso reti non protette (come Internet) affinché non possano essere letti da nessuno al di fuori dei destinatari prefissati. Mentre la crittografia è
la scienza che mette al sicuro i dati, la crittoanalisi è la scienza che analizza e che
rompe la comunicazione sicura. La crittoanalisi tradizionale coinvolge un’interessante combinazione di ragionamenti analitici, applicazione di strumenti matematici,
modelli di ricerca, pazienza, determinazione e fortuna.
Quattro sono i tipi di minacce che l’osservatore può portare allo scambio dei
messaggi privati in internet: l’ intercettazione, la modifica, l’invio di messaggio sotto
falso nome, il ripudio della potestà del messaggio.
• L’intercettazione è la lettura del contenuto, vuoi perché in chiaro o perché cifrato con un algoritmo noto. L’intercettazione può essere anche legale, quando
un magistrato decritta i messaggi veicolati, per esempio, tra organizzazioni
che si sospettano essere criminali;
• la modifica riguarda non solo la semplice intercettazione del contenuto del
messaggio, ma anche la modifica, appunto. Può essere di tipo criminoso ma
anche legale, per esempio quando si modifica un virus informatico per renderlo
inoffensivo;
• nell’invio di messaggio sotto falso nome non solo si intercetta e si modifica
il messaggio, ma ne viene creato uno il cui mittente si fa credere un altro,
prendendone la potestà e le credenziali;
• si parla di ripudiare la potestà di un messaggio (il proverbiale non l’ho scritto
io! ) quando si nega di averne spedito uno, pur avendolo fatto. Questo caso
Sicurezza dei Dati e Comunicazione Segreta
93
è il più facile da risolvere, visto che il mittente lascia sempre una sorta di orma
elettronica quando spedisce un messaggio.
Le problematiche sono dunque quattro:
• la confidenzialità: è legata alla riservatezza (privacy) del mittente. Avere una
ragionevole certezza che, durante la trasmissione del messaggio, non c’è stato
nessun osservatore dotato di strumenti in grado di leggerlo;
• l’ integrità: è la ragionevole certezza che il messaggio non sia stato alterato
da nessuno, cioè modificato nella sostanza, nell’integrità del codice;
• l’ autenticazione: è la garanzia di sapere che un messaggio venga davvero da
un mittente A, e non da qualche altro che si è spacciato per A;
• il non ripudio: riguarda l’essere certi che il mittente del messaggio non possa
negare di averlo mandato, se io so che quando il mittente manda un messaggio
lascia un’orma.
Se queste sono le problematiche, la loro soluzione sta nella crittografia, strumento fondamentale per la realizzazione dei meccanismi di sicurezza informatica.
Bruce Schneier introduce il suo libro Applied Cryptography: Protocols, Algorithms, and Source Code in C con la seguente frase.
Esistono due tipi di crittografia: la crittografia che non permette a tua
sorella di leggere i tuoi documenti, e la crittografia che non permette
ai più grandi governi di non leggere i tuoi documenti. Questo libro si
occupa della seconda.
La crittografia infatti può essere sia forte che debole. La forza della crittografia
si misura in base al tempo e alle risorse necessarie per riottenere il testo in chiaro.
Il risultato ottenuto dopo l’applicazione di una crittografia forte è un testo cifrato
molto difficile da comprendere senza l’apposito strumento di decodifica. Ma quanto
difficile? Pur avendo una forte potenza di calcolo e un lasso di tempo ampio, non
sarebbe comunque possibile giungere ad un testo in chiaro prima della fine dell’Universo. Nemmeno l’uomo più paziente, troverebbe una soluzione. Da ciò verrebbe
facile pensare che una crittografia forte possa sostenere l’attacco del crittoanalista
più determinato. Ma chi può davvero dirlo? Nessuno ha ancora avuto la prova che
la crittografia più forte al giorno d’oggi possa sostenere le potenze di calcolo di un
domani.
Un algoritmo crittografico è una funziona matematica usata nel processo di
crittografia e decrittografia. Un algoritmo crittografico funziona grazie all’uso di
una chiave (in genere una parola, un numero, una frase) utilizzata per criptare un
testo in chiaro. La sicurezza di un testo criptato dipende da due fattori: la forza
dell’algoritmo crittografico e la segretezza della chiave. Un algoritmo crittografico
unitamente alla sua chiave creano un crittosistema.
crittografia
forte e
debole
crittosistema
Sicurezza dei Dati e Comunicazione Segreta
94
Crittografia Simmetrica
In un sistema di crittografia convenzionale, altresì chiamata crittografia a chiave segreta o crittografia simmetrica, la chiave è usata sia per criptare sia per decriptare il testo. Il Data Encryption Standard (DES) è un esempio di crittografia
convenzionale che è largamente utilizzata dal Governo Federale.
La crittografia simmetrica ha dei benefici: è davvero veloce. Ed è indicata specialmente per quei dati criptati che non devono raggiungere qualsiasi destinazione.
Però dobbiamo precisare che la crittografia simmetrica, utilizzata da sola per la
trasmissione di dati sicuri, può essere molto costosa a causa della comunicazione
sicura della chiave.
Proviamo a rievocare nella nostra memoria l’immagine di un personaggio di un
film di spionaggio, la persona con il polso ammanettato con una valigetta chiusa a
chiave. Cosa ci sarà in questa valigetta? E’molto probabile che non troveremo il
codice per il lancio di un missile, o per la formula di una tossina o per l’invasione della
terra, bensì la chiave che decritterà i dati segreti. L’unico modo utile per un mittente
e un destinatario per comunicare in maniera sicura e criptata è che entrambi siano
d’accordo sulla chiave e che la mantengano segreta. Se si trovano in luoghi diversi,
dovranno trovare un mezzo o un modo sicuro, come il Bat Telefono, per comunicare
in maniera protetta affinché non venga scoperta la chiave per decrittare i loro dati.
Chiunque riesca ad intercettare questa comunicazione potrà entrare in possesso
della chiave e comportarsi con essa a proprio piacimento, leggendo, modificando o
contraffacendo le informazioni criptate. Sin dai tempi di Giulio Cesare, il problema
più grande legato alla crittografia è quello della trasmissione della chiave: come si
può far arrivare la chiave al destinatario senza che nessuno la intercetti?
Crittografia Asimmetrica
crittografia a
chiave
pubblica
Il problema della trasmissione della chiave è stato risolto con il sistema di
crittografia a chiave pubblica o crittografia asimmetrica, concetto introdotto nel
1975 da Whitfield Diffie e Martin Hellman.
La crittografia a chiave pubblica è uno schema asimmetrico che utilizza una
coppia di chiavi per crittografare: una chiave pubblica, che cripta i dati, e una
corrispondente chiave privata, o segreta, per decriptare. Chiunque si trovi ad essere
in possesso di una copia della nostra chiave pubblica, ovviamente anche persone
che non conosciamo, può quindi criptare le informazioni che solo chi è in possesso
della chiave privata può leggere.
L’idea di base della crittografia con coppia di chiavi diviene più chiara se si usa
un’analogia postale, in cui il mittente è Alice ed il destinatario Bob, i lucchetti fanno
le veci delle chiavi pubbliche e le chiavi recitano la parte delle chiavi private:
• Alice chiede a Bob di spedirle il suo lucchetto, già aperto. La chiave dello
stesso verrà però gelosamente conservata da Bob.
• Alice riceve il lucchetto e, con esso, chiude il pacco e lo spedisce a Bob.
• Bob riceve il pacco e può aprirlo con la chiave di cui è l’unico proprietario.
crittografia a
chiave
segreta
Sicurezza dei Dati e Comunicazione Segreta
95
Se adesso Bob volesse mandare un altro pacco ad Alice, dovrebbe farlo chiudendolo con il lucchetto di Alice (che lei dovrebbe aver preventivamente dato a Bob)
che solo lei potrebbe aprire.
Si può notare come per mettere in sicurezza il contenuto dei pacchi ci sia bisogno
del lucchetto del destinatario, mentre per aprirli viene usata esclusivamente la propria
chiave segreta, rendendo l’intero processo di cifratura/decifratura asimmetrico (una
chiave per cifrare ed una differente per decifrare). Chiunque intercettasse il lucchetto
(aperto) o il messaggio chiuso con il lucchetto non potrebbe leggerne il contenuto
poiché non ha la chiave. Uno dei vantaggi della crittografia asimmetrica sta nel
fatto che le chiavi pubbliche possono essere scambiate anche utilizzando un mezzo
insicuro, come Internet.
Usando un’altra analogia si può dire che il metodo è analogo a quello di una
cassaforte che abbia due chiavi distinte, una usata per aprirla (chiave segreta), l’altra
per chiuderla (chiave pubblica).
Alcuni esempi di crittografia a chiave pubblica sono quella Elgamal (dal nome
del suo inventore, Taher Elgamal), RSA (chiamata così per gli inventori, Ron Rivest,
Adi Shamir e Leonard Adleman), Diffie-Hellman (nome, avete indovinato, per i suoi
inventori), e DSA, l’Algoritmo a firma digitale (inventato da David Kravitz).
Visto che la crittografia convenzionale una volta era l’unico mezzo disponibile per
la diffusione di informazioni segrete, la spesa per i canali protetti e per trasmissione
della chiave era limitata solo a coloro che se lo potevano permettere, come ad
esempio governi e banche di grandi dimensioni. La crittografia a chiave pubblica è
la rivoluzione tecnologica che fornisce una forte crittografia alle masse di adulti.
Ricordate il messaggero con la valigetta ammanettata al polso? La crittografia
a chiave pubblica lo ha buttato fuori dal business (probabilmente per il suo sollievo).
Per utilizzare questo tipo di crittografia è necessario creare una coppia di chiavi,
una chiave pubblica (da diffondere) ed una chiave privata (da tenere segreta). La
proprietà fondamentale della coppia di chiavi pubblica/privata è che un messaggio
cifrato usando la chiave pubblica può essere decifrato usando soltanto la chiave
privata corrispondente. In pratica, la chiave pubblica serve unicamente per codificare
il messaggio, mentre quella privata serve unicamente per decodificarlo.
A questo punto il gioco è fatto: ogni utilizzatore si crea la propria (o le proprie,
in casi particolari) coppia di chiavi; la chiave privata viene tenuta segreta e non viene
mai rivelata a nessuno (nemmeno alle persone con le quali si comunica); viceversa, la
chiave pubblica viene diffusa in vari modi: può essere aggiunta automaticamente in
coda a ciascun proprio messaggio nelle varie conferenze elettroniche cui si partecipa,
o può essere depositata in archivi pubblici (keyserver) a disposizione di chi la
desideri. è importante che la chiave pubblica sia liberamente accessibile, perché
chiunque voglia comunicare con la persona che l’ha generata dovrà preventivamente
munirsi di questa, con la quale cifrerà il messaggio.
crittosistemi
In realtà il problema della sicurezza riguardante la segretezza della comunicazione non è del tutto risolto con questo tipo di crittografia in quanto passibile di
attacchi di tipo man in the middle: non si può essere certi infatti che la chiave (per
esempio una chiave presente sul keyserver) appartenga davvero alla persona nomi-
problemi di
sicurezza
utilizzo
keyserver
96
Sicurezza dei Dati e Comunicazione Segreta
nata nell’intestazione della chiave stessa apportando così attacchi di tipo spoofing 1
in assenza di un meccanismo di autenticazione tra le parti in causa. Una soluzione
resta sempre il contatto fisico tra i due interlocutori, i quali, scambiandosi le chiavi
pubbliche hanno una reciproca autenticazione.
PGP, il primo sistema crittografico di massa che si avvale delle idee della crittografia asimmetrica consiglia, dopo essersi scambiati le chiavi per e-mail o altro
mezzo, di telefonarsi e di leggersi i fingerprint (letteralmente impronte digitali), ovvero un codice (codice di hash) associabile in modo sicuro alla chiave stessa, ma da
cui non si può ricavare la chiave; in questo modo, riconoscendo le rispettive voci, si
certifica anche la validità della chiave ottenuta.
Un altro problema da non escludere è quello dell’effettiva protezione della chiave
privata: questa infatti risiede nel disco rigido del proprietario ed è generalmente
cifrata con una password (quindi con crittografia simmetrica). Data la relativa
semplicità di accesso alla chiave (basta inserire una password per sbloccarla), con
particolari trojan/keylogger programmati ad-hoc è quindi possibile ricavare dal PC
della vittima sia il file contenente la chiave privata sia la password per utilizzarla,
violando a tutti gli effetti l’efficienza della crittografia asimmetrica.
Storia delle tecniche di comunicazione cifrata
la
crittografia
classica
scritture
religiose
La storia della crittografia ha origini remote ed inizia con la crittografia classica,
con metodi di cifratura che utilizzavano carta e penna o, al massimo, semplici supporti meccanici; agli inizi del XX secolo l’invenzione di dispositivi elettromeccanici,
come ad esempio la macchina Enigma a rotori, elevò a più sofisticati ed efficienti livelli la cifratura; la successiva introduzione dell’elettronica e dei computer ha
permesso l’utilizzo di schemi di cifratura sempre più complessi, molti dei quali non
ottenibili con carta e penna.
Lo sviluppo della crittografia è andato di pari passo con lo sviluppo della crittanalisi, l’arte della rottura dei codici e dei cifrari. La scoperta e l’applicazione, agli inizi
della crittanalisi moderna, dell’analisi delle frequenze alla lettura delle comunicazioni
cifrate ha qualche volta alterato il corso della storia.
Il più antico esempio di utilizzo della crittografia è stato rinvenuto in alcuni
geroglifici egiziani scolpiti in antichi monumenti dell’Antico Regno (risalenti a più
di 4500 anni fa). Anche se non si possono certamente considerare come seri esempi
di comunicazioni segrete, sono da considerare come tentativi di scritture misteriose,
intriganti o stravaganti fatti da letterati del tempo. Ci sono anche altri esempi
di utilizzo della crittografia, o di qualcosa che ci assomiglia molto: ad esempio,
su alcune tavolette di argilla mesopotamiche sono state trovate incisioni cifrate
chiaramente fatte con l’intento di proteggere le informazioni riportate, forse ricette
con un qualche valore commerciale. Altre forme di antichi metodi crittografici sono i
cifrari monoalfabetici ebraici del VI secolo a.C., come il cifrario Atbash, usato anche
per offuscare alcuni nomi nella Bibbia.
La crittografia ha una lunga tradizione nelle scritture religiose, dove molto spes1 Lo spoofing è un tipo di attacco informatico dove viene impiegata in qualche maniera la
falsificazione dell’identità (spoof)
Sicurezza dei Dati e Comunicazione Segreta
97
so era usata per attaccare la cultura dominante o le autorità politiche. Forse il più
famoso esempio è il Numero della bestia che appare nell’Apocalisse di Giovanni: gli
studiosi sono propensi nel ritenere che il 666 fosse un simbolo indicante l’imperatore
Nerone, reo di sanguinose persecuzioni nei confronti dei Cristiani. L’uso della crittografia negli scritti religiosi dei primi Cristiani terminò con l’avvento dell’imperatore
Costantino I, convertitosi al Cristianesimo.
Gli antichi Greci si dice avessero conoscenze di crittografia (ad esempio il bastone per cifrare scitala, che sembra fu utilizzato dall’esercito di Sparta). Una scitala
(dal greco bastone) era una piccola bacchetta utilizzata dagli Spartani per trasmettere messaggi segreti. Il messaggio veniva scritto su di una striscia di pelle arrotolata
attorno alla scitala, come se fosse stata una superficie continua. Una volta srotolata e tolta dalla scitala la striscia di pelle, era impossibile capire il messaggio. La
decifrazione era invece possibile se si aveva una bacchetta identica alla scitala del
mittente: vi si arrotolava nuovamente la striscia di pelle ricostruendo la primitiva
posizione. Si tratta pertanto del più antico metodo di crittografia per trasposizione
conosciuto.
Erodoto ci parla di messaggi segreti incisi su tavolette di legno e poi nascosti
da uno strato di cera oppure tatuati sulla testa di uno schiavo e mascherati dalla
ricrescita dei capelli. Ovviamente queste non possono essere considerate tecniche
crittografiche dato che, una volta scoperto, il messaggio era direttamente leggibile:
dobbiamo in questi casi parlare semplicemente di steganografia. I Romani conoscevano certamente la crittografia: l’esempio più noto è il cifrario di Cesare, un
cifrario monoalfabetico in cui ogni lettera del testo in chiaro è sostituita nel testo
cifrato dalla lettera che si trova un certo numero di posizioni dopo nell’alfabeto.
Questi tipi di cifrari sono detti anche cifrari a sostituzione o cifrari a scorrimento a
causa del loro modo di operare: la sostituzione avviene lettera per lettera, scorrendo
il testo dall’inizio alla fine.
Anche in India la crittografia era abbastanza nota. È addirittura raccomandata
nel Kama Sutra agli amanti come tecnica per poter comunicare senza essere scoperti.
Furono probabilmente motivi religiosi inerenti all’analisi testuale del Corano che
portarono all’invenzione della tecnica dell’analisi delle frequenze per violare i cifrari
a sostituzione monoalfabetica da parte di Al-Kindi intorno al IX secolo. Questa fu,
fino alla seconda guerra mondiale, la più importante tappa della crittanalisi: fino
all’avvento del cifrario polialfabetico di Leon Battista Alberti (1495 circa), tutti i
cifrari erano vulnerabili a questa tecnica crittanalitica. Un cifrario polialfabetico
fa uso di un numero più o meno grande di alfabeti per sostituire le lettere del
messaggio, usando un determinato ordine che costituisce la chiave.
La crittografia e la crittanalisi, così come il doppio gioco di un agente segreto e
corriere, entrano nel complotto Babington per l’eliminazione di Maria Stuarta, regina
di Scozia e pretendente al trono d’Inghilterra detenuto dalla regina Elisabetta I. E
sempre un messaggio segreto, decrittato agli inizi del Novecento da Étienne Bazeries,
sembra svelare l’identità del misterioso e sfortunato prigioniero noto come Maschera
di Ferro, che alla fine del Seicento visse per molti anni imprigionato in diverse
fortezze. La crittografia entra anche sia nel complotto che portò all’esecuzione
di Mata Hari, la famosa ballerina ed agente segreto che lavorava come spia per
i francesi e per i tedeschi, sia nell’affare Dreyfus, dove un ufficiale francese fu
la scitala
crifrario di
Cesare
l’nalisi delle
frequenze
cifrari
polialfabetici
98
Sicurezza dei Dati e Comunicazione Segreta
ingiustamente accusato di tradimento per coprire il vero responsabile dei fatti a lui
addebitati.
La seconda guerra mondiale
Enigma
Rejewsky
codici
giapponesi
purple
one-time pad
I metodi matematici proliferarono durante il periodo antecedente la seconda
guerra mondiale: ciò si evince in particolare dall’applicazione delle tecniche statistiche alla crittanalisi ed allo sviluppo dei cifrari fatti da William F. Friedman e dalla
violazione, ad opera del polacco Marian Rejewski nel 1932, della macchina Enigma.
I tedeschi fecero largo uso di questa macchina basata su rotori inventata da Arthur Scherbius. Rejewski, dell’Ufficio Crittografico polacco, dedusse nel dicembre
del 1932 i dettagli della struttura interna di Enigma basandosi esclusivamente sulla
matematica e sulla poca documentazione ricevuta da Gustave Bertrand, un capitano dellintelligence francese. Rejewski ed i suoi colleghi matematici dell’Ufficio
Cifrari polacco, Jerzy Ró?ycki e Henryk Zygalski, continuarono a leggere i messaggi
delle macchine Enigma ed a tenersi al passo con gli aggiornamenti che il suo autore apportava alla macchina tedesca. Con l’avanzare della guerra (i tedeschi erano
alle porte della Polonia) e con le risorse che divenivano insufficienti per contrastare
le innovazioni introdotte dai tedeschi nell’Enigma, dietro ordine dell’Alto Comando militare polacco, Rejewski ed i suoi colleghi accolsero a Varsavia rappresentanti
dellintelligence di Francia e Gran Bretagna, che furono introdotti ai segreti della
decifratura dell’Enigma. Il primo settembre 1939 i tedeschi invasero la Polonia ed
il personale chiave dell’Ufficio Cifrari fu evacuato verso est; ma, quando l’Unione
Sovietica, il 17 settembre, attraversò il confine orientale della Polonia, essi furono
spostati in Romania e da lì raggiunsero Parigi, dove si unirono al gruppo di crittanalisti della stazione PC Bruno, che operava nei dintorni della capitale francese
intercettando le trasmissioni tedesche in cooperazione con il gruppo di crittanalisti
britannico di Bletchley Park. Del gruppo inglese facevano parte molti esperti scacchisti e professori di matematica, quali Gordon Welchman, Max Newman e Alan
Turing, il fondatore della moderna informatica.
I crittografi della marina americana (che cooperavano con i crittografi britannici
ed olandesi dal 1940) violarono diversi sistemi crittografici dell’impero giapponese.
In particolare, la violazione del codice JN-25 permise alle forze americane di vincere
la battaglia di Midway; e nonostante la risonanza data dalla stampa all’evento, i
Giapponesi non si accorsero del fatto che il loro cifrario era stato violato. Una sezione dell’FBI, denominato Special Intelligence Service (SIS), fondato specificatamente
per seguire gli interessi delle forze naziste nell’America Latina ed in Asia, violò il più
alto sistema di cifratura diplomatico giapponese (una macchina elettromagnetica
conosciuta dagli americani con il nome in codice di PURPLE). Gli americani indicavano i risultati di intelligence ottenuti dalla crittanalisi dei messaggi cifrati con
la macchina PURPLE con il termine Magic, così come gli inglesi indicavano con
Ultra le informazioni di intelligence ottenute analizzando i messaggi cifrati con la
macchina Enigma.
Nel 1917 Gilbert Vernam aveva proposto una telescrivente cifrante in cui una
chiave precedentemente stabilita, impostata su nastro perforato, veniva combinata
carattere per carattere con il testo in chiaro per produrre il testo cifrato. Nacquero
Sicurezza dei Dati e Comunicazione Segreta
99
così le macchine cifranti ed i sistemi one-time pad, dove la chiave è lunga quanto il
testo da cifrare. I militari tedeschi cercarono di sviluppare diverse macchine basate
sul one-time pad. A Bletchley Park chiamarono questo cifrario Fish, e Max Newman
ed i suoi colleghi disegnarono e svilupparono la macchina Heath Robinson ed il primo
computer digitale programmabile denominato Colossus, per aiutarli nel duro compito
della crittanalisi dei messaggi nemici. Il Ministero degli Esteri tedesco iniziò l’uso
dei cifrari di tipo one-time pad nel 1919 ma solo durante la seconda guerra mondiale
se ne poterono decifrare alcuni grazie al fatto che furono ritrovate alcune chiavi di
cifratura in Sud America che non erano state eliminate con sufficiente cura da un
corriere tedesco.
Subito dopo la seconda guerra mondiale, il più famoso cifrario fu il VIC, dal nome
in codice (Victor) della spia russa Reino Hayhanen che per 5 anni operò negli Stati
Uniti, fino a quando, nel 1957, tradì il suo Paese e chiese asilo politico al governo
americano. Il cifrario VIC era un cifrario molto complesso, forse il più complesso di
quelli usati dalle spie sovietiche, e basato, caso raro, sull’uso di carta e penna. Solo
quando furono trovati messaggi scritti su monete da 5 cent i crittanalisti dell’NSA
capirono che era un sistema elaborato manualmente. Il cifrario rimase inviolato fino
a quando Hayhanen non si consegnò nelle mani americane.
Colossus
VIC
La crittografia moderna
L’era della crittografia moderna si può far iniziare con Claude Shannon, considerato il padre della crittografia matematica grazie ai lavori che fece durante la
seconda guerra mondiale sulla sicurezza delle comunicazioni. I soui lavori includevano i risultati dei suoi lavori eseguiti durante il conflitto mondiale. Questi, in
aggiunta agli altri suoi studi sulla teoria dell’informazione, costituirono una base teorica molto solida per la crittografia ed anche per molta della crittanalisi. Da allora,
la crittografia sparì pian piano negli organismi governativi dediti alla secretazione
delle comunicazioni quali l’americana NSA, la britannica Government Communications Headquarters e gli equivalenti di altri Paesi. Solo a partire dagli anni settanta
le cose sono cambiate e la crittografia ha iniziato a tornare di pubblico dominio.
A metà degli anni settanta si ebbero due importanti avvenimenti sulla scena
crittografica pubblica (quindi non segreta). Il primo fu la pubblicazione nel Registro
Federale (17 marzo 1975) della bozza riguardante il Data Encryption Standard. Il
cifrario che fu scelto come DES fu proposto da un gruppo di ricerca del colosso
informatico IBM, su invito del National Bureau of Standards (adesso NIST), nell’ottica di sviluppare un sistema per secretare le comunicazioni elettroniche delle
banche e di altre importanti organizzazioni finanziarie. Dopo il vaglio e le modifiche
apportate dall’NSA, eseguite dietro le scene, fu adottato come standard nel 1976.
Il DES fu il primo cifrario pubblico ad essere accettato da un’agenzia come l’NSA.
Il rilascio delle sue specifiche stimolò una vera e propria corsa alla crittografia, sia
pubblica che accademica. Il vetusto DES fu ufficialmente rimpiazzato dall’Advanced Encryption Standard (AES) solo nel 2001 quando il NIST annunciò il nuovo
standard FIPS 197: dopo una competizione aperta a tutti, il NIST selezionò come
nuovo standard l’algoritmo Rijndael, proposto da due crittografi belgi. Il DES (e
le sue versioni più sicure come il Triple DES) è ancora oggi utilizzato, dato che è
Shannon
DES
100
teoria del
complotto
crittografia
asimmetrica
politiche
Zimmermann
PGP
violazioni
recenti
Sicurezza dei Dati e Comunicazione Segreta
stato incorporato in numerosi standard. Nonostante questo, la sua chiave a 56 bit
non è sufficientemente robusta da resistere ad un attacco a forza bruta: nel 1997
un tale attacco fu sferrato al DES dal gruppo EFF che, grazie all’uso di un sistema
con 1800 chip, recuperò una chiave in 56 ore.
Come risultato di ciò l’uso del cifrario DES è ormai altamente insicuro per
l’uso nei nuovi sistemi crittografici, ed i messaggi protetti dai vecchi sistemi che
usano il DES, e quindi tutti i messaggi spediti dal 1976 in poi, sono anch’essi ad
alto rischio. Indipendentemente dalla sua qualità intrinseca, la dimensione della
chiave del DES (56 bit) fu subito indicata come troppo piccola già al momento
della sua pubblicazione, ad esempio da Whitfield Diffie: qualcuno sospettava che
l’NSA avesse già all’epoca sufficiente potenza elaborativa per violare i messaggi
crittati con il DES, qualcun altro era contro questa teoria del complotto.
Il secondo avvenimento (1976) fu forse anche più importante del precedente,
visto che cambiò radicalmente il modo in cui lavoravano i crittosistemi: la pubblicazione del documento intitolato New Directions in Cryptography da parte di
Whitfield Diffie e Martin Hellman. In questo documento gli autori introducevano
un metodo radicalmente nuovo di distribuire le chiavi crittografiche che risolveva
definitivamente uno dei problemi fondamentali della crittografia. Questo metodo
divenne da allora noto come Scambio di chiavi Diffie-Hellman. L’articolo stimolò immediatamente lo sviluppo di nuovi sistemi di cifratura, gli algoritmi a chiave
asimmetrica
Gli sviluppi pubblici degli anni settanta ruppero il monopolio sulla crittografia
di alta qualità, fino ad allora detenuto dalle organizzazioni governative. Per la
prima volta, chi operava al di fuori di tali organizzazioni aveva accesso ad una
crittografia non facilmente violabile da alcuno (incluse tali agenzie governative).
Diverse controversie, e conflitti, non ancora del tutto sopiti, sia pubblici che privati
iniziarono quasi subito: in alcuni Paesi, ad esempio, l’esportazione della crittografia
è ancora soggetta a restrizioni. Fino al 1996 l’esportazione al di fuori degli USA di
sistemi crittografici che utilizzavano chiavi più lunghe di 40 bit (troppo corte per
essere realmente sicure contro un attaccante con conoscenze) era assolutamente
limitata. Nel 2004, l’ex direttore dell’FBI Louis Freeh, testimoniando durante la
commissione per i fatti dell’11 settembre dichiarò che erano necessarie nuove leggi
contro l’utilizzo pubblico della cifratura.
Una delle più insigni persone a favore di una forte cifratura di uso pubblico era
Phil Zimmermann, l’autore del PGP (Pretty Good Privacy), un sistema crittografico
di alta qualità, pubblicato nel 1991.
Distribuì una versione freeware del suo
PGP quando seppe della minaccia che stava per arrivare dalla nuova legislazione in
materia allora in esame dal governo americano che avrebbe richiesto l’introduzione
di backdoor in tutti i prodotti crittografici sviluppati all’interno degli USA. Il suo
sistema fu perciò rilasciato al mondo intero poco dopo il rilascio negli Stati Uniti
d’America e ciò lo portò ad essere sottoposto ad un lungo processo durato tre anni
in cui era accusato di violazione delle leggi sull’esportazione dei sistemi crittografici.
Nonostante i problemi legali del suo autore, PGP si diffuse a macchia d’olio e divenne
ben presto lo standard de facto per la cifratura dei messaggi di posta elettronica.
Nonostante i moderni cifrari come l’AES ed i cifrari asimmetrici di più alta
qualità siano in genere considerati inviolabili, c’è chi ancor oggi utilizza progetti
Sicurezza dei Dati e Comunicazione Segreta
101
ed implementazioni di scarsa efficacia con il risultato che anche ai giorni nostri
assistiamo ad importanti violazioni di diffusi sistemi crittografici: esempi di tali
violazioni includono il DES; il primo schema di cifratura per reti Wi-Fi, il WEP; il
Content Scrambling System usato per cifrare e controllare l’uso dei DVD; i cifrari
utilizzati nella telefonia mobile GSM; Tutti i casi citati sono cifrari simmetrici.
Finora, non è stato ancora dimostrato che nessuna delle idee matematiche alla
base della crittografia a chiave pubblica sia inviolabile, e così alcuni progressi futuri
nell’analisi matematica potrebbero rendere i sistemi basati su di esse insicuri. È
per questo che alcuni osservatori, prevedendo una tale svolta, raccomandano di
aumentare la dimensione della chiave per elevare il livello di sicurezza in risposta
al fatto che l’aumentata potenza elaborativa richiesta per violare i codici diventa
sempre più facilmente ottenibile ed a costi sempre più bassi.
inviolabilità
Fly UP