0
votes

Comment Hybrris stocke-t-il les hachages de mot de passe

TLDR: Que fait les hybris avec les hachage de mots de passe avant de les stocker dans la base de données? Parce que les valeurs dans le champ de base de données ne sont pas des haubans de mot de passe standard.

Je devais ajouter le TLDR ci-dessus, car deux utilisateurs ont publié des réponses indiquant qu'ils n'ont pas lu (ni comprendre) la question.

Je travaille avec Hybris 1905. Lorsque je fixe le mot de passe d'un utilisateur dans BackOffice, je peux choisir le type d'algorithme de hachage, y compris MD5, SHA-256 et quelques autres. Pourtant, la valeur de mot de passe stockée dans la base de données n'est clairement pas un hasch simple avec l'algorithme. Par exemple, voici les hachages de mot de passe test1234 , avec divers algorithmes de hachage:

  • Salé MD5: 1: GTJD5QVM / T0HLT5PVZCU4G == S9B8VW / BIKZIXWZMZUERR1R6WY9Y8FQ9BQFQWGIUY2FGK + KFYSXJNF5G0FBALB9U
  • SHA-256: 1: ETVHTNWZMFX / DNBNPHMQBA == 8JQ6SLLCB / PRIHVB9D + YA61L2MR0DLBYR / 84G / K9KZQE4GPVPF10JA8RAIE94B3A + JoszlmutgrhezdS871A / 8YR4ovHJEM1 / KBR9SCVV24 =
  • SHA-512: 1: ZSaQW0C + r / NMVwRRVTCm9w == 4qQJdmvU4PE02ipY0Mvkp2sb + bMuMHTiMIVE2m6NESzv2BEFG2O1MIjkzFUES6f7jzoVOEuVmd / E8mqOUoogbL9rpkOPmeMEj5EpB2iued3UAouLvv6PuUCyFJGJdoRsZJzwO2Lj30iokY4RsG0OKXYuGdUjNYU7X1AUggH + + eWfGK KFYSXjNf5G0fbAlb9u
  • PBKDF2 (HMAC-SHA1): 1: HIKWvUwTA / pVC9mXzl9qgw == NOsr8pkNUIbEGoiWFa5oArnlEfZNALK0cuczK7dxtxHbDTby + 7w3ml1pf8HNmXjalq1A / tSvlb + gwZMRS4Q7ncMhU5w1b6HwV + BGEBG9ecqahzUOK7mNZrLbh9t50M0mRr2AVQJnn7bfvdJ5E3C4UPdoN44v1mAgIuC / 9RKTnhj / 1BhjHqKf1pozhFfoBz8FdSxBQMmKY91 / c4VzkinqiSy5wkaWjOSQQuAN9ZoWmvw =
  • BCRYPT: 1: GL1KPL93NX4RJOYMIHC1KW == XH9ZDDGPIXUQPIPCEv

    Il est clair que ceci est une sorte de codage que Hybris met sur le dessus de l'algorithme de hachage choisi - mais qu'est-ce que c'est? Est-ce codant (c'est-à-dire peut-il être décodé) ou hachage?

    Je dois migrer une grande base de données d'utilisateurs d'une autre plate-forme vers cette installation d'hybris. J'ai des noms d'utilisateur existants et des mots de passe hachés correspondants, que je veux importer. Celles-ci sont des haubans BCRYPT standard, de sorte que la même chaîne test1234 aurait hachage 2Y $ 16 $ mk9cm.pwop8ve9oh0vqkt.123hgy / rhylcd1gb.n5zeqbylv.22wm . Pourtant, j'ai du mal à comprendre comment importer ce hachage dans les utilisateurs d'hybris.


0 commentaires

3 Réponses :


-1
votes

Hybris stocke toujours des mots de passe dans un < EM> Format codé . La stratégie par défaut dans SAP Commerce est PBKDF2 . Si nécessaire, vous pouvez le modifier via la propriété par défaut.password.coding. / code>. Vous pouvez également Implémentez votre propre stratégie de codage de mot de passe par Implémentation du PasswordEcoder interface et Ajout du Bean de stratégie de codage de mot de passe personnalisé à core.passwordenCoderFactory haricot.


1 commentaires

Cela n'a rien à voir avec ma question. Veuillez le lire à nouveau et vous saurez espérons-je comprendre ce que je demande.



-1
votes

Pour corriger ma réponse, Hybris crée toujours un hachage avec la combinaison de nom d'utilisateur et de mot de passe.

---> PasswordEnCoderFactoryImpl Class est chargé de donner une classe de codeur correcte en fonction de l'entrée du codage. ---> usine.gecoder (encoding) .Couvercode (utilisateur.getuid (), mot de passe)

hybris prend en charge  Entrez la description de l'image ici

Vous pouvez tester avec un utilisateur de test déjà existant et connaître le mot de passe pour générer une touche HASH basée sur une algue et correspond au mot de passe codé, il devrait donner des résultats identiques.

---> Pour le valider, écrivez simplement de simples groovy et de sortie de Groovy, vous pouvez comparer avec un utilisateur de test utilisé dans Groovy via Back Office et comparer le mot de passe codé. Ici le codage est PBKDF2 Entrez la description de l'image ici


5 commentaires

Cela n'avait rien à voir avec ma question. Je demande ce que fait l'hybris avec le hachage après sa création avec l'algorithme choisi. Le hachage stocké n'est pas un MD5 ou un BCRYPT, mais quelque chose de tout à fait différent.


En outre, les mots de passe ne peuvent pas être déchiffrés, ils sont un moyen hashé, de sorte que votre suggestion est inutile


@Aleksg, j'ai modifié la réponse, peut-être que cela vous aidera à comprendre la création de hachage d'hybris.


Je comprends le flux. Ce que je veux savoir, c'est ce que Hybrris fait une fois que le hash est créé , car le hachage stocké dans la base de données est pas dans la norme PBKDF2, BCRYPT, MD5, etc. format.


Généré Hash a également été crypté selon Cryptage transparent d'attribut donc ce n'est pas selon le hachage généré standard



1
votes

Que fait les hybris avec les hachages de mot de passe avant de les stocker dans le base de données? Parce que les valeurs dans le champ de base de données ne sont pas standard Mot de passe HASHES.

C'est parce que encodedpassword déclaré avec chiffré = "vrai" modificateur . En raison de la valeur d'hybris chiffrée avant de stocker à dB. En savoir plus sur Cryptage Attribut transparent (Tae) et Comment ça marche dans des hybris. xxx


Dans votre cas, vous devez probablement créer votre propre codeur de mot de passe et le définir sur tous les utilisateurs migrateurs, de sorte que votre système gère. Pour authentifier les utilisateurs migrés avec un encodeur personnalisé, vous pouvez ensuite rediriger l'utilisateur pour réinitialiser le mot de passe. Dans le flux de mot de passe de réinitialisation, vous pouvez mettre à jour le codage de mot de passe avec le nouveau codeur OOTB afin que le nouveau hachage soit généré.

Autres références 1 , 2


4 commentaires

Ah! Cela aurait un sens. Je ne vois pas pourquoi je devrais changer de codeurs ou que les utilisateurs réinitialisent leurs mots de passe. J'ai créé un nouveau codeur et j'ai ajouté le système. Maintenant, lorsque je regarde l'enregistrement d'un utilisateur dans BackOffice, je peux sélectionner mon nouveau codeur pour mot de passe. Je devrais donc pouvoir simplement importer des utilisateurs, comme (Utilisation de l'Impex avec codedpassword , je suppose)


Si vous souhaitez utiliser votre encodeur personnalisé tout au long de votre projet, vous n'avez pas besoin de forcer les utilisateurs à mettre à jour les mots de passe, mais au point ultérieur, si vous souhaitez coller avec OOTB fourni un codeur fourni, vous pouvez rediriger l'utilisateur pour réinitialiser le mot de passe et définir un nouveau. mot de passe avec le codeur OOTB.


Hybris permet à différents utilisateurs d'utiliser différents encodeurs. Il y a en fait un attribut sur le modèle "Utilisateurs", appelé "Passwordencoding". Il n'y a donc rien de mal à garder l'encodeur personnalisé pour les utilisateurs importés, mais à l'aide d'un Ootb One pour les nouveaux utilisateurs ou lorsque des mots de passe sont réinitialisés plus tard.


Ouais je sais. Mais je vous suggérerais de coller avec un encodeur uniforme dans tous les utilisateurs, ce qui rend notre vie facile pour la migration / haut-gradation ultérieure