[voltar ao menu principal]    [página do Voto-E]    [página do concurso]

Texto Básico sobre as

Medidas Estúpidas de Segurança

do Sistema Informatizado de Eleições Brasileiro

Índice

Introdução

As eleições no Brasil são totalmente coordenadas e operadas por um órgão governamental denominado Tribunal Superior Eleitoral (TSE). Devido a peculiar ordenação política do país, o TSE detêm os poderes judiciário, executivo e legislativo com relação a matéria eleitoral.

Dando continuidade ao programa de informatização do processo eleitoral brasileiro, o TSE iniciou em 1996 a implantação de maquinas de votar de apuração direta (MAD), do tipo "Direct Recording Electronic Voting System" (DRE), denominadas urnas eletrônicas (UE). Estas foram implantadas progressivamente até que em 2000 e 2002, 100% dos eleitores brasileiros votaram em mais de 320 mil UE.

Em maquinas de votar do tipo MAD ou DRE não existe o voto físico e materializado (em papel ou smart-card), apresentando-se o resultado da contagem dos votos logo que a votação é encerrada, sem que haja possibilidade de se proceder uma recontagem dos votos para conferência do resultado. Desta forma, máquinas MAD ou DRE requerem que a certificação e validação do seu software sejam feitas com extremo rigor e cuidado para que se tenha segurança de que o software do sistema eleitoral não tenha sido modificado de forma que adultere o resultado legítimo da eleição.

Certificação e validação de software para mais de 400 mil computadores é sem dúvida um tarefa hercúlea que, evidentemente, deveria ser feita por órgãos independentes do produtores e dos executores do processo eleitoral. No Brasil, a tarefa de certificar e validar o software das UE cabe, por lei, aos partidos políticos, aos quais o TSE deveria dar condições de fiscalização do sistema eletrônico de votação.

O TSE, na sua face de executivo do processo eleitoral, é o responsável pelo projeto, compra e operação das UE. Mas o TSE, na sua face de legislativo, também é o responsável por escrever todas as normas que regulamentam do processo eleitoral, inclusive as que definem os detalhes dos procedimentos de segurança e auditoria do sistema! Enfim, é o próprio TSE que escreve as normas que estabelece como ele próprio deverá ser fiscalizado.

Ao redigir estas normas para as eleições de 2002, o TSE tentou corrigir algumas falhas de segurança que existiam até as eleições de 2000 como:

  1. O sistema inútil de lacres das UE, que permitia se abrir as máquinas e trocar suas memórias de massa (flash-cards) e todos os seus dados e programas, sem que os lacres fossem rompidos;
  2. O impedimento dos fiscais verificarem se os programas gravados nas UE eram os mesmos analisados em laboratório, antes da eleição;
  3. O teste de desempenho e confiabilidade do software gravado nas urnas que era feito sob condições diferentes de uma votação normal, com a utilização de disquete e senha especiais "de teste", o que tornava o teste inútil como prova da confiabilidade.

Para corrigir estas falhas, o TSE emitiu em 2002 novas regulamentações que definiam como o sistema eleitoral eletrônico brasileiro deveria ser fiscalizado por agentes externos para efeito de determinar a sua confiabilidade.

Apresenta-se a seguir 3 casos de medidas de segurança inócuas que foram adotadas no Sistema Informatizado de Eleições brasileiro, em 2002, para corrigir as falhas de segurança e confiabilidade existentes e ao final foi montado um resumo dos problemas existentes e das soluções inúteis adotadas.


Caso 1. Sorteio na Véspera

[veja o texto completo em inglês, inscrito no concurso]

A impossibilidade de se recontar votos e fazer uma conferência da apuração, característica das máquinas de votar do tipo MAD/DRE adotadas pelo TSE, levou a sociedade civil organizada brasileira a pressionar o Congresso Nacional a elaborar uma lei que obrigasse o TSE a modificar suas máquinas de votar para que a recontagem de votos pudesse ser feita. De alguma forma o voto deveria voltar a ser materializado para servir como dado para auditoria.

Um Projeto de Lei foi apresentado em 1999 no Senado Federal pelo sen. Roberto Requião (PMDB-PR) e impunha os seguintes procedimentos:

  1. Todas as UE deveriam imprimir o voto em papel e mostrá-lo ao eleitor para sua confirmação do voto;
  2. O voto impresso deveria ser depositado automaticamente em urnas para posterior conferência;
  3. Após o fim da votação, 3% das urnas seriam sorteadas para que seus votos impressos fossem contados e comparados com o resultado eletrônico;

O andamento do projeto de lei foi lento e a votação final no plenário do Senado, aconteceu em outubro de 2001. No dia da votação final diversas emendas foram apresentadas por sugestão do presidente do TSE, Min. Nelson Jobim, que desejava modificar o projeto. Usando seu poder de pressão e lobby sobre os congressistas, o presidente do TSE conseguiu que todas as emendas por ele propostas fossem aprovadas, resultando na Lei 10.408/02, que deveria vigorar somente a partir das eleições de 2004.

O item 3 dos procedimentos acima descritos foi um dos que foram modificados pelas emendas do presidente do TSE, tendo a expressão "Após o fim da votação" sido substituída por "Na véspera do dia da votação"!

A redação final deste artigo da lei 10.408 ficou assim:

"Art. 59 - § 6º Na véspera do dia da votação, o juiz eleitoral, em audiência pública, sorteará três por cento das urnas de cada zona eleitoral, respeitado o limite mínimo de três urnas por Município, que deverão ter seus votos impressos contados e conferidos com os resultados apresentados pelo respectivo boletim de urna."

Sortear na véspera 3% das máquinas de votar para serem auditadas libera as demais 97% da auditoria. Eqüivale a sortear na véspera das competições esportivas olímpicas quais atletas deverão passar pelo teste anti-doping! Os escolhidos poderão desistir da competição (abortar a fraude) e os demais ficam livres para se doparem a vontade pois ficam sabendo antes da competição que não serão fiscalizados.

Enfim, o Senado ao decidir pelo sorteio na véspera, proposto pelo TSE, simplesmente inutilizou todo o projeto de lei original tornando quase inócua a idéia de se criar linhas de auditoria nas máquinas de votar.

Em 2002, o TSE, resolveu se adiantar a vigência da Lei 10.408 e adotou a impressão do voto em 19.373 UE, principalmente no Estado de Sergipe e no Distrito Federal, para verificar a integridade do seu software. Sem se importar com o absurdo que é o sorteio de urnas na véspera, o TSE adotou este infeliz procedimento e aproximadamente 600 delas foram sorteadas na véspera do dia da votação para terem seus votos recontados. As demais ficaram "livres para fraude"!


Caso 2. Procedimentos do Teste de Votação Paralela

[veja o texto completo em inglês, inscrito no concurso]

Até 2000, o único teste de desempenho e confiabilidade que os fiscais dos partidos podiam efetuar sobre as UE brasileiras consistia em executar um programa especial "de teste" em até 3% das urnas, dias antes das eleições. Para se lançar este software era necessário se colocar um disquete especial e ainda digitar uma senha "de teste" na UE e, então, simular uma votação para conferir o seu resultado.

Era um tipo de teste pouco útil para efeito de auditoria do sistema pois o software em nenhum momento era testado em regime normal de votação, pois a data, hora, senha e conteúdo do disquete do teste sempre diferiam de uma votação normal.

Teoricamente, um teste ideal de desempenho e confiabilidade para se detectar possíveis adulterações fraudulentas no software das UE deveria se aproximar o máximo possível das condições normais de votação para que um eventual atacante não tivesse como programar a máquina para abortar a fraude caso perceba que está sob teste.

Para resolver este problema o TSE decidiu por em prática, já em 2002, um novo artigo da lei eleitoral 9.504 que deveria somente vigorar em 2004 com o seguinte texto:

"Lei 9.504 - Art. 66 - § 6º - No dia da eleição, será realizada, por amostragem, auditoria de verificação do funcionamento das urnas eletrônicas, através de votação paralela, na presença dos fiscais dos partidos e coligações, nos moldes fixados em resolução do Tribunal Superior Eleitoral."

A confiança da justiça eleitoral neste tipo de teste, chamado de "votação paralela", como forma de validação do software das UE era muito grande a ponto do tribunal eleitoral do Estado do Rio de Janeiro ter escrito, no seu site, o seguinte:

"Num momento em que vozes dissonantes atacam o processo eletrônico implantado neste país, a votação paralela poderá, desde que bem executada, dirimir toda e qualquer dúvida acerca do sistema informatizado, servindo, inclusive, como instrumento de substituição, na eleição de 2004, ao voto impresso." <http://www.tre-rj.gov.br/eleicao2002/votacaoparalela/votacaoparalela.htm>

Para regulamentar os procedimentos deste teste de simulação de votação, o TSE emitiu as resoluções: 21.127, 21.201, 21.221 e 21.247 [TSE1].

A execução de um teste deste tipo deve ser feita com muito cuidado, pois se algum voto simulado for digitado com erro, o resultado do teste daria um falso negativo, acusando problemas no software da UE sem que eles de fato existissem. O TSE optou, então, por um conjunto de procedimentos de teste muito complexo e rigoroso. A complexidade dos procedimentos adotados dariam um grande trabalho na sua execução e controle, por isto o TSE escolheu uma amostra de teste bem pequena e pouco significativa: apenas 54 máquinas DRE seriam testadas de um universo de mais de 320 mil.

Os procedimentos do teste de votação paralela está apresentado nos artigos 11 a 16 da Res. 21.127 do TSE e, basicamente, consistia em simular uma votação em duas UE adicionalmente a um terceiro computador "de controle", em cada Estado da Federação, e instalar câmaras de vídeo para filmar as 3 máquinas durante todo o teste, que ocorria das 7:00 h até as 17:00 h no dia da eleição.

Os procedimentos durante a votação simulada eram:

  1. Sortear o voto a ser simulado de uma urna convencional previamente carregada com 500 cédulas preenchidas manualmente com votos fictícios;
  2. Digitar o voto na máquina de controle cantando em voz alta para que os fiscais pudessem acompanhá-lo;
  3. Imprimir o voto simulado em formato padrão;
  4. Liberar uma das urnas sob teste para receber um voto, digitando o número do título de um eleitor autorizado para aquela máquina, a partir da lista impressa dos eleitores;
  5. Novamente, cantar o voto em voz alta para que todos presentes o ouvissem e digitar o voto na máquina sob teste;
  6. Repetir os procedimentos 4 e 5 para a segunda urna sob teste;

A complexidade e cuidados na execução destes procedimentos resultou num tempo médio de 5 min por voto simulado.

Observação: este tempo médio foi medido durante o teste de votação paralela no primeiro turno das eleições de 2000, nos Estados do Rio de Janeiro, São Paulo, Minas Gerais, Paraíba e Distrito Federal por membros do Fórum do Voto-E que compareceram para assistir o teste.

Este tempo é bastante superior ao tempo médio de votação real, em torno de 1 min e 15 seg. Desta forma, em cada um dos 27 Estados só foi possível inserir menos de 140 votos em cada UE testada. Resultou que a taxa de abstenção simulada nas urnas testadas sempre esteve acima de 50%.

Ora, segundo o Relatório das Eleições de 2002 [TSE2] haviam 115.254.113 eleitores inscritos, dos quais 94.804.126 compareceram para votar, resultando numa taxa de abstenção média de 17,74%. Haviam 320.458 seções eleitorais com uma UE em cada seção. A média de votos colhidos por máquina de votar foi de 295 votos. Mais que o dobro dos votos simulados na votação paralela! A taxa de abstenção nas urnas testadas tambêm foi muito diferente (mais que o triplo) que a situação real e que o esperado.

Assim, o teste de votação paralela, de desempenho e confiabilidade das UE, que deveria ser feito em condições o mais próximo possível do real, para que nenhum sinal de que a máquina estava sob teste fosse percebido, foi inutilizado pelo estabelecimento de procedimentos inadequados que resultaram num teste de alto custo mas inócuo, pois bastava ao atacante que fosse adulterar o software das UE abortar a fraude caso houvesse menos de 200 votos que o teste todo seria burlado.

O TSE tentou, também, esconder da imprensa e do eleitor brasileiro este seu grave erro na especificação de segurança do sistema. No Relatório das Eleições [TSE3] foi omitida toda informação sobre a taxa de abstenção simulada e a quantidade média dos votos inseridos nas máquinas testadas e a comparação com o real, impedindo que se pudesse avaliar tecnicamente o resultado. No comentário sobre a votação paralela apenas se escreveu no item 3.2.3, parágrafo 32 do relatório das Eelições que:

"A auditoria por meio de votação paralela, realizada nas eleições de 2002, desenvolveu-se com grau de excelência em todos os Tribunais Regionais, nos dois turnos das eleições, e seus resultados comprovaram o correto funcionamento do sistema eletrônico de votação"

No primeiro turno, o fiscal do PDT no Rio de Janeiro apresentou impugnação ao fato de ter sido introduzido menos de 140 votos nas urnas testadas o que inutilizava, tecnicamente falando, o teste de votação paralela. Novamente se estabeleceu a situação na qual a justiça eleitoral era o agente especificador das normas do teste (poder legislativo), o operador do teste (poder executivo) além de ser o juiz (poder judiciário) no processo de impugnação do teste ... no qual também era o réu! - este é o meu Brasil :^((

A decisão da justiça eleitoral, como juiz do processo, foi a de não acatar a impugnação do fiscal por que se referia a aspecto técnico do teste e não a aspecto jurídico, já que o réu (a própria justiça eleitoral) havia cumprido todos os regulamentos e procedimentos criados pelo legislador (também a própria justiça eleitoral). A impugnação foi arquivada e o teste de votação paralela no Rio de Janeiro foi considerado aprovado ... pela justiça eleitoral!

Para tentar atenuar o absurdo desta situação o juiz disse, em sua sentença, considerar que o argumento técnico do fiscal poderia ser acatado apenas como uma sugestão para corrigir testes futuros. Apesar deste seu parecer sobre o teste do primeiro turno, no segundo turno o teste de votação paralela foi repetido da mesma forma e com os mesmos erros... pelo mesmo juiz-executivo do teste..

É por terem tornado inútil o teste de verificação da confiabilidade das urnas em 2002, que estes Procedimentos do Teste de Votação Paralela foram apresentados ao concurso das Mais Estúpidas Medidas de Segurança.


Caso 3. Auto-autenticação do software das UE

[veja o texto completo em inglês, inscrito no concurso]

O software completo do sistema eleitoral brasileiro de 2002, inclusive sistema operacional das UE, sistema de auditoria e aplicativos, são apresentados aos partidos políticos 60 dias antes das eleições os quais, durante 5 dias, podem analisá-los olhando os seus códigos-fonte nas telas dos microcomputadores do TSE. Este tipo de análise é muito superficial pois o sistema possui mais de 35.000 arquivos que nenhuma equipe de fiscais consegue analisar tanto em tão exíguo tempo.

Todo o software, fonte e executáveis, é gravado em CD-ROM e lacrado após a sua apresentação aos partidos políticos no TSE. Uma semana antes das eleições, o software é gravado nas memórias de massa (flash-cards) das UE. Até 2000 os partidos não tinham como verificar se o que era gravado nas UE era o mesmo que lhes fora apresentado. Uma avaliação técnica [UNI], elaborada em maio de 2002, por engenheiros da Universidade de Campinas (UNICAMP), no item 4.3, declara o seguinte:

"Nesta sessão todos os arquivos que constituem o software da UE são gravados em um meio não volátil (CD-ROM), o qual é lacrado e assinado por todos os presentes à sessão de apresentação. Após este período, não há mecanismos simples e eficazes que permitam que representantes de algum partido, em qualquer lugar do país, possam confirmar que os programas usados na UE correspondem fielmente aos mesmos que foram lacrados e guardados no TSE,"

Para resolver esta falha da segurança do sistema, que impedia que os fiscais verificassem a integridade do software carregados nas UE, os técnicos do TSE resolveram acatar uma sugestão da própria UNICAMP como está no item 5.4 do mesmo relatório citado:

"A compilação dos programas-fonte e o cálculo dos resumos criptográficos dos programas executáveis devem ocorrer na presença de representantes partidários e representantes de sociedades ou entidades com efetivo conhecimento de sistemas informatizados. Os resumos e os algoritmos empregados na sua determinação devem ser tornados de conhecimento público, possibilitando a verificação desses programas nas urnas eletrônicas durante o processo de inseminação."

Porém os técnicos do TSE, alegando "problemas de segurança", decidiram não permitir que os fiscais dos partidos utilizassem seus próprios programas verificadores para determinar se o resumo criptográfico (hash) do software gravado nas UE coincidia com o publicado. Criaram, então um programa auto-verificador (VAUDIT.EXE) que também era gravado na UE e que é disparado pela colocação de um disquete especial na máquina de votar. Quando executado, o VAUDIT.EXE deveria calcular e imprimir o resumo criptográfico de todos os arquivos gravados na flash-card da UE e também apresentar a lista dos candidatos inscritos.

Entendiam, assim, os técnicos do TSE que por meio desta auto-autenticação, os fiscais dos partidos políticos teriam comprovado a integridade dos programas das UE.

Uma análise, mesmo superficial, deste sistema de auto-autenticação mostra que ele é totalmente inútil para verificar a integridade que se propõe. A gravação das flash-cards internas das UE é feita através de uma única seção onde dados são transferidos de uma outra flash-card externa, chamada de "flash de carga", A verificação da integridade da flash de carga, antes dos dados serem transferidos para as UE também não foi permitido pela mesma alegação de "problemas de segurança".

Todos os dados utilizados na verificação de integridade da UE, como o programa verificador e as senhas de assinatura digital e de hash estão, obviamente, gravadas na mesma flash de carga a qual é uma mídia regravável e que é guardada sem lacre ou qualquer outra proteção anti-gravação e, portanto, é facilmente adulterável. Assim, basta a um atacante que obtenha acesso à mídia, adulterar o próprio programa verificador e/ou os dados de verificação na flash de carga que se torna inútil a auto-autenticação como meio de verificação de integridade do sistema.

Ações judiciais de impugnação a esta absurda medida do TSE foram apresentadas por três partidos políticos em 2002, o Partido Democrático Trabalhista – PDT - [anexo 1 – parágrafo 1C], o Partido do Movimento Democrático Brasileiro – PMDB - [anexo 2 – parágrafos 11 e 12] e o Partido Socialista Brasileiro – PSB – [anexo 3 – parágrafo 2.a.2 ]. Cria-se assim a curiosa, e irregular, situação na qual a justiça eleitoral é a ré e a juíza dentro do mesmo processo judicial. Como conseqüência deste paradoxo jurídico, a justiça eleitoral sempre agiu no sentido de tornar inócuos os recursos, seja pelo adiamento do julgamento, pelo arquivamento sem julgar o mérito, etc.

Com a invenção deste recurso de auto-autenticação, apesar das criticas de agentes externos, o TSE continuou impedindo os fiscais dos partidos políticos de verificarem a real integridade do software gravados nas máquinas DRE brasileiras de 2002, e a observação dos técnicos da Unicamp, sobre a impossibilidade de se conferir os programas em 2000, continuou a ser válida para as eleições de 2002.

Resumo

Nas eleições brasileiras de 2002 alguns procedimentos de segurança foram tomados para dar garantia de que o software carregados nas UE estivessem livres de falhas e fraudes, mas muitas das medidas tomadas resultaram inócuas, conforme resumido abaixo.

Caso 1. O Sorteio na Véspera

Problema: máquinas DRE, como as UE, não permitem a recontagem dos votos como método para conferência da integridade do software utilizado;
Solução proposta: imprimir os votos e recontá-los em 3% das UE que seriam sorteadas após a votação;
Solução adotada: fazer o sorteio de 3% das urnas a terem os seus votos recontados na véspera da votação;
Resultado: O sorteio na véspera permite a inibição da fraude nas urnas sorteadas e mantém o restante 97% das UE sem meio de auditoria ou conferência estatística da integridade do software.

Caso 2. A Votação Paralela

Problema: o teste de desempenho anterior, uma votação simulada, era executado em condições diferentes do real permitindo a um eventual atacante detectar que a urna estava sob teste, abortando a fraude. Enfim, o teste era inútil para demonstrar a integridade dos programas das urnas;
Solução proposta: simular uma votação no dia da votação em situações e condições idênticas ao real;
Solução adotada: procedimentos complexos tornaram muito lenta a inserção dos votos simulados, limitando a quantidade de votos no teste a menos da metade da situação real;
Resultado: o novo teste se tornou inútil pois continuou sendo feito em condições diferentes do real que poderiam ser detectados por eventual atacante.

Caso 3. Auto-autenticação do Software

Problema: não era permitido aos fiscais verificarem da integridade do software carregados nas UE utilizadas;
Solução proposta: cálculo prévio e publicação do resumo criptográfico do arquivos do sistemas na presença dos fiscais e sua verificação pelos fiscais durante a carga das UE;
Solução adotada: software auto-autenticador, gravado na mesma mídia a ser autenticada, que imprimia relatório afirmando estar tudo bem;
Resultado: os fiscais continuam não podendo certificar o software nas máquinas de votar do TSE.

Referências Bibliográficas

[TSE1] "Instruções e Resoluções do TSE em 2002" – TSE, Brasília, Brasil, 2002. http://www.tse.gov.br/eleicoes/eleicoes2002/instrucoes/inst_2002.html

[TSE2] "Anexo 3 do Relatório das Eleições de 2002" – TSE, Brasília, Brasil, 2002. http://www.tse.gov.br/eleicoes/eleicoes2002/relatorio/anexos/anexo_doc.3.doc

[TSE3] "Relatório das Eleições de 2002" – TSE, Brasília, Brasil, 2002. http://www.tse.gov.br/eleicoes/eleicoes2002/relatorio/relatorio.doc

[UNI] Tozzi, Clésio Luis, et alli. "Avaliação do Sistema Informatizado de Eleições (Urna Eletrônica)" - Universidade de Campinas, Campinas, Brasil, maio de 2002. http://www.tse.gov.br/servicos/download/rel_final.pdf