Thank You very much Victor,

I think I understand now how it can be done.
If you could give me one last pointer, how to overwrite the verification
callback function,
that is called when executing "BIO_do_handshake", I'd be very grateful.

sorry for using misguiding vocanulary :)

Michael

On Thu, Sep 24, 2009 at 5:08 PM, Victor Duchovni <
victor.ducho...@morganstanley.com> wrote:

> On Thu, Sep 24, 2009 at 04:23:03PM +0200, Michael Prinzinger wrote:
>
> > > Are you saying that the accepting system expects X.509 client
> credentials
> > > from the connecting system, but that the payload (encrypted to the
> > > receiving node's public key) also contains the same certificate, and
> > > you want to check that the peer client matches the encrypted request?
> >
> > Yes.
> >
> > > If so, trust chain verification is completely irrelevant here. You
> > > don't need to repeat the handshake, rather implement a verification
> > > callback that accepts untrusted certificates (X.509 trust anchors seem
> > > inapplicable in this context) and compares them (via the public key
> > > fingerprint) to the designated certificate in the message payload.
> >
> > Yes, this would do what I want.
> > I would have to call BIO_do_handshake with a customized verification call
> > back, that decrypts the payload, reads the certificate and compares them
> > to the one offered by the client?
>
> No, your verification callback just always succeeds, allowing invalid
> trust chains, expired certificates, ... to be used. After the handshake,
> when you receive and decrypt the payload, you compare the enclosed peer
> certificate (public key fingerprint) with the peer certificate (public
> key fingerprint) from the SSL session.
>
> > Since there are no central trust authorities withtin the context of this
> > protocol, I can only directly verify a certificate, resp. some message
> > signed with the corresponding private key.
>
> "Verify" is the wrong term here. It suggests X.509 PKI hierarchies and all
> that jazz. You just want to validate the peer's client cert against the
> message routing data in the payload.
>
> > > If you want something else, you must explain it in a lot more detail.
> > >
> > > Note, your problem is understanding the crypto protocol design, not
> > > OpenSSL. You are using this list to get help with X.509 and
> cryptography,
> > > not really the OpenSSL API, so we are somewhat outside the list
> charter,
> > > but such questions are relatively common here...
> >
> > Thank you for helping anyways.
> > If you know a good resource that explains X.509 infrastructure, I'd be
> glad
> > to read it.
>
> Actively avoid reading anything about X.509 infrastructure. Reading a
> decent applied cryptography book + a decent book general about SSL/TLS
> would be better (skipping the parts that deal with X.509 "infrastructure").
>
> --
>         Viktor.
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    openssl-users@openssl.org
> Automated List Manager                           majord...@openssl.org
>

Reply via email to