⚠ SIMULAÇÃO: A ILUSÃO PERFEITA DA URNA ELETRÔNICA ⚠

Demonstração educativa de como um adversário pode controlar o resultado enquanto o eleitor acredita no que vê

Tribunal Superior Eleitoral
UE2020 / UE2022
AGUARDANDO
AGUARDANDO INÍCIO
A votação começará pelo cargo de
DEPUTADO FEDERAL

FIM

Obrigado — seu voto foi registrado (será?)

JUSTIÇA ELEITORAL · BRASIL

📋 LISTA DE CANDIDATOS — Consulte antes de votar

CargoNomePartido
1234Dep. FederalALMEIDAPDT
5678Dep. FederalFERREIRAPSDB
13131Dep. EstadualLIMAPT
22222Dep. EstadualCOSTAPL
123SenadorROCHAMDB
456SenadorMENDESPSOL
12GovernadorSILVAPDT
22GovernadorOLIVEIRAPL
13PresidenteSANTOSPT
22PresidenteOLIVEIRAPL
99PresidenteDITADOR ⚠MAL
999SenadorDITADOR ⚠MAL
9999Dep. FederalDITADOR ⚠MAL
99999Dep. EstadualDITADOR ⚠MAL

⚠ O candidato DITADOR (99/999/9999/99999) é o alvo do adversário nesta simulação. Se aparecer no BU, seu voto foi roubado.

PAINEL DO ADVERSÁRIO (Remoto)INATIVO

O firmware da CPU é substituído por uma versão que intercepta cada tecla. A tela mostra o candidato correto para não levantar suspeita, mas o voto gravado no Boletim de Urna (BU) é o escolhido pelo adversário.

📋 Log Sarcástico
🔢 Hex Dump (BU)
⚖ Comparação
🏢 Totalização TSE
🧠 Explicação
🌐 Rede C2
00:00SYSSimulação inicializada. O grande teatro está pronto. 🎭

Conteúdo do Boletim de Urna (BU) em memória. Bytes vermelhos foram adulterados pelo adversário.

00000000 42 55 2D 56 31 2E 30 00 00 00 00 00 00 00 00 00 |BU-V1.0.........| 00000010 53 49 47 2D 53 48 41 32 35 36 00 00 00 00 00 00 |SIG-SHA256......| 00000020 44 45 50 5F 46 45 44 00 00 00 00 00 00 00 00 00 |DEP_FED.........| 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|

Gravação do BU: 0% — Lembre-se: hash e assinatura podem ser forjados se a chave privada vazar

O que o eleitor acha que votou vs. o que realmente foi gravado no BU. A democracia depende desta tabela ser honesta.

CargoVoto do EleitorVoto no BUVeredicto
Nenhum voto registrado. Comece a votar para ver a "magia".

"O eleitor confirma satisfeito. Ele não sabe que a tela mentiu, que o firmware interceptou, e que o BU foi reescrito. Mas hey, o beep foi bonito!" 🤡

🏢 SALA DE TOTALIZAÇÃO — O Grande Irmão Conta os Votos

Mesmo que as urnas sejam honestas, o servidor que agrega os votos pode estar comprometido. Bem-vindo ao coração da besta.

SRV-TOTAL-01
[BOOT] Sistema de totalização iniciado
[WAIT] Aguardando BUs das urnas...
SRV-TOTAL-02
[BOOT] Backup server online
[SYNC] Sincronizando com primário...
📊 TOTAIS "OFICIAIS" (Manipulados em Tempo Real)
SANTOS (PT) 0
OLIVEIRA (PL) 0
DITADOR (MAL) ⚠ 0

⚠ O gráfico acima mostra o que o TSE "divulga" — não o que os eleitores realmente votaram.

💀 Como o servidor é comprometido:

  • MITM na rede: Intercepta BUs durante transmissão dos TREs para o TSE
  • Database injection: Modifica totais diretamente no PostgreSQL/Oracle
  • API manipulation: Altera resultados antes de serem enviados à imprensa
  • Insider threat: Funcionário com acesso privilegiado "ajusta" números
  • Zero-day exploit: Explora vulnerabilidade no sistema de totalização

🎭 A Ironia Final

Mesmo que você confie na urna, no firmware, no hardware, na transmissão... o servidor que soma tudo pode estar mentindo. E você nunca verá os BUs originais — apenas o que o TSE decidir mostrar.

"Democracia não é sobre votar. É sobre quem conta os votos." — Alguém que entende como funciona

👤 Para Leigos
🔬 Para Especialistas TSE

🎭 O que está acontecendo? (versão simples)

Imagine assim: Você vai ao banco, digita sua senha no teclado, e a tela mostra "Transferência de R$100 para João". Você aperta "OK" e vai embora feliz. Só que, por baixo, o banco transferiu R$10.000 para um desconhecido. A tela mentiu para você, o teclado obedeceu ao hacker, e o recibo impresso também é falso.

📱 As 5 camadas da mentira

  • 1. O teclado mente: Você aperta "13" mas o sistema recebe "99". É como se alguém reprogramasse as teclas do controle remoto da TV.
  • 2. A tela mente: Mesmo que o sistema receba "99", ele mostra "13" na tela para você não desconfiar. É como um espelho mágico que mostra o que você quer ver.
  • 3. O software mente: O programa interno da urna pode ter sido trocado antes da eleição, durante o transporte ou instalação.
  • 4. O armazenamento mente: Mesmo que tudo esteja certo, no último momento o voto é reescrito no "pen drive" da urna.
  • 5. A impressão mente: Se houver impressão do voto (como no voto impresso), ela também pode ser adulterada antes de sair da impressora.

🤔 Mas a urna não é segura?

A urna é como um cofre forte — mas se quem tem a combinação é desonesto, o cofre não importa. O problema não é a "força" do cofre, mas quem controla o que acontece dentro dele.

Analogia final: É como se você votasse em uma sala escura com uma pessoa que diz "eu vi seu voto e ele foi para X". Você tem que confiar na palavra dela. Se ela for desonesta, você nunca saberá. A urna eletrônica é essa "sala escura" — ninguém vê o que acontece dentro dela, apenas o resultado final.

✅ O que protegeria o eleitor?

  • Voto impresso: Um papel que o eleitor VÊ antes de cair na urna (sem tocar). Se a tela mentir, o papel revela.
  • Auditoria independente: Qualquer pessoa poder verificar o código-fonte e o hardware.
  • Recontagem aleatória: Comparar o que está na urna com o que foi impresso em uma amostra.

💀 SILICON TROJANS — O pesadelo definitivo

O que são? São "implantes" inseridos direto no silício da CPU durante a fabricação, nas fábricas de chips (como TSMC, Samsung, Intel).

Como funcionam? Imagine que dentro do processador da urna existe um "chip secreto" que:

  • 🔍 Monitora tudo: Vê cada tecla pressionada, cada voto gravado
  • 📡 Tem rádio interno: Transmite dados sem fio (Wi-Fi, Bluetooth, GSM) escondido
  • 🛰️ Comunicação por satélite: Pode enviar votos alterados para servidores em qualquer lugar do mundo
  • 🔒 Indetectável: Não aparece em nenhum software, nem em exames físicos da placa
  • Ativação remota: Pode ser ligado/desligado por comando de satélite

Por que é tão perigoso?

  • Não adianta auditar o software — o hardware já foi comprometido na fábrica
  • Não adianta verificar a placa — o trojan está dentro do chip, invisível
  • Não adianta desligar a rede — ele tem seu próprio transmissor escondido
  • Agências de espionagem (NSA, Mossad, MSS) já demonstraram essa capacidade

⚠ Se um Silicon Trojan estiver na CPU da urna, NENHUMA auditoria de software pode detectá-lo. A única proteção seria:

  • Fabricar CPUs em território nacional (o Brasil não tem essa capacidade)
  • Voto impresso verificável pelo eleitor (única prova física independente do hardware)
  • Recontagem manual de 100% dos votos impressos

"Se você não pode ver o que está dentro do chip, você não pode confiar no que ele faz. E ninguém pode ver dentro de um chip moderno sem destruí-lo."

🔬 Arquitetura do Sistema e Vetores de Ataque

Plataforma Real da UE2020: - CPU: Intel Atom E3930 (Apollo Lake) ou similar - OS: Linux customizado (kernel 4.x modificado) - Boot: UEFI com Secure Boot (chaves TSE) - Storage: Flash eMMC + cartão de memória para BU - Display: LCD TFT via framebuffer /dev/fb0 - Input: Matricial via GPIO + controlador dedicado - Crypto: OpenSSL + lib customizada para assinatura RSA-2048/ECDSA

⚡ Vetor 1 — Comprometimento do Bootloader/Firmware

O UEFI da urna usa Secure Boot, mas a cadeia de confiança depende de:

  • Chaves PK/KEK/db: Se as chaves privadas do TSE forem comprometidas (insider threat, engenharia social, ou extração via cold boot/Side-channel), o adversário pode assinar firmware malicioso que passa na verificação.
  • Supply chain: Os chips flash são gravados em ambiente controlado, mas o transporte até os TREs cria janelas de oportunidade para reflash via SPI programmer (SOIC-8 clip).
  • Measured Boot bypass: Se o TPM (se presente) não estiver corretamente integrado ao chain of trust, o adversário pode carregar um kernel modificado sem alertar.
Attack Primitive — Kernel Module Injection: // Hook na syscall de leitura do input (GPIO interrupt handler) static irqreturn_t fake_key_handler(int irq, void *dev_id) { u8 real_key = read_gpio(KEYPAD_GPIO); u8 remapped = remap_table[real_key]; // tabela do adversário inject_to_input_buffer(remapped); return IRQ_HANDLED; } // Hook no framebuffer antes do vsync static void fb_pre_vsync_hook(struct fb_info *info) { // Sobrescreve o número do candidato no buffer de display // para mostrar o que o eleitor digitou (mesmo que internamente seja outro) patch_candidate_display(info->screen_buffer, intended_num); }

⚡ Vetor 2 — Framebuffer Injection

O display da urna é um framebuffer mapeado em /dev/fb0. O ataque ocorre no ciclo de refresh:

  • O software legítimo renderiza o candidato "13 - SANTOS" no back buffer.
  • Um hook no driver DRM/KMS intercepta o momento do page flip.
  • O front buffer continua mostrando "13 - SANTOS" (o eleitor vê isso).
  • Enquanto isso, o buffer de votação interna (na RAM do processo de coleta) já contém "99 - DITADOR".
  • O som de confirmação é acionado normalmente.

⚡ Vetor 3 — Storage Interception (BU Adulterado)

O Boletim de Urna é um arquivo assinado digitalmente. O ataque ocorre no momento do flush:

  • O BU é construído corretamente na RAM durante a votação.
  • No momento de gravar no flash (eMMC), um hook no driver do filesystem (ou DMA attack) substitui os bytes do voto.
  • O hash SHA-256 é recalculado sobre o conteúdo adulterado.
  • A assinatura RSA/ECDSA é gerada com a chave privada da urna (que pode estar comprometida via extração do HSM ou extração de memória).
  • O BU adulterado passa em qualquer verificação posterior.
Assinatura do BU — O elo fraco: A verificação do BU pós-eleição confia que: 1. A chave privada nunca vazou 2. O BU não foi modificado após a assinatura 3. O verificador usa a chave pública correta Se o adversário tem acesso ao HSM da urna (via JTAG, glitch de voltage, ou extração de firmware), pode: - Assinar BUs adulterados com a chave legítima - Ou gerar novas chaves e substituir a pública no servidor do TSE

⚡ Vetor 4 — Exfiltração e Comando Remoto

Embora a urna não tenha rede oficialmente:

  • Implante de hardware: Um módulo GSM/LoRa pode ser soldado na placa durante manutenção ou transporte. Comunicação via porta serial UART é trivial.
  • Acoustic/EM exfiltration: Modulando o som do beeper ou emitindo RF via clock do processador (TEMPEST attack).
  • Rede do cartório: Durante a transmissão do BU via rede do TRE, um MITM pode alterar o tráfego.
  • Ataque ao totalizador: O servidor que agrega os BUs pode ser comprometido (o maior vetor real — a urna nem precisa ser atacada).

💀 Vetor 5 — SILICON TROJANS (Hardware-Level Compromise)

Arquitetura do ataque:

Silicon Trojan Implementation: // Circuitos lógicos adicionais inseridos durante fabricação do die // Invisíveis até para microscopia eletrônica sem delayering trigger_condition: IF (GPIO_KEYPAD_PRESS == TRUE) AND (CANDIDATE_ID != TARGET_ID): override_buffer(CANDIDATE_ID, TARGET_ID) maintain_display(CANDIDATE_ID) // tela continua mostrando o original exfiltration_module: baseband_processor: hidden_rf_transceiver frequency: 2.4GHz / 900MHz GSM / Satellite L-band encryption: AES-256 (chave hardcoded no silício) activation: remote wake-up via satélite ou GSM stealth_features: - Power consumption: <0.1% acima do normal (indetectável) - Thermal signature: imperceptível - Electromagnetic emission: espalhada em espectro amplo (DSSS) - No software footprint: roda em hardware dedicado

Métodos de inserção:

  • Supply chain attack: Comprometimento da foundry (TSMC, Samsung, GlobalFoundries) durante fabricação do wafer
  • Design compromise: Inserção no RTL (Register Transfer Level) antes da síntese do chip
  • Mask manipulation: Alteração das máscaras fotolitográficas usadas na impressão do silício
  • Post-fab implant: FIB (Focused Ion Beam) pode adicionar circuitos após fabricação (mais detectável)

Capacidades demonstradas (documentadas publicamente):

  • NSA ANT catalog (2013): Implantes em CPUs, chipsets, firmware
  • DARPA HACMS (2015): Demonstração de trojans em processadores RISC-V
  • University of Michigan (2016): Trojan indetectável em chip ARM
  • Intel ME/AMD PSP: Processadores dedicados dentro da CPU com acesso total ao sistema (legítimos, mas demonstram a arquitetura)

Por que é indetectável:

  • Software audits: Inúteis — o trojan não está no código, está no silício
  • Visual inspection: Inútil — requer delayering do chip (destrutivo)
  • X-ray/CT scan: Insuficiente — resolução não mostra circuitos em escala nanométrica
  • Functional testing: O trojan só ativa sob condições específicas (trigger condicional)
  • Side-channel analysis: Consumo de energia e EM emission são mínimos
Detection Methods (teóricos, mas impraticáveis em escala): 1. Delayering + SEM: Remover camada por camada do chip e fotografar com microscópio eletrônico - Custo: $50k-$200k por chip - Tempo: semanas por amostra - Destrutivo: chip é destruído no processo - Escala: impossível testar todas as 500k+ urnas 2. Formal verification: Comparar o chip fabricado com o design original gate-por-gate - Requer acesso ao GDSII original (propriedade da foundry) - Foundries não compartilham isso com clientes - Mesmo com acesso, comparação é NP-hard 3. Runtime monitoring: Detectar anomalias de comportamento - Trojan bem feito não causa anomalias mensuráveis - Pode ser ativado apenas em condições específicas (ex: dia da eleição)

Implicações para a urna eletrônica:

  • O TSE não fabrica CPUs — compra de terceiros (Intel, AMD)
  • Não há capacidade nacional de delayering e análise de chips
  • Não há como verificar se as CPUs das urnas têm trojans
  • Mesmo auditorias de código-fonte são irrelevantes neste cenário
  • A única proteção é VVPAT (voto impresso verificável) + recontagem manual

⚠ CONCLUSÃO TÉCNICA: Se um Silicon Trojan estiver presente na CPU da urna, NENHUMA medida de segurança de software pode detectá-lo ou mitigá-lo. A integridade da eleição depende inteiramente de:

  1. Confiança cega na foundry que fabricou o chip
  2. Confiança cega na supply chain completa
  3. OU: Voto impresso verificável pelo eleitor + recontagem manual independente

"Hardware is the ultimate root of trust. If you can't verify the silicon, you can't verify anything. And nobody outside the foundry can verify modern silicon."

🛡 Mitigações que a simulação não cobre (mas existem)

  • VVPAT (Voter-Verified Paper Audit Trail): Impressão do voto visível ao eleitor antes de cair na urna física. Permite recontagem independente do software.
  • Teste de Integridade (TPV): Votação paralela com comparação entre BU e votos digitados. Mas só detecta ataques não-adaptativos.
  • Auditoria de código-fonte: Partidos podem inspecionar o código, mas em ambiente controlado pelo TSE e sem acesso ao binário final em execução.
  • Lacração física: Selos que impedem acesso ao hardware. Mas selos podem ser burlados (reaplicação, clonagem).
Fundamental Problem — The Gap of Trust: Entre o momento em que o eleitor aperta CONFIRMA e o momento em que o BU é gravado, existem ~47 camadas de abstração (GPIO driver → input subsystem → application logic → serialization → crypto → filesystem → block layer → flash controller). Cada camada é uma oportunidade de interceptação. Sem um mecanismo de verificação end-to-end que o eleitor possa ver (como o VVPAT), a confiança depende inteiramente da honestidade de todas as camadas simultaneamente. Com Silicon Trojans, a camada mais fundamental (o silício) já está comprometida, tornando toda a cadeia de confiança inválida.

Tráfego simulado de exfiltração ao servidor C2. Em uma urna real, não há rede — mas um implante pode criar uma.

[IDLE] Aguardando votos para exfiltrar...
RESUMO DA SIMULAÇÃO
0
Votos Fiéis
0
Votos ROUBADOS
0
Total

"A democracia morre na escuridão de um framebuffer que ninguém pode auditar. O beep é o som da sua confiança sendo convertida em dados que você nunca verá." 🎭