(no title)
Gasparila | 8 years ago
In reality, you can have a valid HPKP setup as long as any keys in your certificate chain match the key in the HPKP header. This means that you can pin the intermediate certificate (or even the root CA if you want) key. By doing so, you are no longer vulnerable to losing your SSL keys, but now other CAs cannot issue certificates for your site
ivanr|8 years ago
Of course, CAs can choose to make such guarantees ("the public key behind this intermediate will continue to be available for N years"), which would make the pinning much less dangerous.
sdeziel|8 years ago
agwa|8 years ago
It worked out OK for Barclays in the end, but only because Symantec was willing to violate the Baseline Requirements to help them out. (I wonder how much that cost Barclays.)
eridius|8 years ago
viraptor|8 years ago
pfg|8 years ago
There is some value in ensuring that a CA is willing to sign a certificate using those keys in case something went wrong during the key generation (i.e. a key size or curve that's not supported by the Web PKI), so it might be considered a best practice to do that regardless.
Scott_Helme_|8 years ago
stanleydrew|8 years ago
If you pin your public key, it's easy to switch CAs if the one you currently use goes under. This does happen.[1] But you are in trouble if you lose your key somehow.
If you pin your CA's public key, it's easy to recover from losing your key but you can't switch CAs until your pin expires. You could use the required second HPKP pin to add a fallback CA though.
I will note that this decision is not actually the hard part of deploying HPKP.
[1] https://blog.mozilla.org/security/2016/10/24/distrusting-new...
the8472|8 years ago
Or pin current CA + current pubkey? That way you can either change certificate within the current CA or use the current certificate to move to any new CA.
Scott_Helme_|8 years ago
skywhopper|8 years ago