How to cut out the CA middleman
SSL certificates work on trust: end users trust their browsers, and browsers trust “certificate authorities” (CAs) like Gandi. But the chain goes one step further: the CA trusts DNS. When you buy an SSL certificate for
foo.com from a CA like Gandi, Gandi verifies that you
foo.com by challenging you to modify the DNS for that domain. The ultimate trusted authority is not the CA; it is the Domain Name System.
There is therefore a much simpler alternative to SSL certificates, which cuts out the CA middleman: have the browser consult DNS directly. The browser already consults DNS for the server’s IP; we would additionally have the browser ask DNS for a public key for that domain. It would run like this:
- Company buys
- Company generates keypair.
- Company puts public key in
foo.comDNS under a
TXTrecord (or some new
- Company puts private key on server.
- Company points
Arecord to the server’s IP.
- User visits
- Browser asks DNS for the
- Browser opens connection to the server, using server’s public key to establish shared secret.
- Browser and server communicate in a session.
Here, no Certificate Authorities are involved, but the user still has the same guarantees: it is talking in private to a server which is operated by the owner of
More by Jim
- Project C-43: the lost origins of asymmetric crypto
- How Hacker News stays interesting
- My parents are Flat-Earthers
- The dots do matter: how to scam a Gmail user
- The sorry state of OpenSSL usability
- I hate telephones
- The Three Ts of Time, Thought and Typing: measuring cost on the web
- Granddad died today
- Your syntax highlighter is wrong
I wrote this because I felt like it. This post is not associated with my employer. Found an error? Edit this page.