Bom dia a todos
Estou iniciando no desenvolvimento mais “serio” em java para web.
Atualmente, estou estudando sobe segurança e me surgiu uma duvida: Como posso proteger a senha que o usuário digitou de ser interceptada e capturada por um possivel sistema que faz listen no http da rede ?
Minha maior dificuldade, é entender como posso criptografar a senha ao sair da tela de login, para que quando começe o tráfego na rede, já esteja criptografado e nenhum sistema consiga identificá-lo.
Usar HTTPS seria o mais indicado ou é possivel fazer algo mais seguro ?
Obrigado!
A tela de login do Yahoo Mail usava MD5 + https; MD5 é feito através de um javascript (ou seja, a senha não trafega, apenas o seu MD5) e o https é usado para criptografar a conexão. Não sei como é feito agora.
Obviamente você tem, no javascript, de limpar o campo de senha após o seu uso, para evitar que alguém que venha a usar o browser mais tarde acabe pegando a senha.
Mas fazer o MD5(ou alguma outra criptografia) via javascript não acaba sendo muito vulnerável ?
Digo isso pois é comum os casos onde hackers modificam uma tela, pegando o fonte da original, e modificam o script, assim, tirando a criptografia. Claro, para isso, o invasor deveria conseguir hospedar essa pagina em outro lugar para a vitima acessar.
[quote=andre_java]Mas fazer o MD5(ou alguma outra criptografia) via javascript não acaba sendo muito vulnerável ?
Digo isso pois é comum os casos onde hackers modificam uma tela, pegando o fonte da original, e modificam o script, assim, tirando a criptografia. Claro, para isso, o invasor deveria conseguir hospedar essa pagina em outro lugar para a vitima acessar.[/quote]
Bom… nesse caso o site de um famoso banco também é vulnerável, já que foi feito um “DNS hijacking” ou “poisoning” que redirecionou todos os clientes desse banco que usavam o DNS padrão de um famoso provedor de banda larga para o site dos hackers.
Acho que não tem muito jeito, nesse caso.
Por via das dúvidas, o ideal é consultar algum especialista em segurança.
[quote=thingol]Bom… nesse caso o site de um famoso banco também é vulnerável, já que foi feito um “DNS hijacking” ou “poisoning” que redirecionou todos os clientes desse banco que usavam o DNS padrão de um famoso provedor de banda larga para o site dos hackers.
Acho que não tem muito jeito, nesse caso.
Por via das dúvidas, o ideal é consultar algum especialista em segurança.[/quote]
É… isso é verdade.
Bom, em um primeiro momento, imagino que o HTTPS e uma criptografia via javascript vão resolver meus problemas
Obrigado pela sua ajuda Thingol.
Se você está em HTTPs os dados trafegados já estão criptografados,
você precisaria criptografar via javascript apenas se não trabalhasse com https.
[quote=mark_domi]Se você está em HTTPs os dados trafegados já estão criptografados,
você precisaria criptografar via javascript apenas se não trabalhasse com https.
[/quote]
Não conheço muito de HTTPS, mas o primeiro request não estará criptografado, certo ?
Entendo que após o submit, quando ele bater no servidor, o servidor irá criptografar tudo, mas até chegar nele, a informação chega sem criptografia, certo ?
tem duas formas de resolver isso
1 é programando
2 configurando
programando: você cria uma página index que não faz nada alem de direcionar para o https
configurando: você fala para o tomcat (ou o seu servidor de aplicação) que todas as requisições com o padrão X (por exemplo tudo que estiver em “http:/ip/long”) deverá ser redurecionaro para a a porta 443 (https)
complicar pra que?
rsrs
boa sorte
Para te ajudar…
a alguns anos eu escrevi este post, dá uma olhada.
http://www.guj.com.br/posts/list/29710.java
Legal, vou dar uma verificada no seu post.
Obrigado Mark