Censura de Internet em regimes totalitários: arquitetura técnica, DPI e evasão de bloqueios

Durante muito tempo a ideia de censura de internet foi associada a bloqueios simples de websites. Domínios eram colocados em listas negras e resoluções DNS eram manipuladas para impedir o acesso. Esse modelo ainda existe, mas ele não representa mais o estado da arte. Infraestruturas modernas de controle informacional operam em níveis muito mais profundos da pilha de rede e combinam múltiplas técnicas de classificação de tráfego.

O exemplo mais estudado desse tipo de sistema é o que ficou conhecido como Great Firewall, componente central do aparato de controle digital da China. O nome sugere um único firewall nacional, mas a realidade é diferente. Trata-se de um conjunto de sistemas distribuídos ao longo da infraestrutura de rede do país. Equipamentos de inspeção são instalados em pontos estratégicos da topologia de internet: gateways internacionais, backbones de operadoras, pontos de troca de tráfego (IXPs) e infraestruturas de interconexão com provedores estrangeiros.

Essa distribuição permite que o sistema observe e classifique enormes volumes de tráfego em tempo real. O objetivo não é apenas bloquear sites específicos. O objetivo principal é identificar padrões de comunicação considerados suspeitos, principalmente aqueles associados a ferramentas de evasão de censura.

Para entender tecnicamente como esse sistema funciona, é necessário observar três camadas de análise que operam simultaneamente: filtragem de destino, inspeção profunda de pacotes e análise comportamental de fluxo.


Filtragem básica: IP, DNS e reset de conexão

O nível mais simples da censura ainda é baseado em destino. O sistema observa para onde uma conexão está sendo estabelecida e decide se ela deve ser permitida.

Isso ocorre principalmente através de três mecanismos.

O primeiro é o bloqueio de endereço IP. Se um servidor é classificado como proibido, o tráfego para aquele endereço é descartado.

O segundo é manipulação de DNS. Quando um cliente tenta resolver um domínio bloqueado, o resolver pode retornar um endereço inexistente ou incorreto. O usuário recebe um IP inválido e a conexão nunca ocorre.

O terceiro mecanismo envolve a injeção de pacotes TCP RST. Quando o firewall detecta uma tentativa de conexão com um destino proibido, ele envia pacotes de reset que encerram a sessão imediatamente.

Essas técnicas continuam sendo amplamente utilizadas, mas elas não resolvem o problema de ferramentas de evasão que utilizam domínios ou endereços dinâmicos. Nesse cenário, o sistema precisa analisar o comportamento do tráfego, não apenas o destino.


Deep Packet Inspection e a pilha de protocolos

É nesse ponto que entra o conceito de Deep Packet Inspection (DPI). O termo costuma ser interpretado como a capacidade de descriptografar conexões TLS, mas isso raramente acontece em sistemas de censura em larga escala. A inspeção profunda de pacotes normalmente trabalha com metadados de protocolo que permanecem visíveis mesmo quando o payload está criptografado.

Um sistema de DPI observa elementos de diferentes camadas da pilha de rede.

CamadaInformação observável
L3 (IP)endereços de origem e destino
L4 (TCP/UDP)portas, flags, tamanho de sessão
L5 (TLS handshake)parâmetros de negociação
L7 (metadata de protocolo)campos não criptografados

Quando um cliente inicia uma conexão HTTPS, o processo começa com um handshake TLS. Esse handshake contém uma quantidade significativa de informação em texto claro.

Um fluxo simplificado de conexão TLS pode ser representado assim:

Client -> TCP SYN -> TLS ClientHello -> ServerHello -> Encrypted session

O conteúdo da sessão é criptografado, mas o handshake inicial não é.


ClientHello e fingerprinting TLS

Durante a fase inicial da negociação TLS, o cliente envia uma mensagem chamada ClientHello. Esse pacote inclui diversos parâmetros utilizados para estabelecer a sessão criptografada.

Entre os campos presentes estão:

  • versão TLS suportada
  • lista de cipher suites
  • extensões TLS
  • parâmetros de curva elíptica
  • algoritmos de assinatura
  • campo Server Name Indication (SNI)

Um exemplo simplificado de ClientHello pode ser representado assim:

ClientHello
TLS Version: 1.3
Cipher Suites:
TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
Extensions:
server_name
supported_groups
signature_algorithms
ALPN

A combinação desses elementos cria uma assinatura característica da implementação TLS utilizada pelo cliente. Navegadores modernos seguem padrões relativamente estáveis. Proxies e túneis customizados frequentemente apresentam padrões diferentes.

A partir dessas características surgiu o conceito de TLS fingerprinting, popularizado pela assinatura JA3. Esse fingerprint é gerado a partir da sequência e do conteúdo dos campos presentes no ClientHello.

Um firewall não precisa descriptografar a sessão para identificar um protocolo suspeito. Basta comparar o fingerprint observado com uma base de assinaturas conhecidas.


SNI e bloqueio de domínio em conexões TLS

Outro campo importante presente no handshake TLS é o Server Name Indication. Esse campo informa ao servidor qual domínio o cliente pretende acessar.

Por exemplo:

SNI: www.example.com

Como o SNI aparece em texto claro no handshake TLS tradicional, sistemas de censura podem bloquear conexões destinadas a determinados domínios mesmo quando o tráfego é criptografado.

Durante anos esse mecanismo foi amplamente utilizado pelo Great Firewall para bloquear serviços estrangeiros.


Análise comportamental de fluxo

Mesmo quando o handshake TLS parece legítimo, o comportamento do tráfego pode revelar a natureza da comunicação.

A navegação web comum apresenta características relativamente previsíveis. O usuário solicita um recurso, o servidor responde e a conexão entra em um período de inatividade até a próxima requisição.

Esse padrão produz bursts de tráfego curtos seguidos por intervalos de silêncio.

Túneis proxy e VPNs apresentam comportamento diferente. A comunicação costuma ser contínua e bidirecional. O fluxo de pacotes tende a ser constante e com pouca variabilidade temporal.

Sistemas de DPI analisam parâmetros como:

  • distribuição de tamanho de pacotes
  • tempo entre pacotes consecutivos
  • volume de dados em cada direção
  • entropia do payload
  • duração da sessão

Com base nesses parâmetros é possível classificar tráfego com bastante precisão. Em implementações mais recentes, alguns sistemas utilizam modelos de aprendizado de máquina treinados para detectar padrões associados a proxies e VPNs.


Active probing

Outro mecanismo documentado no Great Firewall é o chamado active probing.

Quando o sistema detecta um fluxo suspeito, ele registra o endereço IP do servidor de destino. Em seguida, scanners automatizados tentam se conectar diretamente ao serviço.

Se o servidor responder de forma compatível com um proxy ou bridge, o endereço entra em uma lista de bloqueio.

Esse método foi amplamente observado contra bridges da rede Tor.


Tor e o transporte obfs4

Uma das respostas da comunidade de privacidade a esse tipo de censura foi o desenvolvimento de transportes pluggáveis para a rede Tor. Um dos mais conhecidos é o obfs4.

Documentação do projeto:
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/obfs4

O obfs4 atua como uma camada intermediária entre o cliente Tor e a bridge. Ele transforma o tráfego da rede Tor de forma que ele se pareça com dados aleatórios.

O protocolo utiliza um handshake autenticado baseado em chave pública. Sem conhecer a chave da bridge, o servidor simplesmente não responde. Isso impede que scanners automatizados confirmem a presença de um serviço Tor.

Além disso, o tráfego gerado não apresenta padrões facilmente reconhecíveis, o que dificulta a classificação estatística.


O ecossistema V2Ray

Outro conjunto de ferramentas bastante utilizado em ambientes de censura é V2Ray.

Site oficial:
https://www.v2fly.org

Repositório do projeto:
https://github.com/v2fly/v2ray-core

V2Ray é um framework de proxy modular que permite encapsular tráfego em diferentes protocolos e camadas de transporte.

Entre os protocolos suportados estão:

  • VMess
  • Shadowsocks
  • HTTP
  • SOCKS

O protocolo VMess foi desenvolvido para dificultar fingerprinting por DPI. Ele inclui autenticação e criptografia próprias e pode operar sobre múltiplos transportes.

Uma arquitetura comum utiliza:

VMess

WebSocket

TLS

TCP 443

Para observadores externos, o tráfego se parece com uma aplicação web que utiliza WebSocket sobre HTTPS.


Xray-core e a evolução do ecossistema

Nos últimos anos, grande parte da comunidade técnica migrou para Xray-core, um fork que expandiu o ecossistema V2Ray.

Repositório do projeto:
https://github.com/XTLS/Xray-core

O Xray introduziu novos protocolos e transportes voltados especificamente para evasão de DPI.

Entre eles estão:

  • VLESS
  • XTLS
  • Reality transport

O protocolo VLESS remove a camada de criptografia própria presente em VMess e delega a segurança da sessão ao TLS. Isso reduz overhead e diminui padrões detectáveis no handshake.

O transporte Reality tenta resolver um problema clássico da evasão de censura: TLS falso pode ser detectado por fingerprinting.

Nesse modelo, o handshake TLS se comporta como uma sessão legítima com servidores populares. O firewall observa uma negociação aparentemente normal.

Somente após autenticação interna o tráfego passa a ser tratado como túnel.


Uma corrida tecnológica permanente

Nenhuma dessas tecnologias representa uma solução definitiva. Sistemas de censura evoluem constantemente. Ferramentas de evasão também.

Firewalls nacionais já utilizam:

  • fingerprinting TLS
  • análise estatística de fluxo
  • active probing
  • classificação de tráfego baseada em machine learning

Ferramentas anti-censura respondem com:

  • mimicry de protocolo
  • padding de pacotes
  • multiplexação de tráfego
  • geração dinâmica de fingerprints TLS

Essa dinâmica cria uma corrida tecnológica permanente entre sistemas de controle e tecnologias de evasão.

Nos meus repos abaixo tem os tutoriais completos de instalação do V2Ray e Xray servers, com cliente no Kali Linux:
https://github.com/V1n1v131r4/Xray-Core-Ubuntu-Server—Kali-
https://github.com/V1n1v131r4/V2Ray-V2RayA-Ubuntu-Server—Kali-

Para quem trabalha com segurança de redes, inteligência ou OPSEC, o ponto mais importante não está apenas na criptografia empregada. A criptografia protege o conteúdo da comunicação. O comportamento observável do tráfego continua sendo a principal fonte de informação para quem tenta identificar o que realmente está acontecendo em uma rede.


Publicado

em

por