Certificate-based Authentication


Certificate-based Authentication is an Authentication Method which is used with Certificates within a Public Key Infrastructure

Digital Certificates are vessels for Asymmetric Key Cryptography.

Certificates are intended to solve Key-Exchange. Namely, the user-agent wants to use the server's Public Key.

An attacker will try to make the client use the attacker's Public Key. So the client must have a way to make sure that it is using the right Public Key.

In SSL-TLS, the most common use of Certificate-based Authentication, is supposed to use X.509 which is a standard for Certificates. Each Certificate is signed by a Certificate Authority.

Typically the user-agent inherently knows the Public Keys of a handful of Certificate Authority (these are the "Trust Anchors" or "Root Certificates"). With these Public Keys, the client can verify the Digital Signature computed by a Certificate Authority over a certificate which has been issued to the server.

Authentication By Certificate#

With these known Public Keys, the Protocol Client can verify the Digital Signature computed by a Certificate Authority over a Certificate which has been issued to the Protocol Server.

So the user-agent is supposed to do the following:

If a Protocol Client performs these processes properly, there is a High Level Of Assurance that the Protocol Server is who-he-said-he-was and is considered Authenticated.

This process can be extended recursively: a Certificate Authority can issue a Certificate for another Certificate Authority (i.e. sign the certificate structure which contains the other Certificate Authority name and key).

Public Key Infrastructure Weaknesses#

The certification model for X.509 Certificates has often been criticized, not really on technical grounds, but rather for politico-economic reasons. The certification model for X.509 concentrates validation power into the hands of a few players, who are not necessarily well-intentioned, or at least not always competent. Now and again, proposals for other systems are published (e.g. Convergence or DNSSEC) but none has gained wide acceptance (yet).

For certificate-based user-agent authentication, it is entirely up to the server to decide what to do with a user-agent certificate (and also what to do with a user-agent who declined to send a certificate).

More Information#

There might be more information for this subject on one of the following: