AEGIS · Fase 8 concluída

A criptografia esconde o que você disse. Isto esconde que você falou.

A criptografia mantém o conteúdo de uma mensagem privado. Ela não esconde que a mensagem aconteceu. Quem observa a rede continua vendo quem fala com quem, quando, e quantos kilobytes (KB) se moveram — o que, em contextos sensíveis, pode importar tanto quanto as palavras. O AEGIS mantém o tráfego entre os membros de um grupo fechado fluindo a taxa constante, havendo ou não algo para enviar, de modo que a temporização e o volume não carregam sinal nenhum.

LinguagemRust
AdversárioPassivo global
Testes do workspace195 passando
Fuzzing1,17 mi+ execuções
Último enviohá pouco
A única regra

“Nada está pronto até uma simulação de ataque confirmar.”

A intuição sobre análise de tráfego falhou repetidas vezes durante o desenvolvimento. Só a bancada de simulação se mostrou confiável, então ela virou o controle. A bancada em Python em sim/ é o livro-razão de evidências por trás de cada afirmação quantitativa da especificação — não um acréscimo tardio que valida um projeto já entregue.

Em português claro

O que isto é, em um minuto

O problema

Quem consegue observar a rede não precisa quebrar a criptografia. Vê que um ponto enviou 14 KB às 09:41:03 e outro recebeu 14 KB três segundos depois, e que a mesma coisa acontece duas vezes por dia durante onze semanas. Repetido o bastante, isso é um mapa de quem trabalha com quem, desenhado sem ler uma única mensagem.

A solução

O AEGIS faz o fio parecer igual o tempo todo. O tráfego sai a taxa constante, havendo ou não algo para enviar, e o que chega é enchido até um tamanho fixo, então não há rajada em uma ponta para casar com uma rajada na outra. Isso custa banda e acrescenta atraso; a demonstração abaixo mostra a proteção e o preço lado a lado.

Para quem é

Redações e quem protege uma fonte, em que a hora e o tamanho de um contato são o que expõe a pessoa. Bancos, seguradoras e entidades setoriais que competem entre si e ainda assim precisam trocar dados. Organizações que compartilham alertas sobre ataques, em que ser visto compartilhando já pode ser a parte sensível.

Esconder o conteúdo é a metade mais fácil. Esconder o padrão é a parte que precisa da engenharia abaixo: a ameaça por inteiro, um ataque que você mesmo pode rodar contra as duas configurações, os números dos testes, e onde as garantias acabam.
A ameaça

Os metadados são a parte que identifica você

Um adversário passivo global não consegue ler as suas mensagens. Nem precisa. Ele observa todos os enlaces ao mesmo tempo e correlaciona: este ponto transmitiu 14 KB às 09:41:03, aquele ponto recebeu 14 KB às 09:41:06, e o padrão se repete duas vezes por dia durante onze semanas.

Volume e temporização bastam para reconstruir o grafo de relacionamentos de uma organização inteira sem quebrar uma única cifra. Para um consórcio — bancos liquidando entre si, hospitais compartilhando prontuários, redações com fontes — o grafo é a informação sensível.

O AEGIS transforma o fio em uma parede plana e imutável. Taxa constante independentemente do que está acontecendo por baixo, então volume e temporização não carregam sinal nenhum. A demonstração abaixo deixa você rodar o ataque contra as duas configurações e ver a diferença.

Modo 1

Mixnet moldada

Dados pequenos e em rajadas, mais todo o tráfego de controle. Pacotes Sphinx emitidos a taxa constante, com enchimento de teto rígido no receptor para que o volume de entrada de um receptor também fique fixo.

Modo 2

Plano de volume

Transferência de arquivos grandes com nível de segurança ajustável — cru, em baldes ou em lotes uniformes. Você escolhe onde fica na curva de custo; nada sobre o preço é escondido.

Interativo

Seja o adversário passivo global

Cinco remetentes falam, cada um, com exatamente um de cinco destinatários. Você vê apenas o volume de tráfego em cada enlace — nunca o conteúdo, nunca o roteamento. Correlacione as séries e tente recuperar o pareamento. Depois ligue a defesa de taxa constante e tente de novo.

Dois perfis de fio comparados: o tráfego sem moldagem mostra rajadas rastreáveis e o adversário recupera o grafo de relacionamentos; o tráfego moldado a taxa constante é plano e a recuperação cai ao nível do acaso
role para ver o diagrama inteiro →
O que o adversário de fato vê. Rode o ataque você mesmo abaixo — os números desta figura são os que a demonstração produz.

bancada de análise de tráfego

Enlace do remetente Enlace do destinatário Correlação alta Correlação baixa

Conclusão do adversário

Correlacionando…
 
Pares recuperados
—
Correlação de pico
—

Custo da defesa

Banda
1,0×
Latência adicionada
0 ms

O acaso é 20% — um par em cinco recuperado no chute. Qualquer coisa significativamente acima disso é o adversário vencendo. Os números de custo são a outra metade honesta: moldar a taxa constante não sai de graça, e o AEGIS não finge que sai.

Uma ilustração de salto único escrita para esta página. O sistema real empilha roteamento Sphinx, triagem de nós-guarda, faróis de aleatoriedade distribuída e provas de reputação de conhecimento zero sobre a moldagem mostrada aqui.
Evidência

Oito fases, cada uma atrás de um controle de red team

A implementação está completa até a Fase 8, endurecimento. Estes são os números que o repositório relata: o fuzzing rodou sob o Subsistema do Windows para Linux (WSL), e a testnet rodou sobre sockets reais de Protocolo de Controle de Transmissão (TCP).

36/36
Vetores de teste de cripto
195
Testes do workspace passando
1.17M+
Execuções de fuzzing, zero crashes
41/41
Testes de topologia
ÁreaResultadoObservações
Vetores de cripto36 / 36 
Roteamento de relays14 / 14 
Topologia41 / 41 
Negociador / correlação de volume25 / 25 
Testes do workspace195Todos passando
Fuzzing de segurança1.17M+libFuzzer via WSL, zero crashes
TestnetTCP realRoteamento de pacotes Sphinx sobre sockets reais
Análise de traçosBenigno vs. maliciosoComparação com traços reais
Para quem é

Esconde quem está falando, não só o que foi dito

Embaralhar uma mensagem é um problema resolvido. O que isso não esconde é que você mandou uma, para quem, quando e quanto. Só esse padrão muitas vezes basta para identificar as pessoas.

01

Redações e quem estiver protegendo uma fonte

Ninguém precisa ler a mensagem se consegue ver que uma certa pessoa procurou um certo jornalista às duas da manhã. É o horário e o tamanho que expõem as pessoas.

02

Empresas rivais que mesmo assim precisam compartilhar dados

Bancos, seguradoras e associações do setor trocam informações enquanto competem. Com quem você passou a falar de repente, e com que frequência, entrega no que você está trabalhando.

03

Organizações trocando alertas sobre ataques

Compartilhar informação sobre ameaças é útil, mas ser visto compartilhando pode ser justamente a parte sensível. Isto mantém privado o fato da conversa, não só o conteúdo dela.

Reconhece a sua situação aqui? Isto está aberto para teste beta agora, e as pessoas para quem ele é construído são aquelas cujo retorno de fato o muda. Seja um testador beta →
Defesas

O que fica em cima da moldagem

  • Handshakes com sigilo futuro. O comprometimento de chaves de longo prazo não expõe sessões retroativamente.
  • Seleção de caminho ciente de reputação. As rotas preferem relays com comportamento já estabelecido.
  • Faróis de aleatoriedade distribuída. Nenhuma parte sozinha controla a entropia da seleção de caminho.
  • Provas de reputação de conhecimento zero. Um relay prova que passa de um limiar de reputação sem revelar a sua pontuação.
  • Triagem de nós-guarda. Resistência a Sybil no ponto em que ela mais importa.
Limites honestos

Onde as garantias param

  • Só tráfego interno. As garantias fortes valem dentro do consórcio. A saída para a clearnet é mais fraca, e não se afirma o contrário.
  • Empírico, não provado. Os resultados são limites empíricos sob o modelo de adversário declarado. Não são provas matemáticas.
  • A latência é inerente. Latência de vários segundos é uma propriedade do projeto, não um problema de ajuste que será otimizado até sumir.
  • Ferramenta errada para duas partes. O AEGIS serve para esconder o grafo de relacionamentos entre muitos pontos. Para um enlace de duas partes, as defesas de camada de enlace se saem melhor.
  • Ainda há pesquisa em aberto. docs/ops/RESEARCH_AGENDA.md é a lista honesta do que não está terminado.
Higiene do repositório: Integração Contínua (CI) no GitHub Actions, cargo deny auditoria de dependências e uma política de todo o workspace proibindo código unsafe. Para uma pilha de rede em Rust que trata entrada adversária, #![forbid(unsafe_code)] em todo o workspace é a linha que mais sustenta o projeto.