# Testes Públicos de Segurança do Sistema Eletrônico de Votação

Testes Públicos de Segurança do Sistema Eletrônico de Votação, também conhecido pela sigla TPS ou simplesmente por Testes Públicos de Segurança, é uma das etapas de segurança da Urna Eletrônica Brasileira. Até às Eleições de 2018 o TSE já havia organizado 4 Testes Públicos de Segurança.
Segundo o secretário de Tecnologia da Informação do TSE, Giuseppe Janino, “os testes de segurança são um evento inédito no mundo. Nenhum país faz o que a Justiça Eleitoral brasileira faz: abrir seu sistema eleitoral, seja ele informatizado ou não, para que potenciais hackers tentem derrubar as barreiras de segurança”. Ainda conforme o Janino "até hoje nenhuma das equipes, em quatro edições, conseguiu quebrar o sigilo do voto nem tão pouco mudar os resultados. Nesse evento, inclusive, facilitamos muito a vida dos hackers. Abrimos os programas, os algoritmos, abrimos fisicamente as urnas, desativamos várias barreiras de segurança para facilitar produtividade para que ele vá diretamente ao ponto que ele deseja. A partir daí ele vai diretamente ao plano de ataque. Verificando alguma fragilidade, nós anotamos, realizamos as alterações a partir daí chamamos novamente os hackers para que eles possam tentar de novo".

## Histórico

O Tribunal Superior Eleitoral (TSE) realiza, regularmente, testes públicos de segurança das urnas eletrônicas com técnicos de fora do tribunal. A obrigatoriedade e a periodicidade dos testes públicos de segurança estão previstas na Resolução nº 23.444/2015 do Tribunal, que instituiu o evento como parte integrante do processo eleitoral brasileiro, devendo ser realizado antes de cada eleição ordinária.
Durante o período de testes, os especialistas convidados atacam o sistema da Urna Eletrônica Brasileira em busca de vulnerabilidades da mesma. Após os testes, o tribunal apresenta um relatório com as falhas e apresenta as soluções, chamando novamente os técnicos externos para conferir a correção implantada. Nos dias que antecedem as eleições, os técnicos do TSE se preparam para serem atacados por hackers de todo o mundo. Segundo o secretário de Tecnologia da Informação do tribunal, Giuseppe Janino, são 200 mil tentativas por segundo de quebrar o sistema de segurança da urna eletrônica, sendo que ninguém nunca conseguiu adulterar o sistema.
O primeiro Teste Público de Segurança do Sistema Eletrônico de Votação foi realizado em 2009, quando o TSE promoveu um teste controlado de invasão entre os dias 10 e 13 de novembro daquele ano, onde impôs uma série de restrições do que os hackers poderiam fazer, ignorando um cenário real onde um hacker pode agir utilizando engenharia social e modificação do hardware.
Naquela oportunidade, em resposta a convites do TSE, nove equipes de possíveis hackers com um total de 38 especialistas foram inscritos, na sua maioria funcionários públicos dos quais apenas 20 compareceram, e tentaram quebrar os mecanismos de segurança das urnas eletrônicas. Sete instituições fiscalizaram os trabalhos: Organização dos Estados Brasileiros, Câmara Federal, Exército Brasileiro, Serviço Federal de Processamento de Dados, Tribunal de Contas da União, Federação Nacional de Empresas de Informática e Polícia Civil do Distrito Federal.

## 2009

Foi a primeira edição deste evento, que é realizado regularmente pelo Tribunal Superior Eleitoral (TSE) com técnicos de fora do tribunal onde especialistas convidados atacam o sistema da Urna Eletrônica Brasileira em busca de vulnerabilidades da mesma.
Este edição ocorreu nos dias 10, 11, 12 e 13 de novembro de 2009 e contou com a participação de 37 investigadores, na sua maioria funcionários públicos dos quais apenas 20 compareceram, e tentaram quebrar os mecanismos de segurança das urnas eletrônicas. Sete instituições fiscalizaram os trabalhos: Organização dos Estados Brasileiros, Câmara Federal, Exército Brasileiro, Serviço Federal de Processamento de Dados, Tribunal de Contas da União, Federação Nacional de Empresas de Informática e Polícia Civil do Distrito Federal.

### Críticas

Uma das críticas foi que o TSE impôs uma série de restrições a que os hackers poderiam fazer, ignorando um cenário real onde um hacker pode agir utilizando engenharia social e modificação do hardware.
Por conta disso, já na segunda edição o TSE liberou o acesso à internet e ao código-fonte aos grupos interessados, sob supervisão da Comissão Disciplinadora, para que fosse possível chegar a um resultado mais expressivo.

### Vulnerabilidades e Modificações

Algumas vulnerabilidades do sistema da Urna Eletrônica Brasileira foram percebidas. Com isso, uma das melhorias implementadas no sistema foi desenvolvida com base nas sugestões colhidas a partir do teste do vencedor da primeira edição, o especialista em Tecnologia da Informação Sérgio Freitas. Ele tentou violar o sigilo do voto por meio da captação de ondas eletromagnéticas emitidas pelas teclas da urna durante a digitação.
Apesar de não obter sucesso, já que o aparelho de rádio utilizado pelo investigador somente conseguiu captar essa radiação a uma distância de cinco centímetros da urna eletrônica, o que na prática torna inviável, o TSE desenvolveu novas barreiras de segurança aplicando uma espécie de “blindagem” ao teclado. A novidade impede que um simples aparelho de rádio capte os sons emitidos pelas teclas da urna.
Outra melhoria foi aplicada nos lacres dos envelopes, que desde então, passaram a ser relacionados numericamente aos lacres, isto é, passaram a ter o mesmo número que os envelopes.

## 2017

Foi a quarta edição deste evento, que é realizado regularmente pelo Tribunal Superior Eleitoral (TSE). Nesta edição, que foi realizada entre os dias 28 e 30 de novembro de 2017, técnicos de fora do tribunal e especialistas convidados atacaram o sistema da Urna Eletrônica Brasileira que foi utilizada nas Eleições de 2018 em busca de vulnerabilidades.
O evento ocorreu em um espaço exclusivo na sede do TSE em Brasília (DF), com entrada controlada e ambiente monitorado por câmeras. De acordo com o Tribunal, os participantes tiveram acesso a componentes do sistema eletrônico de votação aos quais jamais teriam em uma situação normal de eleição.

### Falhas Encontradas

De acordo com o relatório técnico oficial da Seção de Voto Informatizado, foram encontradas durante o evento oito vulnerabilidades ou pontos a serem melhorados:
* Presença de chaves de criptografia no código-fonte
* Bug na validação de assinatura de binários pelo kernel
* Existência de bibliotecas de link dinâmico sem assinatura complementar
* Uso de teclado externo
* Inicialização em máquina virtual
* Parâmetros de segurança no compilador
* Validação de comentários em arquivos JPEG
De acordo com artigos científicos publicados pelo Grupo 1, por meio da junção das vulnerabilidades 2 e 3 com as vulnerabilidades 1 ou 5, era possível executar código arbitrário na urna. Apesar dessa capacidade, por si só, implicar na violação completa das propriedades de segurança (integridade e sigilo) do sistema, os investigadores seguiram realizando demonstrações diversas de modificações no software da urna, por exemplo alterando mensagens de texto exibidas ao eleitor na Urna para fazer propaganda a um determinado candidato ou removendo a camada de cifração do Registro Digital de Voto (RDV).
Nas horas finais do período de testes, os investigadores adulteraram o software para interferir com a representação dos votos em memória antes da inserção no RDV e do cômputo no contador de votos, mas o evento foi encerrado no intervalo entre os investigadores testarem uma versão do software que deixava de armazenar votos e uma versão que desviava os votos para determinado candidato. Apesar de representantes do TSE terem alegado, em algumas ocasiões, que os investigadores não teriam sido capazes de "alterar o voto", a Secretaria de Tecnologia da Informação do Tribunal admitiu, em memorando, que a alteração de votos era conclusão lógica e natural da capacidade de adulterar o software.

### Testes de Confirmação e Soluções Apresentadas pelo TSE

O Teste de Confirmação foi a segunda e última etapa do evento. Nesta edição, ela foi realizada em maio de 2018.
Após as falhas terem sido encontradas em novembro de 2017, o TSE realizou um trabalho para dirimir estas vulnerabilidades.
Para mitigar as vulnerabilidades de Presença de chaves de criptografia no código-fonte e Inicialização em máquina virtual, os técnicos do TSE alteraram o bootloader da urna para, em vez de utilizar uma chave fixa contida em seu próprio código, computar essa chave a partir de uma estrutura denominada CriptoTable, presente no firmware da BIOS da Urna. Desta forma, a equipe que havia descoberto a falha, de posse somente da flash de carga, não conseguiu repetir no Teste de Confirmação o procedimento demonstrado na primeira etapa do TPS para iniciar o sistema operacional. Em 2019, técnicos do TSE incorporaram a correção definitiva para este problema, que consistia em usar o dispositivo de segurança em hardware (MSE) em todas as urnas.
Sobre o Bug na validação de assinatura de binários pelo kernel, o TSE concluiu que esta vulnerabilidade havia sido introduzida durante um processo de atualização do kernel Linux utilizado pela Urna, que ainda não tinha sido colocado em produção, e que por isso não havia chances de esta falha ter acontecido em eleições anteriores. No entender de José de Melo Cruz "a falha específica encontrada foi colocada no nosso processo de atualização do sistema. Essa atualização é necessária de ser feita, é difícil de ser feita, para que o software esteja acompanhando as mais novas formas de sistema operacional. Esse trabalho é árduo e está em andamento, mas não é nada impossível de ser conseguido".
Com relação à Existência de bibliotecas de link dinâmico sem assinatura complementar, o TSE incorporou uma verificação para garantir que todos os arquivos estarão sempre assinados.
Com isso, no entender do TSE, "todas as medidas implementadas pela área técnica do [Tribunal] foram efetivas e sanaram os problemas apontados" em novembro de 2017.

## Edições

| Edição | Data |
| 1.ª edição | 10 a 13 de novembro de 2009 |
| 2.ª edição | 20 a 22 de março de 2012 |
| 3.ª edição | 8 a 10 de março de 2016 |
| 4.ª edição | 28 a 30 de novembro de 2017 |