outguess - universal steganographic tool |
outguess [ -emt ] [ -r ] [ -k key ] [ -F [+-] ] [ -d datafile ] [ -s seed ] [ -i limit ] [ -x maxkeys ] [ -p param ] [ inputfile [ outputfile ]] |
Outguess e' un tool universale di steganografia che consente l'inserimento di informazioni cifrate nei bits ridondanti di una certa sorgente di dati. La natura di questa sorgente e' irrilevante per il core di outguess. Il programma si appoggia su degli handlers specifici che estraggono i bits ridondanti dalla sorgente e li riscrivono dopo la modifica. Attualmente solo i formati di immagini PPM, PNM e JPEG sono supportati, comunque outguess puo' utilizzare qualsiasi tipo di dati, purche' venga fornito un handler adeguato. |
Outguess utilizza una sorta di meccanismo, detto, "iteratore" per selezionare quali bit possono essere modificati. Per mutare il comportamento dell' "iteratore" si puo' usare un seme, che vien inserito nei dati insieme al resto del messaggio. Alternando il seme, outguess puo' provare a trovare una sequenza di bits che renda minimi i cambiamenti nella sorgente di dati. |
Inoltre, Outguess permette di nascondere due messaggi distinti nella sorgente. |
Le opzioni sulla linea di comando, indicate con lettere maiuscole, si riferiscono al secondo messaggio. |
-F [+-] |
Indica ad OutGuess di preservare l'andamento statistico della sorgente di dati basato sulla frequenza delle componenti. Quindi, nessun attacco statistico basato sul calcolo delle frequenze potra' rivelare la presenza di contenuti nascosti. Questa opzione e' abilitata di default. |
-kK key |
Specifica la chiave segreta usata per cifrare e nascondere il messaggio. |
-dD datafile |
Specifica il nome del file contenente il messaggio da nascondere. |
-sS seed |
Specifica il seme iniziale per l' "iteratore" utilizzato per scegliere i bits nella parte ridondante dei dati. Se non viene specificato un limite superiore, l' "iteratore" usera' questo seme senza provare ad effettuare un'inserzione ottimale (cioe' che modifichi in maniera minima la sorgente di dati). |
-iI limit |
Specifica il limite superiore per la scelta del seme dell' "iteratore". Il valore massimo e' 65535. |
-eE |
Utilizzare la correzione degli errori per la cifratura e decifratura dei dati. |
Altre opzioni generali applicabili ad outguess: |
-r |
Recupera un messaggio da una sorgente dati. Se quest'opzione non e' specificata, outguess inserira' un messaggio. |
-x maxkeys |
Se la seconda chiave non riesce a generare un "iteratore" che vada bene per inserire i dati, viene calcolato un nuovo numero per la seconda chiave. |
-p param |
Passa una stringa come parametro all'handler. Per le immagini JPEG si tratta della qualita' di compressione per le immagini, varia da 75 a 100. Una maggiore qualita' richiede un maggior numero di bits per nascondere un messaggio nella sorgente. |
-m |
Marca i pixel che sono stati modificati |
-t |
Raccoglie statistiche sull'utilizzo dei bits ridondanti. Ripetuto rende piu' prolisso l'output. |
Per inserire un messaggio, e' necessario specificare una sorgente ed un file di destinazione. Outguess determina il tipo di file dall'estensione. Se nessuna estensione viene specificata outguess opera' come un filtro ed assume il formato PPM. |
Per inserire il messaggio contenuto in hidden.txt in monkey.jpg: |
outguess -k "password" -d hidden.txt monkey.jpg out.jpg |
Per estrarre: |
outguess -k "password" -r out.jpg message.txt |
Se vuoi inserire un secondo messaggio: |
outguess -k "secret1" -d hide1.txt -E -K "secret2" -D hide2.txt monkey.jpg out.jpg |
Outguess inseririra' hide1.txt e quindi hide2.txt, utilizzando i codice per la correzione degli errori. Il secondo messaggio hide2.txt puo' essere recuperato con |
outguess -k "secret2" -e -r out.jpg message.txt |
Niels Provos <provos@citi.umich.edu> |