Authentication over SSL

Julien ÉLIE julien at trigofacile.com
Sun Sep 21 10:06:18 UTC 2008


Hi Russ,

>> * the require_ssl: parameter should also match an encrypted connection
>>   after STARTTLS, and not only an initial encrypted connection;
>
> Yup, that sounds like a good fix.

Done.
I admit it is now very useful, especially for clients which
are using STARTTLS.  It was not previously possible to use auth blocks
because even after STARTTLS, they were not reachable.


>> In such cases, when there is no auth parameter, should AUTHINFO
>> USER/PASS/SASL commands return 502?  Or do we let the user try to
>> authenticate (and it will fail at the end)?
>
> You definitely want AUTHINFO USER to fail if you don't want the user to
> authenticate, since that prevents sending the password over an unencrypted
> connection.  502 is the correct error code.

Now:

AUTHINFO USER test
502 Authentication will fail


I have put another answer for the case the user is already authenticated:

AUTHINFO USER test
502 Already authenticated


And I have also implemented the following sequence:

LIST
480 Authentication required for command
AUTHINFO USER test
483 Encryption required
STARTTLS
382 Begin TLS negotiation now
AUTHINFO USER test
381 Enter password

I hope it is the right one to do.
Note that it happens only if require_ssl: is put for all available auth blocks,
as we agreed (AUTHINFO USER is still possible if there is an available auth
block without require_ssl:).  The right behaviour is only done in CAPABILITIES.

-- 
Julien ÉLIE

« Redde Caesari quae sunt Caesaris, et quae sunt Dei Deo. »
  (saint Matthieu)



More information about the inn-workers mailing list