Tribunal Superior Eleitoral (TSE) realizou, nos últimos dias de novembro, o “Teste Público de Segurança do Sistema Eletrônico de Votação”. Isso, de maneira simples, significa o seguinte: equipes independentes passaram quatro dias realizando testes de segurança com as urnas eletrônicas.
Dessa vez, três equipes participaram dos testes, e nós batemos um papo com o representante de uma delas, o professor doutor Diego F. Aranha, da Unicamp. A equipe de Aranha ainda contava com as habilidades de Pedro Yossis Silva Barbosa (UFCG), Thiago Nunes Cardoso Carneiro (Hekima), Caio Lüders (UFPE) e o Prof. Dr. Paulo Matias (UFSCar).
Infelizmente, alguns dos recursos de segurança da urna continuam subutilizados por não estarem presentes em todos os equipamentos.
Além da equipe de Aranha, outra formada por peritos da Polícia Federal, e liderada por Ivo Peixinho, também esteve presente durante o teste ao lado de um grupo coordenado pelo prof. Dr. Luis Antonio Brasil Kowada.
Em setembro deste ano, o TecMundo já havia entrevistado o professor Diego Aranha. Na época, conversamos sobre o que aconteceu nos testes realizados em 2012 e trouxemos a matéria “Urnas eletrônicas: falhas, vulnerabilidades e fraudes do mesário” — você pode conferir tudo em detalhes clicando no link anterior.
Será que os erros encontrados em 2012 foram corrigidos até 2017? O TSE se preocupa realmente com as possíveis vulnerabilidades? Sobre essas questões, você vai descobrir as respostas agora. Agora, sobre os testes públicos, quatro dias é pouco: a atitude do TSE é louvável, porém, seria interessante que o tempo de teste fosse estendido.
Diego Aranha, posando para o pessoal da Motherboard (Foto por Helena Wolfenson)
TecMundo: Em 2012, você colocou as mãos nas urnas e encontrou algumas vulnerabilidades. Dessa vez, segundo o documento público, parece que o caso se repetiu. E então: as vulnerabilidades antigas foram corrigidas?
Diego Aranha: “As principais vulnerabilidades encontradas em 2012 tinham a ver com a geração de números aleatórios para proteção do sigilo do voto e o armazenamento inseguro de chaves criptográficas compartilhadas entre todas as urnas. Não houve tempo para repetir o ataque sobre o sigilo do voto, mas observamos que o código de embaralhamento do Registro Digital do Voto (RDV) foi bastante aprimorado. Entretanto, a prática de inserir chaves criptográficas compartilhadas entre todas as urnas diretamente no código-fonte ainda persiste, e nossos ataques se concentraram nesse problema de segurança”.
TecMundo: E quais foram as diferenças que você encontrou entre a urna eletrônica de 2012 e a de 2017?
Diego Aranha: “Houve uma reorganização da base de código e reimplementação de alguns mecanismos de segurança. Por exemplo, a cifração de arquivos nos cartões de memória utiliza um algoritmo mais apropriado, apesar das chaves ainda serem armazenadas de maneira insegura. O corpo técnico parece ter melhor controle da base de código e entendimento das limitações das próprias decisões de segurança, o que é fundamental para qualquer projeto de segurança porque senso crítico é talvez a habilidade mais importante.
O tempo nunca é suficiente para uma análise completa dos mecanismos de segurança, então o trabalho das equipes termina às vezes sendo superficial em vários pontos
Infelizmente, alguns dos recursos de segurança da urna continuam subutilizados por não estarem presentes em todos os equipamentos, um problema de difícil solução técnica, o que tem forçado decisões de projeto que violam as melhores práticas”.
TecMundo: Quais seriam esses recursos subutilizados?
Diego Aranha: “Uma fração crescente de urnas possui um módulo de segurança em hardware, que implementa geração segura de números aleatórios e suporta armazenamento mais seguro de chaves criptográficas. O TSE encontra dificuldade em utilizar esse recurso, dado que nem todas as urnas possuem o dispositivo. Caso versões diferentes do software da urna fossem utilizadas, com suporte ou não ao dispositivo, haveria complicação logística em caso de contingência para se substituir uma urna com dispositivo por outra sem”.
TecMundo: A equipe do TSE foi cordial, no sentido de ajudar a equipe e se comprometer a corrigir possíveis falhas? Eles forneceram tempo suficiente para todos os testes?
Diego Aranha: “Durante todo o tempo fomos tratados com cordialidade e profissionalismo pelos técnicos que acompanharam os testes. Houve muito interesse, inclusive posterior, de entender exatamente a origem das vulnerabilidades e técnicas para mitigação. O relatório publicado pelo TSE (http://www.justicaeleitoral.jus.br/arquivos/relatorio-tecnico-tps-2017) é muito mais detalhado e acurado que em edições anteriores.
Sobre o tempo, o tempo nunca é suficiente para uma análise completa dos mecanismos de segurança, então o trabalho das equipes termina às vezes sendo superficial em vários pontos porque não há tempo hábil para investigar com profundidade. Nessa edição, foi concedido um dia adicional de trabalho que já estava previsto em edital após solicitação formal das equipes, o que foi muito importante porque as vulnerabilidades mais graves foram exploradas com sucesso no último dia (01/12)”.
- Você pode acompanhar aqui, no Github, trechos de código que foram úteis durante o TPS
Vote 99?
TecMundo: Você sente que há um interesse real do TSE em tornar a urna totalmente segura?
Diego Aranha: “Nessa edição [2017], percebemos um interesse real de aprimorar os mecanismos de segurança implementados no equipamento”.
TecMundo: Enfim, quais as vulnerabilidades que foram encontradas na urna em 2017?
Diego Aranha: “O principal sucesso da equipe foi detectar e utilizar uma sequência de vulnerabilidades para injetar código de nossa autoria nos programas da urna eletrônica antes do processo de carga, quando o software é instalado. Essa instalação é realizada a partir de um cartão de memória preparado no TRE, chamado flash de carga, que pode instalar software em até dezenas de urnas.
As vulnerabilidades necessárias para isso foram encontradas na decifração do cartão de memória para revelar seu conteúdo, a partir da captura da chave criptográfica diretamente do código-fonte; e na existência de bibliotecas de código cujas assinaturas não eram verificadas pelo sistema, problema causado por erro de programação e falha procedimental.
Ilustramos a capacidade de executar código de nossa autoria junto com o software de votação de diversas formas, como: manipular o registro cronológico de eventos gerado pela urna, executar um programa que lia comandos do teclado e imprimia na tela, e executar outro programa que zerava a chave criptográfica que protegia o Registro Digital do Voto (RDV).
Reforço ainda que confiabilidade e transparência são as métricas corretas para se avaliar a qualidade de um sistema de votação, ao contrário da velocidade de apuração tão enfatizada pela imprensa brasileira
As interferências mais profundas alcançadas no último dia foram injetar código para alterar uma mensagem na tela de seleção do candidato visível pelo eleitor para fazer propaganda para um certo número (“VOTE 99″, ver reprodução em anexo) e impedir o armazenamento de votos em uma cédula em memória, provocando erro de consistência no software. Fizemos bastante progresso na direção de adulterar os resultados de uma eleição simulada, dado que todas as condições estavam presentes, mas faltou um pouco de tempo para completar a tarefa. Tudo leva a crer que nossa última versão do ataque estava muito próxima de alterar o voto antes de armazená-lo, visto que funcionou contra uma réplica dos trechos relevantes do código da urna simulada em um PC”.
TecMundo: Como seria possível mitigar essas vulnerabilidades?
Diego Aranha: “O relatório do TSE é naturalmente mais detalhado ao descrever contramedidas, mas essencialmente o corpo técnico do Tribunal deve trabalhar em aprimorar o processo de autenticação do software para evitar injeção de código intruso e mover as chaves criptográficas armazenadas diretamente no código-fonte para lugares de armazenamento mais seguro”.
TecMundo: Você acredita que é possível alcançar um patamar 100% seguro quando falamos sobre a integridade das eleições e as urnas eletrônicas? As urnas eletrônicas podem se tornar sinônimo de segurança e “antifraude”?
Diego Aranha: “Esse é um objetivo impossível de ser alcançado, e nem deve ser a meta. A área de segurança se preocupa em projetar sistemas e processos que ofereçam custo proibitivo para serem contornados por um atacante real. Observe que isso se torna muito desafiador em matéria de eleições, visto que os potenciais fraudadores são muito bem equipados politicamente e financeiramente.
O aprimoramento do sistema passa não apenas pelo incremento de segurança do software de votação e de seus processos de auditoria, mas também da implantação de mecanismos que permitam ao eleitor verificar se o sistema registra sua intenção corretamente, como o voto impresso atualmente em processo de implantação. Reforço ainda que confiabilidade e transparência são as métricas corretas para se avaliar a qualidade de um sistema de votação, ao contrário da velocidade de apuração tão enfatizada pela imprensa brasileira”.
Por Felipe Payão
Fonte: TecMundo