Steganografia è un processo per nascondere un file, un'immagine, un video, un testo all'interno di un altro file. Come accennato in Wikipedia, la steganografia è la combinazione di due parole greche, steganos che significa "coperto, nascosto o protetto" e graphein che significa "scrivere". Le fonti hanno affermato che questo metodo è stato seguito per la prima volta da Histiaeus , un antico re greco, nel 440 a.C. Rasò la testa del suo più fidato servitore e segnò il messaggio segreto sulla sua testa. Dopo che i capelli erano ricresciuti, ha inviato quel servitore a uno dei suoi vassalli per trasmettere il messaggio che contiene alcune informazioni sull'imminente attacco alla Grecia. Ora, nell'era moderna, la steganografia si è evoluta, molto migliorata e ampiamente utilizzata per inviare e ricevere messaggi segreti digitali nascondendoli in altri file. Per maggiori dettagli sulla steganografia, fai riferimento a questo link . Vediamo ora come nascondere i file all'interno delle immagini in Linux.
Disclaimer:
La steganografia è un argomento vasto. Questo tutorial spiega solo come nascondere i file all'interno delle immagini, che è il concetto centrale della steganografia. Per favore, non dare per scontato che questo non possa essere violato da nessun esperto di sicurezza. Il metodo qui descritto è molto semplice, quindi anche un professionista della sicurezza intermedio può facilmente violarlo in un paio d'ore. Questi passaggi descritti di seguito sono puramente a scopo didattico. Non siamo responsabili di alcun tipo di uso improprio.
Nascondi i file all'interno delle immagini in Linux
Possiamo nascondere i file all'interno delle immagini in diversi metodi. Qui ho dato 5 metodi.
Metodo 1
Questo metodo non richiede alcun software aggiuntivo. È sufficiente una conoscenza di base della riga di comando di Linux.
Ho un file immagine chiamato image.jpg e una directory chiamata sk . All'interno di questa directory, c'è un file chiamato secret.txt che contiene un messaggio riservato. Questo è il file che incorporeremo nel file image.jpg. Puoi inserire un numero qualsiasi di file che desideri nascondere all'interno di questa directory. Quindi, comprimerò la directory sk e salvalo come secret.zip per renderlo come un unico file. Infine, concatenerò il file zip (secret.zip) e il file immagine (image.jpg) usando cat comando e salvalo come otechnix.jpg .
Per mettere le cose in modo più chiaro,
- immagine.jpg - Un file immagine casuale.
- sk - La directory che contiene tutti i file segreti.
- secret.zip - Archivio di sk directory.
- otechnix.jpg - Il file immagine di output che contiene sia secret.zip che image.jpg.
Passaggio 1: Metti il file immagine e la directory in una cartella. Li ho inseriti entrambi in Documenti cartella.
Passaggio 2: Sposta tutti i file che vuoi nascondere all'interno della cartella "sk". Quindi, comprimi questa cartella e salvala come "secret.zip" . Per comprimere la cartella, fai clic con il pulsante destro del mouse su di essa e seleziona comprimi .
Passaggio 3: Quindi apri il Terminale. Vai alla posizione in cui hai archiviato i file zip e immagine (nel nostro caso si tratta di Documenti ). Infine, concatena il secret.zip e test.jpg file e salvali come ostechnix.jpg utilizzando cat comando.
$ cd Documents
$ cat image.jpg secret.zip > ostechnix.jpg
Ecco fatto. Ora abbiamo nascosto i file riservati all'interno di otechnix.jpg . È il file importante. Elimina tutti gli altri file tranne otechnix.jpg .
Il otechnix.jpg avrà l'aspetto di un normale file immagine e chiunque può visualizzarlo utilizzando qualsiasi applicazione di visualizzazione di immagini. Ma potrebbero non sapere che questo file contiene dei file riservati.
Per visualizzare i file nascosti all'interno del file immagine otechnix.jpg , decomprimilo usando il seguente comando:
$ unzip ostechnix.jpg
Oppure,
$ unzip -t ostechnix.jpg
Output di esempio:
Archive: ostechnix.jpg warning [ostechnix.jpg]: 712139 extra bytes at beginning or within zipfile (attempting to process anyway) creating: sk/ inflating: sk/secret.txt
Decomprimi il file immagine
Come vedi nell'output sopra, la directory sk che contiene file segreti all'interno è stato estratto. Ora torna alla cartella e controlla il contenuto. Vedrai tutti i file lì dentro.
Uno svantaggio di questo metodo è che non possiamo aggiungere alcuna passphrase al file immagine. Nessun problema! Nei seguenti metodi, possiamo aggiungere passphrase ai file di output.
Metodo 2:utilizzo di Steghide
Steghide è un'utilità della riga di comando che ci aiuta a nascondere i dati riservati all'interno di un'immagine o di un file audio. Supporta file JPEG, BMP, WAV e AU.
Steghide è disponibile nei repository predefiniti di molte distribuzioni Linux.
Su Arch Linux e le sue varianti, puoi installarlo usando il comando:
$ sudo pacman -S steghide
Su Debian, Ubuntu:
$ sudo apt install steghide
Ora puoi nascondere il tuo file riservato all'interno di un'immagine o di un audio come di seguito. Presumo che tu abbia inserito il file riservato che desideri crittografare e il file immagine o audio nella stessa cartella. Se li metti in una cartella diversa, devi fornire il percorso completo nel comando seguente.
$ steghide embed -ef secret.txt -cf ostechnix.jpg
Ti verrà chiesto di inserire una passphrase.
Enter passphrase: Re-Enter passphrase: embedding "secret.txt" in "ostechnix.jpg"... done
Nascondi i file nell'immagine usando Steghide
Nell'esempio sopra, ho incorporato un file di testo chiamato secret.txt in un file immagine denominato otechnix.jpg . Ora puoi eliminare il file secret.txt originale. Perché abbiamo appena incorporato un file immagine. Se vuoi incorporare più file, mettili in una cartella e comprimila e poi nascondila come descritto sopra.
Per estrarre il file segreto dall'immagine, esegui semplicemente:
$ steghide extract -sf ostechnix.jpg
Inserisci la passphrase per estrarla:
Enter passphrase: wrote extracted data to "secret.txt".
Estrai i file dall'immagine usando steghide
Per maggiori dettagli, fare riferimento alle pagine man,
$ man steghide
Metodo 3:utilizzo di Outguess
Indovina è un altro strumento stegnografico da riga di comando per nascondere i file riservati all'interno di un'immagine. Attualmente supporta i formati immagine PPM, PNM e JPEG.
Per installarlo su Debian, Ubuntu e altri sistemi basati su DEB, esegui:
$ sudo apt install outguess
Una volta installato, vai nella posizione in cui hai conservato il file segreto e l'immagine e incorpora il file segreto nell'immagine usando il seguente comando:
$ outguess -d secret.txt ostechnix.jpg output.jpg
Risultato di esempio:
Reading ostechnix.jpg.... JPEG compression quality set to 75 Extracting usable bits: 158203 bits Correctable message size: 77641 bits, 49.08% Encoded 'secret.txt': 160 bits, 20 bytes Finding best embedding... 0: 88(45.8%)[55.0%], bias -17(-0.19), saved: -1, total: 0.06% 1: 90(46.9%)[56.2%], bias -27(-0.30), saved: -1, total: 0.06% 12: 85(44.3%)[53.1%], bias -36(-0.42), saved: 0, total: 0.05% 26: 91(47.4%)[56.9%], bias -45(-0.49), saved: -1, total: 0.06% 174: 87(45.8%)[54.4%], bias -48(-0.55), saved: 0, total: 0.05% 174, 39: Embedding data: 160 in 158203 Bits embedded: 190, changed: 87(45.8%)[54.4%], bias: -48, tot: 158844, skip: 158654 Foiling statistics: corrections: 77, failed: 6, offset: 864.696970 +- 310.577032 Total bits changed: 39 (change 87 + bias -48) Storing bitmap into data... Writing output.jpg....
Qui, il output.jpg file è quello che contiene il nostro file di dati riservati. tienilo al sicuro ed elimina tutto il resto.
Puoi anche aggiungere una passphrase al file di output come di seguito.
$ outguess -k "my secret key" -d secret.txt ostechnix.jpg output.jpg
Sostituisci "la mia chiave segreta" con la tua passphrase.
Per estrarre il file, fai semplicemente:
$ outguess -r output.jpg secret.txt
Risultato di esempio:
Reading output.jpg.... Extracting usable bits: 158203 bits Steg retrieve: seed: 174, len: 20
Se hai usato una passphrase, usa invece questo comando:
$ outguess -k "my secret key" -r output.jpg secret.txt
Per maggiori dettagli, fare riferimento alle pagine man.
$ man outguess
Abbiamo visto tre utilità da riga di comando per nascondere i file all'interno di immagini o audio. Se non ti piace il modo della riga di comando, ecco due strumenti grafici steganografici.
Metodo 4:utilizzo di Stegosuite
Stegosuite è uno strumento grafico steganografico per nascondere i file all'interno delle immagini. È uno strumento di steganografia gratuito e open source scritto in Java . Utilizza AES metodo di crittografia per incorporare i dati. Supporta i formati immagine BMP, GIF e JPG.
Per installarlo su Debian, Ubuntu e altri sistemi basati su DEB, esegui:
$ sudo apt install stegosuite
Una volta installato, avvia Stegosuite da Dash o Menu.
Interfaccia Stegosuite
Fai clic su File -> Apri dalla barra dei menu e scegli un'immagine che desideri utilizzare per nascondere i file. Quindi inserisci il messaggio nella prima colonna. Fare clic con il tasto destro sulla seconda colonna e scegliere "Aggiungi file...". Infine, inserisci la passphrase nella terza colonna.
Aggiungi file in stegosuite
Infine, fai clic su Incorpora pulsante nella parte inferiore dell'interfaccia di Stegosuite.
Incorpora i file usando stegosuite
Ora verrà creato un nuovo file immagine con il nome "nomefile_embed" nella stessa cartella da cui hai scelto l'immagine. Ad esempio, se hai selezionato l'immagine denominata "image.jpg" dalla cartella Documenti, verrà creato un nuovo file immagine con il nome "image_embed.jpg" nella cartella Documenti stessa.
Per estrarre i file segreti dall'immagine, è sufficiente riaprirla nell'interfaccia di Stegosuite, inserire la passphrase e fare clic su Estrai pulsante.
Estrai i file usando stegosuite
Tutti i file verranno estratti nella stessa cartella stessa.
Per maggiori dettagli, fare riferimento al sito Web Stegosuite .
Metodo 5:utilizzo di Steg
Steg è uno strumento steganografico semplice, multipiattaforma e grafico, scritto utilizzando C++ linguaggio di programmazione. È un software portatile, quindi scaricalo, portalo ovunque e inizia a usarlo in pochissimo tempo, indipendentemente dal sistema operativo in uso. Steg supporta i formati immagine JPEG, JPG, TIFF, PNG e BMP. Utilizza tecniche di steganografia e crittografia per nascondere i dati all'interno di immagini compresse o non compresse.
Utilizzo
Fai clic su questo link per scaricare l'applicazione Steg. È disponibile per entrambe le architetture a 32 e 64 bit.
Oppure usa il seguente comando per scaricarlo a seconda dell'architettura che usi.
Per 64 bit:
$ wget https://googledrive.com/host/0B-_yxJMDtRxyUExLZzZ3S2VDbjQ/steg-v1.0.0.2-linux64.tgz
Per 32 bit:
$ wget https://googledrive.com/host/0B-_yxJMDtRxyRDNGNk1YcXR0UTg/steg-v1.0.0.2-linux32.tgz
Dopo il download, estrailo usando il comando:
$ tar -xvzf steg-v1.0.0.2-linux64.tgz
Vai alla directory Steg:
$ cd steg-v1.0.0.2-linux64/
E digita il seguente comando per eseguirlo.
$ ./steg.sh
Fai clic su Sì per accettare il contratto di licenza.
Fai clic su OK per continuare.
Ecco come appare l'interfaccia predefinita dell'applicazione Steg.
Ora nascondiamo alcuni dati all'interno di un'immagine.
Per farlo, vai su File -> Apri immagine generica oppure Apri immagine JPEG . Assicurati di aver scelto un'immagine di grandi dimensioni per memorizzare più dati al suo interno. Più grande è l'immagine che scegli, più puoi salvare all'interno dell'immagine.
Dopo aver aperto l'immagine, l'immagine originale e l'immagine modificata (immagine di output) verranno mostrate rispettivamente nei pannelli sinistro e destro. Inoltre, mostra le dimensioni disponibili per memorizzare i dati all'interno dell'immagine nell'angolo in basso a destra.
Nascondi i file all'interno delle immagini in Linux usando Steg
Ora vai su Nascondi -> Nascondi dati dalla barra dei menu in alto. Seleziona il file che vuoi nascondere. Assicurati che il file selezionato sia più piccolo dello spazio disponibile nell'immagine modificata. Dopo aver aggiunto i dati, vedrai una finestra di dialogo di conferma che dice:Dati nascosti con successo .
Ecco la parte importante. Puoi scegliere diverse modalità di crittografia.
- Automatico: I dati verranno crittografati, ma non esiste una passphrase o saranno necessarie chiavi per estrarre i dati.
- Simmetrico: Devi fornire una PassPhrase per crittografare i dati e il destinatario avrà bisogno della stessa PassPhrase per estrarli.
- Asimmetrico senza segno: quando vuoi nascondere i dati (sei il mittente) è richiesta solo la chiave pubblica del destinatario. Quando vuoi estrarre i dati (tu sei il destinatario) è richiesta solo la tua chiave privata.
- Firmato asimmetrico: quando vuoi nascondere i dati (tu sei il mittente) sono richieste la chiave pubblica del destinatario e la tua chiave privata. Quando vuoi estrarre i dati (tu sei il destinatario) è richiesta solo la tua chiave privata ma è richiesta la chiave pubblica del mittente. Se non fornisci la chiave pubblica del mittente, al termine del processo di estrazione, verrai avvisato che l'identità del mittente non è verificata. Se fornisci la chiave pubblica del mittente sarai informato se la verifica del segno è riuscita.
Puoi scegliere qualsiasi metodo di crittografia a tua scelta.
Per scegliere un metodo di crittografia specifico, vai su Modifica -> Configurazione dalla barra dei menu. Il metodo di crittografia predefinito è auto . Inoltre, se lo desideri, puoi incorporare alcuni messaggi nel file.
Quando tutto è a posto, fai clic su Salva pulsante sulla barra degli strumenti e salvalo nella posizione che preferisci.
Fatto! I dati dell'immagine sono crittografati all'interno dell'immagine. Questa immagine apparirà come un'immagine normale. Puoi visualizzarlo utilizzando qualsiasi applicazione di visualizzazione di immagini.
Per estrarre i dati nascosti, apri l'immagine crittografata nell'applicazione Steg. Per farlo, vai su Estrai -> Estrai dati dalla barra dei menu.
Seleziona la posizione in cui desideri salvare i tuoi dati. Fatto!
Ecco fatto. Ora sarai in grado di visualizzare i dati.
Come puoi vedere, questo è estremamente facile da seguire e non richiede abilità speciali. Basta aprire un'immagine, nascondere alcuni dati riservati e passarla.
Per maggiori dettagli su Steg, controlla il sito ufficiale .