{"id":11921,"date":"2010-07-04T16:03:00","date_gmt":"2010-07-04T18:03:00","guid":{"rendered":"http:\/\/www.pedromigao.com.br\/ourodetolo\/2010\/07\/a-vulnerabilidade-da-urna-eletronica-parte-iii\/"},"modified":"2010-07-04T16:03:00","modified_gmt":"2010-07-04T18:03:00","slug":"a-vulnerabilidade-da-urna-eletronica-parte-iii","status":"publish","type":"post","link":"http:\/\/www.pedromigao.com.br\/ourodetolo\/2010\/07\/a-vulnerabilidade-da-urna-eletronica-parte-iii\/","title":{"rendered":"A Vulnerabilidade da Urna Eletr\u00f4nica &#8211; Parte III"},"content":{"rendered":"<div><a href=\"http:\/\/1.bp.blogspot.com\/_KYflagr2MuI\/TCLLA6yx9MI\/AAAAAAAACdk\/-bJHBP_6Rgg\/s1600\/urna.jpg\" imageanchor=\"1\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" height=\"320\" src=\"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-content\/uploads\/2010\/07\/urna2.jpg\" width=\"320\"><\/a><\/div>\n<p><\/p>\n<div>Mais um domingo, e a terceira parte de nossa s\u00e9rie sobre as urnas eletr\u00f4nicas e as poss\u00edveis fraudes eleitorais atrav\u00e9s delas. Uma vez mais, assinada pelo analista de sistemas Bruno Nascimento.<\/div>\n<div><\/div>\n<div><\/div>\n<div><b>&#8220;Parte III \u2013 Desenvolvimento e Testes<\/p>\n<p><\/b><\/div>\n<div><\/div>\n<div>No outro post tentamos entender sobre os sistemas operacionais, a linguagem de m\u00e1quina e o processo de transformar o c\u00f3digo gerado nesta atrav\u00e9s de compila\u00e7\u00e3o e interpreta\u00e7\u00e3o. Al\u00e9m disso, falamos sobre as quest\u00f5es relativas ao c\u00f3digo aberto e ao c\u00f3digo fechado.<\/p>\n<\/div>\n<div><\/div>\n<div>Esta parte da gera\u00e7\u00e3o do \u00e9 um pequeno ponto do processo de desenvolvimento de sistemas. O processo \u00e9 muito maior, pois extende-se desde o levantamento dos requisitos (o que \u00e9 necess\u00e1rio ter na codifica\u00e7\u00e3o final dos sistemas), passando por um processo de an\u00e1lise e um desenho de como o sistema deve ficar (esquemas de entendimento comum dos profissionais envolvidos, mas n\u00e3o necessariamente com telas e c\u00f3digo fonte gerados), a codifica\u00e7\u00e3o, testes (para assegurar de que os requisitos est\u00e3o sendo cumpridos) e a implementa\u00e7\u00e3o propriamente dita.<\/p>\n<\/div>\n<div><\/div>\n<div>Vamos entrar em mais detalhe no processo de desenvolvimento e no pr\u00f3prio processo da urna eletr\u00f4nica. Primeiro naquilo que j\u00e1 explicamos: a compila\u00e7\u00e3o dos c\u00f3digos. Entrando em mais detalhe no processo da urna eletr\u00f4nica, <a href=\"http:\/\/www.tse.gov.br\/internet\/eleicoes\/relatorio_unicamp.htm\">http:\/\/www.tse.gov.br\/internet\/eleicoes\/relatorio_unicamp.htm<\/a> nos informa:<\/p>\n<\/div>\n<div><\/div>\n<div>\u201cA compila\u00e7\u00e3o da vers\u00e3o final do c\u00f3digo-fonte \u00e9 precedida de uma prepara\u00e7\u00e3o pela equipe do TSE, quando s\u00e3o inseridas as chaves e as rotinas criptogr\u00e1ficas.<\/p>\n<\/div>\n<div><\/div>\n<div>Finalizada a prepara\u00e7\u00e3o do c\u00f3digo-fonte, \u00e9 feita a compila\u00e7\u00e3o e a gera\u00e7\u00e3o de c\u00f3digos execut\u00e1veis. Atendendo a requisitos legais, os c\u00f3digos-fonte dos programas s\u00e3o colocados \u00e0 disposi\u00e7\u00e3o dos partidos pol\u00edticos para an\u00e1lise. Encerrado o per\u00edodo de exposi\u00e7\u00e3o, c\u00f3pias do programa-fonte e dos execut\u00e1veis s\u00e3o feitas em m\u00eddia permanente (CDs) e lacradas em envelopes que recebem as assinaturas dos representantes de partidos pol\u00edticos. Esses CDs ficam armazenados sob a guarda do TSE.<\/p>\n<\/div>\n<div><\/div>\n<div>A compila\u00e7\u00e3o do c\u00f3digo-fonte no TSE \u00e9 feita em m\u00e1quina isolada da rede, instalada numa sala com acesso restrito, e seu uso \u00e9 registrado em logs(&#8230;)\u201d<\/p>\n<\/div>\n<div><\/div>\n<div>Agora a grande quest\u00e3o: como saber que o c\u00f3digo-fonte analisado pelos partidos \u00e9 o mesmo lacrado no CD e que foi o mesmo a ser usado na compila\u00e7\u00e3o? Dentro do processo de desenvolvimento de sistemas existente em muitas empresas, armazenamos diversos c\u00f3digos-fontes, para evitar que um erro introduzido num passo posterior possa impedir com que regeremos o execut\u00e1vel original. Mas o que acontece \u00e9 que mesmo um c\u00f3digo-fonte igual, gerado em momentos diferentes pode gerar execut\u00e1veis diferentes. Como?<\/p>\n<\/div>\n<div><\/div>\n<div>Calma&#8230; O que acontece \u00e9 que muitos sistemas operacionais registram dentro dos execut\u00e1veis um c\u00f3digo al\u00e9m da linguagem de m\u00e1quina para identifica\u00e7\u00e3o do momento da compila\u00e7\u00e3o. Para o processo da urna eletr\u00f4nica h\u00e1 um processo mais sofisticado, mas a id\u00e9ia \u00e9 a mesma. O que significa? Que mesmo um c\u00f3digo-fonte igual ir\u00e1 gerar controles diferentes dentro do momento em que foi gerado. Isto implica em seguran\u00e7a para a quest\u00e3o do momento em que o c\u00f3digo-fonte foi gerado.<\/p>\n<\/div>\n<div><\/div>\n<div>Se est\u00e1 tudo sob controle, ent\u00e3o onde est\u00e1 o problema? Recapitulando, a pergunta essencial \u00e9: como saber que o c\u00f3digo-fonte analisado pelos partidos \u00e9 o mesmo lacrado no CD e que foi o mesmo a ser usado na compila\u00e7\u00e3o? N\u00e3o h\u00e1 controle externo. Todo este controle \u00e9 feito internamente no TSE. N\u00e3o h\u00e1 nenhum controle externo neste caso.<\/p>\n<\/div>\n<div><\/div>\n<div>Digamos que seja descoberto um bug (um erro) no programa ap\u00f3s este ser passado aos partidos pol\u00edticos. Este \u00e9 corrigido, por\u00e9m, pelo cronograma das elei\u00e7\u00f5es, se houver necessidade dos partidos reanalisarem o c\u00f3digo, n\u00e3o haver\u00e1 como cumprir o cronograma eleitoral e as elei\u00e7\u00f5es teriam de ser adiadas. Mas adiar as elei\u00e7\u00f5es por conta de um bug poria a confian\u00e7a no programa seria quebrar a confian\u00e7a no processo eleitoral, n\u00e3o? Pois \u00e9&#8230; Ent\u00e3o, como o erro corrigido foi pequeno, decide-se n\u00e3o passar pelo processo completo. E quem garante que n\u00e3o pode ter entrado algum outro c\u00f3digo que possa perpetrar uma fraude? Seria o processo de teste.<\/p>\n<\/div>\n<div><\/div>\n<div>Como dissemos, o processo de teste verifica se o execut\u00e1vel cumpre os requisitos iniciais. S\u00f3 que testar um programa muito extenso considerando todas as vari\u00e1veis poss\u00edveis torna-se temporal e economicamente invi\u00e1vel. Ent\u00e3o escolhe-se as condi\u00e7\u00f5es suficientes e necess\u00e1rias para fazer o teste dos requisitos originais. O resultado \u00e9 que podem haver condi\u00e7\u00f5es n\u00e3o verificadas nos programas e que s\u00f3 s\u00e3o encontradas ap\u00f3s o programa ser implementado. Testes n\u00e3o garantem que n\u00e3o haja erros, apenas que eles n\u00e3o foram mais encontrados. Em resumo, ainda assim, podem haver falhas. Fraudes, inclusive.<\/p>\n<\/div>\n<div><\/div>\n<div>E quem poderia introduzir esta fraude? Qualquer pessoa com conhecimento de programa\u00e7\u00e3o e que possa ter acesso ao c\u00f3digo-fonte dos programas do TSE. A partir do 2\u00ba per\u00edodo, um estudante de inform\u00e1tica tem conhecimento de l\u00f3gica de programa\u00e7\u00e3o suficiente para programar. A quest\u00e3o maior \u00e9 o acesso aos c\u00f3digos-fonte. Isto porque n\u00e3o estamos sequer cogitando da possibilidade de um dos requisitos do TSE ser exatamente perpetrar uma fraude e iludir os partidos pol\u00edticos&#8230; Longe de mim pensar nisso.<\/p>\n<\/div>\n<div><\/div>\n<div>Na pr\u00f3xima parte, vamos encerrar a s\u00e9rie mostrando como se pode usar formas mais criativas de se tentar fraudar uma elei\u00e7\u00e3o. Inclusive uma que foi feita diante da equipe do TSE como prova de conceito.&#8221;<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Mais um domingo, e a terceira parte de nossa s\u00e9rie sobre as urnas eletr\u00f4nicas e as poss\u00edveis fraudes eleitorais atrav\u00e9s delas. Uma vez mais, assinadaTour Details<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[289],"tags":[150,24,199],"class_list":["post-11921","post","type-post","status-publish","format-standard","hentry","category-pedro-migao","tag-eleicoes-2010","tag-politica","tag-urna-eletronica"],"_links":{"self":[{"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/posts\/11921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/comments?post=11921"}],"version-history":[{"count":0,"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/posts\/11921\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/media?parent=11921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/categories?post=11921"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/tags?post=11921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}