簡體   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