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