Instalando Token do Banco do Brasil em kernel 3.15 ou superior. NOVO!

22 de janeiro de 2015

Token Banco do Brasil

Atualizado em 28/03/2018

Olá, quem vos escreve é o Bruno Gonçalves, continuo com preguiça de criar meu próprio blog, então o Tales me empresta o blog quando quero passar alguma dica.

O Banco do Brasil desde janeiro de 2015 parece estar se esforçando cada vez mais para dificultar o acesso através do Linux, utilizar o Token é quase impossível, porém aqui vamos simplificar bastante o processo.

Instale o arquivo, bbtokentool_1.0.0-3_all_v1.0.deb, que vem incluso no próprio Token, ou baixe o arquivo nesse endereço: http://www.watchdata.com/brazil/BBtoken/soft/bbtokentool_1.0.0-3_all.deb

Lembre que além dos passos a seguir também é necessário possuir o Java instalado no sistema.

 

Solução rápida

Após ter instalado o pacote: bbtokentool_1.0.0-3_all.deb, baixe e instale o pacote de correção que faz o DRIVER do bbtokentool funcionar em sistemas com kernel mais recente que a versão 3.15: http://biglinux.c3sl.ufpr.br/packages/unstable/main/bbtoken-fix_1.0.0-1big1_all.deb

Ainda é necessário instalar dois complementos que permitem o funcionamento no site do Banco do Brasil, baixe os 2 arquivos a seguir, de acordo com o sistema em uso, seja 32 ou 64 bits. Após o download feche o navegador Firefox, instale os 2 arquivos e então abra o Firefox e acesse o Banco do Brasil.

Para 32 bits:
Modulo Warsaw para BigLinux, Debian, Ubuntu e derivados em versão 32 bits
Módulo de assinatura para BigLinux, Debian, Ubuntu e derivados em versão 32 bits

Para 64 bits:
Modulo Warsaw para  BigLinux, Debian, Ubuntu e derivados em versão 64 bits
Módulo de assinatura para BigLinux, Debian, Ubuntu e derivados em versão 64 bits

 

Instale o plugin do Flash para utilizar no Firefox:

Para isso abra o gerenciador de pacotes, por exemplo, o synaptic e instale o pacote libflashplugin.

Outra opção é instalar com o comando: sudo apt-get install libflashplugin

Ao acessar a página do Banco veja o ícone que parece um bloco de lego antes do cadeado verde, clique no mesmo e permita o uso do Flash Player.

 

Agora seu Token já está funcionando!


Explicação detalhada

Utilizei o arquivo .deb que vem incluso no token do BB e não o do site, porém tudo indica ser o mesmo pacote.

Após instalar o pacote, abra o arquivo: /usr/src/wdtoken-1.0.0/wdtoken.c

Substitua a linhas 457 e 611
Uma com o conteúdo: interruptible_sleep_on_timeout (&usbreader->wait,RETRY_TIMEOUT);
E a outra com o conteúdo: interruptible_sleep_on_timeout (&usbreader->wait, RETRY_TIMEOUT);

Sim, as linhas são iguais, porém em uma antes do RETRY existe um espaço vazio, isso não interfere no código, portanto se você for efetuar a troca da linha usando sed observe essa pequena diferença.

E substitua cada uma das duas linhas por essa aqui: msleep_interruptible (RETRY_TIMEOUT);
Pronto, agora é só salvar o arquivo e compilar.
Para a compilação recomendo utilizar o dkms que já está incluso no pacote, com esses 2 comandos:

/usr/src/wdtoken-1.0.0/dkmsinstaller uninstall
/usr/src/wdtoken-1.0.0/dkmsinstaller install

Adição extra que torna compatível também com kernel 4.11 ou superior:
Inclua a seguinte linha junto aos outros includes no início do arquivo: /usr/src/wdtoken-1.0.0/wdtoken.c

#include <linux/sched/signal>

Agora você pode executar novamente o daemon do token e tudo deve estar funcionando.

Nas versões mais recentes do Ubuntu e Debian o sistema de inicialização foi trocado para o systemd, porém o pacote do token do Banco do Brasil não está preparado para funcionar com esse sistema, portanto para contornar essa situação criamos o arquivo para tornar compatível e ativamos esse arquivo, para isso copie e cole o código a seguir no terminal:

 

echo '[Unit]
Description=bbtoken

[Service]
Type=forking
ExecStartPre=/etc/init.d/wd_udk start
ExecStart=/usr/lib/watchdata/tools/WdkmgrServer
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target'| sudo tee /etc/systemd/system/bbtoken.service

systemctl enable bbtoken
sudo service bbtoken start

 

Pronto, agora todos os problemas de uso do token do Banco do Brasil foram contornados, essas informações foram testadas no Ubuntu 16.04 e BigLinux 7.10.

28 Comentários

  1. Alessandro Valim

    ótima dica!

    Responder
  2. Marcelo Gomes de Oliveira

    Excelente explicação, deu super certo aqui e resolveu o meu problema.
    Muito obrigado!!

    Responder
  3. Pedro Mello

    Obrigado pela solução. O único problema é que tenho que fazer toda vez que desligo o computador. Já fiz todos os passos, alguem tem ideia do que pode ser?

    Responder
    • Bruno Gonçalves

      Após efetuar uma vez, deve bastar esse comando após desligar e ligar novamente o computador, isso ocorre pq mudou o sistema de boot do ubuntu de upstart para systemd:

      sudo /etc/init.d/wd_udk restart

      Responder
  4. Rodrigo Capilé

    Excelente explicação, salvou meu dia. Mas na minha instalação o WdkmgrServer estava em outra pasta /usr/lib/watchdata/tools/WdkmgrServer. Ubuntu 16.04 com kernel 4.4

    Responder
    • Felipe Caetano Figueredo

      Rodrigo Capilé sua dica salvou a lavoura. Já estava a quase um mês buscando uma solução e não saía do lugar. Quando você apontou que a pasta do WdkmgrServer é diferente no Ubuntu 16.04, metade da montanha acabou. Basicamente, é só corrigir as linhas de onde aparece “usr/lib/watchdata/wdkserver/WdkmgrServer” e substituir por “/usr/lib/watchdata/tools/WdkmgrServer”. Linux, vivendo e aprendendo. Abraços!

      Responder
  5. carlosbertholdi

    Bom dia, obrigado por compartilhar essa informação, mas não estou conseguindo rodar o gerenciador financeiro, estou usando ubuntu 16.04 com o java 8 da oracle. Rodei o /usr/lib/watchdata/tools/WdkmgrServer usando sudo mas o processo nao aparece na lista de processos abertos ao rodar o link o gerenciador financeiro, o java applet é carregado, inseri o token, pediu senha e tudo, mas apos ele nao carrega a pagina inicial do gerenciador. Executando o /usr/lib/watchdata/tools/WdkmgrServer como usuario comum, o processo aparece na lista de processos mas o gerencidor pula o login e tenta carregar a pagina inicial do gerenciador.

    Responder
    • carlosbertholdi

      Olá, gostaria de saber se o pessoal ai que conseguiu acessar o gerenciador financeiro bb no ubuntu, ainda estão acessando, pois tentei acesso sem o token pela chave J e senha, e mesmo assim o gerenciador exibe a mensagem “Aguarde” e não carrega nunca. Acho que o problema esta no java, tenho um notebook com java 8 update 60 da oracle e está funcionando beleza e no pc aqui da empresa não roda, aqui na empresa já tentei com todos os javas, com o icetead plugin e com todas as ultimas versoes dos java 6, 7, 8 e 9 da oracle e nenhuma delas consegue carregar a pagina inicial do gerenciador.

      Estava usando o ubuntu 14.04, o gerenciador financeiro parou de funcionar, então atualizei o java e nada, baixei o ubuntu 16.04 com ultimas atualizações, instalei o token com java 8 update 91 e o mesmo chega a pedir senha, mas apos isso nao carrega a tela inicial do gerenciador bb. Para vocês que estão acessando o gerenciador financeiro, poderiam me informar java usado, versão, kernel usado e qual distribuição versão vocês estão usando para acessar o gerenciador bb?
      Muito Obrigado!

      Responder
      • Tales A. Mendonça

        Olá, eu não uso ubuntu nem token do BB, meu pai uso ubuntu e BB, mas não usa token. O BB só funciona bem com o jaca da oracle 8. Vou dar uma pesquisada!

        Responder
      • Bruno Gonçalves

        Java 8 atualização 74 no deepin ta ok
        Kaiana 14.04 também ta ok

        Já tive problema similar quando estava em uma rede usando load balance que trocava o ip constantemente, uma tentativa seria conectar o computador pela rede do celular e não pela rede da empresa e ver se funciona.

        Responder
        • carlosbertholdi

          Obrigado pela dica, vou levar a máquina pra casa e testar lá então. Mas a princípio o IP de internet na empresa é fixo e o IP interno da rede tb, quem sabe alguma coisa config no roteador…

          Responder
        • carlosbertholdi

          Boa tarde, levei o notebook com Ubuntu 14.04 que acessa o gerenciador, na empresa e o mesmo parou de acessar, apresentando o mesmo problema, muito obrigado Bruno Gonçalves pela dica, é alguma coisa aqui na rede da empresa, agora acho que vou conseguir resolver o problema.

          Responder
          • carlosbertholdi

            Boa tarde, finalmente funcionou, era alguma coisa no modem fibra optica da Parks. O pessoal da Sulnet, nossa provedora local de internet, vieram aqui e trocaram o equipamento e o bb gerenciador financeiro voltou a funcionar sem problemas no ubuntu 16.04 e com oracle java 8 update 101.

            O engraçado era que todos os outros bancos e internet em geral estavam funcionavam normalmente menos o bb. Obrigado pelo tutorial bbtoken e pelo Bruno Gonçalves, sem ele não iria ter suspeitado que poderia ser alguma coisa com a rede.

          • Tales A. Mendonça

            Que bom que deu tudo certo 😉

  6. Mauricio Chamati

    Será que consegue me ajudar? Segui todos os passos em uma instalação fresh do Ubuntu 16.04 x64, com java8 instalado e Firefox.
    Entretanto, apesar da mensagem de sucesso após rodar o …1.1.1.8/sudo ./install, o site do Banco do Brasil ainda dá a mensagem “Insira seu cartão na leitora ou conecte seu token”. Tem como ver log de erro, alguma dica?

    Responder
    • Tales A. Mendonça

      Olha… Essa vou ficar te devendo, não sei o que pode ser.. Chegou a pesquisar em outros locais para tentar descobrir o que poderia ser? Você foi a primeira pessoa a relatar esse erro.

      Responder
      • Mauricio Chamati

        Tales, pesquisei sim, inclusive demorei para responder pois consegui contato com o suporte da watchdata e aguardei para ver se iriam agregar alguma informação, mas sem sucesso. Acho estranho os demais relatórios de sucesso considerando que utilizei uma instalação do zero do Ubuntu.Aparentemente tudo roda normal, inclusive o console do Java, único log que consegui encontrar, aponta como encontrado o arquivo */usr/lib/watchdata/lib/libwdpkcs.so* e que foi carregado o módulo PKCS#11 corretamente. Porém, o applet mantém a mensagem “Insira seu cartão na leitora ou conecte seu token”. Se tiver qualquer dica do que pode ser feito, agradeço. Consigo rodar com o esse usb token em Ubuntu 14 utilizando o tar.gz e install, mas preciso migrar para o Ubuntu 16, logo tentei somente com o .deb

        Responder
  7. Marcos Nunes

    Olá obrigado, antes nem o BBTokenTool detectava o token, depois destes passos ele detecta, no firefox eu consigo encontrar ele nos dispositivos de segurança mas no site do BB não funciona da o seguinte erro: “Erro ao preparar a leitora: Nenhum cartão/token encontrado.”
    Sabes me dizer o que posso fazer? Utilizo o Ubuntu 16.04

    Responder
  8. Fernando Laudares Camargos

    Excelente, obrigado!

    Responder
  9. Andre Rodovalho

    Cara, funcionou mesmo, muito obrigado!
    Eu tive que mudar também o caminho para o /usr/lib/watchdata/tools/WdkmgrServer
    Estou usando o Lubuntu 16.04, kernel 4.4.0

    Responder
  10. Paulo Cesar

    Dica antiga e excelente.
    Rodei essa Web para solucionar o problema, e novamente acabei com essa dica.
    Uso Linux Mint 18 e não reconhecia o BB Token de forma alguma, agora, só alegria.
    Obrigado

    Responder
  11. Julio Neto

    Parece que na atualização pro 17.10 algo não bate com o novo kernel. Alguma ideia do que fazer?

    ramoz@ramoz-H61MLV2:~$ sudo /usr/src/wdtoken-1.0.0/dkmsinstaller install
    ERROR: Cannot create report: [Errno 17] File exists: ‘/var/crash/bbtokentool.0.crash’
    Error! Bad return status for module build on kernel: 4.13.0-16-generic (x86_64)
    Consult /var/lib/dkms/wdtoken/1.0.0/build/make.log for more information.
    Failed to install using DKMS

    ======

    log:

    DKMS make.log for wdtoken-1.0.0 for kernel 4.13.0-16-generic (x86_64)
    ter out 24 12:56:26 -03 2017
    make -C /lib/modules/4.13.0-16-generic/build M=/var/lib/dkms/wdtoken/1.0.0/build modules
    make[1]: Entering directory ‘/usr/src/linux-headers-4.13.0-16-generic’
    CC [M] /var/lib/dkms/wdtoken/1.0.0/build/wdtoken.o
    /var/lib/dkms/wdtoken/1.0.0/build/wdtoken.c: In function ‘WD_read’:
    /var/lib/dkms/wdtoken/1.0.0/build/wdtoken.c:378:7: error: implicit declaration of function ‘signal_pending’; did you mean ‘timer_pending’? [-Werror=implicit-function-declaration]
    if (signal_pending (current)) {
    ^~~~~~~~~~~~~~
    timer_pending
    /var/lib/dkms/wdtoken/1.0.0/build/wdtoken.c: In function ‘WD_write’:
    /var/lib/dkms/wdtoken/1.0.0/build/wdtoken.c:640:1: warning: the frame size of 2120 bytes is larger than 1024 bytes [-Wframe-larger-than=]
    }
    ^
    cc1: some warnings being treated as errors
    scripts/Makefile.build:309: recipe for target ‘/var/lib/dkms/wdtoken/1.0.0/build/wdtoken.o’ failed
    make[2]: *** [/var/lib/dkms/wdtoken/1.0.0/build/wdtoken.o] Error 1
    Makefile:1546: recipe for target ‘_module_/var/lib/dkms/wdtoken/1.0.0/build’ failed
    make[1]: *** [_module_/var/lib/dkms/wdtoken/1.0.0/build] Error 2
    make[1]: Leaving directory ‘/usr/src/linux-headers-4.13.0-16-generic’
    Makefile:7: recipe for target ‘all’ failed
    make: *** [all] Error 2

    Responder
    • Bruno Gonçalves

      Ainda não sei sobre o problema, parei de utilizar Ubuntu e voltei com o BigLinux, quando tiver tempo faço um teste no virtualbox em relação a isso.

      Responder

Enviar Comentário

O seu endereço de e-mail não será publicado.