pages tagged bancorealFSFLAhttp://www.fsfla.org/ikiwiki/tag/bancoreal.htmlFSFLAikiwiki2019-08-18T16:05:32Z2007-11-23-fazendo-mais-que-o-possivel.pthttp://www.fsfla.org/ikiwiki/blogs/lxo/2007-11-23-fazendo-mais-que-o-possivel.pt.html2007-11-23T18:57:06Z2007-11-23T18:51:36Z
<p>Ontem à noite, me ligaram do Banco Real, a respeito do
<a href="http://www.fsfla.org/ikiwiki/blogs/lxo/2007-11-06-fazendo-mais-que-o-possivel.pt.html">“Módulo de Proteção”</a>.</p>
<p>A boa notícia é que vão manter a possibilidade de usar o NetBanking
sem o Módulo de Proteção, mas ainda não têm certeza se com detecção
automática do sistema operacional ou se através de solicitação
individual por telefone ou algo assim.</p>
<p>Ou seja, a imposição provavelmente vai ser mantida para usuários de
Microsoft Windows, não sei se só usuários do Internet Explorer ou
também de outros navegadores como o Mozilla Firefox. Como se esses
usuários já não tivessem problemas suficientes...</p>
<p>Será que recomendar o uso de um sistema operacional seguro não seria
mais fácil que ficar correndo atrás de mecanismos nunca suficientes
para desabilitar o software malicioso que usuários insistem em deixar
invadir seus computadores? De repente até mandar pros usuários uma
distro GNU/Linux Live, dessas que roda a partir do CD, sem necessidade
de instalação? Seria a forma mais segura de garantir que o software
usado pelo cliente não tenha sido corrompido, e ainda promoveria a
cultura de liberdade e segurança computacional.</p>
<p>Em vez disso, preferem ficar amarrando ainda mais os pobres usuários
de MS-Windows, negando-se a sequer liberar o código fonte do módulo de
proteção [de quem?], o que me leva a concluir que, das duas, uma:</p>
<ul>
<li><p>o banco está enganando a gente, valendo-se do culto ao
<a href="http://www.cic.unb.br/~pedro/trabs/santobyte.html">Santo Byte</a> (a
infinita fé do brasileiro na infalibilidade de processos implementados
através de computadores, como por exemplo a
<a href="http://www.lsd.ic.unicamp.br/~oliva/fun/songs/Orna.Eleitronica">Orna
Eleitrônica</a>) para fazer parecer que segurança só é possível com a
proteção do santo e fédemais,</p></li>
<li><p>ou o pessoal da segurança do banco não entende o suficiente de
segurança, e está enganando o resto do banco e seus clientes com esse
mito de que segurança é colocar na mão do bandido o queijo e uma
cimitarra com os dizeres em turco "para uso exclusivo das forças
armadas" e esperar que, só porque é uma espada diferentosa com dizeres
em outra língua o bandido não vai perceber que pode usá-la pra cortar
e comer o queijo.</p></li>
</ul>
<p>Gente, segurança só é robusta quando, mesmo que o bandido entenda
perfeitamente como funciona o mecanismo, ainda não vai conseguir
abusar do sistema. Não pode depender de ninguém conseguir decifrar o
programa que executa em seu próprio computador! Cedo ou tarde, alguém
vai conseguir, como <a href="http://www.fsfla.org/ikiwiki/anuncio/2007-04-irpf2007-livre.pt.html">fizemos com o
IRPF2007</a> para defender nossa liberdade. Mas, em se tratando de
tanto dinheiro, cedo é mais provável que tarde, e por motivos bem
menos nobres.</p>
<p>Então, dizer que não pode liberar o módulo de proteção é pura
enganação. A dúvida que fica é se estão enganados ou enganando.</p>
<p>Até blogo...</p>
2007-11-06-fazendo-mais-que-o-possivel.pthttp://www.fsfla.org/ikiwiki/blogs/lxo/2007-11-06-fazendo-mais-que-o-possivel.pt.html2007-11-06T20:39:39Z2007-11-06T20:33:28Z
<p>Quando li que um dos bancos com que trabalho ia passar a
<a href="http://www.bancoreal.com.br/modulodeprotecao/rib/">exigir a
instalação de um tal “Módulo de Proteção”</a> para eu poder fazer
operações no net banking, pensei: “Esse banco existe? Esse banco é
real? Será que não está me <strong>fazendo <em>instalar</em> mais que o
possível</strong>?”</p>
<p>Há pelo menos sete anos dou palestras por aí defendendo a ética e a
moral do <a href="http://www.gnu.org/philosophy/free-sw.pt.html">Software
Livre</a>, de que todo usuário tem direito de estudar, adaptar e
compartilhar todo o software que pode executar em seu computador, e
deve poder executá-lo para qualquer propósito, quando e como quiser.
Isso é essencial para a liberdade digital individual. Isso permite ao
usuário, se quiser, aprender, resolver seus próprios problemas e
pedir, receber e oferecer ajuda em sua comunidade.</p>
<p>Na contra-mão dessa cultura, a anti-cultura do software proprietário,
que nega ao usuário não só o conhecimento necessário para estudar e
adaptar o software (o código fonte), tornando os problemas mais
triviais insolúveis para o usuário, mas que também se preocupa em
manter o usuário ignorante, escondendo-lhe informação essencial para
sua própria segurança.</p>
<p>Não me canso de dizer quão estúpida é a idéia de executar um programa
qualquer só porque um CD ou DVD foi carregado, ou porque uma
determinada página da Internet foi aberta, ou porque um e-mail foi
visualizado. Ou de esconder informações vitais sobre o tipo de um
arquivo anexo a um e-mail ou referenciado numa página, de modo que o
usuário não possa saber, antes (ou mesmo depois) de pedir para
abri-lo, se é um texto, uma imagem ou um vídeo, estes relativamente
inofensivos, ou um programa que poderá então fazer o que quiser no
computador do pobre usuário. E tome vírus, vermes e outras criaturas
do submundo digital que sobrevivem por causa disso.</p>
<p>Mais séria ainda é a premissa de que o usuário do computador, durante
suas atividades cotidianas, deva ter permanentemente permissões de
administrador da máquina. Em sistemas operacionais de verdade, as
atividades normais se fazem como usuário comum, e somente aquilo que
efetivamente precisa de permissões de administrador se faz como
administrador. Isso é básico para a segurança. Não sendo assim,
qualquer um desses programas maliciosos, numa página, e-mail ou mídia
pode se instalar e se esconder na máquina e afetar todos os seus
usuários dali por diante, monitorando e talvez modificando qualquer
coisa que eles façam.</p>
<p>Aí sujeito escreve um programa que monitora as páginas que o
computador acessa e, em certas páginas, captura o que o usuário tecla
e os lugares onde ele clica com o mouse, e anuncia toda essa
informação num certo canal de comunicação que o autor do programa
monitora. E aí, babau!, adeus saldo da conta bancária...</p>
<p>Culpa de quem? Do usuário, que teve software inadvertidamente
instalado em seu computador? Do fabricante do sistema operacional,
que induziu o usuário ao erro? Do sujeito que escreveu o programa?
Do banco, que não fez o impossível para proteger seu cliente frente à
ignorância imposta pelo fabricante monopolista de sistema operacional?</p>
<p>Errou o cliente usuário, que, ignorante, escolheu um sistema
operacional que faz questão de mantê-lo ignorante e sem controle sobre
seu computador: através de sua escolha infeliz, tanto na hora de
escolher qual sistema operacional usar quanto na hora de decidir quais
páginas acessar ou que programas abrir, permitiu tacitamente que
programas alheios a seus interesses roubassem sua informação.</p>
<p>Errou quem usou as informações coletadas e publicadas pelo programa,
seja quem divulgou o programa ou não. Se você acha uma carteira na
rua, a coisa certa a fazer é tentar devolvê-la ao dono, e não se
apropriar do dinheiro que houver nela. Acessar uma conta bancária
alheia e transferir fundos sem autorização explícita de seu titular é
errado, e ainda por cima é crime.</p>
<p>Errou o fabricante do sistema operacional, que escondeu informação do
usuário e não lhe pediu confirmação antes de executar um programa
potencialmente malicioso, abrindo as portas para que tais programas
facilmente tomassem conta do computador.</p>
<p>Lamentavelmente, parece que a lei brasileira, em vez de culpar e punir
quem errou, joga a responsabilidade toda pra cima do banco, o único
que não fez nada de errado. Tipo assim, como o banco poderia saber
que o usuário não deu suas senhas para outra pessoa acessar sua conta?
Por que haveria de ser responsabilizado por uma transação que, de seu
ponto de vista, tinha todos os elementos que comprovam a autorização
pelo cliente usuário?</p>
<p>Enfim... É por causa dessa insegurança crônica no sistema operacional
mais usado e da lei absurda que os bancos não só tentam aprovar
<a href="http://www.safernet.org.br/petitioner/projeto_lei_azeredo/">leis
ainda mais absurdas</a> e, enquanto isso não acontece, inventam
mecanismos para dificultar a vida dos programas que usuários
inadvertidamente instalam, e dos próprios usuários, como os cartões de
senhas e os teclados virtuais.</p>
<p>Enquanto cartões de senha sejam um tanto inconvenientes e adicionem
pouco à segurança de um sistema já seguro, não há críticas sérias a
esse mecanismo.</p>
<p>Teclados virtuais, porém, têm conseqüências realmente daninhas, além
de ser um paliativo inconveniente de efeitos positivos restritos e
facilmente contornáveis. Eles evitam que o usuário digite sua senha
no teclado, inutilizando os programas maliciosos que monitoravam
apenas o teclado. Estes passam a ter de monitorar os cliques do mouse
e tomar nota do contexto sobre o qual os cliques ocorrem. É por isso
que alguns sistemas de net banking piscam o teclado todo a cada
clique: para que o programa monitor tenha menos chances de capturar a
imagem da tecla virtual sobre a qual se clicou. Mas aí, não é só o
programa monitor esperar um pouquinho mais, até a imagem voltar, ou
ser rápido o suficiente para capturá-la antes que seja apagada?</p>
<p>Enquanto isso, eu, num computador seguro, que poderia digitar
rapidamente minha senha no teclado, sem dar chance a que alguém a
visse, preciso “catar milho” com o mouse, de modo que minha senha
ficaria facilmente visível a alguém que estivesse olhando para minha
tela, mesmo à distância. E não adianta eu tentar digitar a senha no
teclado pra evitar essa visibilidade, o net banking simplesmente não
deixa.</p>
<p>O do Real pelo menos funciona bem em navegadores convencionais, sem
necessidade de um plugin para uma máquina virtual Java ainda
proprietária, que por exemplo o Banco do Brasil exige. O plugin da
Sun <a href="http://www.fsfla.org/ikiwiki/blogs/lxo/2007-05-08-jdk-livre-pero-no-mucho.pt.html">não faz parte do conjunto
de software já liberado no OpenJDK</a>, e sua versão 100% Livre, o
<a href="http://en.wikipedia.org/wiki/IcedTea">Icedtea</a>, tem plugin baseado
no <a href="http://en.wikipedia.org/wiki/GNU_Compiler_for_Java">GNU Compiler
for Java</a> e no <a href="http://en.wikipedia.org/wiki/GNU_Classpath">GNU
Classpath</a>, ainda sem a interface para Javascript exigida pelo Banco
do Brasil. Ou seja, você consegue digitar sua senha, mas o
autenticador diz que a senha foi nula.</p>
<p>Foi por isso que, depois de anos reclamando e aguardando a restauração
de uma solução funcional, praticamente deixei o Banco do Brasil em
favor do Banco Real. Será que vou ter que fazer isso de novo?</p>
<p>A razão, desta vez, seria esse tal “módulo de proteção”, inventado e
implantado antes que pudesse tomar as rédeas o novo dono do Real, o
Santander Banespa, que sempre se preocupou em respeitar minhas
escolhas de software.</p>
<p>A primeira pergunta a fazer é: proteção de quem? Diz a página de
download do instalador do módulo de proteção:</p>
<blockquote><p>O Módulo de Proteção do BANCO REAL é um software que trabalha de
forma integrada ao Internet Explorer impedindo que programas
maliciosos instalados no seu computador sem seu consentimento
capturem ou solicitem seus dados de acesso ao Real Internet Banking.</p></blockquote>
<p>Hmm... Internet Explorer? Não uso. De fato, meu computador não roda
programas maliciosos sem meu consentimento, muito menos esse queijo
suíço de segurança que se chama <a href="http://www.fsfla.org/ikiwiki/blogs/lxo/2007-05-11-IE-a-caca.pt.html">Internet
Explorer</a> ou o sistema operacional ao qual ele está integrado. Eu só
instalo Software Livre.</p>
<p>Então, não preciso do módulo de proteção, certo? Se não vai me
proteger em nada, o banco pode me permitir acessar a conta sem esse
módulo indefinidamente, certo? Pode inclusive verificar, através do
campo X-User-Agent nas requisições que trafegam do meu navegador para
seus servidor qual o navegador e qual o sistema operacional que uso, e
dispensar a exigência do módulo baseado nessa informação. Certo?</p>
<p>Bom... Em teoria, teoria e prática são a mesma coisa, mas na
prática... Parece que, para conter os protestos de usuários de
GNU+Linux e do Mozilla Firefox, o Real está desenvolvendo um módulo de
segurança para esse navegador também. Diz o Real, inclusive, que
pretende que esse módulo funcione em outros sistemas operacionais,
inclusive o GNU+Linux. Enquanto isso, em caráter excepcional, e
apenas por 120 dias, estão permitindo a usuários que peçam a
desativação da exigência do módulo de segurança para suas contas.</p>
<p>Bom, vamos supor que eles façam o tal módulo funcionar em GNU+Linux,
sobre navegadores da família Mozilla. E quem usa o Konqueror, ou o
Epiphany, ou o Galeon, ou outros navegadores livres? Que dizer dos
usuários que prefiram ou precisem usar navegadores em modo texto, como
links, lynx e w3c? Vão se tornar (ou continuar) uma ralé digitalmente
excluída das comodidades do net banking? Em prol de um <strong>suposto</strong>
aumento da segurança paliativo para quem usa sistemas operacionais
deliberadamente inseguros, o banco vai cortar o acesso dos que fazem
questão de só usar software seguro? Pra proteção de quem, mesmo?</p>
<p>Não estou brincando quando digo “suposto aumento de segurança”.
Imagine que eu, ao abrir a conta no Real, houvesse dito a eles algo
assim:</p>
<blockquote><p>“Olha só, gosto de usar net banking mas entendo dos vários problemas
de segurança que envolvem essa questão, e gostaria de aumentar a
segurança para mim.</p>
<p>“Por isso, contratei um conhecido meu, especialista em segurança,
para escrever um programa que vai impedir acessos à minha conta se
eu não estiver rodando um outro programa de autorização no meu
notebook ou desktop. Eu só preciso que vocês instalem esse primeiro
programa no servidor do net banking de vocês.</p>
<p>“Não, eu não vou detalhar como esse programa funciona, meu conhecido
não explicou pra mim e nem eu nem você entenderíamos, só peço que
vocês confiem em mim e na competência técnica do programador que
contratei para desenvolvê-lo. ¡La garantía soy yo!”</p></blockquote>
<p>Levante o mouse quem acha que há alguma chance de o Real (ou qualquer
outro banco) aceitar esse hipotético pedido meu.</p>
<p>Quem seria estúpido o suficiente para rodar, em seus servidores, um
programa desconhecido e inauditável?</p>
<p>Então por que algum banco esperaria que a gente cometesse essa mesma
estupidez em nossos computadores? Por que esperaria que gente que
entende um mínimo de segurança computacional rodasse um trecho de
código que pode tomar controle completo do nosso navegador, quiçá de
tudo que fazemos no computador, só para poder fazer as transações
bancárias que já podemos fazer hoje, com segurança, num computador que
rode software seguro, inspecionável, auditável, adaptável e
socialmente aceitável?</p>
<p>E mais: no caso do módulo para Firefox, seria software desenvolvido às
pressas, em reação aos protestos de usuários, pois fica claríssimo,
pela forma como a coisa foi anunciada e modificada nas últimas
semanas, que o plano inicial era excluir todo mundo que não usasse o
IEca.</p>
<p>Infelizmente, parece que há muita gente se enganando e fazendo a
reclamação errada pro Real. Pelo menos é essa a impressão que tenho
quando ouço gente do Real me explicando sobre seus planos para
resolver as dificuldades.</p>
<p>Pedir suporte ao Mozilla Firefox e ao GNU+Linux é uma abordagem
moralmente errada. Pode até resolver o problema para alguns, mas os
demais seriam tão excluídos quanto com a solução somente para
IEca+Windows. É claro que gosto da idéia de que o Real mantenha a
opção Firefox+GNU+Linux funcionando.</p>
<p>Mas essa opção não funciona se exigir o sacrifício a segurança do
computador e da liberdade, instalando e executando Software não-Livre.
Software que não se pode inspecionar, não se pode adaptar (por exemplo
para outros navegadores e sistemas operacionais, ou para quaisquer
outros fins), e que não se pode compartilhar com outras pessoas, com
ou sem modificações que se tenha feito.</p>
<p>Um conceito não-intuitivo da matéria de segurança computacional é que
a verdadeira segurança depende da transparência do processo. Se a
segurança de um sistema computacional depende da manutenção de segredo
sobre parte de um processo implementado num programa, se esse programa
estiver disponível, o sistema não é seguro.</p>
<p>É como comprar um
<a href="http://www.japanmagic.net/store/images/foto155.jpg">cadeado cigano</a>
pra trancar a porta da sua casa, enquanto o vendedor do cadeado passa
o dia todo anunciado num megafone, na frente da sua casa, a forma de
abri-lo, mas numa língua pouco conhecida, por exemplo, o Javanês.
Você confiaria que ninguém vai entender ou decifrar a mensagem e então
entrar na sua casa?</p>
<p>Assim é com sistemas de computação baseados em segredos de processo:
cedo ou tarde, algum curioso ou espírito de porco vai investir o tempo
necessário para descobrir o segredo, e aí, acabou. São
verdadeiramente seguros somente sistemas que dependam apenas do
segredo de chaves e senhas, e estas sejam facilmente substituíveis e
mantidas fora do sistema: por exemplo, a sua senha de acesso, ou a
chave guardada num cartão de certificado digital.</p>
<p>Bom, então vamos supor que o módulo de proteção do Real seja
verdadeiramente seguro (segundo descrição acima), e acreditar que sua
intenção seja unicamente evitar a captura de teclas ou cliques do
mouse durante uma sessão de acesso ao net banking.</p>
<p>Se o sistema é realmente seguro, o Real poderia publicar o código
fonte do módulo de proteção, ou ao menos a especificação de como ele
se identifica junto ao servidor do Real, para que a própria comunidade
se encarregasse de fazer o software funcionar em outros navegadores,
sistemas operacionais, etc. Não seria lindo?</p>
<p>Mas peraí... Será que isso não viabilizaria o desenvolvimento de
módulos alternativos que não oferecessem segurança adicional alguma, e
que poderiam ser incluídos em software malicioso, acabando com a
proteção que o módulo pretendia oferecer a usuários de sistemas
operacionais inseguros? Se a segurança do sistema dependesse desse
tipo de segredo de processo, então ele não seria verdadeiramente
seguro, né? Seria só alguém gastar um tempinho pra descobrir como ele
interage com o servidor e, babau, segurança. Pra todo mundo.</p>
<p>Por outro lado, se ele for realmente seguro, vai apenas providenciar
para que a senha fornecida pelo usuário seja transmitida de maneira
segura para o banco, sem possibilidade de interceptação. Nesse caso,
a publicação do módulo, ou pelo menos de sua especificação, não traz
prejuízo algum à segurança. Então, será que o sistema do Real é
seguro ou não?</p>
<p>Para quem não acredite que um sistema realmente seguro seja possível
(ou real :-), um exemplo: na Alemanha, os bancos implementam um
protocolo seguro de autenticação de transações bancárias, com
especificações públicas. Meus amigos alemães conseguem não só
controlar suas finanças, mas também iniciar transações, usando
Software Livre, como por exemplo o
<a href="http://www.gnucash.org/">GnuCash</a>. Não precisa cada banco ficar
inventando seus próprios quebra-galhos para supostamente aumentar a
segurança: o mecanismo seguro já está lá, e sua segurança não depende
do desconhecimento público de seus detalhes. Pelo contrário: sua
resistência a ataques apesar de seu conhecimento público reforça o
fato de que é seguro.</p>
<p>Será que querer algo parecido no Brasil é pedir muito? Será que é
mais que o possível?</p>
<p>Enquanto isso, ao invés de os bancos ficarem nivelando a segurança por
baixo, será que dá pra assegurar que quem queira ter liberdade e
controle sobre <strong>todo</strong> o software que roda em seu computador possa
fazer uso do net banking, entendendo que o problema generalizado de
segurança daquele outro sistema operacional não nos afeta, e que nos
oferecer e ao mesmo tempo exigir o uso de paliativos só faz <strong>reduzir
e cercear</strong> nossa segurança, nossas opções, nossa liberdade e nossos
valores morais?</p>
<p>Em outras palavras, será que dá pra manter indefinidamente a
possibilidade de acesso seguro sem o módulo de segurança, ou liberar a
especificação ou o código desse módulo supostamente seguro, para que
sua segurança possa ser comprovada por especialistas independentes?</p>
<p>Aos clientes do banco Real que fazem questão da liberdade do software,
sugiro que entrem em contato com seus gerentes e com os canais de
atendimento do net banking e deixem claro que o ponto não é ter um
paliativo que funcione com algum navegador específico no GNU+Linux,
como parece que o banco está entendendo. O problema é a exigência de
instalação de software que não só é completamente inútil para nós, mas
também software que exclui. Exclui navegadores, exclui sistemas
operacionais, exclui pessoas. E excluirá enquanto não for Software
Livre, pois não respeita o usuário em suas necessidades de segurança,
conhecimento, adaptação e vida em comunidade. Software que não pode
ser estudado, inspecionado, modificado nem compartilhado. É software
em que não se pode confiar.</p>
<p>Se o Banco Real não entender isso, teremos novamente um grande
problema daqui a 4 meses, pois a possibilidade de acesso seguro e
confiável (do ponto de vista do cliente) ao net banking será irreal!
É, uma vez que entenda, poderemos ver se esse banco realmente faz mais
que o possível. Ou, no mínimo, o possível: manter o sistema atual em
funcionamento para quem o solicite.</p>
<p>Até blogo...</p>