;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Saiba por que urna eletrônica é segura e alegações de Bolsonaro são falsas

Beatriz Montesanti

Colaboração para o UOL, em São Paulo

30/08/2021 04h00

As declarações do presidente Jair Bolsonaro (sem partido) que colocam sob suspeita o processo eleitoral brasileiro são falsas e os resultados de todas as eleições realizadas desde sua implementação são confiáveis, afirmam especialistas em segurança digital ouvidos pelo UOL.

Segundo eles, nenhum sistema é 100% seguro. No entanto, na prática, é extremamente improvável aplicar uma fraude em larga escala na votação com urnas eletrônicas, já que isso implicaria a violação de inúmeras máquinas espalhadas pelo país. Mesmo assim, o TSE (Tribunal Superior Eleitoral) leva em conta, em seus testes de segurança, situações que são de complexa execução.

"A urna é segura para a maior parte dos possíveis atores que atacariam uma eleição", diz Lucas Lago, especialista em privacidade e segurança digital e pesquisador do CEST-USP (Centro de Estudos Sociedade e Tecnologia da Universidade de São Paulo). "Um candidato ou um hacker de WhatsApp fazer um ataque específico e manipular a eleição é muito difícil, são atores pequenos e contra os quais a segurança da urna é mais que suficiente."

Para Álvaro Coelho, professor do departamento de ciências exatas e tecnológicas da Universidade Estadual de Santa Cruz, em Ilhéus (BA), a urna eletrônica "é mais segura do que qualquer alternativa que se coloca para substituí-la". Segundo Coelho, o voto impresso — defendido por Bolsonaro e rejeitado na Câmara — adicionaria novos riscos à eleição, como pôr em risco o sigilo do voto.

As repetidas tentativas do presidente de deslegitimar o processo eleitoral brasileiro têm contrariado inclusive especialistas em segurança digital que defendem o voto impresso, para quem a medida tornaria a contagem de votos mais transparente, considerando possíveis vulnerabilidades do processo.

É o caso, por exemplo, de Diego Aranha, professor de segurança de sistemas no Departamento de Ciência da Computação da Universidade de Aarhus, na Dinamarca. Aranha levantou a pauta do voto impresso ainda em 2012, quando participou dos testes de segurança organizados pelo TSE. Ele reconhece que os ataques seriam improváveis e exigiriam uma combinação de fatores bastante específica para acontecer.

"Não faz sentido, primeiro, sugerir um mecanismo com discurso de fraude, porque isso contamina a origem do debate. E, em segundo lugar, sugerir o voto impresso como maneira de coibir fraudes na transmissão e na totalização, onde já existe um procedimento de auditoria que funciona no mesmo princípio", disse em entrevista à BBC News Brasil.

Presidente nunca apresentou provas de fraude

Apesar de acusações de fraude fazerem parte do discurso de Bolsonaro há anos, ele nunca apresentou provas de que elas tenham acontecido. Supostos indícios citados pelo presidente já foram desmentidos pela imprensa, pelo TSE e pela PF (Polícia Federal).

Uma alegação recorrente de Bolsonaro é a de que pessoas que tentaram votar em um candidato e tiveram seu voto anulado ou transferido para outro. Casos pontuais mostraram-se falsos e o UOL já mostrou que é praticamente impossível fazer esse tipo de fraude em larga escala. Em um vídeo que viralizou na eleição de 2018, por exemplo, um eleitor estava na verdade errando a ordem de votação e colocando os números de Bolsonaro, então candidato a presidente, no campo de governador.

Já vídeos mostrados pelo presidente em que o nome de Haddad aparece quando se digita o número de Bolsonaro são montagens, conforme publicado pelo UOL ainda em 2018.

Em outra tentativa de deslegitimar o processo eleitoral brasileiro, o presidente divulgou um inquérito sigiloso sobre uma invasão hacker no sistema do TSE em 2018. O documento, no entanto, não conclui que houve adulteração do código-fonte do software da urna ou fraude no sistema eleitoral.

A segurança do sistema

Segundo a Justiça Eleitoral, existem mais de 30 camadas de segurança nas urnas eletrônicas. Elas não têm conexão com a internet, bluetooth ou qualquer outra rede aberta.

"Existem, primeiro, as proteções físicas, que permanecem do tempo anterior à urna eletrônica, como proteção policial para o transporte, vigilância das Forças Armadas e fiscalização dos partidos. Além disso, existe uma série de proteções da parte de software, que são colocadas pela própria arquitetura da urna", explica o professor Álvaro Coelho.

O software da urna é criptografado e apresentado a partidos, imprensa e autoridades. Um mês antes da eleição, sua versão final é assinada digitalmente e as urnas são lacradas fisicamente em uma cerimônia pública, com a participação de entidades da sociedade civil. Essa é uma espécie de DNA da urna, que permite identificar possíveis alterações posteriores no código. Além disso, há um sistema que guarda o histórico de modificações.

Antes de a votação começar, o mesário imprime a zerésima, comprovante de que não há votos computados no equipamento. Durante o pleito, o software também tem sua autenticidade verificada por partidos, OAB (Ordem dos Advogados do Brasil) e Ministério Público, por meio de um processo que comprova que o programa na urna é, de fato, o mesmo assinado digitalmente na cerimônia, e segue íntegro.

Os votos de cada eleitor são gravados em um arquivo chamado Registro Digital do Voto (RDV), que tem estrutura similar a uma tabela. O RDV grava os votos como foram digitados pelo eleitor e os posiciona de forma aleatória no arquivo, embaralhando a ordem. Isso acontece mesmo quando o eleitor vota em mais de um cargo. Assim, não é possível associar uns votos aos outros e nem à sequência em que os eleitores apareceram nos locais de votação, preservando o sigilo do voto.

É a partir do RDV que são gerados os boletins de urna, um documento impresso em cinco vias pela própria urna eletrônica após a votação em cada seção eleitoral e assinado por fiscais e mesários. Uma via desses boletins é fixada na porta da seção, de forma que qualquer pessoa pode vê-la, e outra é entregue a fiscais de partidos presentes. As outras três vão para o cartório eleitoral. Partidos políticos podem pedir cópias dos arquivos de RDV e fazer a soma dos resultados para comparar com os apresentados pelo TSE.

O resultado de cada urna é então salvo em uma mídia criptografada e enviado para o TSE via satélite, utilizando uma VPN (rede privada virtual). Para Coelho, essa é a etapa mais frágil do processo. No entanto, ainda assim, possíveis modificações nos resultados poderiam ser identificadas comparando-se a contagem final com o boletim de urna.

"O advento do boletim de urna em papel ajuda bastante no processo. Dali até os votos chegarem ao TSE, há um resguardo muito grande de que se algo for adulterado no caminho, poderá ser identificado por esse mecanismo", diz Mário Gazziro, professor de engenharia da informação na UFABC e de computação forense na USP.

Mais recentemente, o TSE adicionou um código de barras que permite aos eleitores verificarem se o boletim de sua seção bate com o resultado da contagem.

Um ano antes das eleições, são realizados os Testes Públicos de Segurança do Sistema Eletrônico de Votação, um evento no qual a Justiça Eleitoral torna o hardware e o software utilizados na urna eletrônica, assim como outros sistemas eleitorais, disponíveis para verificação e teste pela sociedade brasileira. Eventuais falhas do sistema apontadas neste evento são corrigidas ou mitigadas antes do pleito.

Questionado sobre a segurança das urnas, o TSE respondeu que a votação eletrônica tem "cumprido o objetivo de garantir a integridade e a segurança do processo eleitoral." Também disse que "a implantação da urna eletrônica no Brasil, com seus diversos mecanismos de segurança, permitiu a eliminação de vários tipos de fraudes e de erros humanos existentes no antigo processo eleitoral, tais como a duplicidade de votos e a troca de cédulas eleitorais durante a contagem."