Estou há 3 dias tentando fazer esse módulo de segurança "warsaw" funcionar, mas sempre ocorre o mesmo erro: toda vez que executo o programa de diagnóstico HDA_BB, o diagnóstico acusa erro de websocket.
Eu sei que o Warsaw foi instalado e está funcionando, porque ele é um
daemon de serviço do Linux, é executado a partir de
/usr/local/bin/warsaw/core (esse arquivo
core é o
daemon de serviço, é um arquivo binário executável).
O warsaw utiliza a tecnologia de
websockets, que parece ser o futuro das conexões de navegadores mas ao mesmo tempo representa riscos à segurança das comunicações remotas. Por causa disso, se eu conseguiu usar esse warsaw, na prática vou deixar o daemon "morto" e só colocá-lo em execução quando for acessar o website do banco. O comando para interromper o warsaw é este:
sudo service warsaw stop
...e o comando para colocar o warsaw novamente em execução é este:
sudo service warsaw start
Bom, isso é o que eu pretendo fazer quando o warsaw estiver funcionando... Como atualmente essa porcaria está dando erro de websocket (e eu também já telefonei pro Banco do Brasil, mas ninguém resolve o problema), estou usando o seguinte paliativo: instalei o aplicativo do Banco do Brasil no meu smartphone Android, e além disso instalei Virtual Box no meu XUbuntu Linux, daí criei uma máquina virtual e instalei o Android 4.4 nela, em seguida instalei o aplicativo do BB para Android também nesse Android 4.4 virtualizado, e pronto, deste modo estou conseguindo acessar o
internet banking do Banco do Brasil, tanto via smartphone quanto via computador, sem precisar desse módulo de (in)segurança denominado "Warsaw".
O servidor do websocket do Banco do Brasil fica em
wss://www84.bb.com.br/broadcast/529/n6terrdb/websocket e
está funcionando: eu já testei esse servidor, a partir de um
host remoto (na Internet). Quem quiser fazer o teste, basta acessar
https://www.websocket.org/echo.html e colar o texto
wss://www84.bb.com.br/broadcast/529/n6terrdb/websocket ali no campo
Location:, daí clique em
Connect e observe como no painel à direita aparecerá a mensagem
RECEIVED: o. Isso significa que o servidor websocket do Banco do Brasil recebeu corretamente o pedido de conexão.
Enfim: o servidor do Banco do Brasil
está funcionando.
O problema é o módulo de segurança mesmo, que por alguma razão misteriosa não está conseguindo criar o "cliente" local (no computador do usuário) para poder estabelecer uma conexão com o servidor remoto (do Banco do Brasil).
A título de curiosidade, após a instalação do "HDA_BB" o usuário encontrará, dentro de
/usr/local/bin/HDA_BB, o arquivo
HDA_BB (assim, sem extensão mesmo). Esse arquivo é um shell script (um script do shell do Linux). Quem abrir esse arquivo para edição, encontrará dentro dele a seguinte função:
#CHECAR O SOCKET
function SOCKET_ON() {
ws30900=`( echo open 127.0.0.1 30900
exit
) | telnet`
echo "$ws30900" | grep "Escape character" &>> /dev/null
if [[ "$?" == 0 ]]; then
WEBSOCKET=true
else
WEBSOCKET=false
fi
#fs30800=`( echo open 127.0.0.1 30800
# exit
# ) | telnet`
#echo "$fs30800" | grep "Escape character" &>> /dev/null
#if [ "$?" == 0 ]; then
# FLASHSOCKET=true
#else
# FLASHSOCKET=false
#fi
}
export -f SOCKET_ON
Ao que me parece, o programa local
telnet não está encontrando um websocket aberto na porta
30900 do endereço IP
127.0.0.1 (codinome
localhost), daí a função está salvando a variável de ambiente
$WEBSOCKET com o valor
false, daí o diagnóstico do programa HDA_BB lê esse valor da variável
$WEBSOCKET e avisa que o websocket não está disponível (o diagnóstico só não emite esse alerta caso o valor da variável
$WEBSOCKET seja
true).
Eu não sei como fazer para que um cliente websocket seja estabelecido na porta 30900 do IP 127.0.0.1, por isto o Warsaw está em execução mas não consegue usar o navegador para estabelecer uma conexão websocket com aquele servidor do Banco do Brasil, e é por isso que eu e mais uma "pancada" de clientes do Banco do Brasil que usam Linux não estamos conseguindo acessar o
internet banking com esse famigerado módulo de (in)segurança.