[foaf-protocols] Safari 4.01 (5530.18) ssl bugs

Bruno Harbulot Bruno.Harbulot at manchester.ac.uk
Wed Jun 24 00:46:01 CEST 2009


Hi Joe,

Joe Presbrey wrote:
> I have the same experience with foaf.me login but just tested
> presbrey.xvm.mit.edu with success.  See if your Safari will allow you
> access to https://presbrey.xvm.mit.edu/
> 
> If it does, you may want to consider the following patch:
> http://dig.csail.mit.edu/2009/mod_ssl-require_no_ca/mod_ssl-2.2.11-require_no_ca.patch
> 
> which allows you to specify:
> SSLVerifyClient require_no_ca
> 
> This is how I have presbrey.xvm.mit.edu setup.

I think this patch is a good idea (and, as Toby suggested, it's worth 
trying to submit it to the Apache Httpd project).
However, this implements the 'require' behaviour (as the name says of 
course), which means that the client needs to present a certificate, 
otherwise the connection will be closed more or less abruptly, without 
any HTTP exchange taking place (thus no error message).
This is equivalent to what we use in Java with 'need' authentication and 
a trust manager accepting all client certificates.

Safari and the 'require' behaviour has never been a problem (as far as I 
remember), but it's the optional behaviour that Henry was trying to 
obtain, so as to be able to provide users who wouldn't have a 
client-certificate with a suitable error page (and the REST way to 
discover what went wrong, guidance on how to obtain a certificate, 
etc.). This is actually a very important point, at least for the user 
experience.
Henry's patch for Apache Tomcat forces the server to close the 
connection, which makes Safari make a second attempt with the client 
certificate (Safari's first attempt being always without certificate 
unless an 'identity' has been defined by hand or by a previous visit to 
the same website, with the 'require' behaviour).

More on this topic (including a good explanation from an Apple engineer) 
in this thread:
http://lists.apple.com/archives/apple-cdsa/2009/Apr/msg00038.html

It's not just a problem with Safari, it's a problem with the OSX SSL 
network stack (CFNetwork).
As far as I remember, the way it worked before 10.5.3 was better if you 
only had one certificate in your keychain, but it was unable to let you 
choose properly if you had more than one. The way to choose has improved 
in 10.5.3, at the expense of optional authentication.
(I haven't run any detailed tests with 10.5.7 and Safari 4, but it 
appears the problem hasn't been solved.)


Best wishes,

Bruno.


More information about the foaf-protocols mailing list