J'ai une base de données qui contient un nom d'utilisateur, un mot de passe et un sel de mot de passe. Le mot de passe est haché en utilisant SHA512.
Les données de ma base de données des utilisateurs ressemblent à ceci :
utilisateur = testuser
password_hash = 4acf9dc364843d1adfadfadf42de7d5707b791cc3ee8a2013f15efa8bdb
mot de passe_salt = QYhZ47zsQA=
J'essaie de m'authentifier sur cette base de données en utilisant Dovecot l'authentification sql et SSHA512. J'ai activé les débogages d'authentification et je vois ceci dans mail.log :
dovecot: auth-worker(8603): Debug: sql(testuser,22.22.22.22): query: SELECT username as user, password_hash as password, password_salt as salt FROM users WHERE username='testuser';
dovecot: auth-worker(8603): sql(testuser,22.22.22.22): Password mismatch
dovecot: auth-worker(8603): Debug: sql(testuser,22.22.22.22): SSHA512(testpassword) != '4acf9dc364843d1adfadfadf42de7d5707b791cc3ee8a2013f15efa8bdb'
dovecot: auth: Debug: client passdb out: FAIL#0111#011user=testuser#011salt=QYhZ47zsQA=
dovecot: auth: Debug: client in: AUTH#0112#011PLAIN#011service=imap#011secured#011session=rZmPoRYOagBJ3Ukh#011lip=33.33.33.33#01 1rip=22.22.22.22#011lport=993#011rport=53098#011resp=AHJpY2hlZQBjY2NwdGFtdDNtcA== (previous base64 data may contain sensitive data)
dovecot: imap-login: Disconnected (auth failed, 2 attempts in 8 secs): user=<testuser>, method=PLAIN, rip=22.22.22.22, lip=33.33.33.33, TLS, session=<rZmPoRYOagBJ3Ukh>
J'ai également essayé de faire un test d'authentification qui échoue également :
$ sudo doveadm auth test testuser testpassword
passdb: richee auth failed
extra fields:
user=testuser
salt=QYhZ47zsQA=
Malheureusement, le Dovecot documentation ne couvre pas exactement la manière d'authentifier contre des hachages salés. J'ai l'impression que je dois dire à Dovecot que mon hachage de mot de passe est hex salé SHA512 et que mon sel est 8 octets base64. Cependant je n'ai aucune idée de comment dire à Dovecot d'utiliser le sel. Comment puis-je utiliser les sels lors de l'authentification de Dovecot ?