quinta-feira, 13 de junho de 2013

IcedTea: Acessando Internet Banking do BB/Santander/HSBC/Bradesco/Itaú no Linux

Um dos grandes mitos atuais dsa Internet é o de que os sites de Internet Banking só funcionam se você usar o Java da Oracle. Eu vou ser muito sincero: depois que a Oracle comprou a Sun eu tomei um certo asco das suas atitudes e, por tabela, dos seus produtos. E de todos os produtos, o que mais me dá úlceras é o Java por simplesmente esta maravilhosa plataforma de desenvolvimento estar sendo frequentemente modificada sem levar em conta a sua comunidade. Era assim com a Sun (que inclusive incentivou a criação de outras comunidades como o OpenJDK e o Projeto Harmony).

Pelos motivos acima citados, eu decidi abolir o uso do Java da Oracle (assim como outros produtos de empresas tão duvidosas quanto) em favor do OpenJDK. Daí veio um dos primeiros problemas que tive: O Firefox não conseguia enxergar o OpenJDK como alternativa válida para usar com os bancos. Foi então que, com um pouco de pesquisa, descobri o IcedTea, um plugin para integração do ambiente Java com os browsers instalados. Para quem se lembra, antigamente era necessário criar links simbólicos no sistema apontando para a biblioteca certa. Hoje isso não é necessário e vou mostrar para vocês como fazer...




Acessando Internet Banking do Banco do Brasil (e do Santander, HSBC, Bradesco e Itaú) usando Software Livre

Com a mudança dos termos de licenciamento do Java, as distribuições passaram a não poder mais distribuir o JRE nem o JDK oficiais da Oracle em suas distribuições. Isso frustrou muitas pessoas mas deu espaço para que outras ferramentas surgissem para suprir essa abertura. Foi aí que surgiu o projeto IcedTea. O projeto têm como objetivo prover versões de código fonte aberto e livre das principais ferramentas do JDK. Já o OpenJDK é na verdade a implementação de referência que os desenvolvedores devem usar para interagir com o Java, e por isso, é aberto.

O principal problema dessa mudança do Java da Oracle para outras versões é a incompatibilidade com alguns programas específicos. Alguns diziam que serviços que fazm uso intensivo do Java provavelmente não funcionariam. Claro que com o tempo eu fui percebendo que isso é só mito, e esse tutorial vem para lhes mostrar isso. Não só as ferramentas de segurança dos bancos como também outros sistemas que dependem do Java como os sites do Governo (SCDP, IRPF, Serpro) funcionam sem nenhum problema usando o IcedTea ou o OpenJDK.


Verificando e Instalando OpenJDK/IcedTea

Primeiramente, você precisa verificar se têm o Java Runtime Environment no seu sistema. Para verificar é só usar o comando:

java -version

Se tiver instalado alguma JVM, o sistema irá retornar algo como na imagem do começo do post. Se não tiver instalado, é necessário instalar.

Primeiramente vamos instalar o OpenJDK. Para isso, basta instalar o pacote OpenJDK da sua distribuição:

Ubuntu:
sudo apt-get install openjdk-6-jre

Fedora:
sudo yum install java-1.7.0-openjdk

Archlinux:
sudo pacman -S jdk7-openjdk

Depois de instalado o OpenJDK, é necessário instalar o plugin para o Java Web Start, usado pelos bancos:

Ubuntu:
sudo apt-get install icedtea-plugin

Fedora:
sudo yum install icedtea-web

Archlinux:
sudo pacman -S icedtea-web-java7

Configurando o Firefox

Depois de instalado o OpenJDK e o Icedtea, é necessário fazer com que o Firefox carregue o plugin. Nem sempre o Firefox reconhece o IcedTea como o plugin para rodar o Java, então é necessário darmos um "empurrãozinho" as vezes. Para isso, vamos abrir as opções de configuração do Firefox em about:config e procurarmos pela seguinte chave:

dom.ipc.plugins.java.enabled

Se essa chave não existir, crie uma nova chave booleana. Em seguida, mude o seu valor para true. Essa opção é usada pelo navegador para indicar que não há JVM instalada no sistema. Com isso, o Firefox irá deixar de pedir para instalar um plugin e irá buscar o IcedTea no sistema e funcionará.

Depois dessa opção, é só reiniciar o Firefox e abrir seu banco preferido.


Conclusão:

Quem fala que algo "não é possível no linux" está se equivocando demais da conta. Por ser uma plataforma aberta, as possibilidades de se encontrar solução para os problemas é muito maior. E se não há solução, a comunidade está aí para desenvolver uma solução para o problema. Como o problema da indisponibilidade do Java da Oracle (ou do Flash da Adobe, do Silverlight da Micro$oft, entre outros). Espero que esse post tenha sido útil e que lhes mostre que não existem tais mitos como esse do Java.