Estou a desenvolver um sistema usando STRUTS 2 para o meu projeto de licenciatura e preciso de uma ajudinha…
Seguinte:
Preciso implementar a parte do login usando algoritmo de autenticacao, no meu caso vou usar SHA - 256. Entao eu quero que logo que o cliente digitar a senha, o sistema deve gerar o Hash da senha no cliente para em seguida enviar o Hash para o servidor.
Preciso usar uma hash para evitar enviar a senha em Clear Text para servidor…
[quote]Pense comigo: qualquer tecnologia que alguém usar para ver a senha em texto puro, fará com que ela veja o hash.
Acaba dando no mesmo.[/quote]
Concordo plenamente, mas se eu usar um Salt no cliente, onde cada Salt só e usado uma unica vez? ou seja sempre que o cliente efetuar login, o servidor vai enviar um Salt com alguns bytes aleatório para o cliente, logo se o cliente efetuar o login terá que ser SALT+SENHA.
Por exemplo o servidor envia um Salt de “ADC” para o cliente e senha do utilizador “1234”, então sera “SALT+SENHA” = ADC1234 e em seguida gero a hash da combinação do SALT com a SENHA e na proxima vez que cliente efetuar o login, sera gerado um Salt diferente e assim em diante…
Pensei na possibilidade de usar ssl, mas não tenho permissões para entrar na sala de servidores e configurar para ssl.
Mas o servidor precisa fazer a mesma conta para bater seu hash. Ou seja, pelo seu exemplo ele precisaria saber sua senha em texto pura 1234 para concatenar com o salt que ele gerou.
Recomendo que consiga essa permissão então.
Ser criativo nessas horas pode criar um risco maior de segurança do que não ter segurança alguma.
Aliás, com o vazamento dos milhões de hashes do Linkedin e de outros 2 sites (que eu não uso e nem consigo lembrar o nome) estão saindo vários artigons sobre o processo de login.
Esse aqui é de hoje no Dzone, achei que tem boas dicas.