HTTP Public Key Pinning 介绍
这篇讲的是如何通过 HTTP Public Key Pinning(HPKP)技术,让网站主动指定可信任的证书颁发机构,以抵御中间人攻击。作者从当前 HTTPS 证书信任体系的漏洞切入——任何一家受信任的 CA 都可能为任意网站签发合法证书,虽然 Certificate Transparency (CT) 能通过审计机制改善此问题,但尚未完全普及。 HPKP 提供了另一种思路:网站通过响应头“固定”自己证书链中特定证书的指纹。浏览器后续访问时,必须验证证书是否匹配这些指纹,否则即便证书合法也会拒绝连接。文章详细说明了配置字段,并重点讨论了 `pin-sha256` 指纹的生成策略:使用中间证书指纹在安全性和易用性间取得了较好平衡,同时建议预备备用指纹以应对 CA 变更。作者还给出了使用 OpenSSL 生成指纹和配置 Nginx 的具体示例。 不过,HPKP 也存在首次访问可能被劫持的局限,类似 HSTS,目前主要依赖浏览器内置的 Preload List 来解决。整篇文章清晰对比了 HPKP 与 CT 的不同防护路径,并给出了切实的配置指导。