Segurança na hora do login

Bom dia a todos :smiley:

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 :slight_smile:

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 :slight_smile: