← Todos os artigos

Abriram o piloto de voto pela internet ao público. Caiu em 48 horas.

Uma equipa universitária invadiu o piloto de voto pela internet de Washington D.C., alterou cada boletim de voto e fez o servidor tocar uma canção de luta — e os funcionários não notaram durante dias.

É setembro de 2010, e nalgum lugar num servidor em Washington, D.C., uma canção de luta da Universidade de Michigan está a tocar.

Não porque alguém a tenha agendado. Porque uma equipa de investigadores acabou de tomar o controlo de um sistema de voto pela internet em direto — alterou cada boletim de voto nele, leu cada voto secreto, e depois, como cartão de visita, programou o servidor para tocar "The Victors" após cada submissão simulada. Fizeram-no em aproximadamente 48 horas. E durante vários dias, ninguém na Junta Eleitoral do Distrito de Colômbia notou coisa alguma.

É aqui que esta história começa. Não com uma conspiração, não com um adversário estrangeiro, não com uma corrida apertada. Com uma equipa de investigação universitária, um convite público, e uma vulnerabilidade que caiu em dois dias.

O piloto que quase não foi um teste

Em 2010, D.C. estava a tentar fazer algo genuinamente progressista. Os eleitores no estrangeiro e militares enfrentavam barreiras reais ao devolver os seus boletins de voto a tempo. A cidade construiu um sistema de devolução de boletim pela internet para resolver isso — e antes de o implementar em eleições reais, os funcionários fizeram algo quase inaudito: abriram-no ao público para testes adversariais.

Chamaram-lhe um teste aberto. Publicaram o servidor. Disseram ao mundo: venham encontrar o que está errado.

Uma equipa liderada por J. Alex Halderman — Scott Wolchok, Eric Wustrow, Halderman e Deepak Prasad — apareceu. Em aproximadamente 48 horas, tinham explorado uma vulnerabilidade de software e obtido controlo quase completo do servidor piloto. Podiam alterar boletins de voto que já tinham sido emitidos. Podiam ler votos que deviam ser secretos. Demonstraram isto reprogramando o sistema para tocar a canção de luta da Universidade de Michigan após cada voto. A intrusão passou despercebida aos funcionários durante dias. Os resultados foram posteriormente publicados como um artigo revisto por pares, "Attacking the Washington, D.C. Internet Voting System," no Financial Cryptography 2012.

D.C. abandonou os planos de usar o sistema para votos vinculativos em direto.

As vulnerabilidades foram apanhadas precisamente porque a cidade abriu o sistema a ataques públicos antes de boletins reais estarem em risco. Os testes adversariais públicos transformaram um desastre iminente numa falha apanhada.

Esta é a lição completa desta história — mas leva algum desenvolvimento para compreender por que é tão difícil agir com base nela.

O que "certificado" realmente testa

Aquilo que impressiona a maioria das pessoas quando encontram este caso pela primeira vez é: o sistema não foi revisto antes de ser aberto a testes públicos? Quase certamente, sim — de alguma forma. Os sistemas eleitorais rotineiramente passam por revisões de segurança, testes de fornecedores e processos de certificação. E uma equipa de investigadores ao nível de pós-graduação ainda conseguiu atravessar a porta da frente em 48 horas.

Isto não é uma crítica aos funcionários que construíram o sistema D.C. É uma crítica ao conceito de certificação de caixa fechada como substituto para revisão adversarial aberta.

O Gabinete de Prestação de Contas do Governo dos EUA documentou já em 2005 que os esforços federais para melhorar a segurança e fiabilidade do voto eletrónico estavam "em curso mas que atividades-chave permaneciam incompletas" — anos após a Lei Help America Vote mandar criar infraestrutura de certificação. Os marcos de certificação ajudam. Mas uma certificação é uma avaliação conduzida num ponto no tempo, por um conjunto definido de revisores, contra um modelo de ameaça definido. A internet não respeita esse modelo. Envia cada atacante no mundo — simultaneamente, continuamente — contra o seu sistema no momento em que este fica acessível.

O caso D.C. é prova da lacuna. Não porque D.C. foi irresponsável, mas porque a equipa que invadiu não era um serviço de inteligência estrangeiro. Eram académicos com alguns dias e um orçamento de investigação. Se uma equipa universitária consegue tomar o controlo e trocar cada boletim em 48 horas, um atacante ao nível estatal com meses de preparação e pessoal dedicado não precisaria de uma canção de luta para anunciar a sua presença. Não deixariam nenhuma.

A lição de Nova Gales do Sul: aprovado não significa limpo

A graça salvadora de D.C. foi que o teste aconteceu antes de boletins reais estarem dentro do sistema. Nem todas as jurisdições foram tão sortudas.

Em março de 2015, Nova Gales do Sul executou o seu sistema de voto online iVote durante uma eleição estatal em direto. No momento em que os investigadores independentes J. Alex Halderman e Vanessa Teague publicaram a sua análise, aproximadamente 280.000 votos já tinham sido emitidos. Os seus resultados: iVote carregou código de um servidor de análise externo sobre uma ligação vulnerável a fraquezas TLS então conhecidas, significando que um atacante de rede teria podido manipular votos e comprometer a privacidade do boletim. O serviço de verificação baseado em telefone que os eleitores podiam usar para confirmar o seu voto era ele próprio suscetível a manipulação — derrotando o seu propósito como verificação. Uma revisão de segurança fechada anterior tinha aprovado o sistema. Os investigadores encontraram os problemas mesmo assim, de fora, durante uma eleição em direto. Correções foram implementadas enquanto a votação ainda estava em curso. Mas 280.000 pessoas já tinham votado num sistema cuja integridade não pôde ser confirmada independentemente no momento em que votaram.

Leia a análise dos investigadores aqui.

Esta é a diferença entre o modelo de D.C. e a alternativa. Um sistema foi quebrado e apanhado antes de importar. Um foi quebrado e descoberto a meio do voo.

O problema da criptografia: até mesmo "verificável" pode ser falsificado

Talvez esteja a pensar: a solução é criptografia verificável ponta a ponta. Construir um sistema onde os eleitores podem verificar os seus próprios boletins, e matemáticos independentes podem confirmar a contagem sem ver nenhum voto. Essa é a direção certa — mas a criptografia tem de estar correta.

Em 2019, antes do uso planeado em votos vinculativos suíços, a Swiss Post e o seu fornecedor Scytl publicaram o código-fonte do seu sistema de voto pela internet para escrutínio público. Investigadores independentes Sarah Jamie Lewis, Olivier Pereira e Vanessa Teague encontraram algo extraordinário: a prova de shuffle do mixnet dependia de um esquema de compromisso com trapdoor. Uma autoridade que conhecesse os valores trapdoor poderia gerar uma prova que parecia matematicamente correta — que passaria na verificação — enquanto realmente tinha trocado votos debaixo dela. Os investigadores chamaram ao seu relatório "Ceci n'est pas une preuve." (Isto não é uma prova.) Swiss Post e Scytl reconheceram o resultado. A Suíça suspendeu o sistema pendente de remediação.

Leia os resultados dos investigadores aqui.

A falha era invisível numa caixa preta certificada. Tornou-se encontrável no momento em que o código-fonte e as provas criptográficas foram publicados para revisão independente. Uma reclamação de verificabilidade é apenas significativa quando peritos externos podem inspecioná-la e confirmá-la — ou refutá-la. No momento em que a inspecionabilidade é removida, a reclamação torna-se um artigo de fé.

É por isso que D.C. fazer um teste público aberto foi o instinto correto, mesmo que o resultado fosse doloroso. É por isso que a Suíça publicar o seu código-fonte foi o instinto correto, mesmo que o resultado tenha sido um trapdoor apanhado. O modelo correto dói quando funciona — porque encontra o que modelos fechados perdem.

O que a Estónia nos ensinou sobre "ninguém encontrou nada"

A Estónia tem executado voto pela internet nacional vinculativo desde 2005. O seu sistema é frequentemente citado como o padrão ouro do voto-i: elevada participação, sofisticado tecnicamente, disponível para todos os cidadãos com um cartão e-ID. A autoridade eleitoral estónia tem-se defendido consistentemente.

Em 2014, uma equipa de investigação independente — Springall, Finkbeiner, Durumeric, Kitcat, Hursti, MacAlpine e Halderman — observou o funcionamento do sistema durante as eleições municipais de outubro de 2013 e examinou o software cliente publicado e a configuração do servidor. Encontraram sérias fraquezas operacionais e procedimentais de segurança, incluindo práticas de segurança frouxa capturadas nos vídeos oficiais da própria autoridade. A sua conclusão revista por pares, publicada em ACM CCS 2014: um atacante bem-resourceado — ou um insider desonesto — poderia plausivamente comprometer a integridade dos votos sem detecção. Recomendaram que a Estónia descontinuasse o sistema. As autoridades estónias contestaram as conclusões.

Leia a análise completa aqui.

Aqui está o ponto crítico: os investigadores podiam fazer esta análise apenas porque o código do sistema e os procedimentos eram pelo menos parcialmente públicos. Se o sistema fosse uma caixa propriedade totalmente fechada, não haveria nada para analisar. A ausência de um resultado nesse caso teria significado: não conseguimos olhar, não não há nada lá.

"Ninguém encontrou nada" e "impedimos que alguém olhasse" não são a mesma frase. Produzem comunicados à imprensa oficiais idênticos.

Por que a Noruega se afastou sem escândalo

A Noruega executou pilotos de voto pela internet em 2011 e 2013, em dez e depois doze municípios, como suplemento ao voto em papel. Os testes não levaram a maior participação. Em 2014, o Ministério do Governo Local e Modernização decidiu descontinuar testes adicionais. O governo concluiu que, na ausência de amplo apoio político para voto pela internet completo, gastar mais tempo e dinheiro em pilotos não era apropriado — e citou preocupações de confiança não resolvidas juntamente com os dados de participação.

A declaração oficial do ministério está aqui.

A decisão da Noruega atrai menos atenção do que a canção de luta de D.C. ou o trapdoor da Suíça. Não houve nenhuma violação dramática. Houve apenas uma contabilidade honesta: não conseguimos garantir confiança de que os votos não foram alterados, a participação não melhorou, e o custo de continuar sem resolver a questão de confiança não valia a pena.

Essa é uma resposta institucional madura. É também um modelo que é quase nunca seguido, porque políticos que defenderam uma tecnologia raramente querem ser aqueles que a encerram.

O modelo de testes adversariais: o que o Brasil acertou

Existe um modelo melhor do que certificação fechada, e o Brasil o tem executado desde 2009.

O Tribunal Superior Eleitoral do Brasil executa um Teste Público de Segurança oficial — o Teste Público de Segurança dos Sistemas Eleitorais — regulado pela Resolução TSE 23.444/2015 e realizado no ano anterior às eleições gerais. Qualquer cidadão elegível cujo plano de teste seja aprovado pode sondear a máquina de voto eletrónico e sistemas relacionados para fraquezas. Os sistemas abertos a testes abrangem todo o ciclo eleitoral: geração de mídia de boletim, votação, tabulação, transmissão de ficheiro e sistemas de auditoria. Os resultados são usados para melhorar os sistemas, e as correções são reverificadas antes da eleição.

A página do programa oficial da TSE está aqui.

O Brasil não alega que as suas máquinas são impenetráveis. Alega algo mais credível: venha tentar quebrá-las, e corrigeremos o que encontrar. Essa é uma versão institucionalizada de exatamente o que D.C. fez uma vez, exceto que D.C. o fez uma vez e o Brasil o faz como prática padrão antes de cada ciclo eleitoral.

O Tribunal Constitucional Federal Alemão articulou o princípio subjacente em 2009 quando proibiu o uso de computadores de votação cuja operação não pudesse ser examinada "pelo cidadão de forma fiável e sem qualquer conhecimento especializado." O padrão do tribunal não era "um perito o certificou." Era: um cidadão ordinário deve conseguir verificar os passos essenciais. Leia a sentença aqui. Esse é um padrão mais elevado do que qualquer certificação única consegue cumprir — e um padrão mais baixo do que o voto pela internet atualmente cumpre.

O que não era verificável em D.C. — e ainda não é na maioria dos lugares

O teste aberto de Washington, D.C. fez tudo corretamente e mesmo assim quase produziu uma violação catastrófica de uma eleição em direto. A canção de luta salvou-o — não porque provou que o sistema falhou, mas porque foi suficientemente alta para que os funcionários eventualmente notassem. Um atacante real altera boletins silenciosamente. Um atacante real não se anuncia a si mesmo.

O caso D.C. não é uma garantia. "Testámos publicamente e encontrámos uma falha crítica antes de a executar" é o melhor resultado possível de testes adversariais públicos — e esse melhor resultado possível ainda é: o sistema estava quebrado. A lição não é que testes abertos garantem um sistema seguro. A lição é que sem testes abertos, não consegue saber se o sistema está quebrado até uma eleição real já ter sido executada nele.

A questão mais profunda permanece aberta em todo o lado onde voto pela internet é implementado ou proposto: quem verificou o código? Quem tentou quebrar o servidor? Quem verificou as provas criptográficas? E consegue você — não um fornecedor, não um funcionário, não um laboratório certificado — verificar qualquer isto independentemente?

Quando a resposta é não, "o sistema passou a sua revisão de segurança" e "o Secretário de Estado diz que está bem" são a mesma garantia em fontes diferentes.

Um resultado eleitoral não deve depender de confiar no fornecedor, nos funcionários ou no organismo certificador. Deve depender numa cadeia de prova publicada, independentemente verificável que qualquer pessoa com as competências corretas consegue verificar — e que qualquer pessoa que encontre uma falha consegue provar publicamente, da forma como a equipa Halderman fez em 2010, da forma como Lewis, Pereira e Teague fizeram em 2019, da forma como cada teste adversarial aberto é projetado para permitir.

Esse não é um padrão impossível de alto. É o padrão que D.C. acidentalmente estabeleceu quando convidou o público. A canção de luta foi o som desse padrão a funcionar.

Uma vulnerabilidade apanhada em testes públicos é uma falha corrigida. Uma vulnerabilidade nunca testada é uma silenciosa — e silêncio não é o mesmo que segurança.

Veja como esta lacuna de transparência é comum em diferentes sistemas e países →

Leia a versão de 2 minutos do que torna uma eleição verificável →

Explore lacunas documentadas na verificabilidade eleitoral →


Fontes