quarta-feira, novembro 05, 2008

A Urna Eletrônica Brasileira é Segura?

Com as recentes eleições no Brasil e nos EUA, é natural que os brasileiros estejam batendo no peito de orgulho das nossas urnas eletrônicas, principalmente quando comparadas com as formas de registro de voto nos EUA.

Embora eu esteja plenamente satisfeito e confiante com o nosso sistema, é preciso registrar algumas preocupações manifestadas tanto no Brasil como no exterior.

As Limitações da Urna Brasileira

As críticas à urna brasileira costumam se focar em duas limitações do sistema:
  • Inexistência de registro físico dos votos para conferência. Os votos são registrados apenas eletronicamente, impedindo uma recontagem. Já foram feitos testes em eleições passadas com urnas que possuiam uma impressora para registrar o voto. O voto impresso era apresentado ao eleitor para conferência antes de ser guardado. Este processo foi considerado muito caro, complicado e sujeito a falhas mecânicas.
  • Identificação do eleitor pelo mesmo equipamento que registra o voto. O terminal onde o mesário digita o número do título está ligado diretamente a urna, tornando possível (na teoria) a amarração do voto ao eleitor.
Mas o Fonte do Software Não É Aberto?

Uma das vantagens da urna eletrônica brasileira é que o projeto está aberto para consulta e verificação pelos partidos. Entretanto isto não é suficiente.

Uma primeira precaução é o controle rígido das versões, para garantir que o software nas urnas corresponde ao fonte "aprovado". Nos EUA, onde em alguns locais as eleições são agressivamente tercerizadas, já ocorreu de uma empresa reconhecer que foram usadas máquinas com um software diferente do que tinha sido homologado. Não conheço os detalhes, mas até onde sei a Justiça Eleitoral é extremamente cuidadosa neste ponto.

Mas isto não basta. Existe uma famosa apresentação de Ken Thompson ("pai" do Unix), onde ele mostra como um programa pode ser "pervertido" sem deixar traços nos fontes:
  • Suponhamos que desejamos perverter o programa A. Se fizermos a alteração nos seus fontes, quem tiver acesso aos fontes poderá detectar a perversão.
  • Entretanto, o programa A é compilado por um compilador C. Se tivermos acesso aos fontes de C, podemos gera um compilador C' que detecta quando A é compilado e altera o código gerado para executar A' contendo a "malvadeza".
  • A alteração pode ainda ser detectada olhando o fonte de C'. Entetanto, o compilador é compilado por ele mesmo. Geramos então um compilador C" que detecta não somente quando A é compilado, mas tambem quando C é compilado (alterando o código de forma a gerar o equivalente a C"). Uma vez gerado o executável de C", o seu código fonte pode ser destruído.
  • A partir daí a compilação de C gera o compilador C" e a compilação de A gera A', sem nenhum indício nos fontes de C ou A.
No caso da urna eletrônica, a alteração pode ser introduzida tanto no programa de votação como no sistema operacional.

Outras Formas de Fraude

Em um dos vários escândalos sobre urnas eletrônicas nos EUA, descobriu-se que uma urna utilizava uma destas fechaduras vagabundas de móveis de escritório para proteger o acesso ao cartão de memória Flash onde são registrados os votos (e onde poderia ser colocado um software para ser executado no momento de boot).

A empresa se defendeu, afirmando que além da fechadura existia um lacre. Alguém sugeriu então uma forma diferente de afetar o resultado da eleição:
  • Suponha que uma determinada seção tenha (segundo as pesquisas) predileção pelo candidato A que não queremos que ganhe.
  • Recrutamos então um eleitor desta sessão e o instruímos para ir votar no horário final e, no isolamento da cabine de votação, quebrar o lacre.
  • Na hora da contagem será detectado o lacre quebrado e o conteúdo da urna terá que ser ignorado (apesar de não ter sido alterado!).
Ou, como neste diálogo clássico entre Dilbert e Dogbert:
  • Dilbert: você me enganou ontem. Você me convenceu a não ir votar pois você ia votar no outro canditado e se nós dois não fossemos o resultado seria o mesmo.
  • Dogbert: e...
  • DIlbert: cachorros não votam!
  • Dogbert: não diretamente.
Concluindo

Após as eleições brasileiras vou dormir sabendo o resultado e sossegado. Entretanto, as preocupações acima não deixam de ser válidas (e altamente improváveis). Quem sabe alguém não desenvolve uma forma simples, barata e confiável de acrescentar um registro físico dos votos que permita recontagem...

Nenhum comentário: