CarrierEdit
Il vettore è il segnale, il flusso o il file di dati in cui i dati nascosti sono nascosti da sottili modifiche. Gli esempi includono file audio, file immagine, documenti e file eseguibili. In pratica, il vettore dovrebbe avere lo stesso aspetto e funzionare come il vettore originale non modificato, e dovrebbe apparire benigno a chiunque lo ispezioni.
Alcune proprietà possono far sospettare che un file stia trasportando dati nascosti:
- Se i dati nascosti sono grandi rispetto al contenuto del vettore, come in un documento vuoto di un megabyte.
- L’uso di formati obsoleti o estensioni mal supportate che rompono gli strumenti comunemente usati.
È un requisito crittografico che il vettore (ad esempio una foto) sia originale, non una copia di qualcosa di pubblicamente disponibile (ad es, scaricato). Questo perché i dati sorgente pubblicamente disponibili potrebbero essere confrontati con la versione con un messaggio nascosto incorporato.
C’è un requisito più debole che il messaggio incorporato non cambi le statistiche del vettore (o altre metriche) in modo che la presenza di un messaggio sia rilevabile. Per esempio, se i bit meno significativi del canale rosso dei pixel della telecamera di un’immagine ha una distribuzione gaussiana dato un campo colorato costante, una semplice steganografia di immagini che produce una distribuzione casuale di questi bit potrebbe consentire la discriminazione delle immagini stego da quelle invariate.
Il volume puro dei moderni (ca 2014) e inani media ad alta larghezza di banda (es, youtube.com, fonti bittorrent, eBay, Facebook, spam, ecc.) fornisce ampie opportunità per la comunicazione segreta.
ChainEdit
I dati nascosti possono essere suddivisi tra un insieme di file, producendo una catena di vettori, che ha la proprietà che tutti i vettori devono essere disponibili, non modificati, ed elaborati nell’ordine corretto per recuperare i dati nascosti. Questa caratteristica di sicurezza aggiuntiva di solito è ottenuta da:
- utilizzando un vettore di inizializzazione diverso per ogni vettore e memorizzandolo all’interno dei vettori elaborati -> CryptedIVn = Crypt( IVn, CryptedIVn-1 )
- utilizzando un algoritmo di crittografia diverso per ogni vettore e scegliendolo con un algoritmo equiprobabilistico dipendente dall’ordine della catena
Robustezza e crittografiaModifica
Gli strumenti di steganografia mirano a garantire la robustezza contro i moderni metodi forensi, come la steganalisi statistica. Tale robustezza può essere raggiunta da un mix bilanciato di:
- un processo di crittografia basato sul flusso;
- un processo di sbiancamento dei dati;
- un processo di codifica.
Se i dati vengono rilevati, la crittografia aiuta anche a minimizzare il danno risultante, poiché i dati non sono esposti, solo il fatto che è stato trasmesso un segreto. Il mittente può essere costretto a decifrare i dati una volta scoperti, ma la crittografia negabile può essere sfruttata per far apparire benigni i dati decifrati.
Il software di steganografia forte si basa su un’architettura a più livelli con un processo di offuscamento profondo e documentato.
Carrier engineEdit
Il carrier engine è il cuore di qualsiasi strumento di steganografia. Diversi formati di file sono modificati in modi diversi, al fine di inserire segretamente dati nascosti al loro interno. Gli algoritmi di elaborazione includono:
- Iniezione (sospetta a causa dell’incremento delle dimensioni del file non correlato al contenuto)
- Generazione (sospetta a causa della tracciabilità dei vettori generati)
- Sostituzione di dati e metadati accessori
- LSB o sostituzione adattiva
- Manipolazione dello spazio di frequenza