繁体   English   中英

公钥固定不起作用

[英]Public Key Pinning not working

您好,我正在尝试在作为另一个Web应用程序的代理运行的apache服务器上实现Public-Key-Pinning,但这无法正常工作(如果我输入了错误的哈希,该页面仍会显示而不是显示错误,这应该在Firefox或Chrome中显示)。 我确定标头是正确的-哈希正确,我已经在Chrome浏览器中对其进行了测试。

我的配置数据是

<VirtualHost *:443>
ServerName subdomain.*******.***:443
SSLCertificateFile /etc/apache2/ssl/___.crt
SSLCertificateKeyFile /etc/apache2/ssl/___.key
SSLCertificateChainFile /etc/apache2/ssl/___.ca
Header always set Public-Key-Pins "pin-sha256=\"****\"; pin-sha256=\"****\";  max-age=120; includeSubDomains"

    <Proxy *>
       Order deny,allow
       Allow from all
   </Proxy>

    ProxyPass / ****:****/
    ProxyPassReverse / ****:****/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

起初,我只有一个哈希,但是我添加了第二个哈希,以防万一需要。 我究竟做错了什么?

注意:当然,我已经启用并加载了mod_header。

需要两个哈希,并且它们必须是两个独立的哈希。 即,您不能固定颁发证书的证书和中间证书,因为它们不是独立的。 这是一项安全功能,可确保您有备份以备不时之需。

另外,只有通过的策略才会被接受,因此您不能放入伪造的策略并观看它失败,因为它永远不会被接受。

一个检查您的策略的好工具是: https : //report-uri.io/home/pkp_analyse以及同一站点上的其他工具可以实际生成您的策略: https : //report-uri.io/home/pkp_hash

但是,使用HPKP时要非常小心。 封锁您的网站非常容易,希望您不要以错误的方式使用它,这听起来并不像您完全了解HPKP,所以建议您先阅读一些内容。

有一个“仅公开密钥针报告”(目前仅在Chrome中可用),并且它可以让您对策略进行一点测试(至少可以在Chrome中使用),但是为此,您还需要使用report-uri选项(如果您不想为此编写自己的服务,也可以使用上面的网站来收集报告)。

我对此很感兴趣,如果人们不介意我在此处链接,我会在此处详细介绍它: https : //www.tunetheweb.com/security/http-security-headers/ hpkp / 我认为这可能是一个非常危险的选择,需要在实施之前仔细考虑。

它实际上起作用了……我的错误是我对其进行测试的方式。

所以这是我错过的最重要的事情:

  1. 您至少需要一个备用别针
  2. 如果您进行测试,请不要更改标头中的哈希,但可以使用SSL证书或(更好)尝试更改本地保存的哈希。 或者感谢BazzaDP指出来尝试使用https://report-uri.io/home/pkp_analyse

如果您不熟悉HPKP,并想开始使用它,请阅读BazzaDP的答案。 Mozilla也有一些不错的文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM