O relatório da Unicamp - IV
(Carta aos jornais)

Prezado Sr., 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)". Esse relatório tem sido interpretado e divulgado pelo TSE como sendo uma certificaçã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 (Roberto Romano, "Urnas Eletrônicas, ABIN e Unicamp", Folha de São Paulo 11/jun/2002). Portanto, o relatório e suas conclusões não devem ser tomados como 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 servir de respaldo para o sistema de 2002 --- que difere daquele em detalhes de natureza e extensão desconhecidas. Por fim, é no mínimo estranha a conclusão principal do relatório, 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" (página 45) Esta conclusão contraria não apenas o bom senso e a experiência de qualquer profissional minimamente competente em segurança de sistemas, mas inclusive o próprio relatório -- que, no seu corpo, 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 relatório. Num sistema de votação, o maior risco de fraudes não vem dos "hackers" e vigaristas habituais, mas sim 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 --- possivelmente também na polícia, na ABIN, e na 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. Portanto, uma avaliação séria da segurança da urna eletrônica deve obrigatoriamente considerar ataques bem planejados, por pessoas que têm conhecimento detalhado do software e hardware da mesma, e estão determinados a quebrar *esse* sistema, a qualquer custo. Deve-se supor 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 organização, 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 críticos 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 sistema eletrônico de votação --- incluindo não só os funcionários do TSE e dos TREs, mas também todos os funcionários das entidades que contribuem para o software e operação do sistema (ABIN, Microbase, Módulo, Procomp, Unisys, Microsoft, etc.) --- são íntegros, incorruptíveis, inintimidáveis, e incapazes de qualquer erro ou distração que possa ter comprometido o software da urna. E este software é justamente o principal ponto fraco do sistema. Além de ser absurdamente complexo (segundo relatos de fiscais, são cerca de 3 milhões de linhas de código-fonte --- ou seja, quase 400.000 linhas para cada membro da comissão!), ele 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 observação se aplica aos computadores utilizados pelo TSE para a montagem do software e sua instalação na 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 instruções maliciosas, ou de vulnerabilidades (intencionais ou acidentais) suficientes para permitir a introdução e execução de instruções maliciosas após a inspeção Ora, instruções maliciosas executadas com o privilégios do sistema operacional podem alterar de maneira arbitrária quaisquer dados e programas armazenados na urna, curto-circuitar senhas e permissões, neutralizar rotinas de assinatura digital e outros testes de integridade, e falsificar "logs" -- e por fim apagar a si próprias, sem deixar vestígios. Em particular, tais instruções poderiam alterar indevidamente os votos digitados e/ou os totais acumulados, sem acionar alarmes ou criar inconsistências. Um tal "vírus" poderia facilmente ser programado para agir apenas na votação real, e não nos testes de funcionamento da urna. Além disso, usando os próprios sensores de segurança da urna, o vírus poderia também detectar tentativas de abertura ou auditoria da mesma, e apagar a si próprio nesse caso. A elaboração de uma rotina maliciosa 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 rotina poderia ser facilmente programada 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 "vírus" na urna poderia ser feita de muitas maneiras. Ele poderia já estar embutido no sistema operacional, no núcleo básico (BIOS), ou nas rotinas da ABIN; poderia ser enxertado durante a compilação ou instalação do software da urna; ou poderia estar escondido em programas secundários, arquivos de dados ou áreas supostamente virgens dos disquetes e "flash cards" instalados na urna, e ativado através de alguma falha sutil do software legítimo. Em qualquer destes cenários, a adulteração do software da urna poderia ser consumada numa fração de segundo, por um programa autônomo tipo "cavalo de tróia", sem que o atacante precise estar fisicamente ou remotamente logado na máquina --- e sem que os funcionários e fiscais presentes se dêem conta do fato. É verdade que alguns desses modos de ataque necessitariam 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 entidades envolvidas na implementação e operação do sistema. A complexidade e dificuldade de tal ataque não seriam maiores do que as 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 os totais em todas as urnas do país, ou de um determinado estado*, antes da impressão do relatório de urna. 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 na sua memória, tal fraude seria praticamente impossível de detectar --- quer durante a votação, quer a posteriori. Infelizmente o relatório "da Unicamp" nem sequer menciona estes óbvios e perigosos pontos fracos do sistema. Ele nem mesmo informa o leitor sobre o volume absurdo do software aplicativo, e o fato de que nem os peritos, nem os fiscais, nem o TSE têm acesso ao código fonte do sistema operacional. 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 por disquete no dia da eleição --- mal são mencionadas no relatório, e sumariamente desconsideradas com o argumento que é improvável que um atacante consiga transpor as múltiplas camadas de senhas, criptografia, e assinaturas digitais. Infelizmente, este argumento não procede. Não adianta trancar a porta da frente a sete chaves, se a porta dos fundos é deixada aberta e sem vigia. 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! Em resumo, na sua forma atual, a urna eletrônica é uma máquina cujo estado interno, no início da votação, consiste de milhões de instruções e dados diversos, que foram elaboradas por centenas de pessoas virtualmente desconhecidas, e que nunca foram devidamente analisadas --- muito menos certificadas --- pelo TSE ou por fiscais independentes. A evolução do estado da urna no decorrer da votação é inteiramente controlada por essas instruções, que podem alterar de maneira arbitrária tanto dados quento programas, incluindo a si próprias. Durante todo o dia da votação, a máquina funciona de maneira autônoma, sem produzir nenhuma saída permanente e sem possibilidade de exame de seu estado interno. Ora, nessas condições, é matematicamente impossível extrair do estado final da urna qualquer informação significativa, mesmo que probabilística, sobre a seqüência de teclas digitadas durante o dia. Ou seja, é inútil analisar e certificar detalhes como as técnicas criptográficas ou procedimentos de inseminação, pois a falta de segurança é uma propriedade fundamental dessa arquitetura. Este não é um julgamento subjetivo, mas uma conclusão matemática. 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. Conclui-se de tudo isto que ninguém --- nem o TSE, nem os peritos e fiscais externos, nem os fornecedores do software --- tem autoridade para afirmar que não houve fraude generalizada nas eleições passadas, ou meios efeitvos de impedir que elas ocorram neste segundo turno. 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 não depende de nenhuma informação privilegiada; ela baseia-se inteiramente em informações de domínio público, principalmente o próprio relatório "da Unicamp" e outros documentos públicos acessíveis, por exemplo através do site do Fórum do Voto Eletrônico (www.votoseguro.org). Quanto à conclusão acima, 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. É lamentável, também, que a seção de recomendações do relatório nem sequer mencione a proposta de impressão do voto --- com verificação imediata pelo eleitor, possibilidade de estorno, 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 (Rebecca Mercuri, "A Better Ballot Box?" IEEE Spectrum Online, Weekly feature of 02/oct/2002 --- www.spectrum.ieee.org/WEBONLY). 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 dados para garantir 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. 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 inúmeros 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 --- ou mesmo argumentos "ad hominem", em que os críticos são tachados de retrógrados, inimigos do progresso, derrotistas, etc.. Espero que o TSE e os demais responsáveis se dêem conta de que a segurança da urna eletrônica é essencialmente uma questão técnica, e portanto deveria ser decidida com base em argumentos racionais --- de preferência, *antes* da tomada de decisões --- e não por pressões políticas ou interesses comerciais. A respeito da valorização da indútria nacional, quero observar que o desenvolvimento e aceitação passiva (senão entusiástica) dessa urna, tão obviamente insegura, não demonstra de modo algum nossa superioridade no ramo --- *muito pelo contrário*. Estou surpreso e preocupado com a indiferença com que esta controvérsia têm sido recebida pelo público, especialmente pelos que têm conhecimento da área --- tirando umas poucas e honrosas exceções. (Eu mesmo confesso e lamento minha indiferença; só me dei ao trabalho de ler o relatório "da Unicamp" agora, depois que ele me foi "esfregado na cara" por colegas justamente indignados.) 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. Espero que esta carta ajude a conscientizar o público sobre esse problema, da maneira mais ampla e responsável possível. Recomendo ao leitor desta carta que não confie cegamente nas declarações de autoridades e peritos, mas procure inteirar-se dos fatos por conta própria, discutí-los com colegas, formar sua opinião, e manifestar-se. Afinal, os fantasmas e vampiros --- reais ou imaginários --- que ainda assombram a nossa democracia não podem ser exorcisados com colares de alho, fórmulas mágicas, ou expedições furtivas nos subterrâneos do TSE. 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 ====================================================================== Dados sobre o autor: Engenheiro Eletrônico, Politécnica-USP, 1973; Mestre em Matemática Aplicada, USP, 1979; Doutor (Ph. D.) em Ciência da Computação, Universidade de Stanford, 1988; professor da Unicamp desde 1992. Entre outros, foi responsável pelo processamento de dados dos vestibulares de medicina de S. Paulo (CESCEM) no início dos anos 70, e pesquisador no Systems Research Center, da Digital Equipment Corporation (DEC SRC), de 1988 a 1992.