Pergunta

A minha aplicação web está contando com a segurança gerenciada por contêiner e eu estou querendo saber se é possível usar senhas salgados em tudo. Tanto quanto eu posso dizer é fácil o suficiente para armazenar senhas digeridos em um banco de dados por apenas configurar um Realm JDBC ou DataSource, mas não há nenhuma maneira de adicionar um sal para aqueles digerir.

Todas as sugestões?

Editar: parece que eu só preciso pensar um pouco mais antes de fazer perguntas; -)

É apenas uma questão de escolher quem está fazendo o cálculo digerir (cliente ou servidor) e configurar o Tomcat em conformidade.

Foi útil?

Solução

Se você está criando e armazenando os digere você pode criar e armazenar os sais ao mesmo tempo.

A sua mesa auth conteria .... pwdDigest varchar (64), - ou int256 se você tiver um hashSalt int64, ....

Em seguida, dependendo do protocolo de autenticação que você está usando você quer enviar o hashSalt para o cliente quando você recebe o nome de usuário para a criptografia do lado do cliente ou usá-lo para criptografar a senha se você recebê-lo de forma clara.

Eu não estou familiarizado com as tecnologias de acesso de banco de dados que você está falando, por isso peço desculpas se eu perdi o ponto e simplificado a resposta.

Outras dicas

Tomcat 5.5 e 6.0 não suportam senhas salgados em JDBCRealms e DataSourceRealms. É um bug conhecido, eo patch sugerido parece funcionar bem, mas ainda não foi aceito.

Se você não deseja aplicar o patch que você pode pelo menos usá-lo como um exemplo de implementação:

Bug 45871 - Suporte para correções salgados e digeridos no DataSourceRealm

criptografia baseada em Passord em JCE usa sal de acordo com PKCS # 5. Consulte http: //java.sun .com / J2SE / 1.4.2 / docs / guia / security / JCE / JCERefGuide.html # PBEEx para um exemplo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top