Utilia

Esconder texto numa imagem

Esconde uma mensagem de texto secreta numa imagem com esteganografia LSB, com encriptação AES-256-GCM opcional, e revela-a depois. Local, sem envio.

Esconder uma mensagem
Capacidade
Adiciona uma imagem para veres quanto texto consegue guardar.

O resultado é sempre guardado em PNG: uma recompressão em JPEG, WebP ou HEIC apagaria os bits escondidos.

Revelar uma mensagem

Como esconder uma mensagem numa imagem

  1. Larga uma imagem na zona de largar, ou clica nela para escolher uma. O ideal é PNG, mas serve qualquer imagem que o teu navegador consiga abrir: o resultado é sempre guardado como um novo PNG.
  2. Em Esconder uma mensagem, escreve o teu texto em Mensagem secreta. A linha Capacidade mostra quantos bytes a mensagem ocupa e quantos a imagem consegue guardar.
  3. Para manter o conteúdo confidencial, marca Encriptar a mensagem com uma frase-passe (AES-256-GCM) e escreve uma Frase-passe. Mostrar a frase-passe permite-te confirmar o que escreveste.
  4. Clica em Esconder a mensagem e transferir o PNG. O ficheiro é guardado como name-hidden.png (com o nome da tua imagem) e a linha de estado indica quantos valores de cor foram alterados.

Como revelar uma mensagem escondida

  1. Larga o PNG na mesma zona de largar. Se contiver uma mensagem escondida por esta ferramenta, aparece um aviso logo que a imagem é carregada.
  2. Se a mensagem foi encriptada, escreve a frase-passe em Frase-passe (só se a mensagem foi encriptada).
  3. Clica em Revelar a mensagem escondida. O texto aparece em Mensagem escondida, pronto a copiar.

Tudo acontece no teu navegador: a imagem, a mensagem e a frase-passe nunca são enviadas.

Como funciona: bit menos significativo (LSB)

Cada píxel guarda um valor de vermelho, de verde e de azul entre 0 e 255. Esta ferramenta substitui o último bit (o bit menos significativo) destes três valores por um bit da tua mensagem, píxel a píxel, pela ordem de leitura. Por exemplo, um vermelho de 200 é 11001000 em binário; guardar o bit 1 dá 11001001, ou seja, 201. Um valor de cor nunca muda mais do que 1, uma diferença que o olho não consegue ver.

Só são usados píxeis totalmente opacos, e o canal alfa nunca é tocado. Os píxeis semitransparentes são ignorados, porque os navegadores não conseguem manter exatamente os seus bits mais baixos. Antes da mensagem, a ferramenta escreve um cabeçalho de 13 bytes: uma assinatura, um indicador que diz se a mensagem está encriptada, o comprimento e uma soma de verificação CRC-32 que deteta dados danificados.

A Capacidade é de cerca de (número de píxeis opacos × 3 ÷ 8) − 13 bytes. Uma foto de 1000 × 1000 guarda cerca de 375 000 bytes, muito mais do que qualquer mensagem de texto. A encriptação acrescenta 49 bytes (versão, número de iterações, sal de 16 bytes, IV de 12 bytes e etiqueta de autenticação de 16 bytes). Com encriptação, a chave é derivada da tua frase-passe com PBKDF2-SHA-256 (600 000 iterações) e o texto é encriptado com AES-256-GCM, que também deteta qualquer adulteração.

O que a esteganografia não faz

A esteganografia esconde que uma mensagem existe; por si só, não é uma proteção forte. Uma inserção LSB sequencial como esta é fácil de detetar com ferramentas de esteganálise (testes do qui-quadrado, análise do plano LSB), e qualquer pessoa que abra a imagem nesta ferramenta consegue ler uma mensagem não encriptada. Se o conteúdo tiver de ficar privado, usa a opção de encriptação com uma frase-passe longa e única: a proteção só é tão forte quanto a frase-passe. Mesmo assim, a encriptação protege o conteúdo, não o facto de haver algo escondido.

Os bits escondidos também são frágeis. A recompressão em JPEG ou WebP, o redimensionamento, o recorte, as capturas de ecrã, os filtros e a maioria das redes sociais e aplicações de mensagens (que recomprimem e muitas vezes convertem as imagens) destroem a mensagem. Partilha o PNG como ficheiro: anexo de email, ligação de armazenamento na nuvem ou «enviar como documento» numa aplicação de mensagens.

Utilização responsável

Boas utilizações incluem enigmas, jogos de fuga e desafios CTF, marcar as tuas próprias imagens, ensinar como funcionam as imagens digitais e guardar notas privadas. Não a uses para contornar regras da empresa ou da escola nem a lei, e respeita as imagens e os direitos de autor dos outros.

Perguntas frequentes

Os outros conseguem ver que a minha imagem contém uma mensagem?

Não, só de olhar: cada valor de cor muda no máximo 1. Mas uma ferramenta de esteganálise consegue muitas vezes detetar a inserção LSB, e esta própria ferramenta avisa que existe uma mensagem quando a imagem é carregada.

Porque é que a minha mensagem escondida se perdeu?

A imagem foi provavelmente recomprimida, redimensionada ou convertida, por exemplo por uma rede social, uma aplicação de mensagens ou um editor de fotos. Só o ficheiro PNG exato mantém os bits intactos.

Posso partir de uma foto JPEG?

Sim. A foto é descodificada e o resultado é guardado em PNG, que é sem perdas. Mantém-no em PNG: guardá-lo outra vez em JPEG apaga a mensagem.

O que acontece se me esquecer da frase-passe?

A mensagem não pode ser recuperada. Não existe nenhuma porta das traseiras, e uma frase-passe errada é rejeitada pela verificação de autenticação do AES-GCM.

Porque é que o ficheiro PNG é maior do que o original?

O PNG é sem perdas, por isso costuma ser maior do que um JPEG da mesma foto. É o preço a pagar para manter intactos todos os bits escondidos.