[Dovecot] Can't get apop to work.
Bill Cole
dovecot-20061108 at billmail.scconsult.com
Thu Feb 7 17:34:57 EET 2008
At 5:20 AM -0800 2/7/08, Greg Lorriman wrote:
>> I tried fiddling with PAM by adding an /etc/pam.d/apop file with
>>these contents :
>
>It's impossible to support anything but plaintext authentication with
>PAM. See http://wiki.dovecot.org/Authentication/Mechanisms and
>http://wiki.dovecot.org/Authentication/PasswordSchemes
>
> I'm not overly worried about PAM; I just want to get APOP working.
>But the wiki doesn't give me even the faintest idea, keeping in mind
>that I am relatively new to linux. The same applies to all the other
>authentication schemes. It only tells me how to change the conf
>file, which doesn't appear to be enough.
>
> Obviously I am missing something here. But I don't know what.
The way APOP works requires the POP3 server to have the user's
unencrypted password. There is no way around that. This means that if
you want to support APOP with Dovecot, you need to use a passdb
configuration that offers access to the password in plaintext. In
particular that requires using a passdb driver other than 'pam'
because PAM by design does not provide client programs like Dovecot
with access to plaintext passwords, and it would be an unusual system
where PAM itself has access to passwords in any form that can readily
be translated into plaintext. The referenced wiki pages and the
pages they link to explain this in detail, but they do require you to
read carefully, absorb the meaning, and synthesize your own solution.
There is no cookbook for getting APOP to work. It always requires a
password database of some sort that is independent from the operating
system's standard mechanism, i.e. PAM or /etc/{passwd,shadow},
because non-toy OS-level authentication systems never store passwords
in any directly recoverable form but only in testable forms, i.e.
one-way hashes.
On a general conceptual level, any password storage scheme that
protects passwords in storage limits you to using only plaintext
authentication mechanisms plus at most one compatible non-plaintext
mechanism. For example, CRAM-MD5 password storage only allows you to
support CRAM-MD5 authentication or plaintext authentication. The
logical design of APOP precludes the use of any minimally secure
(i.e. one-way hash) password storage scheme because the
authentication check is based on a hash of the plaintext password and
username with a one-time-use token.
It is probably a better idea to reconsider why you want APOP at all.
All APOP provides is protection from someone sniffing out the
password on the wire. That was a larger risk when APOP was devised
than it really is today due to the fact that switches have largely
supplanted hubs and a more complete solution is available with
SSL/TLS support. APOP doesn't protect mail itself from being sniffed,
and comes at the cost of requiring the server to store plaintext
passwords, which in most modern cases is a risk of similar magnitude
to the risk of having plaintext passwords on the wire. A far better
option if your users are not locked into archaic clients is to only
offer access over encrypted (SSL/TLS) sessions, and allow plaintext
(PLAIN and LOGIN) authentication mechanisms. That would allow you to
use PAM rather than a free-standing password database with plaintext
passwords that you only use for APOP because nothing else that claims
to be secure in the modern world would ever use such a database.
--
Bill Cole
bill at scconsult.com
More information about the dovecot
mailing list