Назад | Перейти на главную страницу

doveadm pw может сгенерировать неверный пароль, если используется специальный символ

У меня есть сервер dovecot, работающий на сервере Ubuntu 14.04, который считывает данные для входа (пользователь / домен / пароль) из базы данных mysql.

Пароли сохраняются как соленые хэши SHA256. Для их создания я использую команду doveadm pw -s SHA512-CRYPT. В соответствии с Dovecot wiki Схемы аутентификации паролей страница, команда использует glibcs crypt() функция.

Теперь, когда я использую пароль без специальных символов (прописные / строчные буквы и цифры), например «t3st», я могу успешно войти в соответствующую учетную запись электронной почты. Но как только пароль будет содержать любые другие символы (например, t3$t), Я больше не могу войти в систему. doveadm будет в обоих случаях возвращать кажущиеся действительными хэши (например, $6$iADbo7odiTlVjYgl$fi0X/kIHSUmAHAAiHIsXU6ow3j9dshL9mX.VTCDFOBMt.aV/.ZWpadLk3AFPD30EZ7SiyaqAR66YlTPoeQrcH/).

Я попытался войти на сервер через Thunderbird и почтовый веб-интерфейс, и оба они дали одно и то же сообщение об ошибке в файлах журнала:

dovecot: imap-login: отключен (ошибка аутентификации, 1 попытка за 2 секунды) ...

Я также пробовал использовать «шифрование» MD5-CRYPT с теми же результатами.

Документация doveadm pw содержит следующую информацию:

«Вы должны заключить хэш пароля в одинарные кавычки, если он содержит один или несколько знаков доллара ($)».

Вы можете попробовать добавить

auth_debug = yes
auth_debug_passwords = yes
auth_verbose_passwords = yes

в вашу конфигурацию Dovecot. Таким образом, вы увидите, какие пароли dovecot фактически получает от клиентов и сравнивает с passdb.