Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 178

证书固定

审核人Cybersecurity entrepreneur & security researcher

证书固定 是什么?

证书固定一种技术,应用程序在其中硬编码一个预期的证书或公钥,并拒绝任何不匹配的 TLS 连接,从而挫败恶意或被入侵的 CA。


证书固定将某个特定的 TLS 服务器绑定到一个或多个客户端隐式信任的加密身份——完整的叶子证书、中间证书,或 SubjectPublicKeyInfo(SPKI)哈希。在握手过程中,客户端会将服务器的证书链与固定的值进行比对,一旦不匹配便中止连接,即便该证书链由公开受信任的 CA 签发也是如此。这可以挫败持有虚假但有效证书的攻击者,例如由被入侵或被胁迫的 CA 签发的证书(2011 年导致伪造 Google 证书出现的 DigiNotar 和 Comodo 事件正是这一经典动机)。

浏览器 HPKP 与应用固定

Web 曾尝试通过 HTTP 公钥固定(HPKP,RFC 7469,2015)来实现固定,即一个 Public-Key-Pins 响应头。它在实践中以失败告终:密钥丢失、常规轮换时未更新固定值,或一次恶意的 "RansomPKP" 注入,都可能在整个 max-age 期间将用户锁在门外。Chrome 于 2017 年弃用了 HPKP,并在 Chrome 72(2018)中将其移除,将这一角色让位给证书透明度日志。固定如今主要存活于与固定后端通信的移动应用中(Android Network Security Config、iOS NSPinnedDomains、OkHttp CertificatePinner)。

flowchart TD
  A[Client opens TLS to api.example.com] --> B[Server presents certificate chain]
  B --> C{Chain validates against system CAs?}
  C -->|No| E[Abort: standard TLS failure]
  C -->|Yes| D{SPKI hash matches a pinned key?}
  D -->|Yes| F[Connection allowed]
  D -->|No| G[Abort: pin mismatch, block MITM/rogue CA]

弱点与防御

固定的强度取决于它的备份固定值——务必固定一个轮换密钥。在已 root/越狱的设备上,Fridaobjection 等工具会挂钩验证例程以剥除固定,因此固定虽然抬高了中间人拦截的门槛,却不能替代设备认证(attestation)。现代指南(OWASP MASVS)推荐采用 SPKI 固定,配合短时证书和经过测试的轮换方案。

示例

  1. 01

    某银行应用固定其服务器公钥的 SHA-256 哈希,并拒绝任何其他证书。

  2. 02

    某移动 API 客户端同时固定生产密钥和轮换密钥,后者作为备份。

常见问题

证书固定 是什么?

一种技术,应用程序在其中硬编码一个预期的证书或公钥,并拒绝任何不匹配的 TLS 连接,从而挫败恶意或被入侵的 CA。 它属于网络安全的 网络安全 分类。

证书固定 是什么意思?

一种技术,应用程序在其中硬编码一个预期的证书或公钥,并拒绝任何不匹配的 TLS 连接,从而挫败恶意或被入侵的 CA。

如何防御 证书固定?

针对 证书固定 的防御通常结合技术控制与运营实践,详见上方完整定义。

证书固定 还有哪些其他名称?

常见的别称包括: TLS 固定, 公钥固定。

相关术语

另见