Mot de passe salé

Bonjour,

Peut on gérer des mots de passe salé dans Simplicité ?
Feature ? via paramètre système ?

Merci,

Sébastien

Il suffit d’ajouter “NaCl” à la fin du mot de passe lors du preSave.

Je n’ai pas compris la réponse ? c’est pour toi, vous allez le mettre dans le socle ?
Ou pour moi ?

Comment le “NaCi” intervient pour saler le mot de passe ?

Relis tes cours de chimie ;-)

Plus sérieusement, merci de preciser ton besoin. Mais comme déjà discuté pour les besoins “avancés” en termes d’ident/authent il vaut mieux se servir d’un identity provider externe (SAML, Oauth2, etc.)

Si la question concerne la validation du mot de passe pour vérifier s’il contient du sel, il faut utiliser les GrantHooks :

GrantHooks.validatePassword = function(g, pwd) {
    if (pwd.indexOf("NaCl") < 0) return "A good password must contain salt!";
};

https://www.simplicite.io/resources/documentation/01-core/grant-code-hooks.md

La question est :
Peut-on faire du SSHA et non pas du SHA ?
En chimie, est-ce que SHA + NaCl = SSHA ?
;-)

Non je crois que “SHA + NaCl = SHA-1” en terme MessageDigest java

Voir le param system HASH_PASSWORD, par défaut c’est MD5:HEX, mais tu peux utiliser SHA-1 au lieu de MD5.


Password hashing algorithm and encoding: <algorithm>:<encoding> or none for no password hashing.

  • Algorithm values: MD5, SHA-1, SHA-256, SHA-512
  • Encoding values: HEX (hexadecimal) or BASE64 (base 64)

Warning: Hashing algorithm and encoding must be consistent with configured authentication module.

Ok vous ne faites que du hashage et pas de hashage + Salage, c’est bien ça ?

cf : https://howtodoinjava.com/security/how-to-generate-secure-password-hash-md5-sha-pbkdf2-bcrypt-examples/#md5-salt

Je ne crois pas car SHA me semblait suffisant car sans grande probabilité de collision de hash, je laisse @david vérifier.

Sinon on ajoutera une option de salage dans le paramètre du style <algorithm>:<encoding>:SALT

Dans quel contexte aurais-tu besoin de cette évolution ?

Je repose la question car ce n’est fondamentalement pas le rôle de Simplicité de gérer des identifications/authentification “avancées” à l’heure où se généralisent les IdP privés/publics utilisant les protocoles du marché (SAML, OAuth2, …)

Autrement dit, demander à Simplicité de se substituer à de telles solutions est un contre emploi pour ne pas dire un contre sens

En phase avec toi, dans un contexte ou on alimente un open ldap en compte utilisateur. L’openldap ne prennant en compte que des mots de passe salés.

Dans ce cas c’est au LDAP de gérer le hashage du mot de passe. Ce n’est pas au client LDAP de le faire.