Hi Juan,
Sorry I was going to reply earlier but was distracted...
On Wednesday 15 August 2007 00:08:23 Juan Lang wrote:
Since there wasn't a clear consensus about how to get CA certificates into the registry, I decided to do what Mono does: punt. So I've written a tool that can load certificates from a file or from a URL and stick them in the registry.
Ta. I've had a quick look. A couple of minor comments:
You might want to include "BEGIN TRUSTED CERTIFICATE" as an option when parsing PEM-format files. All the root CAs I've seen don't use this, but apparently its a possibility.
Also, OpenSSL (but unfortunately not GnuTLS) can scan a directory, loading all files like <serial>.0 (e.g. "a87d9192.0"). Adding support for something like that might be useful, but certainly not urgent.
By default it assumes you want to download them from Mozilla's CVS front-end, and does so.
A patch that adds it is attached. Comments?
Hmmm, I think we could do better than downloading from an static (well-known) URL.
As Jan Zerebecki put it:
The problem with that is that what we want to download here are certificates. So for them to be of good use one needs to obtain them in a way so that the trust chain doesn't break too much.
Exactly. This is one of the big problems with PKI: obtaining the CA root certificates. In general, it's impossible to do this reliably using just the Internet: some out-of-bound traffic (Phone, FedEx?) is needed to establish the trust.
The easiest way to get that is by distributing them with the normal source (and thus also with the distribution specific packages). Those are usually signed.
[...]
One of the nice features of git (if I've understood correctly) is it's cryptographic internal consistency checks: if one trusts the first SHA-1 hash then all subsequent git-objects can be verified: you know the tree is always as Alexandre intended.
There's still the problem of how can Alexandre know that the CA Root certificates on his hard disk are valid. This would require CDROM+FedEx (or similar).
However, by distributing the CA root certs via git, we can verify them independently (by use, if nothing else). This effectively pushes the possible Man-in-the-Middle attack back to somewhere upstream of the last common component of the set of tester's network. Given a sufficiently large set of testers, this is the CA website itself. Probably "good enough".
Just my 2c worth :-)
Cheers,
Paul.