Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.

Public-Key-Pins

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 request header 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

Compatibilidade com navegadores

Veja também