sábado, 24 de março de 2012

Segurança da urna eletrônica brasileira volta a ser manchete (I)

Volta e meia renasce o debate sobre a segurança (ou inviolabilidade) da urna eletrônica brasileira. Pessoalmente, não tenho a menor intranquilidade quanto a isso, mas há gente que não comunga dessa ideia -- e é este pessoal que se sente respaldado em sua descrença, com a notícia recente de que uma dessas urnas foi violada em teste promovido pelo TSE - Tribunal Superior Eleitoral.

O primeiro passo para estabelecer uma discussão em bases sólidas e coerentes é entender o objetivo do TSE com esse teste e as condições estabelecidas para sua realização, o que está detalhadamente apresentado no site do Tribunal -- a leitura disto é indispensável para a abordagem do assunto. O primeiro ponto fundamental dessa discussão é que o teste foi planejado e executado por iniciativa do TSE, com estreito contato com a comunidade técnica envolvida no assunto, o que é extremamente louvável e não pode ser perdido de vista. Dois outros pontos fundamentais: - i) essa foi a segunda edição dos testes com a urna (na primeira a urna não foi violada); - ii) a fase de preparação dos testes, uma novidade dessa segunda edição, teve como objetivo dar o maior número de subsídios possível para a elaboração dos planos de testes.

Nas instruções para a realização do teste deve-se destacar que, no dia 8 de março (último dia da fase de preparação):
  1. os participantes puderam se inteirar do funcionamento de todos os sistemas envolvidos na votação eletrônica, e
  2. os participantes puderam visualizar o código-fonte da urna (que fica guardado no cofre do Tribunal) e fazer pesquisas na internet;
  3. nos testes, nos dias 22 e 23 de março, os investigadores tentariam realizar "ataques" à urna eletrônica, buscando explorar eventuais falhas do sistema relacionadas à violação da integridade e ao sigilo do voto.
Realizados os testes com 9 grupos participantes, apenas a equipe da Universidade de Brasília (UnB) conseguiu detetar uma lacuna na segurança das urnas eletrônicas e identificou quais os candidatos (e em que sequência) foram votados em determinada urna, mas não conseguiram identificar os votantes, o que significa que o sigilo do voto não foi quebrado.  Para quebrar completamente o sigilo da urna, os investigadores teriam que ter em mão a relação da lista de eleitores que nela votaram e que fica em poder do mesário.

O chefe do grupo, Diego de Freitas Aranha, professor do Departamento de Computação da UnB, disse que é impossível saber se conseguiriam quebrar o segredo caso não tivessem acesso à informação privilegiada [o acesso ao código-fonte].

O teste foi considerado extremamente positivo, pois gerou subsídios relevantes para o TSE melhorar e reforçar a segurança completa da urna eletrônica que utiliza.

Uma dúvida recorrente que li e ouvi é quanto ao fato do TSE usar o Linux em sua programação, e o Linux ficou conhecido como sendo uma programação de "código aberto", o que tornaria então nossa urna intrinsecamente também "aberta" e, portanto, vulnerável. Andei me informando com quem entende de informática e de Linux, e tentarei a seguir explicar o assunto:

  • o código é "aberto" mas não é "escancarado" -- o fato da urna rodar em Linux não significa que tudo que rodar nela tem que ser código aberto. Se você desenvolver uma aplicação baseada em código aberto protegido por uma licença como GPL ou LGPL, você é obrigado a repassar o código fonte da sua aplicação pra quem mais vier a usá-la. É isso que garante que o código continuará aberto, e que uma empresa que desenvolva um software a partir de código aberto (feito gratuitamente por voluntários mundo afora) não possa lucrar em cima disso sem reverter para a comunidade suas modificações no código. Se apenas você usa sua aplicação, não é obrigado a nada, não é obrigado a abrí-lo. O TSE desenvolve o programa que controla a votação para uso próprio e exclusivo.
  • Sim, tendo o código-fonte em mão não é preciso fazer engenharia reversa, fica muito mais fácil explorar falhas de segurança. E, sim, código aberto não significa Linux, simplesmente significa que o código está disponível para quem quiser ver/usar, seja lá em qual sistema operacional se trabalhe.
  • Acesso ao código-fonte depende do que a instituição dona do produto deseja; é o que chamamos de "testes caixa-branca" (em contraste com testes caixa-preta, onde não se conhece o código). A opção por dar acesso neste caso deve ter sido porque eram pessoas confiáveis (white hats), e a intenção era facilitar o acesso à informação para se obter o melhor resultado possível -- ponto para o TSE!. Deve ter sido executado sob NDA - Non-Disclosure Agreement (Acordo de Não Divulgação) -- o grupo ainda não pode revelar os detalhes do feito, o TSE exigiu um compromisso de que apenas informações preliminares fossem divulgadas antes do relatório final com as considerações do próprio tribunal.   Ainda sobre isso, é importante ler o item #17 das FAQ direto no site do TSE.
Continuo sem preocupação com a segurança da nossa urna. Nessa questão específica da urna, e em muitas outras ocasiões, a gente frequentemente encontra gente conhecida como "FUD  Master".  "FUD" ("Medo, incerteza e dúvida", em inglês) é uma tática utilizada em vendas, marketing, relações públicas, política e propaganda. Geralmente, é uma tentativa estratégica de influenciar a percepção de algo pela disseminação de informação negativa, dúbia ou falsa  -- no caso em pauta e, claro, praticamente em todos os outros isso pode ser feito de boa ou má-fé, quando não se tratar de nenhum das cinco hipóteses citadas.

[Ver outra postagem sobre o assunto.]

Um comentário:

  1. Amigo VASCO:

    Partilho com você a confiança nas URNAS ELETRÔNICAS. A dúvida que eu tinha, sobre o sistema operacional ser o LINUX, ficou bem esclarecida.
    A URNA ELETRÔNICA não agrada a muitos porque nela é muito dificil um MORTO VOTAR.

    Parabéns pelos esclarecimentos.

    Sergio LEVY

    ResponderExcluir