©
本文檔使用php中文網手册發布
HTTPPublic-Key-Pins
响应头将特定的加密公钥与特定的 Web 服务器相关联,以降低伪造证书对 MITM 攻击的风险。如果一个或多个密钥被固定并且服务器不使用任何密钥,则浏览器将不会接受该合法的响应,并且不会显示它。
有关更多信息,请参阅 HTTP 公用密钥固定文章。
Header type |
Response header |
---|---|
Forbidden header name |
no |
Public-Key-Pins: pin-sha256=""; max-age= ; includeSubDomains; report-uri=" "
pin-sha256="
引用的字符串是 Base64 编码的主题公钥信息(SPKI)指纹。可以为不同的公钥指定多个引脚。一些浏览器可能会在将来允许其他散列算法而不是 SHA-256。max-age = includeSubDomains
可选如果指定了此可选参数,则此规则也适用于所有网站的子域。report-uri="
可选如果指定了此可选参数,则将引脚验证失败报告给给定的 URL。
如果使用不当,HPKP 可能会长时间锁定用户!建议使用备份证书和/或固定 CA 证书。
Public-Key-Pins: pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs="; pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE="; max-age=5184000; includeSubDomains; report-uri="https://www.example.org/hpkp-report"
在本例中,pin-sha256 =“cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2 + soZS7sWs =”固定生产中使用的服务器公钥。第二个引脚声明pin-sha256 =“M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE =”也引脚备份密钥。max-age = 5184000告诉客户将这些信息存储两个月,根据IETF RFC这是一个合理的时间限制。此关键固定也适用于所有子域,这由includeSubDomains声明告知。最后,report-uri =“https://www.example.org/hpkp-report”说明报告引脚验证失败的位置。
Specification |
Title |
---|---|
RFC 7469, section 2.1: Public-Key-Pins |
Public Key Pinning Extension for HTTP |
Feature |
Chrome |
Firefox |
Edge |
Internet Explorer |
Opera |
Safari |
---|---|---|---|---|---|---|
Basic Support |
(Yes) |
35.0 |
(No)1 |
? |
(Yes) |
? |
report-uri |
46 |
(No)2 |
? |
? |
33 |
? |
Feature |
Android |
Chrome for Android |
Edge mobile |
Firefox for Android |
IE mobile |
Opera Android |
iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support |
(Yes) |
(Yes) |
? |
35.0 |
? |
(Yes) |
? |
report-uri |
(Yes) |
(Yes) |
? |
(No) |
? |
33 |
? |
Under consideration未来发布。
参见 Bugzilla 错误 1091176。