2013-10-14 6 views
6

Quelle est la différence entre l'algorithme de chiffrement de mot de passe et l'algorithme de résumé dans Glassfish 4? Parce que l'algorithme de chiffrement de mot de passe ne peut pas être vide, j'ai utilisé MD5, et pour coder, Hex. L'algorithme Digest est vide, donc la valeur par défaut est SHA-256.Glassfish 4 - JDBC Realm

Mais si j'ai fait une application de connexion simple avec JAAS, et créer les tables, insérer un utilisateur, et le mot de passe est crypté avec MD5, l'utilisateur ne peut pas se connecter. Si je crypte le mot de passe avec SHA-256 peut se connecter.

Alors, quel est le champ algorithme de chiffrement de mot de passe?

+0

Je suis en difficulté avec la migration de 4.0 à 4.1.1 http://stackoverflow.com/questions/40686737/migration-from-glassfish-4-0-to-glassfish-4-1-1-jdbc-realm -issue – Bikram

+0

SHA-256 n'est que légèrement meilleur pour un vérificateur de mot de passe que MD5, aucun ne devrait être utilisé. Lors de l'enregistrement d'un vérificateur de mot de passe, il suffit d'utiliser une fonction de hachage et il suffit d'ajouter un sel pour améliorer la sécurité. Au lieu de cela, utilisez une fonction telle que 'PBKDF2',' Rfc2898DeriveBytes', 'Argon2',' password_hash', 'Bcrypt' ou des fonctions similaires. Le but est que l'attaquant passe beaucoup de temps à trouver des mots de passe par force brute. – zaph

Répondre

2

La documentation n'est pas très claire sur ce point, mais mon interprétation est la suivante. Ceci est basé sur Glassfish v4 reference manual.

L'algorithme de chiffrement de mot de passe détermine la façon dont les mots de passe sont chiffrés dans votre base de données. C'est le paramètre digestrealm-password-enc-algorithm. Vous voulez vraiment avoir cet ensemble à quelque chose parce que bien sûr laisser les mots de passe dans une base de données en clair est un trou de sécurité.

Lorsque quelqu'un tente de s'authentifier, glassfish doit pouvoir comparer ce qui a été soumis à ce qui est dans la base de données. Mais, puisque ce dernier est tout verrouillé, il a besoin d'une clé pour déverrouiller. Le cryptage (strictement, hashing) utilisé sur cette clé est ce qui est défini dans l'algorithme Digest (paramètre digest-algorithm). Il est par défaut SHA-256 dans v4 (auparavant, c'était MD5).

0

Alors, quel est le champ d'algorithme de chiffrement de mot de passe?

Digest Algorithm permet de crypter/hachage de la demande de connexion, alors que l'algorithme de cryptage par mot de passe est utilisé pour déchiffrer le mot de passe db.

Mais si je fait une demande de connexion simple avec JAAS, et créer les tables, insérer un utilisateur et le mot de passe est crypté avec MD5, l'utilisateur ne peut pas se connecter.

Put MD5 dans le champ de cryptage du mot de passe, et laissez l'algorithme Digest vide (par défaut, il est sha-256 dans GlassFish 4).

+0

Je l'ai fait, mais si je veux me connecter, cela ne fonctionne pas. Et alors? Mais si je change le champ de mot de passe à un mot de passe codé SHA-256, cela fonctionne. – galovics

+0

Salut, avez-vous réussi à le résoudre? Pouvez-vous mettre MD5 aux deux endroits et essayer à nouveau? (avec MD5 hashed mots de passe dans la base de données). Les deux chiffrements Sha-256 et MD5 fonctionnent bien ici, avec GlassFish OSE 4.0 et MySQL. Quoi qu'il en soit, si cela fonctionne avec SHA-256, vous devriez vous en tenir au fait que le texte de hachage MD5 a été craqué avec juste la puissance d'un cluster composé de 20 Playstations. SHA-256 est plus sûr puisqu'il prend plus de temps pour déchiffrer il. –

Questions connexes