September 19, 2005 – 6:20 pm
Acho que cheguei a uma solução razoável para o BHO que apresentei no CNASI.
A idéia é usar imagens, da mesma forma que são usadas para evitar robôs em cadastros de webmail, envio de SMS, etc. Como funcionaria:
- O usuário envia os dados da transação
- O servidor pega esses dados, e monta uma imagem, com uma informação aleatória ao fundo e com os dados recebidos à frente
- O usuário, na confirmação, digita a informação de fundo da imagem
- O servidor executa a transação apenas se os dados recebidos no primeiro envio forem iguais ao envio final
O BHO, se quisesse trocar os dados, precisaria fazer logo no primeiro envio. A imagem viria do servidor com os dados alterados, e o BHO precisaria trocar essa imagem por uma falsa. Porém, ele não sabe a informação aleatória do fundo da imagem. Se ele trocar a imagem, a confirmação do usuário não vai funcionar. Se ele não trocar, o usuário detecta a alteração.
Ainda tenho que ruminar um pouco a idéia p/ ver se é suficiente.





7 Responses to “”
Eu passei pro desenv, eles quase me mataram pos isso iria derrubar o servidor/aplicação.
Além de ser possivel o bho ler o entry box que o usuário preencher e reescrever a pagina + imagem do fundo com a mesma “autenticação”.
Dependendo de como for montado o challenge-response, ambas as informações podem ser capturadas antes de chegar no servidor e nos olhos do cliente.
Pra mim algumas funçoes do BHO deveriam ser retiradas, ou a Microsoft implementar alguma engine com capacidade heuristica para analise do comportamento do IE, nao enxergo uma ação licita que exiga on-the-fly reescrita de posts, chamadas a funcoes CreateProcess a partir do browser e etc.
By Victor Pereira on Sep 19, 2005
Victor,
Não vejo como um BHO seria capaz de ler uma informação aleatória no fundo de uma imagem enviá-la para o servidor, um OCR poderia ser utilizado, porem com algumas técnicas de embaralhamento de imagem, o OCR teria um índice de erro muito alto.
Augusto,
A ídéia me parece capaz de mitigar os BHOs, contudo o procedimento do usuário não me parece trivial, pelo contrário, me parece bem complexo. Acredito que os controles de segurança para usuários precisam de uma interface simples e intuitiva, ou não são eficazes.
By Gustavo Araujo Bittencourt on Sep 20, 2005
Gustavo, foi exatamente isso que pensei, um OCR.
Outra coisa, nao acredito que seja responsabilidade da aplicacao de internet banking efetuar um controle que deveria ser feito pelo sistema operacional
Só para finalizar, via GPO é possivel se controlar quais BHOs rodarão em uma máquina, mas isso funciona bem no ambiente corporativo, já para ambientes domesticos, a coisa complica.
By Victor Pereira on Sep 20, 2005
O OCR costuma ser evitado com imagens do tipo que são usadas nessas situações, com letras distorcidas, etc. E apesar de ser um pouco mais complicado, não acho que seja tão ruim para o cliente. Seria algo do tipo “confira os dados, digite sua senha e as letras que estão no fundo do comprovante”.
VP, concordo com você, mas estou trabalhando momentâneamente com a filosofia atual dos bancos de tentar resolver o problema nas duas pontas. P/ mim é problema do usuário e pronto, ele que deve cuidar da segurança da sua própria máquina. Cruel, mas é a vida. Ninguém reclama com as montadoras quando alguém morre em acidente de carro por direção perigosa.
By Augusto on Sep 20, 2005
Acho que um dos desafios para implemetação seria colocar as duas informações em uma imagem sem prejudicar a legibilidade do usuário, porem dificultando a legibilidade de um OCR.
By Gustavo Araujo Bittencourt on Sep 20, 2005
Augusto eu também achei a solução interessamte, mais não entrariamos nos problemas convencionais do captcha? Como dificuldade para interpretar as letras por exemplo. É problema do usuário, mais acho que o captcha não seria algo tão simples.
By Wagner Elias, CBCP on Sep 21, 2005
Eu nao imagino minha mãe conseguindo ler um captcha sem o oculos fundo-de-garrafa-power-plus-advanced dela, muito menos o superintendente executivo do banco que vetará essa opção no primeiro piloto.
Não acho certo tentar contornar uma falha do ambiente com um elefante branco na aplicação.
By Victor Pereira on Sep 27, 2005