O voto no Brasil é mesmo auditável?

Olá Devs!

Venho trazer esse tema polêmico e uma proposta para vocês.

Sou aluno do curso.dev e para colocar em prática os ensinamentos do nosso querido Felipe dos Campos, pensei em criar um projeto open source no qual todos aqui terão a oportunidade de contribuir. E para seguir uma parte dos conhecimentos que aprendi no curso, criei um repositório com uma issue.

Segue um detalhamento do que você vai achar na issue acima. (Percebi que as pessoas não estavam entrando na issue para entender a proposta.)

# Origem da necessidade

Nos últimos anos houve um acirramento político muito grave levando as coisa para as extremidades, e um dos problemas levantados neste acirramento é o questionamento da "confiabilidade" da urna eletrônica usada nas votações.
Me lembro que, até poucos anos atrás, esse não era um tema, pois existia muita confiança nas urnas, logo não se questionava os resultados, porém isso mudou. Hoje existe uma desconfiança tão grande que foi necessário que fossem feitos vídeos como [esse](https://youtu.be/B0uHjMzveHo?si=gn3uwW2kD9M6zScY). 

Para já deixar claro minha posição, eu *confio* nas urnas eletrônicas, mas você que desconfia, fica aqui, não sai ainda não. Você vai ver que poderá ter um papel importante no que faremos. 

# Objetivo 

Com isso, eu pensei em criar uma plataforma na qual vamos poder fazer a auditoria das urnas eletrônicas. 

## Mas como isso funciona? 

A ideia inicial é, nós deixarmos com que os usuários consigam fazer uploads das fotos dos *Boletins de urna*, que são impressos no final das eleições. (Não sabe o que é boletim de urna? Vê o vídeo que indiquei ali em cima). 
A partir dessa informação, nosso sistema deve fazer o seguinte:

- Ler os dados do boletim usando OCR
- Possibilitar que as pessoas possam validar os dados do boletim.
- Possibilitar que uma equipe interna audite os dados dos boletins. 
- Guardar os dados do boletim em um banco de dados
- Fazer a apuração dos dados dos boletins de urna

Isso no primeiro momento, depois que o TSE (Tribunal Superior Eleitoral) começar a disponibilizar os dados de apuração das urnas, ainda podemos fazer

- Comparação individual, urna a urna dos dados coletados pelos boletins e publicados pelo TSE
- Apontamentos de divergências, poderemos apontar erros de contagens de votos, caso existam. 

Com isso, esse sistema pode servir como prova de que as urnas eleitorais são auditáveis e seguras, mas, também pode provar que o sistema é corrupto e que existe sim fraude nas urnas eletrônicas. Tudo dependerá dos resultados das comparações dos dados dos boletins de urna com os do TSE. 

Nessa issue vocês vão poder entender sobre o que é o projeto e se você tem interesse em participar.

Então, entra lá, comenta e vamos juntos fazer esse projeto dar certo!

Algumas informações de como é a auditoria

Devido à um comentário apagado sumiram diversas informações que sei sobre a auditoria aqui, deixarei meu comentário original sem identificar o autor:

como é feita essa auditoria?

Aí você vai ter que pesquisar melhor, são várias etapas e não entendo a complexidade toda. não irei fazer uma pesquisa profunda apenas para responder aqui. Apenas explicar alguns fatos:

os envolvidos dos partidos têm conhecimento técnico suficiente pra entender oq esta sendo feito?

Sim, os partidos podem levar qualquer pessoa para avaliar, tem um grupo limitado de pessoas que pode ter acesso ao código mas pode ter certeza que pelo interesse tem especialistas que entendem o que está sendo feito em cada linha.

porque é fácil eu mostrar que um sistema funciona perfeitamente bem pra uma sala cheia de gente com conhecimento limitado sobre o assunto, na visão deles vai ser algo lindo e sem erros.

E não, não é apenas uma apresentação de slides, são realmente expecialistas em programação com acesso ao código fonte em sua totalidade.

se existe fraude até em código livre, repositórios públicos, pacotes npm com código malicioso injetado,

Você realmente acha que o processo de auditoria é o mesmo? o código do linux teria tempo hábil para ficar MESES em auditoria a cada nova versão? Você realmente acha que uma empresa séria como grandes bancos usariam um pacote npm sem antes garantir que não possui nenhuma vulnerabilidade?

A confiabilidade do código está em quem audita, e a maioria dos codigos sequer auditada é, o dev inclui um monte de lib sem saber realmente como foram feitas.

ingenuidade acreditar na idoneidade de algo que só é acessível de fato pra algumas seletas pessoas internas do órgão público.

E como já falei, não é tão seleto como você imagina, se você mesmo quiser ver o código pode se inscrever como consultor técnico por algum partido.

sobre o código fonte estar exposto pra qualquer um auditar: oq me garante que o código exposto é o mesmo injetado na urna? tem algum processo de auditoria pra isso também?

Sim, tem uma auditoria para garantir que o código é o mesmo, não lembro qual é o processo mas tem sim

Também há algum processo de sessão aberta para auditar urnas aleatóriamente. Em uma certa quantidade de sessões há voluntários que se incervem para um processo que decorre assim:

  • Uma urna é escolhida de forma aleatória, acredito ser um tipo de sorteio auditado na companhia de representantes de partido.
  • Essa urna é colocada em uma sala onde todos os votantes voluntários declaram o voto e votam na urna na frente de todos.
  • é comparado o voto de cada votante com a zerézima.

Por ser escolhidas de forma aleatória essas urnas de voto aberto deveriam ter um mecanismo de segurança para a fraude acontecer apenas nas outras, como o código realmente ia saber se ela foi escolhida após lacrada?

sobre meios melhores de voto: não descarto o meio eletrônico, mas existem tecnologias que permitem uma auditoria contra modificações antes, durante e depois das votações. blockchain é um ótimo exemplo disso, transações sendo feitas de maneira definitiva com total transparência e possibilidade de anonimato sem interferir na inviolabilidade dos dados.

Qual seria a diferença? o que garante que a "blockchain" não seria alterada? como você auditaria o voto anônimo?

A sua solução sofre dos mesmos questionamentos da urna atual porém com algumas tecnologias "hype". não soluciona o problema


Não conheço uma pessoa que pede que o código seja aberto e teria realmente conhecimento para auditar esse código. até porque se realmente tivesse conhecimento poderia se onscrever como consultor técnico de um partido e realmente ter acesso ao código.

Antes de continuar questionando sugiro pesquisar no site do TSE qualquer informação sobre como funciona o processo, entender realmente todas as etapas, verificar se os partidos tão realmente envolvidos e consultar a opinião desses partidos.

Se fosse tão frágil esse processo como está sendo divulgado ultimamente não teríamos uma discussão muito maior em cima da urna? Todas as discussões foram isoladadas ou por pessoas que não entendem como o processo é feito.

E lembre-se, na urna são votados políticos de esquerda, direita, progressistas, conservadores em qualquer percentual desses 4 eixos. Questione quando apenas uma pequena faixa fale algum assunto. Te fazer duvidar também é uma estratégia política.

Disclaimer

Se não ficou claro:

Não estou dizendo que a urna é a prova de falhas e inquestionável

Estou dizendo que ainda não temos uma alternativa melhor, seja digital ou analógica

Parabéns pelo comentário. E vale reforçar que a "maior" vulnerabilidade que o Professor Diego Aranha encontrou foi em relação ao sigilo do voto, nunca houve qualquer falha que pudesse comprometer o próprio voto. E a maior crítica dele foi em relação ao tempo disponível aos especialistas com acesso as urnas, o que é normal, visto que o trabalho dele era descobrir alguma vulnerabilidade. Dá pra dizer sem medo que errar que a maioria dos especialistas que se colocam pra avaliar o código, o que mais querem é achar alguma falha grave, imagina a reputação que isso geraria pra essa pessoa.
Não vou entrar no merito da ideia do projeto, até porque já coordenei esforco parecido em 2014 que levou à implantação dos códigos QR en Boletins de Urna. Devo dizer que não procede a informação que a vulnerabilidade mais grave que descobrimos afetava apenas o sigilo do voto. Nos testes de 2017/18 mostramos como violar integridade do software de votação, como documentado em www.urnaeletronica.info O problema já foi corrigido em meados de 2020, mas fica aqui a observação. -- Diego F. Aranha
Dei todos os tabcoins possíveis para sua resposta. Pra mim, as urnas são seguras o suficiente para tornar uma fraude cara demais para valer a pena. Ainda assim eu gostaria muito de ler seu codigo fonte e entender o seu funcionamento e possíveis brechas. Será que seria possível algo similar a um Diesel Gate? Um codigo que dispara a fraude apenas na data real da votação?
A Sessão aberta que falei é feita exatamente no momento da eleição, roda em uma sala separada justamente para eliminar essa possibilidade.
Cara, vc pode sim ler o código fonte das urnas, é só vc se associar a um partido político e participar do processo de validação das urnas. Nesse processo, que ocorre 1 ano antes de qualquer eleição, o código fonte fica aberto para as pessoas que estiverem ali. E essas pessoas são incentivadas a invadir e quebrar o código. Para que ele fique cada vez mais resiliente. É um processo burocrático, mas é possível.
Perfeito! Esse seu comentário é irreparável! @Pilati nunca passará frio, pois está coberto de razão! O meu ponto não é o de questionar o processo eleitoral, a intenção desse projeto é simples. Quero escancarar para todos os brasileiros que a urna é auditável. Porque, hoje, isso fica dentro dos partidos e muito fechado, quero fazer uma coisa para deixar isso bem a vista e mostrando para todos que a auditoria é possível. ### Mas mesmo assim, terão pessoas que ainda não acreditarão nas urnas e falarão que não são confiáveis. A resposta para isso é simples. Fodas! Com maluco não se conversa. Vai ficar exposto para que todos vejam a auditoria feita, se as pessoas vão acreditar ou não, isso é com a pessoa.
> Te fazer duvidar também é uma estratégia política. Sua análise é excelente, mas gostaria de destacar a última frase, pois ela possui a essência da internet de hoje: o Fear, Uncertanty, and Doubt (FUD). O FUD sempre esteve presente desde os primórdios da rede, sendo utilizado para atacar organizações ou empresas (como Microsoft vs Linux). O que antes era eficaz com um público mais técnico agora funciona de maneira muito mais forte com pessoas menos familiarizados com a tecnologia. Grupos de extrema direita perceberam essa estratégia e a utilizam para influenciar pessoas comuns para temerem questões como o comunismo, maconheiros nas universidades ou ainda criam sentimentos de extremo ódio contra as instituições como o TSE ou o STF.

Eu costumo evitar este assunto por aqui, pois normalmente envolve muita paixão e pouco raciocínio.

Mas não tem como não citar que o código fonte da urna está disponível para inspeção desde outubro do ano passado. Qualquer pessoa ou associação pode ir até o TSE, solicitar e revisar o código.

Até hoje, apenas o União Brasil e a Sociedade de Computação do Brasil se interessaram em revisar o código, e pelo que consta, não encontraram qualquer falha. Nemhum dos partidos, politicos e "especialistas" que alegaram problemas nas eleições de 2022 sequer compareceram para comprovar suas teorias.

Isso é importante, porque logo mais teremos eleições e mais uma vez os perdedores vão alegar que "há algo errado no sistema", para manter suas bolhas fiéis contra o "inimigo".

Enfim, muita paixão e pouca inteligência. Por isso desvio desses assuntos.

Dá uma olhada nesse repo github(https://github.com/lucas-daniel-sm/verificador_boletim_urna) Esse git é de um projetinho que trabalhamos que ja faz boa parte do que precisa não tá finalizado mas já ajuda, se ajudar dê uma estrelinha.

Esquecendo completamente a parte política disso, acho que posso te dar um auxiliar um pouquinho, trabalho como dev na prefeitura da minha cidade, um dia foram fazer eleição do conselho tutelar e o TSE cedeu algumas urnas na mesma semana que ia ser a votação e pediram para fazermos um 'app' pra fazer a leitura dos boletins e dar o resultado da eleição já que o TSE não cedeu o sistema só as urnas que emitiam o boletim.

Não precisa de OCR(inclusive é inviável tem boletim que dá metros) o boletim tem alguns qrcodes com todas as informações nele mesmo, dependendo da quantidade de candidatos eles são divididos em vários QR para caber os dados e cada qr tem identificador da urna e da parte então são únicos, do QR sai uma estrutura propria mas bem simples de entender tem manual pra isso na internet só pesquisar 'manual boletim urna' o proprio TSE que divulga pra incentivar mesmo esse tipo de projeto.

Agora um pouquinho mais da história... Pegamos esse pedido as 15 da tarde as 17 ja tinhamos algo que a gente copiava os dados lidos do QR e transformava em algo legivel e ja ia somando, utilizamos o chat gpt mesmo pra ajudar fazer rápido isso foi na quinta, a eleição ia ser no sabado, depois que eu e o estagiário(um prodigio) conseguimos isso passei pra ele e falamos "Tenta fazer ai um app simples pra processar isso" (ele ja tinha um pouco de experiencia criando apps) ele adorou a ideia e no outro dia chegou com um app pronto com um webservice e esse repo que mandei no inicio ai é dele mesmo.

Excelente @ThalissonM. Vou olhar sim! Se o que falou aqui for verdade, vai tirar um dos grandes problemas que eu estava pensando que poderia ter. Vou estudar sobre esse assunto e ler o manual do boletim da urna para aprofundar esse tema.

Amigo, um especialista em segurança da informação BOLSONARISTA, fez um vídeo defendendo a urna eletrônica alegando sua segurança e sigilo no voto. Dá uma verificada aqui

Acredito que seja uma ideia interessante considerar que a urna eletrônica, devido à avançada tecnologia por trás dela, não seja facilmente passível de fraudes. No entanto, é importante destacar que a questão das fraudes nas eleições não está exclusivamente relacionada às urnas em si, mas sim às seções eleitorais.

Ao afirmar isso, não estou necessariamente descartando a possibilidade de fraudes, mas enfatizando que a abordagem para aprimorar a integridade do processo eleitoral deve incluir medidas específicas nas seções eleitorais. Acredito que uma proposta que facilite a detecção de fraudes em seções específicas poderia contribuir significativamente para garantir a transparência e legitimidade do sistema eleitoral como um todo.

Deixo aqui um video do Peter do canal ANCAPSUL no qual ele acaba tirando algumas duvidas sobre as urnas: https://youtu.be/3nhOn2mqrc4?si=KPZ7dp50AkKAE6GH

Saquei, mas sua sugestão foge ao objetivo do projeto, que é o de auditar as urnas eletrônicas, pode ter problemas nas seções, claro, mas isso não conseguimos abrangir nesse momento, quem sabe, com o desenvolvimento desse projeto, não aparece alguma ideia que podemos desenvolver nesse sentido.
Legal o projeto. Eu confio nas urnas, milhares de políticos foram eleito através dela e "do nada" de um tempo pra cá ela se tornou inconfiável, tudo por causa de desinformação. Enquanto não houver uma prova de qua a urna vazou dados ou teve alguma falha, pra mim são apenas falácias. Mas gostei do projeto, interessante
Concordo contigo, se há um erro é humano e não maquinário. Em pensar que, haveria muitas fraudes e manipulações se as votações fossem impressas.

Na posição de desenvolvedores é bem dificil dizer que existe algo que pode ser burlado ou não e entender 100% do processo, mesmo com todos os processos conhecidos pode ser desafiador. Pode ser melhor, claro que pode. Infelizmente tem as questões políticas que podem se tornar mais relevantes que as questões técnicas. Nos resta ficar com as questões técnicas e propor alternativas. E não faltam desafios, ainda mais em um país em que a internet não chega para todos, os meios de deslocamento são no mínimo bizarros entre tantas as direções a serem abordadas. Enfim, será que o que temos é a respota menos "ruim" diante de todos os nossos cenários? Pra pensar e muito.

Essa sua ideia é muito interessante, eu realmente acho que você deveria levar isso adiante. Porém, se a sua ideia for realmente abraçada(coisa que deveria) e houver algum erro interno e isso prejudicar a validação dos votos corretamente, as pessoas que já eram muito amorosas por partidos politicos, terão ainda mais motivos para desacreditar da confiança das urnas e até cometer atos indevidos. O processo de desenvolvimento terá de ser seguro e possivelmente sofrer auditorias também.

Tô ligado! O nível da responsa é absurdo! Por isso que quero compartilhar ela com vcs! Por isso vai ser um projeto opensource, que todos poderão adicionar pull requests. Claro que, esse pull requests são bem auditados antes de subir para o projeto final.