Domanda

La mia applicazione web si basa sulla sicurezza gestita dal container e mi chiedo se sia possibile utilizzare password salate. Per quanto ne so, è abbastanza facile archiviare le password digerite in un database semplicemente configurando un regno JDBC o DataSource, ma non c'è modo di aggiungere un sale a quel digest.

Qualche suggerimento?

Modifica: sembra che abbia solo bisogno di pensarci un po 'di più prima di porre domande ;-)

È solo una questione di scegliere chi sta facendo il calcolo digest (client o server) e configurare Tomcat di conseguenza.

È stato utile?

Soluzione

Se stai creando e memorizzando i digest, puoi creare e conservare i sali contemporaneamente.

La tabella di autenticazione dovrebbe contenere .... pwdDigest varchar (64), - o int256 se ne hai uno hashSalt int64, ....

Quindi, a seconda del protocollo di autenticazione che stai utilizzando, puoi inviare l'hashalt al client quando ottieni il nome utente per la crittografia lato client o utilizzarlo per eseguire l'hashing della password se la ricevi in ??chiaro.

Non ho familiarità con le tecnologie di accesso al database di cui stai parlando, quindi mi scuso se ho perso il punto e semplificato troppo la risposta.

Altri suggerimenti

Tomcat 5.5 e 6.0 non supportano le password salate in JDBCRealms e DataSourceRealms. È un bug noto e la patch suggerita sembra funzionare bene, ma non è stata ancora accettata.

Se non vuoi applicare la patch, puoi almeno usarla come esempio di implementazione:

Bug 45871 - Supporto per patch salate e digerite in DataSourceRealm

La crittografia basata su Passord in JCE utilizza salt come da PKCS # 5. Vedi http: //java.sun .com / j2se / 1.4.2 / docs / guide / security / jce / JCERefGuide.html # PBEEx per un esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top