Public-Key-Pins

Deprecated
This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

Nota: O mecanismo de Fixação de Chaves Públicas (Public Key Pinning) foi depreciado em favor do Certificado de Transparência e do cabeçalho Expect-CT.

O cabeçalho de resposta HTTP Public-Key-Pins usado para associar uma key pública criptográfica especifica com um certo servidor web para reduzir o risco de ataques MITM com certificados forjados, entretanto, ele foi removido em navegadores modernos e não é mais suportado. Use Certificado de Transparência e o cabeçalho Expect-CT ao invés disso.

Para mais informação, veja o artigo HTTP Public Key Pinning.

Tipo de cabeçalho Response header
Forbidden header name não

Sintaxe

Public-Key-Pins: pin-sha256="<pin-value>"; 
                 max-age=<expire-time>; 
                 includeSubDomains; 
                 report-uri="<uri>"

Diretivas

pin-sha256="<pin-value>"
A cadeia de caracteres entre aspas duplas é a impressão digital da Informação da Chave Pública do Sujeito [Subject Public Key Information (SPKI)] codificada em Base64. É possível especificar múltiplos pins para diferentes chaves públicas. Alguns navegadores podem permitir outros algoritmos de hasheamento além do SHA-256 no futuro.
max-age=<expire-time>
O tempo, em segundos, que o navegador deve lembrar que o site só deve ser acessado usando uma das chaves definidas.
includeSubDomains Optional
Se este parâmetro opcional é especificado, este regra vale para todos os subdomínios do site também.
report-uri="<uri>" Optional
Se este parâmetro opcional é especificado, validações de pin que falharam são reportadas ao URL dado.

Exemplo

HPKP tem o potencial de bloquear usuários por um longo período de tempo de usado incorretamente! O uso de backup de certificados e/ou fixação do Autoridade de Certificados é recomendado.

Public-Key-Pins: 
  pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs="; 
  pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE="; 
  max-age=5184000; includeSubDomains; 
  report-uri="https://www.example.org/hpkp-report"

Neste exemplo, pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=" fixa a chave pública do servidor usada em produção. A segunda declaração de fixação pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE=" também fixa a chave de backup. max-age=5184000 diz ao cliente para guardar esta informação por dois meses, que é um tempo limite razoável de acordo com a IETF RFC. Esta fixação de chave também é valida para todos os subdomínios, que é dito pela declaração do includeSubDomains. Finalmente, report-uri="https://www.example.org/hpkp-report" diz para onde reportar as validação de fixação que falharam.

Especificações

Especificação Título
RFC 7469, sessão 2.1: Public-Key-Pins Public Key Pinning Extension for HTTP

Compatibilidade de navegador

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Public-Key-Pins
Deprecated
Chrome No support ? — 72Edge No support NoFirefox No support 35 — 72
No support 35 — 72
Full support 72
Disabled
Disabled From version 72: this feature is behind the security.cert_pinning.hpkp.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera No support ? — 60Safari No support NoWebView Android No support NoChrome Android No support ? — 72Firefox Android Full support 35Opera Android No support ? — 51Safari iOS No support NoSamsung Internet Android No support ? — 11.0
report-uri
Deprecated
Chrome No support 46 — 72Edge No support NoFirefox No support No
Notes
No support No
Notes
Notes See bug 1091176.
IE No support NoOpera No support 33 — 60Safari No support NoWebView Android No support NoChrome Android No support ? — 72Firefox Android No support NoOpera Android No support 33 — 51Safari iOS No support NoSamsung Internet Android No support ? — 11.0

Legend

Full support  
Full support
No support  
No support
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.

Veja também