🎭 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:
- Confiança cega na foundry que fabricou o chip
- Confiança cega na supply chain completa
- 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.