On 11/22/06, Victor Duchovni <[EMAIL PROTECTED]> wrote:
On Wed, Nov 22, 2006 at 09:31:35PM -0500, Chris Covington wrote:

> I am most likely using the wrong terms (but I may be completely
> confused, I admit).  When one distributes client certificates to take
> the place of usernames/passwords for authentication, how is that commonly
> referred to?

One does not do that. Certificates do not take the place of passwords,
they are (in current usage) a signed binding between a public key
and an identity. Neither the binding, nor the public key are secret,
certificates are routinely communicated in the clear.

The user generates his/her private key by some means, and using some
appropriate secure channel (often authenticated with a one-time password)
communicates the public key to the CA for signing (binding to the user's
identity). The bound certificate is given back to the user, and later the
user can sign transactions with his private key and use the certificate to
convince verifiers that the transaction is signed by the right party.

The secret information (the private key) never leaves the user's system,
and sometimes never leaves the smartcard (or other cryptographic device)
that generated it.

> Let's say I wanted to create an application where one logs in with only
> his certificate, not his username and password,

No such applications exist. Certificates are not passwords, they are
signed bindings between a *public* key and a name.

> and there is no rsa private key corresponding to that client
> certificate,

This renders the certificate a useless pile of bits (well it can be used
to verify old signed/authenticated transactions, but is not useful for
initiating any new transactions).

> meaning that simply having the certificate is all that is
> required to authenticate.

This is not public key cryptography, the contents of the cert are not
a password.

> Is it possible to add a private key back
> into the existing certificate or is that something that needs to be
> done during the CSR?

Certificates don't contain private keys. The confusion arises in small
part because some client applications store both the certificate and the
private key in the same binary (PKCS#12) object and confusingly call this
a "certificate". When your browser (perhaps IE) "exports" a "certificate"
it may export both the private key and the signed binding together, but
don't confuse the two parts.

        "openssl rsa" - deals with private key objects
        "openssl x509" - deals with certificate objects
        "openssl pkcs12" - deals with pkcs12 containers

Perhaps you want to map a pkcs12 container to a password protected private
key object... See the pkcs12 man page.

That's it, thanks oh wise man.

Chris
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to