O relatório da Unicamp - III
Date: Mon, 21 Oct 2002 22:34:40 -0300 (EST) From: Jorge Stolfi <stolfi@ic.unicamp.br> To: J R Figueiredo <jrfigue@fem.unicamp.br>[...] Car*s colegas, Em 29 de maio de 2002, uma comissão de docentes da Unicamp entregou ao Tribunal Superior Eleitoral (TSE) um relatório de 48 páginas, com título "Avaliação do Sistema Informatizado de Eleições (Urna Eletrônica)"[1]. Esse relatório tem sido interpretado e divulgado pelo TSE como sendo uma confirmação, por parte desta Universidade, da segurança do sistema de voto eletrônico. Em primeiro lugar, é preciso esclarecer que esse relatório nunca foi examinado, muito menos aprovado, pelos órgãos colegiados da Unicamp ou das unidades envolvidas. Pelo contrário, a avaliação foi realizada apesar de recomendação contrária da Comissão de Perícias da Unicamp, que havia alertado a Universidade sobre o perigo dos resultados virem a ser mal interpretado e mal utilizados[2]. Portanto, o relatório e suas conclusões não podem ser tomados como a opinião institucional "da Unicamp", mas apenas de seus autores. Além disso, deve-se observar que a avaliação foi feita sobre o hardware e software usado nas eleições de 2000, e portanto não pode ser usado para respaldar o sistema de 2002 --- que difere daquele em deltalhes de natureza e extensão desconhecidas. Por fim, é no mínimo estranha a conclusão principal do relatório (na página 45), incondicional e categórica, de que "o sistema eletrônico e votação implantado no Brasil desde 1966 é um sistema robusto, seguro e confiável atendendo a todos os requisitos do sistema eleitoral brasileiro" Acontece que esta conclusão é contrária não apenas ao bom senso e à experiência de qualquer profissional minimamente competente do ramo, mas inclusive às próprias constatações da comissão -- que, no corpo do relatório, aponta várias falhas de segurança que possibilitariam fraudes generalizadas e indetectáveis. Sem contar que as falhas *realmente* graves da urna não foram sequer mencionadas no relatorio. Após ler esse texto, e alguns testemunhos sobre a fiscalização feita pelos partidos[4,5,6], confesso que perdi até mesmo a pouca confiança que eu tinha na urna eletrônica. Assim como vários outros especialistas bem mais competentes e informados do que eu (como o Prof. Pedro A. D. Rezende, da UnB), acredito que uma avaliação imparcial e completa da mesma deveria concluir exatamente o contrário. Não sou, de modo algum, perito em segurança; mas creio que entendo o suficiente de computação para avaliar os argumentos dos críticos e defensores da urna eletrônica. E, no meu entender, os críticos têm vários argumentos lógicos (óbvios, até), que os defensores aparentemente nem tentam responder. (Infelizmente, declarações em defesa da urna eletrônica muitas vezes se reduzem a simples afirmações de autoridade, ou apelos ao patriotismo ingênuo[8] --- ou mesmo argumentos "ad hominem", em que os críticos são tachados de retrógrados, inimigos do progresso, derrotistas, etc..) Na análise desta questão, é importante notar que nossa imagem mental do que seria uma tentativa "típica" de violação de segurança é baseada na população geral de "hackers", que na maioria são vândalos juvenis atacando por "esporte", ou vigaristas aplicando fraudes comerciais. Nos dois casos, os atacantes geralmente são pessoas sem conexões especiais com a vítima, que operam sozinhos ou em pequenas quadrilhas, com recursos relativamente limitados, e têm que se esquivar da polícia como marginais comuns. Nos dois casos, o atacante não tem uma vítima determinada; de modo que mesmo uma barreira parcial pode ser efetiva, por desviar os ataques para vítimas mais fáceis. Em contraste, no caso de fraude eleitoral, o maior risco vem de partidos e outros grupos organizados e poderosos, com recursos abundantes, amplo apoio político e social, e contatos e simpatizantes em todos os setores do governo --- inclusive dentro da polícia e da Justiça Eleitoral. Grupos que, por exemplo, conseguem obter dezenas de exemplares da urna eletrônica (legítimos ou imitações, pouco importa), sem que ninguém consiga explicar onde ou como; ou que podem exigir que um funcionário sênior quebre o sigilo de uma votação secreta do Senado, sem temor de que este venha a revelar o fato à justiça. Para atacantes desse calibre, o ganho potencial é muito maior, e o risco de punição é muito menor. Por isso, infelizmente, não faltam pessoas, em todos os níveis do governo e da sociedade, dispostas até a matar (ou a arriscar a própria vida) por um cargo político, para si ou para o candidato "certo". Portanto, para ser considerado seguro, um sistema de votação deve ser capaz de resistir, não apenas aos ataques típicos de hackers adolescentes ou de fraudadores bancários, mas também a ataques bem planejados, por grupos que têm conhecimento detalhado do software e hardware da urna eletrônica, e estão determinados a quebrar *esse* sistema, a qualquer custo. Uma avaliação séria da segurança de qualquer sistema deve partir do princípio de que, se o sistema tem algum ponto fraco, é justamente nele que se concentrarão os ataques. A presunção de inocência e integridade deve valer para o indivíduo, sem dúvida; mas, ao nível de sistema, deve-se aceitar como fato dado que uns poucos funcionários em posição estratégica podem ser intimidados ou subornados. Deve-se supor que materiais falsificáveis podem ser falsificados, chaves e lacres podem ser duplicados, telefones podem ser grampeados, e assim por diante. Deve-se supor também que os atacantes terão oportunidade de testar previamente o ataque, numa urna eletrônica legítima ou clonada. Um sistema eleitoral que não pode resistir a ataques desse nível não pode ser, de modo algum, considerado "seguro". Neste aspecto, o relatório "da Unicamp" é extremamente insatisfatório, pois parece supor, implicitamente, que todos os programadores e operadores com algum tipo de acesso ao software e hardware da urna e da rede do TSE --- incluindo não só os funcionários do TSE e dos TREs, mas também todos os funcionários da ABIN, da Microbase, da Módulo, e da Procomp --- são íntegros, incorruptíveis, inintimidáveis, e incapazes de qualquer erro ou distração que possa ter comprometido o software da urna. Acredito que uma avaliação mais realista dos riscos de fraude --- que leve em conta o que *pode* acontecer, e não apenas o que o TSE gostaria que acontecesse --- seria algo como o "relatório alternativo" abaixo: Em todos os modelos da Urna Eletrônica, o software que a opera inclui um sistema operacional com centenas de milhares de instruções, cujo código-fonte não não é acessível ao TSE, e cujo comportamento nunca foi analisado pelos técnicos do Tribunal, pelos fiscais de partido, ou por peritos independentes. A mesma situação se verifica nos computadores utilizados pelo TSE para a montagem do software e inseminação da urna. Mesmo que fosse feita uma análise minuciosa do código-fonte do sistema operacional (e de todos os demais programas excutados com privilégios equivalentes), sua complexidade é tal que não seria possível excluir a existência nele de vulnerabilidades, intencionais ou acidentais, suficientes para permitir a introdução e execução de instruções maliciosas. Instruções executadas com os privilégios do sistema operacional podem efetuar alterações arbitrárias no conteúdo das principais unidades de memória da máquina (RAM, "flash cards" e discos internos) --- inclusive alterando outros programas, curto-circuitando senhas e permissões, neutralizando rotinas de assinatura digital e outros testes de integridade, falsificando logs, e por fim apagando a si próprias. Portanto, uma única vulnerabilidade desse tipo poderia permitir a introdução e execução de código malicioso nos computadores do TSE e/ou na urna eletrônica, capaz de alterar indevidamente os votos digitados e/ou os totais acumulados, sem acionar alarmes ou criar inconsistências. Esse código poderia ser facilmente programado para agir apenas na votação real, e não nos testes dos fiscais. Usando os próprios sensores de segurança da urna, ele poderia também detectar facilmente tentativas de abertura ou auditoria da mesma, e apagar a si próprio nesse caso. Uma vez que a urna eletrônica não mantém nenhum registro permanentes e inalterável dos votos lançados, fora os totais armazenados nos "flash cards", tal fraude seria praticamente impossível de detectar --- quer durante a votação, quer a posteriori. A elaboração de um código malicioso com essas características não exigiria conhecimentos especializados de computação ou criptografia, apenas habilidades elementares de programação, e alguns dados específicos sobre o software e hardware da urna (endereços ou código objeto das rotinas de segurança, formato das tabelas de totais, e assim por diante). Tal código poderia ser facilmente programado de modo a funcionar com versões diferentes do software da urna, mesmo versões não disponíveis ao autor. A introdução do código malicioso na urna eletrônica provavelmente precisaria da colaboração (consciente ou inconsciente) de alguma pessoa com posição especial dentro do esquema; mas não necessariamente com privilégios administrativos, conhecimento de senhas ou chaves criptográficas, ou acesso físico aos ambientes do TSE. Esta pessoa poderia ser, por exemplo, um programador ou operador do TRE ou do TSE, ou de qualquer das empresas e instituições que contribuem para o software da urna ou dos computadores usados na compilação e inseminação (incluindo Microbase, Módulo, Procomp, ABIN e Microsoft). A introdução do "vírus" poderia ser feita de muitas maneiras. Ele poderia já estar embutido no sistema operacional, no BIOS, ou nas rotinas da ABIN; poderia ser enxertado no software da urna durante a compilação ou inseminação; ou poderia estar escondido em programas secundários, arquivos de dados ou áreas supostamente virgens dos disquetes e flash cards, e ativado graças a alguma vulnerabilidade do software da urna. Em qualquer destes cenários, a adulteração do software da urna poderia ser consumada numa fração de segundo, por um programa "cavalo de tróia" ou alguma outra vulnerabilidade do software. Essa operação não exigiria a presença física do atacante ou acesso remoto, e poderia ocorrer sem que operadores, fiscais, ou usuários presentes se dêem conta do fato. A complexidade e dificuldade de tal ataque não seria maior que a dos vírus e outros programas maliciosos que periodicamente invadem computadores no mundo todo, mesmo os mais bem-protegidos (incluindo, aliás, os nossos aqui na Unicamp). Portanto, tal como nesses casos, o ataque poderia ser perfeitamente planejado e excutado por uma única pessoa. E, com um único ataque desse tipo, seria perfeitamente possível alterar em vários pontos percentuais os totais de todas as urnas do país, ou de um determinado estado. Conclui-se portanto de tudo isto que ninguém --- nem o TSE, nem os peritos e fiscais, nem os fornecedores do software --- tem razões para crer que não houve fraude generalizada nas eleições passadas, ou meios efeitvos de impedir que ocorram fraudes generalizadas neste segundo turno. Ou seja, as afirmações do relatório e do TSE, de que a urna é 100% segura, não tem nenhuma base racional; são apenas declarações de fé cega na integridade de todas as centenas de programadores e operadores envolvidos com o sistema. Ressalto que esta minha avaliação baseia-se em informações públicas, extraídas do relatório "da Unicamp" disponibilizado no site do TSE[1] (e portanto implicitamente confirmadas pelo mesmo), e de alguns outros testemunhos públicos[4,5,6]. Quanto à minha conclusão, acredito que ela pode ser confirmada por qualquer profissional com um mínimo de experiência em questões de segurança --- mesmo que apenas na qualidade de vítima. Inexplicavelmente, o relatório "da Unicamp" nem sequer menciona os pontos fracos mais óbvios e perigosos do sistema --- como por exemplo a possivel presença de "cavalos de Tróia" nos computadores do TSE, a quantidade absurda de software aplicativo carregado na urna (segundo outro relato[4], são 3 milhões de linhas de código-fonte --- ou seja, mais de 400.000 linhas para cada membro da comissão!), e o fato de nem os peritos, nem os fiscais, nem o TSE terem acesso ao código fonte do sistema operacional da mesma. Outras falhas igualmente sérias --- como a ativação das rotinas secretas da ABIN antes da impressão dos totais, a impossibilidade de se examinar o conteúdo da urna após a carga, e a execução de um script carregado localmente pelo disquete --- mal são mencionadas no relatório, e apenas para serem desconsideradas com afirmações otimistas sem fundamento. Por exemplo, lê-se na página 38 que "A combinação dessas formas de proteção tem como resultado a criação de uma barreira de segurança de difícil transposição. Mesmo que cada uma das formas de proteção possa ser individualmente superada, a superação do conjunto é pouco provável, dados a extensão e a profundidade de conhecimento necessário e o grande número de participantes cujo envolvimento seria requerido para sua realização." Ora, esta afirmação simplesmente não procede. Em particular, não é preciso entender uma rotina de autenticação criptográfica ou validação de senha para curto-circuitá-la. Não é preciso entender todo o sistema operacional para inserir nele uma rotina de alteração dos votos. Não é preciso examinar o código de um aplicativo para imitar sua interface. Não é preciso roubar senhas, arrombar fechaduras, ou grampear redes para conseguir acesso irrestrito e indetectável a um computador. E a história mostra que não é preciso mais do que um único "hacker" adolescente para implementar tudo isso! Inexplicavelmente, também, a seção de recomendações do relatório nem sequer menciona a proposta de impressão do voto, com verificação imediata pelo eleitor e depósito em urna lacrada. pelo que sei, essa proposta constava do projeto original da urna, e é a única que pode dar um mínimo de segurança contra fraudes generalizadas --- e, por isso mesmo, é tema obrigatório em qualquer discussão séria sobre voto eletrônico[7]. Na verdade, minha avaliação acima pode ser resumida a dois parágrafos: A urna eletrônica é um computador autônomo que, no início do dia, é carregado com alguns milhões de instruções e dados diversos, preparados por centenas de pessoas parcialmente desconhecidas e potencialmente mal intencionadas. A maior parte dessas instruções, incluindo as mais usadas e as mais poderosas, nunca foram analisadas --- muito menos certificadas --- por inspetores confiáveis, e talvez nem mesmo pelos seus autores. Ora, nessas condições, é matematicamente impossível extrair do estado final qualquer informação significativa, mesmo que probabilística, sobre a seqüência de teclas digitadas durante o dia. Ou seja, é inútil analisar detalhes como as técnicas criptográficas ou procedimentos de inseminação, pois a falta de segurança é uma propriedade fundamental dessa arquitetura. A validação desse tipo de urna exigiria uma validação rigorosa de *todo* o software que poderia modificar os totais, *incluindo especialmente o sistema operacional*, BIOS, e outros programas que rodam em modo privilegiado. Validação essa que nunca foi feita --- e que, dado o volume de código envolvido, não pode nem ser cogitada. Mas, naturalmente não estou pedindo que confiem nas minhas conclusões. Por favor, leiam os muitos documentos disponíveis --- como o relatório da Unicamp[1], os artigos de Rezende e Maneschy[3,4,5,6], e o artigo recente na IEEE Spectrum[7] --- e tirem suas próprias conclusões. Lamentavelmente, a estas alturas, não sei o que poderia ser feito para garantir um mínimo de segurança nas eleições do segundo turno. Se de fato há código malicioso na urna (e, repito, *ninguém* neste planeta tem base para afirmar o contrário), ele pode facilmente se esconder de uma auditoria física da urna --- quer esta seja realizada antes, durante, ou após a votação. Ainda mais que neste ano foram eliminadas as últimas urnas tradicionais, que poderiam servir como uma (fraca) confirmação estatística (por amostragem) dos totais gerais. No que tange à eleição presidencial, ao menos, podemos confiar que haverá pouco espaço para fraude --- desde que sejam mantidas as projeções atuais até o fim da semana. Porém, nos estados onde a disputa por governador está mais equilibrada, não se podem excluir pequenas "ajudas eletrônicas" --- transferindo, digamos, 3-4% dos votos de um candidato para outro. Nesse caso, a discrepância entre os resultados e as pesquisas de boca de urna possivelmente levantaria suspeitas --- mas parece pouco provável que o TSE, em vista do seu óbvio entusiasmo pela urna eletrônica, aceitaria essas diferenças como evidência de fraude. Pelo visto, o jeito é rezar para que ambos os candidatos tenham conseguido inserir seus vírus na urna, de tal modo que um cancele o efeito do outro... 8-/ Estou surpreso e preocupado com a indiferença com que os acadêmicos da área, que teriam "ex officio" a responsabilidade de esclarecer a sociedade sobre as implicações e perigos da tecnologia, tenham no geral ignorado esta controvérsia vital para o futuro do país. (Mas confesso que eu também dei pouca atenção ao assunto quando o relatório foi noticiado nos jornais, e nem sequer tentei procurar obter o texto --- só li agora, depois que ele foi, por assim dizer, esfregado na minha cara.) Infelizmente, parece que nossa omissão foi interpretada pelo TSE como aprovação do relatório e de suas conclusões, e autorização para continuar ignorando os argumentos dos críticos. Creio que o mínimo que nós, acadêmicos de computação, podemos fazer agora, para cumprir nossa obrigação social, é espalhar o alerta, da maneira mais ampla e responsável possível. Por favor, interesse-se, forme sua opinião, manifeste-se, e procure interessar seus colegas. Afinal, os vampiros --- reais ou imaginários --- que ainda assombram a nossa democracia não podem ser exorcisados com crucifixos, colares de alhos ou expedições furtivas em cemitérios eletrônicos. Como bem sabem os peritos *desse* ramo, eles só podem ser eliminados escancarando as janelas e expondo-os à luz do dia. Sinceramente, Jorge Stolfi Professor Titular Instituto de Computação, Unicamp [1] "Avaliação do Sistema Informatizado de Eleições (Urna Eletrônica)" Relatório de convênio Unicamp-Funcamp-TSE, 29/maio/2002 http://www.tse.gov.br/servicos/download/rel_final.pdf [2] Roberto Romano, "Urnas Eletrônicas, ABIN e Unicamp", Folha de São Paulo 11/jun/2002. [3] Pedro Antonio Dourado de Rezende, "Análise do Relatório da Unicamp" http://www.cic.unb.br/docentes/pedro/trabs/relunicamp.htm [4] Pedro Antonio Dourado de Rezende, "Voto Eletrônico - Fiscalização e cineminha no TSE", Observatório da Imprensa, Caderno da Cidadania, 21/08/2002 http://www.observatoriodaimprensa.com.br/cadernos/cid210820021p.htm [5] Pedro Antonio Dourado de Rezende, "Mundo Digital - Informática, arma e panacéia" Ibidem, 24/08/2002 http://www.observatoriodaimprensa.com.br/artigos/eno240420024p.htm [6] Osvaldo Maneschy, "Urna Eletrônica - Sigilo oficial e a segurança do voto" Ibidem, 28/08/2002 http://www.observatoriodaimprensa.com.br/cadernos/cid280820021p.htm [7] Rebecca Mercuri "A Better Ballot Box?" IEEE Spectrum Online - Weekly feature - 02/oct/2002 http://www.spectrum.ieee.org/WEBONLY/publicfeature/oct02/evot.html [8] Carta-corrente eletrônica recebida em 25/set/2002 (Vejam o item 4 da lista) http://www.ic.unicamp.br/~stolfi/urna/VivaOBrasil.msg