http://bugs.winehq.org/show_bug.cgi?id=18337

Frank Gruman fgatwork at verizon.net
Wed Sep 9 22:01:37 CDT 2009


On Tue, 2009-09-08 at 16:33 -0700, Juan Lang wrote:

> Hi Frank,
> 
> On Tue, Sep 8, 2009 at 4:15 PM, Frank Gruman<fgatwork at verizon.net> wrote:
> > Looking at chain.c, line 1886-1902 I can see the switch-case statement
> > where this would have been handled.  The problem I ran into while trying
> > to keep up with the code was figuring out what the verify_* methods are
> > trying to do.
> >
> > I'd really like to see this work and may have some spare cycles to help
> > out.  The problem is that I don't understand everything happening in
> > these methods - can I get some pointers to what is happening or what
> > should happen in the yet to be created verify_ssl_policy() method?
> 
> The short answer is, if you don't care about the validity of the
> certificates you're trying to connect to, you can hack this function
> to return TRUE rather than FALSE.  This is an awful hack, however, and
> can't be accepted into the Wine tree, but if all you care about is to
> get the darn thing to work, it might be enough for you.
> 
> The longer answer is the generic Wine answer:  what should happen is
> whatever Windows does.  To find out what Windows does, you need to
> write tests for it.  Have a look at dlls/crypt32/tests/chain.c for a
> start.  You'll want to mimic the existing tests, and try with
> different SSL_EXTRA_CERT_CHAIN_POLICY_PARA values.
> 
> Since that's not very specific, here's a slightly more directed
> answer:  the as-yet-unwritten verify_ssl_policy() should call
> verify_base_policy() first.  If it succeeds, it should verify that the
> certificate matches the intended use.  At a minimum, if the
> SSL_EXTRA_CERT_CHAIN_POLICY_PARA is specified, you need to verify that
> its pwszServerName matches the subject name in the certificate.  Be
> careful not to introduce the embedded NULL character vulnerability
> (see e.g. CVE-2009-2417.)  There are probably more checks needed,
> either in verify_base_policy or in verify_ssl_policy, e.g. checking
> the key usage extension.  RFC3280 is a good guide for the kinds of
> checks that need to be done.
> 
> Intimidated yet?  That's why I haven't gotten around to it myself:
> it's not a quick fix, and I haven't had a lot of free time.  But if
> you have the time to do it right, by all means have a go!
> --Juan


Only slightly daunted.  But I will give it a go.  It won't be over
night, but I think I can, I think I can, I think I can...

Thanks for the pointers on where to look and start.

Regards,
Frank
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20090909/d51ef33c/attachment.htm>


More information about the wine-devel mailing list