{"id":11927,"date":"2010-07-01T13:48:00","date_gmt":"2010-07-01T15:48:00","guid":{"rendered":"http:\/\/www.pedromigao.com.br\/ourodetolo\/2010\/07\/a-vulnerabilidade-da-urna-eletronica-parte-ii\/"},"modified":"2010-07-01T13:48:00","modified_gmt":"2010-07-01T15:48:00","slug":"a-vulnerabilidade-da-urna-eletronica-parte-ii","status":"publish","type":"post","link":"http:\/\/www.pedromigao.com.br\/ourodetolo\/2010\/07\/a-vulnerabilidade-da-urna-eletronica-parte-ii\/","title":{"rendered":"A Vulnerabilidade da Urna Eletr\u00f4nica &#8211; Parte II"},"content":{"rendered":"<div><a href=\"http:\/\/2.bp.blogspot.com\/_KYflagr2MuI\/TCLHfYrMifI\/AAAAAAAACdU\/L_aztG8pcmE\/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\/urna.jpg\" width=\"320\"><\/a><\/div>\n<div><\/div>\n<div>Conforme dito no \u00faltimo domingo, hoje temos a segunda parte da s\u00e9rie sobre a vulnerabilidade das urnas eletr\u00f4nicas, assinada pelo analista de sistemas e ainda torcedor do Imp\u00e9rio Serrano Bruno Nascimento.<\/div>\n<div><\/div>\n<div><\/div>\n<div><b>Parte II \u2013 Sistemas operacionais, C\u00f3digo aberto e fechado<\/p>\n<p><\/b><\/div>\n<div><\/div>\n<div><a href=\"http:\/\/2.bp.blogspot.com\/_KYflagr2MuI\/TCLKIuMDzvI\/AAAAAAAACdc\/BJyMwfGo5dg\/s1600\/Nova+Imagem+(2).png\" imageanchor=\"1\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" height=\"161\" src=\"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-content\/uploads\/2010\/07\/Nova+Imagem+2.png\" width=\"200\"><\/a><\/div>\n<div>Vimos no outro post um pouco sobre o funcionamento dos microprocessadores e da BIOS. Uma das atividades da BIOS \u00e9, terminadas suas verifica\u00e7\u00f5es passar o controle da m\u00e1quina para a execu\u00e7\u00e3o de um programa. Normalmente, este programa tem a fun\u00e7\u00e3o de controlar a execu\u00e7\u00e3o dos outros programas, controlar o sistema de entrada e sa\u00edda. Este programa chama-se Sistema Operacional e, sem ele, o computador fica impossibilitado de executar outros programas ou seria muito dif\u00edcil faz\u00ea-lo.\u00a0 Dif\u00edcil porque uma das fun\u00e7\u00f5es do sistema operacional\u00a0 \u00e9 permitir que tarefas dif\u00edceis possam ser executadas de forma simples. Nem todo computador precisa de sistema operacional, pois possui informa\u00e7\u00f5es e tratamento t\u00e3o simples que dispensa este intermedi\u00e1rio. Em compensa\u00e7\u00e3o, os programas teriam que lidar com todas as opera\u00e7\u00f5es que o sistema operacional verifica quanto com sua pr\u00f3pria execu\u00e7\u00e3o.<\/div>\n<div><\/div>\n<div>Na figura acima, exibimos algumas das fun\u00e7\u00f5es que o sistema operacional faz, desde controlar o hardware, at\u00e9 controlar a execu\u00e7\u00e3o dos aplicativos, distribuindo quanto tempo cada um pode executar, quando o sistema operacional \u00e9 preparado para multiprocessamento (v\u00e1rios programas executando simultaneamente na mesma m\u00e1quina). Se podemos ver que o sistema operacional controla a m\u00e1quina, altera\u00e7\u00f5es e bugs (erros de programa) no sistema operacional podem fazer com que a m\u00e1quina efetue coisas diversas da esperada. A maioria dos bugs de seguran\u00e7a divulgados do sistema operacional Windows, que usamos na maioria dos computadores pessoais, se referem exatamente a situa\u00e7\u00f5es em que o sistema operacional acaba cedendo o controle indevidamente para outros programas. A urna eletr\u00f4nica \u00e9 um computador de arquitetura semelhante ao IBM-PC, como divulgado pelo pr\u00f3prio TSE. Estaria a urna sujeita a v\u00edrus e cavalos de tr\u00f3ia?<\/div>\n<div><\/div>\n<div>Muito dif\u00edcil. Para tanto estes v\u00edrus e cavalos de tr\u00f3ia j\u00e1 teriam que estar presentes na c\u00f3pia original controlada pelo TSE, ou seja, j\u00e1 enviadas a partir da fabricante do Sistema Operacional. Na vers\u00e3o antiga da urna eletr\u00f4nica, o sistema Operacional era o VirtuOS da MicroBase, que na \u00e9poca era um sistema de <b>c\u00f3digo fechado<\/b>. Hoje utiliza-se o sistema operacional Linux, de <b>c\u00f3digo aberto<\/b>. Mas o que o c\u00f3digo fechado ou aberto tem a ver com a seguran\u00e7a do processo da urna eletr\u00f4nica?<\/div>\n<div><\/div>\n<div>O computador entende instru\u00e7\u00f5es que chamamos de linguagem de m\u00e1quina. Para gerar estas instru\u00e7\u00f5es diretamente, existe uma linguagem denominada Assembly. O Assembly varia de m\u00e1quina a m\u00e1quina, de acordo com o conjunto de instru\u00e7\u00f5es oferecido pelo hardware. Mas se os programadores tivessem que conhecer o conjunto espec\u00edfico de instru\u00e7\u00f5es de cada m\u00e1quina, os programadores teriam de ser extremamente espec\u00edficos com rela\u00e7\u00e3o \u00e0 m\u00e1quina. Haveria programadores de Pentium, programadores de Core Duo, de Athlon e outros mais, de acordo com o microprocessador da m\u00e1quina. Ao inv\u00e9s disso, existem linguagens que chamamos de m\u00e9dio ou alto n\u00edvel, dependendo da proximidade da linguagem com a linguagem da m\u00e1quina, denominada de baixo n\u00edvel. Assim, os programadores se especializam nestas linguagens e n\u00e3o nas m\u00e1quinas em que t\u00eam de executar, permitindo maior flexibilidade no conhecimento de programa\u00e7\u00e3o. <\/div>\n<div><\/div>\n<div>Para transformar estas linguagens de alto n\u00edvel em linguagem de m\u00e1quina, existem 2 formas: a compila\u00e7\u00e3o e a interpreta\u00e7\u00e3o. A compila\u00e7\u00e3o \u00e9 a transforma\u00e7\u00e3o pr\u00e9via para a linguagem de m\u00e1quina do c\u00f3digo gerado na linguagem de alto n\u00edvel para que este seja executado tamb\u00e9m. A interpreta\u00e7\u00e3o \u00e9 a transforma\u00e7\u00e3o no momento da execu\u00e7\u00e3o da linguagem de alto n\u00edvel ou de uma linguagem intermedi\u00e1ria, gerada a partir do c\u00f3digo gerado na linguagem de alto n\u00edvel, no momento em que h\u00e1 a execu\u00e7\u00e3o do programa. O c\u00f3digo que gera o programa \u00e9 denominado de c\u00f3digo fonte ou fonte. Sistemas operacionais s\u00e3o programas tamb\u00e9m e s\u00e3o gerados desta forma. Para que rodem rapidamente na m\u00e1quina, os programas t\u00eam que usar o processo de compila\u00e7\u00e3o. Existem linguagens interpretadas r\u00e1pidas, mas no processo atual, elas ainda assim geram c\u00f3digo intermedi\u00e1rio para acelerar o processo. S\u00f3 muito antigamente (h\u00e1 mais de 50 anos atr\u00e1s) ou que necessitam muito se aproveitar de caracter\u00edsticas da m\u00e1quina s\u00e3o gerados em linguagem de m\u00e1quina diretamente. Programas que t\u00eam seus fontes divulgados em conjunto com o programa a ser executado s\u00e3o chamados de <b>c\u00f3digo aberto<\/b>. Programas que enviam apenas o c\u00f3digo a ser executado ou o intermedi\u00e1rio a ser interpretado s\u00e3o chamados de <b>c\u00f3digo fechado<\/b>.<\/div>\n<div><\/div>\n<div>Sistemas de c\u00f3digo aberto t\u00eam possibilidade de auditoria neste caso mais ampla, que sistemas de c\u00f3digo fechado, sem entrar em quest\u00f5es de custo de manuten\u00e7\u00e3o ou suporte que n\u00e3o cabem aqui, exatamente por terem a possibilidade de an\u00e1lise do c\u00f3digo fonte que originou o programa execut\u00e1vel. Assim, fica mais dif\u00edcil perpetrar uma fraude sem ser descoberta em um sistema qualquer. Deste modo, a auditoria do c\u00f3digo fonte se torna de suma import\u00e2ncia para a seguran\u00e7a da urna eletr\u00f4nica e \u00e9 mais f\u00e1cil de ser efetuada em sistemas de c\u00f3digo aberto, correto? Correto. Como dito, v\u00edrus e cavalos de tr\u00f3ia poderiam ent\u00e3o ser detectados no c\u00f3digo original j\u00e1 vindo de f\u00e1brica. Altera\u00e7\u00f5es que o programa efetue seriam detectadas e estaria configurada a fraude. Para que esta suceda, teria de ser inserida no TSE e aprovada por todos os especialistas dos partidos que auditassem esse c\u00f3digo fonte. Mas estamos falando da auditoria do c\u00f3digo fonte. Mas vimos que o c\u00f3digo fonte n\u00e3o \u00e9 necessariamente o que executa. Como garantir que o execut\u00e1vel a ser c\u00f3digo fonte seja o programa executado nas urnas eletr\u00f4nicas? Entraremos ent\u00e3o com mais detalhe no processo da urna eletr\u00f4nica e no desenvolvimento de sistemas para verificar como \u00e9 feita a transforma\u00e7\u00e3o do c\u00f3digo fonte em c\u00f3digo execut\u00e1vel.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Conforme dito no \u00faltimo domingo, hoje temos a segunda parte da s\u00e9rie sobre a vulnerabilidade das urnas eletr\u00f4nicas, assinada pelo analista de sistemas e aindaTour 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-11927","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\/11927","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=11927"}],"version-history":[{"count":0,"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/posts\/11927\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/media?parent=11927"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/categories?post=11927"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.pedromigao.com.br\/ourodetolo\/wp-json\/wp\/v2\/tags?post=11927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}