1。问题:
HTTP Public-Key-Pinning(HPKP) 真的是否可以提高安全性?
MITM(例如NSA)可以拦截对服务器的第一个请求,并使用由受感染的 CA签名的“伪造”证书进行响应。
因此,如果与服务器的初始连接未被篡改,HPKP仅提高安全性,并且如果您100%确定,则最初连接到正确的服务器。
正确?
2。问题:
Public-Key-Pins
标头需要至少包含两个不同证书的哈希值,其中一个用作“备份”证书。
这是否意味着我必须从两个不同的CA购买两个不同的证书?
那将是相当昂贵的。如果您购买一个CA,CA是否应该为您提供同一域的两个证书?
安全不应该付出代价,每个人都应该能够构建安全服务。
答案 0 :(得分:6)
1。是
2。 HPKP与证书本身无关。就像这个名字告诉你它是关于公钥的。
要获取证书,您将使用私钥创建证书申请。 您的公钥存储在从CA获得的证书中。然后将该公钥与浏览器在固定标头中的先前请求所获得的公钥进行比较。
根据您的回复,您将提供该私钥的公钥和私钥备份的另一个公钥。
答案 1 :(得分:-4)
关于第二个问题的一个评论。
实际上是的,您必须购买至少2个证书才能将证书指纹固定到客户端浏览器中。备份证书不得存储在生产计算机上。你只需要它的指纹。
指纹是根据证书计算的。然后CA也有指纹。
openssl x509 -noout -in /etc/ssl/certs/DigiCert_Global_Root_CA.pem -fingerprint -sha256