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
Aviso: 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 |