Este documento discute a esteganografia, que é a arte de ocultar arquivos dentro de outros arquivos. Apresenta exemplos históricos do uso da esteganografia, como escrever mensagens em ovos cozidos, e discute técnicas atuais como ocultar dados no bit menos significativo de arquivos de imagem, áudio e vídeo. Também aborda ferramentas de esteganografia e como detectar mensagens escondidas.
Esteganografia: a arte de ocultar arquivos dentro de arquivos - Vanderlei Pollon
1. Esteganografia: a arte de ocultar arquivos dentro de arquivos
Vanderlei Pollon
Email: vanderlei@pollon.org
Website: www.pollon.org
1º Seminário de Software Livre Tchelinux - Porto Alegre, 18 e 19 de novembro de 2006
2. Principais tópicos desta apresentação
Conceito de esteganografia
Exemplos antigos do uso da esteganografia
Exemplos atuais de uso da esteganografia não digital
Possibilidades futuras para a esteganografia não digital
Esteganografia em meios digitais:
Arquivos texto (.txt)
Arquivos de imagem (jpeg, jpg, bmp, png, gif, ...)
Arquivos de audio (mp3, wav, wma, ...)
Arquivos de vídeo (mpeg, avi, ...)
Pacotes TCP/IP
Arquivos binários e bibliotecas *
Sistemas de arquivos *
Ferramentas para esteganografia
Softwares para detectar esteganografia
Conclusão
➔
*não abordado neste trabalho devido à falta de tempo
Esteganografia: a arte de ocultar arquivos dentro de arquivos
3. Conceito de esteganografia (#1/2)
Esteganografia
steganós + grafia
camuflada + escrita
Criptologia: é o campo científico que engloba a criptografia (escrita codificada ou
cifrada) e a criptoanálise (busca da solução de um texto codificado ou cifrado).
Criptografia: oculta o significado da mensagem, ou seja, a mensagem é vista mas
não é possível compreender o seu conteúdo.
Esteganografia: oculta (camufla) a mensagem de forma que sua existência passa
despercebida.
Esteganografia: a arte de ocultar arquivos dentro de arquivos
4. Conceito de esteganografia
Principais termos (#2/2)
Mensagem a ser
camuflada
Portador com o
resultado
(carrier)
Arquivo capa ou
recepiente
Agente (software)
que embute a
mensagem no
recepiente.
Esteganografia: a arte de ocultar arquivos dentro de arquivos
5. Exemplos antigos de uso da esteganografia
No século V a.c. o caso do escravo com a cabeça raspada.
Na china antiga escrevia-se as mensagens sobre seda fina, fazia-se uma
bolinha, envolvia-se a bolinha com cera e o mensageiro engolia a bolinha.
Na Grécia antiga fazia-se minúsculos furos em certas letras de um texto
para marcar o texto secreto.
No século XVI, Giovanni Porta descobriu uma maneira de escrever uma
mensagem em um ovo cozido.
No século XVIII os ingleses utilizaram a técnica de marcar letras (com
furinhos) em um jornal para evitar o pagamento das taxas de cartas.
Durante a Primeira Guerra Mundial os alemães também utilizaram a
técnica de marcar certas letras com um furinho.
Durante a Segunda Guerra Mundial os alemães marcavam as letras com
“tinta invisível”.
Durante a Segunda Guerra mensagens eram transmitidas em micropontos.
Esteganografia: a arte de ocultar arquivos dentro de arquivos
6. Exemplos atuais de uso da esteganografia não digital
Segurança monetária: para garantir a autenticidade das cédulas.
Grandes fabricantes de impressoras: para garantir o não repúdio da
impressão.
Páginas html: a mensagem secreta é incluída apenas no código fonte.
Páginas html: a mensagem secreta é escrita na mesma cor do fundo.
Esteganografia: a arte de ocultar arquivos dentro de arquivos
7. Possibilidades futuras para a esteganografia não digital
Códigos de barras “invisíveis”.
“Assinatura” em moléculas* (visíveis apenas ao microscópio eletrônico).
Todo material genético Pode ser criado um código
é formado por cadeias de que associa uma letra do
quatro nucleotídeos: alfabeto a cada sequência
A=Adenina de três nucleotídeos:
C=Citosina ACG=A
G=Guanina ACT=B
T=Timina CGT=C
* Estudo desenvolvido por três cientistas e publicado na revista Nature em 1999.
Esteganografia: a arte de ocultar arquivos dentro de arquivos
8. Esteganografia em meios digitais – arquivos texto
Técnicas mais utilizadas:
➔
codificação por deslocamento de linhas verticalmente *
➔
codificação por deslocamento de palavras em textos justificados *
➔
adicionar pontuações e preposições *
➔
codificação por deslocamento de caracter de fim de linha
(Codificação Característica)
➔
esteganografia online
➔
sugestão: “invente” a sua Grelha Cardano
➔
* técnica não abordada neste trabalho devido à falta de tempo
Esteganografia: a arte de ocultar arquivos dentro de arquivos
9. Esteganografia em meios digitais – arquivos texto
Codificação por deslocamento de caracter de fim de linha (#1/2)
A técnica consiste em utilizar o espaço que sobra nas linhas do texto
que não são totalmente utilizadas.
Linhas em branco também podem ser utilizadas.
A mensagem é codificada utilizando-se os caracteres “espaço” e “tab”.
Um “tab” indica o início do texto secreto.
Os bits são gravados de três em três e os conjuntos de três bits são
separados por um tab (podem ser utilizados zeros para completar o
último trio).
São utilizados de 0 a 7 espaços para definir o estado (on/off) dos três
bits.
Zero espaços = 000 Um espaço = 001
Dois espaços = 010 Tres espaços =011
Quatro espaços =100 Cinco espaços=101
Seis espaços =110 Sete espaços = 111
Esteganografia: a arte de ocultar arquivos dentro de arquivos
10. Esteganografia em meios digitais – arquivos texto
Codificação por deslocamento de caracter de fim de linha (#2/2)
Exemplo: Como ficaria a inserção dos caracteres abc em um texto?
Tabela ASCII
Caracter Decimal Hexadecimal Binário Comentário
HT 09 09 0000 1001 Tabulação Horizontal
Espaço 32 20 0010 0000 Espaço em branco
LF 10 0A 0000 1010 Próxima linha (no linux)
a 97 61 0110 0001 Letra a
b 98 62 0110 0010 Letra b
c 99 63 0110 0011 Letra c
TBBBTTBBTBBBBBBTBTBTBBBBTBBB
T=tab B=espaço
Zero espaços = 000 Um espaço = 001
Dois espaços = 010 Tres espaços =011
Quatro espaços =100 Cinco espaços=101
Seis espaços =110 Sete espaços = 111
Esteganografia: a arte de ocultar arquivos dentro de arquivos
11. Esteganografia em meios digitais – arquivos texto
Esteganografia online
O Spammimic
Disponível na web em https://www.spammimic.com/
Oculta uma pequena mensagem criptografada em um texto (em inglês)
que parece ser um spam.
O texto é copiado e enviado ao destinatário.
O destinatário copia o texto para https://www.spammimic.com/ e solicita
a decodificação para obter a mensagem secreta.
Esteganografia: a arte de ocultar arquivos dentro de arquivos
12. Esteganografia em meios digitais – arquivos texto
Sugestão: “invente” a sua grelha de Cardano
A M A E D O
I N D I O M A Cardano utilizava um
sistema de grelha
N D O U A S por volta do ano 1300
O P A F R I A
A idéia é utilizar um arquivo de texto razoavelmente grande como
portador e fazer um programa que será utilizado como grelha.
Obs.: transmissor e receptor devem compartilhar o algoritmo da
grelha.
Esteganografia: a arte de ocultar arquivos dentro de arquivos
13. Esteganografia em meios digitais – arquivos de imagem
Técnicas mais utilizadas:
➔
inserção no(s) bit(s) menos significativo(s) (LSB)
➔
máscara e filtragem (mascaramento e filtragem) *
➔
algoritmo e transformações *
➔
espalhamento espectral (spread spectrum) *
➔
* técnica não abordada neste trabalho devido à falta de tempo
Esteganografia: a arte de ocultar arquivos dentro de arquivos
14. Esteganografia em meios digitais – arquivos de imagem
Inserção no bit menos significativo (LSB) (#1/4)
Pixel (Picture Element) – é a menor unidade de uma imagem digital a
qual é possível atribuir-se uma cor.
Quanto mais pixels, maior a resolução que a imagem terá.
Cada pixel é formado por um conjunto de três elementos: verde, vermelho
e azul (red-green-blue) – RGB.
Um pixel pode ser representado por uma quantidade variável de bits,
chamada “profundidade”: 2,4,8,16,24,32,64,...
Profundidade 24 = true color = 24 bits para cada pixel = 3 bytes para
cada pixel.
[ R ] [ G ] [ B ] = PIXEL
[ 0 – 255 ] [ 0 – 255 ] [ 0 – 255 ] = PIXEL
Se a intensidade de cada elemento variar entre 0 e 255 podemos ter
256*256*256=16.777.216 possibilidades de cores para cada pixel.
Exemplos: (red=250, green=165, blue=0) -> laranja
(255,255,0) -> amarelo; (255,255,255)-> branco; (0,0,0)-> preto
Esteganografia: a arte de ocultar arquivos dentro de arquivos
15. Esteganografia em meios digitais – arquivos de imagem
Inserção no bit menos significativo (LSB) (#2/4)
O que é uma imagem digital?
Imagem de
14 x 11 = 154 pixels
●
Uma imagem é composta por vários pixels organizados em linhas e
colunas.
Exemplo: uma imagem 800x600 = 800 colunas x 600 linhas = 800x600
pixels = 480.000 pixels.
Para uma profundidade de 24 bits esta imagem ocuparia um espaço de,
pelo menos, 1.440.000 bytes (480.000x3).
No início de um arquivo de imagem há uma string com caracteres de
controle (número de pixels do arquivo, profundidade,...).
Esteganografia: a arte de ocultar arquivos dentro de arquivos
16. Esteganografia em meios digitais – arquivos de imagem
Inserção no bit menos significativo (LSB) (#3/4)
Uma pequena alteração nos últimos bits de cada byte que definem a
cor dos pixels, implica em alterar um pouco o valor em decimal dos
componentes RGB e "engana" o olho humano.
11110010,10011001,11111110 (242,153,254)
(241,152,255)
11110001,10011000,11111111
Esteganografia: a arte de ocultar arquivos dentro de arquivos
17. Esteganografia em meios digitais – arquivos de imagem
Inserção no bit menos significativo (LSB) (#4/4)
Se utilizarmos apenas o último bit de cada byte de uma imagem de 24
bits com resolução 1024x768, teremos aproximadamente 294.912 bytes
disponívies para esteganografia (1024 x 768 pixels = 786.432 pixels e
786.432 x 3 = 2.359.296 bits; logo 294.912 bytes).
Exemplo: utilizando o último bit de cada byte para camuflar a letra “a”
(01100001 em ASCII)
01100111 Bytes
01100110
3 bytes = 1 pixel 10101001 originais 10101001
11001000 11001001
10100111 10100110
3 bytes = 1 pixel 10101001 10101000
01001011 01001010
01100110 Bytes
01100110
3 bytes = 1 pixel 11101001 alterados 11101001
11101001 11101001
Esteganografia: a arte de ocultar arquivos dentro de arquivos
18. Esteganografia em meios digitais – arquivos de audio
Técnicas mais utilizadas:
➔
codificação/inserção do/no bit menos significativo – LSB coding *
➔
codificação de paridade – Parity coding *
➔
codificação de fase – Phase coding *
➔
espalhamento espectral - Spread spectrum *
➔
ocultação de dados no eco do audio – Echo hiding *
●
Fonte:www.snotmonkey.com/work/school/405/methods.html
➔
* técnica não abordada neste trabalho devido à falta de tempo
Esteganografia: a arte de ocultar arquivos dentro de arquivos
19. Esteganografia em meios digitais – arquivos de vídeo
Técnica mais utilizada:
➔
espalhamento espectral - Spread spectrum *
➔
* técnica não abordada neste trabalho devido à falta de tempo
Esteganografia: a arte de ocultar arquivos dentro de arquivos
20. Esteganografia em meios digitais – pacotes TCP/IP
Técnicas mais utilizadas:
➔
aproveitamento dos campos não utilizados do header do pacote *
➔
alteração do número seqüencial do pacote (ISN)
➔
* técnica não abordada neste trabalho devido à falta de tempo
Esteganografia: a arte de ocultar arquivos dentro de arquivos
21. Esteganografia em meios digitais – pacotes TCP/IP
Alteração do número seqüencial do pacote (ISN) (#1/3)
Os dados são embutidos em campos não utilizados ou opcionais do
header do segmento TCP.
Formato do Segmento TCP
Porta de origem Porta de destino
Número sequencial (ISN)
Número de reconhecimento
desloc reservado Tamanho da janela
Checksum do seg TCP Ponteiro de dados URG
Opções e preenchimento
Dados – Geralmente entre 456 Bytes e
536 Bytes
Esteganografia: a arte de ocultar arquivos dentro de arquivos
22. Esteganografia em meios digitais – pacotes TCP/IP
Alteração do número seqüencial do pacote (ISN) (#2/3)
Exemplo: como enviar, da máquina A para a máquina B, a mensagem
“abc”?
Basta que transmissor e receptor definam o código e o protocolo de
transmissão que será utilizado.
CÓDIGO - pode ser convencionado, por exemplo, que utilizarão o valor
decimal correspondente aos caracteres da tabela ASCII
Então, em decimal, devem
ser transmitidos os
Tabela ASCII números 97, 98 e 99
Caracter Decimal Hexadecimal Binário Comentário
HT 09 09 0000 1001 Tabulação Horizontal
Espaço 32 20 0010 0000 Espaço em branco
LF 10 0A 0000 1010 Próxima linha (no linux)
a 97 61 0110 0001 Letra a
b 98 62 0110 0010 Letra b
c 99 63 0110 0011 Letra c
Esteganografia: a arte de ocultar arquivos dentro de arquivos
23. Esteganografia em meios digitais – pacotes TCP/IP
Alteração do número seqüencial do pacote (ISN) (#3/3)
PROTOCOLO
o receptor disponibiliza uma porta e aguarda conexões.
são válidos apenas os pacotes SYN (de início de conexão).
o transmissor altera o ISN do pacote TCP segundo a fórmula
ISN=(DEC*69241) -> 69241 é um número pré-acertado.
o transmissor envia o pacote TCP com o ISN alterado de acordo com
o caracter a ser transmitido, solictando uma conexão na porta pré-
acertada.
o receptor captura o pacote e obtém o caracter secreto através da
fórmula DEC=(ISN/69241).
o transmissor finaliza a conexão e inicia outra com o ISN alterado.
DEC ISN SYN + ISN alterado
97 6716377
98
99
6785618
6854859 A ACK
RST
B
Esteganografia: a arte de ocultar arquivos dentro de arquivos
24. Ferramentas para esteganografia em meios digitais
➔
Nome Licença Sist.Oper tipo de esteganografia
URL
➔
Snow GPL L W Deslocamento de caracter de fim de linha
http://www.darkside.com.au/snow/
➔
Spammimic freeware L W Esteganografia de texto online
http://www.spammimic.com
➔
JPHide freeware L W Esteganografia em imagnes - LSB
http://linux01.gwdg.de/~alatham/stego.html
➔
Outguess BSD L Estego em imagens - variação do LSB
http://outguess.org
➔
MP3stego ??? W Esteganografia em arquivos MP3
http://www.petitcolas.net/fabien/steganography/mp3stego/index.html
➔
MSU Stego freeware W Esteganografia em arquivos de vídeo
hhttp://compression.ru/video/stego_video/index_en.html
➔
Steghide GPL L Esteganografia em imagens e audio
http://steghide.sourceforge.net
Esteganografia: a arte de ocultar arquivos dentro de arquivos
25. Ferramentas para detectar esteganografia
Nome
➔
Licença Sist.Oper esteganografia que detecta
URL
hexdump
➔
GPL L caracteres de fim de linha (txt)
Encontrado em qualquer distribuição GNU/Linux
Stegdetect
➔
BSD L W esteganografia em imagens
http://www.outguess.org
➔
Stego Suite $2.000,00 W esteganografia em imagens e audio
http://www.wetstonetech.com
Esteganografia: a arte de ocultar arquivos dentro de arquivos
26. Conclusão
Se você está querendo esconder alguma coisa lembre-se que:
a utilização de texto criptografado aumenta as chances de que a
mensagem não seja decodificada por terceiros;
mensagens secretas pequenas (menor que 5% do tamanho do arquivo
portador) não são detectadas pelas ferramentas mais comuns
(Stegdetect);
criar seu próprio método pode dificultar a detecção.
Se você quer evitar que alguém esconda alguma coisa lembre-se que:
se é impossível descobrir a mensagem camuflada, sempre é possível
inutilizá-la.
Esteganografia: a arte de ocultar arquivos dentro de arquivos
27. Perguntas?
Esta apresentação estará disponível em www.pollon.org.
Esta apresentação baseou-se, principalmente, no material encontrado em
www.data-hiding.com.
Obrigado !!!
Esteganografia: a arte de ocultar arquivos dentro de arquivos