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à