Friday, December 24, 2010

As sutilezas da Esteganografia

A palavra esteganografia é derivada de duas outras palavras de origem grega: “Steganos”, que significa segredo, e “Graphos”, que significa escrita. Basicamente, esteganografia é uma técnica utilizada para esconder informações “incorporando” mensagens importante dentro de outra mensagem, aparentemente inofensiva. O meio mais comum de esteganografia é utilizando arquivos de imagens. Os formatos de compressão mais utilizados são:

· GIF- Graphic Interface Format;
· BMP- A Microsoft standard image;
· JPEG- Joint Photographic Experts;
· TIFF- Tag Image File Format.

Algumas pessoas podem confundir a esteganografia com a criptografia, mas, salvo que ambas têm como objetivo proteger uma informação, essas técnicas não estão relacionadas entre si. É possível criptografar uma mensagem e então utilizar a esteganografia para ocultar essa massa de dados criptografada em um arquivo de imagem, como também é possível armazenar uma informação em texto simples, não criptografada, em um arquivo de imagem.






Para não estender muito este artigo (esteganografia é um assunto que cabe muita discussão), vou me limitar a falar sobre uma das técnicas mais utilizadas: Least Significant Bit Insertion. Esta técnica consiste em fazer uso do bit menos significativo dos pixels de uma imagem e alterá-lo. A mesma técnica pode ser aplicada a um arquivo de áudio ou vídeo, embora não seja tão comum. Feito assim, a distorção da imagem em geral é reduzida ao mínimo, sendo praticamente invisível. Em geral, esta técnica funciona melhor quando a imagem é de grande resolução, tem grandes variações de cor e também leva a maior profundidade de cor.

Exemplo: O valor (1 1 1 1 1 1 1 1) é um número binário de 8 bits. O bit localizado à direita é chamado de "bit menos significativo”, porque é o de menor peso, alterar este bit significa alterar o mínimo possível do valor total do número representado.

Um exemplo de esteganografia: Escondendo a letra "A". Imagine a parte de uma imagem no formato de pixel RGB (3 bytes), sua representação original pode ser: (3 pixels, 9 bytes):

(1 1 0 1 1 0 1 0) (0 1 0 0 1 0 0 1) (0 1 0 0 0 0 1 1)
(0 0 0 1 1 1 1 0) (0 1 0 1 1 0 1 1) (1 1 0 1 1 1 1 1)
(0 0 0 0 1 1 1 0) (0 1 0 0 0 1 1 1) (0 0 0 0 0 1 1 1)

A mensagem criptografada é 'A', que é a representação em binário (1 0 0 1 0 1 1 1), em seguida, os novos pixels seriam alterados:

(1 1 0 1 1 0 1 1) (0 1 0 0 1 0 0 0) (0 1 0 0 0 0 1 0)
(0 0 0 1 1 1 1 1) (0 1 0 1 1 0 1 0) (1 1 0 1 1 1 1 1)
(0 0 0 0 1 1 1 1) (0 1 0 0 0 1 1 1) (0 0 0 0 0 1 1 1)

Note-se que o algorítimo substituiu o bit da mensagem (em negrito) em cada um dos bits menos significativo dos 3 pixels de cor. Foram necessários 8 bytes para a mudança, um para cada bit da letra A, o nono byte de cor não foi usado, mas é parte do terceiro pixel (seu terceiro componente de cor).







Além disso, este método não altera o tamanho do arquivo, pois emprega uma técnica de substituição de informações. Esta técnica tem a desvantagem de que o tamanho do arquivo de suporte deve ser proporcionalmente maior quanto a mensagem a ser oculta, ou seja, você precisa de 8 bytes para cada byte de imagem para esconder a mensagem, o que limita a capacidade máxima para armazenar uma imagem de uma mensagem escondida em 12,5%. Se você pretende usar uma parcela maior de bits da imagem (por exemplo, não só por último, mas os dois últimos bits de cada byte), pode começar a ser perceptível ao olho humano as distorções causadas na imagem final pela técnica de esteganografia.

Essencialmente, a esteganografia explora as limitações da percepção humana, pois os nossos sentidos não são capazes de detectar estas mínimas anomalias geradas pela técnica. Para detecção destas informações ocultas, empregamos uma técnica chamada de estegoanálise. Vou falar sobre as técnicas de estegoanálise em um próximo post.

Original publicado no blog da TechBiz Forense Digital.

No comments:

Post a Comment