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 ?
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.
andre_a_s
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.
T
thingol
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.
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.
andre_a_s
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.
É… 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.
M
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.
andre_a_s
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.
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 ?
M
mark_domi
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
M
mark_domi
Para te ajudar…
a alguns anos eu escrevi este post, dá uma olhada.