Question

Mon application Web repose sur la sécurité gérée par le 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 domaine JDBC ou DataSource, mais il n’ya aucun moyen d’ajouter un sel à ceux-ci.

Des suggestions?

Modifier: il me semble que je dois juste réfléchir un peu plus avant de poser des questions; -)

Il suffit de choisir qui effectue le calcul de résumé (client ou serveur) et de configurer Tomcat en conséquence.

Était-ce utile?

La solution

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

Votre table d'authentification contiendrait .... pwdDigest varchar (64), - ou int256 si vous en avez un hashSalt int64, ....

Ensuite, selon le protocole d'authentification utilisé, vous envoyez le hashSalt au client lorsque vous obtenez le nom d'utilisateur pour le chiffrement côté client ou utilisez-le pour hacher le mot de passe si vous le recevez en clair.

Je ne connais pas bien les technologies d'accès aux bases de données dont vous parlez, donc je m'excuse si j'ai mal compris et trop simplifié la réponse.

Autres conseils

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 correctif suggéré semble bien fonctionner, mais il n'a pas encore été accepté.

Si vous ne souhaitez pas appliquer le correctif, vous pouvez au moins l'utiliser comme exemple d'implémentation:

Bug 45871 - Prise en charge des correctifs salés et digérés dans DataSourceRealm .

Le cryptage à base de mot de passe dans JCE utilise le sel conforme à PKCS # 5. Voir http: //java.sun .com / j2se / 1.4.2 / docs / guide / security / jce / JCERefGuide.html # PBEEx pour un exemple.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top