Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <54F84F82.1090508@redhat.com>
Date: Thu, 05 Mar 2015 13:43:46 +0100
From: Florian Weimer <fweimer@...hat.com>
To: oss-security@...ts.openwall.com
Subject: Certificate pinning and the browser PKI

I'm looking for suggestions how to implement certificate pinning.

Things are relatively straightforward if you are not in the browser PKI
because you can pin a long-term CA certificate instead, and not the
server certificate.  Same if you have a dedicated (sub-)CA in the
browser PKI.

But if your server has to be in the browser PKI, things get a bit messy.
 Pinning the CA may not offer much protection (because you are still
exposed to RA failures at the CA).  Pinning the server certificate is
problematic because the certificates are relatively short-lived, and the
rollovers have to be coordinated carefully.

So for the browser PKI case, it may make sense to pin the server public
key instead (n *and *e), not the entire certificate.  During regular
rollover, you can keep the public key, and you can have a pre-pinned
offline copy for emergency rollovers.

Or use SNI, a different endpoint name, and a separate certificate
outside browser PKI, and pin that.

Are there other options I'm missing?

The pinned certificate magically appears, thanks to the software update
infrastructure, so that's a solved problem.  It's just synchronizing
things within the update infrastructure to external events that can be
tricky, for various reasons.

-- 
Florian Weimer / Red Hat Product Security

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.