Certificate pinning trades flexibility for tighter expectations
Pinning means an application refuses to accept any certificate except the specific one it expects.
It defeats an attacker who has obtained a fraudulent but otherwise valid certificate, which is its purpose. It also means that when the legitimate certificate changes, every client breaks until updated. Several well-known outages came from pinning, and it remains the right answer in narrow cases where the client can be updated in step.
More on TLS and PKI
- TLS encrypts a connection, not endpoint intentionsA sealed pipe to a stranger
- Certificates bind keys to names through trust chainsHeld together by a chain of seals
- Certificate expiry creates operational pressureEvery one of them runs out
- Private-key compromise survives a valid certificateThe certificate is fine
- HSTS removes the insecure choice after a browser has learned the policy, while preload can protect the first visit tooThe turning that stops existing
- OCSP stapling moves status evidence closerThe proof comes stapled on
