Você está na página 1de 28

Análise do vazamento de informação através do

side-channel da compressão quando utilizado em


conjunto com criptografia
Trabalho de graduação do curso de Ciência da Computação

Vinícius Aguiar de Oliveira


Orientado por Vinicius C. Garcia
● Introdução

Sumário
● Algoritmos de compressão
● Protocolo HTTP
● Relação entre criptografia e compressão
Tópicos que serão abordados ● Side-Channel
● Ataques contra HTTP
● Conclusão
● Trabalhos futuros
Introdução

➔ Importância da compressão nos dias de hoje


➔ Lei Geral de Proteção de Dados
➔ Possíveis vazamentos de informações cifradas
◆ Ataques de Side-Channel

Aumento da quantidade de aplicações web na Internet


Compressão
(Visão geral)

O que é compressão?
➔ Compressão sem perdas
➔ Compressão com perdas

Quais os benefícios da compressão?


➔ Tamanho dos dados em tráfego
➔ Tempo das requisições e respostas

Requisição sem compressão Requisição com compressão


Compressão
(Visão geral)

O que é compressão?
➔ Compressão sem perdas
➔ Compressão com perdas

Quais os benefícios da compressão?


➔ Tamanho dos dados em tráfego
➔ Tempo das requisições e respostas
➔ Custo do serviço

Preço de armazenamento em um bucket S3 da AWS


Compressão
(Algoritmos)

➔ Deflate
➔ Lempel-Ziv 77 (LZ77)
◆ Redução de redundâncias

Representação do algoritmo
Compressão
(Algoritmos)

➔ Deflate
➔ Lempel-Ziv 77 (LZ77)
◆ Redução de redundâncias
➔ Huffman Coding
◆ Frequência dos caracteres

◆ Huffman Tree

Representação da árvore para a string “Computando e computadores”


Protocolo HTTP
➔ Hypertext Transfer Protocol
◆ Stateless
◆ Comunicação entre cliente e servidor
Protocolo HTTP
➔ Hypertext Transfer Protocol
➔ Cabeçalhos HTTP
◆ Accept-Encoding
Protocolo HTTP
➔ Hypertext Transfer Protocol
➔ Cabeçalhos HTTP
➔ Possíveis segredos
◆ Quaisquer informações sensíveis na aplicação
Protocolo HTTP
➔ Hypertext Transfer Protocol
➔ Cabeçalhos HTTP
➔ Possíveis segredos
➔ HTTPS
◆ SSL/TLS
Relação entre
criptografia e compressão
Como usar ambas para obter o melhor resultado possível?
➔ Comprimir para criptografar
➔ Criptografar para comprimir
Side-Channel
➔ Descrição de Side-Channel

➔ Tipos diferentes de Side-Channel

➔ Formas de exploração
Ataques contra HTTP

➔ BEAST
➔ CRIME
➔ BREACH

➔ TIME
➔ HEIST
BREACH
(Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext)

➔ Black Hat 2013


➔ Compressão do protocolo HTTP
➔ Ataque focado na resposta enviada pelo servidor
BREACH
(Pré-requisitos)

➔ Compressão do HTTP habilitada


➔ Resposta do servidor precisa refletir uma entrada do usuário
➔ Presença de um secret que será o alvo do atacante

➔ Atacante precisa enviar requisições arbitrárias pela vítima


➔ Atacante precisa observar o tamanho das respostas retornadas

➔ Prefixo válido
BREACH
(Metodologia)

➔ LZ77 e Huffman Coding


➔ Tamanho da resposta e taxa de compressão
➔ Brute force byte a byte

Demonstração prática do ataque


BREACH
(Metodologia)

➔ LZ77 e Huffman Coding


➔ Tamanho da resposta e taxa de compressão
➔ Brute force byte a byte

Demonstração prática do ataque


BREACH
(Metodologia)

➔ LZ77 e Huffman Coding


➔ Tamanho da resposta e taxa de compressão
➔ Brute force byte a byte

Demonstração prática do ataque


BREACH
(Obstáculos)

➔ LZ77 e Huffman Coding


➔ Tamanho da resposta e taxa de compressão
➔ Brute force byte a byte
➔ O problema do Huffman Coding

Payload 1

Payload 2

Payloads diferentes com mesmo tamanho de resposta


BREACH
(Obstáculos)

➔ LZ77 e Huffman Coding


➔ Tamanho da resposta e taxa de compressão
➔ Brute force byte a byte
➔ O problema do Huffman Coding
◆ Two-Tries Method

Two-Tries Method
BREACH
(Obstáculos)

➔ LZ77 e Huffman Coding


➔ Tamanho da resposta e taxa de compressão
➔ Brute force byte a byte
➔ O problema do Huffman Coding
◆ Two-Tries Method

Two-Tries Method
BREACH
(Obstáculos)

➔ LZ77 e Huffman Coding


➔ Tamanho da resposta e taxa de compressão
➔ Brute force byte a byte
➔ O problema do Huffman Coding
◆ Two-Tries Method
◆ Charset Pools Charset Pools
BREACH
(Mitigações)

➔ Remoção da compressão do HTTP


➔ Separar entradas de usuários dos segredos
➔ Inclusão de valores aleatórios na resposta do servidor

➔ Segurança em camadas
CRIME
(Compression Ratio Info-leak Made Easy)

➔ Ekoparty 2012
➔ Compressão do TLS
➔ Ataque focado na requisição enviada pelo cliente

➔ Atualização do navegador Google Chrome


CONCLUSÕES

➔ Explorações no HTTP
➔ Exploração no túnel VPN
➔ Previsão de John Kelsey
➔ Previsões de Rizzo e Duong
TRABALHOS FUTUROS

➔ SSH
➔ XMPP
➔ IMAP
Obrigado

Vinícius Aguiar de Oliveira


Orientado por Vinicius C. Garcia

Você também pode gostar