Thank you, Timo, for your detailed and authoritative response.

Now I know that my config is fine, and that I didn't miss some option.

Thanks again!

On 29.06.2013 23:25, Timo Sirainen wrote:
On 29.6.2013, at 23.39, Ireneusz Szcześniak<irek.szczesn...@gmail.com>  wrote:

With my config, Dovecot disallows logging in when the SSL connection was 
established by a client without a certificate.  In this case the client gets to 
talk to Dovecot.  The client could exploit potential Dovecot vulnerabilities.

Instead, I want the SSL connection to be dropped by OpenSSL when the client 
doesn't authenticate with a certificate, and so the client doesn't get to talk 
with Dovecot.

OpenSSL can't really drop the connection. Dovecot could do it earlier, but that 
would complicate the code. I'm not planning on adding such extra code, since 
the current way works as well.

This is safer, because the client is dropped by the well-tested OpenSSL.


One of the main reasons for Dovecot's pre-login and post-login privilege 
separation was so that OpenSSL could be separated into Dovecot's untrusted 
pre-login sandboxed process :) OpenSSL is a highly complex piece of software 
compared to what Dovecot has to do.

The one thing I have been considering is that Dovecot's pre-login process would 
present the client's SSL certificate to Dovecot's auth process, which would 
independently verify that it's correct. That could be useful I think, although 
it would also present an additional attack layer to the auth process in case 
there are OpenSSL vulnerabilities (and auth process may run with more 
privileges than login process).

--
Ireneusz (Irek) Szczesniak
http://www.irkos.org

Reply via email to