Maturity model for X509 certificates

X509 certificates at their core provide authentication through a trusted third party. A lot of programs use certificates however lack in their support of the general principles of X509. So what are the principles of X509?

Principles of X509

X509 validation is a peer to peer validation. In some cases on peer is a client application like a web browser and the other is a webserver. Other times it is a email client validating a S/MIME email from another email client.

What should application do?

Now that the basics principle of X509 is defined what should applications do?

Validating a peer certificate

Authenticating to a peer:

User interface:

Certificate usage should be simple and intuitive. The user should be able to set standing preferences to prevent too many repetitive decisions.

Products that could have more support for X509 certificates

X509 certificates are using in ["EmailCertificates" S/MIME] for email encryption and as a Web client side certificate. There are however a large number of other uses for certificates. This pages attempts to describe some of them.

If you like to help out you could just work for on getting X509 well supported in that product. This will also help out CAcert users who will eventually have more uses for their certificates.

Web Applications

There are a large number of web applications that are very dependent on username/password combinations. When you have a X509 certificate you should be able to use that to authenticate yourself to websites.

There are two ways to do this. One with OpenID and the other with direct X509 support.

Here are some applications that would be nice to have either OpenID or X509 support.

List Management

Bug Trackers

Wiki Software

Other Applications

As OpenID is pretty much a web authentication framework, here are a list of other TLS/SSL protocols that could use client side certificates for authentication.

POP3 / IMAP servers

POP3 / IMAP clients

SMTP servers (for submission)

Language support

Having complete support in libraries is key to getting adoption in applications

Python

http://pypi.python.org/pypi/TLS%20Lite

http://docs.python.org/3.0/library/ssl.html

http://bugs.python.org/issue968430

http://wiki.python.org/moin/M2Crypto

S/MIME - notably missing

Perl

http://search.cpan.org/~awestholm/Net-SMTP-TLS/

http://search.cpan.org/search?query=OCSP&mode=all

http://search.cpan.org/~mikage/Crypt-SMIME-0.09/

PHP

http://pear.php.net/pepr/pepr-proposal-show.php?id=591

http://pear.php.net/pepr/pepr-proposal-show.php?id=531

http://pear.php.net/package/Net_SMTP (TODO)

Product_Support_for_X509 (last edited 2009-04-17 09:15:09 by DanielBlack)