STEGANOGRAFIA

L'abate TRITEMIO è l'inventore della steganografia, si chiamava Johann Heidenberg ed era nato a Tritenheim, nella contea di Treviri, il 1° febbraio 1462.

Il termine steganografia deriva dai due vocaboli greci stego (rendo occulto, nascondo) e grajh (la scrittura). Steganografia è dunque "la scrittura nascosta" o meglio ancora l'insieme delle tecniche che consente a due o più persone di comunicare in modo tale da nascondere non tanto il contenuto (come nel caso della crittografia), ma la stessa esistenza della comunicazione agli occhi di un eventuale osservatore. 

L'uso della steganografia nasce perchè in molte situazioni l'uso della crittografia non è sufficiente ed inoltre le restrizioni applicate dai vari governi ai sistemi crittografici hanno indotto a studiare metodi alternativi per lo scambio di messaggi privati, tra cui la stessa steganografia.

La steganografia può esserea utilizzata come una tecnica integrativa alla criptazione, anche se a volte le due cose vengono confuse.

Le differenze tra questi due concetti è che, mentre nel caso della crittografia è consentito al nemico di rilevare, intercettare e modificare i messaggi senza però avere la possibilità di violare le misure di sicurezza garantite dallo specifico sistema crittografico (cioè senza poter accedere all'informazione vera e propria e quindi leggerne il contenuto), l'obiettivo della steganografia è invece quello di nascondere un messaggio dentro un altro messaggio, dall'aspetto innocuo, in modo che il nemico non possa neppure rilevare l'esistenza del primo messaggio. Quindi lo scopo della crittografia è quello di nascondere il contenuto di un messaggio, mentre la steganografia si prefigge di nasconderne l’esistenza.

 

Possiamo classificare le tecniche steganografiche in tre modelli: steganografia sostitutiva, steganografia selettiva e steganografia costruttiva.

 

Steganografia sostitutiva: la maggior parte dei canali di comunicazione (linee telefoniche, trasmissioni radio, ecc.) trasmettono segnali che sono sempre accompagnati da qualche tipo di rumore. 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. La maggior parte dei tools presenti sul mercato si basano su questa idea. Quello che viene ritenuto il principale difetto di queste tecniche è che in genere la sostituzione operata può alterare le caratteristiche statistiche del rumore presente nel media utilizzato. La steganografia selettiva e quella costruttiva hanno proprio lo scopo di eliminare questo difetto della steganografia sostitutiva.

 

Steganografia selettiva: modello teorico che non trova riscontri pratici al momento.

 

Steganografia costruttiva: La steganografia costruttiva affronta lo stesso problema nel modo più diretto, tentando di sostituire il rumore presente nel medium utilizzato con l'informazione segreta opportunamente modificata in modo da imitare le caratteristiche statistiche del rumore originale. Questo approccio è senza dubbio valido, ma presenta anche alcuni svantaggi. Innanzitutto non è facile costruire un modello del rumore: la costruzione di un modello del genere richiede grossi sforzi ed è probabile che qualcuno, in grado di disporre di maggior tempo e di risorse migliori, riesca a costruire un modello più accurato, riuscendo ancora a distinguere tra il r umore originale e un sostituto. Inoltre, se il modello del rumore utilizzato dal metodo steganografico dovesse cadere nelle mani del nemico, egli lo potrebbe analizzare per cercarne possibili difetti e quindi utilizzare proprio il modello stesso per controllare che un messaggio sia conforme a esso. Così, il modello, che è parte integrante del sistema steganografico, fornirebbe involontariamente un metodo di attacco particolarmente efficace proprio contro lo stesso sistema.

 

A causa dei suddetti problemi, la tecnica iniettiva rimane la più conveniente da usare.  Se si hanno particolari esigenze di sicurezza, si può pensare di usare contenitori molto più grandi rispetto al messaggio segreto. In questo modo il messaggio contenitore verrà modificato sono lievemente in modo da rendere impossibile la rilevazione di un messaggio nascosto.

 

Tuttavia rimane un problema ancora da risolvere. In ambito crittografico il principio di Kerckhoff recita così: la sicurezza del sistema deve basarsi sull'ipotesi che il nemico abbia piena conoscenza dei dettagli di progetto e implementazione del sistema stesso; la sola informazione di cui il nemico non può disporre è una sequenza (corta) di numeri casuali - la chiave segreta - senza la quale, osservando un canale di comunicazione, non deve avere neanche la più piccola possibilità di verificare che è in corso una comunicazione nascosta.

È facile capire che, volendo aderire a questo principio, le tecniche esposte sono insufficienti. Infatti se i dettagli dell’algoritmo utilizzato sono resi pubblici, chiunque è in grado di accedere ad eventuali informazioni nascoste, semplicemente applicando il procedimento inverso. Ecco perché si rende necessaria una fase di preelaborazione del messaggio segreto. La soluzione più ovvia è quella di crittografare il messaggio segreto prima di iniettarlo. Così facendo il problema però non è del tutto risolto, poiché il file cifrato può comunque essere estratto da chiunque e si presume che un crittoanalista esperto possa riconoscere un file prodotto da un programma di crittografia convenzionale. A questo punto il sistema steganografico fallisce. Mentre il fallimento di un sistema crittografico è decretato dalla lettura del messaggio cifrato da parte del nemico, un sistema steganografico si può decretare fallito quando ci si accorge della sola presenza di un messaggio nascosto. La soluzione, quindi, è quella di camuffare il messaggio cifrato prima di iniettarlo in modo che risulti indistinguibile da semplice rumore. Per esempio, se un messaggio è stato cifrato con PGP, il file cifrato rispetterà un particolare formato contenente, oltre al blocco di dati cifrati, altri dati per lo più ridondanti che facilitano la gestione del file da parte di PGP. Esistono programmi come Stealth capaci di eliminare (e di reinserire nella fase di ricostruzione) tutte le informazioni diverse dal blocco di dati cifrati. In questo modo il file nascosto appare come una sequenza di bit apparentemente casuale, che è molto difficile distinguere da rumore. L’attacco a questo punto sarà molto più complesso perché seppure verrà estratto il file nascosto sarà difficile capire che quei caratteri costituiscono un blocco di dati cifrati. Quindi soltanto disponendo della chiave giusta si potrà accedere al messaggio in chiaro. In caso contrario non si potrà neppure capire se il fallimento è dovuto al fatto di non disporre della chiave giusta o al fatto che il file contenitore non contiene alcun messaggio segreto. 

 

Un metodo alternativo all'uso congiunto di PGP e Stealth è dato dall'uso di programmi espressamente progettati per trasfor mare un file in rumore apparente (per esempio, Wnstorm, White Noise Storm). Riassumendo, un sistema steganografico completo deve comprendere due fasi fondamentali: trasformazione del messaggio in chiaro in rumore apparente. Questa fase prevede l'uso di un sistema di crittografia convenzionale e quindi di un qualche tipo di chiave; iniezione nel (o generazione del) messaggio contenitore.


Come fare per ...

In pratica viene utilizzato un file comune (ad esempio una immagine in formato .bmp o un file musicale .mp3) per introdurvi all'interno un altro file normalmente criptato contenente informazioni del tutto estranee alla natura del file principale che lo ospita. In pratica il file .mp3 può contenere anche un testo, un immagine, una registrazione vocale in formato diverso dall'mp3 o altro ancora.


Ovviamente la caratteristica comune a tutti i programmi di steganografia è che consentono al file principale di continuare a svolgere correttamente il suo compito: quindi ad esempio una immagine con la foto della fidanzata potrà essere correttamente visualizzabile anche se al suo interno è contenuta anche la lista delle nostre password.


Inoltre, senza lo stesso software steganografico che è servito per introdurre il file secondario all'interno del file principale, risulterà quasi impossibile accorgersi dell'intruso. Non verranno infatti visualizzate estensioni anomale o errori. Non si avranno problemi con software antivirus o durante le compressioni ad esempio .zip o .rar. Anche ipotizzando di disporre del software steganografico adatto, e quindi di vedere segnalato il corpo estraneo all'interno del file, si dovrà conoscere la necessaria chiave di decriptazione.

TOOLS

Steganos 3 Security Suite Il programma è stato sviluppato dalla DEMCOM di Francoforte (Germania) in collaborazione con CenturionSoft di Washington (USA). La versione 3 è stata rilasciata nei primi mesi del 2001 per piattaforma Intel con sistema operativo Windows 95, 98, ME, NT 4.0 e 2000. I requisiti minimi richiesti dal programma sono un processore Pentium, 32 MB di ram, circa 15 Mb di spazio libero su hard-disk. Il programma può essere scaricato gratuitamente dal sito http://www.steganos.com/ in versione shareware. Dopo 30 giorni di utilizzo è possibile continuare ad utilizzare il programma, ma in versione light, cioè con alcune funzionalità disattivate, oppure si può scegliere di registrarsi per continuare ad usarlo normalmente. Più che un software steganografico, Steganos 3 è una suite di strumenti per la sicurezza
Encrypt Pic  
S-Tools 4 S-Tools 4, scritto da Andy Brown, è un programma steganografico tra i più diffusi, facilmente reperibile in rete presso i più  comuni siti di software freeware. L’uso del programma, infatti, è completamente gratuito ed illimitato nel tempo
Jsteg Shell 2.0 Jsteg shell, scritto da Derek Upham e John Korejwa funziona su tutte le versioni di Windows esclusa la 2000.  è specifico per il formato JPG
Gif-it-up 1.0 Questo software è dedicato alla steganografia con file GIF come contenitori.  
Stego  
Psteg  
Mp3stego

Questo programma si occupa di steganografia con file MP3 come contenitori.

BMPStego  
Texto Texto is a text steganography program which transforms uuencoded or PGP ascii-armoured ascii data into English sentences
Contraband  
Hide and Seek  
Invisible Encryption  
PGPn123  
wbStego  
Scytale Windows PGP interface that includes an option to hide data in .PCX files
Steganos Nasconde i dati in files BMP, VOC, WAV e ASCII
Digital Picture Envelope  
Hide 4 PGP Nasconde i dati in files BMP, WAV, e VOC
jpeg-jsteg  
PGE - Pretty Good Envelope Nascondei dati in files GIF o JPG di qualunque dimensioneo risoluzione
Stealth A PGP tool for steganography which strips any standard headers off of a PGP encrypted message to make the result look like random noise.
Wnstorm Wnstorm (White Noise Storm) is a cryptography and steganography software package which you can use to encrypt and hide files within PCX images.
Invisible Secrets 3 Questo tools ti offre la possibilità di criptare e nascondere files in altri files.
Blindside Ti permette di concatenare file e nasconderli in un immagine
NiceText Converte qualunque file in linguaggio testo pseudo-naturale
Snow Concatena messaggi ascii
Stash-It Stash-It will allow you to hide (and extract) any data file inside a perfectly normal BMP, TIFF, PNG or PCX file.
TextHide TextHide can be used for texts of any area
wbStego wbStego is a tool that hides any type of file in bitmap images, text files, HTML files or Adobe PDF files

Strumenti per rilevare immagini steganografate

StegDetect