Esteganografia utilizando steghide

eof

Este artigo ensina como utilizar o steghide, uma ferramenta que incorpora (ou esconde) dados num arquivo de imagem ou de som, podendo utilizar criptografia ou não. Esta técnica é conhecida como esteganografia.

[ Hits: 29.435 ]

Por: Hudson Flávio Vieira Mateus em 24/05/2010


Princípios básicos do steghide



Steghide é um programa de esteganografia que é capaz de esconder dados em vários tipos de arquivos de áudio e de imagem. As frequências de som e de cor, respectivamente, não são alteradas tornando o arquivo resistente contra testes estatísticos de primeira ordem.

Recursos incluem:
  • compressão de dados incorporados;
  • criptografia dos dados incorporados;
  • checagem de integridade automática usando checksum.

Formatos de arquivos JPEG, BMP, WAV e AU são suportados para uso como arquivo de "cobertura". Não há restrições sobre o formato dos dados secretos.

O algoritmo de criptografia padrão é o Rijndael com uma chave de 128 bits de comprimento (que é AES - Advanced Encryption Standard). Se você não confia nesta combinação por qualquer razão, sinta-se à vontade para escolher outra combinação modo/algoritmo (informações sobre todos os algoritmos e modos possíveis podem ser visualizados pelo comando encinfo):

steghide encinfo

O checksum é calculado usando o algoritmo CRC32.

Neste artigo serão explicadas as opções básicas para utilização do steghide em ambientes Linux. Para mais informações, veja steghide(1).

Escondendo dados

Para esconder dados num arquivo, você deve usar a opção embed (ou --embed). Assim, um arquivo esteganografado será criado.

Então especifica-se como ocorrerá a incorporação dos dados secretos através das seguintes opções:

-ef, --embedfile filename

Especifica o nome do arquivo cuja mensagem será incorporada. Perceba que o steghide incorpora o nome do arquivo original num arquivo esteganografado. Quando os dados são extraídos (veja abaixo) o tratamento padrão é salvar os dados escondidos num arquivo do diretório corrente que tenha o nome original filename.

Se este argumento é omitido ou nome de arquivo é -, steghide lerá os dados secretos da entrada padrão e, ao extrair, a opção -xf (veja abaixo) deve ser usada.

-cf, --coverfile filename

Especifica o nome do arquivo de cobertura que será usado para esconder os dados. Este arquivo deve ser um dos formatos especificados acima. O formato é identificado pela informação do header, e não na extensão.

Se este argumento é omitido ou nome de arquivo é -, steghide lerá os dados secretos da entrada padrão.

O exemplo a seguir é utilizado para esconder o conteúdo de secret-msg.txt em paisagem.jpg:

steghide embed -ef secret-msg.txt -cf paisagem.jpg
Enter passphrase: abc123
Re-Enter passphrase: abc123
embedding "secret-msg.txt" in "paisagem.jpg"... done

Em geral, o steghide solicita ao usuário por uma senha (passphrase), a qual não é exibida na tela durante a escrita. Esta senha pode ser fornecida por linha de comando, embora isso só seja recomendado em um casos extremos (ex. scripts). Para isso, use a opção -p (ou --passphrase), seguida da senha a ser utilizada.

-sf, --stegofile filename

Especifica o nome para o arquivo esteganografado que será criado. Se omitido quando embed é usado, as modificações serão feitas diretamente no arquivo de cobertura.

Neste comando, o arquivo esteganografado não será o original paisagem.jpg, mas sim natural.jpg:

steghide embed -ef secret.txt -cf paisagem.jpg -sf natural.jpg
Enter passphrase: abc123
Re-Enter passphrase: abc123
embedding "secret.txt" in "paisagem.jpg"... done
writing stego file "natural.jpg"... done

-e, --encryption algo [ mode ] | mode [ algo ]

Especifica parâmetros de criptografia. mode é um dos modos de criptografia e algo é o algoritmo (um dos dois argumentos pode ser omitido). Veja encinfo acima para saber quais modos/algoritmos são implementados. Se você não quer usar qualquer algoritmo ou modo de criptografia, use, -e none.

O comando abaixo faz o mesmo que no primeiro exemplo, mas utilizando, agora, o algoritmo de criptografia Blowfish:

steghide embed -ef secret-msg.txt -cf paisagem.jpg -e blowfish
Enter passphrase: abc123
Re-Enter passphrase: abc123
embedding "secret-msg.txt" in "paisagem.jpg"... done

Extraindo dados

Para extrair os dados, ao invés de embed usa-se extract (ou --extract).

Argumentos adicionais podem especificar o tratamento dos dados esteganografados.

-sf, --stegofile filename

Especifica o arquivo esteganografado, que contém dados escondidos.

Se este argumento é omitido ou filename é -, steghide lerá um arquivo esteganografado da entrada padrão.

-xf, --extractfile filename

Cria um arquivo com o nome filename e escreve os dados escondidos nele. Esta opção sobrescreve o nome do arquivo que é incorporado no arquivo esteganografado (especificado na opção -ef).

Para descriptografar, utilize a opção extract. A seguir, a saída será extraída para um arquivo chamado secret-msg-received.txt:

steghide extract -sf paisagem.jpg -xf secret-msg-received.txt
Enter passphrase: abc123
wrote extracted data to "secret-msg-received.txt".

Referência bibliográfica: adaptação da manpage steghide(1).

   

Páginas do artigo
   1. Princípios básicos do steghide
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Hardening, se adequando as normas ISO 27000

Firewall com Iptables + Squid

Definição de hacker

Verifique a sua fortaleza com lsat - software de auditoria em servidores e desktops

Segurança extrema com LIDS: novos recursos

  
Comentários
[1] Comentário enviado por julio_hoffimann em 24/05/2010 - 18:42h

Oi Hudson,

Não sou da área mas já tive a oportunidade de ler um pouco sobre esteganografia aqui no VOL nos artigos do Elgio. A ferramenta que você apresentou é muito interessante e simples de usar. Irei lembrar dela se algum dia precisar.

Abraço!

[2] Comentário enviado por elgio em 26/05/2010 - 11:36h

Interessante este teu artigo.

Não quiseste publicar ele no novo site segurança Linux? (http://segurancalinux.com/)

A partir de agora, todos os artigos que são da área de segurança eu irei publicar lá, não mais aqui no VOL.

[]'s

[3] Comentário enviado por eof em 26/05/2010 - 19:04h

Agradeço a vocês pelo comentários.

Elgio, a princípio eu apenas queria fazer algo para a cadeira de Segurança Computacional da minha universidade. Se quiser, pode publicá-lo lá no Segurança Linux. É que eu não sabia disso também.

Abraços!
=)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts