← Todos os artigos

Uma "prova" matemática de que os votos foram contados corretamente — com uma porta secreta construída dentro

A Suíça publicou o código-fonte do seu sistema de votação eletrónica para que qualquer pessoa pudesse verificá-lo — e em poucas semanas, criptógrafos encontraram uma porta secreta que permitia a um insider produzir uma prova matematicamente válida enquanto alterava silenciosamente os votos.

É a primavera de 2019, e em algum lugar nos escritórios dos Correios Suíços, está a ser tomada uma decisão que parece ser de radicalismo transparente. A autoridade postal federal, trabalhando com o seu fornecedor espanhol Scytl, está prestes a publicar o código-fonte completo do sistema de votação pela internet da Suíça. Não um resumo. Não um folheto. O código real — todas as linhas — aberto para o mundo ler, atacar e julgar.

Isto supostamente seria o momento que resolveria a discussão.

A Suíça tinha estado em desacordo sobre votação pela internet durante anos. Os críticos diziam que não era possível confiar numa caixa negra. Os funcionários diziam que o sistema tinha sido verificado, auditado, certificado. Assim, os Correios Suíços fizeram algo que quase nenhuma autoridade eleitoral no mundo tinha ousado fazer: abriram a caixa. Venham ver, disseram. Não temos nada a esconder.

Três investigadores independentes — Sarah Jamie Lewis, Olivier Pereira e Vanessa Teague — acreditaram nos Correios Suíços. Olharam.

O que encontraram deveria ter sido impossível.


Uma prova que não provou nada

Para compreender o que Lewis, Pereira e Teague descobriram, é preciso compreender o que o sistema alegava fazer.

A votação pela internet tem um problema fundamental: quando um eleitor submete um boletim pela internet, como é que alguém — incluindo o próprio eleitor — pode confirmar que foi contado corretamente, e não foi trocado por um boletim diferente por um servidor no meio? A resposta que os criptógrafos desenvolveram chama-se rede de mistura, ou mixnet. Os votos entram encriptados. O sistema embaralha-os — como se corta um baralho — e depois, de forma crucial, publica uma prova matemática de que o embaralhamento foi honesto: que moveu os votos mas não alterou nenhum deles.

Esta prova é a afirmação central do sistema sobre verificabilidade. Qualquer pessoa com o software apropriado pode verificá-la. Se a prova passar, os votos estão intactos. Se a prova falhar, sabe que algo está errado.

Exceto que havia uma porta secreta construída na própria prova.

Lewis, Pereira e Teague documentaram a sua descoberta num artigo que intitularam — com uma referência a Magritte — Ceci n'est pas une preuve. "Isto não é uma prova." Descobriram que a prova de embaralhamento no sistema dos Correios Suíços–Scytl usava um esquema de compromisso com porta secreta: uma estrutura matemática que funciona honestamente em condições normais, mas que, se souber um conjunto de valores ocultos (a porta secreta), pode explorar. Uma autoridade detentora desses valores poderia gerar uma transcrição de prova de embaralhamento que passaria em cada verificação — enquanto tinha realmente alterado votos.

Leia isto de novo, lentamente. A prova podia passar. A matemática funcionava. Todos os softwares dos auditores diriam: verificado. E os votos estariam errados.

Isto não era uma questão teórica. Era uma porta secreta funcional, embutida no próprio mecanismo que o sistema oferecia como garantia de integridade. A coisa que era suposto verificar para confirmar a contagem era a coisa que podia ser falsificada.


O que "verificável" realmente exige

Os Correios Suíços e a Scytl reconheceram a descoberta. As autoridades suíças suspenderam o sistema de votação eletrónica pendente de remediação. Nenhuma eleição vinculativa tinha sido realizada no sistema defeituoso, portanto nenhum voto foi realmente alterado. Mas o episódio aborda o cerne de uma questão que toda a afirmação de tecnologia eleitoral tem que responder:

Verificável para quem?

Um sistema pode entregar-lhe uma prova matemática e estar ainda assim a mentir-lhe — se a estrutura da prova em si contiver uma alavanca secreta que apenas o operador do sistema sabe como usar. O sistema dos Correios Suíços não apenas alegava ser seguro. Alegava oferecer verificabilidade universal: uma garantia de que qualquer pessoa, armada com dados publicados, poderia confirmar que o voto foi contado corretamente sem confiar em nenhuma autoridade individual. Essa afirmação era falsa. A verificação era real apenas se a autoridade agisse de forma justa. O que é precisamente aquilo contra o qual a verificabilidade é suposta proteger.

O Tribunal Constitucional Federal Alemão compreendeu esta lógica uma década antes, na sua decisão de 2009 que proibiu máquinas de votar que o público não podia verificar independentemente. O tribunal declarou que os passos essenciais da votação e da determinação do resultado devem ser examinados pelo cidadão de forma fiável e sem qualquer conhecimento especializado. Não estava a pedir perfeição. Estava a pedir algo que um não-especialista pudesse seguir. Uma prova criptográfica que apenas um investigador treinado pode analisar é já um passo afastado desse padrão — e uma prova que um esquema com porta secreta produz é pior que nenhuma prova, porque engana ativamente.

O caso dos Correios Suíços mostra o problema mais profundo. Um sistema de caixa negra que diz "confiem em nós" obviamente está a pedir fé. Mas um sistema de código publicado que diz "verifiquem a matemática" e incorpora uma porta secreta na matemática está a pedir a mesma fé enquanto a disfarça de evidência. A aparência de verificabilidade é mais perigosa que a admissão de opacidade, porque encerra a questão.


Como o código aberto apanhou o defeito que a certificação não apanhou

Eis a coisa que vale a pena reter: o defeito foi encontrado porque o código foi publicado.

Os Correios Suíços não tiveram que abrir o seu código-fonte. A maioria dos fornecedores não. O aparato de certificação que existe na maioria das democracias — nos Estados Unidos, as diretrizes voluntárias de sistemas de votação da Comissão de Assistência Eleitoral; noutras jurisdições, laboratórios de testes nacionais — envolve especialistas examinarem sistemas em condições controladas, frequentemente sob acordos de não-divulgação, com as suas descobertas resumidas mas nem sempre publicadas. Quando um examinador diz "testámos e passou," o público está a confiar no examinador. O raciocínio está oculto.

Quando os Correios Suíços publicaram o código, tornaram possível um tipo diferente de exame: adversarial, independente, sem restrições. Lewis, Pereira e Teague não foram pagos pelos Correios Suíços. Não tinham acordo de confidencialidade. Publicaram toda a sua análise, com citações e equações, para qualquer pessoa ler e contestar. Isto não é um processo de certificação. É um processo científico — e descobriu aquilo que o processo de certificação não tinha descoberto.

A lacuna entre esses dois processos merece ser nomeada com precisão. A certificação testa se um sistema se comporta corretamente em condições esperadas. A revisão criptográfica independente testa se as garantias alegadas pelo sistema se mantêm em condições adversariais — incluindo o adversário ser o operador do sistema. Essa segunda questão é a que mais importa, e é a que apenas a publicação aberta permite.

Compare-se o julgamento de votação pela internet em DC de 2010, onde uma equipa da Universidade de Michigan obteve controlo quase completo de um teste de devolução de boletim público em aproximadamente 48 horas — precisamente porque a jurisdição abriu o sistema a testes públicos antes de votos reais serem depositados. As vulnerabilidades foram apanhadas porque alguém foi autorizado a atacar. Ou considere o sistema iVote da Nova Gales do Sul em 2015, onde investigadores encontraram falhas graves numa eleição em direto que já tinha recolhido aproximadamente 280.000 votos — falhas que uma revisão de segurança pré-eleitoral tinha aprovado. Em cada caso, a descoberta veio de fora do processo oficial, não de dentro.

O padrão mantém-se: a inspeção aberta encontra aquilo que a certificação fechada não consegue. Nem sempre. Nem automaticamente. Mas consistentemente o suficiente para que o ónus da prova tenha que se deslocar. Quando uma autoridade diz "nós certificámos," a questão a colocar é: certificado por quem, contra que modelo de ameaça, com que acesso, e com as descobertas publicadas onde?


A porta secreta como um problema de categoria

O defeito específico no sistema dos Correios Suíços — uma porta secreta numa prova criptográfica — não é um bug de implementação no sentido comum. Não é um transbordamento de memória ou um servidor mal configurado. Esses são erros. Isto era uma escolha de design, ou no mínimo uma falha de design, na estrutura matemática em que a garantia de verificabilidade do sistema se baseava.

Essa distinção importa porque lhe diz algo sobre os limites do teste. Pode sondar um sistema de software procurando bugs arbitrários indefinidamente e ainda assim perder uma porta secreta de esquema de compromisso, porque o esquema funciona corretamente de fora — produz as saídas da forma correta, passa as verificações da forma correta. O defeito é invisível a menos que examine a especificação matemática e note que o esquema de compromisso utilizado tem uma propriedade que os designers ou não conheciam ou não divulgaram.

É por isto que o argumento pela verificabilidade criptográfica em eleições não pode parar em "nós publicámos o código." Tem que se estender a: a estrutura de prova matemática em si deve ser auditável de forma independente por pessoas que não são o fornecedor ou a autoridade, e que estão motivadas a encontrar problemas em vez de certificá-los.

Lewis, Pereira e Teague estavam motivados a encontrar problemas. Encontraram um. Isto não é um indiciamento das intenções dos Correios Suíços — a empresa reconheceu a descoberta e moveu-se para corrigi-la. É um argumento pelo processo que produziu a descoberta.


O que "a auditoria confirmou" deixa em aberto

Quando o sistema dos Correios Suíços foi suspenso, os funcionários podiam dizer: o processo funcionou. Uma falha foi encontrada; a implantação foi interrompida; a remediação viria a seguir. E num sentido estreito, isso é verdade. Mas vale a pena perguntar o que teria acontecido se o código não tivesse sido publicado.

A resposta é: a mesma prova teria funcionado, as mesmas transcrições teriam sido produzidas, e qualquer pessoa verificando-as teria visto: verificado. A certificação teria passado. Os funcionários teriam dito: o sistema foi auditado. O público não teria forma de saber que a prova não provou nada.

Uma afirmação de verificabilidade que não pode verificar de forma independente é indistinguível de nenhuma verificabilidade. Isto não é uma crítica única à votação eletrónica. Aplica-se a toda a afirmação de correção num sistema eleitoral — contagens de papel incluídas. A contagem manual da Geórgia de 2020 de aproximadamente cinco milhões de boletins confirmou o resultado tabulado por máquina até cerca de um décimo de um por cento, o que é impressionante. Mas dependia da existência de boletins de papel duráveis que pudessem ser examinados de forma independente, não de confiar nas máquinas que os contaram a primeira vez. O papel era a verificação independente. A prova que podia realmente inspecionar.

O caso dos Correios Suíços é o equivalente criptográfico: o código, uma vez publicado, era o papel. E o papel mostrou que a prova era ficção.


O que tornaria genuinamente verificável

O episódio dos Correios Suíços não encerra o argumento pela verificabilidade criptográfica de eleições. Define o que esse argumento realmente exige.

Uma prova de embaralhamento é o tipo certo de mecanismo — uma garantia matemática de que nenhum voto foi alterado em trânsito, verificável por qualquer pessoa com o software para o verificar. Mas para que essa garantia seja real em vez de encenada, várias condições têm que se manter simultaneamente:

Primeiro, o esquema criptográfico não deve conter valores de porta secreta. Este é um requisito matemático: o esquema de compromisso utilizado numa prova de embaralhamento deve ser vinculativo e oculto sem uma porta secreta. Há esquemas bem compreendidos que satisfazem isto sem portas secretas; a escolha de qual usar não é um detalhe do fornecedor mas uma questão de design público.

Segundo, a prova deve ser verificável de forma independente por partes que não têm interesse no resultado. Não apenas um laboratório de certificação. Múltiplos criptógrafos independentes, com a especificação completa e implementação, publicando as suas descobertas para crítica pública.

Terceiro, a cadeia de ponta a ponta desde o eleitor até à contagem final deve ser auditável sem confiar em nenhum ponto único na cadeia. Um eleitor que deposita um boletim encriptado pela internet deve ser capaz de confirmar que o seu boletim encriptado foi incluído na mistura; qualquer observador deve ser capaz de confirmar que a mistura foi honesta; e a desencriptação final deve ser independentemente reproduzível. Nenhuma destas etapas deve depender da cooperação ou boa fé da autoridade.

Quarto — e isto é o mais difícil — o próprio processo de verificação deve ser acessível o suficiente para que o padrão do Tribunal Constitucional Alemão seja cumprido: os cidadãos ordinários, não apenas criptógrafos especialistas, devem ser capazes de confirmar os passos essenciais. Isto pode exigir ferramentas de software, interfaces e documentação que vão muito além do que qualquer sistema atual proporciona.

Nenhuma dessas condições foi completamente cumprida pelo sistema dos Correios Suíços em 2019. Algumas delas não são cumpridas por nenhum sistema eleitoral atualmente implantado no mundo. Esta é a posição honesta. O caso dos Correios Suíços não é uma história sobre uma falha que foi encontrada e corrigida e portanto tudo está agora bem. É uma história sobre o que acontece quando publica o suficiente para outsiders encontrarem o problema — e o que seria preciso publicar para que a descoberta pudesse acontecer antes da implantação, sistematicamente, em vez de como acidente feliz de pesquisa independente.


O vilão é a prova que não pode verificar

A porta secreta específica numa prova de embaralhamento de um fornecedor suíço não é o ponto. O ponto é a categoria de afirmação: provado matematicamente estar correto, oferecido de forma que exclui inspeção externa. Todo o sistema eleitoral faz afirmações. Os fornecedores alegam certificação. Os funcionários alegam auditoria. Os criptógrafos alegam verificabilidade. Cada uma dessas afirmações é apenas tão forte quanto o mecanismo que permite a um outsider independente confirmá-la ou refutá-la.

Quando esse mecanismo é uma caixa negra, a afirmação repousa na confiança em quem construiu a caixa. Quando é código publicado, a afirmação pode pelo menos ser escrutinada — e às vezes refutada. Quando é uma prova criptográfica publicada usando um esquema com porta secreta, é uma encenação de verificabilidade: a aparência da coisa sem a substância.

O vilão na história dos Correios Suíços não são os Correios Suíços, e não é a Scytl. É opacidade disfarçada como transparência — uma prova que parece verificável e não é. A solução não é desistir da verificabilidade criptográfica mas exigir a versão real dela: esquemas sem portas secretas, revisão sem acordos de confidencialidade, provas que investigadores independentes podem verificar e, quando necessário, refutar.

É isto que TrustVoting está a construir: um sistema cuja correção ninguém tem que aceitar com fé, porque a evidência é publicada de forma que qualquer pessoa pode inspecionar. Não "nós tivemos isto auditado." Não "a matemática funcionou." Eis a matemática. Verifique-a você mesmo.


A versão para partilhar: A Suíça publicou o código da sua votação eletrónica para provar que era digna de confiança. Investigadores encontraram uma porta secreta que permitia a um insider falsificar uma prova válida enquanto alterava votos. A prova passou. Os votos teriam estado errados. "Verificado" apenas significa algo se alguém independente for autorizado a fazer a verificação — e autorizado a dizer não.

O que ainda não é verificável: se qualquer outro sistema de votação eletrónica criptográfica atualmente implantado usa um esquema de compromisso igualmente problemático, e se os processos de certificação que esses sistemas passaram incluíram revisão criptográfica independente adversarial com descobertas publicadas. Até que essa revisão exista e os seus resultados sejam públicos, "o sistema foi certificado" permanece uma afirmação, não uma prova.

O que tornaria verificável: publicação completa de especificações criptográficas e código-fonte, revisão multi-pública independente com sem NDAs, e descobertas publicadas — incluindo negativas — antes de qualquer eleição vinculativa ser realizada.

Veja como esta lacuna de verificação é comum em todo o mundo →

Leia a versão de 2 minutos deste problema →

Explore casos documentados de resultados eleitorais não verificáveis →


Fontes