For future reference, 'openssl x509 -noout -text -in [certfilename]'
will give a full list of everything in the certificate, in a text
format suitable for human comprehension without additional tools.

As a later message from you suggests you discovered, "failed to
validate signature" means one of two things: that the signature is
wrong on at least one of the certificates, or that the signature
generated by the remote side is wrong when checked against the public
key in the certificate that was presented.  It is almost impossible to
get the "wrong" signature on a certificate from a 3rd-party CA -- they
take the public key in the request, add whatever they want to the
TBSCertificate structure, and then generate the hash of it and encrypt
that hash with their private key.  (TBSCertificate is the content of
the certificate, without the signature.  A certificate is a tuple of {
TBSCertificate, signatureAlgorithm, signatureData }.  Once the
signature stuff is appended, any change to the TBSCertificate part
invalidates that signature*.)

It is possible for any party to present an incorrect certificate from
a 3rd-party CA.  This can happen when that party's software loses
track of the private key that goes with the public key in the
certificate, and doesn't verify with a simple encryption/decryption on
load that the keys it has been provided actually go together.  In my
experience, this symptom primarily occurs when a keypair is generated
and a certification request submitted, the certificate is received,
and is put in place without updating the file that contains the
private key.

And, for reference: 2.16.840.1.101.2.1 refers to the Department of
Defense infosec OID arc (ref: http://oid-info.com/2.16.840.1.101.2.1
).  .11 is not documented at oid-info.com, which suggests to me that
those two might actually be policy OIDs.  (I would be curious to see
the output of the aforementioned 'x509 -noout -text -in [filename]'
command on one of those certificates, if only because I'm curious
where those OIDs occur in the certificate.  If you want, you can blank
out the Subject: and anything else that you think might provide too
much information.)

*: Recently, a weakness was discovered in the PKI, demonstrated with
mD5+RSA signatures.  An MD5 collision attack was mounted against a
sub-CA of a public 3rd party CA, allowing a forged TBSCertificate
structure to have the same hash as the real sub-CA, without the main
CA necessarily knowing that its sub-CA signature has been compromised.
 At this point, (almost?) all of the public 3rd party CAs have stopped
using MD5 for any offline-verifiable certifications they make.
Instead, they're using SHA-1... which will likely have the same class
of attacks applied to it in the next decade, since some attacks have
already made it equivalent to 71 bits of protection (from its nominal
160).  Unfortunately, it's also the only other signature algorithm
which can be expected to exist almost everywhere.  If you want
references, I'll look 'em up, but the one about 71 bits of protection
by SHA-1 is actually from the CSRC at NIST in (I believe) its latest
cryptography guidance for federal agencies.  The MD5 collision attack
was demonstrated and is explained at
http://www.win.tue.nl/hashclash/rogue-ca/ .

(And, for what it's worth: if you've got DoD OIDs embedded in your
certificate, you're not going to be using MD5 or even likely SHA-1,
you're probably going to be using at least SHA-256.  This strengthens
the lifetime of the PKI, but the design flaw that led to it needs to
be addressed -- the CCITT/ITU placed all their faith in "hash
algorithms that cannot practically be predicted for any input", not
realizing that prediction would thus become one of the field's largest
research interests.)

-Kyle H

On Fri, Oct 2, 2009 at 4:18 PM,  <oh...@cox.net> wrote:
> Hi,
>
> I want to preface this by first saying that I know that this question is 
> probably pretty broad, but I'm hoping that someon on this list might be able 
> to help.
>
> We are working with web services our SOAP messages have SAML assertions that 
> are digitally signed.
>
> So, on the web service "client" side, we have a private key and a 
> corresponding certificate, and on the web service "server" side, we have the 
> certificate which is used for the validation of the digital signature.
>
> We've been in development and testing for awhile, using certs from an 
> in-house CA, but now we're moving to a new environment, where the certs have 
> to be issued by a 3rd party CA, but since doing that, we have encountered a 
> problem where, on the server side, we are getting "failed to validate 
> signature".
>
> We have a couple of different configurations, one where the web service end 
> is hosted on WebLogic, and another where the web service end is on an XML 
> appliance, and we are having similar "failed to validate signature" problems 
> with both.
>
> Also, on the XML appliance, we can configure it to do just the signature 
> validation without verifying the certificate chain, so we're pretty sure that 
> the problem is not a chaining problem.
>
> We're not 100% sure, but we've eliminate almost every other possibility, and 
> appears that the problem may be that, for some reason, the certs that we got 
> are not suitable for validating digital signatures.
>
> The 3rd party CA can issue "SSL Server certificates" or "SSL Client 
> certificates", and, right now, the certs that we have been trying to use are 
> "SSL Server certificates" (as designated by the CA).  We've looked at the 
> certificates using various tools, including "keytool", "openssl x509", and 
> they look "ok".
>
> The certs have Key Usage of:
>
> Digital Signature
> Key Encipherment
> Key Agreement
>
> they also have a "Netscape type" of "SSL Server Authentication".
>
> Finally, they have to extension OIDs:
>
> 2.16.840.1.101.2.1.11.7
> 2.16.840.1.101.2.1.11.8
>
> Finally, I have to again say that we're still not 100% sure if the problem is 
> the certs, but we've eliminated everything else that we can think of, so I 
> was hoping that maybe someone might have some experience that might tell us 
> what might possibly be going on with these certs that might prevent them from 
> being used for digital signature validation?
>
> Thanks in advance.
>
> Jim
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    openssl-us...@openssl.org
> Automated List Manager                           majord...@openssl.org
>
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to