Muito tem se falado na técnica de Domain Fronting como método para evadir sistemas de censura. Apesar de aparentar complicada a primeira vista, a técnica é na verdade bastante simples.

Em uma conexão SSL tradicional, o nome do servidor para o qual se está abrindo a conexão encontra-se oculto. Efetua-se a conexão diretamente para um endereço IP.

Porém surge o problema de um nome de host exigir um IP dedicado.

SNI – Server Name Indication

Surgiu então a proposta do padrão SNI, que foi rapidamente adotada por todos os principais navegadores. Por essa proposta, cada requisição HTTPS poderá incluir o nome de um servidor no envelope externo, não criptografado.

Ou seja a requisição para uma busca no Google via HTTPS, teria um envelope indicando o Host: www.google.com, e um pacote de dados criptografado usando TLS como de praxe.

Assim, um IP pode servir requisições de diversos hosts usando SSL. A desvantagem é que um espião poderá ver quais hosts estão sendo acessados, e bloqueá-los. Diversos países efetuam esse tipo de filtragem, especialmente em regimes com políticas de censura como a Arábia Saudita e a China.

Domain Fronting

A técnica de Domain Fronting foi descrita em um paper da Universidade da Califórnia, onde os pesquisadores experimentaram uma técnica simples: mostrar o nome de um host no cabeçalho SNI, porém um host diferente no payload criptografado. O servidor de destino inicia a transação baseando-se no host identificado via SNI, porém ao abrir o pacote criptografado encontra outro cabeçalho Host: com um nome distinto daquele identificado externamente.

Um servidor destino corretamente configurado irá ignorar essa requisição por tratar-se de um pedido inválido.

Porém proxies reversos públicos e de grande escala, como Cloudfront e Cloudflare, irão considerá-la uma solicitação válida e passarão adiante o pacote, que chegará ao destino.

Para tornar a técnica ainda mais eficaz, é possível criar domínios sinônimos de hosts em CDN’s como o Cloudflare, usando entradas CNAME na zone DNS. Ou seja, o host www.proibido-acessar-bloqueado.com pode ser um CNAME para codigo123456.cloudflare.com. Usando o host codigo123456.cloudflare.com no envelope externo, o firewall deixará a requisição passar, porém ao abrir o payload criptografado, o servidor encontrará www.proibido-acessar-bloqueado.com e irá servir o conteúdo que tentou-se bloquear.

Como o leitor pode notar, trata-se de uma técnica sofisticada, mas que tem um princípio bastante simples. O Domain Fronting pode ser usado até contra firewalls nacionais de censura em massa, como aqueles usados na Arábia Saudita e China. Porém, administradores de redes corporativas também devem estar atentos a esse tipo de ataque pois em breve deverão surgir ferramentas para sistematizar o encapsulamento de requisições HTTPS, com hosts falsos no cabeçalho SNI.

—–

Ilustração : Wikimedia

 

Imagem em Destaque