Como nasce uma urna: segurança do software diferencia equipamento de computador comum
Como nasce uma urna: segurança do software diferencia equipamento de computador comum
Além de só funcionar com programas oficiais, urna assina digitalmente e verifica tudo o que faz
A urna eletrônica não é um computador comum. Diferentemente dos computadores pessoais, o equipamento foi criado para exercer uma função bastante específica: coletar e apurar os votos de forma precisa, automática e extremamente confiável.
A urna é um dispositivo que opera de maneira isolada e tem apenas dois cabos, que a conectam com a tomada e com o terminal do mesário. Também não há nenhum mecanismo físico ou digital que possibilite a entrada do equipamento em rede, seja por Wi-Fi, Bluetooth ou até mesmo conexão à internet, e é exatamente por esse motivo que a urna não pode ser hackeada.
Além disso, o aparelho também possui rigorosos requisitos de segurança que garantem a integridade, a autenticidade e a segurança de todos os dados processados. Contudo, na verdade, o que torna o equipamento único é o conjunto de programas e sistemas que rodam dentro dele, isto é, os softwares, a começar pelo sistema operacional.
Nesta quarta-feira (15), a série “Como nasce uma urna”, publicada ao longo desta semana no Portal do Tribunal Superior Eleitoral (TSE), vai apresentar a você os softwares e os principais recursos de segurança utilizados no equipamento genuinamente brasileiro, que completa 28 anos de existência em 2024.
Uenux: o ponto de virada do sistema operacional
Desde 2008, todas as versões do equipamento funcionam com o Uenux (Urna Eletrônica com Linux), uma versão adaptada do famoso sistema operacional. Antes da mudança, eram utilizados três sistemas operacionais, a depender do modelo do aparelho. As urnas 1996, 1998 e 2000 utilizavam o VirtuOS, um clone do MS-DOS desenvolvido por uma empresa brasileira.
O DOS foi um dos primeiros sistemas operacionais comercializados no mundo. Já o modelo de 2002 operava com o Windows CE 4.0, e as versões mais recentes até aquele momento (2004 e 2006) rodavam com o Windows CE 4.2.
A decisão de adotar o Uenux em todas as urnas foi tomada pela Seção de Voto Informatizado do TSE depois das Eleições Gerais de 2006. A manutenção de três sistemas operacionais se mostrou insustentável, pois qualquer alteração na programação tinha que ser feita ao menos três vezes – uma para cada sistema.
O bacharel em Ciência da Computação Francisco Dejardene Moura da Silva era o titular da Sevin/TSE na época e liderou o processo de migração para o novo sistema operacional. Ele explica que o Linux foi escolhido por ser um software livre e gratuito, que não demandava gastos adicionais com a instalação, tanto nas urnas antigas quanto nas novas, produzidas depois de 2008.
De acordo com o servidor, na preparação do Uenux, não foi incluído nenhum software ou hardware que envolvesse redes de comunicação, uma vez que as urnas não se comunicam com outros dispositivos com ou sem fio.
“Os aplicativos eleitorais da urna eletrônica poderiam ter sido apenas adaptados para o novo sistema operacional, mas, acertadamente, foram completamente redesenvolvidos com a preocupação de que ficassem mais estáveis e confiáveis que os anteriores”, acrescenta.
Embora fosse baseado em um software pré-existente, o sistema operacional precisou ser adaptado para uso na urna eletrônica. Foram 18 meses de trabalho intenso para que o Uenux se tornasse realidade. A iniciativa deu certo, e o novo sistema foi usado, pela primeira vez, nas Eleições Municipais de 2008.
“Os principais ganhos já percebidos na primeira utilização, em 2008, foram o domínio completo de todos os componentes de software pela equipe do TSE, a maior agilidade nas necessidades de correção ou melhoria e a maior estabilidade dos sistemas”, recorda o servidor.
Nova fase: consolidação do Uenux
Uma nova fase se iniciou quando Débora Nery assumiu a chefia da Sevin, primeira e única mulher a comandar a equipe que desenvolve o software da urna eletrônica. Servidora do TSE desde 1999, ela começou a se interessar por tecnologia ainda na adolescência. Conheceu as linguagens de programação aos 14 anos e, naquela mesma época, começou a colocar o conhecimento em prática.
O mercado de trabalho na área de tecnologia era e continua sendo predominantemente ocupado por homens, mas isso não intimidou a jovem programadora, que seguiu a vocação e cursou Ciência da Computação: “Para mim, [ser uma área com maior ocupação masculina] não foi uma barreira, pois estava concentrada na minha evolução acadêmica e profissional. Então, me dediquei ao meu aperfeiçoamento”, conta.
Ela foi a responsável pela consolidação do Uenux e, em 2009, participou do esforço de evolução da arquitetura de segurança da urna eletrônica. O ano foi marcado por muitas inovações: a criação do hardware e da cadeia de segurança do equipamento e a realização da primeira edição do Teste Público de Segurança da Urna (TPS), em 2009.
O atual chefe da Sevin é o programador Rodrigo Coimbra, que integra o quadro de servidores do TSE desde 2007. Assim como Francisco Dejardene e Débora Nery, que comandaram o setor antes dele, Rodrigo Coimbra é formado em Ciência da Computação, participou da migração para o Linux e também auxilia na organização do Teste da Urna.
Do Brasil para o mundo
O sistema operacional Linux é reconhecido pela modernidade e segurança e, desde 2021, passou a contar com um mecanismo de proteção criado pelo TSE, que, inicialmente, era de uso exclusivo da urna eletrônica.
O aparelho brasileiro verifica e autentica tudo o que faz para assegurar que, dentro dele, só rodem os softwares oficiais da Justiça Eleitoral. Uma das muitas conferências é realizada pelo próprio sistema operacional.
A característica não era um padrão do Linux original, mas acabou sendo incorporada ao sistema depois que a equipe da Sevin/TSE disponibilizou a solução publicamente. A partir de 2021, o algoritmo de assinatura digital que integra o processo de verificação usado no nosso sistema eleitoral ganhou o mundo e está presente em qualquer computador que utilize o Linux.
Código-fonte: descubra como ele é desenvolvido
Código-fonte é o nome que se dá ao conjunto de comandos escritos em linguagem de programação de computador. É ele que determina como um sistema ou um programa deve funcionar. Pode parecer algo muito distante do seu dia a dia, mas não é bem assim.
Por trás de uma página da internet – como esta que você lê agora, por exemplo –, há um código-fonte. No caso específico das urnas, ele é escrito em C++, uma linguagem de programação moderna e bastante comum no desenvolvimento de softwares usados em computadores pessoais e sistemas embarcados.
O grande ponto de virada da programação do equipamento em que são digitados os votos do eleitorado ocorreu com a unificação do sistema operacional, isso porque, para abrigar o Uenux, todos os comandos precisaram ser reescritos do zero pela equipe da Sevin/TSE, como relata o titular da Seção, Rodrigo Coimbra: “Apesar de o voto eletrônico existir desde 1996, o código-fonte da urna usado hoje é uma evolução contínua do software que foi escrito em 2008”.
O TSE abre o código-fonte para inspeção por entidades fiscalizadoras desde 2004. Antes, o processo de abertura ocorria nos seis meses que antecediam as eleições. A partir de 2021, o prazo foi ampliado, e o código-fonte passou a ser disponibilizado um ano antes do pleito.
A codificação, inclusive, está aberta neste momento e pode ser avaliada por 14 classes de instituições legitimadas a fiscalizar o processo eleitoral, previstas no artigo 6º da Resolução TSE nº 23.273/2021, que trata dos procedimentos de fiscalização e auditoria do sistema eletrônico de votação.
Confira quem inspecionou o código-fonte em 2023 e 2024.
Ciclo de desenvolvimento de um software
Na Cerimônia de Assinatura Digital e Lacração dos Sistemas, realizada um mês antes do pleito com a presença das entidades fiscalizadoras, o código-fonte é compilado e dá origem ao software da urna eletrônica, que contém regras bem rígidas de segurança para garantir a integridade e a autenticidade das informações processadas no equipamento.
O ciclo de desenvolvimento de um software é um procedimento complexo, que inicia logo após o término da eleição. O processo é composto de seis fases, que se repetem de dois em dois anos:
- Avaliação
Logo após o término da eleição, a equipe técnica avalia o desempenho dos sistemas eleitorais e discute pontos de melhoria. A partir disso, são concebidas as novas funcionalidades da urna.
- Evoluções
A Sevin/TSE inicia o trabalho de evolução dos equipamentos, feito em ciclos sucessivos, que envolvem as etapas de especificação, planejamento, programação, teste e validação. Dessa forma, são incorporadas às urnas atualizações tecnológicas, de segurança e melhorias internas no software. Tudo isso tem um objetivo claro: preparar os aparelhos para o Teste da Urna.
- Teste Público de Segurança da Urna
O Teste da Urna é uma das etapas de auditoria e fiscalização do sistema eletrônico de votação. É o momento em que o software da urna é aberto para avaliação pública com o objetivo de coletar sugestões de melhorias.
Durante o evento, realizado no ano anterior ao da eleição, especialistas em computação de fora da Justiça Eleitoral vêm ao TSE para testar a segurança da urna eletrônica. Meses depois, mas antes do próximo pleito, voltam ao Tribunal para confirmar se as correções implementadas foram suficientes para barrar as investidas.
Saiba mais sobre o Teste Público de Segurança da Urna.
- Novas evoluções
Passada a etapa de refinamento da segurança, realizada depois do Teste da Urna, todo o foco é voltado às melhorias proporcionadas às eleitoras, aos eleitores, às mesárias e aos mesários. Entram nessa fase as funcionalidades instaladas para aprimorar a experiência de votar, como, por exemplo, novos recursos de acessibilidade.
- Validações
A equipe do TSE recebe das usuárias e dos usuários dos sistemas o retorno sobre todo o trabalhado realizado. São feitos testes nos tribunais regionais eleitorais (TREs) para simular o processo eleitoral, momento em que a Justiça Eleitoral se certifica de que os sistemas eleitorais estão preparados para as eleições.
O marco final da fase de validação é a Cerimônia de Assinatura Digital e Lacração dos Sistemas Eleitorais, quando o software é novamente aberto para verificação das entidades fiscalizadoras, que também acompanham a geração final do sistema que será usado no pleito.
A assinatura digital é uma forma eletrônica de garantir a autenticidade de um sistema. Na prática, funciona como a assinatura de um contrato: como cada caligrafia é única, ela é a prova de que determinada marca foi produzida pela mesma pessoa.
Já a lacração é um procedimento matemático que blinda os programas usados nos mais de 120 sistemas da Justiça Eleitoral. Ou seja: após a assinatura digital e a lacração dos sistemas, não é possível promover nenhuma alteração nos programas do aparelho.
- Eleições
É a data em que todo o trabalho realizado ao longo do ciclo de desenvolvimento é colocado em uso. No dia da votação, o TSE oferece suporte para as equipes dos TREs e coleta as informações necessárias para dar início à preparação do próximo pleito.
O software da urna evolui bastante a cada eleição. As mudanças ocorrem em função de: atualizações tecnológicas, evoluções de segurança provocadas pelo Teste da Urna ou por iniciativa da própria equipe de Tecnologia da Informação do TSE; melhorias internas no software ou na integração com outros sistemas eleitorais; adequações a novas leis e normativos; e instalação de novas funcionalidades para eleitoras, eleitores, mesárias e mesários.
“A equipe da Sevin busca manter um ritmo de trabalho constante. O nosso trabalho é planejado de modo a distribuirmos a carga de maneira uniforme ao longo dos dois anos de ciclo de desenvolvimento. Antigamente, havia uma intensificação das atividades nos oito meses que antecedem a lacração, mas hoje a realidade é diferente”, ressalta Coimbra.
Recursos de segurança e de acessibilidade da urna
A urna eletrônica só funciona com softwares oficiais desenvolvidos pela Justiça Eleitoral, assinados digitalmente e lacrados em cerimônia pública realizada um mês antes do pleito. O equipamento conta com inúmeros requisitos de segurança para garantir que o voto digitado é o mesmo que será contabilizado.
- Assinatura digital: por que ela é tão importante?
Uma das formas de verificação da autenticidade das informações é a assinatura digital. A expressão remete à rubrica feita em papel, utilizada para comprovar a identidade e a anuência de determinada pessoa com o conteúdo ali descrito. Se um documento está assinado, por exemplo, foi porque quem assinou o verificou anteriormente.
O mesmo ocorre com a assinatura digital usada pela urna eletrônica. Ela protege programas, sistemas eleitorais e dados gerados no equipamento. Tudo o que entra e sai da urna – como os arquivos em que as eleitoras e os eleitores de cada seção eleitoral estão registrados e as informações de candidaturas – é assinado digitalmente.
No equipamento, um programa só é autorizado a funcionar após a conferência da assinatura digital. “Durante o dia da eleição, a urna verifica a assinatura digital centenas de vezes, sempre garantindo que todos os programas e dados nela contidos se mantêm íntegros e autênticos”, explica Rodrigo Coimbra.
- RDV e a garantia do anonimato da votação
Desde 2004, todos os modelos de urna eletrônica contam com o Registro Digital do Voto (RDV), um recurso que aprimorou a preservação do anonimato da votação. O sigilo do voto é um direito garantido pela nossa Constituição Federal e que já era previsto no primeiro Código Eleitoral (Lei nº 21.076/1932).
Por exemplo: para o cargo de prefeito, a eleitora 1 escolheu o candidato que usa o número 92, o eleitor 2 votou na candidata 95 e o eleitor 3 votou no candidato 90. No RDV, os votos dos três eleitores serão registrados na seguinte sequência: 90, 92 e 95. Dessa forma, não é possível associar uma pessoa ao voto depositado na urna eletrônica.
O RDV é base de dois relatórios gerados pela urna. O primeiro é a zerésima, emitida antes de a votação começar para comprovar que o equipamento está zerado, ou seja, que há zero voto dentro dele.
O segundo é o Boletim de Urna (BU), impresso no encerramento da votação. O documento mostra a quantidade de votos registrados naquele equipamento e, no dia da eleição, fica afixado na porta da seção eleitoral para conferência pública. O BU também é disponibilizado no Portal de Dados Abertos do TSE para consulta por qualquer pessoa interessada.
- Criptografia
A criptografia é um mecanismo de segurança utilizado para proteger informações. É ela que garante a confidencialidade do conteúdo trocado durante a comunicação entre duas partes. Com a criptografia, a mensagem cifrada só pode ser lida pelos participantes dessa “conversa”, ou seja, o emissor, que produziu, e o receptor, que recebeu.
A proteção é chamada de cifração, e o processo necessário para leitura da informação é chamado de decifração. Ambos os recursos são utilizados pela urna eletrônica, que os utiliza para resguardar dados sensíveis. Isso ocorre, por exemplo, como a biometria de cada eleitor. As impressões digitais são protegidas pela criptografia até chegarem à urna, que as decifra para confirmação da identidade da pessoa. Assim como a biometria, no dia do pleito, os votos são constantemente cifrados para preservar o anonimato da votação.
Nos sistemas eleitorais, são utilizados dois tipos de algoritmos criptográficos: os padronizados (de domínio público) e os denominados “algoritmos de Estado”, de uso exclusivo dos órgãos públicos para comunicações mais sensíveis.
Para os algoritmos de criptografia de Estado, o TSE conta com a parceria do Centro de Pesquisa e Desenvolvimento para a Segurança das Comunicações (Cespesc), vinculado à Agência Brasileira de Inteligência (Abin).
O Cepesc fornece o software de criptografia, que, além de ser testado e validado pelo TSE, ainda pode ser avaliado pelas entidades fiscalizadoras em duas oportunidades: na abertura do código-fonte para inspeção e na Cerimônia de Assinatura Digital e Lacração.
O software também é submetido à análise das participantes e dos participantes do Teste da Urna. Embora o software tenha sido desenvolvido pelo Cepesc, as mensagens cifradas são privativas do TSE, que mantém sob sigilo todas as chaves secretas utilizadas por esse algoritmo.
Entre 2000 e 2012, José Monteiro foi um dos pesquisadores do Cepesc responsáveis pelo desenvolvimento dos sistemas de criptografia e de assinatura digital utilizados na urna eletrônica. Depois de se aposentar, ele foi contratado como colaborador do Tribunal em 2015 e hoje contribui com a arquitetura de segurança do software do equipamento.
Ele explica que o software criado pelo Cepesc fornece os mecanismos de assinatura digital e de criptografia usados na urna. Juntos, esses dois recursos asseguram a confiança dos programas utilizados nas urnas e dos resultados gerados pelo equipamento.
“Os mecanismos de assinatura realizam a autenticação e, assim, impedem, por exemplo, a apresentação de Boletins de Urna falsos e dão meios para se identificar qualquer alteração nos resultados. O mesmo se aplica aos programas usados na eleição”, afirma o pesquisador.
- Hardware de segurança
Toda urna eletrônica é produzida com um microprocessador físico chamado de “hardware de segurança”, que fica posicionado com a placa-mãe da urna eletrônica. Embora não faça parte do conjunto de programas existentes no equipamento, é ele que, na data da eleição, confere a assinatura digital de todos os componentes de software, que, gradativamente, vão sendo carregados, e, assim, dá início ao processo de cadeia de confiança baseada em hardware.
“É o hardware de segurança que garante que o software auditado na Cerimônia de Assinatura Digital e Lacração dos Sistemas Eleitorais é o mesmo que está sendo usado no dia da votação em qualquer urna eletrônica”, ressalta Rodrigo Coimbra.
- Recursos de acessibilidade
Para as Eleições Municipais 2024, a grande novidade em termos de acessibilidade é o uso da voz sintetizada Letícia, que auxiliará eleitoras e eleitores com deficiência visual a votar. O novo recurso foi produzido a partir de uma voz humana, gravada pela cantora Sara Bentes, e é uma evolução do antigo sintetizador de voz, criado para a mesma finalidade, mas que tinha uma narração mais robotizada.
Assim como acontece em todos os ciclos eleitorais, a instalação da nova funcionalidade ocorreu na fase destinada à promoção de novas evoluções no software da urna eletrônica, iniciada logo após a realização do Teste da Urna.
Além da voz Letícia, a urna conta com outros recursos de acessibilidade, como a identificação da tecla “5” do teclado e a apresentação, na tela, da intérprete da Língua Brasileira dos Sinais (Libras) Maria do Carmo Callado de Oliveira, que informa ao eleitorado com deficiência auditiva quais são os cargos em votação no momento.