2008-10-15 15 views
1

Mon application Web repose sur la sécurité gérée par conteneur et je me demande s'il est possible d'utiliser des mots de passe salés. Autant que je sache, il est assez facile de stocker des mots de passe digérés dans une base de données en configurant simplement un JDBC ou un domaine DataSource, mais il n'y a aucun moyen d'ajouter du sel à ces condensés.Comment implémenteriez-vous des mots de passe salés dans Tomcat 5.5

Des suggestions?

Edit: il semble que j'ai juste besoin de penser un peu plus avant de poser des questions ;-)

Il est juste une question de choix qui fait le calcul digérer (client ou serveur) et configurer Tomcat en conséquence.

Répondre

2

Si vous créez et stockez les condensés, vous pouvez créer et stocker les sels en même temps.

Votre table auth contiendrait .... pwdDigest varchar (64), - ou int256 si vous avez un hashSalt int64, ....

Ensuite, en fonction du protocole auth vous » re vous utilisez soit envoyer le hashSalt au client lorsque vous obtenez le nom d'utilisateur pour le cryptage côté client ou l'utiliser pour hacher le mot de passe si vous le recevez en clair.

Je ne suis pas familier avec les technologies d'accès à la base de données dont vous parlez, alors je m'excuse si j'ai manqué le point et simplifié à l'excès la réponse.

+0

C'est juste le jargon de Tomcat pour rechercher des mots de passe dans une base de données. – agnul

2

Tomcat 5.5 et 6.0 ne prennent pas en charge les mots de passe salés dans JDBCRealms et DataSourceRealms. C'est un bug connu, et le patch suggéré semble fonctionner correctement, mais il n'a pas encore été accepté.

Si vous ne souhaitez pas appliquer le patch, vous pouvez au moins utiliser comme un exemple de mise en œuvre:

Bug 45871 - Support for salted and digested patches in DataSourceRealm

+1

+1 pour trouver mon correctif et poster un lien. :) –

+0

Trucs utiles Brandon. – Wes