You are on page 1of 46

Vulnerabilidades no software da

urna eletronica brasileira


Diego F. Aranha, dfaranha@unb.br
Marcelo Monte Karam, karam@unb.br
Andre de Miranda, andremrnd@unb.br
Felipe Brant Scarel, fbscarel@unb.br
Departamento de Ci
encia da Computac
ao, Centro de Inform
atica
Universidade de Braslia

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

1/28

Cronologia
1 Fase de preparac
ao (6 a 8 de Marco de 2012):
- Palestra de abertura;
- Acesso ao c
odigo-fonte;
- Solicitacao de esclarecimentos tecnicos;
- Formulacao de hip
oteses e preparacao dos planos de teste.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

2/28

Cronologia
1 Fase de preparac
ao (6 a 8 de Marco de 2012):
- Palestra de abertura;
- Acesso ao c
odigo-fonte;
- Solicitacao de esclarecimentos tecnicos;
- Formulacao de hip
oteses e preparacao dos planos de teste.
2 Fase de testes (20 a 22 de Marco de 2012):
- Validacao das hip
oteses;
- Execucao dos planos de teste;
- Redacao conjunta com TSE dos relat
orios [1, 2] finais das equipes.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

2/28

Cronologia
1 Fase de preparac
ao (6 a 8 de Marco de 2012):
- Palestra de abertura;
- Acesso ao c
odigo-fonte;
- Solicitacao de esclarecimentos tecnicos;
- Formulacao de hip
oteses e preparacao dos planos de teste.
2 Fase de testes (20 a 22 de Marco de 2012):
- Validacao das hip
oteses;
- Execucao dos planos de teste;
- Redacao conjunta com TSE dos relat
orios [1, 2] finais das equipes.
3 Audi
encia p
ublica (29 de Marco de 2012):
- Divulgacao dos resultados;
- Premiacao simb
olica.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

2/28

Cronologia
1 Fase de preparac
ao (6 a 8 de Marco de 2012):
- Palestra de abertura;
- Acesso ao c
odigo-fonte;
- Solicitacao de esclarecimentos tecnicos;
- Formulacao de hip
oteses e preparacao dos planos de teste.
2 Fase de testes (20 a 22 de Marco de 2012):
- Validacao das hip
oteses;
- Execucao dos planos de teste;
- Redacao conjunta com TSE dos relat
orios [1, 2] finais das equipes.
3 Audi
encia p
ublica (29 de Marco de 2012):
- Divulgacao dos resultados;
- Premiacao simb
olica.
4 Publicac
ao dos documentos oficiais (10 de Abril de 2012):
- Planos de teste e relat
orios finais das equipes;
- Apreciacao pela Comissao Avaliadora.
dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

2/28

Objetivos das equipes


Segundo o edital de abertura [3]:
1 Falha
- Violacao da especificacao do sistema;
- Estado inconsistente e imprevisto ocasionado por imperfeicao;
- Sem interferencia na destinacao e/ou anonimato dos votos.
2 Fraude
- Ato intencional que tenha alterado informac
oes e/ou causado danos;
- Interferencia na destinacao e/ou anonimato dos votos;
- Efetuada de forma a nao restarem vertgios perceptveis.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

3/28

Participacao da equipe Palestra de abertura


Algoritmo
1 Carga das urnas;
2 Impress
ao da zeresima;
3 Abertura da votac
ao;
4 Votac
ao propriamente dita;
5 Encerramento da votac
ao;
6 Escrita da Mdia de Resultados;
7 Transmiss
ao de produtos p
ublicos autenticados (LOG, BU, RDV)

para a totalizacao.
Importante: Os testes tiveram enfoque apenas na urna eletronica!

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

4/28

Participacao da equipe Palestra de abertura


Fomos apresentados ao Registro Digital do Voto (RDV):
- Arquivo p
ublico substituto do voto impresso;
- Armazena os votos propriamente ditos fora de ordem.
Governador

Senador

Presidente

31
13
BRANCO

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

5/28

Participacao da equipe Palestra de abertura


Fomos apresentados ao Registro Digital do Voto (RDV):
- Arquivo p
ublico substituto do voto impresso;
- Armazena os votos propriamente ditos fora de ordem.
Governador

Senador

71

31

Presidente

13
NULO
BRANCO

37
dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

5/28

Participacao da equipe Fase de preparacao


Fomos apresentados ao Registro Digital do Voto (RDV):
- Arquivo p
ublico substituto do voto impresso;
- Armazena os votos propriamente ditos fora de ordem.
Governador

Senador

Presidente

71

31

37

BRANCO

13
71

NULO
BRANCO

37
dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

6/28

Participacao da equipe Fase de preparacao


Fomos apresentados ao Registro Digital do Voto (RDV):
- Arquivo p
ublico substituto do voto impresso;
- Armazena os votos propriamente ditos fora de ordem.
Governador

Senador

Presidente

71

31

37

BRANCO

13
71

NULO
BRANCO

37
dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

6/28

Participacao da equipe Fase de preparacao


Hip
otese: O RDV nao foi projetado e implementado de forma segura.
possvel simular a ordem de armazenamento fora da urna?
- E
possvel recuperar os votos em ordem?
- E
- Que informacoes sao necessarias para a recuperacao?

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

7/28

Participacao da equipe Fase de preparacao


Hip
otese: O RDV nao foi projetado e implementado de forma segura.
possvel simular a ordem de armazenamento fora da urna?
- E
possvel recuperar os votos em ordem?
- E
- Que informacoes sao necessarias para a recuperacao?

Gerador de numeros pseudo-aleatorios (Wikipedia)


um algoritmo que produz uma seq
E
uencia de n
umeros aproximadamente
aleatorios. A seq
uencia nao e verdadeiramente aleat
oria, pois pode ser
determinada a partir de um pequeno conjunto de parametros iniciais,
entre eles uma semente que deve ser verdadeiramente aleat
oria.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

7/28

Participacao da equipe Fase de preparacao


Hip
otese: O RDV nao foi projetado e implementado de forma segura.
possvel simular a ordem de armazenamento fora da urna?
- E
possvel recuperar os votos em ordem?
- E
- Que informacoes sao necessarias para a recuperacao?

Gerador de numeros pseudo-aleatorios (Wikipedia)


um algoritmo que produz uma seq
E
uencia de n
umeros aproximadamente
aleatorios. A seq
uencia nao e verdadeiramente aleat
oria, pois pode ser
determinada a partir de um pequeno conjunto de parametros iniciais,
entre eles uma semente que deve ser verdadeiramente aleat
oria.

Validacao: 1 hora de analise do c


odigo-fonte fortaleceu a hipotese.
dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

7/28

Participacao da equipe Fase de testes


Preliminar: Confeccao de programa de analise.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

8/28

Participacao da equipe Fase de testes


Preliminar: Confeccao de programa de analise.

Metodo
1 TSE produz uma lista secreta de votos;
2 Pessoal de apoio e parte A da equipe inserem os votos na urna;
3 Parte B da equipe examina produtos p
ublicos da votacao;
4 Parte B da equipe executa programa de an
alise que recupera lista de

votos em ordem;
5 Equipe e pessoal de apoio efetuam comparac
ao das duas listas.

Importante: Nao havia comunicacao entre partes A e B durante o metodo.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

8/28

Participacao da equipe Fase de testes


Preliminar: Confeccao de programa de analise.

Metodo
1 TSE produz uma lista secreta de votos;
2 Pessoal de apoio e parte A da equipe inserem os votos na urna;
3 Parte B da equipe examina produtos p
ublicos da votacao;
4 Parte B da equipe executa programa de an
alise que recupera lista de

votos em ordem;
5 Equipe e pessoal de apoio efetuam comparac
ao das duas listas.

Importante: Nao havia comunicacao entre partes A e B durante o metodo.


Criterio: Correspondencia entre votos recuperados e lista secreta.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

8/28

Participacao da equipe Fase de testes


Preliminar: Confeccao de programa de analise.

Metodo
1 TSE produz uma lista secreta de votos;
2 Pessoal de apoio e parte A da equipe inserem os votos na urna;
3 Parte B da equipe examina produtos p
ublicos da votacao;
4 Parte B da equipe executa programa de an
alise que recupera lista de

votos em ordem;
5 Equipe e pessoal de apoio efetuam comparac
ao das duas listas.

Importante: Nao havia comunicacao entre partes A e B durante o metodo.


Criterio: Correspondencia entre votos recuperados e lista secreta.
Validacao: Sucesso absoluto em votac
oes com 10, 16, 21 e 475 eleitores.
dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

8/28

Participacao da equipe Vulnerabilidades


1 Gerador de n
umeros pseudo-aleat
orios fraco:
- Apresenta vies estatstico;
- Nao satisfaz requisitos criptograficos.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

9/28

Participacao da equipe Vulnerabilidades


1 Gerador de n
umeros pseudo-aleat
orios fraco:
- Apresenta vies estatstico;
- Nao satisfaz requisitos criptograficos.
2 Escolha de semente n
ao verdadeiramente aleat
oria:
- Apenas uma tomada de tempo com precisao de segundos;
- Viola o modo de operacao do gerador;
- Reduz significativamente o espaco de busca exaustiva da semente.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

9/28

Participacao da equipe Vulnerabilidades


1 Gerador de n
umeros pseudo-aleat
orios fraco:
- Apresenta vies estatstico;
- Nao satisfaz requisitos criptograficos.
2 Escolha de semente n
ao verdadeiramente aleat
oria:
- Apenas uma tomada de tempo com precisao de segundos;
- Viola o modo de operacao do gerador;
- Reduz significativamente o espaco de busca exaustiva da semente.
3 Semente tornada p
ublica:
- Armazenamento nos produtos p
ublicos da eleicao;
- Elimina a necessidade de qualquer busca exaustiva.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

9/28

Participacao da equipe Vulnerabilidades


Semente aleat
oria e secreta:

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

10/28

Participacao da equipe Ataques

1 Ataque direto:
- A partir da semente p
ublica, recuperar votos em ordem do RDV.
2 Ataque indireto:
- Fazer busca exaustiva da semente e comparar buracos do RDV.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

11/28

Participacao da equipe Ataques

1 Ataque direto:
- A partir da semente p
ublica, recuperar votos em ordem do RDV.
2 Ataque indireto:
- Fazer busca exaustiva da semente e comparar buracos do RDV.

Caractersticas dos ataques:


- Eficientes (exatos e determinsticos);
- Elegantes (nada foi alterado ou teve permetro fsico invadido);
- Essencialmente nao-rastreaveis (apenas leitura de arquivos p
ublicos).

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

11/28

Participacao da equipe Resultados e Correcoes


Resultados
possvel recuperar votos em ordem a partir da semente p
1 E
ublica;
possvel recuperar a semente a partir dos votos fora de ordem;
2 E
3 Derrotado o u
nico mecanismo da urna para proteger sigilo do voto.

Posterior: A partir do LOG, e possvel associar voto `a hora de votacao [4].

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

12/28

Participacao da equipe Resultados e Correcoes


Resultados
possvel recuperar votos em ordem a partir da semente p
1 E
ublica;
possvel recuperar a semente a partir dos votos fora de ordem;
2 E
3 Derrotado o u
nico mecanismo da urna para proteger sigilo do voto.

Posterior: A partir do LOG, e possvel associar voto `a hora de votacao [4].

Correcoes
1 Gerador de n
umeros verdadeiramente aleat
orios em hardware (urna

tem dois!);
2 Gerador nativo do GNU/Linux (/dev/random) com qualidade

criptografica (viavel na pratica?);


3 Gerador nativo do GNU/Linux (/dev/urandom) sem qualidade

criptografica, mas superior (ainda seguro?).


dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

12/28

Indo alem Consequencias


Modelo de atacante
Capaz de comprar votos, exercer pressao poltica e monitorar eleitores.
Tres modalidades de voto de cabresto digital:
1 Eleitores coagidos votam logo na abertura da sec
ao;
2 Primeiro eleitor coagido usa um marcador de bloco;
3 Eleitores coagidos votam em horas ou posic
oes pre-determinadas.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

13/28

Indo alem Consequencias


Modelo de atacante
Capaz de comprar votos, exercer pressao poltica e monitorar eleitores.
Tres modalidades de voto de cabresto digital:
1 Eleitores coagidos votam logo na abertura da sec
ao;
2 Primeiro eleitor coagido usa um marcador de bloco;
3 Eleitores coagidos votam em horas ou posic
oes pre-determinadas.

Uma modalidade de quebra de sigilo direcionada:


- De posse de local e horario de votacao, recupera-se um voto
especfico.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

13/28

Participacao da equipe Apreciacao

Durante fases finais do evento:


- Contribuicao extremamente positiva;
- Aprendemos muito com os testes apresentados;
- Com certeza consultaremos a academia de novo nos proximos dois anos.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

14/28

Participacao da equipe Apreciacao

Durante fases finais do evento:


- Contribuicao extremamente positiva;
- Aprendemos muito com os testes apresentados;
- Com certeza consultaremos a academia de novo nos proximos dois anos.
Relatorio irrecorrvel da Comissao Avaliadora [5]:
- Trata-se de uma falha e nao de uma fraude;
- Necessidade de acesso fsico `a urna, mdia, lacre e codigo-fonte;
- Pontuacao de 0.0313 em um maximo de 400 pontos.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

14/28

Outros problemas
Praticas nao-recomendaveis:
- Mdias de todas as urnas protegidas pela mesma chave criptografica;
- Chaves criptograficas declaradas no c
odigo-fonte;
- Cifras de bloco utilizadas fora dos limites de operacao;
- Utilizacao de algoritmos obsoletos (funcao de resumo SHA-1);
- Implementacoes repetidas de primitivas criptograficas;
- Informacao sobre servidores, usuarios e senhas;
- Ausencia de ferramentas de analise de c
odigo;

Flawfinder
This function is not sufficiently random for security-related functions
such as key and nonce creation. Use a more secure technique for
acquiring random values.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

15/28

Outros problemas

Falta de transparencia:
- Auditoria interna nao foi capaz de prevenir vulnerabilidades;
- Integridade do software depende de auditoria externa limitada;
- Correcao divulgada nao detalha a solucao adotada;
- Auto-verificacao de software tem limitac
oes intrnsecas;
- Verificac
ao de parte do software estava desativada;
- Impossibilidade de verificacao independente dos resultados;
- Nao previne ataques internos sorrateiros.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

16/28

Outros problemas

Leitura do processo de desenvolvimento:


- Ha preocupacao demasiada com ofuscacao ao inves de seguranca;

- Enfase
em atacantes externos e nao internos;
- Reproduz uma vulnerabilidade conhecida ha pelo menos 17 anos;
- Falta de treinamento formal e ignorancia da literatura;
- Falsa sensacao de seguranca.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

17/28

Posicoes oficiais do TSE


A respeito da cifracao das mdias
Por criterio de seguranca, esta mdia e cifrada por uma u
nica chave,
com o objetivo de evitar ataques criptoanalticos baseados em
estimadores estatsticos. Portanto, qualquer outro procedimento, como o
de utilizar-se de varias chaves para cifrar o mesmo conte
udo com o
objetivo de prover sigilo, torna por si s
o o resultado fragilizado.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

18/28

Posicoes oficiais do TSE


A respeito da cifracao das mdias
Por criterio de seguranca, esta mdia e cifrada por uma u
nica chave,
com o objetivo de evitar ataques criptoanalticos baseados em
estimadores estatsticos. Portanto, qualquer outro procedimento, como o
de utilizar-se de varias chaves para cifrar o mesmo conte
udo com o
objetivo de prover sigilo, torna por si s
o o resultado fragilizado.

A respeito da enfase em atacantes externos


A seguranca do sistema eletr
onico de votacao nao depende somente de
pessoas, ela permeia todo o processo, desde o TSE ate os tribunais
regionais e cartorios eleitorais, e se baseia na utilizacao em conjunto e em
varios momentos de tecnicas de criptografia, assinatura digital e
inviavel que agentes internos realizem fraudes
segregacao de funcoes. E
sem o registro de rastros para a auditoria.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

18/28

Posicoes oficiais do TSE


Apreciacao tecnica:
- Ataques dessa natureza sao de interesse exclusivamente academico;
- Vazamento da chave compartilhada tem impacto devastador;
- Modo de operacao randomiza texto claro (se usado corretamente);
- Argumento apenas reforca enfase em atacantes externos.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

19/28

Posicoes oficiais do TSE


Apreciacao tecnica:
- Ataques dessa natureza sao de interesse exclusivamente academico;
- Vazamento da chave compartilhada tem impacto devastador;
- Modo de operacao randomiza texto claro (se usado corretamente);
- Argumento apenas reforca enfase em atacantes externos.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

19/28

Posicoes oficiais do TSE

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

20/28

E agora, o que fazer?

Proposta do voto verificavel pelo eleitor:


- Impressao automatica do voto sem contato com o eleitor;
- Deposito do voto impresso e autenticado em urna convencional;
- Apuracao por amostragem dos votos computados eletronicamente;
- Integridade dos resultados independe de integridade do software;
- Distribuicao da verificacao dos resultados para todos os eleitores;
- Baixo impacto na velocidade da totalizacao dos votos.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

21/28

Posicoes oficiais do TSE


A respeito do voto impresso
Segundo ele [Prof. Walter Carnielli (UNICAMP)], as urnas do tipo das
utilizadas atualmente nas eleic
oes brasileiras (tipo DRE ou
Direct-Recording Electronic) seriam passveis de perfeita privacidade,
embora com menor verificabilidade. Carnielli afirma que e
matematicamente impossvel atingir privacidade e verificabilidade
absoluta e que, portanto, nao ha sentido na crtica de que pesa a mao
apenas na verificabilidade (falta do voto impresso).
...
Querer enfatizar um dado comercial ou o fato de se ter descoberto, num
teste p
ublico, uma fraqueza tecnica que pode ser consertada e a partir
da defender medidas sem a devida cautela e ameacar a democracia.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

22/28

Posicoes oficiais do TSE

Apreciacao tecnica:
- Argumento comete falacia da solucao perfeita;
- Que situacao e desejavel para o eleitor?
1 Atualmente, 100% de privacidade e 0% de verificac
ao;
2 Hipoteticamente, 95% de privacidade e 95% de verificac
ao.

- Menor pressao sobre o software barateia desenvolvimento;


- Dificuldades operacionais nao sao obstaculo concreto;
- Voto impresso e tendencia mundial e nao apelo comercial;
- Confianca em software ja demonstrado vulneravel?

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

23/28

Como software livre pode ajudar?

Desenvolvimento livre do software de votacao:


- Modelo adotado na Est
onia (servidor) e Australia;
- Pressao sobre decisoes de projeto;
- Auditoria independente de mecanismos de seguranca;
- Ausencia de garantia que software e legtimo.
- Desejavel, mas insuficiente.
Importante: Atestacao de software requer intervencao ativa.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

24/28

Como software livre pode ajudar?

Totalizacao paralela de resultados de votacao via crowdsourcing:

Algoritmo
1 Eleitores e fiscais capturam Boletins de Urna impressos;
2 Eleitores e fiscais enviam BUs para plataforma de totalizac
ao;
3 Plataforma realiza totalizac
ao paralela e divulga resultados;
4 Interessados verificam diverg
encias entre resultados;
5 Verificac
ao implcita de integridade dos BUs eletronicos.

Importante: Plataforma livre permite m


ultiplos totalizadores.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

25/28

Conclusoes

1 Princpios de Kerckhoffs (1883): Mecanismos de seguranca precisam

resistir aos ataques de um inimigo que os conhece em seus mnimos


detalhes.
2 M
axima de Shannon: O inimigo conhece o sistema.
3 John von Neumann (1951): Qualquer um que considere m
etodos

aritmeticos para produzir dgitos aleat


orios esta claramente
cometendo um pecado.

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

26/28

Perguntas?
http://sites.google.com/site/dfaranha/projects/

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

27/28

Referencias
[1] http://www.tse.jus.br/hotSites/
testes-publicos-de-seguranca/arquivos/G1PT1.pdf
[2] http://www.tse.jus.br/hotSites/
testes-publicos-de-seguranca/arquivos/G1PT2.pdf
[3] http://www.justicaeleitoral.jus.br/arquivos/
tse-2-edicao-dos-testes-de-seguranca-na-urna-eletronica
[4]
http://www.tse.gov.br/internet/eleicoes/arquivos/logs2008/
EspecificacaoArquivoRegistroLogUrnasEletronicasEleicoes2008.
pdf
[5] http://www.tse.jus.br/hotSites/
testes-publicos-de-seguranca/arquivos/RelatorioFinal.pdf

dfaranha (CIC)

Vulnerabilidades no software da urna eletr


onica brasileira

28/28