O Ouro de Tolo apresenta a partir de hoje uma série especial. Assinada pelo analista de sistemas com mais de quinze anos de experiência Bruno Nascimento, meu amigo há duas décadas, vai mostrar que a urna eletrônica, pilar do nosso sistema de votação eletrônica, possui vulnerabilidades que podem ser exploradas por entidades políticas desonestas.
Serão quatro artigos, a serem publicados em dois domingos e duas quintas feiras. Recomendo atenção especial, pois é assunto muito sério e que tem influência direta em nossas vidas.
“Parte I – Microprocessadores e BIOS

Sou analista de sistemas e não sou especialista de segurança. Conversando com o Pedro ele se assustou com uma informação que passei, baseado no meu conhecimento da profissão e de desenvolvimento de sistemas. Eu disse que, com o contato interno correto, um estudante de 2º período da faculdade poderia efetuar uma fraude em uma urna eletrônica.
Como assim? Nosso processo eleitoral não é 100% seguro? Eu diria entre 95 a 99%. Só que em uma eleição muito disputada, este percentual poderia alterar a decisão final. Como a explicação envolve muito de explicação sobre computadores, códigos fonte, do processo de desenvolvimento de sistemas e do próprio processo eleitoral, a idéia aqui é apresentar um pouco de conhecimento de informática e de situações passíveis de exploração, com ou sem controle do processo eleitoral. A análise do processo das urnas eletrônicas, feita pela Unicamp em 2002, é um documento público e disponível no site do TSE em http://www.tse.gov.br/internet/eleicoes/relatorio_unicamp.htm. Deixemos claro que os próximos textos referem-se a opiniões minhas e que colocarei o conhecimento necessário para embasá-las. Cada um é responsável por sua interpretação e seus questionamentos. Como disse, não sou especialista em segurança, muito menos dono da verdade.
A urna eletrônica, segundo o relatório da Unicamp, “possui uma estrutura similar à de um computador IBM-PC”. O que seria uma estrutura similar a de um IBM-PC? Seria o que chamamos de máquina Von-Neumann. As principais características de uma máquina Von-Neumann são as seguintes:

·         A existência de 3 subsistemas: a CPU (Central Process Unit, ou Unidade Central de Processamento), a Memória Principal e o Sistema de Entrada e Saída (E/S ou I/O, de Input e Output).
·         A CPU se divide em 3 blocos principais: a Unidade de Controle, a Unidade Lógico-Aritmética (ALU – Arithmetical Logical Unit)  e Registradores, incluindo aí um registrador da posição da última instrução executada (PC – Program Counter).
·         O programa é armazenado na memória principal.
·         A execução de instruções pelo computador é seqüencial, uma após a outra.
·         E há um único caminho entre a memória principal e a Unidade de Controle
·         A execução de comandos na máquina é comandada pelos ciclos de máquina, onde se busca a próxima instrução de máquina (através do que está registrado no PC – Program Counter) e a execução da mesma através da Unidade de Controle e da ALU que realiza as operações matemáticas de somar, subtrair, multiplicar e dividir, além de realizar as operações de ponto-flutuante, para os números fracionários.
Computadores, apesar de executar várias operações que não conseguiríamos executar tão rapidamente, são máquinas burras.  A CPU é o que chamamos  ao microprocessador, o coração da máquina. Então quando falamos de Pentium, Athlon, Core Duo, Core Quad, falamos do microprocessador. Os microprocessadores além do acesso à memória principal, chamada também de memória RAM (Random Acesss Memory – Memória de Acesso Aleatório) possui também uma memória denominada ROM (Read Only Memory). Porquê o computador precisa destes 2 tipos de memória? Porque a memória RAM, uma vez que o computador é desligado perde todo seu conteúdo. Então para executar as primeiras instruções e verificar todo o computador é necessário ter um conjunto de instruções básicas que serão o primeiro conjunto de instruções a serem executadas pelo computador ao ser ligado. Estas instruções armazenadas em memória ROM são no IBM-PC chamadas de BIOS (Basic Input and Output System – Sistema Básico de Entrada e Saída).

Aqui entram os primeiros pontos que poderiam ser aproveitados. E se alguém substituísse a BIOS existente nas urnas por uma outra que permitisse manipular resultados? É uma situação em que a própria verificação da urna verificaria e capturaria a fraude facilmente. A BIOS já vem de fábrica com a programação destas prontas e têm uma codificação prevista controlada. Assim alterações nesta seriam identificáveis pouco após o momento em que o computador fosse ligado. Neste ponto, a mudança seria detectada. Até aqui, dificilmente haveria fraude sem conhecimento de ninguém, pois as instruções aqui necessárias são tão básicas para o funcionamento do computador que a fraude ficaria clara em quaisquer testes de verificação e mesmo nos testes de programa. Só se esta viesse de fábrica ruim, mas normalmente tal situação seria detectada com antecedência o suficiente para que não houvesse impacto na eleição.

Seguiremos na próxima parte explicando mais componentes de programa que estariam envolvidos no funcionamento de um computador, o Sistema Operacional e os programas executáveis.”