summaryrefslogtreecommitdiffstats
path: root/doc/wiki/Authentication.Mechanisms.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/wiki/Authentication.Mechanisms.txt')
-rw-r--r--doc/wiki/Authentication.Mechanisms.txt82
1 files changed, 82 insertions, 0 deletions
diff --git a/doc/wiki/Authentication.Mechanisms.txt b/doc/wiki/Authentication.Mechanisms.txt
new file mode 100644
index 0000000..ed36580
--- /dev/null
+++ b/doc/wiki/Authentication.Mechanisms.txt
@@ -0,0 +1,82 @@
+Authentication Mechanisms
+=========================
+
+Plaintext authentication
+------------------------
+
+The simplest authentication mechanism is PLAIN. The client simply sends the
+password unencrypted to Dovecot. All clients support the PLAIN mechanism, but
+obviously there's the problem that anyone listening on the network can steal
+the password. For that reason (and some others) other mechanisms were
+implemented.
+
+Today however many people use <SSL/TLS> [SSL.txt], and there's no problem with
+sending unencrypted password inside SSL secured connections. So if you're using
+SSL, you probably don't need to bother worrying about anything else than the
+PLAIN mechanism.
+
+Another plaintext mechanism is LOGIN. It's typically used only by SMTP servers
+to let Outlook clients perform SMTP authentication. Note that LOGIN mechanism
+is not the same as IMAP's LOGIN command. The LOGIN command is internally
+handled using PLAIN mechanism.
+
+Non-plaintext authentication
+----------------------------
+
+Non-plaintext mechanisms have been designed to be safe to use even without
+<SSL/TLS> [SSL.txt] encryption. Because of how they have been designed, they
+require access to the plaintext password or their own special hashed version of
+it. This means that it's impossible to use non-plaintext mechanisms with
+commonly used DES or MD5 password hashes.
+
+If you want to use more than one non-plaintext mechanism, the passwords must be
+stored as plaintext so that Dovecot is able to generate the required special
+hashes for all the different mechanisms. If you want to use only one
+non-plaintext mechanism, you can store the passwords using the mechanism's own
+<password scheme> [Authentication.PasswordSchemes.txt].
+
+With <success/failure password databases> [PasswordDatabase.txt] (e.g. PAM)
+it's not possible to use non-plaintext mechanisms at all, because they only
+support verifying a known plaintext password.
+
+Dovecot supports the following non-plaintext mechanisms:
+
+ * <CRAM-MD5.txt>: Protects the password in transit against eavesdroppers.
+ Somewhat good support in clients.
+ * <DIGEST-MD5> [Authentication.Mechanisms.DigestMD5.txt]: Somewhat stronger
+ cryptographically than CRAM-MD5, but clients rarely support it.
+ * SCRAM-SHA-1: Salted Challenge Response Authentication Mechanism (SCRAM) SASL
+ and GSS-API Mechanisms. Intended as DIGEST-MD5 replacement.
+ * APOP: This is a POP3-specific authentication. Similar to CRAM-MD5, but
+ requires storing password in plaintext.
+ * <NTLM> [Authentication.Mechanisms.NTLM.txt]: Mechanism created by Microsoft
+ and supported by their clients.
+ * Optionally supported <using Samba's winbind>
+ [Authentication.Mechanisms.Winbind.txt].
+ * GSS-SPNEGO: A wrapper mechanism defined by RFC 4178
+ [http://tools.ietf.org/html/rfc4178]. Can be accessed via either GSSAPI or
+ <Winbind> [Authentication.Mechanisms.Winbind.txt].
+ * <GSSAPI> [Authentication.Kerberos.txt]: Kerberos v5 support.
+ * RPA: Compuserve RPA authentication mechanism. Similar to DIGEST-MD5, but
+ client support is rare.
+ * ANONYMOUS: Support for logging in anonymously. This may be useful if you're
+ intending to provide publicly accessible IMAP archive.
+ * OTP and SKEY: One time password mechanisms.
+ * EXTERNAL: EXTERNAL SASL mechanism.
+ * OAUTBEARER: OAuth2 bearer authentication
+ https://tools.ietf.org/html/rfc7628. See <OAuth2 password database>
+ [PasswordDatabase.oauth2.txt] (v2.2.29+)
+ * XOAUTH2: Google flavor OAUTHBEARER
+ [https://developers.google.com/gmail/xoauth2_protocol] (v2.2.29+)
+
+Configuration
+-------------
+
+By default only PLAIN mechanism is enabled. To use more, edit your
+'/etc/dovecot/conf.d/10-auth.conf' and set:
+
+---%<-------------------------------------------------------------------------
+auth_mechanisms = plain login cram-md5
+---%<-------------------------------------------------------------------------
+
+(This file was created from the wiki on 2019-06-19 12:42)