segunda-feira, 13 de janeiro de 2014

'A urna brasileira tem a mesma falha que adolescentes já tinham descoberto em 1995', diz professor da UnB



Diego Aranha. Imagem: Eugênio Moraes/Hoje em Dia
O Prof. Dr. Diego Aranha, da Universidade de Brasília, foi o responsável por liderar a equipe que descobriu, em março, uma falha na urna eletrônica brasileira durante um teste de segurança autorizado pelo Tribunal Superior Eleitoral (TSE). O professor conversou com a coluna Segurança Digital do G1 para explicar melhor o problema que foi descoberto – que permite reordenar votos – e fazer outras observações sobre o sistema eleitoral brasileiro.

Se tiver alguma dúvida sobre termos técnicos usados na entrevista, confira o glossário no final da página. O TSE também comentou alguns dos pontos levantados pelos professor e as observações do tribunal estão ao final da entrevista. Se você tiver qualquer dúvida, utilize a área de comentários.

G1 – Quando começou seu interesse por sistemas de voto eletrônico?
Diego Aranha – Meu interesse começou quando cursei a disciplina Segurança de Dados, ministrada pelo Prof. Pedro Rezende, enquanto aluno de Ciência da Computação da Universidade de Brasília. Naquela época, o referido professor já estava envolvido na discussão em torno da questão e trazia a problemática com alguma frequência para discussão em sala de aula.

G1 – O teste da sua equipe conseguiu reordenar os votos registrados no RDV. O que está presente no RDV, quem tem acesso a ele e por que a ordem deve ser embaralhada?
Diego Aranha - O Registro Digital do Voto (RDV) é uma tabela que armazena desordenadamente os votos propriamente ditos inseridos pelos eleitores na urna eletrônica. O objetivo desse embaralhamento dos votos é desassociar a ordem em que os votos foram inseridos da ordem em que foram armazenados.

O RDV foi introduzido no lugar do voto impresso para supostamente permitir a mesma capacidade de verificação independente dos resultados da urna. Por essa razão, é um documento público disponibilizado para os partidos após as eleições. Entretanto, enquanto o voto impresso permite de fato a verificação independente dos votos computados eletronicamente, o RDV é produzido pelo mesmo componente de software que produz o Boletim de Urna (BU) contendo os totais de cada candidato computados pela urna. Desta forma, qualquer ataque que comprometa a integridade do BU pode também comprometer o RDV.

Pode-se concluir, portanto, que o RDV não serve a nenhum propósito prático, além de permitir a violação do sigilo do voto caso seja projetado e implementado de forma insegura.



G1 – Seria possível ter conseguido o que vocês fizeram sem o acesso ao código fonte? O erro que havia no registro do RDV era complexo ou amador?
Diego Aranha - Não teria sido possível com o curto limite de tempo disponível para os testes — em torno de apenas 6 dias, divididos em fases de preparação e avaliação. Ainda assim, não se pode assumir que a segurança do RDV ou qualquer outro componente do sistema eletrônico de votação depende exclusivamente da confidencialidade do código-fonte ou dos detalhes técnicos dos mecanismos de segurança que os protegem.

Segurança advém de simplicidade de transparência. Para tanto, deve-se assumir que potenciais fraudadores conhecem os sistemas envolvidos em seus mínimos detalhes, mesmo porque absolutamente nada impede que os ataques partam de agentes internos. A área de Segurança da Informação utiliza essa noção de segurança há quase 130 anos.



A vulnerabilidade presente no projeto e a implementação do RDV que utilizamos para reconstruir a lista dos votos em ordem reproduzia fielmente outra vulnerabilidade encontrada sem ajuda de código-fonte em 1995 por calouros da Universidade de Berkeley na versão 1.1 do navegador Netscape. O software da urna eletrônica, de natureza muito mais crítica que um simples software comercial, possuía um erro conhecido há pelo menos 17 anos.

Em termos mais técnicos, a urna utiliza um gerador de números pseudoaleatórios para produzir a ordem de embaralhamento dos votos. A segurança desse gerador depende de suas características estatísticas e da aleatoriedade e sigilo de sua semente. O software da urna não só utilizou um gerador de baixa qualidade estatística, como também utilizou uma tomada de tempo claramente não-aleatória com resolução de segundos para alimentar o gerador de números pseudoaleatórios.

Além disso, esta tomada de tempo era tornada pública tanto nos logs quanto na impressão da chamada zerésima. A vulnerabilidade encontrada advém, portanto, da utilização de uma técnica criptográfica fora de seus limites de operação.


G1 – Até que ponto você entende que o sigilo do voto foi comprometido?
Diego Aranha - Para violar completamente o sigilo do voto, é preciso se recuperar a lista em ordem dos votos e a lista em ordem dos eleitores.

Após o fim dos testes no TSE, também recebemos a informação de que a urna registra em arquivo de acesso público a hora em que cada voto foi computado. Nossa metodologia é capaz de recuperar a lista em ordem dos votos e, se associada ao horário em que cada voto foi computado, também as escolhas de um eleitor que votou em um determinado horário. Para se fazer a correspondência completa entre as identidades dos eleitores e suas escolhas durante a votação, é preciso apenas que se monitore a ordem de votação dos eleitores ou a hora em que tiveram acesso à urna eletrônica.

Entretanto, eu gosto de ver a questão por outro ângulo: derrotamos o mecanismo de embaralhamento do votos para armazenamento no RDV, única medida tomada pelo software da urna eletrônica para proteger o sigilo dos votos.

G1 – O número do título de eleitor ou outro documento que o identifica é armazenado na urna? Ele poderia ser atrelado ao voto?
A lista de títulos de eleitores habilitados para aquela seção eleitoral é armazenada dentro da urna eletrônica, para controle de comparecimento e para permitir que o mesário libere o acesso à urna apenas com um título de eleitor válido. Existe um período de tempo, após a liberação da urna pelo mesário e até o término da interação entre eleitor e urna eletrônica, em que essas duas informações precisam estar presentes simultaneamente na memória do equipamento.

Recuperar essa correspondência durante esse período de tempo requer acesso ao ambiente interno à urna ou inserção de um programa malicioso que faça o registro permanente da informação. Durante os testes, estávamos concentrados em metodologias de ataque não-invasivas e que não deixassem nenhum vestígio, por isso optamos por analisar apenas os produtos públicos de uma votação oficial.

G1 – Como você avalia o procedimento de testes elaborado pelo TSE e a avaliação que a comissão fez do teste que vocês realizaram?
Diego Aranha - A iniciativa de organizar os testes é muito louvável, pois permite a fiscalização e avaliação da segurança do sistema por investigadores independentes. Entretanto, o tempo disponibilizado é muito curto para se executar qualquer metodologia sofisticada. Observe que potenciais atacantes podem, a partir de poder econômico ou político, desfrutar de um período de tempo muito maior para tentar organizar uma fraude em pequena ou larga escala.

Enquanto inicialmente o TSE se manifestou de forma extremamente positiva à contribuição que demos ao aperfeiçoamento do sistema, a Comissão Avaliadora do evento, apontada pelo próprio TSE, optou por penalizar significativamente nossa participação. Por exemplo, nossa metodologia foi qualificada como tendo objetivo de causar uma falha ao invés de uma fraude no sigilo ou integridade de uma votação eletrônica. Entretanto, nossa urna eletrônica não apresentou nenhuma falha e funcionou durante seus limites de operação por todo o tempo. Não seguimos nenhum procedimento que não seria realizado em uma votação oficial.

Como resultado, fomos premiados ainda em primeiro lugar, mas com uma pontuação pífia de 0.0313 numa escala que vai de 0 a 400.

G1 – Existe mais alguma questão técnica da urna que merece atenção?
Diego Aranha - Encontramos no software da urna eletrônica uma série de práticas indesejáveis do ponto de vista de segurança. Por exemplo, todas as mídias são cifradas com a mesma chave criptográfica. O vazamento desta chave criptográfica por uma única vez abre simultaneamente todas as mídias de todas as urnas para inspeção e possível manipulação por parte de agentes mal-intencionados. Curiosamente, essa chave criptográfica estava declarada no código-fonte e acessível para qualquer um dos investigadores.

G1 – Existe mais alguma questão técnica da urna que merece atenção?
Diego Aranha - Encontramos no software da urna eletrônica uma série de práticas indesejáveis do ponto de vista de segurança. Por exemplo, todas as mídias são cifradas com a mesma chave criptográfica. O vazamento desta chave criptográfica por uma única vez abre simultaneamente todas as mídias de todas as urnas para inspeção e possível manipulação por parte de agentes mal-intencionados. Curiosamente, essa chave criptográfica estava declarada no código-fonte e acessível para qualquer um dos investigadores.

A integridade de parte do software da urna eletrônica também parecia não estar sendo verificada, por conta da desativação de uma linha crítica do código-fonte. As máquinas dedicadas à exibição do código continham também informações de usuários, senhas e servidores na rede interna responsáveis pelo versionamento do software desenvolvido.

Além disso, também observamos algoritmos obsoletos (não-recomendados desde 2005) ou funcionando fora de sua especificação e com implementações repetidas diversas vezes ao longo do código, o que em muito dificulta uma auditoria do seu funcionamento correto.

Por fim, verificamos também que não existe a utilização frequente de ferramentas de análise de código-fonte, visto que a vulnerabilidade encontrada no embaralhamento do RDV utiliza uma função que produz alertas até nas ferramentas de análise gratuitas e mais primitivas.

Em relação ao processo de desenvolvimento do software, detectamos na interação com o pessoal técnico do TSE uma preocupação exagerada com atacantes externos, quando acreditamos que atacantes internos possuem uma possibilidade muito maior de executar fraudes em larga escala.

A equipe já se colocou à disposição do TSE para ministrar palestra tratando especificamente dos problemas encontrados, mas até agora não houve convite concreto para tal.

G1 – E o processo eleitoral brasileiro como um todo – como você avalia? O que deveria melhorar?
Diego Aranha - Os testes se concentraram na urna eletrônica, mas gostaria de que a mesma metodologia permitisse a investigadores independentes avaliar a segurança de outros componentes do sistema eletrônico de votação, como o totalizador centralizado dos Boletins de Urna. Ataques a outros componentes do sistema podem não só atrasar significativamente a apuração e divulgação dos resultados como fragilizar a confiabilidade e reputação da autoridade eleitoral.

Em termos mais gerais, o maior problema do sistema de votação eletrônica no Brasil é a carência de qualquer forma que permita ao eleitor verificar que seu voto foi computado corretamente. No modelo de urna eletrônica atualmente adotado no Brasil, a integridade do resultado das eleições depende unicamente da integridade do software de votação que é executado dentro da urna. Já foi mostrado que esse software é como qualquer outro, passível de vulnerabilidades.

Portanto, é imprescindível que seja introduzido algum mecanismo para verificação independente da integridade dos resultados. A proposta do voto impresso, ou voto verificável pelo eleitor, consiste exatamente em produzir uma versão materializada do voto em algum veículo que permita contagem posterior sem permitir simultaneamente que o eleitor possa comprovar sua escolha para uma terceira parte interessada.

A contagem dos votos impressos pode ser feita por amostragem apenas, sem impacto significativo na velocidade totalização dos resultados eletrônicos. Esta é forma mais simples e compatível com o sistema atual para se permitir a verificação da integridade do resultado, independente da integridade software, para que assim a urna brasileira satisfaça a requisitos mínimos e plausíveis de segurança.

Outro lado
O TSE foi consultado pelo G1 sobre as principais observações feitas pelo Prof. Dr. Diego Aranha e se defende das alegações. Veja a íntegra do posicionamento do TSE.

G1 – As mídias eletrônicas onde são gravados todos os votos das urnas eletrônicas é cifrada pela mesma chave. Isso é verdade?
TSE – A utilização de criptografia é apenas uma de inúmeras barreiras de segurança.

A afirmação de chave única, se vista isoladamente, não procede. A cada eleição, o TSE gera e cifra uma única desse sistema de arquivos que é gravada nas mais de 400 mil urnas eletrônicas. Por critério de segurança, esta mídia é cifrada por uma única chave, com o objetivo de evitar ataques criptoanalíticos baseados em estimadores estatísticos. Portanto, qualquer outro procedimento, como o de utilizar-se de várias chaves para cifrar o mesmo conteúdo com o objetivo de prover sigilo, torna por si só o resultado fragilizado. Por esse motivo, a cada eleição, o TSE gera uma chave que é utilizada para manter sigilo da mídia que é gravada em cada Urna.

G1 – O professor Diego Aranha diz que gostaria que houvesse testes também no sistema que totaliza os votos dos boletins de urna. O TSE pretende realizar algo nessa linha?
TSE – Ao final de cada votação, ainda na seção eleitoral, a urna imprime em até 20 vias o resultado da votação naquela seção. Esse relatório chama-se Boletim de Urna (BU) e algumas dessas vias podem ser entregues aos fiscais dos partidos. Nesse momento, o resultado da urna se torna público.

Desta forma, torna-se simples a verificação da integridade da totalização das eleições. Isso porque os fiscais de partido podem comparar essas cópias impressas dos Boletins de Urna de cada seção eleitoral com o resultado recebido, totalizado e publicado pela Justiça Eleitoral (disponível na Internet). Assim, a simples comparação do resultado recebido pelo fiscal e o processado na JE é suficiente para qualquer interessado criar sua própria totalização e verificar individualmente o resultado de cada urna eletrônica.


G1 – Ainda segundo o professor, o TSE coloca uma preocupação muito grande na atuação de agentes externos ao processo. Quais as medidas que o TSE tem tomado para evitar a ação de agentes internos (colaboradores e funcionários do próprio TSE)? Quem tem acesso à chave usada para cifrar as mídias (pergunta 1)?
TSE – A segurança do sistema eletrônico de votação não depende somente de pessoas, ela permeia todo o processo, desde o TSE até os tribunais regionais e cartórios eleitorais, e se baseia na utilização em conjunto e em vários momentos de técnicas de criptografia, assinatura digital e segregação de funções. É inviável que agentes internos realizem fraudes sem o registro de rastros para a auditoria.

G1 – O professor disse também que uma linha importante do código fonte estava desativada durante a análise permitida aos investigadores. Essa linha, segundo ele, era responsável por verificar a integridade/autenticidade do software. O TSE sabia que essa linha estava desativada?
TSE – O TSE não pode emitir opinião por desconhecimento do conteúdo da alegação, uma vez que não está presente no relatório do professor sobre o teste.

G1 – O professor Diego defendeu a introdução de um mecanismo de impressão do voto por amostragem, como proposto em lei. Essa legislação está atualmente suspensa por decisão do STF, se não me engano. O TSE tem alguma posição sobre a impressão do voto conferível pelo eleitor?
TSE – Na mesma audiência pública citada anteriormente, o Prof. Walter Carnielli (matemático e filósofo, CLE e IFCH-UNICAMP) fez uma apresentação intitulada “Sistema de votação, falsa segurança e a qualidade da democracia”.

Nesta apresentação, o Prof. Carnielli demonstrou que existe um balanço delicado entre privacidade (sigilo) e verificabilidade (verificação do voto eletrônico com outro meio duplicado, no caso o voto impresso) nas votações eletrônicas.

Segundo ele, as urnas do tipo das utilizadas atualmente nas eleições brasileiras (tipo DRE ou Direct-Recording Electronic) seriam passíveis de perfeita privacidade, embora com menor verificabilidade. Carnielli afirma que é matematicamente impossível atingir privacidade e verificabilidade absoluta e que, portanto, não há sentido na crítica de que “pesa a mão” apenas na verificabilidade (falta do voto impresso).

A pretensa solução defendida na legislação suspensa pelo STF, oferecia apenas uma falsa (e cara) sensação de segurança, como mostrou Carnielli. Não há qualquer critério sobre como seriam escolhidas as urnas da amostragem de cada Zona Eleitoral, nem se leva em conta a distribuição das urnas no país. Sem um estudo amostral de aleatoricidade, o voto impresso dará uma segurança ilusória de credibilidade a um custo extremamente alto.

Um equívoco muitas vezes repetido é a afirmação de que a “urna eletrônica brasileira é de segunda geração”, comparando-a com as urnas argentinas e peruanas que seriam de “terceira geração”. A própria noção de ‘geração’ tem origens comerciais, nas empresas que vendem ao Peru e à Argentina suas urnas, e não tem nenhum fundamento mais profundo.

Querer enfatizar um dado comercial ou o fato de se ter descoberto, num teste público, uma fraqueza técnica que pode ser consertada e a partir daí defender medidas sem a devida cautela é ameaçar a democracia.

Glossário
Agentes internos: colaboradores, funcionários e pessoas ligadas à própria empresa ou instituição; se diferenciam dos agentes externos, que são pessoas de fora.
Algoritmo – Sequência lógica e matemática executada por um software para realizar um determinado cálculo, processamento ou decisão automatizada.
Chave criptográfica - Como uma chave comum é capaz de abrir uma porta, a chave criptográfica é o “segredo” que um computador precisa conhecer para acessar (decifrar) dados cifrados.
Cifrar – Procedimento de segurança que torna uma informação ilegível para pessoas que não tenham a chave de acesso (chave criptográfica).
Integridade de software: Um programa de computador, como o que opera a urna eletrônica, pode sofrer alterações não autorizadas. Checagens de integridade garantem que o software em uso é idêntico ao que foi desenvolvido e autorizado para distribuição.
Log: Arquivo que registra eventos, incidentes e outras informações técnicas sobre um sistema ou software. Costuma trazer a hora e a data de quando algo aconteceu. O “histórico” do navegador de internet, que registra as páginas visitadas, é um tipo de log.
Semente: Computadores não podem “gerar um número qualquer”. Quando isso é necessário, usa-se um “gerador de números pseudoaleatório”, que retorna uma sequencia programada e previsível (não aleatória) de números. No entanto, quando um valor especial é fornecido para servir de base aos cálculos do gerador, os números serão diferentes, criando uma variação imprevisível sem o conhecimento do valor. Esse valor especial é chamado de “semente”.
Versionamento - Controle de alterações (versões) de um documento ou código fonte de um software para facilitar o trabalho em equipe. Em ambientes de desenvolvimento, programadores acessam o software de versionamento para baixar códigos, efetivar alterações e tomar conhecimento de modificações realizadas por outros colaboradores.
Zerésima: Relatório emitido pela urna para provar que ela está zerada antes da votação

Altieres Rohr: G1

Nenhum comentário:

Postar um comentário