Cyber-crime (Crimini informatici)
Lezione 00204: Grandezze digitali e analogiche
Il funzionamento delle moderne piattaforme informatiche è basato sulla gestione di grandezze "digitali". Cosa significa esattamente grandezza "digitale" e che differenza c'è con le grandezze di tipo "analogico"?
Una grandezza viene detta analogica quando può assumere con continuità qualsiasi valore all'interno di un certo intervallo, in qualsiasi istante di tempo. Per esempio, la temperatura è una grandezza analogica in quanto qualsiasi valore di temperatura (sopra lo zero assoluto) è possibile. In altre parole: dati due valori di temperatura, comunque vicini, esiste sempre un terzo valore compreso fra i due. Per esempio fra 27 °C e 28 °C c'è 27,5 °C; fra 27,5 °C e 27,6 °C c'è 27,55 °C e così via all'infinito. In generale una grandezza analogica può essere suddivisa arbitrariamente quante volte si vuole. Inoltre le grandezze analogiche, come la temperatura, variano nel tempo con continuità, nel senso che non esistono "istanti di variazione" o "di commutazione" distinti. È cioè possibile ingrandire quanto si vuole il grafico di una grandezza analogica, sia sull'asse dei tempi sia su quello dei valori, senza mai trovare "salti" o "discontinuità".
Una grandezza digitale è una grandezza discreta e quantizzata, cioè risulta caratterizzata da valori che procedono a salti, valori la cui differenza minima tra un dato e l’altro non è mai inferiore ad una certa quantità. Ovvero, una grandezza che varia solo in corrispondenza di determinati istanti di tempo e che può assumere solo un numero finito di valori. Per esempio il contatore del tempo presente sul display di un orologio digitale procede "a scatti" di un secondo (dunque è un valore discreto) e può assumere solo valori interi (è una grandezza quantizzata). I segnali digitali godono di alcuni importanti pregi nei confronti di quelli analogici: i segnali digitali hanno una maggiore immunità ai disturbi rispetto ai segnali analogici mentre i segnali analogici sono costituiti da funzioni continue pertanto possono assumere infiniti valori. Inoltre, i segnali digitali possono essere elaborati più facilmente dei segnali analogici. Volendo invece segnalare un possibile svantaggio del digitale rispetto all'analogico, possiamo osservare che in linea di principio il segnale analogico conserva interamente l'informazione originale, mentre la digitalizzazione comporta sempre una perdita di informazioni. Tuttavia tale perdita non ha conseguenze pratiche a condizione che si rispettino le condizioni ottimali di digitalizzazione.
Lezione 00303: Attacchi informatici
Per "attacco informatico" si intende l'insieme di azioni compiute deliberatamente da parte di un attaccante per violare la sicurezza di un sistema informatico o telematico. Una delle possibili modalità di classificazione degli attacchi informatici è basata sulla tipologia di azioni messe in atto dall'attaccante; in questo contesto, descrivere la differenza tra attacco "passivo" e attacco "attivo".
Un attacco è un tentativo di accesso non autorizzato al sistema e di utilizzo non autorizzato dei dati, la sicurezza cioè la riservatezza, l’integrità o anche la disponibilità dei dati che può compromettere o del sistema stesso. Gli attacchi si possono suddividere in passivi e attivi; gli attacchi passivi mirano a violare il contenuto del crittogramma pur non avendo a disposizione la chiave e la scienza che studia questa tipologia di attacchi è la crittoanalisi. In definitiva gli attacchi passivi compromettono l’autenticazione e la riservatezza per entrare in possesso di dati privati. Gli attacchi attivi invece compromettono l’integrità e la disponibilità, cioè hanno come obiettivo l’alterazione delle informazioni o il danneggiamento del sistema per renderlo non utilizzabile, facendo quindi in modo che la decifratura eseguita dal destinatario dia come risultato un messaggio arbitrario scelto dall’attaccante invece che il messaggio originale inviato dal mittente.
Lezione 00404: Purging nelle contromisure informatiche
Nell'ambito delle contromisure da utilizzare per ridurre il rischio cui è sottoposto un sistema informatico/telematico alla minaccia di furto di informazioni riservate, molto importante è la corretta applicazione di adeguate funzionalità di purging. Cosa si intende esattamente per Purging?
I dati sensibili e le informazioni riservate devono essere eliminate da tutte le aree di memoria del sistema informatico nelle quali sono transitate e nelle quali non vengono più impiegate; difatti un attaccante potrebbe sfruttare il fatto che tali aree del sistema non sono adeguatamente protette al fine di entrarne in possesso. Per questo motivo vengono utilizzate le funzioni di purging, ovvero di cancellazione automatica, le quali servono ad eliminare definitivamente le informazioni riservate, come le credenziali di accesso degli utenti, dai supporti magnetici e ottici, dalla cache, dal file di swapping e paging del sistema operativo e dal buffer di periferiche.
Lezione 00504: Funzioni crittografiche di Hash
Nell'ambito della sicurezza informatica le funzioni crittografiche di Hash vengono utilizzate per garantire l’integrità di un documento digitale non solo rispetto a modifiche accidentali, ma anche e soprattutto a fronte di attacchi volontari che mirano ad alterarne il contenuto. Esistono molteplici tipologie di funzioni di Hash (ad esempio MD5 o SHA) e la qualità di ognuna di esse viene valutata principalmente sulla base della difficoltà nell'individuare file diversi che, utilizzando quella specifica funzione, generano collisioni. Descrivere cosa si intende quando si parla di collisioni generate dalle funzioni crittografiche di Hash, e il motivo per cui tali collisioni sono inevitabili.
L’hash è una funzione univoca operante in un solo senso (ossia, che non può essere invertita), atta alla trasformazione di un testo di lunghezza arbitraria in una stringa di lunghezza fissa, relativamente limitata. L’hash altro non è che una particolare trasformazione matematica che, applicata al documento da firmare, ne genera la cosiddetta impronta, ovvero un “riassunto” costituito da un numero assai ridotto (e costante) di bit, che rappresenta univocamente il documento o più propriamente stringa, rappresenta una sorta di “impronta digitale” di partenza. Tale riassunto, del testo in chiaro, e viene anche chiamata valore di hash, checksum crittografico o message digest. La lunghezza dei valori di hash varia a seconda degli algoritmi utilizzati. La forza di questo sistema consiste in 3 importanti fattori: l’algoritmo restituisce una stringa fissa di un numero di bit fisso, a prescindere dalla mole di bit elaborati; l’algoritmo non è invertibile, ossia non è possibile ricostruire il documento originale a partire dalla stringa che viene restituita in output; la stringa è, teoricamente, univoca per ogni documento e ne è un identificatore. Proprio per quest’ultimo fattore però dobbiamo tener conto della possibilità di collisione, intese come debolezze.
Per comprendere meglio le collisioni generate dalle funzioni crittografiche di Hash si deve fare riferimento al cosiddetto “principio della colombaia” (o principio dei cassetti), ovvero se abbiamo C colombi e B buchi nella colombaia, con C=B allora ogni colombo avrà il suo buco dove mettersi, ma se C>B allora almeno due colombi dovranno condividere la stessa buca, esempio: 11 colombi e 10 buchi, due colombi vivranno insieme. Nel mondo degli hash possiamo tradurlo così, se abbiamo 2161 messaggi e l’algoritmo è a 160 bit, avremo che 2161/2160 = 2(161-160) = 21 = 2 ad ogni hashcode saranno associati 2 messaggi diversi, quindi non vi è più la corrispondenza univoca di un codice hash diverso per ogni messaggio. L’analisi della sicurezza degli algoritmi di hash quindi si è concentrata soprattutto sulle tecniche di rilevamento delle collisioni. In realtà trovare una collisione è molto più semplice, mediante il cosiddetto attacco del compleanno da cui ne deriva il paradosso del compleanno. Questo nasce dal fatto che la probabilità che due persone in un gruppo compiano gli anni lo stesso giorno, va contro quello che dice l'intuito: fra 23 persone la probabilità è circa del 51%, con 30 persone supera il 70%. Difatti per effettuare il calcolo, si ricorre alla formula per la probabilità degli eventi indipendenti, per rendere più semplice il calcolo si assume che gli anni siano tutti di 365 giorni e che i compleanni siano equiprobabili. Questo paradosso ha importanti ricadute nella crittografia e nel dimensionamento del blocco da cifrare. In particolare nell'ambito della crittografia si utilizza il paradosso del compleanno per indicare che le funzioni hash crittografiche abbiano la proprietà di "resistenza forte alle collisioni".
Lezione 00602: HMAC (Hash-based Message Authentication)
Prendendo spunto dallo schema riportato nell'immagine di seguito, descrivere la logica di funzionamento della cosiddetta HMAC (Hash-based Message Authentication), tecnica basata sulle funzioni crittografiche di Hash; indicare i motivi per cui HMAC è in grado di garantire integrità e autenticità dei file ma non la loro riservatezza e non ripudiabilità.
Garantire la sicurezza dei documenti è una necessità per qualunque tipo di organizzazione ed attività. In alcune circostanze, per provvedere alla gestione e trasmissione in sicurezza dei documenti e delle informazioni, si ricorre all'HMAC (Keyed-hash message authentication code). È una modalità utilizzata per l’autenticazione dei messaggi. Si ricorre all’HMAC quando si ha necessità di garantire sia l’autenticità, l’integrità di un dato messaggio, per essere certi che non sia stato modificato/manipolato in alcun modo. La modalità HMAC si basa su una funzione di hash. Utilizzata nei vari ambiti della sicurezza informatica, l’hash è una funzione che trasforma qualsiasi stringa di lunghezza variabile in una stringa di lunghezza predefinita. L’hash è, quindi, una sorta di codice che permette di ricavare il messaggio originale dalla stringa originata dalla funzione. La peculiarità di HMAC è di non essere legato a nessuna funzione di hash in particolare, che quindi può essere sostituita in base alle necessità. Il contrassegno elettronico dei dati è uno dei possibili ambiti di applicazione di HMAC in quanto garantisce, a diversi livelli d’informazione, la corrispondenza tra un documento amministrativo informatico originale e il suo corrispettivo in formato cartaceo.
Nel caso in oggetto, ovvero la comunicazione tra Alessandro ed Armando si evince che le funzioni MAC, oltre a proteggere l’integrità del file, garantisce anche la sua autenticità similmente alla Firma Digitale. La differenza però è che con la Firma Digitale il mittente ‘firma’ il messaggio cifrandolo con Crittografia Asimmetrica tramite la sua chiave privata che solo lui conosce, tutti gli altri (compreso il legittimo destinatario) devono usare la chiave pubblica del mittente per verificare, mentre la funzione HMAC prevede invece che la ‘firma’ venga apposta usando la chiave segreta condivisa da mittente e destinatario. È questo il motivo per cui HMAC garantisce l’autenticità, il destinatario può cioè essere sicuro che il file è stato effettivamente inviato dal mittente, ma a differenza della Firma Digitale non può garantire la ‘non ripudiabilità’. Infatti poiché la chiave è nota sia a mittente che a destinatario, ognuno di loro potrebbe disconoscere il file dicendo che la paternità è dell’altro. Oltretutto la funzione di HMAC non garantisce la riservatezza della comunicazione in quanto il file inviato da Alessandro ad Armando viaggia in chiaro.
Lezione 00705: Autenticità e non ripudiabilità
Due aspetti che vanno assolutamente salvaguardati nell'ambito della sicurezza informatica sono l'autenticità e la non ripudiabilità dei dati. Entrambi afferiscono al tema della reale identità dei soggetti che si scambiano dati (ad esempio inviandosi dei file); ma c'è una sostanziale differenza tra i due aspetti, di cui tener conto quando si analizzano le diverse tecniche per garantire la protezione delle informazioni. Qual è la differenza tra autenticità e non ripudiabilità?
Per autenticità si intende la verifica della reale provenienza del file, al fine di avere la certezza della reale identità di chi ha originato l’invio del file, ad esempio un attaccante che cerca di inviare file per scopi fraudolenti a nome di qualcun altro, al fine di assumerne di fatto l’identità digitale. La non ripudiabilità garantisce che i protagonisti di una determinata comunicazione non possano negare di averne preso parte, in particolare: il mittente non può negare di aver inviato il file o negare ciò che il file contiene ed il destinatario non può negare di aver ricevuto il file o ciò che contiene. In definitiva quindi l’autenticità garantisce al destinatario che ad inviare il file è stato sicuramente il mittente, ma non gli consente di dimostrarlo. Immaginiamo ad esempio che Sandro e Marco abbiamo condiviso una chiave di cifratura che conoscono solo loro. Se Sandro invia un file cifrato con quella chiave, allora Marco è sicuro che il mittente è Sandro (autenticità).
Lezione 00803: Identificazione, autenticazione e autorizzazione
Se un attaccante riuscisse ad accedere abusivamente ad un sistema informatico, le conseguenze in termini di compromissione della riservatezza e dell'integrità dei dati sarebbero pesantissime; occorre quindi prevedere opportune politiche di sicurezza al fine di proteggere i sistemi dagli attacchi esterni che mirano ad accedervi illegalmente. Quando un’entità esterna (persone fisiche, dispositivi hardware o programmi software) richiede l’accesso al sistema, esistono specifici meccanismi di sicurezza che si occupano delle fasi di: identificazione, autenticazione, autorizzazione. Descrivere brevemente cosa si intende per identificazione, autenticazione e autorizzazione, evidenziando quali sono gli obiettivi di ognuna delle fasi ed in cosa differiscono tra loro.
Supponiamo che un utente voglia accedere al proprio account Google. Google è adatto al nostro caso perché il suo processo di login è suddiviso in diverse fasi piuttosto definite. Ecco come funziona su Google:
- Identificazione: Per prima cosa, il sistema richiede un login. L’utente ne indica uno e il sistema lo riconosce come reale.
- Autenticazione: Google richiede poi una password. L’utente la fornisce e, se la password inserita corrisponde a quella memorizzata, allora il sistema afferma che l’utente sembra essere reale. In alcuni casi può essere richiesta un'ulteriore autenticazione a due fattori; Google ad esempio può chiedere un codice di verifica unico da un messaggio di testo o da un’applicazione specifica. Se l’utente inserisce correttamente anche quello, il sistema riconoscerà finalmente che si tratta del vero proprietario dell’account.
- Autorizzazione: Infine, il sistema dà all’utente il diritto di leggere i messaggi nella sua casella di posta in arrivo e così via. L’autenticazione senza previa identificazione non ha senso: sarebbe inutile iniziare a controllare l’identità prima che il sistema sappia qual è da verificare. Bisogna prima presentarsi. Sulla stessa linea, l’identificazione senza autenticazione sarebbe sciocca. Chiunque potrebbe inserire un qualsiasi login esistente nel database, il sistema ha bisogno della password. Ma qualcuno potrebbe dare una sbirciatina alla password o semplicemente indovinare. Meglio richiedere un’ulteriore prova che solo l’utente effettivo può avere, come un codice di verifica unico.
Tuttavia, l’autorizzazione senza identificazione, per non parlare dell’autenticazione, è del tutto possibile. Ad esempio, è possibile fornire l’accesso pubblico al proprio documento su Google Drive, in modo che sia disponibile a chiunque. In questo caso potreste leggere un avviso che dice che il vostro documento viene visualizzato da un “utente anonimo”. Anche se l'utente è anonimo, il sistema lo ha autorizzato, cioè gli ha concesso il diritto di visualizzare il documento. Tuttavia, se aveste dato il diritto di lettura solo ad alcuni utenti, questo utente avrebbe dovuto identificarsi (fornendo il suo login), poi superare la fase di autenticazione (fornendo la password e un codice di verifica unico) per ottenere il diritto di leggere il documento (autorizzazione). Quando si tratta di leggere il contenuto della vostra casella di posta, Google non autorizzerà mai degli utenti anonimi ad accedervi. Gli utenti dovrebbero presentarsi in quanto voi, con il vostro login e le vostre password e a quel punto non sarebbero più degli utenti anonimi: Google li identificherebbe come determinati utenti, cioè voi.
Un altro punto importante: l’autenticazione è forse il processo chiave in termini di sicurezza dell’account. Se utilizzate una password debole per l’autenticazione, qualcuno potrebbe hackerare il vostro account.