From d9bb0b4816277bff2bc9198fef0f363575daf4b1 Mon Sep 17 00:00:00 2001 From: David Goodwin Date: Wed, 28 May 2025 09:17:39 +0100 Subject: [PATCH] Update HASHING.md update docs (note mysql_encrypt isn't wired in / working / available, properly link to issue etc) --- DOCUMENTS/HASHING.md | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/DOCUMENTS/HASHING.md b/DOCUMENTS/HASHING.md index eca7f4e6..885161df 100644 --- a/DOCUMENTS/HASHING.md +++ b/DOCUMENTS/HASHING.md @@ -1,14 +1,17 @@ # PostfixAdmin Password Hash Support. -How are your passwords stored in the database. +TL;DR How are your passwords stored in the database. They should not be stored in plain text. -Whatever format you choose will need to be supported by your IMAP server (and whatever provides SASL auth for Postfix) +Whatever format you choose will need to be supported by other software (e.g. Dovecot/Courier) and whatever provides SASL auth for Postfix. If you can, use a format that includes a different salt per password (e.g. one of the crypt variants, like Blowfish (BLF-CRYPT) or Argon2I/Argon2ID). + Try and avoid formats that are unsalted hashes (md5, SHA1) as these offer minimal protection in the event of a data leak. +You may choose to use plain text for testing or experimenting. Please do not use it in production. + ## Configuration See config.inc.php (or config.local.php) and look for @@ -39,9 +42,9 @@ Supported hash formats include : * PLAIN-MD5 (aka md5) * CRYPT -Historically PostfixAdmin has supported all dovecot algorithms (methods) by using the 'doveadm' system binary. As of early 2023 (?), we attempted to use a native/PHP implementation for a number of these to remove issues caused by use of proc_open / dovecot file permissions etc (see e.g. #379). +Historically PostfixAdmin has supported all dovecot algorithms (methods) by using the 'doveadm' system binary. -It's recommended you use the algorithm/mechanism from your MTA, and configure PostfixAdmin with the same value prefixed by the MTA name - +As of early 2023 (?), we attempted to use a native/PHP implementation for a number of these to remove issues caused by use of proc_open / dovecot file permissions etc (see e.g. https://github.com/postfixadmin/postfixadmin/issues/379). For example, if dovecot has `default_pass_scheme = SHA256` use `$CONF['encrypt'] = 'SHA256'; ` in PostfixAdmin. @@ -59,7 +62,7 @@ For example, if dovecot has `default_pass_scheme = SHA256` use `$CONF['encrypt'] | Courier Example | PostfixAdmin | |-----------------|--------------| -| md5 | courier:md5 | +| md5 | courier:md5 | | md5raw | courier:md5raw | | sha1 | courier:sha1 | | ssha | courier:ssha | @@ -74,13 +77,7 @@ Insecure. Try to avoid. May be useful for legacy purposes. ### mysql_encrypt -Uses the MYSQL ENCRYPT() function (this uses 'crypt' underneath). - -Can be secure. - -Requires MySQL. - -Should use a sha512 salt for new values. +(No longer available, removed after MySQL 5.7. Try moving to 'system' (see below)) ### md5crypt @@ -90,9 +87,7 @@ e.g. `$1$c9809462$M0zeLuOvixH61C2csGN.U0` -You should not use this for new installations - -(it probably does not offer a high level of security) +You should not use this for new installations, as it probably does not offer a high level of security. ### md5