主页

索引

模块索引

搜索页面

证书固定(钉扎)

HTTP 公钥固定(又称 HTTP 公钥钉扎,英语:HTTP Public Key Pinning,缩写 HPKP)

公钥扎钉主要解决的问题是若某个合法的 CA 证书颁发机构遭到攻击而签发了不该签发的证书被用来劫持网站。

举例如下:

证书颁发机构 A 遭到黑客攻击为网站 B 签发了证书 C,攻击者 D 通过这个合法证书 C 劫持用户的访问。
由于证书 C 本身是合法的证书因此浏览器不会拦截,但实际上用户的访问却已经遭到了 D 的劫持
HPKP 公钥扎钉可以让管理员指定浏览器只接受自己的证书,即使其他证书颁发机构签发的合法证书也拦截

公钥扎钉可能带来的麻烦:

如果前期已经部署了公钥扎钉固定了正在使用的证书信息,这个时候这个证书出现问题需要更换那就麻烦了。
更换证书意味着原本浏览器留存的哈希值和当前哈希值不同,因此浏览器会直接拦截掉老用户正常访问请求。

为了解决这个问题公钥扎钉固定的证书哈希值通常是中级证书,也就是你使用证书的上级 CA 证书颁发机构。
这样证书需要更换但依然还是由相同的 CA 机构颁发, 在上级 CA 机构没有变的情况下证书哈希值自然相同的。

那么上级 CA 颁发机构是否会出现问题呢?显然该情况存在, 因此在部署公钥扎钉时通常我们会部署两个 CA。

主页

索引

模块索引

搜索页面