Discussions

Passez-moi le sel svp :D

Image

Salut Louis-Nicolas !

 

Normalement, l'intérêt du sel est d'ajouter un aléatoire sur le hash d'un mot de passe. Ainsi, un même mot de passe dans deux bases de données de deux site différents n'aura pas le même hash.

Là, on passe juste "12" en paramètre. Ok, mais où est le sel qui est une sorte de clé privée, une valeur sur laquelle on se base pour créer le sel justement ?

Je suis entrain de faire mes recherches en même temps sur le net...

Merci d'avance !

3 réponses
Image
Raven
Le 10/10/2022 à 12:00

Excuse-moi pour cette question qui va bien au-delà du cours, j'en ai conscience.

Toutefois, pour ceux qui se poseraient la question comme moi.
J'ai trouvé toutes mes réponses sur :
- https://fr.wikipedia.org/wiki/Salage_(cryptographie)

En fait le sel n'a pas besoin d'être plus secret que le hash du mot de passe lui-même. Il est donc stocké à côté, sur la même ligne dans la BDD sous la forme : 

identifiant | hachage(mot de passe + salage) | salage


bcryptjs fait du salage dynamique, donc un nouveau salage est généré pour chaque mdp et stocké sur la même ligne. L'objectif du salage est en fait de rendre plus difficile et longue les attaques fréquentielles. Typiquement les attaques utilisant les tables arc-en-ciel (rainbow tables). Car du coup les rainbow tables doivent être regénérées avec le sel pour chaque ligne de la bdd... .

Je connaissais bien le principe du salage, mais en fait j'avais mal compris le réel gain apporté par cela. Donc ma question initiale est résolue.


Image
Louis-Nicolas Leuillet
Le 10/10/2022 à 15:20

Merci pour tes précisions, j'en apprend plus également :)

Image
Raven
Le 10/10/2022 à 19:11

Tant mieux alors ! On progresse tous grâce au partage :)

Image
Inscrivez-vous ou connectez-vous pour participer à la discussion.

Informations

Créée le 10 octobre 2022 11:28
Dernière activité le 10 octobre 2022 11:28