Deve a urna eletrônica usar software livre?
O código-fonte do sistema usado na UE não é propriedade do egrégio
Tribunal, e portanto não pode ser livremente divulgado para a sociedade
Quero responder de
imediato: sim!
Confesso que não sei se a
comunidade do software livre já se
perguntou sobre o sistema adotado
nas urnas eletrônicas (UE) brasileiras. Gostaria de lembrar um ponto crucial: esse sistema não é um software de código aberto e para justificar isso a autoridade responsável o Tribunal Superior Eleitoral (TSE) lançou mão de argumentos já conhecidos por sua inconsistência. Na Resolução 20.714/00 do TSE são dois os motivos apresentados: 1) propriedade intelectual, o código-fonte do sistema usado na UE não é propriedade do egrégio Tribunal, e portanto não pode ser livremente divulgado para a sociedade e, em especial, para a auditoria dos partidos; 2) segurança, isto é, não se pode mostrar o código-fonte desse software, pois assim supostamente as pessoas não-autorizadas conheceriam os segredos e minúcias do sistema, e seria possível fraudá-lo facilmente.
Esse tipo de procedimento e crença, francamente ingênuos, é chamado em geral de "segurança por obscurantismo". Trata-se da crença em que criptografia proprietária, código-fonte fechado e sistemas operacionais igualmente fechados e proprietários garantem por si sós que um sistema digital seja mais seguro diante das tentativas de fraude e invasão. Isso não é um fato, e já tive a oportunidade, em outro artigo da Revista do Linux, de tentar debater essas falsas suposições. O "obscurantismo" pode até ser útil, não quando aplicado a um produto, mas sim na maneira como usamos um produto: aí devemos ocultar nossa topologia de rede, nosso roteador, as versões de nossos daemons etc. Também não se devem ter ilusões quanto a esse "obscurantismo no uso", ajuda sim, mas nada além disso...
Segurança
Sem dúvida, a Internet tem problemas de segurança, buracos no TCP/IP têm sido divulgados até pela imprensa não-especializada, mas não é algo inviável, longe disso. Ela é um fato social incontornável em nossos dias... Imaginem então se conhecer o código-fonte do servidor Web mais usado no planeta, o Apache, significasse uma catástrofe. Mas isso não ocorre. Certamente qualquer hacker pode ter acesso ao código do Apache, e também toda a comunidade interessada pode ter conhecimento, e estou falando de milhões de pessoas. Um bug pode passar desapercebido para um grupo de 10 técnicos muito competentes, mas não passará para uma comunidade formada por milhões de pessoas. Por isso o servidor Web chamado IIS da Microsoft, obviamente fechado e proprietário, é de certa forma um fracasso, mas o Apache não.
Vale a pena repetir: ter o seu código aberto não torna um software vulnerável, ou ainda: pôr o código-fonte de um software num cofre no Pólo Norte não o faz mais seguro a vulnerabilidade de um sistema está assentada num conjunto de variáveis.
O posicionamento oficial do
TSE sobre esse pormenor está na
Decisão para o Mandado de Segurança nº 2.914, no qual o Tribunal assevera
a restrição ao código do sistema.
Se o TSE assim procede é porque:
"(...) demonstra uma preocupação com a própria segurança, pois é fato que se menos pessoas tiverem acesso a tais informações, menor a possibilidade de risco à segurança das eleições."
Em artigo no jornal Estado de Minas (21/4/2001), Evandro Oliveira, auditor da Prodabel (BH), qualificou com correção e certa dose de ironia as "máquinas de votar" brasileiras de "sistemas eleitorais obscurantistas". Já que os princípios que as regem são claramente a "segurança por obscurantismo".
O leitor que desejar aprofundar esse tema deve procurar os relatórios técnicos dos engenheiros Amilcar Brunazo e Márcio C. Teixeira, que fizeram a devida avaliação técnica do sistema eleitoral brasileiro para o Senado, conforme rígidos critérios de segurança, bem documentados e bastante atualizados. Todo esse material está disponível para consulta e download no portal Página do Voto Eletrônico.
Código aberto e UE
Amilcar Brunazo é agora o responsável (foi nomeado pelo Presidente da Subcomissão do Voto Eletrônico, Senador Roberto Requião) por organizar e assessorar um seminário técnico e sugestões para a UE, e assim enriquecer a futura votação do Projeto de Lei do Senado 194/99, que cria condições para a auditoria nas UEs brasileiras. Brunazo viu aí uma boa oportunidade para divulgar a importância do software de livre distribuição e defender que um SO com código aberto poderia ser usado na confecção do sistema eleitoral brasileiro. Contatou-me e pediu que eu elaborasse uma proposta com essa diretriz.
Essa proposta insere-se numa luta maior para a implementação do software livre em toda a administração pública. O uso do kernel dos sistemas GNU/Linux seria feito por custo zero no Brasil visto que é distribuído sob licença GNU (a GNU Public License) e seria tecnologicamente superior ao VirtuOS, sistema usado na UE. O novo sistema seria pago por máquina instalada, como faz qualquer outra licença proprietária.
O Linux tem as características fundamentais que se esperam de um sistema operacional, e também para ser aplicado a um sistema de uso específico, como o da UE. Todos sabemos que é um sistema de código aberto, por isso tem a maleabilidade necessária de ser adaptável a diferentes cenários.
Por último, mas não menos importante, ele não é propriedade de uma única empresa, pertence a toda a comunidade, o que facilitaria os processos de auditoria pelos partidos políticos.
O kernel do Linux é pequeno e cabe num disquete, se forem necessários algumas outras funções e programas, um ou dois disquetes podem fazê-lo. Diferentes projetos nasceram nesse sentido. Por exemplo, o importante Linux Router Project (LRP) compõe o kernel num disquete de 1.44 Mb, uma minidistribuição voltada para as funções típicas de rede, como um roteador ou um terminal-servidor. Já vi administradores segurar uma rede inteira apenas num boot pelo disquete... Após o boot os arquivos essenciais são carregados num disco de RAM, que é
montado como root, e todo o sistema roda de maneira estável a partir desse disco de RAM. É importante notar, também, que só o kernel Linux tem acesso completo ao hardware, o que lhe confere estabilidade e segurança. Qualquer peça de software maliciosa para ter acesso às áreas sensíveis do sistema precisará ascender a este estado ou modo privilegiado.
O LRP pode usar ainda outros tipos de disco lado a lado com o disquete, tais como LS-120, o ZipDisk da Iomega
e flash disks ou flash cards. Cabe lembrar que o último edital de concorrência do TSE (1999) estruturou o sistema eleitoral em flash cards, onde estão o sistema operacional e outros dados, e em unidades de disquetes, onde são armazenadas as informações coletadas durante a votação. Por outro lado, faço aqui referência ao LRP apenas como exemplo de um projeto bem-sucedido no Brasil e no mundo, não sugerindo sua simples "transferência" para o sistema operacional da UE! O que não faria sentido. No entanto, é bom lembrar que o kernel Linux roda em máquinas com poucos requisitos, e mesmo com pouco espaço de disco, e o faz com incrível eficiência. Quanto aos discos flash, já encontramos no mercado sem pesquisa exaustiva, não sou especialista no assunto soluções para Linux de empresas conhecidas como M-Systems ou Datalight.
Outro dado relevante são as características intrínsecas ao sistema GNU/Linux. Trata-se de um sistema multiusuário, uma vez que é originalmente um sistema de rede e para redes. Isso permite que áreas da memória e do disco sejam protegidas de gravação indevida: todos sabemos que sob Linux determinadas áreas só podem ser alteradas pelo superusuário. Isso é fundamental numa máquina de votar. O Linux é sabidamente um SO com ótimo histórico no quesito "segurança". Não é resposta definitiva e pronta, nunca vai fazer milagres. Sobretudo porque um sistema eleitoral tem suas especificidades: segundo as palavras de Brunazo é um "sistema de alto risco de fraude". Assim, será preciso adaptá-lo a essa nova aplicabilidade. Creio que tem todos os pré-requisitos para ter sucesso e para a montagem de uma política de segurança sólida e confiável, desejadas numa máquina de votar.
Quero tocar num ponto ainda. O Edital citado exige no seu módulo de segurança um criptossistema o que é bastante previsível. Foi dito que o software usado na UE não podia ser revelado por razões de copyright. O mesmo se passa com a biblioteca criptográfica usada. O Linux possui uma gama de aplicativos distribuídos sob Licença GNU para diversos intentos, e mundialmente usados e consagrados. Não poderia ser diferente na criptografia. O GNUPG (GNU Privacy Guard) e a biblioteca GPGME (GNUPG Made Easy), atualmente em pleno desenvolvimento, são programas que podem dar o suporte necessário a um criptossistema, elemento indispensável numa UE. A qualidade desses produtos levou o Ministério da Economia e Tecnologia alemão (BMWi) a decisivamente patrocinar o projeto. Portanto, o GNUPG é uma ferramenta de criptografia de chave-pública, desenvolvida sem algoritmos patenteados, suporta diferentes algoritmos e funções hash. Paralelamente desenvolve-se o GPGME
(GPGME), uma biblioteca que torna mais fácil aos aplicativos usar as funções do GNUPG. É uma API criptográfica de alto nível e que provê suporte
a encriptação, assinatura digital,
verificação de assinatura e gerenciamento de chaves.