关于 HTTP Public-Key-Pinning (HPKP) 的问题
Questions regarding HTTP Public-Key-Pinning (HPKP)
1.问题:
HTTP Public-Key-Pinning (HPKP) 真的 提高了安全性吗?
MITM(例如 NSA)可以拦截对服务器的第一个请求并使用 "faked" 证书进行响应,该证书由 compromised CA 签名。
因此 HPKP 仅在与服务器的初始连接未被篡改并且您 100% 确定您最初连接到正确服务器的情况下提高安全性。
正确的?
2。问题:
Public-Key-Pins
header 需要包含两个不同证书的至少两个哈希值,其中一个用作 "backup" 证书。
这是否意味着我必须从两个不同的 CA 购买两个不同的证书?
那将是相当昂贵的。如果您购买一个 CA,难道不应该为您提供为同一个域签署两个证书吗?
不应该以安全为代价,每个人 都应该能够构建安全 服务。
1. 是
2.HPKP与证书本身无关。顾名思义,它是关于 public 键的。
要获得证书,您将使用您的私钥创建证书请求。
您的 public 密钥存储在您从 CA 获得的证书中。然后将该 public 键与浏览器在固定 header.
中通过先前请求获得的键进行比较
根据您的回复,您将提供该私钥的 public 密钥和另一个私人备份密钥的 public 密钥。
关于第二个问题的评论。
实际上是的,您必须至少购买 2 个证书才能将证书指纹固定到客户端浏览器中。备份证书不得存储在生产计算机上。您只需要它的指纹。
指纹是根据证书计算的。然后一个 CA 也有一个指纹。
openssl x509 -noout -in /etc/ssl/certs/DigiCert_Global_Root_CA.pem -fingerprint -sha256
1.问题:
HTTP Public-Key-Pinning (HPKP) 真的 提高了安全性吗?
MITM(例如 NSA)可以拦截对服务器的第一个请求并使用 "faked" 证书进行响应,该证书由 compromised CA 签名。
因此 HPKP 仅在与服务器的初始连接未被篡改并且您 100% 确定您最初连接到正确服务器的情况下提高安全性。
正确的?
2。问题:
Public-Key-Pins
header 需要包含两个不同证书的至少两个哈希值,其中一个用作 "backup" 证书。
这是否意味着我必须从两个不同的 CA 购买两个不同的证书?
那将是相当昂贵的。如果您购买一个 CA,难道不应该为您提供为同一个域签署两个证书吗?
不应该以安全为代价,每个人 都应该能够构建安全 服务。
1. 是
2.HPKP与证书本身无关。顾名思义,它是关于 public 键的。
要获得证书,您将使用您的私钥创建证书请求。 您的 public 密钥存储在您从 CA 获得的证书中。然后将该 public 键与浏览器在固定 header.
中通过先前请求获得的键进行比较根据您的回复,您将提供该私钥的 public 密钥和另一个私人备份密钥的 public 密钥。
关于第二个问题的评论。
实际上是的,您必须至少购买 2 个证书才能将证书指纹固定到客户端浏览器中。备份证书不得存储在生产计算机上。您只需要它的指纹。
指纹是根据证书计算的。然后一个 CA 也有一个指纹。
openssl x509 -noout -in /etc/ssl/certs/DigiCert_Global_Root_CA.pem -fingerprint -sha256