Utilia

Nascondi un testo in un'immagine

Nascondi un messaggio segreto in un'immagine con la steganografia LSB, con cifratura AES-256-GCM facoltativa, e rivelalo in seguito. In locale, senza upload.

Nascondi un messaggio
Capacità
Aggiungi un'immagine per vedere quanto testo può contenere.

Il risultato viene sempre salvato in PNG: una ricompressione in JPEG, WebP o HEIC cancellerebbe i bit nascosti.

Rivela un messaggio

Come nascondere un messaggio in un’immagine

  1. Trascina un’immagine nell’area di caricamento oppure cliccaci sopra per sceglierla. Il PNG è l’ideale, ma va bene qualsiasi immagine che il tuo browser sa aprire: il risultato viene sempre salvato come un nuovo PNG.
  2. In Nascondi un messaggio, scrivi il testo in Messaggio segreto. La riga Capacità mostra quanti byte occupa il messaggio e quanti ne può contenere l’immagine.
  3. Per la riservatezza, spunta Cifra il messaggio con una passphrase (AES-256-GCM) e scrivi una Passphrase. Mostra la passphrase ti permette di controllare cosa hai digitato.
  4. Clicca su Nascondi il messaggio e scarica il PNG. Il file viene salvato come nome-hidden.png e la riga di stato ti dice quanti valori di colore sono stati modificati.

Come rivelare un messaggio nascosto

  1. Trascina il PNG nella stessa area di caricamento. Se contiene un messaggio nascosto con questo strumento, un avviso te lo segnala appena l’immagine viene caricata.
  2. Se il messaggio è cifrato, scrivi la passphrase in Passphrase (solo se il messaggio è cifrato).
  3. Clicca su Rivela il messaggio nascosto. Il testo compare sotto Messaggio nascosto, pronto da copiare.

Tutto avviene nel browser: l’immagine, il messaggio e la passphrase non vengono mai caricati.

Come funziona: il bit meno significativo (LSB)

Ogni pixel memorizza un valore di rosso, uno di verde e uno di blu compresi tra 0 e 255. Questo strumento sostituisce l’ultimo bit (il bit meno significativo) di questi tre valori con un bit del tuo messaggio, pixel dopo pixel nell’ordine di lettura. Per esempio, un valore di rosso pari a 200 in binario è 11001000; memorizzando il bit 1 diventa 11001001, cioè 201. Un valore di colore non cambia mai di più di 1, una differenza che l’occhio non può vedere.

Vengono usati solo i pixel completamente opachi, e il canale alfa non viene mai toccato. I pixel semitrasparenti vengono saltati, perché i browser non riescono a conservarne esattamente i bit bassi. Prima del messaggio lo strumento scrive un’intestazione di 13 byte: una firma, un indicatore che dice se il messaggio è cifrato, la lunghezza e un checksum CRC-32 che rileva i dati danneggiati.

La Capacità è di circa (numero di pixel opachi × 3 ÷ 8) − 13 byte. Una foto da 1000 × 1000 contiene circa 375.000 byte, molto più di qualsiasi messaggio di testo. La cifratura aggiunge 49 byte (versione, numero di iterazioni, salt da 16 byte, IV da 12 byte e tag di autenticazione da 16 byte). Con la cifratura, la chiave viene derivata dalla passphrase con PBKDF2-SHA-256 (600.000 iterazioni) e il testo viene cifrato con AES-256-GCM, che rileva anche qualsiasi manomissione.

Cosa la steganografia non fa

La steganografia nasconde l’esistenza di un messaggio; da sola non offre una sicurezza solida. Un inserimento LSB sequenziale come questo è facile da rilevare con gli strumenti di steganalisi (test del chi quadrato, analisi del piano LSB), e chiunque apra l’immagine con questo strumento può leggere un messaggio non cifrato. Se il contenuto deve restare privato, usa l’opzione di cifratura con una passphrase lunga e unica: la protezione è forte quanto la passphrase. Anche così, la cifratura protegge il contenuto, non il fatto che ci sia qualcosa di nascosto.

I bit nascosti sono anche fragili. La ricompressione JPEG o WebP, il ridimensionamento, il ritaglio, gli screenshot, i filtri e la maggior parte dei social network e delle app di messaggistica (che ricomprimono e spesso convertono le immagini) distruggono il messaggio. Condividi il PNG come file: un allegato email, un link a un servizio cloud oppure «invia come documento» in un’app di messaggistica.

Uso responsabile

Tra gli usi legittimi ci sono rompicapi, escape game e sfide CTF, la marcatura delle tue immagini, la didattica sul funzionamento delle immagini digitali e le note private. Non usarlo per aggirare le regole del lavoro o della scuola o la legge, e rispetta le immagini e il diritto d’autore degli altri.

Domande frequenti

Si vede che la mia immagine contiene un messaggio?

Non guardandola: ogni valore di colore cambia al massimo di 1. Uno strumento di steganalisi però può spesso rilevare l’inserimento LSB, e questo stesso strumento segnala la presenza di un messaggio quando l’immagine viene caricata.

Perché il mio messaggio nascosto è andato perso?

Probabilmente l’immagine è stata ricompressa, ridimensionata o convertita, per esempio da un social network, da un’app di messaggistica o da un programma di fotoritocco. Solo il file PNG originale, identico, mantiene intatti i bit.

Posso partire da una foto JPEG?

Sì. La foto viene decodificata e il risultato viene salvato in PNG, che è senza perdita. Tienilo in PNG: salvarlo di nuovo in JPEG cancella il messaggio.

Cosa succede se dimentico la passphrase?

Il messaggio non può essere recuperato. Non esiste una backdoor, e una passphrase errata viene respinta dal controllo di autenticazione AES-GCM.

Perché il file PNG è più grande dell'originale?

Il PNG è senza perdita, quindi di solito pesa più di un JPEG della stessa foto. È il prezzo da pagare per mantenere intatto ogni bit nascosto.