> From: owner-openssl-us...@openssl.org On Behalf Of Erwann ABALEA
> Sent: Tuesday, 30 August, 2011 04:39
> To: openssl-users@openssl.org
> Subject: Re: [openssl-users] Re: users auth. in XP for HTTPS
> 
> Hodie III Kal. Sep. MMXI, Jakob Bohm scripsit:
> > On 8/30/2011 3:29 AM, Dave Thompson wrote:
> > >...
> > >That sounds like the keyUsage bit dataEncipherment, and OpenSSL CA
> > >can set it. But SSL never *does* dataEncipherment using a
> > >certificate/key, so this bit should not be needed or make any
> > >difference.
> > Small correction: SSL/TLS never does dataEncipherment with *client*
> > certificates, and always does dataEncipherment with *server*
> > certificates (if any).
> 
> Correction to the correction: TLS always does dataEncipherment with
> server certificate *if* the key exchange algorithm is RSA.
> 
No, SSL/TLS kRSA is defined as *keyEncipherment*, correctly so 
because the only thing encrypted is key material (though not 
strictly the key itself). And aRSA is signing, not certSign or 
crlSign because the handshake data isn't (just) a cert or CRL.
See 2616 and 2459 or successors.

> > So dataEncipherment should be set in the SSL server certificate and
> > clear in the SSL client certificate, as is apparently 
> already the case
> > here, so that part is OK.
> 
The OP said the "only" difference is MS-issued *client* cert has data-enc.
He implied both have sign,non-rep,key-enc, but didn't actually show it.
He has since reported the problem is something entirely different.

> Even if you don't set the dataEncipherment bit in the keyUsage
> extension, it works. TLS libraries are tolerant :)
> 
OpenSSL, at least, is tolerant, because the check is done 
at a low level in the code where the full usage (i.e. 
the key-exchange algorithm selected) isn't available.
It will accept dig-sign OR key-enc for any suite.
It appears it will accept a cert for k[EC]DH that doesn't 
have key-agree as specified, but I'm not set up to test that.

OpenSSL client does fail (unless overridden by callback) 
if the server cert is data-enc *only* (not signing).

IE7 (all I have to hand) seems to accept anything, 
but FF3.6 does require signing and/or *key*-enc
otherwise it gives its ugly Untrusted page with 
(Error code: sec_error_inadequate_key_usage)

Although the 'user-friendly' explanation is poor:
the page says '... was issued by an invalid CA certificate'
and the 'add exception' dialog if you go there 
says 'hasn't been verified by a recognized authority'.
Both of those are misleading at best.


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to