giovedì 13 luglio 2023

La steganografia sostitutiva applicata ai file immagine GIF

Il termine steganografia si riferisce ad una tecnica elusiva della comunicazione che ha origini molto antiche. Si tratta dell'insieme delle tecniche che consente a due o più persone di comunicare tra loro in modo tale da nascondere l'esistenza della comunicazione agli occhi di un eventuale osservatore. La steganografia dunque è l’arte di nascondere un messaggio all’interno di un contenitore o vettore, in apparenza insospettabile, così da rendere non tanto la decodifica del contenuto difficoltosa come avviene per la crittografia, quanto pressoché impossibile la sua stessa identificazione.

La steganografia sostitutiva è senz'altro la tecnica steganografica moderna 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.

Il formato immagine GIF è uno dei tanti contenitori che ben si presta per inserire al suo interno un altro file o messaggio segreto. 

Il GIF fa uso di una palette di colori, vale a dire un sottoinsieme di colori prestabilito. I pixel che formano l’immagine 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.

Sino a poco tempo fa si pensava fosse alquanto improbabile fare della steganografia utilizzando come contenitori i file immagine GIF. Questo non solo per le evidenti difficoltà dovute al fatto che questo tipo di file è compresso in maniera pesante col metodo LZW e, soprattutto, per le ridotte dimensioni del file, ma anche per la sua particolare struttura interna. Le tecnologie moderne, invece, hanno fatto sì che venissero implementati dei software “ad hoc” capaci di steganografare dei file all’interno di immagini in formato GIF.

Per meglio comprendere, però, come sia possibile utilizzare un file GIF come contenitore, si rende necessario spendere due parole per spiegare com’è strutturato al suo interno un file GIF. Lo faremo banalizzando un po’ la spiegazione dei contenuti, rendendoli molto chiari e fruibili da chiunque, anche dai neofiti della materia. Ciò ci aiuterà a capire meglio come opera un algoritmo steganografico all’interno di un file GIF. Quello che sappiamo è che un file GIF è un tipo di immagine che occupa poco spazio sul disco in quanto è a bassa risoluzione grafica, dato l’utilizzo di massimo 256 colori.

Se prendiamo dunque un GIF, quello che vediamo noi è solo la crosta superficiale dell’immagine, mentre sotto tale crosta c’è una palette di 256 colori. Immaginiamo ora la rappresentazione di una fotografia digitale di un prato verde che contrasta un cielo azzurro. Sotto l’immagine di questo paesaggio che noi vediamo c’è una griglia con 256 caselle, contenenti altrettanti colori, che noi, però, non vediamo. Affinché sia possibile visualizzare nell’immagine il colore verde del prato, in corrispondenza della casella contenente il colore verde c’è posizionato un puntatore che indica che in una data posizione della crosta superficiale che noi vediamo ci sono dei pixel colorati di verde che corrispondono al prato. Lo stesso dicasi per il cielo: in corrispondenza del cielo azzurro rappresentato nell’immagine, nella parte sottostante che noi non vediamo, ma che ospita la palette dei colori, un altro puntatore è posizionato sulla casella del colore azzurro, il quale ci consente di visualizzare il cielo dell’immagine in questione.

In definitiva, tutti i colori rappresentati nell’immagine che noi vediamo, derivano dal fatto che all’interno dell’immagine stessa ci sono altrettanti puntatori posizionati su tutti i colori utilizzati in quell’immagine.

Come operano allora i software steganografici nei file GIF?

Dal momento che non tutti i 256 colori a disposizione vengono effettivamente utilizzati, anzi, in genere non si va oltre la metà, e tenendo in considerazione che la palette dei colori è comunque formata da 256 caselle a prescindere dai colori utilizzati, i software steganografici che si occupano di immagini GIF operano in una maniera semplicissima e, per certi versi, disarmante. Tenendo come esempio ancora l’immagine del paesaggio col prato verde ed il cielo azzurro, l’algoritmo steganografico opera nel seguente modo.

Prende possesso di una casella contenente un colore qualsiasi che non è stato utilizzato nell’immagine e vi inserisce al suo interno un colore verde identico a quello rappresentato dal prato, iniettando però al suo interno un “pezzettino” del file segreto che si vuole steganografare. Prende poi il puntatore che era posizionato sul colore verde originale e lo sposta sul nuovo colore verde nel cui interno è stato nascosto qualche bit del file segreto. Continua poi ad operare in questo modo con l’azzurro del cielo e con tutti gli altri colori utilizzati per rappresentare l’immagine in questione.

Il risultato è sorprendente: messe a confronto, l’immagine originale e quella manipolata dall’algoritmo steganografico, sono perfettamente identiche, anche se sottoposte a zoom o screening approfondito. In compenso però, nella nuova immagine si è riusciti ad iniettare un altro file, naturalmente di dimensioni ridotte per rispettare il rapporto di 1 a 8 oppure 1 a 10 tra file contenitore e messaggio inserito, per salvaguardare l’integrità dell’immagine stessa.

Come è facile intuire, partendo dai concetti di base della steganografia, è facile estendere queste tecniche ai più svariati formati. Oltre a numerosi applicativi per i formati più comuni BMP, WAV, JPEG, MP3, etc, in Rete è possibile trovare tool steganografici per i formati più vari. In particolare esistono programmi capaci di utilizzare addirittura file PDF e HTML.

Se volete approfondire l’argomento della steganografia, vi consiglio un libro chiaro e completo del percorso storico e delle nuove tecniche steganografiche spiegate con vari esempi applicativi e con l’utilizzo di software steganografici. Il suo titolo è: “La steganografia da Erodoto a Bin Laden: Viaggio attraverso le tecniche elusive della comunicazione”, e lo trovate su https://www.amazon.it/dp/1520262221 

Dott. Nicola Amato



Nessun commento:

Posta un commento