【问题标题】:Questions regarding HTTP Public-Key-Pinning (HPKP)有关 HTTP 公钥固定 (HPKP) 的问题
【发布时间】:2015-05-08 21:51:41
【问题描述】:

1.问题:
HTTP Public-Key-Pinning (HPKP) 真的能提高安全性吗?
MITM(例如 NSA)可以拦截对服务器的第一个请求,并使用由受损 CA 签名的“伪造”证书进行响应。
因此,HPKP 仅在与服务器的初始连接未被篡改且您 100% 确定您最初连接到正确服务器的情况下才能提高安全性。
正确的?

2。问题:
Public-Key-Pins 标头需要包含至少两个不同证书的两个哈希值,一个用作“备份”证书。
这是否意味着我必须从两个不同的 CA 购买两个不同的证书?
那将是相当昂贵的。如果您购买一个证书,CA 不应该让您为同一个域签署两个证书吗?
安全不应该付出代价,每个人都应该能够构建安全服务。

【问题讨论】:

  • 我投票决定将此问题作为离题结束,因为它与编程无关。 security.stackexchange.com 比较适合这类问题。

标签: ssl public ca pinning


【解决方案1】:

1.是的

2. HPKP 与证书本身无关。就像名字告诉你的那样,它是关于公钥的。

要获得证书,您将使用您的私钥创建证书请求。 您的公钥存储在您从 CA 获得的证书中。然后将该公钥与浏览器通过固定标头中的先前请求获得的公钥进行比较。

根据您的回复,您将提供该私钥的公钥和备用私钥的另一个公钥。

【讨论】:

【解决方案2】:

关于第二个问题的评论。

实际上是的,您必须至少购买 2 个证书才能将证书指纹固定到客户端浏览器中。备份证书不得存储在生产计算机上。你只需要它的指纹。

指纹是在证书上计算的。然后一个 CA 也有一个指纹。

openssl x509 -noout -in /etc/ssl/certs/DigiCert_Global_Root_CA.pem -fingerprint -sha256

【讨论】:

  • 这个答案是错误的,你只需要购买一个证书!但是你需要两个私钥来固定。一个 Pin 用于您用于当前证书的私钥,另一个 Pin 是备份私钥的备份 pin。如果您当前的证书必须更新或更换,您必须使用备份私钥来申请新证书,并为 hpkp 创建一个新的备份私钥...
  • 几乎正确,pin 是使用公钥的散列生成的。谢谢
猜你喜欢
  • 2019-10-02
  • 2019-12-05
  • 2021-09-17
  • 1970-01-01
  • 2017-12-17
  • 2019-10-03
  • 1970-01-01
  • 2017-10-20
  • 1970-01-01
相关资源
最近更新 更多