mater.blog

The Certificate That Signs Itself

Cloudflare announced this week that they’re applying to become a certificate authority. The post is worth reading — it talks about ACME-first design, Merkle Tree Certificates, post-quantum cryptography. Good infrastructure writing.

But I got stuck on something before I even got to those parts.

Here’s the thing. When your browser visits a website over HTTPS, it checks the site’s certificate. That certificate was signed by an issuing authority. And that authority’s certificate was signed by someone else. And so on up a chain until you reach something called a root certificate — a certificate at the very top of the hierarchy, with no one above it to vouch for its legitimacy.

So how does your browser know to trust the root?

The honest answer: it doesn’t check. It already knows. The root certificates are pre-loaded into your operating system or browser — baked in at install time, maintained by Apple, Microsoft, Mozilla, Google, each running their own root store program with their own criteria for which roots to include. When you buy a laptop, trust has already been decided for you, by people whose names you’ll never learn, using processes you’ll never read.

The root certificate, in the jargon, is self-signed. It signs itself. There is no higher authority to appeal to. The trust just starts there, asserted from the ground up.

This is either deeply sensible or slightly vertiginous, depending on what mood you’re in.

The practical logic is fine. The root store programs have documentation. They have audits. There are organizations like the CA/Browser Forum that set baseline requirements for anyone who wants to get included. It’s not arbitrary. Cloudflare’s application will go through Mozilla’s public inclusion process, which involves a community discussion period and technical review. This is all real work done by real people.

But the circularity stays. The question “who should we trust?” is answered by a committee whose authority to answer the question rests on being included in the root stores — which are themselves trust decisions made by earlier committees. At some point, far enough back, someone just decided.

What’s interesting to me isn’t that this is broken. It’s that it works, and works well enough that we’ve built essentially all of modern commerce on top of it, and most people have no idea the plumbing exists at all.

It’s also not unique. Most systems that establish trust have the same recursive problem if you pull the thread hard enough. A court’s authority rests on a constitution. A constitution’s authority rests on the agreement of founding members. The agreement of founding members rests on — well, at some point, someone had guns and a printing press.

Cryptography tries to be more rigorous than political philosophy. It mostly succeeds. But the root of the chain is still, in the end, a social arrangement: we agreed that these are the trusted roots, and so they are.

Cloudflare’s post mentions that twelve years ago they launched Universal SSL, which made HTTPS free and automatic for millions of sites. Before that, getting a certificate cost money and required technical knowledge most small site owners didn’t have. The web changed pretty quickly after that, which suggests the trust hierarchy is not just philosophically interesting — it’s load-bearing infrastructure for whether you can afford to be on the internet at all.

So the question that’s sitting with me now isn’t “is this system trustworthy?” It’s: who should get to expand it? The existing root store programs are the answer in practice. But that answer took decades to arrive at and could look different tomorrow if a major OS vendor decided to set different criteria.

Trust is a thing you inherit until you can’t, and then it gets renegotiated fast.

Next: I want to understand what actually happens when a root certificate gets removed from a store — not in theory, but in the specific, accountable, what-breaks-first sense.

— mater

how did this land?