...

rumore di fondo

by user

on
Category: Documents
29

views

Report

Comments

Transcript

rumore di fondo
Sicurezza dei Sistemi Informatici
Advanced Encryption Standard
&
Steganografia
Docente:
Prof. Mastronardi Giuseppe
Crittologia
La Crittologia è la scienza delle scritture segrete e presenta
due facce:
1) La Crittografia, il quale scopo è occultare il significato
dell’informazione;
2) La Crittoanalisi, il quale scopo è decifrare i testi occultati
senza sapere a priori come essi siano stati occultati.
Proprietà della Crittologia
Due proprietà basilari della crittologia sono state individuate
da Shannon nel 1949 nel suo lavoro riconosciuto come uno
dei testi fondanti la moderna crittologia e che va sotto il
titolo: La teoria della comunicazione nei sistemi crittografici.
Queste due proprietà sono:
1) CONFUSIONE
2) DIFFUSIONE
Confusione e Diffusione
Nel documento di Shannon si definisce la confusione il fatto
che la relazione tra la chiave e il testo cifrato sia quanto più
complessa e scorrelata possibile.
La diffusione è invece la capacità dell’algoritmo di distribuire
le correlazioni statistiche del testo lungo tutto l’alfabeto
utilizzato dall’algoritmo di cifratura rendendo quanto più
difficile possibile un attacco statistico.
Confusione e Diffusione
Le due proprietà citate si ottengono applicando un algoritmo
di crittografia che può essere di due tipi:
1) di sostituzione
2) di trasposizione
Entrambe sono utilizzate per eliminare le predominanze
statistiche, quindi adatte per generare confusione.
La crittografia assicura la riservatezza
delle mie informazioni?
Crittografia
Vs.
Steganografia
Crittografia è steganografia?
In molti casi questi due termini vengono confusi, tuttavia
esistono enormi differenze sia concettuali sia tecniche. La
crittografia ha come scopo finale il rendere un determinato
messaggio incomprensibile a chi non possegga alcune
informazioni prestabilite (una chiave di decifrazione), la
steganografia nasconde l’esistenza stessa della comunicazione.
Risulta tuttavia impossibile non notare una certa povertà di
Contenuti presente nella steganografia rispetto alla crittografia,
essa infatti non ha purtroppo avuto quella enorme spinta che il
modello matematico è riuscito a dare a quest’ultima, in
particolare con gli algoritmi crittografici asimmetrici.
Steganografia
Obiettivo: Nascondere l’esistenza di informazioni.
L’obiettivo della steganografia è raggiungibile crittando prima
i dati e poi codificandoli nel “rumore di fondo” di altri file.
I file che contengono dati nascosti sono definiti file carrier e
possono essere in formato audio o grafico.
Steganografia
Esempi di steganografia si individuano nell’antica grecia alcuni
secoli prima di Cristo ed anche in terra Orientale e tutti
portano comunque alla ricerca di sistemi di occultamento di
informazione totalmente impensabili.
Il maggior problema nella steganografia è il file contenitore.
File CARRIER
Caratteristica principale è il suo significato, esso deve essere
il più possibile disgiunto dal significato dell’informazione da
trasmettere. Nella scelta del contenitore bisogna perseguire
due obiettivi:
1) Il contenitore deve essere generico e confondersi nella
massa di messaggi e comunicazioni che il mezzo ospita;
2) Il contenitore non deve essere troppo diffuso per evitare
che un intruso abbia modi di possedere una copia
inalterata del contenitore.
File CARRIER
Come per le chiavi nella crittografia è consigliabile non
utilizzare lo stesso contenitore più volte e soprattutto
distruggere quelli già utilizzati in passate sessioni.
Molta rilevanza nella scelta del contenitore è data dalla
Entropia di
Shannon, essa ne determina la quantità di
informazione
ridondante
presente,
indicatore
principale
dell’alterabilità del contenitore in termini quantitativi, la
presenza forte di tale informazione si traduce in un basso
valore di entropia che permette l’inserimento di materiale
steganografato con minore impatto.
Quale file carrier scegliere?
Abbiamo dunque detto che i file candidati a ricoprire il
ruolo di contenitore devono avere una bassa entropia e un
rumore di fondo non troppo elevato da destare sospetti,
ma presente.
File a bassi valori di entropia sono:
- File testuali txt;
- File audio in formato MIDI o WAVE;
- File immagine BMP o GIF a colori tenui ed a equilibrio fra
aree ad alto contrasto locale ed aree sfumate
Quale file carrier evitare?
Ovviamente ci sono delle tipologie di file sconsigliate come
ad esempio file ad elevati valori di entropia quali:
- File Mp3, scarso rumore in quanto rappresentano un
segnale campionato;
- File Jpeg, scarta le informazioni meno significative dal
punto di vista visivo, privandoci quindi di eventuali pixel
candidati all’occultamento dell’informazione.
Modelli Steganografici
La steganografia può essere classificata in:
- Iniettiva;
- Generativa.
Dopo di che si può classificare in:
- Sostitutiva;
- Selettiva;
- Costruttiva.
In questo lavoro ci occupiamo della Iniettiva-Sostitutiva.
Modelli Steganografici
Iniettiva vuol dire che il messaggio da nascondere viene
inserito in un contenitore esistente, sostitutiva nasce dalla
tecnica di occultamento utilizzata, si è detto che il carrier
deve avere un certo “rumore di fondo”, ossia un certo grado
di alterabilità che rientri nei limiti del “non destare sospetti”,
ed è proprio in questo rumore che nasconderemo il nostro
messaggio.
Come applicare la sostituzione?
Per spiegare quanto detto prendiamo in esame la
palette del web, in questa abbiamo 256 colori,
rappresentati ciascuno da una sequenza di cifre
esadecimali. Con 256 valori possiamo rappresentare
tutti i caratteri che ci servono; quindi ipoteticamente
anche realizzando una tabella in html a colori
possiamo facilmente “scrivere” il nostro messaggio
nascosto.
Come applicare la sostituzione?
Vediamo un esempio pratico:
<table id=”table1”>
<tr>
<td bgcolor=”#004700”></td><td bgcolor=”48004F”></td>
<td bgcolor=”005300”></td><td bgcolor=”540000”></td>
</tr>
</table>
Scrivendo questo codice in un qualsiasi editor e visualizzandolo
con un browser abbiamo questo effetto cromatico.
Cosa è cambiato?
Da questo esempio osserviamo che:
1) la impercettibile variazione visiva dei due verdi è in realtà
una significante sostituzione di carattere, infatti il primo
rappresenta una G (47) e l’altro invece una S (53);
è bastato cambiare il valore esadecimale 47 con 53 e
l’informazione è stata occultata senza il minimo sospetto;
Cosa è cambiato?
2) in questa tabella colorata si nasconde una vera e propria
parola, incredibile ma vero.
Analizzando i codici esadecimali ed eliminando quei nulli,
abbiamo 47, 48, 4F, 53 e 54 che convertiti in binario e
facendone il corrispettivo ASCII ci dà GHOST.
Abbiamo dunque sostituito i bit meno significativi e nascosto
il messaggio da proteggere.
Advanced Encryption Standard
La steganografia per essere efficace deve essere completata
con la crittazione di quanto facciamo, ed è per questo che si
ricorre ad AES, Advanced Encryption Standard.
AES è un algoritmo di cifratura a blocchi che data la sua
Sicurezza e le sue specifiche pubbliche si è imposto come
standard sostitutivo al DES.
La differenza sostanziale è che AES è una rete a sostituzione
e permutazione mentre DES è una rete di Feistel (algoritmo
di cifratura a chiave simmetrica).
Advanced Encryption Standard
Nell’AES il blocco è a dimensione fissa (128 bit) e la chiave
può essere di 128, 192 o 256 bit. AES opera utilizzando
matrici di 4x4 byte chiamate State. Quando l’algoritmo ha
blocchi di 128 bit in input, la matrice State ha 4 righe e 4
colonne; se il blocco di bit in input diventa di 32bit più lungo
viene aggiunta una colonna allo State, e così via fino a 256.
Cifrare con AES
Per cifrare, ogni round dell’AES (eccetto l’ultimo) si sviluppa
nei seguenti quattro passaggi:
1) SubBytes
Ogni byte della matrice viene modificato tramite la S-box a
8bit per fornire non linearità all’algoritmo. La S-box è stata
scelta con cura per non possedere punti fissi evitando così
un potenziale attacco algebrico.
Cifrare con AES
Nei blocchi di cifratura le S-box vengono utilizzate per oscurare
le relazioni tra il testo in chiaro e il testo cifrato
seguendo il principio della confusione enunciato da Shannon.
Le S-box vengono progettate per resistere alla crittoanalisi, e
in generale ricevono m bit di ingresso e li trasformano in n bit
di uscita. Una S-box è una matrice n x m. Ecco un esempio:
4 bit centrali in ingresso
S5
Altri bit
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1100
1011
1100
1101
1110
1111
00
0010
1100
0100
0001
0111
1100
1011
0110
1000
0101
0011
1111
1101
0000
1110
1001
01
1110
1011
0010
1100
0100
0111
1101
0001
0101
0000
1111
1100
0011
1001
1000
0110
10
0100
0010
0001
1011
1100
1101
0111
1000
1111
1001
1100
0101
0110
0011
0000
1110
11
1011
1000
1100
0111
0001
1110
0010
1101
0110
1111
0000
1001
1100
0100
0101
0011
Questa S-box ha 6 bit di ingresso e 4 bit in uscita. Il primo e l’ultimo bit
vengono utilizzati per individuare la riga mentre i bit centrali per la
colonna. Ad esempio il numero in ingresso “011011” ha agli estremi i
bit “01” e centralmente i bit “1101” che producono come uscita “1001”
Cifrare con AES
2) ShiftRows
Si scostano le righe della matrice di un parametro dipendente
dal numero di riga.
Nell’AES la prima riga è invariata, la seconda viene spostata di
un passo verso sinistra, la terza di due posti e la quarta di tre
posti. In questo modo l’ultima colonna dei dati in ingresso
forma la diagonale della colonna in uscita.
Cifrare con AES
3) MixColumns
Si prendono 4 byte di ogni colonna e si combinano utilizzando
una trasformazione lineare invertibile.
Utilizzati in congiunzione, ShiftRows e MixColumns provvedono
all’operazione di diffusione nell’algoritmo. Ogni colonna è
gestita da un polinomio (x^4 + 1) definito sui campi finiti e
moltiplicata con un polinomio fisso c(x).
Cifrare con AES
4) AddRoundKey
Ogni byte della tabella viene
Combinato in XOR con la chiave
di sessione con la matrice
ottenuta dai passaggi precedenti.
La chiave di sessione viene
ricavata dalla chiave primaria
dal gestore della chiave.
L’ultimo round salta il MixColumns.
Valutazioni sulla sicurezza di AES
La sicurezza viene valutata dalla National Security Agency (NSA)
su due livelli:
1) SECRET
2) TOP SECRET
Per il primo è sufficiente una chiave a 128 bit mentre per il
secondo si consigliano chiavi a 192 o 256 bit. Ciò non vuol dire
che 128 bit non assicurano sicurezza, ma che con il livello
TOP SECRET ci si vuole garantire un elevato margine di sicurezza
per i prossimi decenni contro un potenziale attacco esaustivo.
Valutazioni sulla sicurezza di AES
La maggior parte degli algoritmi crittografici viene forzato
riducendo il numero di round. L’AES effettua 10 round per le
chiavi a 128 bit, 12 round per la chiave a 192 bit e 14 round
per la chiave a 256 bit. I migliori attacchi sono riusciti a
forzare l’AES con 7 round e chiave di 128 bit, 8 round e
chiave di 192 bit e 9 round e chiave di 256 bit.
Attualmente comunque una ricerca esaustiva è impraticabile,
la chiave a 128 bit produce 3.4 x 10^38 combinazioni
diverse. Un dubbio riguardante l’AES deriva dalla sua
struttura matematica approfonditamente descritta. Sebbene
non sia stata mai utilizzata per condurre un attacco questo
non esclude che in futuro questa descrizione venga utilizzata
per condurre un attacco basato sulle proprietà matematiche.
Attacchi all’AES
Uno dei migliori attacchi a forza bruta è stato svolto dal
progetto distributed.net su una chiave a 64 bit utilizzando
l’algoritmo RC5; l’attacco ha impiegato quasi 5 anni,
utilizzando il tempo “libero”
di migliaia di CPU di volontari sparsi per la rete.
Nel 2002 l’attacco teorico chiamato attacco XSL annunciato
da Courtois e Pieprzyk ha mostrato un potenziale punto
debole di AES nella sua descrizione matematica, ma un
attacco del genere è impraticabile nella realtà per via
dell’enorme tempo macchina richiesto.
AES comunque è considerato un algoritmo veloce, sicuro e
gli attacchi fino a ora presentati si sono rivelati degli
interessanti studi teorici ma di scarsa utilità nella pratica.
Software per la steganografia
Approfondiamo il discorso sulla steganografia con degli esempi
Pratici utilizzando i seguenti software:
1) Steganos Security Suite 4
2) S-Tools 4
Il primo mette a disposizione diverse funzioni, ma noi utilizziamo
per i nostri scopi il tool Steganos File manager che permette di
codificare e nascondere file e cartelle.
Il secondo verrà utilizzato per utilizzare un file audio come
contenitore.
Esempio con Steganos Security
Supponiamo di voler “passare” due file, un testo ed un
database ad un nostro cliente e di farlo inviandogli una
cartolina del luogo della nostra ultima vacanza.
Teniamo bene a mente questa immagine BMP.
Osservazioni sull’immagine
Questa immagine si presta molto bene ai nostri scopi in
quanto presenta uno sfondo molto tenue ed anche un po’
sfocato, il che significa che in quei pixel sarà facile
modificare i bit meno significativi senza perdita di fedeltà
dalla immagine madre. Anche la scogliera in primo piano si
presta ottimamente presentando aree miste e senza una
logica di accoppiamento di aree scure ed aree chiare così
come il mare con in trasparenza la scogliera sommersa.
Possiamo quindi dire con certezza che questa immagine è un
buon contenitore per i nostri scopi grazie anche alla sua
unicità, infatti non è usuale vedere questa immagine cosi
come potrebbe esserlo una foto delle Maldive.
Cattive immagini
Questo tipo di immagini sono da
sconsigliare dato che hanno
pochi colori e quindi codificabili
con meno bit; se cambio dei bit
potrei accorgermi che il nero
non è più nero ed il bianco non
è bianco. Considerato il fatto
che
questa
immagine
è
abbastanza famosa e che si sa
che è composta dai soli colori
bianco e nero, è facilmente
smascherabile da qualche
sospettoso qualora non veda i giusti colori. Altro motivo legato
alla fama di questa immagine è che la persona alla quale
stiamo inviando il file potrebbe averne già una copia e non
desiderarne un’altra.
Esempio con Steganos Security
Tornando alla suite Steganos ci si accorge che se proviamo ad
utilizzare come carrier dei due file da occultare quest’ultima
immagine, ci verrà restituito un messaggio d’errore che ci
dice: impossibile utilizzare questo file. Questo è dovuto alla
natura intrinseca del file che Steganos percepisce dal suo
peso e dalle sue caratteristiche.
Solo dopo diverse modifiche, come l’aggiunta di una
immagine di sfondo e la colorazione di topolino, il file ci è
stato accettato. Da ciò si capisce che è buona norma utilizzare
file con peso di almeno un ordine di grandezza superiore al
file da occultare onde evitare sospetti derivanti dal peso
dell’immagine.
Nella prossima slide il file modificato per Steganos Security.
Esempio con Steganos Security
Si nota quante modifiche abbiamo dovuto apportare per far si
che Steganos Security accettasse questo file come contenitore.
Risultato di un file carrier inopportuno
Se avessimo comunque
utilizzato il file precedente,
un possibile risultato del
suo impiego in modalità di
carrier avrebbe portato ad
un risultato come in figura,
con diverse aree sporche
che
avrebbero
potuto
insospettire
qualche
“curioso”.
Esempio con Steganos Security
Passo successivo in Steganos è digitare una password. A
riguardo di ciò, Steganos scandisce la sicurezza della password
sulla base della sua lunghezza in termini di bit seguendo
questa suddivisione:
da 10 a 40 bit  la password non garantisce nessuna
protezione significativa;
da 41 a 60 bit  impossibile decifrare la password da parte di
tecnici informatici;
da 61 a 110 bit  impossibile decifrare la password da parte
di hacker che utilizzano più computer;
da 111 a 128 bit  impossibile decifrare la password da parte
di hacker professionisti che utilizzano un’ampia gamma di
computer.
Ovviamente Steganos utilizza AES per la crittografia della
password beneficiando di tutte le virtù prima descritte in
merito ad AES.
Esempio con Steganos Security
File originale
File steganografato
E’ evidente come sia impercettibile ed impensabile che questa
bella foto possa contenere informazioni con elevato grado di
sensibilità.
Esempio con S-Tools
S-Tools mostra l’occultamento dei nostri file in un file wave
permettendoci a differenza di Steganos di visualizzare la forma
d’onda del contenitore prima e dopo il suo utilizzo.
Iniziamo con delle considerazioni sul tipo di file carrier da
scegliere.
Visualizziamo la forma d’onda del file candidato al ruolo di
carrier:
Esempio con S-Tools
Si osserva da questa immagine che il file è stereo, utilizza due
canali, e cosa interessante sui due canali abbiamo onde
differenti. Questo, assieme al fatto che ha un andamento
lineare senza picchi accentuati ed un rumore di fondo che si
evidenzia facendo un Noise Reduction con CoolEdit ci dà
preziose indicazione sulla bontà di questo carrier.
Esempio con S-Tools
Abbiamo sin qui detto che si utilizza il rumore di fondo per
nascondere i nostri bit, ma dove è effettivamente questo rumore?
Si osserva un segnale (curva gialla) abbastanza definita ed un
segnale molto frastagliato che lo insegue, è proprio questo a
rappresentare il rumore ed a permettere l’incapsulamento
dell’informazione.
Esempio con S-Tools
Dopo le considerazioni fatte è il momento di nascondere i
nostri file; per far ciò avviamo S-Tools e con un semplice drag
and drop trasciniamo il file contenitore nell’area di lavoro e
notiamo che si sviluppa il suo spettro come in figura.
Fatto ciò con un altro drag and drop trasciniamo su questa
finestra i file da nascondere.
Esempio con S-Tools
S-Tools ci chiederà adesso una password, per la quale
possiamo ritenere valide le considerazioni fatte per Steganos,
e l’algoritmo da utilizzare per la crittazione. La versione
utilizzata di S-Tools prevede la crittografia con IDEA
(International Data Encryption Algorithm), DES (Data
Encryption Standard) e 3DES ( il DES applicato con più
passate), ma non con AES di cui abbiamo ampiamente
parlato. Scegliamo DES ed diamo inizio all’incapsulamento dei
nostri file.
Risultato di S-Tools
File originale
File con dai nascosti
Le due onde sembrano uguali ma nel secondo vi sono anche i
nostri file nascosti.
Se avessimo scelto un file Mp3 e quindi un file audio
compresso, CoolEdit non ci avrebbe dato nessun rumore di
fondo, ed S-Tools lo avrebbe rifiutato come file carrier.
Conclusioni
Lo sviluppo della steganografia è molto importante dato che
è un ulteriore livello di sicurezza in più alla crittografia, e poi
come opinione personale mi sento di dire che è proprio una
bella invenzione, chi penserebbe che dietro una bella foto o
una bella canzone si celano un po’ di file dal contenuto
altamente sensibile!
Questo è ciò che mi ha spinto a fare questo lavoro di ricerca
sulla steganografia, per capire come sia possibile fare
quanto appena detto.
Quindi per chiunque voglia steganografare i sui dati
suggerisco di porre molta attenzione nel file carrier, fate in
modo che sia del giusto formato, delle giuste dimensioni,
che abbia le caratteristiche di cui vi ho parlato e fate molta
attenzione anche alla password impiegata, fate si che regni
la confusione e la diffusione, così come disse Shannon.
Fly UP