[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home] [volume] [parte]


Capitolo 410.   Steganografia

La steganografia è un metodo per nascondere delle informazioni all'interno di qualcosa. Nel concetto di steganografia rientra per esempio l'uso dell'inchiostro simpatico. Nel campo delle informazioni digitali, la steganografia avviene frequentemente attraverso la modifica delle immagini, in modo tale da rendere impercettibile la differenza apportata dall'inserimento dell'informazione addizionale.

L'informazione nascosta attraverso la steganografia richiede spazio; evidentemente, rispetto all'informazione apparente che veicola il messaggio nascosto, l'informazione addizionale può essere solo di entità minore. In questo caso si parla di portante per individuare l'informazione apparente che nasconde quella steganografata.

Nel campo delle immagini digitali, la steganografia si utilizza anche per marchiare i file, con informazioni che contengono i dati sul diritto di autore; in tal caso si parla di filigrana (watermark). Si osservi comunque che l'inserimento di una filigrana all'interno di un file contenente un'immagine, non dimostra la paternità dell'opera; al massimo può dimostrare chi ha eseguito il marchio. Pertanto, di fatto, la filigrana «protegge» l'opera in quanto toglierla comporta normalmente una riduzione della qualità, così che probabilmente solo il suo autore o chi ne possiede i diritti è in grado di fornire un'immagine della qualità originale.

410.1   Tecniche steganografiche

Le tecniche attraverso cui si realizza la steganografia sono varie e possibilmente sconosciute. Quando la tecnica steganografica è nota, ma soprattutto è noto l'algoritmo usato per inserire le informazioni nella portante, di solito i dati da nascondere sono cifrati, salvo il caso della filigrana in cui l'intento può essere proprio quello di rendere evidente l'informazione.

Nel caso delle immagini, se la portante è costituita da un file in formato grezzo, o comunque non compresso (come può essere il formato PNM o il TIFF), l'informazione può avvenire modificando alcuni bit meno significativi che descrivono il colore di ogni punto grafico (pixel). Quando invece l'immagine è costituita da un file in un formato compresso (con perdita di informazioni), la steganografia può sfruttare le caratteristiche dell'algoritmo di compressione stesso per celare le proprie informazioni (la scelta di comprimere in un modo rispetto a un altro determina l'informazione aggiuntiva).

Si possono nascondere delle informazioni anche in un programma eseguibile, quando esiste la possibilità di sostituire delle istruzioni con altre equivalenti, sfruttando così queste variazioni per inserire delle informazioni. Naturalmente ci possono essere anche altre possibilità, in base alle caratteristiche del formato eseguibile da utilizzare; quello che conta è che le modifiche al file per introdurre le informazioni steganografiche non interferiscano con il funzionamento del programma stesso.

È possibile usare anche un file di testo puro per inserire un'informazione addizionale «invisibile», modificando la spaziatura ed eventualmente la punteggiatura. Si può arrivare anche alla sostituzione di parole, attraverso un vocabolario di sinonimi.

Qualunque sia il metodo usato per la steganografia, spesso si richiede che l'informazione aggiunta sia ridondante in qualche modo, per poterla ricostruire anche in caso di un danneggiamento parziale.

410.2   Outguess

Outguess (1) è un programma per la steganografia elettronica in generale, per il quale possono essere scritte delle estensioni per diversi tipi di informazioni. Tuttavia, inizialmente è possibile utilizzare soltanto alcuni formati di immagini per inserire informazioni steganografate:

outguess [opzioni] file_portante_originale file_steganografato
outguess -r [opzioni] file_steganografato file_informazione_segreta

Il modello sintattico da un'idea di massima dell'utilizzo dell'eseguibile outguess: in condizioni normali si inserisce un'informazione segreta, creando così un file steganografato; se si usa l'opzione -r, si estrae l'informazione segreta da un file già steganografato in precedenza.

Outguess ha la capacità di inserire due informazioni steganografiche sovrapposte; inoltre, dal momento che l'algoritmo steganografico è noto, le informazioni possono essere cifrate.

Tabella 410.1. Alcune opzioni.

Opzione Descrizione
-k chiave
-Kchiave
Specifica la chiave (la parola d'ordine) da usare per cifrare o decifrare l'informazione segreta. Nel secondo caso si fa riferimento alla seconda informazione incorporata o da incorporare.
-d file
-D file
Specifica il file contenente i dati da nascondere all'interno di un altro. Nel secondo caso, si tratta del secondo file da inserire.
-e
-E
Con questa opzione si richiede di aggiungere delle ridondanze all'informazione nascosta, in modo da poterla recuperare anche in presenza di qualche piccolo errore nell'informazione portante. Nel secondo caso, si fa riferimento al secondo file da nascondere.
-r
Richiede l'estrazione delle informazioni nascoste.

Segue la descrizione di alcuni esempi.

410.3   Stegdetect

Stegdetect (2) è un programma realizzato dallo stesso autore di Outguess, con lo scopo di cercare di individuare la presenza di informazioni steganografiche all'interno di file che apparentemente contengono solo un'immagine.

Il programma è in grado, teoricamente, di individuare la presenza di diversi tipi di algoritmi steganografici, ma non si può contare che l'analisi sia attendibile; soprattutto, non si può contare sul fatto che sia rivelato alcunché, anche quando l'informazione nascosta esiste veramente.

stegdetect [opzioni] [file]...

Il programma stegdetect, viene usato normalmente senza opzioni, indicando nella riga di comando l'elenco dei file da controllare; se questa indicazione manca, stegdetect attende il nome dei file da controllare dallo standard input. Ecco un esempio molto semplice di utilizzo:

stegdetect *.jpg[Invio]

...
000001.jpg : negative
000002.jpg : jphide(*)
000003.jpg : skipped (false positive likely)
000004.jpg : jphide(***)
000005.jpg : outguess(**)
000007.jpg : negative
...

Come si può intuire, gli asterischi vengono usati per indicare la probabilità con la quale è da ritenere che esista effettivamente un'informazione steganografata con l'algoritmo indicato.

Il pacchetto di Stegdetect include anche il programma stegbreak, con il quale si può tentare di estrarre l'informazione contenuta nella portante, tentando di scoprire la parola d'ordine usata per cifrare i dati:

stegbreak [opzioni] [file]...

L'utilizzo del programma avviene nello stesso modo di stegdetect, con la differenza che, se l'analisi ha successo, il rapporto generato restituisce, con il nome del file, la parola d'ordine scoperta.

Di solito, assieme a questi programmi si trova anche xsteg(3) (che eventualmente può essere distribuito con un pacchetto separato), che consente l'uso di stegdetect attraverso un pannello grafico, che pertanto si usa con Il sistema X.

xsteg

Il programma non richiede opzioni e comunque offre funzionalità limitate.

Figura 410.9. Xsteg durante il funzionamento.

Xsteg

Per ulteriori dettagli, si vedano le pagine di manuale stegdetect(1), stegbreak(1) e xsteg(1).

410.4   Steghide

Steghide (4) è un programma per la steganografia, utilizzando formati grafici (JPEG e BMP) e formati audio non compressi (WAV-RIFF e AU). La sintassi per l'uso del programma prevede un argomento iniziale che dichiara l'azione, seguito dalle opzioni relative:

steghide azione [opzioni]

L'azione viene dichiarata attraverso un nome, che eventualmente può essere preceduto da due trattini (--).

Tabella 410.10. Alcune azioni.

Azione Descrizione
embed
--embed
Richiede l'inserimento di un'informazione all'interno di un file portante che si vuole steganografare.
extract
--extract
Richiede l'estrazione di un'informazione da un file steganografato in precedenza.
info
--info
Richiede informazioni su un file da steganografare o già steganografato.

Segue la descrizione di alcune opzioni. Si osservi che le opzioni utilizzabili effettivamente dipendono dall'azione dichiarata all'inizio della riga di comando.

Tabella 410.11. Alcune opzioni.

Opzione Descrizione
-ef file
--embedfile file
Specifica un file da inserire all'interno di un altro, attraverso la steganografia (quando si usa l'azione embed).
-cf file
--coverfile file
Specifica un file portante, da steganografare.
-sf file
--stegofile file
Specifica il nome del file steganografato da generare (quando si usa l'azione embed).
-xf file
--extractfile file
Specifica il nome del file da generare con il contenuto di quanto inserito in precedenza in un file steganografato (si usa con l'azione extract).
-p parola_d'ordine
--passphrase parola_d'ordine
Specifica, già nella riga di comando, la parola d'ordine da usare per cifrare o per decifrare un'informazione segreta.

In condizioni normali, Steghide comprime e cifra le informazioni prima di procedere alla steganografia; attraverso delle opzioni che non sono state elencate, è possibile specificare il livello di compressione e l'algoritmo da usare per la cifratura. Il sistema crittografico è simmetrico, ovvero a chiave segreta, costituita da una parola d'ordine. Segue la descrizione di alcuni esempi.

410.5   Altri programmi affini


1) Outguess   licenza speciale BSD

2) Stegdetect   licenza speciale BSD

3) Xsteg   licenza speciale BSD

4) Steghide   GNU GPL

5) Snowdrop   GNU GPL


Appunti di informatica libera 2008 --- Copyright © 2000-2008 Daniele Giacomini -- <appunti2 (ad) gmail·com>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome steganografia.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home]

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory