UNIVERSITÀ DEGLI STUDI DELL’INSUBRIA Facoltà di Scienze matematiche, fisiche e naturali

download UNIVERSITÀ DEGLI STUDI DELL’INSUBRIA Facoltà di Scienze matematiche, fisiche e naturali

If you can't read please download the document

description

UNIVERSITÀ DEGLI STUDI DELL’INSUBRIA Facoltà di Scienze matematiche, fisiche e naturali Corso di Laurea in SCIENZE DELLA COMUNICAZIONE Dott. Nicola AMATO. Scritture Segrete. Lezione n. 9 La steganografia moderna - parte 3 (La steganografia sostitutiva 2). Scritture Segrete - PowerPoint PPT Presentation

Transcript of UNIVERSITÀ DEGLI STUDI DELL’INSUBRIA Facoltà di Scienze matematiche, fisiche e naturali

  • UNIVERSIT DEGLI STUDI DELLINSUBRIAFacolt di Scienze matematiche, fisiche e naturali

    Corso di Laurea in SCIENZE DELLA COMUNICAZIONE

    Dott. Nicola AMATO

  • Scritture Segrete Lezione 9 - La steganografia moderna - parte 3 (La steganografia sostitutiva 2) Abstract sulla steganografia sostitutiva

    Quando usare i file compressi come contenitori steganografici e i problemi dovuti alla compressione Come utilizzare un file GIF come contenitore steganografico

  • Scritture Segrete Lezione 9 - La steganografia moderna - parte 3 (La steganografia sostitutiva 2)

    Lo schema logico che sta alla base di una qualsiasi tecnica steganografica presenta tre elementi fondamentali:

    Il messaggio segreto che si desidera trasmettere

    Il messaggio contenitore, ovvero un messaggio all'interno del quale nascondere il messaggio segreto

    Lalgoritmo steganografico utilizzato SteganografiasostitutivaSteganografiaselettivaSteganografiacostruttiva

  • Scritture Segrete Lezione 9 - La steganografia moderna - parte 3 (La steganografia sostitutiva 2) Quando usare i file compressi come contenitore

    I problemi dovuti alla compressione

    RLELZWJPEG

  • Scritture Segrete Lezione 9 - La steganografia moderna - parte 3 (La steganografia sostitutiva 2) Uno dei metodi pi semplici di compressione il metodo Run Lenght Encoding (RLE). Esso sostituisce a sequenze di pixel identici lindicazione del numero di volte che tale pixel si ripete, seguita dal valore del pixel stesso.

    Vediamo un esempio applicativo.

    Poniamo di avere la seguente sequenza originaria di bit:001011110010000111110000

    Ecco come il metodo RLE la trasforma:2(0)1(1)1(0)4(1)2(0)1(1)4(0)5(1)4(0)

  • Scritture Segrete Lezione 9 - La steganografia moderna - parte 3 (La steganografia sostitutiva 2) Un altro metodo di compressione molto efficace Lempel-Ziv-Welch (LZW).

    Esso basato sulla costituzione di un dizionario contenente sequenze numeriche di varia lunghezza, presenti nei dati da comprimere.

    Ogni volta che viene incontrata una sequenza gi presente nel dizionario, essa viene rimpiazzata con il codice corrispondente; quando si presenta una nuova sequenza, essa viene aggiunta al dizionario che viene costruito nel corso del processo di codifica e di decodifica.

  • Scritture Segrete Lezione 9 - La steganografia moderna - parte 3 (La steganografia sostitutiva 2) Il JPEG (Joint Photographic Experts Group) particolarmente indicato per comprimere immagini di tipo fotografico.

    La compressione JPEG consente alloperatore di regolare lentit della perdita di informazioni. Ovviamente, tanto minore sar la perdita, tanto minore il fattore di compressione, e viceversa, per ottenere una compressione molto elevata si deve accettare una maggiore perdita di informazioni.

  • Scritture Segrete Lezione 9 - La steganografia moderna - parte 3 (La steganografia sostitutiva 2) Come utilizzare un file GIF come contenitore

    Gestione della palette dei colori

  • Scritture Segrete Lezione 9 - La steganografia moderna - parte 3 (La steganografia sostitutiva 2) Come utilizzare un file GIF come contenitore

    Gestione della palette dei coloriPalette di 256 colori

    Steganografia sostitutiva senz'altro la tecnica steganografica pi diffusa, tanto che spesso quando si parla di steganografia ci si riferisce implicitamente a quella di questo tipo. Alla base di questa tecnica c' un'osservazione: la maggior parte dei canali di comunicazione (linee telefoniche, trasmissioni radio, etc.) trasmettono segnali che sono sempre accompagnati da qualche tipo di rumore o disturbo. In genere definito rumore quel fruscio di sottofondo che sentiamo in audio, oppure il classico effetto neve di alcune immagini. Questo rumore pu essere sostituito da un segnale, il messaggio segreto, che stato trasformato in modo tale che, a meno di conoscere una chiave segreta, indistinguibile dal rumore vero e proprio, e quindi pu essere trasmesso senza destare sospetti.Quasi tutti i programmi si basano su questa idea. La tecnica impiegata nella maggior parte dei programmi concettualmente molto semplice: sostituire i bit meno significativi dei file digitalizzati con i bit che costituiscono il file segreto (i bit meno significativi, infatti, corrispondono ai valori meno significativi, importanti ed evidenti di una misura, cio proprio quelli che possono essere facilmente affetti da errore!). Quello che succede quindi che il file contenitore risultante, dopo un'iniezione steganografica, si presenta in tutto e per tutto simile alloriginale, con differenze difficilmente percettibili e quindi, a meno di confronti approfonditi con il file originale (comunque non effettuabili ad occhio nudo) difficile dire se le eventuali perdite di qualit siano da imputare al rumore od alla presenza di un messaggio segreto steganografato. Inoltre il pi delle volte il file originale non disponibile e quindi effettuare questo confronto pressoch impossibile.In base a quanto si detto, tutto sembra funzionare perfettamente, ma c' un problema intrinseco nell'operare nel modo sopra esposto. Il problema risiede proprio nel formato del file contenitore utilizzato. I formati bitmap e wav, infatti, sono abbastanza pesanti ed ingombranti come si visto e proprio per questo non sono molto popolari sulla rete Internet, basta vedere quanto tempo ci impiega una pagina web a caricarsi quando contiene questo tipo di immagini, quindi il solo fatto di scambiare un file bitmap o wav potrebbe destare sospetti. Ecco perch, sulla base del concetto originario, si sono escogitate altre tecniche steganografiche da attuare anche sui formati di file pi comuni in Internet. Tuttavia si sono dovute trovare delle soluzioni alternative.In particolare, non possibile operare come sinora descritto con i file compressi. Se iniettassimo delle informazioni in un file bitmap e dopo lo convertissimo in JPEG, ad esempio, le informazioni andrebbero inevitabilmente perse. La compressione JPEG, infatti, ha la tendenza a preservare le caratteristiche visive dell'immagine piuttosto che l'esatta informazione contenuta nella sequenza di pixel, di conseguenza sarebbe impossibile risalire al file bitmap originario.Quello che si fa in questi casi operare ad un livello di rappresentazione intermedio. Il problema principale della steganografia che usa file compressi come contenitori che, purtroppo, facilmente attaccabile, nel senso che se un file compresso che fa da contenitore viene decompresso e compresso nuovamente, facile capire che il messaggio nascosto andr perso.RLE conta il numero di volte che un pixel si ripete (2(pixel 5))(7(pizel65)) e cos via. I dati sono ragruppati in pacchetti ove nellheader c la posizione che il pixel occupa nella matrice dellimmagine.LZW crea un dizionario di sequenze presenti che si ripetono nello spazioJPEG permette di regolare il fattore di compressione. Minore la perdita dei dati, minore il fattore di compressione.Utilizzando impropriamente i file compressi, ossia comprimiamo ed espandiamo, il dato steganografato va perso. Ci dovuto al funzionamento degli algoritmi di compressione che ogni volta rianalizzano i dati.

    In base a quanto si detto, tutto sembra funzionare perfettamente, ma c' un problema intrinseco nell'operare nel modo sopra esposto. Il problema risiede proprio nel formato del file contenitore utilizzato. I formati bitmap e wav, infatti, sono abbastanza pesanti ed ingombranti come si visto e proprio per questo non sono molto popolari sulla rete Internet, basta vedere quanto tempo ci impiega una pagina web a caricarsi quando contiene questo tipo di immagini, quindi il solo fatto di scambiare un file bitmap o wav potrebbe destare sospetti. Ecco perch, sulla base del concetto originario, si sono escogitate altre tecniche steganografiche da attuare anche sui formati di file pi comuni in Internet. Tuttavia si sono dovute trovare delle soluzioni alternative.In particolare, non possibile operare come sinora descritto con i file compressi. Se iniettassimo delle informazioni in un file bitmap e dopo lo convertissimo in JPEG, ad esempio, le informazioni andrebbero inevitabilmente perse. La compressione JPEG, infatti, ha la tendenza a preservare le caratteristiche visive dell'immagine piuttosto che l'esatta informazione contenuta nella sequenza di pixel, di conseguenza sarebbe impossibile risalire al file bitmap originario.Quello che si fa in questi casi operare ad un livello di rappresentazione intermedio. Il problema principale della steganografia che usa file compressi come contenitori che, purtroppo, facilmente attaccabile, nel senso che se un file compresso che fa da contenitore viene decompresso e compresso nuovamente, facile capire che il messaggio nascosto andr perso.RLE conta il numero di volte che un pixel si ripete (2(pixel 5))(7(pizel65)) e cos via. I dati sono ragruppati in pacchetti ove nellheader c la posizione che il pixel occupa nella matrice dellimmagine.LZW crea un dizionario di sequenze presenti che si ripetono nello spazioJPEG permette di regolare il fattore di compressione. Minore la perdita dei dati, minore il fattore di compressione.Utilizzando impropriamente i file compressi, ossia comprimiamo ed espandiamo, il dato steganografato va perso. Ci dovuto al funzionamento degli algoritmi di compressione che ogni volta rianalizzano i dati.

    In base a quanto si detto, tutto sembra funzionare perfettamente, ma c' un problema intrinseco nell'operare nel modo sopra esposto. Il problema risiede proprio nel formato del file contenitore utilizzato. I formati bitmap e wav, infatti, sono abbastanza pesanti ed ingombranti come si visto e proprio per questo non sono molto popolari sulla rete Internet, basta vedere quanto tempo ci impiega una pagina web a caricarsi quando contiene questo tipo di immagini, quindi il solo fatto di scambiare un file bitmap o wav potrebbe destare sospetti. Ecco perch, sulla base del concetto originario, si sono escogitate altre tecniche steganografiche da attuare anche sui formati di file pi comuni in Internet. Tuttavia si sono dovute trovare delle soluzioni alternative.In particolare, non possibile operare come sinora descritto con i file compressi. Se iniettassimo delle informazioni in un file bitmap e dopo lo convertissimo in JPEG, ad esempio, le informazioni andrebbero inevitabilmente perse. La compressione JPEG, infatti, ha la tendenza a preservare le caratteristiche visive dell'immagine piuttosto che l'esatta informazione contenuta nella sequenza di pixel, di conseguenza sarebbe impossibile risalire al file bitmap originario.Quello che si fa in questi casi operare ad un livello di rappresentazione intermedio. Il problema principale della steganografia che usa file compressi come contenitori che, purtroppo, facilmente attaccabile, nel senso che se un file compresso che fa da contenitore viene decompresso e compresso nuovamente, facile capire che il messaggio nascosto andr perso.RLE conta il numero di volte che un pixel si ripete (2(pixel 5))(7(pizel65)) e cos via. I dati sono ragruppati in pacchetti ove nellheader c la posizione che il pixel occupa nella matrice dellimmagine.LZW crea un dizionario di sequenze presenti che si ripetono nello spazioJPEG permette di regolare il fattore di compressione. Minore la perdita dei dati, minore il fattore di compressione.Utilizzando impropriamente i file compressi, ossia comprimiamo ed espandiamo, il dato steganografato va perso. Ci dovuto al funzionamento degli algoritmi di compressione che ogni volta rianalizzano i dati.

    In base a quanto si detto, tutto sembra funzionare perfettamente, ma c' un problema intrinseco nell'operare nel modo sopra esposto. Il problema risiede proprio nel formato del file contenitore utilizzato. I formati bitmap e wav, infatti, sono abbastanza pesanti ed ingombranti come si visto e proprio per questo non sono molto popolari sulla rete Internet, basta vedere quanto tempo ci impiega una pagina web a caricarsi quando contiene questo tipo di immagini, quindi il solo fatto di scambiare un file bitmap o wav potrebbe destare sospetti. Ecco perch, sulla base del concetto originario, si sono escogitate altre tecniche steganografiche da attuare anche sui formati di file pi comuni in Internet. Tuttavia si sono dovute trovare delle soluzioni alternative.In particolare, non possibile operare come sinora descritto con i file compressi. Se iniettassimo delle informazioni in un file bitmap e dopo lo convertissimo in JPEG, ad esempio, le informazioni andrebbero inevitabilmente perse. La compressione JPEG, infatti, ha la tendenza a preservare le caratteristiche visive dell'immagine piuttosto che l'esatta informazione contenuta nella sequenza di pixel, di conseguenza sarebbe impossibile risalire al file bitmap originario.Quello che si fa in questi casi operare ad un livello di rappresentazione intermedio. Il problema principale della steganografia che usa file compressi come contenitori che, purtroppo, facilmente attaccabile, nel senso che se un file compresso che fa da contenitore viene decompresso e compresso nuovamente, facile capire che il messaggio nascosto andr perso.RLE conta il numero di volte che un pixel si ripete (2(pixel 5))(7(pizel65)) e cos via. I dati sono ragruppati in pacchetti ove nellheader c la posizione che il pixel occupa nella matrice dellimmagine.LZW crea un dizionario di sequenze presenti che si ripetono nello spazioJPEG permette di regolare il fattore di compressione. Minore la perdita dei dati, minore il fattore di compressione.Utilizzando impropriamente i file compressi, ossia comprimiamo ed espandiamo, il dato steganografato va perso. Ci dovuto al funzionamento degli algoritmi di compressione che ogni volta rianalizzano i dati.

    Il formato GIF invece merita un discorso a parte perch per raggiungere lo scopo di trasformarlo in messaggio contenitore, si utilizza un approccio un po' diverso dai precedenti. Il formato GIF fa uso di una palette di colori, cio un sottoinsieme di colori prestabilito. I pixel che formano limmagine possono assumere uno dei colori della palette.Questo si traduce in una grossa economia di rappresentazione del file, visto che ogni pixel pu essere rappresentato semplicemente da un puntatore ad un colore della palette. Un caso tipico quello delle GIF a 256 colori. Nel momento in cui un'immagine acquisita da uno scanner contiene sicuramente un numero maggiore di 256 colori.Tuttavia esistono alcuni algoritmi capaci di diminuire il numero di colori utilizzati limitando il pi possibile la perdita di qualit. La soluzione che viene di solito adottata dunque la seguente: si acquisisce un'immagine e si limita il numero di colori ad un numero inferiore a 256, utilizzando uno degli algoritmi suddetti. Dopodich si converte in GIF riempiendo la palette con dei colori molto simili a quelli rimasti. Questo significa che ogni volta che si dovr rappresentare un colore si potr scegliere di rappresentarlo in due modi: con il colore originale oppure con il colore aggiunto simile all'originale.Quindi c' una possibilit di scelta e tutte le volte che c' possibilit di scelta fra pi alternative si ha la possibilit di nascondere un'informazione. E uno dei principi fondamentali della steganografia. Se le alternative sono due potremo nascondere un bit (se il bit 0, scegliamo la prima, se 1 la seconda); se le alternative sono quattro potremo nascondere due bit (00 per la prima, 01 per la seconda, 10 per la terza, 11 per la quarta) e cos via.La soluzione esposta senzaltro molto ingegnosa, ma presenta un problema: molto semplice scrivere un programma che analizzi la palette ed individui sottoinsiemi di colori simili e quindi la probabile presenza di un messaggio steganografato. In effetti, questo tipo di attacco stato portato a termine con pieno successo da diversi steganalisti, tanto che alcuni di loro hanno sostenuto che il formato GIF non fosse adatto alla steganografia. In realt esiste un altro metodo per steganografare con GIF che si basa sulla seguente osservazione: un immagine GIF pu essere rappresentata in 256 modi diversi.Come si detto infatti, la palette che sta alla base di una GIF si compone di 256 colori, tuttavia non importante lordine con cui i colori compaiono nella palette e quindi i 256 colori di una palette possono essere permutati in 256 modi, ci vuol dire che una stessa immagine GIF pu essere rappresentata in 256 modi diversi, a patto di cambiare opportunamente la sequenza dei puntatori. Ancora una volta ci troviamo di fronte a delle alternative. Poich le alternative sono 256, ci significa che potremo codificare log(256) = 1683 bit, e questo indipendentemente dalle dimensioni dellimmagine. Basta semplicemente permutare in modo opportuno la palette.Il formato GIF invece merita un discorso a parte perch per raggiungere lo scopo di trasformarlo in messaggio contenitore, si utilizza un approccio un po' diverso dai precedenti. Il formato GIF fa uso di una palette di colori, cio un sottoinsieme di colori prestabilito. I pixel che formano limmagine possono assumere uno dei colori della palette.Questo si traduce in una grossa economia di rappresentazione del file, visto che ogni pixel pu essere rappresentato semplicemente da un puntatore ad un colore della palette. Un caso tipico quello delle GIF a 256 colori. Nel momento in cui un'immagine acquisita da uno scanner contiene sicuramente un numero maggiore di 256 colori.Tuttavia esistono alcuni algoritmi capaci di diminuire il numero di colori utilizzati limitando il pi possibile la perdita di qualit. La soluzione che viene di solito adottata dunque la seguente: si acquisisce un'immagine e si limita il numero di colori ad un numero inferiore a 256, utilizzando uno degli algoritmi suddetti. Dopodich si converte in GIF riempiendo la palette con dei colori molto simili a quelli rimasti. Questo significa che ogni volta che si dovr rappresentare un colore si potr scegliere di rappresentarlo in due modi: con il colore originale oppure con il colore aggiunto simile all'originale.Quindi c' una possibilit di scelta e tutte le volte che c' possibilit di scelta fra pi alternative si ha la possibilit di nascondere un'informazione. E uno dei principi fondamentali della steganografia. Se le alternative sono due potremo nascondere un bit (se il bit 0, scegliamo la prima, se 1 la seconda); se le alternative sono quattro potremo nascondere due bit (00 per la prima, 01 per la seconda, 10 per la terza, 11 per la quarta) e cos via.La soluzione esposta senzaltro molto ingegnosa, ma presenta un problema: molto semplice scrivere un programma che analizzi la palette ed individui sottoinsiemi di colori simili e quindi la probabile presenza di un messaggio steganografato. In effetti, questo tipo di attacco stato portato a termine con pieno successo da diversi steganalisti, tanto che alcuni di loro hanno sostenuto che il formato GIF non fosse adatto alla steganografia. In realt esiste un altro metodo per steganografare con GIF che si basa sulla seguente osservazione: un immagine GIF pu essere rappresentata in 256 modi diversi.Come si detto infatti, la palette che sta alla base di una GIF si compone di 256 colori, tuttavia non importante lordine con cui i colori compaiono nella palette e quindi i 256 colori di una palette possono essere permutati in 256 modi, ci vuol dire che una stessa immagine GIF pu essere rappresentata in 256 modi diversi, a patto di cambiare opportunamente la sequenza dei puntatori. Ancora una volta ci troviamo di fronte a delle alternative. Poich le alternative sono 256, ci significa che potremo codificare log(256) = 1683 bit, e questo indipendentemente dalle dimensioni dellimmagine. Basta semplicemente permutare in modo opportuno la palette.