Voto Eletrônico sem Tabus e sem Fetiches

A discussão a respeito da segurança do voto eletrônico no país tem refletido a mesma polarização observada em outros domínios. De um lado, temos o presidente da república defendendo a impressão do voto, para fins de “confirmação de eventuais fraudes”. De outro lado, o pensamento majoritário do establishment defende o sistema atual de voto eletrônico como absolutamente invulnerável a manipulações. Como sói acontecer, ambos os lados da discussão se deixam levar por falácias.

(AP Photo/Eraldo Peres)

De um lado [o do Presidente] temos a fetichização do voto; a ideia de que o objeto-urna ou o objeto-votoimpresso são o alfa e o ômega da eleição. De outro temos os guardiões do tabu da Urna Eletrônica Segura e Santificada, refratários a qualquer consideração prática sobre a natureza da segurança de sistemas eletrônicos digitais e da falibilidade humana. Ambos os lados parecem esquecer, se é que chegam a considerar, que a eleição é um processo, no qual objetos físicos (urnas, canetas, pedaços de papel) são pequenos componentes de uma intrincada estrutura. Nenhuma ação isolada em determinada parte componente do sistema vai resultar em solução de qualquer problema.

O que é pior, sinto que a mera discussão do [falso] problema do voto eletrônico x voto impresso está se tornado área proibida. Noto que se quer criar uma atmosfera de repressão à discussão, a qual não posso coonestar. Até mesmo altas instâncias da república se movimentam no sentido de criminalizar a investigação do tema.

Apresento hoje a primeira manifestação do que espero venha a ser uma série de posts visando ampliar o debate sobre esta questão de interesse existencial para o Brasil – que em minha opinião está muito longe de terminar. Na verdade nunca houve debate técnico aberto sobre este tema na sociedade. É preciso envolver as pessoas no debate qualificado [a blogosfera me parece um ambiente mais adequado do que as redes sociais]. Não me furtarei a comentar sobre o assunto quando assim me aprouver, como me é garantido pela Carta Magna [embora, nessas horas, devo admitir que um domínio e um site hospedado no exterior – em uma democracia ainda sólida – fazem a diferença].

De Hashes para Hashes

A necessidade de verificação e supervisão do software dos fabricantes de máquinas de votação tornou-se urgente em 2003, quando a Diebold Election Systems foi descoberta instalando software não certificado em máquinas de quatro municípios da Califórnia, o que levou a empresa a ser acusada de mentir para as autoridades municipais e estaduais sobre o problema.

Desde 2005, as diretrizes do sistema de votação federal americano exigem que os fabricantes de urnas eletrônicas forneçam também às autoridades eleitorais um método confiável para verificar a) se as versões corretas do sistema operacional estão instaladas em suas urnas; b) se o software não foi alterado desde a instalação e c) se não há software não-autorizado rodando no sistema [nada além do sistema operacional deve rodar].

“Se o processo de validação de hash tiver que ser realizado pelo mesmo técnico do fabricante do software”, escreveu o secretário de estado na época, “então o processo de validação perde um de seus principais objetivos, que é garantir que o fabricante seja honesto e cumpra os requisitos de certificação impostos pelo estado”.

Para fazer essa verificação, a Electoral Assistance Commission [EAC – Comissão de Assistência Eleitoral] federal e os laboratórios de teste do sistema de votação, que examinam e certificam o software e hardware de votação, criam um hash “confiável” de cada programa de software eleitoral certificado para uso nas eleições nos EUA. Para os não técnicos, o hash é uma cifra criada – a partir do conteúdo do arquivo – por uma função matemática que não permite reversão [a operação inversa]. Entretanto, um mesmo documento [ou programa de computador] gera o mesmo hash. Isso permite comparar dois documentos [ou dois programas]. Esse hash é então usado como a assinatura do documento ou do programa. Um hash é geralmente do tipo:

127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935

Um mesmo documento, uma mesma assinatura. Assim, quando as autoridades eleitorais recebem um novo software eleitoral [ou atualizações de software existente] para instalar em suas máquinas, eles geram o hash desse software e usam a ferramenta de verificação do fornecedor para comparar esse hash com o hash EAC “confiável” guardado nos arquivos seguros do Sistema Eleitoral.

As jurisdições variam na forma como conduzem as verificações de hash.

Estudo de um caso

O caso enfocado aqui aconteceu em 2020 e dá uma mostra da formidável complexidade do voto eletrônico, complexidade essa que não se deixa capturar por formulações simplistas e voluntarismos inócuos de ambos os lados da polarização política brasileira.

Em setembro de 2020, poucas semanas antes dos eleitores irem às urnas em uma das eleições presidenciais mais críticas e contenciosas do país, as autoridades estaduais no Texas souberam de um problema preocupante com o software eleitoral amplamente usado em seu estado e no país: Brian Mechler, um cientista de computação dos Laboratórios de Pesquisa Aplicada da Universidade do Texas em Austin, descobriu enquanto testava o software da Election Systems & Software {ES&S} no ano passado, que a ferramenta de verificação de hash da empresa nem sempre funcionava corretamente.

O componente não estava envolvido na tabulação de votos; em vez disso, se tratava-se de uma ferramenta de diagnóstico fornecida pela ES&S para auxiliar os técnicos a verificar se o software de votação instalado no equipamento eleitoral era exatamente a versão do software certificada pelo laboratório federal e que o sistema não tinha sido alterado pelo fabricante ou qualquer outra pessoa desde a data da certificação.

Com o software ES&S no Texas foi seguido o seguinte protocolo para detecção de falhas:

  • O software extraído do equipamento eleitoral é carregado em uma unidade USB.
  • O hash EAC confiável é carregado em uma segunda unidade USB, junto com três scripts: um para fazer o hash do software extraído do equipamento de eleição; um que compara os hashes desse software ao hash EAC; e um terceiro script que relata os resultados dessa verificação de hash.
  • As unidades USB são inseridas em um sistema autônomo que não é usado para eleições, onde a verificação de hash é conduzida.
  • O script que verifica os hashes é um aplicativo de código aberto chamado “diff”; o script que relata os resultados é um item separado do pacote do software, e de autoria da ES&S.

No fim do processo de inspeção, Mechler encontrou o problema no script de relatório, que indicava hashes iguais mesmo quando não havia dois hashes sendo comparados. Isso foi descoberto por acidente quando Mechler um dia se esqueceu de carregar no sistema o hash EAC confiável que fazia a verificação de hash.

No relatório que escreveu para o gabinete do secretário de estado, Mechler criticou a ES&S por produzir um roteiro de verificação mal escrito [uma falha, portanto, de processo].

O script deveria ter executado verificações explícitas sobre a existência dos dois arquivos que estão sendo comparados, devendo falhar ruidosamente caso um deles não exista. Este bug indica que a ES&S não desenvolveu seu processo de verificação de hash com […] qualidade suficiente

Mas não foi apenas a ES&S que falhou em verificar a precisão do script. Os fornecedores são obrigados a incluir o método ou ferramenta de verificação no pacote de seu software de votação. Mas não há indicação de que os laboratórios concretamente verificam se os métodos e ferramentas de verificação do software fornecidas pelo fabricante funcionam; eles simplesmente verificam se o fornecedor enviou a ferramenta.

O Government Accountability Office [GAO – Escritório de Auditoria do Governo] reconheceu esse problema há mais de uma década em um relatório publicado em 2008. O GAO aconselhou o EAC a criar um repositório certificado de software de urnas eletrônicas, estabelecer procedimentos para conduzir verificações de hash desse software e criar um protocolo para testar as ferramentas de verificação de hash do fornecedor e certificar-se de que funcionam.

Quatro anos depois, no entanto, o GAO observou que o EAC havia ignorado seus conselhos e não tinha planos de desenvolver padrões para ferramentas de verificação de hash ou um protocolo de teste para verificar se funcionavam corretamente. Isso significava, escreveu o GAO, que as jurisdições estaduais e locais não teriam “os meios para verificar de forma efetiva e eficiente se os sistemas de votação usados ​​nas eleições federais estão usando o mesmo software que os certificados pela EAC”.

A falha relatada aqui refere-se a apenas um dos componentes do software [a aplicação que gera o relatório do sistema]. Mas veja que em qualquer dessas fases uma vulnerabilidade pode estar à espreita; nas pessoas, nos dispositivos, nos procedimentos, etc. Eu poderia passar dias [ou meses] postando sobre problemas semelhantes. Eu poderia até mesmo citar as suspeitas que eu mesmo tive sobre as urnas eletrônicas, vividas pessoalmente na jornada eleitoral de 2000. Mas deixo para depois. Fico com a análise fria dos fatos.

De fato, estou começando a pesquisa para uma revisão sistemática dos artigos acadêmicos que apontam problemas nos sistema de votação eletrônicos – que espero publicar aqui quando as circunstâncias permitirem. Já no início do trabalho noto que, ao contrário do Brasil, artigos críticos ao voto eletrônico pululam na Internet anglosférica, notadamente nos EUA. Essa revisão poderá ser o primeiro post da discussão que pretendo encetar na medida em que o ciclo eleitoral de 2022 evolui.


Fonte consultada e citada: https://zetter.substack.com/p/votings-hash-problem-when-the-system

Blockchain e o Voto

De vez em quando sou questionado sobre ideias envolvendo sistemas de votação eletrônicos, remotos e blockchains. Este post fala sobre as propriedades mínimas de segurança que um sistema de votação precisa ter, e sobre onde as blockchains ajudam e onde não ajudam. Usamos como exemplo o sistema criptografado de votação STAR-vote. Pode ser um pouco árido para os usuários não técnicos, mas também pode ser interessante para quem gosta de se envolver mais profundamente no tema.

Uma interface digital abstrata, mostrando pastas com chave pública e dados de hash escritos em código.

A comunidade de computação concorda que sistemas votação rodando em máquinas de votar modernas têm ao seu dispor processadores muito rápidos e uma quantidade enorme de armazenamento. Esse hardware moderno torna menos árdua a tarefa de implementar redes que exigem computação de alta-performance, como a Blockchain. Vamos então usar esse dado estrutural para um experimento mental:

Usando o work-flow da Blockchain, vamos colocar as máquinas de votação em rede, dentro da Blockchain. Assim, voilà, temos uma estrutura descentralizada, com uma cópia de cada voto em cada máquina de votação; podemos até usar o emaranhamento da linha do tempo, para que o histórico de cada máquina seja protegido por hashes armazenados em todas as outras máquinas. O problema da votação eletrônica está resolvido.

Em um sistema eleitoral implementado na Blockchain, todas as máquinas do sistema possuem todos os registros de votos, tornando impossível a fraude. É o mesmo esquema que legitima transações financeiras. Neste caso, a transação é o voto.

Mas qual é o ponto forte de uma blockchain? No aspecto mais fundamental, trata-se de ter um registro histórico inviolável sobre eventos. No contexto de um sistema de votação, significa que uma blockchain é um lugar perfeito para armazenar cédulas e proteger sua integridade. O STAR-Vote e muitos outros sistemas de votação criptografados “ponta a ponta” adota o conceito de “quadro público de avisos” para onde os votos criptografados são enviados para armazenagem até a contagem. Blockchain é a maneira óbvia de implementar o quadro público de avisos.

Cada eleitor do STAR-Vote sai do local de votação com um “recibo” que é apenas o hash de sua cédula criptografada, que por sua vez tem o hash da cédula do eleitor anterior. Em outras palavras, todos os eleitores do STAR-Vote deixam o local de votação com um ponteiro para a blockchain que pode ser verificado de forma independente.

Acontece que mesmo os sistemas de votação baseados em blockchain precisam de muitas propriedades de segurança adicionais antes que possam ser efetivamente confiáveis. Aqui está uma lista simplificada, empregando algum vocabulário típico desta área de estudos para referenciar essas propriedades.

Propriedade “Votado como pretendido”.

Um eleitor está olhando para uma tela de algum tipo e escolhe em um botão: “Alice para presidente”. A máquina de votação prontamente indica isso com um pop-up, ou algum texto destacado, ou sons. Contudo, é totalmente possível que algum malware dentro da máquina possa registrar silenciosamente o voto como “Bernie para presidente”. Portanto, qualquer sistema de votação precisa de um mecanismo para derrotar malware que ameace comprometer a integridade da votação.

Nota: Uma abordagem interessante aqui [e já consagrada pelo costume americano] é ter cédulas de papel impressas (e/ou cédulas de papel marcadas à mão) que podem ser comparadas estatisticamente às cédulas eletrônicas. Outra abordagem é ter um processo pelo qual a máquina pode ser “desafiada” a provar que criptografou corretamente a cédula.

Propriedade “Votado em privacidade”.

É importante que não seja possível identificar um eleitor em particular pela forma como ele votou. A votação moderna deve garantir que os votos sejam secretos, com várias medidas tomadas para tornar difícil ou impossível para os eleitores violarem esse sigilo.

Quando se deseja manter a propriedade de privacidade eleitoral nas máquinas da votação, significa que deve-se evitar que a máquina retenha o estado interno (ou seja, mantenha em seus circuitos uma lista dos votos em texto aberto, na ordem de votação) e também deve garantir que o texto cifrado dos votos, publicado na blockchain, não está vazando silenciosamente, por meio de canais subliminares, informações sobre o texto aberto que o gerou.

Propriedade “Contado como votado”.

Se temos eleitores levando para casa um recibo de algum tipo que identifica seu voto de texto cifrado na blockchain, então eles também podem querer ter algum tipo de prova criptográfica de que a contagem final do voto inclui seu voto específico. Isso acaba sendo uma aplicação direta de primitivos criptográficas homomórficos.

Se olharmos para essas três propriedades, é possível notar que a blockchain não ajuda muito com as duas primeiras, embora seja muito útil para a terceira.

Atingir a propriedade “votado como pretendido” requer uma variedade de mecanismos que vão de cédulas de papel a desafios pontuais para máquinas. A blockchain protege a integridade do voto registrado, mas nada tem a dizer sobre sua fidelidade à intenção do eleitor.

Para alcançar uma propriedade “votado em privacidade”, é necessário bloquear o software na plataforma de votação e, nesse caso, bloquear a máquina de votar. E como essa propriedade de bloqueio pode ser verificada? Precisamos de garantias fortes que possam ser verificadas de forma independente. Também precisamos garantir que o usuário não possa ser enganado e levado a executar um aplicativo de votação falso. Podemos conseguir isso no contexto das urnas eletrônicas comuns, que são utilizadas exclusivamente para fins de votação. Podemos implantar centralmente uma infraestrutura de chave criptográfica e colocar controles físicos sobre o movimento das máquinas.

Mas, se estendermos este experimento mental para incluir o voto pela Internet, um desejo comumente expresso pelo público de alguns países [que talvez aconteça], veremos que não temos infraestrutura hoje para fazer isso usando telefones celulares e computadores pessoais – e provavelmente não a teremos nos próximos anos. O voto remoto [em casa, no escritório, na rua] também torna excepcionalmente fácil para um cônjuge, um chefe ou um vizinho vigiar por cima do seu ombro e “ajudá-lo” a votar da maneira que eles querem que você vote.

As blockchains acabam sendo incrivelmente úteis para verificar a propriedade “contado como votado”, porque obriga todas as máquinas do sistema a concordar com o conjunto exato de cédulas que está sendo tabulado. Se um funcionário eleitoral precisar desqualificar uma cédula por qualquer motivo, esse fato precisa ser público e todos precisam saber que uma cédula específica, ali na blockchain, precisa ser descontada, caso contrário, a matemática criptográfica não vai fechar.

Concluindo, é fácil ver como as blockchains fornecem elementos primitivos excepcionalmente úteis, que podem ajudar a construir sistemas de votação em que a contagem final é consistente com os registros de votos lançados. No entanto, um bom sistema de votação precisa satisfazer muitas propriedades adicionais que uma blockchain não pode fornecer. Embora haja uma certa sedução intelectual em fingir que votar não é diferente do que mover criptomoedas em uma blockchain, a realidade do problema é um pouco mais complicada.

Governos Preparam Blitz Contra as Criptomoedas

Jess Powell, CEO da Kraken, a quarta maior negociadora de criptomoedas do mundo, adverte que governos pelo planeta afora podem estar preparando uma grande blitz contra o uso de Bitcoin e outras criptomoedas. CNBC reporta:

“Acho que pode haver alguma repressão”, disse Jesse Powell em uma entrevista à CNBC. As criptomoedas dispararam em valor ultimamente, com o Bitcoin alcançando um recorde de mais de US$ 61.000 no mês passado. A moeda digital mais valiosa do mundo tem sido negociada ultimamente em torno de US$ 60.105. […] O chefe da Kraken acha que a incerteza regulatória em torno das Criptos não vai dissipar tão cedo. Uma regra contra a lavagem de dinheiro proposta pelo governo dos EUA recentemente exige que as pessoas que mantêm Criptos em uma carteira digital privada passem por verificação de identidade se fizerem transações acima de US$ 3.000. “Algo assim poderia realmente ferir as Criptos e matar o caso de uso original, que era apenas tornar os serviços financeiros acessíveis a todos”, disse Powell.

Foto por Worldspectrum em Pexels.com

As criptomoedas como o Bitcoin têm sido frequentemente associadas a atividades ilícitas devido ao fato de que as pessoas que transacionam com ela são pseudônimas – você pode ver para onde os fundos estão sendo enviados, mas não quem os enviou ou os recebeu. “Espero que agências reguladoras americanas e internacionais não tenham uma visão muito estreita sobre o assunto”, disse Powell. “Outros países, a China especialmente, estão levando Cripto muito a sério e assumindo uma postura de muito longo prazo”.

O CEO de Kraken disse sentir que os EUA são mais “suscetíveis” às pressões de negócios tradicionais em extinção – em outras palavras, os bancos – que “vão perder se as Criptos se tornarem normalizadas”. “Eu acho também que já pode ser tarde demais”, acrescentou Powell. “Talvez o gênio já esteja fora da garrafa e tentar bani-las neste momento só vai torná-las mais atraentes. Certamente enviaria uma mensagem de que o governo as vê como uma alternativa superior à sua própria moeda.”

Link para CNBC (English)

A Criptografia Homomórfica se Prepara para a Estréia

Noticias da IBM dão conta de que o primeiro sistema de encriptação homomórfica comercial está quase pronto para o horário nobre. É uma tecnologia realmente disruptiva que poderá tornar o Capitalismo de Vigilância uma tendência do passado. Primeiro, algum contexto. Existem três categorias gerais de criptografia. As duas clássicas são a criptografia para quando os dados estão em repouso ou armazenados, e a outra para “dados em trânsito”, que protege a confidencialidade dos dados que estão sendo transmitidos por uma rede.

A terceira é a peça que está faltando: a capacidade de computar chaves criptográficas para os dados, enquanto ainda eles ainda estão sendo processados. Uma criptografia dinâmica em tempo real, pode-se dizer.

Esta última é a chave para desbloquear todos os tipos de novos casos de uso. Isso porque, com a tecnologia comum disponível hoje, os dados têm forçosamente que ser desencriptados para que possam ser processados, o que sempre cria uma janela de vulnerabilidade. Essa janela de vulnerabilidade torna as empresas relutantes em compartilhar dados altamente sensíveis envolvendo, por exemplo, finanças ou saúde.

Com FHE [Fully Homomorphic Encryption – Encriptação Totalmente Homomórfica], é possível manter os dados criptografados o tempo todo, nunca expondo-os durante o processo de computação. No passado, de uma maneira ou outra tínhamos a capacidade de criptografar os dados a) em repouso e b) em trânsito. Porém, historicamente nunca tivemos a capacidade de manter os dados criptografados durante o processamento.

À esquerda, a encriptação tradicional, onde os dados precisam ser desencriptados para serem processados (em vermelho). À direita, na encriptação homomórfica, os dados são processados mesmo estando encriptados.

Com a FHE, os dados podem permanecer criptografados enquanto são usados ​​por um aplicativo. Imagine, por exemplo, um aplicativo de navegação em um smartphone que possa dar a direção a seguir sem realmente poder ver qualquer informação ou localização pessoal do usuário.

As empresas estão potencialmente interessadas em FHE porque isso permitiria a elas aplicar “inteligência artificial” aos dados e, ao mesmo tempo, prometer honestamente aos usuários que a empresa não tem como visualizar ou acessar os dados subjacentes.

Embora o conceito de criptografia homomórfica tenha existido e sido de interesse por décadas, a FHE sempre exigiu um enorme poder de computação, o que sempre foi muito custoso para ser praticável.

Mas os pesquisadores fizeram grandes avanços nos últimos anos.

Por exemplo, em 2011 era preciso 30 minutos para processar um único bit usando FHE. Em 2015, os pesquisadores já podiam comparar dois genomas humanos inteiros usando a FHE em menos de uma hora.

A IBM vem trabalhando em FHE há mais de uma década, e está finalmente atingindo um ponto em que está pronta para começar a adotar a FHE de maneira mais ambiciosa. E aí então entra o próximo desafio: a adoção generalizada. Há atualmente poucas organizações com habilidades e conhecimentos para implementar a FHE. “

Próximos passos

Para acelerar esse desenvolvimento, a IBM Research lançou ferramentas de código aberto, para fomentar o envolvimento dos desenvolvedores, enquanto a IBM Security lançou seu primeiro serviço comercial de FHE em dezembro de 2020.

Essas iniciativas se destinam a estimular os clientes a trabalhar em protótipos e experimentar a criptografia totalmente homomórfica. São dois objetivos imediatos: Primeiro, educar os clientes sobre como construir aplicações compatíveis com FHE e, em seguida, dar a eles as ferramentas e ambientes de hospedagem adequados para executar esses tipos de aplicações. No curto prazo, a IBM prevê que as perspectivas sejam muito atraentes para indústrias altamente reguladas, como serviços financeiros e saúde. Esses serviços têm uma grande necessidade de desbloquear o valor de seus dados, mas também enfrentam pressões extremas para proteger e preservar a privacidade dos dados que estão computando.

Com o tempo, uma gama mais ampla de empresas se beneficiará da FHE. Muitos setores querem melhorar seu uso de dados, o que está se tornando um diferencial competitivo no mercado. Isso inclui o uso de FHE para ajudar a impulsionar novas formas de colaboração e monetização. À medida que isso acontece, a IBM espera que esses novos modelos de segurança estimulem uma maior adoção corporativa de suas plataformas híbridas de nuvem.

Por meu lado, desejo MERDA, à IBM em sua estréia. Estávamos realmente precisando disso. Saúde!